最初の質問:
同じ関数への関数呼び出しを並列化する方法を知りたいのですが、for ループで入力パラメーターが異なります。例 (C コード):
//a[i] and b[i] are defined as elements of a list with 2 columns and N rows
//i is the row number
#pragma omp parallel
{
char cmd[1000];
#pragma omp for nowait
for(i=0; i<N; i++) {
//call the serial programm
sprintf(cmd, "./serial_program %f %f", a[i], b[i]);
system(cmd);
}
}
プラグマ omp for (+もちろん omp ヘッダー) を適用すると、何も起こりません。これは OpenMP では不可能かもしれませんが、MPI では可能で、どのように見えるでしょうか? これまでのところ、OpenMP の経験はありますが、MPI の経験はありません。更新: 並列領域内で定義された cmd
ステータス: 解決済み
2 番目の質問:
OpenMP 並列化プログラムがあり、それをクラスター内の異なるノード間で使用したい場合、MPI を使用して異なるノード間で呼び出しを分散するにはどうすればよいですか? また、どのようにコンパイルしますか?
//a[i] and b[i] are defined as elements of a list with 2 columns and N rows
//i is the row number
for(i=0; i<N; i++) {
//call the parallelized program
sprintf(cmd, "./openmp_parallelized_program %f %f", a[i], b[i]);
system(cmd);
}
状態:未解決