2ちゃんねる スマホ用 ■掲示板に戻る■ 全部 1- 最新50    

Message Passing Interface (MPI) 統合スレ

1 :デフォルトの名無しさん:04/11/07 18:25:56.net
MPIによる並列プログラミングについて話し合う統合スレッドです。

とりあえず本家
http://www-unix.mcs.anl.gov/mpi/



498 :デフォルトの名無しさん:2011/11/15(火) 11:36:05.43 .net
openmpi使ってるんだがnohupが効かねぇ・・・
端末PC落とすと計算やめちゃうんだが

499 :デフォルトの名無しさん:2011/11/19(土) 16:31:12.60 .net
へえ

500 :デフォルトの名無しさん:2011/11/24(木) 19:56:37.29 .net
MPIの勉強始めようと思うんだけどMPI3ってのはまだ出てないの?

501 :デフォルトの名無しさん:2012/05/16(水) 14:34:19.07 .net
OpemMPとの違いを教えてください

502 :デフォルトの名無しさん:2012/05/16(水) 15:20:09.38 .net
MPI
妖精がいっぱい同時に働く。
拍子を合わせそこなうと、ぐだぐだ。
プログラムは最初から並列前提で書く方が
いいかもしてない。非並列からの移行は面倒臭い。
OpenMP
手がいっぱいある妖精が独りで頑張る。
並列化はかなり楽。

混在できるけどね。

gfortran とか無料コンパイラがOpenMPに
対応しているし、マルチコアCPUが
普通になってきた今日、
小規模から中規模ならOpenMPがオススメ。
大規模スパコン使う可能性があるなら、
MPI で最初から組むべし。

503 :デフォルトの名無しさん:2012/06/21(木) 09:40:29.85 .net
MPIにおすすめのスイッチングハブを教えてください

504 :デフォルトの名無しさん:2012/08/03(金) 08:01:03.03 .net
>>503
バカハブこれ最強

505 :デフォルトの名無しさん:2012/10/31(水) 13:14:04.95 .net
LANポートにあきがあるならノードでリングベース組むのが勉強になるで

俺は混在は結構ありだとおもうで
クラスタとかなら通信時間削減が期待できる

506 :デフォルトの名無しさん:2012/11/23(金) 18:27:19.04 .net
gigabit ethernetからInfiniBandに変えた場合のベンチマーク結果とかありますか?
アプリケーションにも依るとは思うのですが、ある程度、どのくらい向上するのか知りたいのですが
      ♪∧,,∧
   ♪∧,,∧・ ω・)
 ∧,,∧・ ω・)   )っ
