f**********0 发帖数: 1229 | 1 例如一个建模的程序,一个CPU+16个core可能也不够。
如果我有一个cluster,10个CPU,每个cpu16个core,我怎样能把这10个CPU同时用起来运
行我的这一个程序,这样就16*10=160个core效率就快了很多.
好像MPI也不能简单的做这个,1个cpu可以用OpenMP,多个呢?
是不是需要像GPU那样?多谢。 | f**********0 发帖数: 1229 | | s*****c 发帖数: 753 | 3 it is a cluster? so it must have MPI support.
If your program can be modified to use openmp, it can be modified to use MPI
. Same place to change.
However, it depends on your application whether cluster/mpi can help
improving the performance.
【在 f**********0 的大作中提到】 : 例如一个建模的程序,一个CPU+16个core可能也不够。 : 如果我有一个cluster,10个CPU,每个cpu16个core,我怎样能把这10个CPU同时用起来运 : 行我的这一个程序,这样就16*10=160个core效率就快了很多. : 好像MPI也不能简单的做这个,1个cpu可以用OpenMP,多个呢? : 是不是需要像GPU那样?多谢。
| r**u 发帖数: 1567 | 4 If it is a cluster, then MPI should do it, why MPI can't do it?
【在 f**********0 的大作中提到】 : 例如一个建模的程序,一个CPU+16个core可能也不够。 : 如果我有一个cluster,10个CPU,每个cpu16个core,我怎样能把这10个CPU同时用起来运 : 行我的这一个程序,这样就16*10=160个core效率就快了很多. : 好像MPI也不能简单的做这个,1个cpu可以用OpenMP,多个呢? : 是不是需要像GPU那样?多谢。
| d***a 发帖数: 13752 | 5 仔细读MPI编程手册... :-)
MPI是为并行处理设计的,用多处理器/多核没有问题
如果程序原来是单线程,要改写成MPI并行程序
【在 f**********0 的大作中提到】 : 例如一个建模的程序,一个CPU+16个core可能也不够。 : 如果我有一个cluster,10个CPU,每个cpu16个core,我怎样能把这10个CPU同时用起来运 : 行我的这一个程序,这样就16*10=160个core效率就快了很多. : 好像MPI也不能简单的做这个,1个cpu可以用OpenMP,多个呢? : 是不是需要像GPU那样?多谢。
| q*******g 发帖数: 36 | 6 并行计算通常不是那么简单的事,方法也有多种,必须有针对的选择。
比较简单的是OPENMP,多个CPU可以用openmp
稍微复杂,但是自由度比较高的是MPI
http://www.amazon.com/Using-MPI-2-Scientific-Engineering-Comput
还有选择是GPU
楼主最好先去找个并行计算的教程来看看。
先把基本概念搞清楚再说。 | f**********0 发帖数: 1229 | | p*****2 发帖数: 21240 | | v***r 发帖数: 1046 | 9 needs parallel programming, and it is not trivial work, the performance
depends on your algorithm, and the speedup is usually less than linear.
【在 f**********0 的大作中提到】 : 例如一个建模的程序,一个CPU+16个core可能也不够。 : 如果我有一个cluster,10个CPU,每个cpu16个core,我怎样能把这10个CPU同时用起来运 : 行我的这一个程序,这样就16*10=160个core效率就快了很多. : 好像MPI也不能简单的做这个,1个cpu可以用OpenMP,多个呢? : 是不是需要像GPU那样?多谢。
| x****l 发帖数: 266 | 10 有GPGPU的话,推荐用CUDA并行其中主要一两个模块试试,
如果非要用cluster,那MPI最好,如果嫌不好改,可以试试UPC
【在 f**********0 的大作中提到】 : 例如一个建模的程序,一个CPU+16个core可能也不够。 : 如果我有一个cluster,10个CPU,每个cpu16个core,我怎样能把这10个CPU同时用起来运 : 行我的这一个程序,这样就16*10=160个core效率就快了很多. : 好像MPI也不能简单的做这个,1个cpu可以用OpenMP,多个呢? : 是不是需要像GPU那样?多谢。
| O*******d 发帖数: 20343 | 11 用OpenCL运行在GPU上。 NVidia和AMD都支持OpenCL。 根据你的图卡的等级程度,
OpenCL做浮点计算可以比CPU做浮点计算要快百倍。 |
|