並列計算サーバ
利用期間など
2009年11月末日まで (レポート締切はその前にあります.)
利用期間後の利用はご遠慮ください(ご相談ください.)
利用は任意です.(実験演習の必須課題ではありません.)
共有メモリ型並列計算サーバ NEC iHSP
NEC TX7/i9510
(
TX7/i9000シリーズ
)
CPU: Intel Itanium2 1.5GHz × 16
(いわゆる IA-64)
メモリ: 16GB (1 GB × 16)
ディスク: 438GB (146GB × 3)
利用にあたって
各プロセッサの負荷を表示する xpu コマンドはまだ整備されてないが, 整備された場合に使用するには X を転送するとよい.
gcc の使い方や,pthreads の使い方,コンパイルの仕方は, 普段使っている2プロセッサの Linux ワークステーションと似ているが, 以下の点で注意が必要である.
gcc のバージョンが古い.
普段使っている2プロセッサの Linux ワークステーション のIA-32 アーキテクチャとは異なる IA-64 であるので,gcc の 機種依存のコンパイルオプション(-m 関係)はIA-32と同じものは使えない. IA-64用のコンパイルオプション(-m 関係)は使える.
OSが古いため, スレッドをどのプロセッサ(コア)で実行すべきか指定するための sched_setaffinity は使えない.
(pthread_setconcurrency は使えたかもしれない).
ただし,プロセス単位で指定するための oncpu コマンド, プログラムから呼び出して, スレッドをどのプロセッサ(コア)で実行すべきか指定するための ライブラリ kitlib が準備されている. (man コマンドで oncpu や kitlib を調べよ.)
共有メモリ向けプリミティブマクロ (2009/7版 v0.44)は IA-64 用にもなっている.
gcc 以外に,ecc (NECのコンパイラ)を使うと高速化される可能性がある.
共有メモリマクロは ecc 用にはなっていないので使えない. 共有メモリマクロ(IA-64 にも対応)を使うときは gcc を使うこと.
ecc を使うには PATH 等の環境変数を設定する必要がある. 使っている shell に合わせて
source /opt/NECcomp/compiler80/ia64/bin/eccvars.csh
もしくは
. /opt/NECcomp/compiler80/ia64/bin/eccvars.sh
として環境変数をセットする.
環境が普段使っているワークステーションほど整っていないので,ファイルの 編集などは普段使っているワークステーションで行うことをお勧めします.
普段使っているワークステーションでコンパイルした実行形式ファイルを, そのまま利用することもできますが,それだと,IA-32 のコードとして実行されます. 計算サーバ上でコンパイルすれば IA-64 になります.
並列プログラミング, 先頭ページへ
Masahiro Yasugi: yasugi
@
kuis.kyoto-u.ac.jp