我安装 MS-MPI
我喜欢用 Sublime Text 编写代码,特别是 C/C++
我使用 gcc/g++ 在 cmd 中运行代码
我怎样才能编译并运行从 cmd 编译并运行 MPI 代码
我不喜欢视觉工作室
那么,有什么方法可以在 cmd 中使用 MS-MPI 编译和运行我的 C/C++ MPI 代码
我知道标题中有一个问题: Compile C++ MPI Code on Windows
但没有明确的答案或评论。这就是为什么我现在重新问
在 Windows 10 上的 MSMPI 上使用 MPI4PY 3.0.0 在 Python 3.7.0 中实现并行算法时,我遇到了 Gatherv 没有收集所有内容的问题......在检查各种位的打印时,它似乎以错误的顺序执行.
我写了一些重复问题的代码:
from mpi4py import MPI
from time import sleep
import random
comm = MPI.COMM_WORLD
rank = comm.Get_rank()
if rank == 0:
sleep(2)
print("head finished sleeping")
comm.Barrier()
sleep(random.uniform(0, 2))
print(rank, 'finished sleeping ')
comm.Barrier()
if rank == 0:
print("All done!")
Run Code Online (Sandbox Code Playgroud)
如果我理解comm.Barrier()正确,这应该会产生
head finished sleeping
2 finished sleeping
0 finished sleeping
3 finished sleeping
1 finished sleeping
4 finished sleeping
All done!
Run Code Online (Sandbox Code Playgroud)
中间位按某种顺序排列,对吗?但是当我实际运行时,mpiexec -n 5 …
当我使用来运行下面的代码时mpiexec -n 5 python mpiTest.py,我希望每个进程都立即打印其消息,然后休眠指定的时间。相反,它的执行就像我在print命令之后放置sleep命令一样。为什么会发生这种情况,如何使它表现出预期的效果?
MPI.COMM_WORLD.Barrier()在print和sleep命令之间添加a 并没有帮助。
我在win10上使用MS-MPI。
from mpi4py import MPI
import random
import time
def delayed():
random.seed()
sek = random.randint( 1, 5 )
print( "Delaying for ", sek, " seconds." )
time.sleep( sek )
return
delayed()
Run Code Online (Sandbox Code Playgroud)