2012-06-26から1日間の記事一覧

C++でOpenMPI入門4 構造体のブロードキャスト1

前回はプリミティブ型であるintをブロードキャストしたが, 複数の型の変数をまとめて同期したいときなどは構造体にしてブロードキャストできると便利. #include <iostream> #include <mpi.h> struct parameter { int seed; double temperature; }; int main(int argc, char **</mpi.h></iostream>…

C++でOpenMPI入門3 ブロードキャスト

お次はブロードキャスト.標準入力から情報を得たいときに, ランクを気にせず普通にやってしまうと, プロセス全てから値を尋ねられて大変な事になる. そこで, 0番目のプロセスでだけ入力を得て, 後は他のプロセスに0番目から教えてやる, という方式をとる. #i…

C++でOpenMPI入門2 サイズ, バリア, リダクション

リダクションを試してみる.以下では各プロセスから各自のランクをリダクションで通信して, そのランクの平均値を求めている. #include <iostream> #include <stdlib.h> #include <mpi.h> int main(int argc, char **argv) { MPI::Init(argc, argv); int rank = MPI::COMM_WORLD.Get_rank</mpi.h></stdlib.h></iostream>…

C++でOpenMPI入門1 ランク

おもむろにOpenMPIに取り組んでみようと思う. FortranやC言語でも情報が散逸しているのが現状のようだが, C++となると基本は同じとは言え, いまいちよくわからん.というわけで, ここにサンプルを示しながら, 勉強していきたい. サンプルはここに従って試して…