salvus.flow.executors.implementations.grid_engine
Classes
GridEngineExecutor
GridEngineExecutorclass GridEngineExecutor(salvus.flow.executors.base_executor.BaseExecutor):
def __init__(
self,
name: str,
configuration: Dict,
db: Any,
verbosity: int = 1,
skip_version_number_check: bool = False,
): ...namestr — Name of the site using the executor.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.OSTypeReturns the type of the operating system.
Subclasses can overwrite this.
sftp_client Union[paramiko.sftp_client.SFTPClient, salvus.flow.executors.remote_io_executor.LocalSFTPClient]
sftp_client Union[paramiko.sftp_client.SFTPClient, salvus.flow.executors.remote_io_executor.LocalSFTPClient]Get the sftp client instance.
Will be initialized upon the first access.
ssh_client Union[paramiko.client.SSHClient, salvus.flow.executors.remote_io_executor.LocalSSHClient]
ssh_client Union[paramiko.client.SSHClient, salvus.flow.executors.remote_io_executor.LocalSSHClient]Get 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.