设置dask员工数量的最佳实践
在集群上设置worker时,dask和dask.distributed中使用的不同术语让我有点困惑 我遇到的术语是:线程、进程、处理器、节点、工作者、调度器 我的问题是如何设置每个的数量,以及它们之间是否存在严格的或推荐的关系。例如:设置dask员工数量的最佳实践,dask,dask-distributed,Dask,Dask Distributed,在集群上设置worker时,dask和dask.distributed中使用的不同术语让我有点困惑 我遇到的术语是:线程、进程、处理器、节点、工作者、调度器 我的问题是如何设置每个的数量,以及它们之间是否存在严格的或推荐的关系。例如: 每个节点1个工作进程,节点上的n个核有n个进程 线程和进程是同一个概念吗?在dask mpi中,我必须设置nthreads,但它们在客户机中显示为进程 还有其他建议吗?“节点”通常指的是物理或虚拟机。该节点可以同时运行多个程序或进程(就像我的计算机可以同时运行
- 每个节点1个工作进程,节点上的n个核有n个进程
- 线程和进程是同一个概念吗?在dask mpi中,我必须设置nthreads,但它们在客户机中显示为进程
- 四个进程,每个进程有九个线程
- 十二个进程,每个进程有三个线程
- 一个进程有三十六个线程
简言之,如果您主要使用numpy/pandas样式的数据,请尝试在一个进程中获得至少八个线程。否则,一个进程中可能只有两个线程。我所说的节点是指HPC上的计算节点。对于我的特殊情况,一个节点有16个内核和1个GPU。我想运行的程序是OpenMM,一个用C++编写的分子动力学模拟引擎,用Python绑定(因此我假设没有吉尔问题)。每个模拟都需要一个GPU,因此每个节点需要一个模拟。因此,我应该在
--resources“GPU=1”
中使用每个节点1个进程和16个线程的工作线程?是的,使用工作线程资源似乎是一个明智的选择如果答案包括LocalClient
和远程客户端(例如Yancluster
)的定义,它将非常有用。我们使用的是一个小型集群(有6个节点),而每个节点有64个vCore和300GB RAM。我无法配置yancluster
以worker
的身份运行每个vcore
。我有6台带有12个“逻辑处理器”的“核心”计算机。我应该为神奇的数字6还是12而努力吗?这完全取决于你想要运行的计算。这不是关于达斯克的问题。这是一个关于代码如何并行运行的问题。例如,努比在这里的行为可能与熊猫不同。