著者 : Patrick Emery   2021年10月25日投稿のブログ記事 (元の英文記事へのリンク)

Mascot Distillerのためのハードウェア選択

Mascot Distillerで使用するコンピューターの仕様に関して、多くの質問を頂きます。CPU、メモリ搭載量、ディスクドライブ(SSDまたはHDD)の選択、といった具合です。

このブログ記事は、Mascot Distillerを動作させるためのPCを注文する際に考慮すべきハードウェアの各要素について調査した内容のまとめとなります。

CPU

Mascot Distillerのパフォーマンスに影響を与える主な要因はやはりプロセッサーのクロックスピードとコア数です。 Mascot Server 同様、Mascot Distiller の多くの処理ステップはマルチスレッド化に対応しており、作業を並列化することで複雑なタスクを高速化することができます。 Mascot Server とは異なりMascot Distiller ではライセンス数で使用可能なコア数を制限しておらず、コンピューターに搭載しているすべての CPU スレッドを使用して計算タスクを並列処理する事ができます。

Mascot Distiller の計算速度とCPUの関係を考慮する上で、Geekbenchのベンチマーク速度がかなり良い目安となります。 Mascot Distiller は利用可能なすべてのコアを計算に使用できるため、シングルスレッドのパフォーマンスだけでなくマルチスレッドのパフォーマンスを見る事も重要です。

使用できるスレッド数と、MASCOT Distillerでの各種計算、すなわちピークピッキング、定量化、de novo sequencing、への影響を調べるために、12コアのIntel®XEON® X5650システムで、1、3、6、12スレッドを使用した場合の検索速度についてテストを実施しました。 結果は以下の表1の通りです。

Number of threadsPeak picking (mm:ss)Quantitation (12 files) (hh:mm:ss)De novo (mm:ss)
108:0802:05:4031:58
302:4400:44:1209:00
601:2900:25:4005:09
1201:1000:20:4103:51
表1:12コアのXeon X5650システムで、さまざまなコア数で計算を実行したときの検索時間の違い

ご覧のようにすべてのタスクにおいてスレッド数の増加に伴って処理時間が向上していますが、スレッド数が増えても速度向上が頭打ちしているところもあります。例えばピーク抽出計算では6コアから12コアに増えても速度にあまり差がありません。 これは、全体の処理時間がCPUだけでは決まらないことが原因です。 スレッド数が増えていくにつれ、律速要因がCPUからコードの同期ポイント、ファイルやメモリへのアクセスなど、他の要因に移行していきます。コアの追加によるパフォーマンスの向上がいつ大きく鈍化するかは、CPUの種類、計算量、データの種類によって異なります。 例えば、計算対象となるrawデータが多ければ並列処理がより効果的となり、利用できるCPUコア数が増える事でパフォーマンスは向上します。しかし多くの人にとっては最新のハイスペックな8コアCPUの適用が、1コアあたりの速度も速く全体の性能もよい、コストパフォーマンスに優れた良好なソリューションとなります。

なおCPUにAMD™Ryzen™7-pro 3700uを搭載している筆者のラップトップコンピュータでベンチマークテストを実行すると、Xeon X5650よりもシングルスレッド性能は優れているもののマルチコア性能は低いため、結果もそれを反映したものになりました。 シングルスレッドしか使用しなかった場合はRyzenシステムの方がXeonよりも30~80%速いのですが、使用可能なすべてのスレッドを使用すると結果が逆転し、マルチコア性能に優れたXeonが概ね速い結果となりました(60~300%の速度上昇)。

Distillerでは今後もマルチスレッド性能の向上を目指していきます。

ハイパースレッディング®とクラスタードマルチスレッディング(CMT)

Intel CPUのハイパースレッディングとAMD CPUのクラスタードマルチスレッディングは、ホストOSに対して1つのプロセッサーコアを2つの「論理的」なプロセッサーであるよう装うことができる手法です。 そのため、例えば上記のベンチマークテストで使用した12コアのCPU,X5650は、ハイパースレッディングがONの状態ではOSから24の論理コアを持っているように見えます。

ハイパースレッディングやクラスタードマルチスレッディングは、真のマルチコア・プロセッサーと同等の性能にはならないものの、一般的に機能OFFの時に比べ10~20%の性能向上が期待できます。 以下の表2は、ハイパースレッディングを有効にした場合と無効にした場合のMascot Distillerのベンチマーク結果をまとめたものです。

