本研究は、全ゲノム解析パイプラインをGPUで実装するためのフレームワークを開発することを目的とする。 本年度は、I/O設計を元にフレームワークの中でも最重要処理の一つである重複リード判定処理(MarkDuplicates)の実装を行った。本処理に用いられるアルゴリズムには複数の候補がある。SamTools等で採用されているアルゴリズムではEstimateLibraryComplexityに従って重複判定を行っている。このアルゴリズムでは、自身の情報以外にペアとなるリードの情報が必要とされている。ペアの情報は塩基位置の遠い場所、最悪の場合、別染色体に存在する可能性もあり、情報の取得のために圧縮ファイルの遠隔まで検索・読み込みを行わねばならず、並列性を著しく損なってしまう。そこで、今回はSAMフォーマットに規定された自身のリード情報に含まれるペアリード情報のみを使用した判定アルゴリズムに変更した。本アルゴリズムの採用により、判定処理における依存性が解消され、GPUによる高速化を実現できた。これに伴い、I/O負荷の比重が激増したため、改良を実施し。 具体的には、BGZF圧縮された少量データの多数読み込みが原因であったため、読み込みバッファを大きく取り、各ブロックの解凍をGPUによる並列処理により高速化した。 本I/Oはフレームワーク全体でのI/Oとして独立した実装を行い、多処理におけるI/O高速化を実現した。ソースコードの整理を行いgithub上での公開を実施し、MarkDuplicates高速化に関する論文を投稿準備中である。
|