Folding@home SMP FAQ
目次
- FAH SMPクライアントの実行方法
- 既知のバグと問題
- 実行の前に
- 運用方針
- 現在のバージョンで修正済みのバグ
- よくある質問
- どのOSをサポートしていますか
- 何CPUコア必要ですか。また、どのタイプのCPUがよいでしょうか
- FAH SMPクライアントは通常のクライアントと同じWUを実行するのでしょうか
- FAH SMPクライアントではどの科学計算コードをサポートしていますか。Gromacs coreのみ?他のcoreたとえばAmberは?
- このベータ版クライアントはいつ正式版に変わりますか
- SMP WUのポイントはどうやって決めているのですか
- なぜSMPクライアントは重要なのですか。またベンチマークの基礎点をどうやって決めたのですか
- ハイパースレッディング(HT)を有効にしているとどうなりますか
- なぜマルチスレッドではなくMPIを使うのですか
- CPUクラスタをサポートする予定はありますか
- トラブルシューティング
- クライアントが接続の作成に失敗して " Fatal error in MPI_Wait: Other MPI error, error stack:" メッセージを表示します
- クライアントが起動に失敗します。エラーコードの意味を教えてください
- ネットワークに何かあると (設定変更やカスタマイズ等)、FAH/SMPクライアントの調子が悪くなります
- WindowsXP上のSMPクライアントがネットワーク問題で落ちるのを防ぐには?
- Windows Vista/Win7に特有のトラブル
- Linuxマシンが "4 NNODES" でハングします

