1.富士通コンパイラ, MPIライブラリの実行結果異常について
(スーパーコンピュータシステム, 高性能演算サーバシステム) 2.年度末の計算サービスの一時停止について
九州大学 情報基盤研究開発センター 研究用計算機システムニュース 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