• 締切済み

MPIってなんですか?

porilinの回答

  • porilin
  • ベストアンサー率22% (142/632)
回答No.2

車に関する用語なので、マルチポイントインジェクダーだと思います。 詳しくは http://car.kouguchi.com/2005/12/post_38.html

関連するQ&A

  • MPI

    MPIのエラーメッセージの意味がわからないので質問します。 エラーメッセージは以下の通りです。 ----------------------------------------------------------------------------------------- [cli_1]: aborting job: Fatal error in MPI_Send: Other MPI error, error stack: MPI_Send(172).............................: MPI_Send(buf=0x80e557c, count=26, MPI_INT, dest=2, tag=0, MPI_COMM_WORLD) failed MPIDI_CH3_Progress_wait(199)..............: an error occurred while handling an event returned by MPIDU_Sock_Wait() MPIDI_CH3I_Progress_handle_sock_event(436): MPIDI_CH3U_Handle_recv_pkt(247)...........: failure occurred while allocating memory for a request object rank 1 in job 258 cs080_12340 caused collective abort of all ranks exit status of rank 1: killed by signal 9 [cli_0]: aborting job: Fatal error in MPI_Send: Other MPI error, error stack: MPI_Send(172).............................: MPI_Send(buf=0x80e557c, count=26, MPI_INT, dest=1, tag=0, MPI_COMM_WORLD) failed MPIDI_CH3_Progress_wait(199)..............: an error occurred while handling an event returned by MPIDU_Sock_Wait() MPIDI_CH3I_Progress_handle_sock_event(777): MPIDU_Socki_handle_pollhup(418)...........: connection closed by peer (set=0,sock=1) ----------------------------------------------------------------------------------------- これはやはりメモリ関係のエラーなのでしょうか? 詳しい方、知っている方がいましたら教えてください。 よろしくお願いします。

  • MPIに関して

    Fortran90でOpen_MPIを使ったプログラムの並列化の練習をしたいのですがインターネットで検索しても参考になるサイトなどがなかなか見つかりません。例を見ることで関数の具体的な使われ方を学びたいのですが良いサイトなどをご存知の方いらっしゃいましたら教えていただけませんでしょうか。よろしくお願いいたします。

  • MPIに関して

    Fortran90のプログラムをOpen_MPIを使って並列化する練習をしたいのですがインターネットで検索してもなかなか参考になるサイトなどが見つかりません。具体例を見て関数がどのように使えるかを学びたいのですが良いサイトなどをご存知の方いらっしゃいましたら教えていただけないでしょうか。よろしくお願いいたします。

  • MPI プログラム

    C言語で並列計算プログラムを作りたいのですが、 MPIの導入方法が分かりません。 特別なコンパイラなどが必要なのでしょうか? 単純な質問ですが、お力添え願います。

  • MPIプログラムの実行でエラーが出てしまいます

    エラストテネスのふるいのプログラムなんですが、どうもエラーが出て実行できません。 他の部分などを直して、なんとかエラーをひとつにしたんですが、どうも#include "MyMPI.h"に関連する部分でミスがあってできないようなのです。 エラーの内容は文字化けしているので読めません。 どなたかお教えしてもらえないでしょうか。 #include<mpi.h> #include<math.h> #include<stdio.h> #include "MyMPI.h" #define MIN(a,b) ((a)<(b)?(a):(b)) int main(int argc, char *argv[]) { int count; double elapsed_time; int first; int global_count; int high_value; int i; int id; int index; int low_value; char *marked; int n; int p; int proc0_size; int prime; int size; MPI_Init(&argc, &argv); MPI_Barrier(MPI_COMM_WORLD); elapsed_time = -MPI_Wtime(); MPI_Comm_rank (MPI_COMM_WORLD,&id); MPI_Comm_size (MPI_COMM_WORLD,&p); if (argc != 2) { if (!id) printf("Command line: %s <m>\n", argv[0]); MPI_Finalize(); exit(1); } n = atoi(argv[1]); low_value = 2 + BLOCK_LOW(id,p,n-1); high_value = 2 + BLOCK_HIGH(id,p,n-1); size = BLOCK_SIZE(id,p,n-1); proc0_size = (n-1)/p; if ((2 + proc0_size) < (int) sqrt((double) n)) { if (!id) printf("Too many processes\n"); MPI_Finalize(); exit (1); } marked = (char *) malloc (size); if (marked == NULL) { printf("Cannot allocate enough memory\n"); MPI_Finalize(); exit(1); } for (i = 0; i < size; i++) marked[i] = 0; if (!id) index = 0; prime = 2; do { if (prime * prime > low_value) first = prime * prime - low_value; else { if (!(low_value % prime)) first = 0; else first = prime - (low_value % prime); } for (i = first; i < size; i += prime) marked[i] = 1; if (!id) { while (marked[++index]); prime = index + 2; } MPI_Bcast (&prime, 1, MPI_INT, 0, MPI_COMM_WORLD); } while (prime * prime <= n); count = 0; for (i = 0; i < size; i++) if (!marked[i]) count++; MPI_Reduce (&count, &global_count, 1, MPI_INT, MPI_SUM, 0, MPI_COMM_WORLD); elapsed_time += MPI_Wtime(); if (!id) { printf("%d primes are less than or equal to %d\n",global_count, n); printf("Total elapsed time: %10.6f\n", elapsed_time); } MPI_Finalize(); return 0; }

  • mpiによる多次元配列の送受信

    私はmpiによる並列計算プログラムをfortranを使って書いてます。 配列a(i, j, k) (i=1~10, j=1~10, k=1~10)があったとします。 これを call mpi_send(a(1, 1, 1), 100, MPI_INTEGER, ...) とすると、a(1,1,1), a(1,1,2), …, a(1,1,10), a(1,2,1), a(1,2,2), …, a(1,10,10) のようにiを固定した100個のデータが送信されますよね? これをjやkを固定してデータを送りたい場合どのようにすればいいのでしょうか?

  • マイクロソフト オフィス MPI カードとは何?

    デルの通販モデルをチェックしていたら、マイクロソフト オフィス MPI カード、 多分ワードやエクセル等のことだと思いますが、本体に+2万円です。MPIカードとは?

  • MPIを用いた並列計算における3次元配列の通信に関して

    以下のプログラムで,ランク0の3次元配列rec_f[][][]に,ランクpの3次元配列id[][][]を,要素ごとではなく,そのままコピーすることを考えています. しかし,途中出力したid[6][24][3]とrec_f[6][24][3]が異なる値になってしまい,その理由が分かりません. 宜しければ,原因と修正箇所をご教示頂けないでしょうか. 宜しくお願い致します. if(my_rank != 0) { MPI_Isend(id, lx * my * mz, MPI_INT,    dest, 0, MPI_COMM_WORLD, &request); if(my_rank == 2) cout << id[6][24][3] << " "; } else {   for(i = 1; i < lx - 1; i ++) {  for(p = 1; p <= p_num-1; p++)   {   source = p;   MPI_Irecv(rec_f, lx * my * mz, MPI_INT, source, 0,                      MPI_COMM_WORLD, &request);  if(p == 2) cout << rec_f[6][24][3] << " ";   } } MPI_Wait(&request,&status);

  • MPIによる並列処理

    MPICH2を使ってCプログラムの並列処理を行おうとしております。 1台のPCを使用してPC内部の4つのコアで並列処理をさせようとしております。 http://pccluster.web.fc2.com/MPI.html のページを参考にMPICH2のインストールを行い、 mpdboot ~でMPIの起動、プログラムの並列実行は行えたのですが、 ~/mpd.hostsに PCのIP:4 を書き込み、mpdboot -n 1 -f mpd.hostsで起動し、 mpiexec -n 1 xxx.cpp を実行した場合、 n=1より2、3、4の場合のほうが速くはなるのですが、2の場合が4より速くなってしまいます。 これは何かがボトルネックになっていると考えられるのでしょうか? また、mpd.hostsのファイル内で「:4」として1台のPCですが4つのコアがあると指定しているにも関わらず、実行するときに mpiexec -n 5以上の数字 xxx.cpp という指定したコア数以上での実行ができてしまいます。これは何かインストール中の設定で間違いがあるのでしょうか。(mpiexec -n 10 hostnameとした場合なぜかちゃんと10個の応答が同じPC名でかえってきます) 理解がいまいちなので、質問の文章が分かりにくいところもありますが、教えていただけないでしょうか。 よろしくお願いします。

  • MPIを用いたFortranプログラムのコンパイル

    バンド構造などをシミュレーションできるソフトPHASE ver. 4.00を下のサイトからダウンロードし、makeしようとしたのですが出来ません。 http://www.fsis.iis.u-tokyo.ac.jp/result/software/ エプソンダイレクト TP715LR CPU名称 Pentium III CPU動作周波数 700MHz メモリ 128MB OS Fedora Core 5 Linux Fortranコンパイラ intel Fortran Compiler 9.0 for Linux Cコンパイラ gcc MPI mpich-1.2.7 PHASEはMPIを使ったFortranのプログラムで、オブジェクトファイルは作られたのですが、最後のリンクのところで IPO link: can not find -lfmpich というエラーメッセージが出てしまいます。 リンクはifortで、オプションに-lfmpich -lmpichなどを指定しました。 -lのオプションは後に続くディレクトリ名をライブラリの検索先として指定するようなので、どこかにfmpichというディレクトリがあるかどうか調べたのですが存在しませんでした。本来ならばどこかにあるものなのでしょうか。