PCクラスタの利用拡大と共に、大規模なデータを効率良く扱う必要性が年々増してきているそのためにPVFS2等の無償の並列ファイルシステムが果たす役割は大きく、多方面で利用されている。PVFS2クライアントである並列計算プログラムからPVFS2への入出力要求は、PVFS2を構成するデータI/Oノード群にストライピングされることで性能向上を実現しているが、さらなる性能向上のためには、クライアント側の最適化も十分に検証する必要性がある。このためにドイツ気候計算センターとの共同研究により、PVFS2側とクライアント側の両方を同時にトレースできるソフトウェアの機能拡張を行った。その結果、クライアント側及びPVFS2側双方で、稀に非効率な処理が行われていることが分かった。そこで、使用しているMPI-IOライブラリであるROMIOが採用しているTwo-Phase I/Oと呼ばれる最適化手法の問題を特定し、最適化の検討を行った。まず、Two-Phase I/Oは、定められたアクセス単位毎にファイルI/Oとプロセス間データ通信を交互に行っているが、ファイルI/Oと直前のアクセス領域のデータ通信は独立でオーバーラップ可能であるため、マルチスレッド化によるパイプライン処理を行い、ファイルI/Oとデータ通信の効率的なオーバーラップを実現した。その結果、オリジナルのTwo-Phase I/Oに比べて、より少ないメモリ使用量で、より高い性能が発揮できることを実証した。さらに最適なメモリ量の割り当て方法に関する検討も行い、アクセスする総データ長やプロセス数に応じた最適なメモリ割り当て量の算出が行える支援機能の実装に向けた基礎検討も行った。
|