九州大学 情報基盤研究開発センター 研究用計算機システムニュース No.346 2015.03.10

+--------------------------------------------------------------------------+ |1.富士通コンパイラ, MPIライブラリの実行結果異常について | | (スーパーコンピュータシステム, 高性能演算サーバシステム) | +--------------------------------------------------------------------------+ ----------------------------------------------------------------- 情報基盤研究開発センター研究用計算機システムWWWホームページ     http://www.cc.kyushu-u.ac.jp/scp/ ----------------------------------------------------------------- 1.富士通コンパイラ, MPIライブラリの実行結果異常について (スーパーコンピュータシステム, 高性能演算サーバシステム) スーパーコンピュータシステムFX10, 高性能演算サーバシステムCX400のFortran/C/ C++コンパイラ,および,MPIライブラリにおいて,実行結果異常となる障害が見つ かりました.障害は以下の条件をすべて満たした場合に発生するもので,富士通製 のTechnical Computing Suite のみが該当します.また,2件目(障害番号PH05751) はFX10のみが該当します.障害修正時期は未定です. 心当たりのある方はセンター E-mail: request(at)iii.kyushu-u.ac.jp までご相談ください. =========================================================================== 【障害番号 PH05687】 ●現象と条件 以下の条件をすべて満たした場合,実行結果に誤りが生じることがあります. 1) 以下の翻訳時オプションがすべて有効である.または,1-2と同等の最適化指示 子 mfunc(2) または mfunc(3) が有効である. 1-1) -O2以上 1-2) -Kmfunc=2 または -Kmfunc=3 1-3) -Klib (C/C++の場合) 2) ループが存在する. 3) 2) のループの増分値は正の1であることが翻訳時に判断可能である. 4) 2) のループ内に,コンパイラの最適化により,マルチ演算関数に変換される以 下の組込み関数またはべき乗演算が存在する.(*) asin, acos, atan, atan2, erf, erfc, exp, exp10, log, log10, sin, cos 5) 4) の組込み関数の引数に配列が存在する. 6) 4) の組込み関数の結果を配列に代入している. 7) 5) または 6) の配列は連続した降順アクセスである.   *)翻訳時メッセージ jwd8300o-iによりマルチ演算関数化が適用されたことを確   認できます. <プログラム例> do i = 1, n-1 ! 2), 3) result(i) = log(a(n-i)) ! 4), 5), 6), 7) end do ●対象システムと言語 FX10, CX400 の Fortran, C, C++ ●回避方法 以下のいずれかの方法で回避できます. a) 翻訳時オプション -Knomfunc または -Kmfunc=1 を指定する. b) 翻訳時オプション -Kocl を指定し,かつ,ソースプログラムの対象ループに 最適化指示子 nomfunc または mfunc(1) を追記する. =========================================================================== 【障害番号PH05751】 ●現象と条件 以下の条件をすべて満たした場合,MPI_Allgather関数,またはMPI_Allgatherv関 数の受信バッファのデータに欠落が生じる場合があります. (1) 受信バッファのデータ型が基本データ型である. (2) 受信バッファの先頭アドレスが4バイトバウンダリである. (3) 受信バッファ内の各ランク単位が4バイトバウンダリに配置されている. (4) 受信バッファのデータ型の大きさと要素数の積が4の倍数である. (5) 受信バッファのデータ型の大きさと要素数の積が 32*1024*1024-8 より大き い. (6) MCAパラメーターcommon_tofu_max_tnisが指定されていない場合, 受信バッファのデータ型の大きさと要素数の積が 64*1024*1024-16 以下で ある. (7) MCAパラメーター common_tofu_max_tnis が指定されている場合, common_tofu_max_tnis が 3以上で,かつ受信バッファのデータ型の大きさ と要素数の積が (16*1024*1024-4)*common_tofu_max_tnis 以下である.  (8) ジョブ形状指定が3次元である. (9) コミュニケータ形状が稠密な直方体である. (10) コミュニケータ形状のX軸、Y軸、Z軸のうち,2つの軸の軸長が1である. (11) 1ノードあたりのプロセス数が1プロセスである. <プログラム例> #include #include #include #include int main(){ char *buf; int sz = 8192 * 768 * 8; int nprocs; int myrank; int i; MPI_Init(NULL, NULL); MPI_Comm_size(MPI_COMM_WORLD, &nprocs); MPI_Comm_rank(MPI_COMM_WORLD, &myrank); buf = malloc(sz * nprocs); memset(buf, 0x23, sz * nprocs); memset(buf + sz * myrank, 0x45, sz); MPI_Barrier(MPI_COMM_WORLD); MPI_Allgather(MPI_IN_PLACE,sz,MPI_BYTE,buf,sz,MPI_BYTE,MPI_COMM_WORLD); for(i = 0; i < sz * nprocs; i++){ if(buf[i] != 0x45){ printf("index %d not overwritten\n", i); fflush(stdout); break; } } MPI_Finalize(); return 0; } ●対象システム FX10 の MPIライブラリ ●回避方法 以下のいずれかの方法で回避できます. a) MCAパラメーター common_tofu_max_tnis に 2 を指定する. b) ジョブスクリプトの形状指定を1次元または2次元に変更する. [問い合せ窓口] 九州大学 情報統括本部 HPC事業室 全国共同利用担当 Mail: request(a)iii.kyushu-u.ac.jp Tel : 092-642-2308