我正在Windows HPC群集上运行Python脚本。脚本中的函数使用multiprocessing
包中的starmap
来并行化某个计算密集型进程。在HPC群集上使用Python多处理
当我在单个非群集机器上运行脚本时,我获得了预期的速度提升。当我登录到节点并在本地运行脚本时,我获得了预期的速度提升。但是,当作业管理器运行脚本时,从multiprocessing
的速度提升要么完全缓解,要么有时甚至慢两倍。我们已经注意到当调用starmap
函数时会发生内存分页。我们认为这与Python的multiprocessing
的本质有关,即每个核心都会启动一个单独的Python解释器。
由于我们从单一节点的控制台运行成功,我们试图运行HPC_CREATECONSOLE=True
的脚本,但无济于事。
在运行使用multiprocessing
的Python脚本时,我们应该使用作业管理器中的某种设置吗? multiprocessing
仅适用于HPC群集吗?