SCore操作マニュアル
第1.2版
日本電気株式会社
HPCエンジニアリングセンター
改版履歴
2002/02/01 第1.0版 新規作成
2002/03/11 第1.1版 改版
2002/04/20
第1.2版 マルチユーザモードにおける操作を追加
3.3. 並列プログラム(アプリケーション)のシングルユーザモードでの実行
3.4. 並列プログラム(アプリケーション)のマルチユーザモードでの実行
4.2. MPICH(mpicc,mpic++,mpif77)
本書はHPC(High Performance Computing)型クラスタシステムSCoreシステムを利用するにあたり最低限知っておかなければならない操作法等について記述しています。システムの起動と終了、アプリケーションの実行やSCoreシステム設定変更等システム運用上で必要となる基本的な情報を提供します。なおより詳細な情報はオンラインドキュメント(/opt/score/docディレクトリ配下のドキュメント)またはPCクラスタコンソーシアムのWebページ(http://www.pccluster.org/)を参照してください。
1. SCoreシステム環境
SCoreシステムは、基本的に並列演算を実行する複数台の計算ホストと、これらを管理する管理サーバより構成されます。また計算ホストおよび管理サーバの他に、並列演算をおこなうアプリケーションを実際に起動するためのホスト(リモートホスト)マシンが必要ですが、通常は管理サーバがリモートホストマシンを兼ねますので、管理サーバ上でアプリケーションを起動するような運用形態で使用される範囲においてはリモートホストマシンを意識する必要は特にありません。(図1、図2)
図 1
図 2
2. システムの起動と終了
2.1. システム電源ONの順序
SCoreシステムの電源を入れる際、最初に管理サーバの電源を入れ、OSならびに管理サーバ上で動作するSCore管理デーモンを立ち上げておく必要があります。計算ホストの電源は管理サーバが正常に起動された後に電源を入れるようにしてください。また、NIS、DNS、DHCP等の機能を使用してシステムを管理しており、かつこれらのサーバが管理サーバと違うマシンで動作している場合には、管理サーバ起動前に他のサーバマシンを起動しておく必要があります。
2.2. SCoreシステムの起動
管理サーバおよび各計算ホストの電源を入れることで、SCore動作に必要なデーモンは自動的に起動されるため、特別な操作は不要です。管理サーバならびに各計算ホストが正常に起動した時点でアプリケーションの実行が可能となります。なおアプリケーション実行方法に関しては次章で説明します。
2.3. 計算ホストの起動確認
すべての計算ホストが正常に起動されたかどうかを確認するにはオンラインドキュメントの「SCore Cluster System Softwareインストールガイド」の「SCOUT Test Procedure」の手順1~3が有効です。
2.4. システムの終了(シャットダウン)
SCoreシステムの終了は通常のLinux(UNIX)系システム同様シャットダウンコマンド実行によりおこないます。この際システム起動時とは逆に各計算ホストのシャットダウンを先におこない、全計算ホストのシャットダウンが完了後管理サーバをシャットダウンするようにしてください。
3. アプリケーションの実行方法
3.1. 環境変数の設定
実行に先立ちログインシェルの以下の環境変数が正しく設定されているか確認する必要があります。
SCBDSERV … 管理サーバ(scoreboardデーモンが起動しているサーバ)のホスト名が指定されているかどうか。
PATH … /opt/score/bin、/opt/score/sbin、/opt/score/deployがPATHに含まれているかどうか。
また、GUIを用いた並列アプリケーションを実行する場合には、ディスプレイへの他ホストからの描画許可(xhostコマンド)や環境変数DISPLAYによる描画するディスプレイの指定があらかじめ必要です。オンラインドキュメントの「SCore環境でのX Windowアプリケーションの実行」等を参考にしてください。
3.2. リモートシェル実行環境
SCoreシステムで並列アプリケーションを実行する場合、リモートシェル環境(scout環境)と呼ばれる並列処理実行環境を作成しないといけません。並列アプリケーションはリモートシェル環境内で後述するscrunコマンド等を介して実行されます。リモートシェル環境はリモートホストまたは管理サーバ上でscoutコマンドを実行することにより作成することができます。
# scout -g _scoreall_
上記を実行すると、_scoreall_という名のクラスタグループに属する各計算ホストをメンバとするリモートシェル環境が作成されます。言い換えると、これらの計算ホストを使用して並列アプリケーションを実行することが可能となります。
ここで言うクラスタグループとは、計算ホストをいくつかの集団に分割して(全計算ホストから構成されるものも存在する)形成されたグループのことであり、各グループにはそれぞれ固有のクラスタグループ名がつけられます。クラスタグループは管理サーバの/opt/score/etc/scorehosts.dbファイルで定義します。なお詳細はオンラインドキュメントのscorehosts.dbのmanページを参照してください。
3.3. 並列プログラム(アプリケーション)のシングルユーザモードでの実行
並列プログラムを実行するには、SCoreのシングルユーザモードで実行する方法とマルチユーザモードで実行する方法があります。まずシングルユーザモードでの実行方法について説明し、次節でマルチユーザモードの実行方法を説明します。なおシングルユーザモード、マルチユーザモードの違いについてはオンラインドキュメントの「SCore Cluster System Softwareの概要」等を参照してください。
シングルユーザモードでの並列プログラムの実行はリモートシェル実行環境の中でscrunコマンドを介して並列プログラムを動作させます。
# scrun /home/foo/app
上記は/home/foo/appという並列プログラムのコマンドをscrunコマンドを介して実行させる場合の例です。もしコマンドに引数やオプションを持たせて実行させたいなら以下のようにコマンド名の後に必要な引数等を追加します。
# scrun /home/foo/app -o abc.dat
scrunコマンドはプログラムを実行する計算ホスト台数や計算ホスト間で通信をおこなう際に使用するネットワークの指定をはじめさまざまなオプションが存在します。例えば、
# scrun -nodes=4x2 /home/foo/app
とすると、コマンドを実行するために4台の計算ホストを使用し、計算ホスト1台あたり2CPUを使用する(合計8CPU)よう指定できます。
# scrun -network=myrinet2k /home/foo/app
上記の例では、計算ホスト間の通信に使用するネットワークを/opt/score/etc/scorehosts.db内でmyrinet2kという名で定義されたネットワーク(Myrinet2000)を用います。また次のようにこれら2つのオプションを組み合わせて指定することも可能です。
# scrun -nodes=4x2,network=myrinet2k /home/foo/app
なおこれら以外のscrunコマンドオプション等詳細はオンラインドキュメントのscrunのmanページを参照してください。
また、scrun以外にもMPIプログラムを実行するために用意されたmpirunコマンドも存在しますが詳細はmpirunのmanページを参照してください。
並列プログラムの実行が終了したら、リモートシェル環境から抜ける必要があります。
# exit
でリモートシェル環境から抜けてください。
3.4. 並列プログラム(アプリケーション)のマルチユーザモードでの実行
マルチユーザモードで並列プログラムを実行するためには、まず「3.2. リモートシェル実行環境」で説明した手順をスーパーユーザ(root)で実行しなければなりません。
# su
password: ********
# scout -g _scoreall_
のようにします。
次にリモートシェル実行環境の中でscoredコマンドを起動します。この際-serverを用いて計算ホストのいずれか1台を指定します。なお-serverオプションなしでもscoredを起動することができます。この場合はscorehosts.dbで定義した各計算ホストの最後のエントリに登録された計算ホストがデフォルトとして用いられます。
# scored -server host1.score.com
または
# scored
scoredを起動すると数行のメッセージが出力され、その後はsc_consoleコマンドでscoredをshutdownするまでプロンプトは戻ってきません。
この状態で別の端末やウィンドウからscrunやmpirunコマンドで並列プログラムを実行することができます。この際スーパーユーザである必要はありません。scrunの実行方法はscoredオプションでscoredが起動された計算ホストの指定を追加する以外、シングルユーザモードと変わりません。
# scrun
-nodes=4x2,network=myrinet2k,scored=host1.score.com /home/foo/app
のようにscrunのオプションにscoredの記述を追加してください。
マルチユーザモードを終了する場合にはsc_consoleコマンドでscoredをshutdownしないといけません。
# sc_console host1.score.com
SCore-D Console: shutdown
scoredを起動した計算ホストを指定してsc_consoleを立ち上げ、sc_consoleコマンドのプロンプト(SCore-D Console:)に続けてshutdownと入力します。これによりscoredの実行が終了し、同時にscoredを起動した端末やウィンドウにプロンプトが返ります。この状態でさらにシングルユーザモードと同様にリモートシェル環境を終了させることができます。
# exit
なおsc_consoleコマンドを終了するにはsc_consoleコマンド起動した端末やウィンドウでctrl-cで入力します。sc_consoleはこの他にも数多くの機能(スケジューリング管理、資源管理等)を備えています。詳細はオンラインドキュメントを参照してください。
4. 並列プログラムのコンパイル
SCoreシステム上では、mpc++、MPICH準拠のmpicc、mpic++、mpif77や、PGI等の商用コンパイラを使用して並列プログラムをコンパイル、実行することが可能です。
図 3
※http://pdswww.rwcp.or.jp/score/dist/score/html/images/score3.jpgより引用
mpc++はマルチスレッド化されたc++です。詳細はユーザーズガイドの「MPC++ MTTLプログラムの実行」等を参照してください。
4.2. MPICH(mpicc,mpic++,mpif77)
MPICHバージョン1.2をベースに開発されたC,C++,Fortran77のコンパイラをサポートしています。詳細はユーザーズガイドの「MPICH-SCoreプログラムの実行」等を参照してください。
4.3. 商用コンパイラ
システム管理者ガイドの「任意のコンパイラの提供」にPGI等の商用コンパイラのサポート状況、使用上の注意事項等が記されています。なお使用にあたっては商用コンパイラ付属のマニュアルもあわせて参照願います。
5. SCoreシステムの管理
5.1. SCoreシステムの設定変更
計算ホストの追加や削除、クラスタグループ構成の変更、ハードウェア故障等による置換等が発生した際、SCoreシステムの設定を変更する必要が生じます。ここではSCoreシステムの設定変更手順を簡単に説明します。なお詳細についてはオンラインドキュメントの各種設定ファイルやデーモンのmanページ等を参照してください。
(1)設定ファイルの修正
/opt/score/etcディレクトリにあるSCoreシステム設定ファイルを修正します。
a)scorehosts.db
SCoreシステム情報データベースファイルです。SCoreシステム構成情報等あらゆる設定情報が記述されています。SCoreシステム環境に何らかの変更が生じた場合、ほぼ例外なく本ファイルの修正が必要となります。manページの説明にしたがい適切に修正してください。
b)pm-ethernet.conf
Ethernetを用いて計算ホスト間の通信をおこなっている場合、計算ホストの追加や削除、
またNIC交換によるMACアドレスの変更が生じた場合等に記述の修正が必要となります。
c)pm-myrinet.conf
Myrinetを用いて計算ホスト間の通信をおこなっている場合、計算ホストの追加や削除が生じた場合等に修正が必要となります。
d)その他/opt/score/etcディレクトリ配下の設定ファイル
manページを参考に適切に修正してください。
(2)SCore管理デーモンの再起動
設定ファイル修正後、管理サーバ上のSCore管理デーモンを再起動して修正内容をシステムに反映させます。
# /etc/rc.d/init.d/msgbserv stop
# /etc/rc.d/init.d/scoreboard stop
# /etc/rc.d/init.d/scoreboard start
# /etc/rc.d/init.d/msgbserv start
以上でSCoreシステムの設定変更が完了します。
なお、一連の作業をおこなう場合には(特にデーモンの再起動実行時)、SCoreシステムを誰も使用していないことを確認したうえでお願いします。実行中のアプリケーションが存在する場合に設定変更をおこなうと予期せぬ事象が発生する危険があります。
5.2. SCore情報源
SCoreシステム設定変更、トラブル情報、チューニング等SCoreに関するさまざまな情報はPCクラスタコンソーシアムのWebページ(http://www.pccluster.org/)より入手することができます。またSCoreユーザーズメーリングリストに参加しより多くの情報を得ることも可能です。メーリングリスト参加申し込み等も上記Webページより可能となっています。