Antarmuka Perpustakaan dan Baris Perintah untuk mendukung berinteraksi dengan beberapa kelompok HPC
Memberikan kemampuan untuk berinteraksi dengan sistem penjadwalan pekerjaan HPC paling populer menggunakan antarmuka tunggal dan memungkinkan pembuatan skrip pengiriman pekerjaan.
Diuji dengan SGE, LSF dan Slurm (PBS/Torsi Dukungan yang sedang dikembangkan)
MyCluster dapat diinstal dari PYPI.
pip install mycluster
MyCluster akan menulis alamat email Anda ke file pengiriman apa pun sehingga Anda dapat menerima pembaruan dari penjadwal. Anda dapat menyediakan ini pada baris perintah atau menyimpannya di file konfigurasi. Untuk menyimpan email Anda di file konfigurasi yang dijalankan:
mycluster configure
Secara default, MyCluster akan mencoba dan mendeteksi penjadwal yang mendasarinya tetapi ini dapat ditimpa dengan mengatur variabel lingkungan MyCluster_sched. Ini harus diatur ke nama string dari kelas Python yang mengimplementasikan kelas mycluster.schedulers.base.Scheduler .
Dalam beberapa kasus, Anda mungkin ingin mengganti templat pengiriman, misalnya jika Anda ingin memasukkan parameter tambahan atau perintah penjadwal. Untuk melakukan ini atur variabel lingkungan mycluster_template ke template jinja yang ingin Anda gunakan. Lihat MyCluster/Penjadwal/Templat untuk Templat Basis.
MyClusyter menginstal perintah "MyCluster" CLI untuk berinteraksi dengan penjadwal lokal melalui baris perintah.
Cetak Perintah Bantuan
mycluster <command> --help
Sebutkan semua antrian
mycluster queues
Daftar pekerjaan
mycluster list
Buat file pengiriman baru, lihat --help untuk lebih banyak opsi pengiriman.
mycluster create JOBFILE QUEUE RUNSCRIPT
Kirimkan file pekerjaan
mycluster submit JOBFILE
Batalkan pekerjaan
mycluster cancel JOBID
Runscript yang akan dieksekusi oleh Job_script dapat memanfaatkan variabel lingkungan yang telah ditentukan sebelumnya
export NUM_TASKS=
export TASKS_PER_NODE=
export THREADS_PER_TASK=
export NUM_NODES=
# OpenMP configuration
export OMP_NUM_THREADS= $THREADS_PER_TASK
# Default mpiexec commnads for each flavour of mpi
export OMPI_CMD= " mpiexec -n $NUM_TASKS -npernode $TASKS_PER_NODE -bysocket -bind-to-socket "
export MVAPICH_CMD= " mpiexec -n $NUM_TASKS -ppn $TASKS_PER_NODE -bind-to-socket "
export IMPI_CMD= " mpiexec -n $NUM_TASKS -ppn $TASKS_PER_NODE " MyCluster dapat digunakan secara program menggunakan modul MyCluster. Semua penjadwal menerapkan kelas mycluster.schedulers.base.Scheduler .
import mycluster
# Detect the local scheduler
scheduler = mycluster . detect_scheduling_sys ()
print ( f"Scheduler loaded: { scheduler . scheduler_type () } " )
# Create a batch script to submit a 48 task run of script.sh to the skylake queue
script = scheduler . create ( "skylake" , 48 , "my_job" , "script.sh" , "01:00:00" , tasks_per_node = 24 )
# Write to a file
with open ( "mysub.job" , "w" ) as f :
f . write ( script )
# Submit the batch script
job_id = scheduler . submit ( "mysub.job" )
# Check the status of the job
print ( scheduler . get_job_details ( job_id ))
# Cancel the job
scheduler . delete ( job_id )