[英]How to properly submit a dask written script with SLURM
我正在使用dask在多个节点上启动for循环。 问题是我不确定如何使用SLURM正确发送作业
我可以从登录节点正确启动它,但是已经警告我,它会占用大量内存,然后提交作业。 问题是,当我提交作业时,dask无法提交作业,因为它没有计算节点的访问权限,从而导致错误:sbatch: error: Batch job submission failed: Access/permission denied
我的代码如下:
somefunc(n):
try:
long calculation
return result
except:
return to be filtered result
def main():
num_image = 268828
X = np.empty((num_image,7), dtype=np.float32)
cluster = SLURMCluster(cores=32,
processes=32,
interface ="ib0",
walltime="04:10:00",
memory = "80GB")
cluster.scale(600)
client = Client(cluster)
with tqdm (total = num_image) as pbar:
future = client.map(somefunc, range(num_image))
for future,result in as_completed(future,with_results = True):
X[result[0],:] = result
pbar.update(1)
future.release()
return X
if __name__ == '__main__':
x = main()
io.savemat('/gpfs/home/savedata.mat', {'data': x})
我的工作文件很简单:
conda activate my_env
python my_code.py
所以它只要求一个节点(为什么我只需要将信息传递给sheduler)
错误:批处理作业提交失败:访问/权限被拒绝
这可能是特定于您的群集的问题。 我建议您向系统管理员寻求帮助。 您可能需要给他们完整的追溯。
有关常见问题的示例,我建议以下博客文章: https ://blog.dask.org/2019/08/28/dask-on-summit
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.