Re: [問題] 關於MPI for C++
※ 引述《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 (uranus@tinlans.org)
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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章