使用Jobqueue达不到使用多个节点的速度

时间:2018-10-25 14:45:50

标签: dask slurm dask-distributed

我正在尝试使用Dask在超级计算资源上的多个节点上进行并行处理-但是Dask分布的映射仅利用了其中一个节点。

这是我用来设置客户端并执行简单操作的测试脚本:

getValueAt(...)

这是输出:

z = dataset.iloc[:, 135].values

from sklearn.preprocessing import LabelEncoder, OneHotEncoder
labelencoder_z = LabelEncoder()
z[:, 135] = labelencoder_z.fit_transform(z[:,135])
onehotencoder = OneHotEncoder(categorical_features = [135])
z = onehotencoder.fit_transform(z).toarray()

虽然打印出客户端信息表明Dask具有正确数量的节点(进程)和每个节点(核心)的任务,但是socket.gethostname()输出和时间戳表明未使用第二个节点。我确实知道dask-jobqueue成功请求了两个节点,并且两个作业同时完成。我尝试使用不同的MPI Fabric进行节点间和节点内通信(例如tcp,shm:tcp,shm:ofa,ofa,ofi,dapl),但这没有改变结果。我还尝试了删除“ export I_MPI_FABRICS”命令并使用“ interface”选项,但这导致代码挂起。

0 个答案:

没有答案