graph LR
SlurmExecutor["SlurmExecutor"]
Slurm_Parameter_Management["Slurm Parameter Management"]
Slurm_Script_Generation["Slurm Script Generation"]
Slurm_Job_Information_Parsing["Slurm Job Information & Parsing"]
Slurm_Job_Representation["Slurm Job Representation"]
Slurm_Utility_Functions["Slurm Utility Functions"]
SlurmExecutor -- "utilizes" --> Slurm_Parameter_Management
SlurmExecutor -- "initiates" --> Slurm_Script_Generation
SlurmExecutor -- "manages" --> Slurm_Job_Representation
SlurmExecutor -- "interacts with" --> Slurm_Job_Information_Parsing
Slurm_Parameter_Management -- "provides input to" --> SlurmExecutor
Slurm_Script_Generation -- "receives input from" --> SlurmExecutor
Slurm_Script_Generation -- "relies on" --> Slurm_Utility_Functions
Slurm_Job_Information_Parsing -- "provides details to" --> SlurmExecutor
Slurm_Job_Information_Parsing -- "relies on" --> Slurm_Utility_Functions
Slurm_Job_Representation -- "managed by" --> SlurmExecutor
Slurm_Utility_Functions -- "supports" --> Slurm_Script_Generation
Slurm_Utility_Functions -- "supports" --> Slurm_Job_Information_Parsing
The Slurm Executor Backend subsystem, primarily encapsulated within the submitit.slurm.slurm module, serves as the dedicated interface for submitit to interact with the Slurm workload manager. It embodies the Facade/Wrapper and Executor Pattern by abstracting the complexities of Slurm job submission and management.
The central orchestrator for Slurm job submissions. It initializes the executor, validates and converts submission parameters, and manages the core process of submitting jobs to the Slurm cluster. This component embodies the Executor Pattern, abstracting the complexities of job execution.
Related Classes/Methods:
Handles the validation, conversion, and internal updating of job submission parameters to ensure they conform to Slurm's requirements and submitit's internal structure. It acts as a configuration layer for Slurm jobs.
Related Classes/Methods:
submitit.slurm.slurm._get_default_parameters:387-392submitit.slurm.slurm._valid_parameters:271-274submitit.slurm.slurm._convert_parameters:276-281submitit.slurm.slurm._internal_update_parameters:283-319submitit.slurm.slurm._convert_mem:533-536
Responsible for constructing the sbatch command strings and generating the content of the Slurm submission script files. This is a key aspect of the Command Pattern, where the library generates the commands to be executed by the external Slurm system.
Related Classes/Methods:
submitit.slurm.slurm._make_sbatch_string:396-530submitit.slurm.slurm._make_submission_file_text:357-358submitit.slurm.slurm._submitit_command_str:353-355
Extracts and parses information related to Slurm jobs, such as job IDs, node lists, and hostnames, from Slurm's output or internal data structures. This component is crucial for monitoring and retrieving job status.
Related Classes/Methods:
submitit.slurm.slurm.read_info:68-99submitit.slurm.slurm.read_job_id:23-39submitit.slurm.slurm._parse_node_group:141-161submitit.slurm.slurm._parse_node_list:164-172submitit.slurm.slurm.hostnames:193-208
Represents an individual job submitted to Slurm, holding its unique identifier and status. It's a data structure used by the SlurmExecutor to track submitted jobs throughout their lifecycle.
Related Classes/Methods:
Provides essential helper functionalities specific to Slurm interaction, such as safely joining shell commands, formatting sbatch flags, and handling parsing-related exceptions. These utilities support the core Slurm interaction logic.
Related Classes/Methods: