Source code for ray.tune.syncer

from dataclasses import dataclass
import logging

from ray.train._internal.syncer import SyncConfig as TrainSyncConfig
from ray.util.annotations import PublicAPI

logger = logging.getLogger(__name__)


[docs] @PublicAPI(stability="beta") @dataclass class SyncConfig(TrainSyncConfig): """Configuration object for Tune file syncing to `RunConfig(storage_path)`. In Ray Tune, here is where syncing (mainly uploading) happens: The experiment driver (on the head node) syncs the experiment directory to storage (which includes experiment state such as searcher state, the list of trials and their statuses, and trial metadata). It's also possible to sync artifacts from the trial directory to storage by setting `sync_artifacts=True`. For a Ray Tune run with many trials, each trial will upload its trial directory to storage, which includes arbitrary files that you dumped during the run. Args: sync_period: Minimum time in seconds to wait between two sync operations. A smaller ``sync_period`` will have the data in storage updated more often but introduces more syncing overhead. Defaults to 5 minutes. sync_timeout: Maximum time in seconds to wait for a sync process to finish running. A sync operation will run for at most this long before raising a `TimeoutError`. Defaults to 30 minutes. sync_artifacts: [Beta] Whether or not to sync artifacts that are saved to the trial directory (accessed via `ray.tune.get_context().get_trial_dir()`) to the persistent storage configured via `tune.RunConfig(storage_path)`. The trial or remote worker will try to launch an artifact syncing operation every time `tune.report` happens, subject to `sync_period` and `sync_artifacts_on_checkpoint`. Defaults to False -- no artifacts are persisted by default. sync_artifacts_on_checkpoint: If True, trial/worker artifacts are forcefully synced on every reported checkpoint. This only has an effect if `sync_artifacts` is True. Defaults to True. """ pass