亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Slurm 和 mpi4py :用一個進程重復 n 次操作,而不是用 n 個進程重復執行一次

Slurm 和 mpi4py :用一個進程重復 n 次操作,而不是用 n 個進程重復執行一次

蠱毒傳說 2023-09-12 18:20:03
我是 Slurm 和 mpi4py 的新用戶,所以我想測試我在這里找到的一些代碼: https: //researchcomputing.princeton.edu/mpi4py我的Python代碼test.py如下:from mpi4py import MPIimport sysdef print_hello(rank, size, name):  msg = "Hello World! I am process {0} of {1} on {2}.\n"  sys.stdout.write(msg.format(rank, size, name))if __name__ == "__main__":  size = MPI.COMM_WORLD.Get_size()  rank = MPI.COMM_WORLD.Get_rank()  name = MPI.Get_processor_name()  print_hello(rank, size, name)我的 bash 腳本是:#!/bin/bash#SBATCH --job-name=mpi4py-test #SBATCH --nodes=1                #SBATCH --ntasks=3              #SBATCH --cpus-per-task=1 srun python test.py運行時sbatch run.sh我期望得到類似的東西:Hello World! I am process 0 of 3 on node1.Hello World! I am process 1 of 3 on node1.Hello World! I am process 2 of 3 on node1.但是我得到:Hello World! I am process 0 of 1 on node1.Hello World! I am process 0 of 1 on node1.Hello World! I am process 0 of 1 on node1.如果我改變的srun python test.py話srun mpiexec -n 3 python test.py我會得到:Hello World! I am process 0 of 3 on node1.Hello World! I am process 2 of 3 on node1.Hello World! I am process 1 of 3 on node1.Hello World! I am process 1 of 3 on node1.Hello World! I am process 0 of 3 on node1.Hello World! I am process 2 of 3 on node1.Hello World! I am process 0 of 3 on node1.Hello World! I am process 1 of 3 on node1.Hello World! I am process 2 of 3 on node1.該進程執行了 3 次,但我只想執行一次。提前致謝。
查看完整描述

1 回答

?
POPMUISE

TA貢獻1765條經驗 獲得超5個贊

這可能是因為

  • Mpi4py 使用的 MPI 版本未使用 Slurm 支持進行編譯;或者

  • 你有一個非常舊的 OpenMPI ;或者

  • 你有一個非常古老的 Slurm。

跑步

mpiexec -n 3 python test.py

可能會得到你想要的。


查看完整回答
反對 回復 2023-09-12
  • 1 回答
  • 0 關注
  • 133 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號