Linux での MPI クラスタ

注: Autodesk Simulation Mechanical 360 の場合は、クラウド コンピューティング サービスに解析タスクを送信して解析するため、このセクションの情報は適用されません。

次のタイプの解析は、MUMPS スパース ソルバーを使用して Linux クラスタ上で実行される場合、現在は(複数のコンピュータを使用して解析結果を求める)分散メモリ処理が実装されています(スパース ソルバーの設定については、該当する[解析パラメータ]ダイアログを参照してください)。

このような解析を実行するためには、MPI(メッセージ パッシング インタフェース)をインストールする必要があります。

下の図は、Linux コンピューティング クラスタおよび Windows ベースのリモート実行 PC で構成されるシステムの概要を示したものです。Linux クラスタを構成するすべてのコンピュータが同一のファイル システムを共有するようにすることをお勧めします。この条件を満たしている場合、この共有ファイル システム上で次のインストールが実行されます。この条件を満たしていない場合は、各ステップの指示に従って、それぞれのノードでソフトウェアのインストールと設定を行います。

Linux クラスタ コンピューティング 節点でのインストール

  1. Red Hat Enterprise Linux (RHEL) 6.2 パッケージを https://access.redhat.com/downloads/ からダウンロードします。(ダウンロードを実行するには、Red Hag サポート アカウントを作成する必要があります)。Linux PC に RHEL をインストールします。インストールの構成中に、ソフトウェア開発オプションを選択または追加することを強くお勧めします。このステップでは、MPICH ソース コードをコンパイルし、PC 上で MPD (Multi-Purpose Daemon)を実行することができます。ソフトウェア開発オプションを選択しなかった場合、またはこのオプションを使用しないようにシステムがあらかじめ設定されている場合は、インストールやテストのステップで表示されるメッセージに応じて、Python などの別パッケージのインストールが必要になることがあります。また、インストールの構成時に、ファイアウォールと SELinux を無効にすることもお勧めします。
  2. root ユーザでないユーザのアカウントを作成します。このユーザ アカウントは、Linux クラスタの分散プロセッサを実行する際に使用します。このガイドでは、このアカウントのユーザ名として algoruser を、そのパスワードには password を使用します。
  3. MPICH2 パッケージを http://www.mpich.org/downloads/ からダウンロードします。簡単なインストレーションの手順は、次のとおりです(詳細については、MPICH2 のインストール マニュアルおよびユーザ ガイドを参照してください。これらのドキュメントは、http://www.mpich.org/documentation/guides/ から入手できます)。
    1. root としてログインします。
    2. 圧縮 MPICH2 インストール ファイルを一時フォルダ(/tmp など)にコピーします。この一時フォルダに移動し、次のようにして解凍します。

      tar -zxvf ファイル名.tar.gz、ファイル名はダウンロードしたインストーラの名前です。この手順の後、先ほどの一時フォルダに新しいフォルダが作成されます。

    3. MPICH2 のインストール先となるフォルダを作成します。例: /opt/mpich2-x.y (x.y は MPICH2 のバージョン番号で置換されます)。このフォルダは、クラスタの共有ファイル システム上に作成することを強くお勧めします。別の場所に作成した場合は、インストールの後に、このフォルダをクラスタのすべての節点にコピーする必要があります。
    4. インストーラを解凍して(上記の手順 2)作成された新しいフォルダに移動し、次の方法で MPICH2 を構成およびビルドします。

      /configure -prefix=/opt/mpich2-x.y (異なる場合は、実際のフォルダ名に置換します)

      make

      make install

    5. インストールが完了したら、bin、include、lib などの新しいフォルダが /opt/mpich2 内に作成されたことを確認します。
  4. Red Hat Enterprise Linux 6.2 で、ファイアウォールおよび SELinux が無効になっていない場合は、この時点で、[システム]メニューから[管理]、[セキュリティレベルとファイヤーウォールの設定]の順に選択し、すべてのクラスタ ノードに対してこの 2 つを無効にします。上級ユーザの場合はファイアウォールを有効にしてもかまいませんが、MPD サービスがファイアウォールを通過できるようにするために追加の設定が必要になります。SELinux を有効にすると、RHEL 6.2 の Samba ファイル共有サービスとの競合が発生するので、必ず無効にしてください。
  5. Linux システムと Windows システムの間でファイルを共有するため、クラスタのヘッド ノードで Samba サービスを開始します。(このサービスがヘッド ノードにインストールされていない場合は、[アプリケーション]メニューから[ソフトウェアの追加/削除]、[サーバー]の順に選択してインストール パッケージを探すことができます。[Windows ファイルサーバー]を選択してハイライト表示し、[適用]ボタンをクリックすると、パッケージをインストールできます。)
    1. [システム]メニューから、[管理]、[サーバー設定]、[Services]の順に選択します。smb サービスをオンにして、[開始]ボタンをクリックします。サービスが実行中になったことを確認します。
    2. インストールが完了したら、[システム]メニューから、[管理]、[サーバー設定]、[Samba]の順に選択します。ポップアップ ウィンドウで、[プレファレンス]メニューから[Samba のユーザ]を選択します。新しいユーザを追加し、Samba のユーザとして algoruser を選択します。Windows ユーザ名でも algoruser を使用し、パスワードを入力します。
    3. 次に、Linux ターミナルで、/home/algoruser/shared のようなフォルダを作成します。これは Samba の共有フォルダとして使用されます。Windows で作成されたモデルはこのフォルダにコピーされて、Linux 環境での分散処理用に使用されます。[共有を追加]をクリックし、このフォルダを Samba の共有に追加します。[共有名]に shared と入力し、[書き込み可能]と[表示]をオンにします。[アクセス]タブで、ユーザ algoruser のアクセスを許可します。
  6. xinetd サービスと rexec サービスをインストールして開始します。
    1. [アプリケーション]メニューから[ソフトウェアの追加/削除]、[サーバー]、[レガシーなネットワークサーバー]の順に選択します。[オプションパッケージ]ボタンをクリックし、rsh-server パッケージをオンにして、インストールを適用します。
    2. [アプリケーション]メニューから[ソフトウェアの追加/削除]を選択し、[検索]ボタンをクリックして xinetd と入力します。次に検索を実行します。検索結果に表示された xinetd パッケージをチェック状態にして、[適用]をクリックしインストールを実行します。
    3. [システム]メニューから、[管理]、[サーバー設定]、[Services]の順に選択します。[On Demand Services]タブで、rexec サービスをチェック状態にします。
    4. [Background Services]タブで、xinetd サービスをチェック状態にして、[再起動]ボタンをクリックします。サービスの設定を終了するときは、それまでの設定を保存するようにします。
  7. MPD を起動します。MPD の起動は、一般ユーザのアカウント(この例では algoruser)を使って行うことをお勧めします。
    1. 次のコマンドを使用して、すべての節点でユーザのホーム フォルダに .mpd.conf ファイルを作成します。

      cd /home/algoruser

      touch .mpd.conf

      chmod 600 .mpd.conf

    2. エディタを使用して .mpd.conf を開き、次の行を追加します。

      MPD_SECRETWORD=yourpassword

    3. クラスタの MPD サービスを開始する方法はいくつかあります。MPD は各コンピューティング ノードで開始されるプロセスを管理しますが、最大限に活用するにはクラスタの PC のハードウェア構成も考慮に入れる必要があります。詳細については、MPICH2 のドキュメントを参照してください。たとえば、クラスタの K 個のノードすべてが同一の性能を持ち、かつ各ノードに N 個のコンピューティング コアがある場合、簡単に MPD を起動する方法として次のようなものがあります。
      1. ファイルを作成します(たとえば、/opt/mpich2-x.y/mpd.hosts)。このファイルの各行に、次のように個々のクラスタ ノードの名前を記述します。

        node1.company.com

        node2.company.com

        ......

        nodek.company.com

      2. 次のコマンドを使用して MPD を起動します。

        /opt/mpich2-x.y/bin/mpdboot -n K --ncpus=N -f /opt/mpich2-x.y/mpd.hosts

      3. 現在の MPD のステータスは、bin フォルダの mpdtrace コマンドを使用して確認できます。mpdallexi コマンドを使用すると、現在の MPD を終了できます。MPICH2 のインストール ガイドには、MPD のトラブルシューティングに関する章もあります。

    Linux PC を再起動したときは、MPD も手動で再起動する必要があります。

  8. ソフトウェアをクラスタのすべての節点にインストールします。詳細については、Linux のインストールに関するトピックを参照してください。クラスタの共有ファイル システムにもソフトウェアをインストールすることをお勧めします。
  9. Autodesk Simulation での MPICH2 のパスおよび分散ソルバーのライセンスを設定するために、次の行をユーザの bash プロファイル(上記の例では /home/algoruser/.bashrc)に追加します。

    export ALGOR_MPICH=/opt/mpich2-x.y

    export MALLOC_TRIM_THRESHOLD_=-1

    export MALLOC_MMAP_MAX_=0

Linux にインストールした Autodesk Simulation Mechanical および MPICH のテスト

Autodesk Simulation および MPICH ソフトウェアを節点にインストールしたら、インタフェースから解析の送信を試みる前に、これらのインストールを手動でテストすることをお勧めします。

  1. Autodesk Simulation が 1 台のプロセッサで正常に動作するかどうかをテストします。このテストを実行するには、Windows コンピュータで、線形静的応力解析を行うための小規模なモデルを作成します。
    1. このモデルに対し、[解析]の[モデルをチェック]コマンドを実行します。
    2. 設計シナリオが保存されているフォルダ(たとえば my_sample_model.ds_data¥1)内のすべてのファイル(ds.* および ds.mod¥*.)*)を、Linux マシンのフォルダ(たとえば /home/algoruser/example/) にコピーします。
    3. 別の Linux ターミナルを開き、コマンド ラインから、次のようにしてサンプル モデルをコピーしたフォルダに移動し、サンプル モデルを実行します。

      cd /home/algoruser/example/

      /opt/algor/ssap0 ds -run

      ただし、

      • /home/algoruser/example/ は、モデルのコピー先のフォルダです。
      • /opt/algor/ は、Autodesk Simulation ソフトウェアがインストールされた節点のフォルダです。
      • ssap0 は、線形材料による静解析のプロセッサの名前です。
      • ds は、設計シナリオが保存されているフォルダ内のモデルの名前です。
      • -run は、プロセッサをすぐに実行する実行時オプションです。
  2. MPI モードでこのモデルをテストします。コマンド ラインで、次のようにl ¬nmpi=N オプションを追加します。

    /opt/algor/ssap0 ds -run -nmpi=N

    N は、開始する分散処理の合計数です。

Linux クラスタでの解析の実行

クラスタが正常に動作していれば、次に示すページで説明するインタフェースからクラスタにアクセスすることができます。

  • クラスタへのリンクを作成します。『Autodesk Simulation ユーザ ガイド』の「一般的なオプション」>「[ツール]プルダウン メニューを使用する」>「[オプション]ダイアログ」>「[解析]タブ」>「[リモートホスト]タブ」のページを参照してください。
  • クラスタに解析を送信します。『Autodesk Simulation ユーザ ガイド』の「解析の設定と実行」>「解析を実行する」の「Linux オペレーティング システムで解析を実行する」を参照してください。最初のテストについて、解析ウィンドウで[節点数]を 1 に設定し、解析を開始します。正常に実行できたら、複数のコンピューティング ノードを使用して解析を繰り返します。

Linux のスワップ ファイル

スパース ソルバーは多くのメモリ容量を必要とするため、スパース ソルバー用のスワップ領域が十分でない場合は、Linux システムのスワップ領域を追加することが可能です。この設定は、Red Hat のマニュアルに従って次の方法で行うことができます。

  1. 新しいスワップ ファイルのサイズを MB 単位で判定し、その数値に 1024 を掛けてブロック サイズを決定します。たとえば、64 MB のスワップ ファイルのブロック サイズは 65536 となります。
  2. シェル プロンプトで root として次のコマンドを入力します。count には適切なブロック サイズを指定します。

    dd if=/dev/zero of=/swapfile bs=1024 count=65536

  3. mkswap /swapfile コマンドを使用して、スワップ ファイルを設定します。
  4. スワップ ファイルを(起動時に自動的にではなく)ただちに有効にするには、「swapon /swapfile」と入力します。
  5. スワップ ファイルが起動時に有効になるようにするには、/etc/fstab に次の記述を追加します。

    /swapfile swap swap defaults 0 0

  6. 新しいスワップ ファイルを追加して有効にする設定が終わったら、cat /proc/swaps または free コマンドの出力を見て、そのスワップ ファイルが有効になっていることを確認します。