作者tinlans ( )
看板C_and_CPP
标题Re: [问题] 关於MPI for C++
时间Thu Apr 16 00:47:07 2009
※ 引述《sonefish (好人大叔)》之铭言:
: 小弟 想问一下版上的大大 由於小弟是初心者 这学期开始刚接触c/C++
: 但是上课的老师 并不觉得这个是很大的问题
: 之前自己高中的时候 有稍微学过c++
: 所以程式的部份还看的懂
: 最近老师出了一个作业
: 是有关 於 MPI的 网路上找了很多资料 好像在linux 上面的话是 IPC
MPI 其实比较像是 socket,
你要说是 IPC 也是可以,
不过一般讲 IPC 不会包含跨 server 的 communication,
但 MPI 是可以跨 server 的 (简单来说就是支援分散式架构),
而且 programmer 根本不知道也不用管有没有跨 server。
: 想问一下 不管是MPI 或者 IPC 我都遇到一个问题就是
: 找不到 必须使用的 标头档 mpi.h (MPI) or sys/ipc.h sys/shm.h(ipc)
: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
: 都有找到 但是载入的时候 都会出错 mpi最严重 几乎整个定义都有问题
: 有上英文网站找过资料了
这个有人回了就不讲了。
: 想问一下 关於
: a process 要传送讯息给 b process 这个要怎麽制作呢?
在不特别使用 tag 为前提,
传的资料是 int 的话,
在只有 a process 会跑到的地方写
MPI::COMM_WORLD.Send(&intData, dataSize, MPI::INT, rankB, 0);
在只有 b process 会跑到的地方写
MPI::COMM_WORLD.Recv(&intData, dataSize, MPI::INT, rankA, MPI::ANY_TAG);
rank 是一种类似 process id 的概念,
process 自己的 rank 可以用 MPI::COMM_WORLD.Get_rank() 拿到,
process 的总数可以用 MPI::COMM_WORLD.Get_size() 拿到,
剩下的你就自己发挥了。
: 我有找到 关於这个的程式 可是 我看不太懂
: 我可以把程式 寄给版上得某位大大? 帮我解说一下吗?
: (不知道这样问 会不会太不礼貌)
你还是自己想办法看懂比较能进步。
: 第一次发问 请各位大大 指教
: 最後感谢大家看完这篇很长的文 <(_ _)>
--
Ling-hua Tseng (
[email protected])
Department of Computer Science, National Tsing-Hua University
Interesting: C++, Compiler, PL/PD, OS, VM, Large-scale software design
Researching: Software pipelining for VLIW architectures
Homepage:
https://www.tinlans.org
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.160.108.173