NABE

高速アクセスデータ領域を持つクラスター型演算システム

Takeru Voyager Cluster

Takeru: Beowulf Cluster Reference System

LustreとNFSの性能比較

次世代シーケンスデータ解析で実際に使用されるソフトウェアやデータを用いての、LustreとNFSとの性能を比較しました。

まず、使用したプログラムはfastq-dump (sratoolkit.2.3.2.5)です。fastq-dumpは、sratoolkitというNCBIが提供しているアプリケーションに含まれているツールであり、NCBI等の公共DBにアップロードされているsra形式のファイルからfastqファイルを抽出するためのものです。実行時間中はほぼファイルI/Oが発生する、I/O負荷の高い計算です。

これら条件のもと、fastq-dumpをNFS上にて動作させた際におけるCPUやディスクの使用率を見てみます(下記のxosviewは、各ノードのCPUやメモリ、ディスク、ネットワーク等の負荷状況を画像で示すツールです)。8つの計算ノードから同時に合計32ジョブ(1ノードあたり4ジョブ)を実行しました。

使用データ 入力ファイル 1jobあたり約22GBのSRAファイル(ERR091788.sra)を1ファイル
出力ファイル 1jobあたり約50GBのfastqファイルを2ファイル
(入力ファイルおよび出力ファイルは全てNFS/Lustre上に配置)
実行コマンド
# fastq-dump  -split-files   -O [output_dir]   ERR091788.sra
使用ハードウェア NFS Server CPU E5-2690*2, Memory 16GB*8, HDD (Data) 57TB: RAID6(19+2), QDR InfiniBand
Lustre OSS(4台) CPU E5-2670*1, Memory 8GB*4, HDD (OST) 16TB: RAID6(9+2), QDR InfiniBand
計算ノード(NFS/Lustre Client) CPU E5-2670*2, Memory 8GB*4, QDR InfiniBand
NFS使用時のxosview画像

上記右側の画像において、左上のNFS-Serverがクラスターヘッドノード兼NFSサーバー、"n001"から"n008"までが各計算ノードの状態を表しています。計算ノードのCPU部分に薄紫色のIOwaitが目立ち、I/O待ちの状態が続いて実際にはあまり計算していないことがわかります。

次は、Lustre上にてfastq-dumpを動作させた際のCPUやディスクの使用率です。

Lustre使用時のxosview画像

右側の画像において、左上の"MDS"がその通りLustre MDS、その右側の"OSS-1"から"OSS-4"までがLustre OSS各4台、下の"n001"から"n008"までがLustreクライアントでもある各計算ノードの状態を示しています。4台のOSSすべてにおいてディスクI/Oが発生しており、ファイルが分散配置されていることがわかります。Lustreクライアントである計算ノードのCPUは、ほとんどI/O待ちなく使用されている状態になっています。このように同じ8ード32ジョブの計算を実行した場合に、LustreがNFSより有効にCPUやディスクを使用できることがわかります。

それでは、実際の計算性能はどうなるのでしょうか。下記の表は、計算ノード数を変えて上記の計算を実行した結果です。

fastq-dumpの性能比較表

4台、8台と計算ノード数が増えるにつれ、性能の伸びが止まるNFSと比べ、Lustreはリニアに性能が伸びています。実際の性能面においても、計算ノード数が増えればLustreがNFSより有効であることがわかります。

次に、使用プログラムを変え、bowtieにおける性能を比較します。bowtie-1.0.0は最もよく利用されているマッピングアプリケーションの一つです。

bowtieについては、16計算ノードから同時実行するという条件を共通とし、ノードあたり実行ジョブ数を1、2、4と変更して比較しました。各ジョブはbowtieの並列オプションを用いて4並列で実行しており、ノードあたりCPUコア数が8-core×2個=16個であるため、ノードあたり使用CPUコア数をそれぞれ64、128、256と変更したうえで比較していることになります。

使用データ 入力ファイル SRR067579_1.fastq, SRR067579_2.fastq それぞれ約15GBのfastqファイル
出力ファイル 約24GBのsam形式のファイル
(入力ファイル・出力ファイル・リファレンスファイルは全てNFS/Lustre上に配置)
実行コマンド
# bowtie -p 4 -v 2 -t -chunkmbs 256 hg19 -1 SRR067579_1.fastq -2 SRR067579_2.fastq -S output.sam
使用ハードウェア NFS Server CPU E5-2690*2, Memory 16GB*8, HDD (Data) 57TB: RAID6(19+2), QDR InfiniBand
Lustre OSS(4台) CPU E5-2670*1, Memory 8GB*4, HDD (OST) 16TB: RAID6(9+2), QDR InfiniBand
計算ノード(NFS/Lustre Client) CPU E5-2670*2, Memory 8GB*4, QDR InfiniBand
bowtieの性能比較表

ノードあたり実行ジョブ数を増やすほど、NFSに比較してのLustre性能が伸びていることがわかります。

以上のように、計算ノード数や実行ジョブ数が多い場合、つまりディスクI/O要求が多い場合に、NFSに比べてLustreが有効といえます。


Linuxは、Linus Torvaldsの米国およびその他の国における登録商標または商標です。その他記載された会社名及び製品名等は、該当する各社の商標または登録商標です。
© 1998 NABE International Corp.