salvus.flow.executors.implementations.local_hpc
Local versions of all the HPC executors.
They still interact with the job queueing system. They do not use SSH to communicate but directly execute the commands.
Classes
LocalGridEngineExecutor
LocalGridEngineExecutorclass LocalGridEngineExecutor(
salvus.flow.executors.implementations.grid_engine.GridEngineExecutor,
salvus.flow.executors.implementations.local.LocalExecutor,
):
def __init__(
self,
name: str,
configuration: Dict,
db: Any,
verbosity: int = 1,
skip_version_number_check: bool = False,
): ...namestr — Site name.configurationDict — Configuration for the site.dbAny — Connection to the internal database.verbosityint — Verbosity level.skip_version_number_checkbool — Skip the version number check of the local Python version vs the remote site. Useful for initializing and updating sites.
file_path_type Union[Type[pathlib.PurePosixPath], Type[pathlib.PureWindowsPath]]
file_path_type Union[Type[pathlib.PurePosixPath], Type[pathlib.PureWindowsPath]]Returns the type of file paths for the given site.
home_dir types
home_dir typesThe home directory.
is_initialized bool
is_initialized boolTrue if the site has been synchronized/initialized with the remote site.
os_type salvus.flow.executors.remote_io_executor.OSType
os_type salvus.flow.executors.remote_io_executor.OSTypeReturn the type of operating system.
sftp_client salvus.flow.executors.remote_io_executor.LocalSFTPClient
sftp_client salvus.flow.executors.remote_io_executor.LocalSFTPClientGet the sftp client instance.
Will be initialized upon the first access.
ssh_client salvus.flow.executors.remote_io_executor.LocalSSHClient
ssh_client salvus.flow.executors.remote_io_executor.LocalSSHClientGet the ssh client instance.
Will be initialized upon the first access.
update_interval_in_seconds float
update_interval_in_seconds floatA site’s actual update interval.
use_cuda_capable_gpus bool
use_cuda_capable_gpus boolTrue if a site uses license tokens.
use_license_tokens float
use_license_tokens floatTrue if a site uses license tokens.
cancel_job()
cancel_job()def cancel_job(self, job_dir: str) -> None: ...Cancel the GridEngine job by calling qdel.
job_dirstr — The job directory.
execute_command()
execute_command()def execute_command(
self,
command: str,
assert_ok: bool = True,
environment: Optional[Dict[str, str]] = None,
) -> Tuple[int, List[str], List[str]]: ...Execute the command.
commandstr — The command to run as a string.assert_okbool — Raise if the command does not exist with a code of 0.environmentOptional[Dict[str, str]] — Environment variables to be set for this command.
get_job_status()
get_job_status()def get_job_status(self, job_dir: str) -> Union[
salvus.flow.executors.types.JobStatus,
List[salvus.flow.executors.types.JobStatus],
]: ...Returns the status of the job or job array to the best knowledge of the remote site.
If the job is a job array, return the status of every job in a list if possible, otherwise just the total status of the whole job.
This is a single method as, in practice, it turns out to be more convenient to implement.
job_dirstr — The job directory.
is_folder_writeable()
is_folder_writeable()def is_folder_writeable(
self,
path: Union[
str, pathlib.Path, pathlib.PurePosixPath, pathlib.PureWindowsPath
],
) -> bool: ...Return True if the user has write permissions in the chosen folder.
pathUnion[str, pathlib.Path, pathlib.PurePosixPath, pathlib.PureWindowsPath] — Path on the remote machine.
launch_many_mpi_jobs()
launch_many_mpi_jobs()def launch_many_mpi_jobs(
self,
job_commands: Dict[int, Any],
working_dir: str,
stdout_path: str,
stderr_path: str,
wall_time_in_seconds_per_job: Optional[int],
license_tokens: Optional[List[str]] = None,
) -> List[salvus.flow.executors.types.JobStatus]: ...Launch many MPI jobs at once.
job_commandsDict[int, Any] — Dictionary of a list of commands, one per list per job.working_dirstr — The remote working directory for the execution.stdout_pathstr — Path to pipe stdout to.stderr_pathstr — Path to pipe stderr to.wall_time_in_seconds_per_jobOptional[int] — Wall-time in seconds per job. Must be set for GridEngine sites.license_tokensOptional[List[str]] — If the job array uses license tokens for the license enforcement they are passed here.
launch_mpi_job()
launch_mpi_job()def launch_mpi_job(
self,
commands: List[salvus.flow.executors.executor_utils.RemoteCommand],
job_dir: str,
working_dir: str,
stdout_path: str,
stderr_path: str,
wall_time_in_seconds: Optional[int],
is_debug_job: bool = False,
) -> salvus.flow.executors.types.JobStatus: ...Launch a job on a GridEngine cluster using MPI.
Returns the initial status - always “pending” here.
commandsList[salvus.flow.executors.executor_utils.RemoteCommand] — List of commands. One will be run after the other, but all will be submitted at the same time.job_dirstr — The remote directory where all the job files are stored.working_dirstr — The remote working directory for the execution.stdout_pathstr — Path to pipe stdout to.stderr_pathstr — Path to pipe stderr to.wall_time_in_secondsOptional[int] — Wall-time in seconds. Must be set for GridEngine sites.is_debug_jobbool — True if this is supposed to be a debug job. Some job management systems have debug or other “fast” queues. Use these special queues if this is set to true.
pretty_print()
pretty_print()def pretty_print(self) -> None: ...Pretty and colorful representation of the site.
remote_exists()
remote_exists()def remote_exists(
self,
path: Union[
str, pathlib.Path, pathlib.PurePosixPath, pathlib.PureWindowsPath
],
) -> bool: ...Check if a remote file or directory exists.
pathUnion[str, pathlib.Path, pathlib.PurePosixPath, pathlib.PureWindowsPath] — Path to check.
remote_get()
remote_get()def remote_get(
self,
remotepath: Union[
str, pathlib.Path, pathlib.PurePosixPath, pathlib.PureWindowsPath
],
localpath: Union[_io.BytesIO, pathlib.Path],
show_progressbar: bool = False,
) -> None: ...Get a remote file.
remotepathUnion[str, pathlib.Path, pathlib.PurePosixPath, pathlib.PureWindowsPath] — Remote file to get.localpathUnion[_io.BytesIO, pathlib.Path] — Local path to save to Can be a file or a file like object.show_progressbarbool — Show a progressbar or not.
remote_listdir()
remote_listdir()def remote_listdir(
self,
path: Union[
str, pathlib.Path, pathlib.PurePosixPath, pathlib.PureWindowsPath
],
) -> List[str]: ...List the contents of a remote directory.
Just dispatches to the underlying representation.
pathUnion[str, pathlib.Path, pathlib.PurePosixPath, pathlib.PureWindowsPath] — Remote path whose contents to list.
remote_mkdir()
remote_mkdir()def remote_mkdir(
self,
path: Union[
str, pathlib.Path, pathlib.PurePosixPath, pathlib.PureWindowsPath
],
mode: int = 511,
) -> None: ...Create a directory on the remote or local machine.
pathUnion[str, pathlib.Path, pathlib.PurePosixPath, pathlib.PureWindowsPath] — Directory to create.modeint — Permissions for the new directory.
remote_put()
remote_put()def remote_put(
self,
localpath: Union[_io.BytesIO, pathlib.Path],
remotepath: Union[
str, pathlib.Path, pathlib.PurePosixPath, pathlib.PureWindowsPath
],
show_progressbar: bool = False,
) -> None: ...Copy a local file to a remote path.
localpathUnion[_io.BytesIO, pathlib.Path] — Local file to copy. Can be a file like object.remotepathUnion[str, pathlib.Path, pathlib.PurePosixPath, pathlib.PureWindowsPath] — Where to copy to.show_progressbarbool — Show a progressbar or not.
remote_rmdir()
remote_rmdir()def remote_rmdir(
self,
path: Union[
str, pathlib.Path, pathlib.PurePosixPath, pathlib.PureWindowsPath
],
verbosity: int = 1,
) -> None: ...Remotely and recursively delete a remote folder and its contents.
pathUnion[str, pathlib.Path, pathlib.PurePosixPath, pathlib.PureWindowsPath] — Remote path to delete.verbosityint — Verbosity level.
safe_remote_rmdir()
safe_remote_rmdir()def safe_remote_rmdir(
self,
path: Union[
str, pathlib.Path, pathlib.PurePosixPath, pathlib.PureWindowsPath
],
allow_failure: bool,
verbosity: int = 1,
) -> None: ...Convenience wrapper that optionally allows the remote_rmdir() command to fail. Useful for some networked file systems.
pathUnion[str, pathlib.Path, pathlib.PurePosixPath, pathlib.PureWindowsPath] — Remote path to delete.allow_failurebool — Whether to allow failure or not.verbosityint — Verbosity level.
LocalLSFExecutor
LocalLSFExecutorclass LocalLSFExecutor(
salvus.flow.executors.implementations.lsf.LSFExecutor,
salvus.flow.executors.implementations.local.LocalExecutor,
):
def __init__(
self,
name: str,
configuration: Dict,
db: Any,
verbosity: int = 1,
skip_version_number_check: bool = False,
): ...namestr — Site name.configurationDict — Configuration for the site.dbAny — Connection to the internal database.verbosityint — Verbosity level.skip_version_number_checkbool — Skip the version number check of the local Python version vs the remote site. Useful for initializing and updating sites.
file_path_type Union[Type[pathlib.PurePosixPath], Type[pathlib.PureWindowsPath]]
file_path_type Union[Type[pathlib.PurePosixPath], Type[pathlib.PureWindowsPath]]Returns the type of file paths for the given site.
home_dir types
home_dir typesThe home directory.
is_initialized bool
is_initialized boolTrue if the site has been synchronized/initialized with the remote site.
os_type salvus.flow.executors.remote_io_executor.OSType
os_type salvus.flow.executors.remote_io_executor.OSTypeReturn the type of operating system.
sftp_client salvus.flow.executors.remote_io_executor.LocalSFTPClient
sftp_client salvus.flow.executors.remote_io_executor.LocalSFTPClientGet the sftp client instance.
Will be initialized upon the first access.
ssh_client salvus.flow.executors.remote_io_executor.LocalSSHClient
ssh_client salvus.flow.executors.remote_io_executor.LocalSSHClientGet the ssh client instance.
Will be initialized upon the first access.
update_interval_in_seconds float
update_interval_in_seconds floatA site’s actual update interval.
use_cuda_capable_gpus bool
use_cuda_capable_gpus boolTrue if a site uses license tokens.
use_license_tokens float
use_license_tokens floatTrue if a site uses license tokens.
cancel_job()
cancel_job()def cancel_job(self, job_dir: str) -> None: ...Cancel the LSF job by calling bkill.
job_dirstr — Directory where job is running.
execute_command()
execute_command()def execute_command(
self,
command: str,
assert_ok: bool = True,
environment: Optional[Dict[str, str]] = None,
) -> Tuple[int, List[str], List[str]]: ...Execute the command.
commandstr — The command to run as a string.assert_okbool — Raise if the command does not exist with a code of 0.environmentOptional[Dict[str, str]] — Environment variables to be set for this command.
get_job_status()
get_job_status()def get_job_status(self, job_dir: str) -> Union[
salvus.flow.executors.types.JobStatus,
List[salvus.flow.executors.types.JobStatus],
]: ...Return the status of the job or job array.
This is a single method as, in practice, it turns out to be more convenient to implement.
job_dirstr — Directory where job is running.
is_folder_writeable()
is_folder_writeable()def is_folder_writeable(
self,
path: Union[
str, pathlib.Path, pathlib.PurePosixPath, pathlib.PureWindowsPath
],
) -> bool: ...Return True if the user has write permissions in the chosen folder.
pathUnion[str, pathlib.Path, pathlib.PurePosixPath, pathlib.PureWindowsPath] — Path on the remote machine.
launch_many_mpi_jobs()
launch_many_mpi_jobs()def launch_many_mpi_jobs(
self,
job_commands: Dict[int, Any],
working_dir: str,
stdout_path: str,
stderr_path: str,
wall_time_in_seconds_per_job: Optional[int],
license_tokens: Optional[List[str]] = None,
) -> List[salvus.flow.executors.types.JobStatus]: ...Launch many MPI jobs at once.
job_commandsDict[int, Any] — Dictionary of a list of commands, one per list per job.working_dirstr — The remote working directory for the execution.stdout_pathstr — Path to pipe stdout to.stderr_pathstr — Path to pipe stderr to.wall_time_in_seconds_per_jobOptional[int] — Wall-time in seconds per job. Must be given for an LSF site.license_tokensOptional[List[str]] — If the job array uses license tokens for the license enforcement they are passed here.
launch_mpi_job()
launch_mpi_job()def launch_mpi_job(
self,
commands: List[salvus.flow.executors.executor_utils.RemoteCommand],
job_dir: str,
working_dir: str,
stdout_path: str,
stderr_path: str,
wall_time_in_seconds: Optional[int],
is_debug_job: bool = False,
) -> salvus.flow.executors.types.JobStatus: ...Launch a job on LSF cluster using MPI.
commandsList[salvus.flow.executors.executor_utils.RemoteCommand] — List of commands to run.job_dirstr — Root directory of job, where all files will be copied.working_dirstr — Run directory of job, where Salvus will be executed.stdout_pathstr — Path to the Salvus stdout file.stderr_pathstr — Path to the Salvus stderr file.wall_time_in_secondsOptional[int] — Max wall time in seconds for the job.is_debug_jobbool — Should we run this job in the debug queue, by default False
pretty_print()
pretty_print()def pretty_print(self) -> None: ...Pretty and colorful representation of the site.
remote_exists()
remote_exists()def remote_exists(
self,
path: Union[
str, pathlib.Path, pathlib.PurePosixPath, pathlib.PureWindowsPath
],
) -> bool: ...Check if a remote file or directory exists.
pathUnion[str, pathlib.Path, pathlib.PurePosixPath, pathlib.PureWindowsPath] — Path to check.
remote_get()
remote_get()def remote_get(
self,
remotepath: Union[
str, pathlib.Path, pathlib.PurePosixPath, pathlib.PureWindowsPath
],
localpath: Union[_io.BytesIO, pathlib.Path],
show_progressbar: bool = False,
) -> None: ...Get a remote file.
remotepathUnion[str, pathlib.Path, pathlib.PurePosixPath, pathlib.PureWindowsPath] — Remote file to get.localpathUnion[_io.BytesIO, pathlib.Path] — Local path to save to Can be a file or a file like object.show_progressbarbool — Show a progressbar or not.
remote_listdir()
remote_listdir()def remote_listdir(
self,
path: Union[
str, pathlib.Path, pathlib.PurePosixPath, pathlib.PureWindowsPath
],
) -> List[str]: ...List the contents of a remote directory.
Just dispatches to the underlying representation.
pathUnion[str, pathlib.Path, pathlib.PurePosixPath, pathlib.PureWindowsPath] — Remote path whose contents to list.
remote_mkdir()
remote_mkdir()def remote_mkdir(
self,
path: Union[
str, pathlib.Path, pathlib.PurePosixPath, pathlib.PureWindowsPath
],
mode: int = 511,
) -> None: ...Create a directory on the remote or local machine.
pathUnion[str, pathlib.Path, pathlib.PurePosixPath, pathlib.PureWindowsPath] — Directory to create.modeint — Permissions for the new directory.
remote_put()
remote_put()def remote_put(
self,
localpath: Union[_io.BytesIO, pathlib.Path],
remotepath: Union[
str, pathlib.Path, pathlib.PurePosixPath, pathlib.PureWindowsPath
],
show_progressbar: bool = False,
) -> None: ...Copy a local file to a remote path.
localpathUnion[_io.BytesIO, pathlib.Path] — Local file to copy. Can be a file like object.remotepathUnion[str, pathlib.Path, pathlib.PurePosixPath, pathlib.PureWindowsPath] — Where to copy to.show_progressbarbool — Show a progressbar or not.
remote_rmdir()
remote_rmdir()def remote_rmdir(
self,
path: Union[
str, pathlib.Path, pathlib.PurePosixPath, pathlib.PureWindowsPath
],
verbosity: int = 1,
) -> None: ...Remotely and recursively delete a remote folder and its contents.
pathUnion[str, pathlib.Path, pathlib.PurePosixPath, pathlib.PureWindowsPath] — Remote path to delete.verbosityint — Verbosity level.
safe_remote_rmdir()
safe_remote_rmdir()def safe_remote_rmdir(
self,
path: Union[
str, pathlib.Path, pathlib.PurePosixPath, pathlib.PureWindowsPath
],
allow_failure: bool,
verbosity: int = 1,
) -> None: ...Convenience wrapper that optionally allows the remote_rmdir() command to fail. Useful for some networked file systems.
pathUnion[str, pathlib.Path, pathlib.PurePosixPath, pathlib.PureWindowsPath] — Remote path to delete.allow_failurebool — Whether to allow failure or not.verbosityint — Verbosity level.
LocalPbsExecutor
LocalPbsExecutorclass LocalPbsExecutor(
salvus.flow.executors.implementations.pbs.PbsExecutor,
salvus.flow.executors.implementations.local.LocalExecutor,
):
def __init__(
self,
name: str,
configuration: Dict,
db: Any,
verbosity: int = 1,
skip_version_number_check: bool = False,
): ...namestr — Site name.configurationDict — Configuration for the site.dbAny — Connection to the internal database.verbosityint — Verbosity level.skip_version_number_checkbool — Skip the version number check of the local Python version vs the remote site. Useful for initializing and updating sites.
file_path_type Union[Type[pathlib.PurePosixPath], Type[pathlib.PureWindowsPath]]
file_path_type Union[Type[pathlib.PurePosixPath], Type[pathlib.PureWindowsPath]]Returns the type of file paths for the given site.
home_dir types
home_dir typesThe home directory.
is_initialized bool
is_initialized boolTrue if the site has been synchronized/initialized with the remote site.
os_type salvus.flow.executors.remote_io_executor.OSType
os_type salvus.flow.executors.remote_io_executor.OSTypeReturn the type of operating system.
sftp_client salvus.flow.executors.remote_io_executor.LocalSFTPClient
sftp_client salvus.flow.executors.remote_io_executor.LocalSFTPClientGet the sftp client instance.
Will be initialized upon the first access.
ssh_client salvus.flow.executors.remote_io_executor.LocalSSHClient
ssh_client salvus.flow.executors.remote_io_executor.LocalSSHClientGet the ssh client instance.
Will be initialized upon the first access.
update_interval_in_seconds float
update_interval_in_seconds floatA site’s actual update interval.
use_cuda_capable_gpus bool
use_cuda_capable_gpus boolTrue if a site uses license tokens.
use_license_tokens float
use_license_tokens floatTrue if a site uses license tokens.
cancel_job()
cancel_job()def cancel_job(self, job_dir: str) -> None: ...Cancel the PBS job by calling qdel.
job_dirstr — The job directory.
execute_command()
execute_command()def execute_command(
self,
command: str,
assert_ok: bool = True,
environment: Optional[Dict[str, str]] = None,
) -> Tuple[int, List[str], List[str]]: ...Execute the command.
commandstr — The command to run as a string.assert_okbool — Raise if the command does not exist with a code of 0.environmentOptional[Dict[str, str]] — Environment variables to be set for this command.
get_job_status()
get_job_status()def get_job_status(self, job_dir: str) -> Union[
salvus.flow.executors.types.JobStatus,
List[salvus.flow.executors.types.JobStatus],
]: ...Returns the status of the job or job array to the best knowledge of the remote site.
If the job is a job array, return the status of every job in a list if possible, otherwise just the total status of the whole job.
This is a single method as, in practice, it turns out to be more convenient to implement.
job_dirstr — The job directory.
is_folder_writeable()
is_folder_writeable()def is_folder_writeable(
self,
path: Union[
str, pathlib.Path, pathlib.PurePosixPath, pathlib.PureWindowsPath
],
) -> bool: ...Return True if the user has write permissions in the chosen folder.
pathUnion[str, pathlib.Path, pathlib.PurePosixPath, pathlib.PureWindowsPath] — Path on the remote machine.
launch_many_mpi_jobs()
launch_many_mpi_jobs()def launch_many_mpi_jobs(
self,
job_commands: Dict[int, Any],
working_dir: str,
stdout_path: str,
stderr_path: str,
wall_time_in_seconds_per_job: Optional[int],
license_tokens: Optional[List[str]] = None,
) -> List[salvus.flow.executors.types.JobStatus]: ...Launch many MPI jobs at once.
job_commandsDict[int, Any] — Dictionary of a list of commands, one per list per job.working_dirstr — The remote working directory for the execution.stdout_pathstr — Path to pipe stdout to.stderr_pathstr — Path to pipe stderr to.wall_time_in_seconds_per_jobOptional[int] — Wall-time in seconds per job. Must be set for PBS sites.license_tokensOptional[List[str]] — If the job array uses license tokens for the license enforcement they are passed here.
launch_mpi_job()
launch_mpi_job()def launch_mpi_job(
self,
commands: List[salvus.flow.executors.executor_utils.RemoteCommand],
job_dir: str,
working_dir: str,
stdout_path: str,
stderr_path: str,
wall_time_in_seconds: Optional[int],
is_debug_job: bool = False,
) -> salvus.flow.executors.types.JobStatus: ...Launch a job on a PBS cluster using MPI.
Returns the initial status - always “pending” here.
commandsList[salvus.flow.executors.executor_utils.RemoteCommand] — List of commands. One will be run after the other, but all will be submitted at the same time.job_dirstr — The remote directory where all the job files are stored.working_dirstr — The remote working directory for the execution.stdout_pathstr — Path to pipe stdout to.stderr_pathstr — Path to pipe stderr to.wall_time_in_secondsOptional[int] — Wall-time in seconds. Must be set for PBS sites.is_debug_jobbool — True if this is supposed to be a debug job. Some job management systems have debug or other “fast” queues. Use these special queues if this is set to true.
pretty_print()
pretty_print()def pretty_print(self) -> None: ...Pretty and colorful representation of the site.
remote_exists()
remote_exists()def remote_exists(
self,
path: Union[
str, pathlib.Path, pathlib.PurePosixPath, pathlib.PureWindowsPath
],
) -> bool: ...Check if a remote file or directory exists.
pathUnion[str, pathlib.Path, pathlib.PurePosixPath, pathlib.PureWindowsPath] — Path to check.
remote_get()
remote_get()def remote_get(
self,
remotepath: Union[
str, pathlib.Path, pathlib.PurePosixPath, pathlib.PureWindowsPath
],
localpath: Union[_io.BytesIO, pathlib.Path],
show_progressbar: bool = False,
) -> None: ...Get a remote file.
remotepathUnion[str, pathlib.Path, pathlib.PurePosixPath, pathlib.PureWindowsPath] — Remote file to get.localpathUnion[_io.BytesIO, pathlib.Path] — Local path to save to Can be a file or a file like object.show_progressbarbool — Show a progressbar or not.
remote_listdir()
remote_listdir()def remote_listdir(
self,
path: Union[
str, pathlib.Path, pathlib.PurePosixPath, pathlib.PureWindowsPath
],
) -> List[str]: ...List the contents of a remote directory.
Just dispatches to the underlying representation.
pathUnion[str, pathlib.Path, pathlib.PurePosixPath, pathlib.PureWindowsPath] — Remote path whose contents to list.
remote_mkdir()
remote_mkdir()def remote_mkdir(
self,
path: Union[
str, pathlib.Path, pathlib.PurePosixPath, pathlib.PureWindowsPath
],
mode: int = 511,
) -> None: ...Create a directory on the remote or local machine.
pathUnion[str, pathlib.Path, pathlib.PurePosixPath, pathlib.PureWindowsPath] — Directory to create.modeint — Permissions for the new directory.
remote_put()
remote_put()def remote_put(
self,
localpath: Union[_io.BytesIO, pathlib.Path],
remotepath: Union[
str, pathlib.Path, pathlib.PurePosixPath, pathlib.PureWindowsPath
],
show_progressbar: bool = False,
) -> None: ...Copy a local file to a remote path.
localpathUnion[_io.BytesIO, pathlib.Path] — Local file to copy. Can be a file like object.remotepathUnion[str, pathlib.Path, pathlib.PurePosixPath, pathlib.PureWindowsPath] — Where to copy to.show_progressbarbool — Show a progressbar or not.
remote_rmdir()
remote_rmdir()def remote_rmdir(
self,
path: Union[
str, pathlib.Path, pathlib.PurePosixPath, pathlib.PureWindowsPath
],
verbosity: int = 1,
) -> None: ...Remotely and recursively delete a remote folder and its contents.
pathUnion[str, pathlib.Path, pathlib.PurePosixPath, pathlib.PureWindowsPath] — Remote path to delete.verbosityint — Verbosity level.
safe_remote_rmdir()
safe_remote_rmdir()def safe_remote_rmdir(
self,
path: Union[
str, pathlib.Path, pathlib.PurePosixPath, pathlib.PureWindowsPath
],
allow_failure: bool,
verbosity: int = 1,
) -> None: ...Convenience wrapper that optionally allows the remote_rmdir() command to fail. Useful for some networked file systems.
pathUnion[str, pathlib.Path, pathlib.PurePosixPath, pathlib.PureWindowsPath] — Remote path to delete.allow_failurebool — Whether to allow failure or not.verbosityint — Verbosity level.
LocalSlurmExecutor
LocalSlurmExecutorclass LocalSlurmExecutor(
salvus.flow.executors.implementations.slurm.SlurmExecutor,
salvus.flow.executors.implementations.local.LocalExecutor,
):
def __init__(
self,
name: str,
configuration: Dict,
db: Any,
verbosity: int = 1,
skip_version_number_check: bool = False,
): ...namestr — Site name.configurationDict — Configuration for the site.dbAny — Connection to the internal database.verbosityint — Verbosity level.skip_version_number_checkbool — Skip the version number check of the local Python version vs the remote site. Useful for initializing and updating sites.
file_path_type Union[Type[pathlib.PurePosixPath], Type[pathlib.PureWindowsPath]]
file_path_type Union[Type[pathlib.PurePosixPath], Type[pathlib.PureWindowsPath]]Returns the type of file paths for the given site.
home_dir types
home_dir typesThe home directory.
is_initialized bool
is_initialized boolTrue if the site has been synchronized/initialized with the remote site.
os_type salvus.flow.executors.remote_io_executor.OSType
os_type salvus.flow.executors.remote_io_executor.OSTypeReturn the type of operating system.
sftp_client salvus.flow.executors.remote_io_executor.LocalSFTPClient
sftp_client salvus.flow.executors.remote_io_executor.LocalSFTPClientGet the sftp client instance.
Will be initialized upon the first access.
ssh_client salvus.flow.executors.remote_io_executor.LocalSSHClient
ssh_client salvus.flow.executors.remote_io_executor.LocalSSHClientGet the ssh client instance.
Will be initialized upon the first access.
update_interval_in_seconds float
update_interval_in_seconds floatA site’s actual update interval.
use_cuda_capable_gpus bool
use_cuda_capable_gpus boolTrue if a site uses license tokens.
use_license_tokens float
use_license_tokens floatTrue if a site uses license tokens.
cancel_job()
cancel_job()def cancel_job(self, job_dir: str) -> None: ...Cancels the job.
job_dirstr — The job directory.
execute_command()
execute_command()def execute_command(
self,
command: str,
assert_ok: bool = True,
environment: Optional[Dict[str, str]] = None,
) -> Tuple[int, List[str], List[str]]: ...Execute the command.
commandstr — The command to run as a string.assert_okbool — Raise if the command does not exist with a code of 0.environmentOptional[Dict[str, str]] — Environment variables to be set for this command.
get_job_status()
get_job_status()def get_job_status(self, job_dir: str) -> Union[
salvus.flow.executors.types.JobStatus,
List[salvus.flow.executors.types.JobStatus],
]: ...Returns the status of the job or job array to the best knowledge of the remote site.
If the job is a job array, return the status of every job in a list if possible, otherwise just the total status of the whole job.
This is a single method as, in practice, it turns out to be more convenient to implement.
job_dirstr — The job directory.
is_folder_writeable()
is_folder_writeable()def is_folder_writeable(
self,
path: Union[
str, pathlib.Path, pathlib.PurePosixPath, pathlib.PureWindowsPath
],
) -> bool: ...Return True if the user has write permissions in the chosen folder.
pathUnion[str, pathlib.Path, pathlib.PurePosixPath, pathlib.PureWindowsPath] — Path on the remote machine.
launch_many_mpi_jobs()
launch_many_mpi_jobs()def launch_many_mpi_jobs(
self,
job_commands: Dict[int, Any],
working_dir: str,
stdout_path: str,
stderr_path: str,
wall_time_in_seconds_per_job: Optional[int],
license_tokens: Optional[List[str]] = None,
) -> List[salvus.flow.executors.types.JobStatus]: ...Launch many MPI jobs at once.
job_commandsDict[int, Any] — Dictionary of a list of commands, one per list per job.working_dirstr — The remote working directory for the execution.stdout_pathstr — Path to pipe stdout to.stderr_pathstr — Path to pipe stderr to.wall_time_in_seconds_per_jobOptional[int] — Wall-time in seconds per job. Must be given for slurm sites.license_tokensOptional[List[str]] — If the job array uses license tokens for the license enforcement they are passed here.
launch_mpi_job()
launch_mpi_job()def launch_mpi_job(
self,
commands: List[salvus.flow.executors.executor_utils.RemoteCommand],
job_dir: str,
working_dir: str,
stdout_path: str,
stderr_path: str,
wall_time_in_seconds: Optional[int],
is_debug_job: bool = False,
) -> salvus.flow.executors.types.JobStatus: ...Run an MPI job.
Returns the initial status. Always “pending” for slurm jobs.
commandsList[salvus.flow.executors.executor_utils.RemoteCommand] — List of commands. One will be run after the other, but all will be submitted at the same time.job_dirstr — The remote directory where all the job files are stored.working_dirstr — The remote working directory for the execution.stdout_pathstr — Path to pipe stdout to.stderr_pathstr — Path to pipe stderr to.wall_time_in_secondsOptional[int] — Wall-time in seconds. Must be given for slurm sites.is_debug_jobbool — True if this is supposed to be a debug job. Some job management systems have debug or other “fast” queues. Use these special queues if this is set to true.
pretty_print()
pretty_print()def pretty_print(self) -> None: ...Pretty and colorful representation of the site.
remote_exists()
remote_exists()def remote_exists(
self,
path: Union[
str, pathlib.Path, pathlib.PurePosixPath, pathlib.PureWindowsPath
],
) -> bool: ...Check if a remote file or directory exists.
pathUnion[str, pathlib.Path, pathlib.PurePosixPath, pathlib.PureWindowsPath] — Path to check.
remote_get()
remote_get()def remote_get(
self,
remotepath: Union[
str, pathlib.Path, pathlib.PurePosixPath, pathlib.PureWindowsPath
],
localpath: Union[_io.BytesIO, pathlib.Path],
show_progressbar: bool = False,
) -> None: ...Get a remote file.
remotepathUnion[str, pathlib.Path, pathlib.PurePosixPath, pathlib.PureWindowsPath] — Remote file to get.localpathUnion[_io.BytesIO, pathlib.Path] — Local path to save to Can be a file or a file like object.show_progressbarbool — Show a progressbar or not.
remote_listdir()
remote_listdir()def remote_listdir(
self,
path: Union[
str, pathlib.Path, pathlib.PurePosixPath, pathlib.PureWindowsPath
],
) -> List[str]: ...List the contents of a remote directory.
Just dispatches to the underlying representation.
pathUnion[str, pathlib.Path, pathlib.PurePosixPath, pathlib.PureWindowsPath] — Remote path whose contents to list.
remote_mkdir()
remote_mkdir()def remote_mkdir(
self,
path: Union[
str, pathlib.Path, pathlib.PurePosixPath, pathlib.PureWindowsPath
],
mode: int = 511,
) -> None: ...Create a directory on the remote or local machine.
pathUnion[str, pathlib.Path, pathlib.PurePosixPath, pathlib.PureWindowsPath] — Directory to create.modeint — Permissions for the new directory.
remote_put()
remote_put()def remote_put(
self,
localpath: Union[_io.BytesIO, pathlib.Path],
remotepath: Union[
str, pathlib.Path, pathlib.PurePosixPath, pathlib.PureWindowsPath
],
show_progressbar: bool = False,
) -> None: ...Copy a local file to a remote path.
localpathUnion[_io.BytesIO, pathlib.Path] — Local file to copy. Can be a file like object.remotepathUnion[str, pathlib.Path, pathlib.PurePosixPath, pathlib.PureWindowsPath] — Where to copy to.show_progressbarbool — Show a progressbar or not.
remote_rmdir()
remote_rmdir()def remote_rmdir(
self,
path: Union[
str, pathlib.Path, pathlib.PurePosixPath, pathlib.PureWindowsPath
],
verbosity: int = 1,
) -> None: ...Remotely and recursively delete a remote folder and its contents.
pathUnion[str, pathlib.Path, pathlib.PurePosixPath, pathlib.PureWindowsPath] — Remote path to delete.verbosityint — Verbosity level.
safe_remote_rmdir()
safe_remote_rmdir()def safe_remote_rmdir(
self,
path: Union[
str, pathlib.Path, pathlib.PurePosixPath, pathlib.PureWindowsPath
],
allow_failure: bool,
verbosity: int = 1,
) -> None: ...Convenience wrapper that optionally allows the remote_rmdir() command to fail. Useful for some networked file systems.
pathUnion[str, pathlib.Path, pathlib.PurePosixPath, pathlib.PureWindowsPath] — Remote path to delete.allow_failurebool — Whether to allow failure or not.verbosityint — Verbosity level.