(・ ω・)   )っ__フ
(っ  )っ__フ(_/彡
 ( __フ(_/彡
  (_/彡♪

507 :デフォルトの名無しさん:2013/04/01(月) 12:31:36.78 .net
www.science-academy.jp/showcase/11/pdf/P-108_showcase2012.pdf
↑こいつとか、国泰寺高校もそうだけど、学生でもこういうMPIのシステムを構築できる時代なんだな。
ただ、それゆえに性能測定しかしていない。
テーマを持たないと意味ないよな。
それに関して指導できる教師が高校にいるものだろうか?

508 :デフォルトの名無しさん:2013/04/21(日) 05:09:09.55 .net
動的に確保する要素を含む構造体のデータタイプを作るにはどうしたらいいのでしょうか。

int MPI_Type_struct(int count,
int blocklens[],
MPI_Aint indices[],
MPI_Datatype old_types[],
MPI_Datatype *newtype)

のMPI_Aint indices[]のアドレス計算部分で構造体の動的に確保した要素のせいで
アドレスが一部分に固まってないのでよくわかりません。

509 :デフォルトの名無しさん:2013/06/22(土) 16:11:03.36 .net
>>508
要素を一つずつ配布するしかないんじゃないか

510 :デフォルトの名無しさん:2013/07/28(日) NY:AN:NY.AN .net
多体問題とか計算させて可視化とか
ありきたりだけどインパクトはあるよね
そんなに難しくないし

511 :デフォルトの名無しさん:2013/08/28(水) NY:AN:NY.AN .net
みなさんI/O(特に出力)はどうしてますか?
netCDFとかやんないといけないんですかね

512 :デフォルトの名無しさん:2013/10/20(日) 20:32:46.52 .net
初めてMPIプログラムをしたのですが、しばらく動いた後に何回も通っている MPI::COMM_WORLD.Isend で
Segmentation fault が出てしまいます。
Debian(wheezy)の OpenMPI 1.4.5 を使っています。どのような時にこのエラーが出るのでしょうか?
テストプログラムを組んで第1引数をポインタのみで実態が無いように組んでみましたが、一発でエラーが出て
出方が違っていました。この時のエラーは次のように出ます。

[hostname:7247] *** An error occurred in MPI_Isend
[hostname:7247] *** on communicator MPI_COMM_WORLD
[hostname:7247] *** MPI_ERR_BUFFER: invalid buffer pointer
[hostname:7247] *** MPI_ERRORS_ARE_FATAL (your MPI job will now abort)

もし宜しければアドバイスお願いします

513 :デフォルトの名無しさん:2013/10/21(月) 18:46:01.68 .net
mpi_err_buffer invalid buffer pointer でググると、
Stackoverflows上のQ&Aなどの情報が見つけられるね

514 :512:2013/10/22(火) 20:15:27.18 .net
>>513
レス有難うございます。
ググってみましたが、英語が堪能でないため理解できていない状態です orz

ですがテストプログラムで起きる条件を見つけることが出来ました。
スレッドでRecvで待ち受けている状態で同じランク内でIsend, Irecvで
色々送受信する時にエラーが発生するようです。
RecvをIrecvに変更してタグを分ければエラーが発生しないようですが、
まだ良く見ていないのでなんとも言えない状態です。
コミュニケータとかタグをよく理解していなくてよく分からないのですが、
何となく通信を分けれればいいな程度ならタグで分けるでOKです?

515 :デフォルトの名無しさん:2013/11/10(日) 22:41:16.90 .net
ランクを指定してfinalizeに到達したか調べる方法はないですか?

516 :デフォルトの名無しさん:2013/12/04(水) 11:39:20.69 .net
MPI の勉強のために、コードの主要部分は C で書かれていて、
具体的な計算部分は fortran77 で書かれたサブルーチンを
呼んでいる混在コードを MPI 並列化したいと思っています。
当面の目標は、MPI の初期化・終了部分などを C の部分で書いて、
fortran で書かれている部分に具体的な指示行を入れて並列化を
することなのですが、私の勉強不足で、最初からつまづいている
状態です。

C の部分に
 MPI_Init(&argc, &argv);
 MPI_Finalize();
を入れて、

517 :デフォルトの名無しさん:2013/12/04(水) 11:41:00.26 .net
fortran のサブルーチンに MPI のヘッダや変数定義、MPI 関数
 #include <mpi.h>
 integer nprocs, myrank, ierr
 call MPI_Comm_size( MPI_COMM_WORLD, nprocs, ierr )
 call MPI_Comm_rank( MPI_COMM_WORLD, myrank, ierr )
 write(*, *) nprocs, myrank

を入れてコンパイルし、4並列の MPI 計算をしてみたところ、
全てのプロセスで nprocs と myrank が 0 と表示されて
しまいました。fortran 部分で新規に nprocs と myrank を
定義しているのが原因なのではないかと思っていますが、
C から正しく fortran 側に情報を伝えて、正しく表示させる
(nprocs = 4 など)には、どのようにすればよろしいでしょうか。
MPI の基礎が分かっておらず、全くの素人質問で申し訳ありませんが、
ご助言など頂けますと助かります。

518 :デフォルトの名無しさん:2013/12/04(水) 13:06:04.90 .net
FORTRANはしばらく触っていないけど、includeは正しいの?
私もMPIプログラムは素人だけど疑問は何点か有るよ

疑問1、MPIを含まないCとFORTRANの混成は問題なく作れるのか?
疑問2、C又はFORTRAN単独言語の時にMPIのプログラムは作れるのか?
疑問3、C、FORTRAN、MPIのバージョンはいくつ?また実装系は何ですか?

で話は少し変わってくるんじゃないかな

519 :デフォルトの名無しさん:2013/12/04(水) 13:35:33.96 .net
アドバイス頂きありがとうございます。
1 についてですが、MPI を含まない C と FORTRAN の混成で
作られたコードは問題なく動いていまして、そのコードを
これから MPI 化したいと思っています。
2 についてですが、現在の C と FORTRAN の混成で作られた
コードの規模が割と大きいため、C 又は FORTRAN 単独言語に
書き換えるのが容易ではありませんが、仮にできたとすると
単独言語用の一般的な方法で MPI 化できると思っています。
3 についてですが、C と FORTRAN、MPI のバージョンはそれぞれ
icc (ICC) 12.1.4 20120410
mpiifort (IFORT) 12.1.4 20120410
Intel MPI 4.0.3
です。 また、実装系は intel のワークステーションです。
現時点では FORTRAN 側での include ファイルは mpi.h
だけですが、それが正しいかどうかは自信がありません。
何かご助言などありましたらお教え頂けるとありがたいです。

520 :デフォルトの名無しさん:2013/12/04(水) 14:02:42.00 .net
includeはC言語の書き方に見えたんで書いたんだけど・・・
include 'mpif.h' とか書くんじゃない?
intelのコンパイラは使ったこと無いからわからないけどね
疑問2については簡単なプログラムを(rankを表示する)書いてみたらいいんじゃないと言う意味で書きました

521 :デフォルトの名無しさん:2013/12/04(水) 16:27:50.33 .net
説明不足ですみませんが、先の include は FORTRAN の部分に挿入した
ものです。別途 C の部分には、既に #include "mpi.h" と書いていますが、
もしかして、include 文は C の部分に書いておけば、あらためて
FORTRAN の部分には書く必要はないのでしょうか???
2 については、C も FORTRAN も簡単なプログラムを書くことで、
MPI が動作する(rank が表示される)ことを確認しています。
ただ、今回のような C の中に FORTRAN が入れ子になっている状態での
MPI の書き方がわからず(FORTRAN の subroutine を呼んでいる箇所の
前後で MPI の指示文を書いてもダメなのでしょうね?)、困っています。

522 :デフォルトの名無しさん:2013/12/04(水) 17:19:45.26 .net
テストしていないので話半分で聞いて下さい。
まずFORTRANに書くincludeの書き方が間違っている
includeはファイルが分割されているとそれ毎に書く必要がある
なので

----- main.c -----
#include <mpi.h>
int main( int argc, char *argv[] ) {
MPI_Init( &argc, &argv );
fortran_subroutine();
MPI_Finalize();
return 0;
}
----- fortran_subroutine.f -----
include 'mpif.h'
sobroutine fortran_subroutine()
integer nprocs, myrank, ierr
call MPI_Comm_size( MPI_COMM_WORLD, nprocs, ierr )
call MPI_Comm_rank( MPI_COMM_WORLD, myrank, ierr )
write(*, *) nprocs, myrank
end subroutine fortran_subroutine

こんな書き方になると思います(FORTRAN忘れましたw)
小さなプログラムで書き方をテストしてからやった方がいいのでは?

523 :522:2013/12/04(水) 21:43:48.10 .net
Linux 環境でOpenMPI 1.4.5 gcc 4.7.2 でコンパイルすると実行時にエラーが出てしまうね。
この環境で混在できるのだろうか? ここ人が少なくで答えてくれる人居ないだろうな
>>521さんも環境に依存する部分なので上手く行くと良いですね

前のプログラムにタイポと抜けがあったので修正しました
% mpif77 -c rank.f
% mpicc -o test02 main.c rank.o -l:/usr/lib/gcc/i486-linux-gnu/4.7/libgfortran.a -lmpi_f77
でコンパイルしました

----- main.c -----
#include <mpi.h>
void rank_();
int main( int argc, char *argv[] ) {
MPI_Init( &argc, &argv );
rank_();
MPI_Finalize();
return 0;
}
----- rank.f -----
C include 'mpif.h'
subroutine rank
integer nprocs, myrank, ierr
call MPI_Comm_size( MPI_COMM_WORLD, nprocs, ierr )
call MPI_Comm_rank( MPI_COMM_WORLD, myrank, ierr )
write(*, *) nprocs, myrank
end subroutine rank

524 :522:2013/12/04(水) 22:18:07.46 .net
includeをsubroutineの後に持ってきたら実行も上手く行きました orz...

----- rank.f -----
subroutine rank
include 'mpif.h'
integer nprocs, myrank, ierr
call MPI_Comm_size( MPI_COMM_WORLD, nprocs, ierr )
call MPI_Comm_rank( MPI_COMM_WORLD, myrank, ierr )
write(*, *) nprocs, myrank
end subroutine rank

525 :デフォルトの名無しさん:2013/12/06(金) 01:28:12.82 .net
>> 522 さん
ご返信が遅くなり大変申し訳ありませんでした。

この度はコードのご指導まで頂き、本当にありがとうございました!
私の環境は intel 環境で、不勉強もありなかなか上手くいきません
でしたが、参考にさせて頂きつつ、なんとか
mpiifort -c rank.f
mpiicc -o a.out main.c rank.o -lifcore -limf
mpirun -np 4 a.out
で動きました!嬉しいです!!
この度は、ご助言頂き本当にありがとうございました!!

526 :デフォルトの名無しさん:2014/08/27(水) 03:15:26.43 ID:SX33fbF3.net
おるでw

最近はMPIのインストール方法とか使用方法とかを説明する記事やドキュメントが多いから、わざわざ2ちゃんのスレにカキコするまでもないのではないかな…

527 :デフォルトの名無しさん:2014/09/25(木) 20:37:56.94 ID:77m4KJC/.net
プログラミング初心者ですが質問させてください。
フリーウェアだけでfortranのmpiを用いた並列計算環境って用意できますか?
OSはwindowsです。色々解説サイトを回ったのですが、OSがwinで
フリーウェアという条件に一致するものがありません。
解説サイトか、フリーウェアを紹介していただけたら幸いです。

528 :デフォルトの名無しさん:2014/09/25(木) 20:55:19.71 ID:1qsw9PIQ.net
WindowsにVirtualboxをインストール
VirtualboxにLinuxをインストール
ゲストOSでmpi環境構築

以上

529 :デフォルトの名無しさん:2014/09/25(木) 23:09:57.41 ID:77m4KJC/.net
>>528さん回答ありがとうございます。
早速試してきます。

530 :デフォルトの名無しさん:2014/09/26(金) 00:43:22.36 ID:w0XQeQM8.net
すみません。再度質問します。
とりあえず、並列計算を行える環境にはなったのですが、
8コアで計算させていたら全てのコアで使用率が100%となりました。
計算速度は犠牲にしてよいので、使用率を50%程に低下させつつ動作させることは
可能でしょうか?

531 :デフォルトの名無しさん:2014/09/26(金) 06:29:58.28 ID:IA039Vji.net
ゲストOSが使用するCPU数を4コアに設定
4/8でCPU使用率50%

以上

532 :デフォルトの名無しさん:2015/02/21(土) 12:06:37.62 ID:FlDtTMp/.net
うんこ

533 :デフォルトの名無しさん:2016/03/29(火) 09:26:01.42 ID:/c8bAcK4.net
サッカーブッシュ日本代表日程ぷあたん(しゅっちょうまいくろ教育長交代)春文執行40代売上差額シュガーチョコ
https://www.youtube.com/watch?v=NDq1QoJY0nY宇ドナルドアナリストパワーストーンコーチングとしまえん
サッカーブッシュ日本代表日程古本屋よしたけしゅっちょうちょこしゅがー
ディーラー税務署天才開発者死亡詰みヨミドクターマイクロサービス不足
サッカーブッシュ日本代表日程ぷあたんシフト光金さかい強制バイト人権侵害問題
春分資源執行ニューヨーク低原価ぼったステーキソルトレイク福岡横浜新橋奴隷課金パチシフト強制バイト問題新潟米センター生残
コスメ24チャリティー隠れ40代生活保護プレイボーイバイトレードいたりあん接待問題
マスコミKARDローンケーオーサービス不足婚活パーティー寄付金執行原発ビジネス
FBIチャイニーズタイホテル売上事務所ガチャ決算ガチャキャンペーン(販売報道陣過激派組織向携帯最新情報提供終了
校長発言細心注意ノートン産廃エラー(著作権クレーム中国反応融資高額教育費)(中国捕鯨団体40代社員サッカーコメント
高額入学金ヤフウ新橋大学ヤフウ新橋理事長FX経費 おじや50代資産ガリバズフィード40代エリート

534 :デフォルトの名無しさん:2016/08/19(金) 15:54:40.93 ID:hNG+d2Rp.net
windows10を2台とMSMPIで通信したいんだが
error 1825のセキュリティパッケージ固有のエラーとやらが出て通信できないんだ
firewallはオフにしてもだめ
OSはwindows HPC clusterとかじゃないとできなかったりする?

535 :デフォルトの名無しさん:2016/10/13(木) 07:16:32.67 ID:aU3BNmFk.net
SMPマシン数台のMPICH2環境を構築しようとしています。
とりあえず8コアマシンで1ノード1CPUでの環境は作り、ベンチマークなどをとってテストしている最中です。
さて、ここからSMP+MPICH2混在環境に移行しようとしてるんですが、SMP環境をアクティブにする方法が判りません。
どうしたらいいのでしょうか??

環境は
centos6.8
mpich1.21p1
です。
よろしくお願いします。

536 :デフォルトの名無しさん:2017/01/09(月) 17:58:00.69 ID:nq81pkaz.net
SMPをアクティブにするってどういうことだろうか?
単純にOpenMPを使えば良いだろうに。

537 :デフォルトの名無しさん:2017/02/27(月) 23:58:25.54 ID:UI1UeTdZ.net
初めてInfiniBand使ったけど爆速だなこりゃ。

538 :デフォルトの名無しさん:2017/08/25(金) 02:38:12.16 ID:LiutTzVc.net
OpenMPIを使うコードがinfinibandがある環境がない環境に比べ滅茶苦茶遅くて困った。
プロファイルとって調べたらopal_memory_ptmalloc2_int_mallocが一番時間食っていた。
コミュニケータは作るものの通信を一切しないテストコードなのにOpenMPIのmalloc系の関数が
何故に出てくんのかと思ったら、これglibcのmallocをフックしちゃうやつなのね。
mpirunに「--mca mpi_leave_pinned 0」を付けると無効化できて速度が元に戻ったけど、
このmpi_leave_pinnedはinfinibandのようなRDMA対応ネットワークのための設定なのに
有効化すると逆に遅くなるのが解せない・・・。

539 :デフォルトの名無しさん:2017/08/25(金) 03:05:28.93 ID:LiutTzVc.net
ググって見つけた論文「HPCクラウドの実現に向けた仮想化クラスタの性能評価」には

Infiniband使用時にMPI集団通信を向上させるために、実行時オプションとして
「--mca mpi_leave_pinned 0」を付加した

って記述があるが、OpenMPIのFAQによればそれだとメモリをpinできないので遅くなるはず。
結局Infinibandを正しく使うにはどう設定するべきなんだろうか・・・。

540 :デフォルトの名無しさん:2017/08/31(木) 00:38:03.64 ID:CbVYdpce.net
>>539だけど、OpenMPIのFAQを見たらメモリのpinningをデフォルトで有効にする仕様については
開発者で反対意見もあったらしい。そりゃそうだろう・・・。
そんなん必要なのはMPIで参照するデータだけなのに、システムのmallocごと差し替えるというのは
やりすぎではないか・・・。

541 :デフォルトの名無しさん:2018/05/23(水) 21:50:25.15 ID:Au5e7VGg.net
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

12MI6

542 :デフォルトの名無しさん:2018/07/05(木) 00:11:39.46 ID:RfoszcD2.net
ES4

543 :デフォルトの名無しさん:2019/05/30(木) 23:53:17.14 ID:Stoh1y6z.net
お手軽にクリティカルセクション作る方法がないのはクソ

544 :「Microsoft Power Fx」登場:2021/03/03(水) 16:13:39.50 ID:TcsaJvTP.net
Excel関数ベースのプログラミング言語「Microsoft Power Fx」登場 オープンソースで公開予定:Microsoft Ignite 2021
https://asahi.5ch.net/test/read.cgi/newsplus/1614745763/l50

545 :デフォルトの名無しさん:2022/01/01(土) 22:23:23.80 ID:TCOZEf7v.net
新打法がいいね

546 :デフォルトの名無しさん:2023/04/27(木) 18:18:54.78 ID:CFMhQ97GL
私利私欲のために莫大な温室効果カ゛スまき散らして氣候変動させて災害連發させて人殺して石油需給逼迫させて物価暴騰させて社會に莫大な
損害を与えながら丿コノコス−ダンやらに行ってなにやら巻き込まれてるボケどもが,クソ税金泥棒公務員利権のネタにされなか゛ら人件費だの
食料だのと1億は税金をドフ゛に捨ててるた゛ろう何の関係もない國民から強奪した莫大な税金使って迎えに行くとか唖然とするか゛.こいつら
ひとり1○ОО萬ほど徴収すへ゛きだし、こういうことのために今後は邦人の出国税ひとり10OΟ萬は徴収しないとな.入管収容て゛税金泥棒
1О○%のクソ公務員の過失責任を税金て゛肩代わりするとかやってるガヰシ゛ン入国税も1○O〇萬は徴収するのが筋た゛し.クソ航空機には
航空燃料税1ΚL1千万圓、離発着税1回1億圓,上空通過税1κm1Ο〇萬圓,それ以前にスティンガ‐解禁して、私有地からのクソ航空機
撃墜を合法化するのは住民としての普遍的な権利た゛し.憲法ガン無視で都心まて゛数珠つなき゛でクソ航空機飛ばして私権侵害して私腹を肥やす
強盜殺人の首魁齋藤鉄夫ら世界最惡の殺人腐敗組織公明党を壊滅させないと,お前らの生活は苦しくなる一方た゛という現実に気つ゛かないとな!

創価学会員は,何百萬人も殺傷して損害を与えて私腹を肥やし続けて逮捕者まて゛出てる世界最惡の殺人腐敗組織公明党を
池田センセ―か゛□をきけて容認するとか本気で思ってるとしたら侮辱にもほと゛か゛あるぞ!
hΤTρs://i.imgur、cоm/hnli1ga.jpeg

547 :デフォルトの名無しさん:2023/09/10(日) 05:05:23.97 ID:EXF1G7CS.net
ホンマにそれがええんか?

179 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
名前: E-mail (省略可) :

read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★