pyiron_workflow.executorlib module

Simple wrappers around executorlib executors, which are exclusively intended to submit the core execution routine, and which override executorlib caching directory with the run configuration directory and cache file roots with the lexical path.

This makes it possible to recover executorlib-cached data between python processes (e.g. shutting down your notebook and coming back), but the onus is on the _user_ to specify the right terminal input data to correspond with this run configuration directory – we don’t do any data hashing. I.e., make a fresh run config directory for each iteration of input data where the caching executors are being leveraged.

class pyiron_workflow.executorlib.CacheOverride(executor: TaskSchedulerBase)[source]

Bases: BaseExecutor

cache_directory: ClassVar[str] = 'executorlib_cache'
submit(fn, /, *args, **kwargs)[source]

Modify behaviour when submitting for a pyiron_workflow execution loop

exception pyiron_workflow.executorlib.DedicatedExecutorError[source]

Bases: TypeError

To raise when you try to use one of these executors outside the context of a node.

class pyiron_workflow.executorlib.NodeSingleExecutor(max_workers: int | None = None, cache_directory: str | None = None, max_cores: int | None = None, resource_dict: dict | None = None, hostname_localhost: bool | None = None, block_allocation: bool = False, init_function: Callable | None = None, disable_dependencies: bool = False, refresh_rate: float = 0.01, plot_dependency_graph: bool = False, plot_dependency_graph_filename: str | None = None, export_workflow_filename: str | None = None, log_obj_size: bool = False, wait: bool = True, restart_limit: int = 0, openmpi_oversubscribe: bool = False)[source]

Bases: CacheOverride, SingleNodeExecutor

class pyiron_workflow.executorlib.NodeSlurmExecutor(max_workers: int | None = None, cache_directory: str | None = None, max_cores: int | None = None, resource_dict: dict | None = None, pysqa_config_directory: str | None = None, pmi_mode: str | None = None, hostname_localhost: bool | None = None, block_allocation: bool = False, init_function: Callable | None = None, disable_dependencies: bool = False, refresh_rate: float = 0.01, plot_dependency_graph: bool = False, plot_dependency_graph_filename: str | None = None, export_workflow_filename: str | None = None, log_obj_size: bool = False, wait: bool = True, openmpi_oversubscribe: bool = False)[source]

Bases: CacheOverride, SlurmClusterExecutor

exception pyiron_workflow.executorlib.ProtectedResourceError[source]

Bases: ValueError

Raise when a user provides executorlib resources that we need to override.