Python 如何使用SLURM正确提交dask书面脚本

Python 如何使用SLURM正确提交dask书面脚本,python,dask,dask-distributed,Python,Dask,Dask Distributed,我使用dask在几个节点上启动for循环。问题是我不知道如何正确地发送带有SLURM的作业 我可以从登录节点正确地启动它,但有人警告我,它会占用大量内存,然后提交作业。问题是,当我提交作业时,dask无法提交作业,因为它没有来自计算节点的访问权限,导致错误:sbatch:错误:批作业提交失败:访问/权限被拒绝 我的代码如下所示: somefunc(n): try: long calculation return result except:

我使用dask在几个节点上启动for循环。问题是我不知道如何正确地发送带有SLURM的作业

我可以从登录节点正确地启动它,但有人警告我,它会占用大量内存,然后提交作业。问题是,当我提交作业时,dask无法提交作业,因为它没有来自计算节点的访问权限,导致错误:sbatch:
错误:批作业提交失败:访问/权限被拒绝

我的代码如下所示:

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
因此它只要求一个节点(为什么我只需要将信息传递给调度程序)

错误:批处理作业提交失败:访问/权限被拒绝

这可能是特定于集群的问题。我建议您向系统管理员寻求帮助。你可能需要给他们完整的回溯

关于常见问题的示例,我推荐以下博客: