SCore のインストール

[英語版], [日本語版]
  • システム環境
  • WWW サーバーの起動
  • msgbserv の起動
  • 環境設定
  • SCore-S プログラムの実行
  • SCore-D の起動
  • SCore-D 下でのプログラムの実行

  • システム環境

    すべてのマシンが下記の条件を満たすように、設定しておく必要があります。

    WWW サーバーの起動

    WWW サーバー (httpd) は、必須ではありません。
    しかし、SCore の動作を監視する Java アプレット の いずれかを利用する場合に、WWW サーバーを動かす必要があります。

    WWW サーバーは、任意のマシンで動かすことができます。 SCore のノードとして利用するマシン (msgbserv の設定ファイルに 記述したマシン) である必要はありません。 クラスタのノードとして利用するマシンでも構いませんが、この場合は 性能が低下します。

    WWW サーバーでは、以下のディレクトリを提供して下さい。

    $(INSTALL_ROOT)/html


    msgbserv の起動

    msgbserv は、クラスタ・ノードの利用状況を管理するデーモン・プログラムです。 (msgbserv のクライアントとして msgb があります)。 サーバーとなるマシンを一台決め、そのマシン上で、msgbserv を動かしておく 必要があります。

    msgbserv は、任意のマシンで動かすことができます。 SCore のノードとして利用するマシンである必要はありません。 ただし、Java 版 Message Board Client アプレット を利用する場合には、WWW サーバーを動かしているマシンと同一のマシンで 動かす必要があります。

    設定ファイル
    $(INSTALL_ROOT)/lib/score.conf
    設定ファイルの書式
    PM コンフィギュレーションファイルの設定 を参照してください。
    起動
    SunOS 4.1.x 及び NetBSD の場合、 下記の設定を msgbserv を動かすマシンの /etc/rc.local に書き加え、マシンをリブートしてください。
    $(INSTALL_ROOT)/sbin/msgbserv -config $(INSTALL_ROOT)/lib/score.conf &
    Linux の場合は、 msgbserv を動かすマシンで下記のコマンドを 実行してからリブートして下さい。
    # cp $(INSTALL_ROOT)/lib/magbserv.init /etc/rc.d/init.d/msgbserv
    # chkconfig --add msgbserv
    
    確認
    下記のコマンドを実行してください。
    % $(INSTALL_ROOT)/bin/msgb -server msgbservを動かしたホスト名 &
    下記のようなウィンドウが表示されれば正常です。

    window image of [msgb]

    msgbserv の動作を確認します。

    % msgblock sleep 1
    msgb のウィンドウの中の対応したノードが、sleep の引数に指定した秒数だけ 赤く表示される筈です。
    % msgblock -score pe=2 sleep 1
    pe=2 と指定すると、2 ノードが赤く表示される筈です。

    環境設定


    SCore-S プログラムの実行

    1. どのノードが利用されているか監視します。
      % msgb &
    2. MPC++ のプログラムをコンパイルします。
      SCore のランタイムがリンクされます。
      % cd $(TOP)/tools/examples/L0
      % mpc++ --l0 -o pingpong pingpong.cc
      
    3. 利用したいノード群のうち、最初のノードにログインします。

      SCore-S では、プログラムを起動したマシンが PE (プロセッサ・エレメント) 番号 0 となり、そこから msgbserv の設定 ファイル で記述した順に、指定した数のプロセッサを利用して、 並列にプログラムが動作します。 このため、まず PE 番号 0 として利用するノードにログインします。

      たとえばノード2 にログインし、プロセッサ数 2 を指定して SCore-S プロ グラムを起動すると、ノード 2 が PE 番号 0、ノード 3 が PE 番号 1 として、 2 プロセッサ並列でプログラムを実行します。

      もし利用したいノードのどれかが msgbserv によってロックされていたら, SCore-S プログラムは起動に失敗します。

      (SCore-S を使用していない) 普通のプログラムやコンパイルをクラスタ・ノード で実行しないで下さい。 SCore-S を使用していないプログラムは msgbserv でロックされません。 クラスタ・ノードで SCore-S を使用していないプログラムを起動したいときは SCore-S コマンドでそのホストをロックして下さい。

    4. ヘルプを見ます。
      % ./pingpong -score usage
    5. クラスタ・ノード上でプログラムを実行します。
      % ./pingpong -score pe=2
      このコマンドを投入したノードを PE 番号 0 として、 2 プロセッサを利用して、プログラムを実行します。 -score オプションの引数で示した "pe=数字" が、プロセッサ数の指定です。 プロセッサ数のデフォールトは 1 です。

      利用されるノードは、プログラムが終了するまで、このプログラムによって ロックされます。

      pingpong プログラムの先頭に 「./」 があることに 注意して下さい。 SCore プログラムはコマンドパスをはっきりと指定して起動する必要が あります。 PATH 環境変数の設定は影響されません。


    SCore-D の起動

    SCore-S プログラムを実行する場合、そのプロセッサ・ノードを占有して使用 する必要があります。SCore-D デーモンを利用すると、複数のプログラムやユー ザーが、そのプロセッサ・ノードを時分割で共用することができます。
    1. SCore-D の syslog デーモンを起動します。

      このデーモンプログラムは、必須ではありません。 起動する場合は、WWW サーバーを動かしているマシンと同一のマシンで動か す必要があります。root 権限で起動する必要はありません。

      % $(INSTALL_ROOT)/sbin/sc_syslog &
      sc_syslog プログラムは、ユーザーの SCore-D へのログインおよび ログアウトを報告します。

    2. DQT スケジューリング監視デーモンを起動します。

      このデーモンプログラムは、tss スケジューリングを行なう場合には不要です。 dqt スケジューリングを行なう場合にも、必須ではありません。 起動する場合は、WWW サーバーを動かしているマシンと同一のマシンで動か す必要があります。root 権限で起動する必要はありません。

      % $(INSTALL_ROOT)/sbin/dqtmonitor &
    3. SCore-D の管理下におくノード群のうち、最初のノードにログインします。

      SCore-D を起動するノードから、 msgbserv の 設定ファイル で記述した順に、指定した数のプロセッサが、SCore-D の 管理下に入ります。

    4. SCore-D を起動します。

      異なるユーザーで同一のノード・プロセッサを共用したい場合、SCore-D を root 権限で起動しておく必要があります。 単に一人のユーザーが複数の SCore プロセスを実行したいだけであれば、 そのユーザー自身の権限で動かすだけで十分です。
      どちらの場合でも、上述の環境設定が必要 ですので注意してください。

      以下の例では、SCore-D を起動したノードから始まり、 msgbserv の設定ファイル で記述した順に 計 64 プロセッサを SCore-D の管理下に置きます。 ``-tq 500'' オプションで、スケジューリングの単位時間を 500ミリ秒に指定しています。

      DQT スケジューリングを行なう場合:
      # $(INSTALL_ROOT)/sbin/dqt -score pe=64 -tq 500
      この例では、DQT スケジューリングを行なう SCore-D を起動します。 スケジューリングの単位時間は 500ミリ秒です。

      シンプルな時分割スケジューリングを行なう場合:
      # $(INSTALL_ROOT)/sbin/tss -score pe=64 -tq 500
      dqttss は一種の SCore-S プログラムで、 通常の SCore-S プログラムと同様な -score オプションを 与えることができます。 sc_syslog デーモンを起動している場合には、次のようにして、 sc_syslog デーモンが動作しているホスト名を引数に指定します。
      DQT スケジューリングを行なう場合:
      # $(INSTALL_ROOT)/sbin/dqt -score pe=64 -tq 500 -loghost hostname
      シンプルな時分割スケジューリングを行なう場合:
      # $(INSTALL_ROOT)/sbin/tss -score pe=64 -tq 500 -loghost hostname
      dqtmonitor デーモンが動作している場合には、次のようにして、 デーモンが動作しているホスト名を引数に指定します。これは、dqt プログラムのみに有効です。
      # $(INSTALL_ROOT)/sbin/dqt -score pe=64 -tq 500 -dqtmhost hostname
      sc_syslog デーモンと dqtmonitor デーモンの両方と ともに dqt を起動する場合には、-loghost hostname-dqtmhost hostname の、両方のオプションを指定して下さい。

    SCore-D 下でのプログラムの実行

    SCore-S プログラムと異なり、SCore-D の下でプログラムを実行する際には、 利用したいノードにあらかじめログインしておく必要はありません。 最初に挙げた条件のうち はじめの 3 つを満たしていれば、Myrinet を持たないマシンからでも SCore プログラムを投入することができます。
    1. どのノードが利用されているか監視します。
      % msgb &
      SCore-D の管理下にあるノードは、紫色で表示されている筈です。

    2. Java アプレット 版の SCore 監視プログラムを利用する場合、Netscape のような Java をサポート した WWW ブラウザを起動し、上述の手続き で立ち上げた WWW サーバー経由で、以下のページをアクセスしてください。
      $(INSTALL_ROOT)/html/java/
      このページの Cluster Message Board が、 msgbserv のクライアント、 SCore-D Monitor が、 sc_syslog のクライアント、 DQT Monitor が、 dqtmonitor のクライアントプログラム です。

      Java アプレットのセキュリティ・モデルの制約のため、 WWW サーバー経由 (URL が ``http://...'') ではなく、 直接ファイルにアクセスした場合 (URL が ``file:...'') には、 Java アプレットは動作しないので注意してください。

    3. MPC++ のプログラムをコンパイルします。
      SCore のランタイムがリンクされます。

      % cd $(TOP)/tools/examples/L0
      % mpc++ --l0 -o pingpong pingpong.cc

      この例で分かるように、SCore-S 用と SCore-D 用のバイナリは同じものです。 起動時のオプションで、SCore-D の下で走るかどうかを決定します。

    4. ユーザープログラムを SCore-D のもとで実行します。
      % ./pingpong -score scored=hostname,pe=2
      Connected (pid=0)
      <0> SCore: 2 processors are ready
      
      ここで hostname には、SCore-D サーバーのホスト名を指定します。 デフォールトでは、SCore-D の管理下にあるノードのうち最後のノードが SCore-D サーバーですから、そのノードのホスト名を指定して下さい。 今回の例では、PE 番号 63 のホスト名を指定します。
      ここで、上のように「Connected...」というメッセージが表示されれば、 このプログラムは SCore-D のもとで動作しています。

    $Id: install-jp.html,v 1.5 1998/06/02 11:50:36 kameyama Exp $