分析中国のサーバーベンダー Inspur は、Diablo Technologies の Memory1 テクノロジーを使用して DRAM を拡張することで、Spark ワークロードの実行時間を半分に短縮しました。
Inspur 氏と Diablo 氏は、ユーザーはサーバー 1 台あたりの作業量を増やし、DRAM のみを搭載したサーバーよりも大規模なデータセットの処理に必要な時間を短縮できると述べています。
Memory1は、DRAMソケットに装着可能なNANDフラッシュを搭載した128GB DDR4モジュールで、DRAMの一部は読み取り/書き込みキャッシュとして使用されます。データは、DiabloのファームウェアとソフトウェアによってキャッシュとMemory1 DIMM間で転送されます。
Memory1は、サーバーのDIMMスペースにおいてNANDをDRAM拡張として使用し、アプリケーションで利用可能なメモリを拡張する方法です。Diablo社によると、この技術により、最大512GBのDRAMを搭載できるサーバーは、Memory1 DIMMを使用することで最大2TBのメモリ(DRAM + NAND)を搭載できるようになります。
InspurとDiabloは、SparkのGraphX分析エンジンのメモリ集約型(バージョン1.5.2)kコア分解アルゴリズムを用いてSparkベンチマークを実行しました。このアルゴリズムは、以下の3つの異なるサイズのグラフデータセットに対して実行されました。
- 100億の辺を持つ1億の頂点の164GBセット
- 200億の辺を持つ2億の頂点の340GBセット
- 3億頂点、300億辺の516GBセット
このために、彼らは次のものを備えた 5 台の Inspur NF5180M4 サーバーのクラスターを使用しました。
- Xeon E5-2683 v3 14コアプロセッサ2基
- 256GB DDR4 DRAM
- グラフデータを保存するための1TB NVMe SSD
- 特定のテスト実行用に 2TB のメモリ1
テストは、DRAM のみを使用して実行され、その後、DRAM とメモリ 1 を使用して再度実行されました。
この構成により、Diablo 氏は次のように語っています。「基本的にすべての初期データと作業データを Memory1 に収めることができますが、DRAM サーバーは継続的にデータを NVMe ドライブに保存する必要があります。」
Inspur/Diablo DRAMのみおよびDRAM+メモリ1 Spark GraphXテスト
164GBセットのテストでは、Memory1 の実行時間が67分増加しましたが、DRAMのみのクラスタでは27%高速化しました(50分)。340GBセットでは、実行時間が約50%短縮され、DRAMクラスタでは5時間6分、Memory1クラスタでは2時間36分かかりました。
最大の516GBデータセットでは、Memory1クラスタは4時間50分を要しました。DRAMクラスタはシステムのリソースが枯渇したため、テストを完了できませんでした。
Diablo氏は、テスト実行時にDRAMのみを搭載したサーバーではIO負荷がはるかに高かったと指摘しています。NAND DIMMでメモリを拡張することでこのIO負荷が軽減され、実行時間が短縮されました。しかし、164GBセットのテストでMemory1サーバーの実行時間が延長されたことからもわかるように、現実はそう単純ではありません。
コメント
Diablo の広報担当者は、Memory1 の市場機会が過去 6 か月で改善した理由について、「ストレージクラス メモリ (SCM) の新しいテクノロジが遅れているため、Diablo には今後さらに良い機会がもたらされる」と述べています。
この考えは、SCMが登場すればMemory1のアドレス可能な市場を奪うことになるだろうと示唆しています。DiabloがNANDではなくSCMを使ってMemory1を再実装する可能性はありますが、Intelはサーバーで3D XPoint DIMMを活用する方法を検討しており、Memory1はその一例として挙げられるでしょう。
現時点では、Spark Graph エンジンの実行によって示されたアプリケーション境界では、メモリを大量に消費するアプリが外部ドライブ IO を実行する必要がある場合、Memory1 は実行時間を半分以上に短縮できる実行可能な方法のように見えます。
Inspur-Diablo Spark のテスト実行は、この PDF に記録されています。®