graph LR
submitit_core_core_Executor["submitit.core.core.Executor"]
submitit_core_plugins["submitit.core.plugins"]
submitit_core_core_Executor -- "depends on" --> submitit_core_plugins
submitit_core_plugins -- "provides lookup for" --> submitit_core_core_Executor
The submitit core architecture is centered around the Executor component, which serves as a high-level facade for job submission and management. This Executor relies heavily on the plugins module to dynamically discover and integrate various backend implementations. The plugins module acts as a central registry, enabling the Executor to abstract away the complexities of different execution environments (e.g., local, Slurm) and maintain a consistent user interface. This design promotes extensibility, allowing new execution backends to be seamlessly added without altering the core Executor interface.
This component acts as the primary user-facing Facade and Executor Interface for the submitit library. It offers a high-level, unified API that abstracts the complexities of different job execution backends (e.g., local, Slurm). Its core responsibility is to provide methods for submitting computational jobs, monitoring their progress, and retrieving their results, ensuring a consistent interaction model for users regardless of the underlying execution environment.
Related Classes/Methods:
This module implements the Plugin System and Backend Discovery Mechanism for the Executor Abstraction Layer. Its main responsibility is to enable the dynamic registration, discovery, and retrieval of various executor implementations and job environments. This facilitates the system's extensibility and pluggability, allowing new execution backends to be seamlessly integrated without modifying the core Executor interface. It acts as a registry for available backend types.
Related Classes/Methods: