Folding@home SMP FAQ

目次

- はじめに
- FAH SMP ベータ版クライアントの実行方法
- Windows XP および 2000へのインストール
- Windows Vistaへのインストール
- Mac OSXへのインストール
- Linuxへのインストール
- インストール手順の詳細
- Windows版インストール手順 (コンソール)
- v5 Windows版クライアントをv6にアップグレードするには
- OSX版インストール手順 (インストーラを使う場合)
- OSX版インストール手順 (コンソール)
- Linux版インストール手順 (コンソール)
- よくある質問
- どのOS(オペレーティングシステム)をサポートしていますか
- 何CPUコア必要ですか。また、どのタイプのCPUがよいでしょうか
- FAH SMPクライアントは通常のクライアントと同じWUを実行するのでしょうか
- FAH SMPクライアントではどの科学計算コードをサポートしていますか。Gromacsコアのみ?他のコアたとえばAmberは?
- このクライアントはいつベータ版から正式版に変わりますか
- SMP WUのポイントはどうやって決めているんですか
- なぜSMPクライアントは重要なのですか、またベンチマークの基礎点をどうやって決めたのですか
- ハイパースレッディング(HT)が有効だとどうなりますか
- なぜマルチスレッドではなくMPIを使うのですか
- MPIはうまく動きますか
- なぜプロセスが4つ走って見えるのですか
- MPIは面倒くさくありませんか
- MPIはクラスタコンピューティング用ではありませんか
- ということは、FAHのCPUクラスタサポートもありうる?
- トラブルシューティング
- クライアントが接続の作成に失敗して " Fatal error in MPI_Wait: Other MPI error, error stack:" メッセージを表示します
- クライアントが起動に失敗します。エラーコードの意味を教えてください
- ネットワークに何かあると (設定変更やカスタマイズ等)、FAH/SMPクライアントの調子が悪くなります
- WindowsXP上のSMPクライアントがネットワーク問題で落ちるのを防ぐには
- Windows Vistaに特有のトラブル
- Linuxマシンが "4 NNODES" でハングします

はじめに

2000年より、Folding@home (FAH) は分子シミュレーションのスピードを飛躍的に向上させてきました。世界中から数十万のPCが参加することにより、以前は不可能と考えられてきた計算が、今では日当たり前になったのです。FAHはタンパク質の折りたたみと異常折りたたみを対象とし、このプロジェクトから幾多の科学的進歩がもたらされました。

2006年を迎えたとき、分散コンピューティングに飛躍的な性能向上をもたらす新たな手法に期待を抱きました。以前はスーパーコンピュータでしか実現できなかった性能を実現するためATIの高性能グラフィックス処理ユニット (GPU) やSonyのPlayStation 3をサポートすることについては、既にアナウンスしています。。

これらに加え、新型のクライアント、Folding@home SMPクライアントをリリースします。SMPとは「対称型マルチプロセッシング」の意味で、一般的にコンピュータが一つ以上のプロセッサコアを持った状態を指します。デュアルコアがあたりまえになり、4コア機 (現在Apple Mac Proのようなデュアルソケット機として実現しています) すら一般的になりつつあります。IntelとAMDの進める革新により、クアッドコア・プロセッサの登場が迫っており、8コアや16コア・マシンがまもなく一般的になるでしょう。

SMPクライアントとGPUクライアントの目指しているものは似ています:多くの興味深い問題 (特にアルツハイマー病のようなタンパク質の異常折りたたみや凝集) に立ち向かうには、単に多数のコンピュータの参加するだけでなく、計算結果がもっと早く返ってくる必要があり、それでようやく(折りたたみの)軌跡を十分な長さでシミュレートできるのです。現在、これには数ヶ月から年単位の時間がかかっています (事実、私たちが行った最初のアルツハイマー病シミュレーションは正味2年近くかかりました)。SMPとGPU (そしてPS3) クライアントが待ち望まれるのは、そういう世界です。同じ時間でかなり長時間の軌跡を求めることが出来、FAH上で何年もかかるシミュレーションを数週間から数ヶ月のものに変えてくれるのです。

また、SMPとGPUクライアントは互いに補完しあう関係にあります。GPUクライアントが特定の種類の計算 (implicit solvent calculation) を劇的に (~30倍)高速化するのに対し、SMPクライアントは我々が必要とする全ての領域で4倍のスピードアップをもたらします。たとえ4倍であってもその意味は大きく、これは事実上すべてのFAHの計算において、年単位の計算を数ヶ月にしてくれるほどの効果があるのです。マルチコアCPUが一般的になり、既に8コア機 (クアッドコアCPUを2個搭載したもの) の登場がアナウンスされてた今では、このことはもっと重要になると予測しています。

私たちの目標は、この新技術によってFolding@homeの計算能力を劇的に向上させ、タンパク質折りたたみやアルツハイマー病やハンチントン病そしてある種の癌といった疾病のさらなる研究に、このシミュレーションを適用していくことです。計算機の進歩は、これを利用する新しいシミュレーションメソドロジと結びつき、従来コンピュータで実現不可能と思われた問題を解くことができるようになり、またタンパク質折りたたみや関連する疾病の知見にさらに大きなインパクトをもたらすでしょう。

FAH SMP ベータ版クライアントの実行方法

重要: FAH v6ベータ版クライアントがv5 SMPクライアントに置き換わる形でリリースされました。設定がいくつか変更されています。クライアントを実行する前に、v6の説明をお読みください。

このクライアントはベータ版であり、いくつかバグや欠陥、不具合が予想されます。問題を最小限に抑えるため、我々はクライアントとコアを徹底的にテストし、ラボの中ではきちんと走ることを確認しています。しかしながら、内部の限定された環境と「外の荒野」で走らせることはまったく異なることも、我々は経験から知っています。

ベータ版ソフトウェアを実行するときは、あらかじめハードディスクのバックアップを取ってください。少しも不安定になってはいけないマシンで、このクライアントを実行してはいけません。

実行までのステップは大まかに次の二つです:

  1. クライアントをFolding@homeのwebサイトからダウンロードします。
  2. プログラムをインストールします。

現在サポートしているのは Mac OSX/Intel, 64-bit Linux, and Windows の3プラットフォームのコンソール版のみであることにご注意ください。32bit Linuxクライアントにも取り組んでおりますが、まだリリース予定をお伝えできる段階にありません。Windowsへの移植版は最近ベータリリースされ、OSXやLinuxとは別のコードベースを使用しています。

Windows XP および 2000へのインストール

SMPクライアントをインストールする前に、Microsoft .NET framework v2.0 をあらかじめインストールしてください。次に、クライアントの自己解凍インストーラを実行し、インストール先ディレクトリを選んでそこにファイルをインストールします。続いて、インストール先ディレクトリにある install.bat を実行すると、インストール作業は完了です。このディレクトリにある fah.exeを実行すればクライアントが走り始めます。詳しい説明は、このページのすぐ下のセクションにあるので参照ください。ここでは実行ステップのみ説明します:

  1. .NET Framework 2.0がインストールされていることを確認してください。
  2. 自分のアカウントにパスワードがセットされていることを確認してください(FAH SMPクライアントは、パスワードなしのアカウントでは動作しません)。
  3. FAH SMPクライアントをインストールします。
  4. install.batを実行します。
  5. fah.exe を実行します。 (v6.22以降では -smp オプションをつけてください。DeinoMPI版の場合は -smp -deino です)

Windows Vistaへのインストール

Vistaの場合、.NET Frameworkは最初からインストールされています。クライアントの自己解凍インストーラを実行し、インストール先ディレクトリを選んでそこにファイルをインストールします。続いて、インストール先ディレクトリにある install.bat を実行すると、インストール作業は完了です。このディレクトリにある fah.exeを実行すればクライアントが走り始めます。以上の詳しい説明は、このページのすぐ下のセクションにあるので参照ください。ここでは実行ステップのみ説明します:

  1. .NET Framework 2.0は最初からインストールされています。
  2. 自分のアカウントにパスワードがセットされていることを確認してください(FAH SMPクライアントは、パスワードなしのアカウントでは動作しません)。
  3. FAH SMPクライアントをインストールします。
  4. install.batを実行します。
  5. fah.exe を実行します。 (v6.22以降では -smp オプションをつけてください。DeinoMPI版の場合は -smp -deino です)

詳しい説明は下のセクションにあります。SMPクライアントがベータテスト段階を終える頃には、インストーラを改良してもっと簡単にSMPクライアントが導入できるよう取り組んでいます。いずれにしても、既存のインストール環境を単純に上書きしないようご注意ください。

Mac OSXへのインストール

インストーラつきのクライアントも用意されており、unixに不慣れな人はこちらをお使いください。

コンソール版クライアントの場合:ファイルを解凍し、mpiexecファイルを ~/Library/Folding@home ディレクトリにコピーします。あとは fah6バイナリを実行するだけです。詳しい説明はこの下のセクションにあります。

Linuxへのインストール

ファイルを解凍し、fah6バイナリを実行するだけです。linuxでFAHを実行するのに不慣れな方は、FAH wiki の該当エントリ(あるいは、同Wikiの FINSTALL code tutorial など)をご覧ください。詳しい説明はこの下のセクションにあります。


インストール手順の詳細

Windows版インストール手順 (コンソール)

下記の説明のほかに、FAH Wikiの解説(英語)も見ることをおすすめします。 このインストール手順はダウンロードしたクライアントを解凍すると出てくる readme.rtf からも参照できます。

Note: このクライアントを実行するアカウントには、必ずパスワードを設定してください。パスワードを空白にしていると、FAH coreが落ちてしまいます。

  1. 必要なソフトウェア: SMPクライアントの動作にはMicrosoft .NET framework v2.0が必要です。Windows2000とXPでは、クライアントよりも先にインストールしてください(Windows Vistaには最初から入っています)。version2.0のものが必須です。ほかのversionとは共存できますが、version2.0は必ずインストールしなくてはなりません。MicrosoftのこちらのURLから入手できます ( http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=0856eacb-4362-4b0d-8edd-aab15c5e04f5 ) 。インストールにはAdministrator権限が必要です。
  2. 自己解凍インストーラを実行し、SMPクライアントを展開してください。
  3. クライアントをインストールします。install.bat をSMPのインストールディレクトリで実行し、インストール作業を完了させてください。この作業でクライアントに必要なMPIサービスがインストールされます。もしWindowsファイアウォールを有効にしていたら、smpdとmpiexecのプログラムにアクセス許可を与えるかポップアップウィンドウで聞かれます。アクセスを許可してください。他のファイアウォールを使用している場合、smpd等に同様の例外を設定する必要があると思われます。

NOTE: mpiexecに与えるユーザ名とパスワードは、クライアントを実行するアカウントのWindowsログイン名とパスワードです。これらは、ローカルマシン認証のため暗号化してレジストリに格納しますが、FAHサーバに送信することはありません。ログインパスワードを変更した場合は、install.bat を再実行してください。

インストールの最後に、2行の下記メッセージが出力されます:

 If you see this twice, MPI is working
 If you see this twice, MPI is working

このメッセージが出ない場合は、クライアントを実行しないでください。MPIのインストールに失敗しているため、クライアントがうまく動きません。

  1. クライアントの実行:

fah.exeを実行するとSMPクライアントが走り始めます。このときファイアウォールがまたポップアップウィンドウを出すかもしれません。

Note: SMPクライアントのサービス化は公式サポートされていませんが、下記の手順で出来ることがユーザの皆さんにより判明しています。

  • .NET 2.0 と Windows SMPクライアントを管理者権限を持つ同一のアカウントでインストールしてください。
  • -configonlyオプションをつけてクライアントを起動し、サービスに関する質問に "yes" と答えてください。それ以外の設定はいつも通りです。まだクライアントを起動してはいけません。
  • サービスコントロールパネルを開くと、FAH WinSMP service が追加されています。このサービスのプロパティを開き、ログオン タブをクリックしてください。ログオン:アカウント(ローカル システム アカウント ではなく) を選択し、.NET 2.0 と SMPクライアントをインストールしたアカウントのユーザ名とパスワードを入力します。
  • 再起動してください。SMPクライアントは自動的にサービスモードで走り始めます。

v5 Windows版クライアントをv6にアップグレードするには

この説明を作ってくれたXilikonに感謝します。

  1. C: などのドライブに新しいFAHディレクトリを作成します。
  2. この新しいディレクトリに、v6のzipファイルをダウンロードし、解凍します。
  3. コマンドプロンプト窓を開きます([スタート]--[ファイル名を指定して実行] に cmd.exe と打ち込んでも同じです)。Vistaの場合には、UACを無効にするかAdministrator権限でログインしている必要があります。
  4. cdコマンドで、この新しいFAHディレクトリに移動します。
  5. まず、install.batを実行してMPI(ダウンロードしたzipファイルによって、MPICHの場合とDeinoMPIの場合があります)をインストールします。
  6. "Folding@home-Win32-x86.exe -configonly" とタイプし、ダイアログに応答して設定を置こなってください。(exeファイルはfah6.exeなどにリネームしておくと楽です)
  7. "Folding@home-Win32-x86.exe -smp -verbosity 9" とタイプし、クライアントを実行します(DeinoMPI版の場合、オプションは "-smp -deino -verbosity 9" です)。-smpオプションは、設定中に advanced settings の中で 指定した場合を除き、必須です。。

OSX版インストール手順 (インストーラを使う場合)

 1. .zipファイルをダウンロードし、ダブルクリックして解凍します。
 2. インストーラパッケージをダブルクリックし、あとは説明に従ってインストールしてください。
 3. アップルメニューから システム環境設定 を選択します。
 4. システム環境設定の画面からFolding@homeアイコンを選択します。
 5. ユーザ名、チーム番号を入力し、スタートボタンをクリックしましょう!

インストールが終われば、あなたのポイントはStats(統計)ページから参照できます。タンパク質ビューア (旧版のGUIの一部) とダッシュボードヴィジェットは現在開発中です。

OSX版インストール手順 (コンソール)

OSXユーザの皆さんにはインストーラ (上記) を使うことを推奨しています。しかし、SMPクライアントコンソール版を選択される方のために、詳しいセットアップ手順を下記に用意しました。

  1. ターミナルの起動: Finderのメニューの移動からユーティリティーを選び、ターミナルを開いてください。
    ターミナルウィンドウでは、たとえばこのようなプロンプトが見えます:
    yourcomputername:~ yourusername$
  2. 下記コマンドをタイプし、SMP FAHクライアントを入手してください (v6.00beta2の場合) :
 mkdir ~/Library/Folding@home
 cd ~/Library/Folding@home
 curl -O 
 http://www.stanford.edu/group/pandegroup/folding/release/FAH6.00beta2-OSX-Intel-Console.tgz
 tar xzf FAH6.00beta2-OSX-Intel-Console.tgz
  1. SMP FAHクライアントを任意のディレクトリに解凍したら、まず次のコマンドを実行し、設定を行ってください:
    ./fah6 -smp local -configonly
  2. 設定完了後、SMP FAHを起動するにはいくつか方法があります。たとえば、毎回次のようにタイプして起動します:
    ./fah6 -smp -local -verbosity 9
  3. おまけ: ちょっと楽をするため、下記のコマンドを打って簡単なスクリプトを作るとよいでしょう:
 echo "./fah6 -smp -local -verbosity 9" > FaH
 chmod +x FaH

起動するときは、下記を実行するだけです:

./FaH

これでFAHクライアントは必要なオプションつきで実行されます。

Note: ここまでに掲載したコマンドは、すべてターミナルウィンドウに貼り付けるかタイプする必要があります。

実行例 (OSX):

 Welcome to Darwin!
 box:~ user% mkdir ~/Library/FAH
 box:~ user% cd ~/Library/FAH
 box:~/Library/FAH user% curl -O
 http://www.stanford.edu/group/pandegroup/folding/release/FAH6.00beta2-OSX-Intel-Console.tgz
   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                  Dload  Upload   Total   Spent    Left  Speed
 100  138k  100  138k    0     0  34461      0  0:00:04  0:00:04 --:--:-- 39789
 box:~/Library/FAH user% tar xzf FAH6.00beta2-OSX-Intel-Console.tgz
 box:~/Library/FAH user% ls -la
 total 960
 drwxr-xr-x    5 user  guest     170 Nov  6 23:58 .
 drwx------   18 user  guest     612 Nov  6 23:55 ..
 -rw-r--r--    1 user  guest  141900 Nov  6 23:56 FAH6.00beta2-OSX-Intel-Console.tgz
 -rwxr-xr-x    1 user  guest  282796 Nov  4 07:04 fah6
 -rwxr-xr-x    1 user  guest   60156 Oct 27 16:52 mpiexec
 box:~/Library/FAH user% ./fah6 -smp -local -configonly
 ...
 box:~/Library/FAH user% echo "./fah6 -smp -local -verbosity 9" > FaH
 box:~/Library/FAH user% chmod +x FaH
 box:~/Library/FAH user% ./FaH


Linux版インストール手順 (コンソール)

この作業をもっと簡単にするインストーラを現在作成中です。それまでは、下記の手順に従いSMPクライアントをセットアップしてください。

  1. ターミナルを起動してください。お使いのデスクトップ環境 (KDE, GNOME, ...) により、ターミナルアプリケーションの起動方法は異なります。GNOMEの場合 "アプリケーション→アクセサリ→端末" からターミナルを起動します。
  2. ターミナルウィンドウでは、たとえばこのようなプロンプトが見えます:
    yourusername@yourcomputername ~ $
  3. 下記コマンドをタイプし、SMP FAHクライアントを入手してください (v6.00beta2の場合) :
 mkdir -p ~/folding/FAH
 cd ~/folding/FAH
 curl -O
 http://www.stanford.edu/group/pandegroup/folding/release/FAH6.00beta2-Linux.tgz
 tar xzf FAH6.00beta2-Linux.tgz

Note: もしお使いのマシンで curl が使用できない場合、代わりに wget を使ってください:

 wget http://www.stanford.edu/group/pandegroup/folding/release/FAH6.00beta2-Linux.tgz
  1. SMP FAHクライアントを任意のディレクトリに解凍したら、まず次のコマンドを実行し、設定を行ってください:
    ./fah6 -smp -configonly

設定完了後、SMP FAHを起動するにはいくつか方法があります。たとえば、毎回次のようにタイプして起動します:
./fah6 -smp -verbosity 9

  1. おまけ: ちょっと楽をするため、下記のコマンドを打って簡単なスクリプトを作るとよいでしょう:
 echo "./fah6 -smp -verbosity 9" > FaH
 chmod +x FaH

起動するときは、下記を実行するだけです:

 ./FaH

これでFAHクライアントは必要なオプションつきで実行されます。

Note: ここまでに掲載したコマンドは、すべてターミナルウィンドウに貼り付けるかタイプする必要があります。

実行例:

 user@box ~ $ mkdir -p ~/folding/FAH
 user@box ~ $ cd ~/folding/FAH
 user@box FAH $ curl -O
 http://www.stanford.edu/group/pandegroup/folding/release/FAH6.00beta2-Linux.tgz
 % Total % Received % Xferd Average Speed Time Time Time Current
 Dload Upload Total Spent Left Speed
 100 138k 100 138k 0 0 34461 0 0:00:04 0:00:04 --:--:-- 39789
 user@box FAH $ tar xzf FAH6.00beta2-Linux.tgz
 user@box FAH $ ls -la
 total 960
 drwxr-xr-x 5 user guest 170 Nov 6 23:58 .
 drwx------ 18 user guest 612 Nov 6 23:55 ..
 -rw-r--r-- 1 user guest 138145 Nov 6 23:56 FAH6.00beta2-Linux.tgz
 -rwxr-xr-x 1 user guest 282796 Nov 4 07:04 fah6
 -rwxr-xr-x 1 user guest 60156 Oct 27 16:52 mpiexec
 user@box FAH $ ./fah6 -smp -configonly
 ...
 user@box FAH $ echo "./fah6 -smp -verbosity 9" > FaH
 user@box FAH $ chmod +x FaH
 user@box FAH $ ./FaH
 ... 

Note: クライアントの初回起動時、下記エラーが発生する場合があります。

 bash: ./fah6: No such file or directory

これはamd64またはia64システムにおいて、ia32共有ライブラリがインストールされていないと発生します。 お手数ですが、ia32共有ライブラリを個別に入手してインストールしてください。 Debian系(Ubuntu等)ディストリビューションの場合、下記をタイプするだけでインストールできます:

 sudo apt-get install ia32-libs

Redhat系の場合は下記のようにします:

 yum install compat-libstdc++


よくある質問

どのOS(オペレーティングシステム)をサポートしていますか

三つのオペレーティングシステムをサポートしています:Windows、Mac OSX/Intel、そして 64-bit Linux です。32-bit Linuxへの移植も行っており、ベータテストに入れるものが間もなく仕上がるでしょう。Windows版は32-bitと64-bit 両方のWindowsで動作します。

何CPUコア必要ですか。また、どのタイプのCPUがよいでしょうか

ベータテストにおいてはSMP版のコードを4コア搭載PCで実行することを推奨していますが、2コアでもそこそこの性能が出ます。このコードは Core 2 Duo/Woodcrestクラスのチップで最高の性能が出ますので、これらを搭載したシステムを推奨します。

FAH SMPクライアントは通常のクライアントと同じWUを実行するのでしょうか

いいえ、SMPクライアントでは SMP Core_a1 の新しい機能を使う特別なWUセットが走ります。SMP Core_a1 WU のファイルフォーマットは通常の Gromacs WU と同じですが、科学計算を実行するコードが異なっており、Gromacsで Core_a1用WUを実行すると不正な結果を返します(つまり実行できません。逆もしかり)。

FAH SMPクライアントではどの科学計算コードをサポートしていますか。Gromacsコアのみ?他のコアたとえばAmberは?

SMPプロセッサ用のGromacsコア (Core_a1) のみをサポートしています。他のコア (AmberやTinker) でも可能でしょうが、今のところロードマップにはありません。

このクライアントはいつベータ版から正式版に変わりますか

コードが「自然の中で」どれだけきちんと動くかにかかっており、予測は困難です。また、分散コンピューティングにおいて単一の計算をマルチコア・プロセッサに実行させるようになってまだ日が浅く、誰も予想し得ない挙動をする可能性があります。

SMP WUのポイントはどうやって決めているんですか

獲得するポイントはCPUクライアントの場合と同様、ベンチマークマシンに対する実行マシンの相対性能で決まります。新しいプロジェクト(WU系列)をリリースする前には、2-2.33GHzデュアルコアXeonプロセッサを搭載するMacintosh Pro機 (具体的に書くと 2 Woodcrest 5140 processors with 4 MB cache (each), 5 GB FBDIMM Memory (667 MHz DDR2), 1.33 GHz Bus) でベンチマークを行います。

ベンチマークテストの結果を下記の数式に当てはめ、各WUのポイントを算出します:

ポイント = 1760 * (daysPerWU)

ここで daysPerWU はWUを処理するのにかかった日数です。

リファレンス機を使うのは、WU処理性能とマシンの性能が必ずしもイコールでないためです。Xeonプロセッサの間でさえ、アーキテクチャに顕著な違いが存在します。また、同じプロジェクトの中にも処理速度の違うさまざまなWUが存在します。

(上記に示す)リファレンス機でポイントが一意に決まることが目標ですが、マシン・WU間の自然のばらつきにより、どんなポイントシステムであろうと獲得するポイントを完全に予測することはできません。

なぜSMPクライアントは重要なのですか、またベンチマークの基礎点をどうやって決めたのですか

SMPクライアントの目的は二つあります:昨今のマルチプロセッサシステムの高い性能を生かすことと、マルチコア・チップが業界標準となった時代に有力なFAH計算パラダイムとなりうるシミュレーションアーキテクチャを開発することです。高性能クライアントによって標準的なアーキテクチャでは非現実的と思われていた計算が可能になり、我々の科学力と皆さんの貢献を著しく高めます。

高性能クライアントは、より多くの計算機リソースを必要とします。SMPクライアントは一般的に24時間稼働の専用機で実行され、より多くの処理能力、ディスク容量、ネットワークリソース、システムメモリ等を消費します。また科学的にメリットがあるかどうかはWUがいかに早く返送されてくるかにかかっており、このためSMP WUの〆切を短く設定しています。通常のCPUクライアント以上の計算機リソース消費、非常に短い〆切でWU処理を完了しなければならないこと、次世代科学計算アーキテクチャの開発に貢献いただくことを考慮し、現在ベンチマークの基礎点はSMP WUの需要に比例するように(*ボーナスポイント込みで)設定してしています。SMPクライアントと皆さんのさらなる貢献無しに、多くの重要なプロジェクトを完遂することはかなわないでしょう。
*上記ボーナスは予告なく変更することがありますのでご承知ください。

ハイパースレッディング(HT)が有効だとどうなりますか

SMPクライアントはもともとHTをサポートしないマルチコアCPUを対象に設計されています。物理CPUが2個のマシンに対しては、HTを有効にしてOSから4つの論理プロセッサが見えるようにすることを推奨します(SMPクライアントが4CPU向けのため)。しかし物理コアが4個ある場合には、HTを無効にしたほうがよいいでしょう。これは、OSから8つの論理プロセッサが見えるとSMPの実行効率が落ちる場合があるためです(HTの論理プロセッサは通常の物理コアよりずっと遅くなります)。

なぜマルチスレッドではなくMPIを使うのですか

科学技術計算のコードがスレッドセーフやマルチスレッドで書かれていないためです。唯一並列処理が可能なコード(GromacsとAMBER)はMPIを使っています。Gromacsの並列処理は今はマルチスレッド化できず(Gromacsの開発者とはこの件で頻繁に話しています)、MPIが唯一の解となっています。

MPIはうまく動きますか

簡単に言うとLinuxとOSXでは非常にうまくいったのですが、Windows版はあまりよくありません。MPIはもともとUnix上で開発されたため、このことは意外ではありません(さまざまな意味で、Windows上ですら動くことは快挙なのです)。Windows版SMPクライアントに特有の怪しい動きはMPI-Windows間の干渉によるものとみられ、原因追及をしつつ他のMPIもトライアルしています。

なぜプロセスが4つ走って見えるのですか

リリース版の全てにおいて、Gromacsはコードを一旦バラバラにして計算を準備するのですが、SMPプロセッサ数は実行時(mdrun)ではなくセットアップ(Grompp)のときに決められます。MDRUNはFAH coreの中で走っているコードで、実行時にSMPプロセス数が固定されます。これを変更するオプションは現在調査中です。

MPIは面倒くさくありませんか

残念ながら、現在ほかに選択肢がありません(上記参照)。

MPIはクラスタコンピューティング用ではありませんか

答はイエスでありノーです。当初はクラスタコンピューティング用に始まったのですが、現在マルチCPU/マルチコアマシンに最適なソリューションともなっています(なお、MPI用に書いたコードはどちらのアーキテクチャでも実行することができます)。

ということは、FAHのCPUクラスタサポートもありうる?

考えてはいますが、その前に今のSMPクライアントがスムーズに動くようにしたいものです。

トラブルシューティング

クライアントが接続の作成に失敗して " Fatal error in MPI_Wait: Other MPI error, error stack:" メッセージを表示します

Pogoにアドバイスをいただき、この問題がループバックデバイスによるものとわかりました。該当するかどうかは、次のステップで簡単に調べることができます:

  • コマンドプロンプトまたは端末から "hostname" コマンドを実行し、マシンのホスト名を調べます。
  • "ping <hostnameコマンドの表示するホスト名>" を実行してください。
  • pingの応答時間に注目してください。1msを超えているとマシンに問題ありです。
  • "traceroute <hostnameコマンドの表示するホスト名>" (Linux/OSXの場合) "tracert <hostnameコマンドの表示するホスト名>" (Windowsの場合) も実行してみてください。ホストまで何のホップもなければ正常です。

対処方法:

  • ローカルホストの名前をインターネットからpingで届かない名前に変更してください (変更後、ping や nslookup コマンドをインターネットに接続した他のマシンから実行するとチェックできます)
  • 変更したホスト名を、このマシンで名前解決できるようにします。Linuxの場合は "127.0.0.1 <変更したマシン名>" を /etc/hosts に、Windowsの場合は %SystemRoot%system32\drivers\etc\hosts に追加してください。OSXの場合は、例えば hosts.txt という名前の hosts ファイルに同じ内容を記述し "niload hosts . < hosts.txt" で登録してください。

クライアントが起動に失敗します。エラーコードの意味を教えてください

クライアントがエラーコード -1 を出力する場合、MPIの問題と考えられます。install.batを実行してmpiexecを再登録してください。

クライアントが起動しない場合は、インストール先ディレクトリにある FAHlog.txt を確認してください。CoreStatus = 63 (99) のエラーになる場合、書き込み権限の問題か、MPI登録の問題か、あるいはその両方です。解決するにはfah.exe(またはFolding@home-Win32-x86.exe)のプロパティを開き、互換性タブにて「管理者としてこのプログラムを実行する」にチェックを入れてOKをクリックします。続いて install.batを再度実行し、MPIとSMPDを登録してください。

ネットワークに何かあると (設定変更やカスタマイズ等)、FAH/SMPクライアントの調子が悪くなります

SMPクライアントの問題の一つはマルチプロセッサのハンドリングにMPIを使うこと、そしてMPIが(ループバックであっても)ネットワークシステムを使うことです。もしクライアント実行中にネットワーク設定が変更されると、ループバックデバイスに接続できなくなり、MPIに問題が発生してGromacsの処理が停止します。同様のケースは無線LAN接続時に信号を受信できなくなったり、電波の範囲外に出て戻ったりしたときにも発生します。

この問題は調査中で、特にクライアントがチェックポイントから再起動するときに十分これを検出できる(ベストケースシナリオ)かどうかに着目しています。今のところは、FAH/SMP実行中はネットワーク設定を変更しないようにしてください(クライアントはいつ停めても大丈夫ですので、停止してからネットワーク設定を変更し、クライアントを再起動してください)。

家庭用ルータの中には、DHCPによるIPアドレス自動更新でネットワーク設定変更と同様の問題が発生することがあります。これを防ぐには、固定IPアドレスを使ってください。無線LAN接続の場合には有線LANの使用を検討ください。なお、Windows Vistaや2008ではIPスタックが新しくなったため、Windows2000やXPほど問題が起きにくくなっています。

WindowsXP上のSMPクライアントがネットワーク問題で落ちるのを防ぐには

http://www.hardforum.com/showthread.php?t=1286217 for the original version. Thanks to Killer[MoB] who developed it.

The SMP client often gets frozen or seemingly hung up when the box is otherwise running just fine. The problem 99.9% of the time is a network connection issue. Any kind of issue, such as a bad cable, a faulty port on a hub, router or switch, a NIC in power save mode or just flakey wireless connection problems could cause the folding client to stop processing. The problem lies in the way the client uses the network for loopback with the folding cores communicating with each other.

Loopback is the problem and also the solution to the problem. The solution is to install the Microsoft Loopback Adapter. It will help maintain a constant network connection within your own machine. Although this is not its intended purpose, it does work for solving this folding problem. The major difference?? Now I can unplug the network cable completely and it never misses a beat.

What is it and is it a piece of hardware?

It is not hardware. It is a virtual network adapter installed in some cases when you need to test network related things and there is no network available. It is also used when running some virtual machines in various versions of windows.

Where is it and how can I get it?

You don't need to get it because you already have it. This is almost too easy.

How do I install it and set it up?

1) Go to Add Hardware. (Start>Control Panel>Printers and Other Devices>Add Hardware)

2) You should now be at the add hardware wizard. Click Next. Select "Yes, I have already connected the hardware" and click next. Scroll to the bottom of the list and highlight "Add a new hardware device" and click next. Select "Install the hardware that I manually select from a list (advanced)" and click next. Highlight "Network adapters" and click next. Highlight "Microsoft" under manufacturer and "Microsoft Loopback Adapter" under network adapter. Click next. Click Next again. Now click Finished. Close out the Printers and other hardware window.

3) Go to network connections. (Start>Connect to>Show all connections) or (Start>My Network Places>View Network Connections) You will see a new Local Area Connection that is listed as being a Microsoft Loopback Adapter. You will also see that it says Limited or no connectivity. We are about to fix that. Right click on this new loopback connection and select properties. Double click Internet protocol (TCP/IP). Select use the following IP address. Set the IP address to a 192.168.x.x number that would not normally be assigned on your network. Ex 191.168.255.200 Click on the subnet mask box and it should auto fill with 255.255.255.0. Leave everything else blank. Click OK.

This may take the machine a couple minutes to think about. Once it's done, you can close all the windows. Note that on the Network Connections window, the loopback adapter now shows connected.

Windows Vistaに特有のトラブル

Windows Vistaには、従来のWindowsにない新しいセキュリティの機能が追加されています。特定の状況下で、これらセキュリティ機能はSMP Windowsクライアントのインストールや動作の妨げになることがあります。インストール時、トラブル発生時には FAH WIKI: VistaとSMPに関する項目 を参照ください。Vistaで動かすときに必要なステップについてはインストールガイドセクションもご覧ください。

Linuxマシンが "4 NNODES" でハングします

Here's a suggested fix by "Jimmy2Shoe" for RedHat FC6 (the method that I use might diffrer from for diffrent distros...)

  1. System --> Administration --> Network: In devices, select eth0, or whichever device is your net connection. Press EDIT.
  2. In DHCP settings, put in a hostname of your choice, something original, and exit that window.
  3. In the "DNS" Tab, use the same hostname you selected.
  4. Close network configuration, save settings.
  5. Open up the hosts file under my computer --> filesystem --> etc --> hosts.
  6. The text editor now open, type in the first line: 127.0.0.1 [press tab] hostname you selected above
  7. Save and close the text editor. Reboot.

The main jist of this is to make sure that your localhost is setup in a way that the MPI libraries like.


関連情報:


Last Updated on March 12, 2009, at 07:31 AM