Number of threadsPeak picking (mm:ss)Quantitation (12 files) (hh:mm:ss)De novo (mm:ss)
1201:1000:20:4103:51
24 (hyper-threading enabled)00:4900:19:5803:18
% improvement303.514
表2:ハイパースレッディングを有効にした場合(24スレッド)と無効にした場合(12スレッド)のベンチマーク時間の比較。

ご覧のように,ハイパースレッディングを使用するとピーク抽出とde novo sequencingの両方ではっきりとパフォーマンスの向上が見られます.定量計算のパフォーマンスも若干向上しましたが、その増加幅は非常に小さいものとなりました。 ハイパースレッディング機能は必須ではないものの、全般的に速度向上が期待されるため機能を有効にしておくことをお勧めいたします。

プロセッサーグループ

64ビットのWindowsでは、最大64個のスレッドにしかアクセスできません。 数年前まではこの上限値でも特に問題ありませんでした。しかしシングルスレッドの性能に限界を感じていたメーカーがスレッド数を増やす戦略に転じ、CPUのコア数は増加しています。 現在コンシューマー向けCPUのコア数の最大値は、AMD™Threadripper™ 3990Xの64コアです。 クラスタードマルチスレッドを有効にすると、このプロセッサーは128というスレッド数になり、これはWindowsの上限値の2倍となります。

この問題を回避するため、マイクロソフトはプロセッサーグループという概念を導入しました。 64個以上の論理プロセッサー(スレッド)を使用できる状況において、Windowsは自動的に論理プロセッサーを2つ以上の均等にバランスのとれたプロセッサーグループに分割します。 ソフトウェアがこれらすべてのプロセッサーグループを使用するようにするためにはプログラム側で特別な対応を実施する必要があるものの、現在リリースされているWindowsソフトウェアはMascot Distillerを含む多くが未対応で、結果1つのプロセッサーグループのみ使用可能という状態です。

このような状況から、非常にコア数が多いシステムでDistillerを使用する場合いくつかの懸念事項があります。 ハイパースレッディング機能を備えた32コアのプロセッサーを使用している場合、64個の論理プロセッサーからなる1つのプロセッサーグループが構築されるのですがこのようなケースでは問題になりません。しかし48コアプロセッサーでハイパースレッディング機能を使用し96コアとなった場合、Windowsは自動的に24個の「リアル」コアと24個の「ハイパースレッディング」コアを混合した48個のプロセッサーから構成される2つのグループを構成します。この時1つのプロセッサーグループしか使用できないMascot Distillerの動作は遅くなってしまい好ましい状況とはいえません。

このようなケースを避けるために、32コア以上のCPUが搭載されている場合、BIOSでハイパースレッディングを無効にしてご利用ください。そうする事で、上記例でいえば48個の「リアル」コアを持つ単一のプロセッサーグループを計算に利用する事が可能です。

複数のプロセッサーグループのサポートは、将来的に対応予定です。それまでは上述のようにコア数の多いコンピューターでは注意してください。なおMascot Server では既に Windows 版において複数のプロセッサーグループでの使用に対応しています。

RAM

目安として、少なくとも 16GBの RAM を持つことをお勧めします。非常に大きなデータセットを処理する場合は32GB 以上を目安としてください。 特に、'Replicate'メソッドを使用して大規模なラベルフリーデータセットで定量計算を行う場合、メモリを増やす必要性が高まります。

上記のベンチマークテストでDistillerが使用した最大メモリ量は、定量計算の時で約9GBでした。オペレーティングシステムの要件や実行中の他のソフトウェアの両方の影響も考え、搭載メモリには少し”余力”が必要です。また、システムがスワップスペース(データの情報をRAMからハードドライブに一時保存して出し入れする場所)を使用して処理が大幅に遅くなるのを避けるためにも、メモリに余裕を持たせる必要があると言えます。

ディスクドライブ

Mascot Distillerでは、データ処理をするrawファイルをネットワークストレージ上ではなく、ローカルドライブ(高速なローカルUSB接続ドライブを含む)上に置く事をお勧めしています。そのため、rawファイルを一時的にでもローカルに置くための適切なサイズのディスク容量が必要です。 なお計算がすべて完了してから保存したプロジェクトファイルとrawデータファイルの両方をネットワークストレージに移動してご利用いただく分には何の問題もありません。

SSDは、従来のHDDに比べてまだ若干高価であるものの一般的になりつつあり、大容量のストレージでも価格がかなり下がっています。 SSDは読み書きのパフォーマンスが高くMascot Distillerのパフォーマンスも向上します。 ベンチマークされたピークピッキング、定量化、およびde novo検索テストの結果を見ると、SSDの方がHDDよりも5%程度パフォーマンスの向上が見られます。


Keywords: ,