Ryzen Threadripper 3990Xで新型コロナウィルス解析の分散コンピューティングに参加するとどうなる?
文●加藤勝明(KTU) 編集● ASCII
2020年04月27日 00時00分
「Folding@Home」と「Rosetta@Home」でRyzen Threadripper 3990Xは使い切れるのか検証する
人類はこれまでにも多くの疾病と闘い克服してきた。今猛威を振るっている新型コロナウイルス感染症(COVID-19)もいつかは乗り越えられると皆信じて日々を過ごしている。
現時点で我々ができることは手洗い&うがいや社会的距離の確保、そして十分な休息が第一とされているが、自分のPCを使って貢献できること(あくまで可能性だが)がある。
それはCOVID-19を引き起こすウイルス(SARS-CoV-2)の構造を徹底的に解析するというものだ。既にSARS-CoV-2のゲノムについては解析が済んでいるが、SARS-CoV-2を構成する多種多様なタンパク質がどういった構造をとっているのか、それがどう振る舞うのかについてはまだ解明されていない。
こうした分子生物学的なアプローチによって治療法の発見の足がかりができると期待されているが、タンパク質の解析には莫大な計算力が必要になる。
この計算力問題を解決するのが分散コンピューティングプロジェクトだ。個人所有のPCの持つ計算力はわずかでも、それを合わせることで大きな計算力になる。ウイルス治療法のABCすら知らなくても、計算力は提供できる。SARS-CoV-2の解析によって突破口が見つかる糸口になれば、ハイスペックなPCを持った甲斐があったというものだ。
この分散コンピューティングプロジェクトに参加するために必要な資格などはない。自分のPCの消費電力が増えてしまうことさえ許容できれば、誰でも無料で参加できるし、いつ脱退してもペナルティーはない。
筆者は「人類のために参加しろ!」と言うつもりはないが、今のAMD製CPUは分散コンピューティングプロジェクトで高い貢献ができるだけの素晴らしいパフォーマンスを備えている。
そこで今回は、AMDの誇る「Ryzen Threadripper 3990X」で分散コンピューティングプロジェクトがどんな感じで動くのか、についてざっくりと検証してみた。64コア(C)/12スレッド(T)のCPUを搭載すると、一体どれだけ回るのか、実際に調べていきたい。
分散コンピューティングプロジェクトのひとつ「Folding@Home」の公式サイト
「BOINC」も有名
今回の検証は以下のハードウェア構成で実施した。メモリーは当初32GBを選択したが、実はこれは大きな誤りだった。詳細は後述する。
検証環境 | |
---|---|
CPU | AMD「Ryzen Threadripper 3990X」 (64コア/128スレッド、2.9~4.2GHz) |
マザーボード | ASRock「TRX40 Taichi」 (BIOS P1.60) |
メモリー | G.Skill「F4-3200C16D-16GTZRX」×2 (DDR4-3200、8GB×4) |
ビデオカード | NVIDIA「GeForce RTX 2080 Ti Founders Edition」 |
ストレージ | ウエスタンデジタル「WDS100T2X0C」 (NVMe M.2 SSD、1TB) |
電源ユニット | Super Flower「Leadex Platinum 2000W」 (2000W、80Plus Platinum) |
CPUクーラー | CRYORIG「A80」 (簡易水冷、280mmラジエーター) |
OS | Windows10 Pro 64bit版 (November 2019 Update) |
Folding@HomeだとRyzen Threadripper 3990Xは余裕すぎる
Folding@Homeはタンパク質の折りたたみ問題を扱うための分散コンピューティングプロジェクトだ。タンパク質を構成するアミノ酸の種類と数が分かっていても、これがどういう立体構造になっているのかまでは完全に解明されていない。
100個ほどのアミノ酸で構成されていた場合、考えられるタンパク質の構造は10の60乗ほどあるが、正解の構造はたった1つだ。この立体構造が分かれば、どこにどういった分子が作用してどういった結果を生む、というメカニズムを知る手がかりとなる。
Folding@Homeの導入についてはジサトライッペイ氏が解説しているので改めて解説はしない。Folding@Home上で「Any disease」を選択することにより、SARS-CoV-2に関連するタスクが割り振られる可能性がある。「可能性がある」というのは、現在Folding@Homeには世界中からユーザーが殺到しており、仕事(ワークユニット)の割り振りがやや滞り気味になっているからだ。
Folding@Homeの処理は「Light」「Medium」「Full」の3段階があって、Fullの方が重くなる。今回GPUはRTX 2080 Tiを搭載しているが、CPUの働きに注目したいのでGPUは処理から外れるよう「Configure」で設定した。
Folding@HomeのWebインターフェース。ここで計算力をどの程度使うことを許可するか設定できる。非力なPCなら「Light」かつ「Only when idle」の組み合わせが良いが、Ryzen Threadripper 3990Xなら「Full」「While I'm working」でも余裕だろう
Folding@HomeのAdvanced Controlから「Control」→「Slots」と進むと、どのデバイスを利用するかの指定ができる。「1-gpu」というエントリーがあるが、これをRemoveして図のような状態にすれば、GPUは使われなくなる
Folding@Homeはマルチスレッド化されており、ユーザーが利用するスレッド数を決めることができる。だが現時点でのFolding@Homeクライアントは32スレッドまでしか使わないため、Ryzen Threadripper 3990Xには余裕もいいところだ。だがこれは裏を返せば、普段使いの裏側でFolding@Homeを使い続けることができることを示している。
Folding@HomeのCPU占有率。Full設定でもRyzen Threadripper 3990Xの3割程度しか使っていない。占有率の偏りを見た感じ、プロセッサーグループの壁は越えられないようだ
Folding@Homeの使うスレッド数は前掲の「Configure」ウィンドウの「Slot」タブからCPUを選択し「Edit」を押すと編集できる。「-1」は自動設定だが、これを128にセットしても32スレッドまでしか使われない
Folding@Homeでユーザー名を登録すれば、自分の成果をポイントという形で確認できるので励みにはなるが、別に競技でもないし何かに交換できる訳でもない。ワークユニットの内容も常に変化するので「この程度のポイントになった」という指標は比較しない。だが、消費電力については知っておくべきだろう。
今回はラトックシステム「REX-BTWATTCH1」を利用し、Folding@Homeの3モードにおける消費電力の違いをざっと比較してみた。ただし処理中に消費電力は刻々と変動するため、目測で“だいたいの安定値”を見ているだけだ。
前述の通り今回はGPUを計算デバイスから外しているため、ほぼCPUの消費電力と考えてよいだろう。32コアあればワークユニットの処理も結構サクサク進むが、これを24時間/30日続けると電気代はざっと6600円〜7600円(1kWh27円で計算)となる。Ryzen Threadripper 3990Xは計算力の貢献はしやすいものの、パワーのあるCPUだけに電気代には十分注意したい。
Rosetta@Homeではメモリーが重要
SARS-CoV-2をターゲットにした分散コンピューティングプロジェクトはFolding@Homeだけではない。分散コンピューティングプロジェクトのプラットフォーム「BOINC」の中にも、SARS-CoV-2の解析を行なうプロジェクト「Rosetta@Home」がある。
まずは簡単にRosetta@Homeの参加方法を解説しておこう。まずはBOINCの公式サイトからBOINCマネージャーのインストーラーをダウンロードし導入する。
BOINCマネージャーはVirtualBoxを使うものとWindowsネイティブなものの2つが用意されているが、前者はWindows用のクライアントのないプロジェクトに対しても使えるが、VirtualBoxが別途必要になる。Rosetta@HomeはWindowsネイティブ版で動くので後者を選ぼう。
晴れてメンバーになるとこの状態に。サーバーからワークユニットをダウンロードするのだが、コア数が多いほどダウンロードするサイズも大きくなる(当然だが)。128コアフルに使う場合は最低でも120GB程度消費される
Rosetta@Homeの計算量はCPU/メモリー/ストレージ資源をどこまで使うかで決まる。今回筆者がRosetta@Homeの計算を始めた当初は、CPUは30コア前後しか使われていなかったが、これはメモリーが32GB構成だったため。BOINCの場合1プロセスが多数のスレッドで動くのではなく、並列化する分だけプロセスが起動する。
128コア使えるRyzen Threadripper 3990XでRosetta@Homeを使おうとすると、メモリー不足で処理を止めてしまうプロセスが多発する。そこでさらに64GB(G.Skill F4-3200C16D-32GTZRX×2)を追加し合計96GB構成とし、メモリーの使用上限を全体の90%まで許可したところ、メモリー不足で停止するプロセスは消滅した。
ただその場合でもCPU占有率は80%前後にとどまるので、128コア全て使い切るのは割り当てられるワークユニット次第といったところか。
まとめ:超メニーコアCPUの力を活かす一つのソリューション
今回試した2つの分散コンピューティングプロジェクトの中では、Folding@Homeはお手軽かつシステムへの負担も少なく、常時動かしても軽い感じだった。それこそ、Ryzen Threadripper 3990Xのスレッド数ならば余裕だっため、通常作業の裏で動作させて貢献できそうだ。
一方、Rosetta@HomeはFolding@HomeよりもRyzen Threadripper 3990Xを活用できるが、CPU占有率が80%近くなるだけあって消費電力は445Wと高くなり、電気代は1ヶ月あたり8600円まで上昇した。
Ryzen Threadripper 3990Xの性能を十全に引きだそうとすればメモリーも多量に載せる必要があるので、本気で人類に貢献しようとするなら、かなり覚悟がいるだろう。
だが分散コンピューティングプロジェクトに参加するのは個人の自由だし、Ryzen Threadripperを持っているなら参加すべきだ、なんて事を言うつもりもない。だが今時のAMD製CPUを少し回すだけで、COVID-19に勝つための何かに近づけていると考えれば、この閉塞感も幾分和らぐのではないだろうか。
■関連記事
- 物理64コアCPU「Threadripper 3990X」は自作PC市場に降臨した“巨人”だった
- クリエイティブ系ソフトで「Ryzen Threadripper 3990X」の64コア/128スレッドをフルに使えるか検証
- モンスターPCでFolding@home、新型コロナ研究に貢献してみた
- Agoop、新型コロナ対策で厚生労働省に流動人口データを提供
- スマホで入れる「コロナ助け合い保険」登場、自宅療養にも対応
- 「抗原検査」は検査数不足解消の切り札になるか/新型コロナ診断でAIが活躍
- 新型コロナの免疫は持続しない?/アフターコロナの社会を予測する
- 「ルパン三世」シリーズのスタジオであるテレコムと、AMDが選定したアニメ制作用PCとは
- AMD、第3世代Ryzenに「AMD Ryzen 9 3900XT」など3製品を追加