如何解决使用dask-jobqueue时,SLURM批处理文件仍需要#SBATCH调用来进行资源分配吗?
直到现在,我一直只在一个节点上使用SLURM在HPC上运行代码,并使用joblib并行计算。为了提交工作,我有一个工作提交文件
#SBATCH --time=60:00:00
#SBATCH --output=windows.out
#SBATCH --error=windows.err
#SBATCH --ntasks=40
#SBATCH --ntasks-per-node=40
# Load environment
module load conda/py3-latest
source activate myenvpy3
cd /mainfs/home/PEDRO/
# Run Python parallel program
python individual_validate_windows.py 40
exit
我正在尝试使用dask.distributed和dask-jobqueue来使用HPC上更多的可用资源。我的主要疑问是我是否仍然需要#SBATCH调用来在批处理文件中分配资源,或者是否已经使用集群并通过Python代码中的dask-jobqueue进行了扩展。另外,当使用dask作为后端时,我是否仍需要为joblib.parallel指定n_jobs参数?
cluster = SLURMCluster(cores=40,memory='160 GB',walltime='60:00:00',job_extra=['--output=individual_validate_windows.out','--error=individual_validate_windows.err','--mail-type=ALL'])
cluster.scale(3)
client = Client(cluster)
# Executing analysis in parallel
with joblib.parallel_backend('dask'):
parallel = Parallel(verbose=1,n_jobs=-2)
out = parallel(delayed(cv_and_fit)(features,target,params,train_index,test_index)
for params,(train_index,test_index) in product(param_grid,kf.split(features)))
任何帮助将不胜感激。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。