t**********y 发帖数: 374 | 1 如果是普通, 任意的perl script/python script, 用mpirun可以提高速度吗?
mpirun有没有容易理解的instruction/example可以推荐?
mpirun 和 request multiple threads/cpus有什么区别?
谢谢了! | s******d 发帖数: 278 | 2 不太明白, 如果你只是mpirun, 但是内部却没有任何处理并行的机制,比如job的分
割,mpirun难道不都是在做一样的事情吗?
python下面的mpi4py很好用,简直简单到无脑。。。
Python下面因为有GIL的存在, 所以没有简单的multi-threading. | t**********y 发帖数: 374 | 3 我的确是不懂mpirun是怎么个work的
我这里python call multiple processes, 而其中一个process 在处理大的数据时非常
慢. 这个process 本身可以设置multiple threading, 但同时也有一个mpi version
所以是第一次接触mpirun
我的问题就是:可以用mpirun 运行原始python (而不时修改python)来提高速度吗?
另外就是,job是在cluster 上做的, 每个node 有 8个cpu. 系统demo说, treads最大设
置8;但是如果mpirun -np 设置可以很大.这也是我糊涂的地方...
【在 s******d 的大作中提到】 : 不太明白, 如果你只是mpirun, 但是内部却没有任何处理并行的机制,比如job的分 : 割,mpirun难道不都是在做一样的事情吗? : python下面的mpi4py很好用,简直简单到无脑。。。 : Python下面因为有GIL的存在, 所以没有简单的multi-threading.
| s******d 发帖数: 278 | 4 MPI的定义:
The Open MPI Project is an open source Message Passing Interface
implementation that is developed and maintained by a consortium of academic,
research, and industry partners. https://www.open-mpi.org/
简单的说就是处理器的通信渠道。
If you use mpi to run your serial code without any modification, it won't do
anything special. Every cores will just do the same thing. If you want use
mpi, you need to manage job partition and core comunication yourself.
第二个问题,你可以把mpirun理解成进程,"mpirun -n 16"会产生16个进程,如果你在
16个core上面跑,就是每个core上分到一个。如果在4个core, 就是每个core有四个进
程。
有说的什么不对的大家指正。
【在 t**********y 的大作中提到】 : 我的确是不懂mpirun是怎么个work的 : 我这里python call multiple processes, 而其中一个process 在处理大的数据时非常 : 慢. 这个process 本身可以设置multiple threading, 但同时也有一个mpi version : 所以是第一次接触mpirun : 我的问题就是:可以用mpirun 运行原始python (而不时修改python)来提高速度吗? : 另外就是,job是在cluster 上做的, 每个node 有 8个cpu. 系统demo说, treads最大设 : 置8;但是如果mpirun -np 设置可以很大.这也是我糊涂的地方...
|
|