Configuration API¶
Clustrix provides flexible configuration management for cluster settings, authentication, and execution preferences.
- class clustrix.config.ClusterConfig(api_key=None, username=None, password=None, key_file=None, cluster_type='slurm', cluster_host=None, cluster_port=22, default_cores=4, default_memory='8GB', default_time='01:00:00', default_partition=None, default_queue=None, remote_work_dir='/tmp/clustrix', local_cache_dir='~/.clustrix/cache', conda_env_name=None, python_executable='python', auto_parallel=True, max_parallel_jobs=100, job_poll_interval=30, cleanup_on_success=True, prefer_local_parallel=False, local_parallel_threshold=1000, environment_variables=None, module_loads=None, pre_execution_commands=None)[source]¶
Bases:
objectConfiguration settings for cluster execution.
- __init__(api_key=None, username=None, password=None, key_file=None, cluster_type='slurm', cluster_host=None, cluster_port=22, default_cores=4, default_memory='8GB', default_time='01:00:00', default_partition=None, default_queue=None, remote_work_dir='/tmp/clustrix', local_cache_dir='~/.clustrix/cache', conda_env_name=None, python_executable='python', auto_parallel=True, max_parallel_jobs=100, job_poll_interval=30, cleanup_on_success=True, prefer_local_parallel=False, local_parallel_threshold=1000, environment_variables=None, module_loads=None, pre_execution_commands=None)¶
- clustrix.config.configure(**kwargs)[source]¶
Configure Clustrix settings.
- Parameters:
**kwargs – Configuration parameters matching ClusterConfig fields
- Return type:
Configuration Methods¶
Programmatic Configuration¶
import clustrix
clustrix.configure(
cluster_type='slurm',
cluster_host='cluster.example.com',
username='myuser',
key_file='~/.ssh/id_rsa',
default_cores=8,
default_memory='16GB'
)
Configuration File¶
Create a clustrix.yml file:
cluster_type: slurm
cluster_host: cluster.example.com
username: myuser
key_file: ~/.ssh/id_rsa
default_cores: 8
default_memory: 16GB
default_time: "02:00:00"
default_partition: gpu
remote_work_dir: /scratch/myuser/clustrix
conda_env_name: myproject
auto_parallel: true
max_parallel_jobs: 50
cleanup_on_success: true
module_loads:
- python/3.9
- cuda/11.2
environment_variables:
CUDA_VISIBLE_DEVICES: "0,1"
Environment Variables¶
Set configuration via environment variables:
export CLUSTRIX_CLUSTER_TYPE=slurm
export CLUSTRIX_CLUSTER_HOST=cluster.example.com
export CLUSTRIX_USERNAME=myuser
Configuration Options¶
Authentication¶
username: SSH usernamepassword: SSH password (not recommended)key_file: Path to SSH private key file
Cluster Settings¶
cluster_type: Type of cluster (slurm, pbs, sge, kubernetes, ssh)cluster_host: Hostname of cluster head nodecluster_port: SSH port (default: 22)
Resource Defaults¶
default_cores: Default number of CPU coresdefault_memory: Default memory allocationdefault_time: Default time limitdefault_partition: Default partition/queue
Execution Preferences¶
auto_parallel: Enable automatic loop parallelizationmax_parallel_jobs: Maximum number of parallel jobsprefer_local_parallel: Prefer local over remote parallel executioncleanup_on_success: Clean up remote files after successful execution