[過去ログ] Message Passing Interface (MPI) 統合スレ (547レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
1
(1): 04/11/07 18:25 AAS
MPIによる並列プログラミングについて話し合う統合スレッドです。

とりあえず本家
外部リンク:www-unix.mcs.anl.gov
518: 2013/12/04(水)13:06 AAS
FORTRANはしばらく触っていないけど、includeは正しいの?
私もMPIプログラムは素人だけど疑問は何点か有るよ

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

で話は少し変わってくるんじゃないかな
519: 2013/12/04(水)13:35 AAS
アドバイス頂きありがとうございます。
1 についてですが、MPI を含まない C と FORTRAN の混成で
作られたコードは問題なく動いていまして、そのコードを
これから MPI 化したいと思っています。
2 についてですが、現在の C と FORTRAN の混成で作られた
コードの規模が割と大きいため、C 又は FORTRAN 単独言語に
書き換えるのが容易ではありませんが、仮にできたとすると
単独言語用の一般的な方法で MPI 化できると思っています。
3 についてですが、C と FORTRAN、MPI のバージョンはそれぞれ
icc (ICC) 12.1.4 20120410
省6
520: 2013/12/04(水)14:02 AAS
includeはC言語の書き方に見えたんで書いたんだけど・・・
include 'mpif.h' とか書くんじゃない?
intelのコンパイラは使ったこと無いからわからないけどね
疑問2については簡単なプログラムを(rankを表示する)書いてみたらいいんじゃないと言う意味で書きました
521
(1): 2013/12/04(水)16:27 AAS
説明不足ですみませんが、先の include は FORTRAN の部分に挿入した
ものです。別途 C の部分には、既に #include "mpi.h" と書いていますが、
もしかして、include 文は C の部分に書いておけば、あらためて
FORTRAN の部分には書く必要はないのでしょうか???
2 については、C も FORTRAN も簡単なプログラムを書くことで、
MPI が動作する(rank が表示される)ことを確認しています。
ただ、今回のような C の中に FORTRAN が入れ子になっている状態での
MPI の書き方がわからず(FORTRAN の subroutine を呼んでいる箇所の
前後で MPI の指示文を書いてもダメなのでしょうね?)、困っています。
522
(2): 2013/12/04(水)17:19 AAS
テストしていないので話半分で聞いて下さい。
まずFORTRANに書くincludeの書き方が間違っている
includeはファイルが分割されているとそれ毎に書く必要がある
なので

----- main.c -----
#include <mpi.h>
int main( int argc, char *argv[] ) {
MPI_Init( &argc, &argv );
fortran_subroutine();
MPI_Finalize();
省12
523: 522 2013/12/04(水)21:43 AAS
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_();
省14
524: 522 2013/12/04(水)22:18 AAS
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 AAS
>> 522 さん
ご返信が遅くなり大変申し訳ありませんでした。

この度はコードのご指導まで頂き、本当にありがとうございました!
私の環境は intel 環境で、不勉強もありなかなか上手くいきません
でしたが、参考にさせて頂きつつ、なんとか
mpiifort -c rank.f
mpiicc -o a.out main.c rank.o -lifcore -limf
mpirun -np 4 a.out
で動きました!嬉しいです!!
この度は、ご助言頂き本当にありがとうございました!!
526: 2014/08/15(金)22:14 ID:wwFL1PPV(1) AAS
過疎っているな・・・おるか?
527: 2014/08/27(水)03:15 ID:SX33fbF3(1) AAS
おるでw

最近はMPIのインストール方法とか使用方法とかを説明する記事やドキュメントが多いから、わざわざ2ちゃんのスレにカキコするまでもないのではないかな…
528: 2014/09/25(木)20:37 ID:77m4KJC/(1/2) AAS
プログラミング初心者ですが質問させてください。
フリーウェアだけでfortranのmpiを用いた並列計算環境って用意できますか?
OSはwindowsです。色々解説サイトを回ったのですが、OSがwinで
フリーウェアという条件に一致するものがありません。
解説サイトか、フリーウェアを紹介していただけたら幸いです。
529
(1): 2014/09/25(木)20:55 ID:1qsw9PIQ(1) AAS
WindowsにVirtualboxをインストール
VirtualboxにLinuxをインストール
ゲストOSでmpi環境構築

以上
530: 2014/09/25(木)23:09 ID:77m4KJC/(2/2) AAS
>>529さん回答ありがとうございます。
早速試してきます。
531: 2014/09/26(金)00:43 ID:w0XQeQM8(1) AAS
すみません。再度質問します。
とりあえず、並列計算を行える環境にはなったのですが、
8コアで計算させていたら全てのコアで使用率が100%となりました。
計算速度は犠牲にしてよいので、使用率を50%程に低下させつつ動作させることは
可能でしょうか?
532: 2014/09/26(金)06:29 ID:IA039Vji(1) AAS
ゲストOSが使用するCPU数を4コアに設定
4/8でCPU使用率50%

以上
533: 2015/02/21(土)12:06 ID:FlDtTMp/(1) AAS
うんこ
534: 2016/03/29(火)09:26 ID:/c8bAcK4(1) AAS
サッカーブッシュ日本代表日程ぷあたん(しゅっちょうまいくろ教育長交代)春文執行40代売上差額シュガーチョコ
動画リンク[YouTube]宇ドナルドアナリストパワーストーンコーチングとしまえん
サッカーブッシュ日本代表日程古本屋よしたけしゅっちょうちょこしゅがー
ディーラー税務署天才開発者死亡詰みヨミドクターマイクロサービス不足
サッカーブッシュ日本代表日程ぷあたんシフト光金さかい強制バイト人権侵害問題
春分資源執行ニューヨーク低原価ぼったステーキソルトレイク福岡横浜新橋奴隷課金パチシフト強制バイト問題新潟米センター生残
コスメ24チャリティー隠れ40代生活保護プレイボーイバイトレードいたりあん接待問題
マスコミKARDローンケーオーサービス不足婚活パーティー寄付金執行原発ビジネス
FBIチャイニーズタイホテル売上事務所ガチャ決算ガチャキャンペーン(販売報道陣過激派組織向携帯最新情報提供終了
校長発言細心注意ノートン産廃エラー(著作権クレーム中国反応融資高額教育費)(中国捕鯨団体40代社員サッカーコメント
省1
535: 2016/08/19(金)15:54 ID:hNG+d2Rp(1) AAS
windows10を2台とMSMPIで通信したいんだが
error 1825のセキュリティパッケージ固有のエラーとやらが出て通信できないんだ
firewallはオフにしてもだめ
OSはwindows HPC clusterとかじゃないとできなかったりする?
536: 2016/10/13(木)07:16 ID:aU3BNmFk(1) AAS
SMPマシン数台のMPICH2環境を構築しようとしています。
とりあえず8コアマシンで1ノード1CPUでの環境は作り、ベンチマークなどをとってテストしている最中です。
さて、ここからSMP+MPICH2混在環境に移行しようとしてるんですが、SMP環境をアクティブにする方法が判りません。
どうしたらいいのでしょうか??

環境は
centos6.8
mpich1.21p1
です。
よろしくお願いします。
537: 2017/01/09(月)17:58 ID:nq81pkaz(1) AAS
SMPをアクティブにするってどういうことだろうか?
単純にOpenMPを使えば良いだろうに。
538: 2017/02/27(月)23:58 ID:UI1UeTdZ(1) AAS
初めてInfiniBand使ったけど爆速だなこりゃ。
539: 2017/08/25(金)02:38 ID:LiutTzVc(1/2) AAS
OpenMPIを使うコードがinfinibandがある環境がない環境に比べ滅茶苦茶遅くて困った。
プロファイルとって調べたらopal_memory_ptmalloc2_int_mallocが一番時間食っていた。
コミュニケータは作るものの通信を一切しないテストコードなのにOpenMPIのmalloc系の関数が
何故に出てくんのかと思ったら、これglibcのmallocをフックしちゃうやつなのね。
mpirunに「--mca mpi_leave_pinned 0」を付けると無効化できて速度が元に戻ったけど、
このmpi_leave_pinnedはinfinibandのようなRDMA対応ネットワークのための設定なのに
有効化すると逆に遅くなるのが解せない・・・。
540
(1): 2017/08/25(金)03:05 ID:LiutTzVc(2/2) AAS
ググって見つけた論文「HPCクラウドの実現に向けた仮想化クラスタの性能評価」には

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

って記述があるが、OpenMPIのFAQによればそれだとメモリをpinできないので遅くなるはず。
結局Infinibandを正しく使うにはどう設定するべきなんだろうか・・・。
541: 2017/08/31(木)00:38 ID:CbVYdpce(1) AAS
>>540だけど、OpenMPIのFAQを見たらメモリのpinningをデフォルトで有効にする仕様については
開発者で反対意見もあったらしい。そりゃそうだろう・・・。
そんなん必要なのはMPIで参照するデータだけなのに、システムのmallocごと差し替えるというのは
やりすぎではないか・・・。
542: 2018/05/23(水)21:50 ID:Au5e7VGg(1) AAS
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

12MI6
543: 2018/07/05(木)00:11 ID:RfoszcD2(1) AAS
ES4
544: 2019/05/30(木)23:53 ID:Stoh1y6z(1) AAS
お手軽にクリティカルセクション作る方法がないのはクソ
545: 「Microsoft Power Fx」登場 2021/03/03(水)16:13 ID:TcsaJvTP(1) AAS
Excel関数ベースのプログラミング言語「Microsoft Power Fx」登場 オープンソースで公開予定:Microsoft Ignite 2021
2chスレ:newsplus
546: 2022/01/01(土)22:23 ID:TCOZEf7v(1) AAS
新打法がいいね
547: 2023/09/10(日)05:05 ID:EXF1G7CS(1) AAS
ホンマにそれがええんか?
1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 1.233s*