はじめに
2000年より、Folding@home (FAH) は分子シミュレーションの処理能力を飛躍的に向上させてきました。世界中から数十万のPCが参加することにより、以前は不可能と考えられてきた計算が、今では当たり前のものになったのです。FAHはタンパク質の折りたたみと異常折りたたみを対象とし、このプロジェクトから幾多の科学的進歩がもたらされました。
2006年を迎えたとき、分散コンピューティングに飛躍的な性能向上をもたらす新たな手法に希望を寄せました。以前はスーパーコンピュータでしか実現できなかった性能を実現するためATIの高性能グラフィックス処理ユニット (GPU) やSonyのPlayStation 3をサポートすることについては、既にアナウンスした通りです。
これらに加え、新型のクライアント、Folding@home SMPクライアントをリリースしました。SMPとは「対称型マルチプロセッシング」の意味で、一般的にコンピュータが一つ以上のプロセッサコアを持った状態を指します。デュアルコアが当たり前になり、4コア機すら一般的になりつつあります。IntelとAMDの推し進める革新により、8コアや16コア・マシンすら間もなく一般的になるでしょう。
SMPクライアントとGPUクライアントの目指すものは似ています。多くの興味深い問題 (特にアルツハイマー病のようなタンパク質の異常折りたたみや凝集) に立ち向かうには、単に多数のコンピュータが参加するだけでなく、計算結果がもっと早く返ってくる必要があり、それによってようやく(折りたたみの)軌跡を十分な長さでシミュレートできるのです。現在、これには数ヶ月から年単位の時間がかかっています (事実、私たちが行った最初のアルツハイマー病シミュレーションは正味2年近くかかりました)。SMPとGPU (そしてPS3) クライアントが待ち望まれているのは、そういう世界です。同じ時間でかなり長時間の軌跡を求めることが出来、FAH上で何年もかかっていたシミュレーションを数週間から数ヶ月のものに変えてくれるのです。
また、SMPとGPUクライアントは互いに補完しあう関係にあります。GPUクライアントが特定の種類の計算 (implicit solvent calculation) を劇的に(数十倍)高速化するのに対し、SMPクライアントは我々が必要とする全ての領域で数倍のスピードアップをもたらします。たとえ数倍であってもその意味は大きく、これは事実上すべてのFAHの計算において、年単位の計算を数ヶ月に縮めるほどの効果があるのです。マルチコアCPUが一般的になり、既に8コア機の登場がアナウンスされてた今では、このことはもっと重要になると予想しています。
私たちの目標は、この新技術によってFolding@homeの計算能力を劇的に向上させ、タンパク質折りたたみやアルツハイマー病やハンチントン病、そしてある種の癌といった疾病のさらなる研究にこのシミュレーションを適用していくことです。計算機の進歩は、これを利用する新しいシミュレーション手法と結びつき、従来コンピュータで実現不可能と思われた問題を解くことができるようになり、タンパク質折りたたみや関連する疾病の知見に大きなインパクトをもたらすことでしょう。
FAH SMPクライアントの実行方法
重要: FAH v6ベータ版クライアントはv5 SMPクライアントの後継としてリリースしました。設定にいくつか変更があります。クライアントを実行する前に、v6の説明をお読みください。
Guideセクションでは、提供中の各SMPクライアントのインストール手順を説明しています。(上のメニューより Guides ボタンをクリックしてください)
下記はSMPインストールガイドの一覧です:
既知のバグと問題
ベータリリースであることにご注意ください。内部でたくさんのテストを行ってきましたが、限られたテストでは発見できるバグにも限りがあります (これはベータテストの必要な理由でもあります)。ベータリリースのご利用においては、解決すべき多くのトラブルが予想されます。新しいクライアントのベータテスタ向けに、関連のある既知のバグと問題を下記に列挙しました。
- ワークユニットが完了してから最終段階の処理を行うまで、少し時間がかかる場合があります。 (おおむね4分程度)
- マルチスレッドによる書き込みが原因で、ログファイルの記録が汚くなる場合があります。
- Linuxクライアント (たまにOSXクライアント) が2GB以上のRAMを正しく検出しない場合があります。この現象が起きたら、クライアントの設定で正しいRAM搭載量を手動で入力してください (設定するときは -configonly をつけて起動します)。メモリの認識がおかしくなると、非常に小さい数字が搭載メモリ量のデフォルト値にセットされています。OSXクライアントを使っていて、逆に非常に大きな値 (4,294,965,248 など) で認識されたときは、同じように -configonly でRAM搭載量を手動入力してください。
- 起動時に "No option -tpi" が4回表示される場合があります。
- workファイルを完全にクリーンアップしない場合があります。(WU完了時にいくつかファイルが残ります)
実行の前に
- 4CPUコア以上のシステムで実行することを強く推奨します。2コアでも実行は出来ますが、いくつか潜在的な問題があることが分かっています。 (調査中です)
- 〆切が非常に短く、間に合わうためには常時稼働することが必要です。4CPUコア以上であれば、この制約は軽減されます。しかしながら、一日の稼働時間が短ければ受け取るボーナスポイントも少なくなるでしょう。
- SMPワークユニットは "big" WU ですので、クライアントをそのように設定する必要があります。v6.xxクライアントの設定時、"Acceptable size of work assignment and work result packets (bigger units may have large memory demands) (small/normal/big) [normal]?" の質問に対しては big を入力してください。
- 各WUの終了時に短い (15-20秒程度) 休止時間があります。これは、すべてのスレッドの終了を確認するために行っているものです。バグではなく、SMPでは次のWUに移る前にスレッドを同期する必要があるためです。
- SMP coreがSSEを無効になっていると誤認識する場合があります。もし意図に反してSSEが無効になっていたら、-forceasm オプションを付けて実行することを推奨します。
- 32bitバイナリのLinuxクライアントは、SMP版と非SMP版を同一のクライアントにする計画があります。64bit Linuxディストリビューションで利用する場合には、32bit ELFサポートを有効にする必要があります。主要なディストリビューションのいくつかは、ia32-libsパッケージをインストールすることで32bitサポートが有効になります。
運用方針
- Windows SMPクライアントは、リリース後 6ヶ月間有効です。(これはベータリリース版の制限です -- 新しいクライアントは現バージョンのテスト期間が切れる前に提供予定です)
- このベータテストではデータを早く提出してもらう必要から、〆切が通常よりずっと短くなっています。リリースも特定のハードウェアセット向けです。これらはベータテストから移行するとき、新プラットフォームをサポート開始するときなど、時間がたつにつれ変わっていきます。それでも、〆切が通常版WUより短いのは変わらないでしょう。(理由は、SMPのような高性能クライアントがハイパフォーマンスだからです!)
- SMP WUを供給するサーバが落ちたり過負荷のときは、クライアントの接続先に 0.0.0.0 が割り当てられ、クライアントは待機と再接続を繰り返します。SMP用サーバが増強された暁には、この問題はなくなるでしょう。私たちはSMPクライアントをWUで酷使しつづけることを望んでいます。
現在のバージョンで修正済みのバグ
- チェックポイントがきかない問題が修正されました。(クライアントを停止して再スタートすると、WUの頭からやり直すことがありました)
- coreが前回綺麗に終了したことを正しく検知せず、アセンブリループをOFFにしてしまう問題が修正されました。またこの問題が発生したら、-forceasm オプションを付けて実行することを推奨します。
よくある質問
どの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 coreのみ?他のcoreたとえばAmberは?
SMPプロセッサ用のGromacs core (Core_a1) のみをサポートしています。他のcore (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間の自然なばらつきにより、どんなポイントシステムであろうと獲得するポイントをぴったり予測することはできません。
Note: 2010年1月、SMP2クライアント (およびfahcore_a3) がアナウンスされ、新しい早期提出ボーナスも追加されました。ボーナスポイントの資格を得るにはパスキーの登録が必要です。ボーナスポイントは -bigadv ワークユニットトライアルプログラムの後にモデル化され、ポイント構造も変わりました。新しいベンチマーキングの詳細はポイントFAQの付記で詳しく説明しています。
なぜSMPクライアントは重要なのですか。またベンチマークの基礎点をどうやって決めたのですか
SMPクライアントの目的は二つあります。昨今のマルチプロセッサシステムの高い性能を生かすことと、マルチコア・チップが業界標準となった時代に有力なFAH計算パラダイムとなりうるシミュレーション・アーキテクチャを開発することです。高性能クライアントによって標準的なアーキテクチャでは非現実的と思われていた計算が可能になり、我々の科学計算能力と皆さんの貢献度を著しく高めます。
高性能クライアントは、多くの計算機リソースを必要とします。SMPクライアントは一般的に24時間稼働の専用機で実行され、多くの処理能力、ディスク容量、ネットワークリソース、システムメモリ等を消費します。科学的にメリットがあるかどうかはWUがいかに早く返送されてくるかにかかっており、このためSMP WUの〆切を短く設定しています。通常のCPUクライアント以上の計算機リソース消費、非常に短い〆切でWU処理を完了しなければならないこと、次世代科学計算アーキテクチャの開発への貢献を考慮し、現在ベンチマークの基礎点はSMP WUの要求の高さに比例するように(*ボーナスポイント込みで)設定してしています。SMPクライアントと皆さんのさらなる貢献無しに、多くの重要プロジェクトを完遂することはかなわないでしょう。
*ボーナスポイントは予告なく変更することがありますのでご承知ください。
ハイパースレッディング(HT)を有効にしているとどうなりますか
SMPクライアントはもともとマルチコアCPUを対象に設計されたものです。シングルコアプロセッサ上でHT有効にすると、OSからはコアが二つあるように見えます。これにより、FAH SMPクライアントを実行するための最小構成を満たします。しかし、1物理2論理コアではSMPワークユニットを〆切前に完了するのに十分なパワーがありません。SMP2クライアントとfahcore_a3を2010年初頭に新ボーナスポイントプログラムとともにリリースするまで、HTはマルチコアプロセッサであっても一般に勧めてきませんでした。現在のfahcoreであれば、物理CPUを2個以上搭載したマシンに対してはHTでワークユニットの処理が高速化するため、有効にする方を推奨します。なおCPUアーキテクチャとワークユニットの構成は変化しているため、推奨設定も変更する可能性があります。
なぜマルチスレッドではなくMPIを使うのですか
科学技術計算のコードがスレッドセーフやマルチスレッドで書かれていないためです。唯一並列処理が可能なコード(GromacsとAMBER)はMPIを使っています。Gromacsの並列処理は今はマルチスレッド化できず(Gromacsの開発者とはこの件で頻繁に議論しています)、MPIが唯一の解となっています。*
Note: 2010年初頭のSMP2クライアントとfahcore_a3のリリースにより、SMPクライアントはもはやMPIやマルチfahcoreの対称処理を使用していません。fahcore_a3がマルチスレッド化されたため、サードパーティMPIソフトウェアは不要になりました。
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の場合は system32\drivers\etc\hosts に追加してください。OSXの場合は、例えば hosts.txt という名前の hosts ファイルに同じ内容を記述し "niload hosts . < hosts.txt" で登録してください。
クライアントが起動に失敗します。エラーコードの意味を教えてください
クライアントが起動しない場合は、インストール先ディレクトリにある FAHlog.txt を確認してください。CoreStatus = 63 (99) のエラーになる場合、書き込み権限の問題にぶつかっている場合があります。解決するにはfah.exe(またはFolding@home-Win32-x86.exe)のプロパティを開き、互換性タブにて「管理者としてこのプログラムを実行する」にチェックを入れてOKをクリックします。
ネットワークに何かあると (設定変更やカスタマイズ等)、FAH/SMPクライアントの調子が悪くなります
SMPクライアントの問題の一つはマルチプロセッサのハンドリングにMPIを使うこと、そしてMPIが(ループバックであっても)ネットワークシステムを使うことです。クライアント実行中にネットワーク設定が変更されると、ループバックデバイスに接続できなくなり、MPIに問題が発生してGromacsの処理が停止します。同様のケースは無線LAN接続時に信号を受信できなくなったり、電波の範囲外に出て戻ったりしたときにも発生します。
この問題は調査中で、特にクライアントがチェックポイントから再起動するとき十分これを検出できる(ベストケースシナリオ)かどうかに着目しています。今のところは、FAH/SMP実行中はネットワーク設定を変更しないようにしてください(クライアントはいつ停めても大丈夫です。一度停止し、ネットワーク設定を変更してから、クライアントを再起動してください)。
家庭用ルータの中には、DHCPによるIPアドレス自動更新でネットワーク設定変更と同じ問題が発生することがあります。これを防ぐには、固定IPアドレスを使用してください。無線LAN接続の場合には有線LANの使用を検討ください。なお Windows Vista/Win7/2008ではIPスタックが新しくなったため、Windows2000/2003/XPより問題が起こりにくくなっています。
WindowsXP上のSMPクライアントがネットワーク問題で落ちるのを防ぐには?
他の作業ではまったく問題ないPCで、SMPクライアントがしばしば固まったりハングアップしているように見えることがあります。問題の99.9%はネットワーク接続に起因するものです。ケーブル不良、ハブ・ルータ・スイッチの調子の悪いポート、省電力モード時のNIC、当てにならない無線LAN接続などが原因で、クライアントの処理が止まる場合があります。この背景は、folding coreが互いに通信するときにループバックでネットワークを使用していることです。
ループバックは問題の根っこであると同時に、対策でもあります。解決策として Microsoft Loopback Adapter をインストールします。これはマシン内部でネットワーク接続の維持に使うもので、本来の目的とは異なりますがfolding時の問題を解決してくれるのです。これで何が変わるかって?今ネットワークケーブルを抜いても、もはやクライアントは影響を受けなくなります。
これはハードウェアですか?
Microsoft Loopback Adapter はハードウェアではありません。仮想的なネットワークアダプタであり、たとえばネットワーク環境がないときにネットワーク周りのテストをする、という場合にインストールするものです。様々なバージョンのWindowsで仮想マシンをいくつも走らせる時にも使われます。
どこで入手できますか?
PCに最初から入っており、別途入手する必要はありません。
どうすればインストール・セットアップできますか?
1) ハードウェアの追加 を開きます。 (スタート>設定>コントロールパネル>ハードウェアの追加)
2) ハードウェアの追加ウィザードでは、以下のように作業します。
- 次へ をクリックします。
- 「はい、ハードウェアを接続しています」 を選んで 次へ をクリックします。
- リストを一番下までスクロールして 「新しいハードウェア デバイスの追加」 を選んで 次へ をクリックします。
- 「一覧から選択したハードウェアをインストールする (詳細)」 を選んで 次へ をクリックします。
- 「ネットワークアダプタ」 を選んで 次へ をクリックします。
- 製造元 「Microsoft」 ネットワークアダプタ 「Microsoft Loopback Adapter」 を選んで 次へ をクリックします。
- 再度 次へ をクリックします。
- 完了 をクリックします。
- コントロールパネルウィンドウを閉じます。
3) ネットワーク接続 を開きます。 (スタート>設定>ネットワーク接続) または (スタート>マイネットワーク>ネットワーク接続を表示する)
- Microsoft Loopback Adapter による新しいローカルエリア接続が見えます。状態は 「限定または接続がありません」 になっていますね。まずこれを修正しましょう。
- この新しいループバックの接続を右クリックし、プロパティを選択します。
- インターネットプロトコル(TCP/IP) の上で右クリックします。
- 「次のIPアドレスを使う」 をクリックします。
- IPアドレスに 192.168.x.x の数字を入力します。あなたのネットワークで通常割り当てられる心配がないもの、たとえば 191.168.255.200 などがよいでしょう。
- サブネット マスク 欄をクリックすると、自動的に 255.255.255.0 の数字が入ります。
- そのほかの欄は空白のままにします。
- OK をクリックします。
マシンが設定を反映するのに数分かかります。終わったら、全てのウィンドウを閉じてください。ネットワーク接続ウィンドウの中では、ループバックアダプタの状態が 接続 に変わっています。
Windows Vista/Win7に特有のトラブル
Windows Vista/Win7には、従来のWindowsにない新しいセキュリティ機能が追加されています。特定の状況下で、これらセキュリティ機能はSMP Windowsクライアントのインストールや実行の妨げになることがあります。インストール時、トラブル発生時には FAH WIKI: VistaとSMPに関する項目 を参照ください。Vista/7で動かすときに知っておくべき特別なステップの詳細はインストールガイドセクションにあります。
Linuxマシンが "4 NNODES" でハングします
"Jimmy2Shoe" によるRedHat FC6用の対策 (このスレッドを参照) は以下の通りです。設定方法はディストリビューションによって異なる場合があります。
- System --> Administration --> Network: デバイスより eth0 あるいは ネットワーク接続に使用しているデバイスを選択し、EDITをクリックします。
- DHCP設定にて、適当なオリジナルホスト名を入力し、ウィンドウを閉じます。
- "DNS"タブにて、上記と同じホスト名を選択します。
- ネットワーク設定を閉じ、設定を保存します。
- my computer --> filesystem --> etc --> hosts にある hostsファイルを開きます。
- テキストエディタを開き、一行目に 127.0.0.1 と入力、続けてタブキーを押して 上記ホスト名を入力します。
- 保存してテキストエディタを閉じます。再起動してください。
この作業で、MPIライブラリがうまく動くようにlocalhostを設定しています。
関連情報:
Last Updated on November 17, 2010, at 03:43 AM