Upgrade to Pro — share decks privately, control downloads, hide ads and more …

SIGBIO54: 生命情報解析分野におけるコンテナ型仮想化技術の動向と性能検証

SIGBIO54: 生命情報解析分野におけるコンテナ型仮想化技術の動向と性能検証

第54回バイオ情報学研究会(SIGBIO)におけるプレゼンテーション資料です。

- 青山健人, 大上雅史, 秋山泰, "生命情報解析分野におけるコンテナ型仮想化技術の動向と性能検証", 情報処理学会研究報告 バイオ情報学(BIO), 2018-BIO-54(47), 1-7.
- Kento Aoyama, Masahito Ohue, Yutaka Akiyama, "Survey and Performance Comparison of Container Technologies in Bioinformatics Field, IPSJ SIG Technical Report, 2017-BIO-54(47), pp.1–7. 2018.

metaVariable

June 29, 2018
Tweet

More Decks by metaVariable

Other Decks in Research

Transcript

  1. 生命情報解析分野における コンテナ型仮想化技術の動向と性能検証 青山 健人1,2 大上 雅史1 秋山 泰1 2018/6/15 第54回バイオ情報学研究会(SIGBIO)

    沖縄科学技術大学院大学 2018-BIO-54(47) 1. 東京工業大学 情報理工学院 情報工学系 2. 産業総合研究所 産総研・東工大実社会ビッグデータ活用 オープンイノベーションラボラトリ(RWBC-OIL)
  2. 生命情報解析の研究分野と関わりのある コンテナ型仮想化の導入事例を紹介し, 主なコンテナ仮想環境で実アプリの実行性能の比較を行う A) 生命情報分野におけるコンテナ仮想化の事例紹介 • 理研BiTにおける再現性のある応用解析のための計算環境 • 東京大学医科学研究所ヒトゲノム解析センターにおけるコンテナ基盤の導入 •

    オミックス解析パイプラインNextflowのコンテナ仮想化拡張 • タンパク質間相互作用予測ソフトウェアMEGADOCKにおける取り組み B) コンテナ仮想環境上の実行性能の比較実験 • タンパク質間相互作用予測ソフトウェアMEGADOCKの Docker/Singularity/Shifterによるコンテナ仮想環境上の実行性能比較 本報告の概要 2/33
  3. 1. 概要 2. コンテナ型仮想化の背景 3. 生命情報解析における事例紹介 1. 再現性のある応用解析のためのDocker導入 2. 東大医科研HGCにおけるSingularity導入

    3. オミックス解析パイプライン Nextflowにおけるコンテナ仮想化 4. タンパク質間相互作用予測ソフトウェア MEGADOCKにおける取り組み 4. コンテナ仮想環境上の実行性能の比較実験 5. 結論,総括 目次 3/33
  4. アプリケーション出力の再現性 • 異なるバージョンのライブラリは異なる結果を出力する可能性がある • データ解析を中心とした研究領域では, 研究成果の再現性に大きな影響を及ぼす • データセンターやHPCシステム環境では モジュールの切り替え・仮想マシン環境などを提供してきたが, 利便性や実行性能に対する再現性のトレードオフが大きい

    • 使いやすく軽量な仮想化技術としてコンテナ型仮想化が注目される[1] 背景 | 研究の再現性の問題 5/33 Machine A Application Library version 1.2 Result Application Reproducibility Machine B Application Library version 1.3 Result’ [1] B. K. Beaulieu-Jones and C. S. Greene, “Reproducibility of computational workflows is automated using continuous analysis”, Nature Biotechnology, vol.35, No.4, pp.342-346, 2017. different result
  5. コンテナ型仮想化技術などを用いた ソフトウェアの品質を維持する手法(e.g. Continuous Integration; CI)の思想を研究に導入することは 計算可能科学の研究再現性の向上に繋がる[1] 背景 | e.g.) Continuous

    Analysis 6/33 [1] B. K. Beaulieu-Jones and C. S. Greene, “Reproducibility of computational workflows is automated using continuous analysis”, Nature Biotechnology, vol.35, No.4, pp.342-346, 2017.
  6. ホストカーネル共有型の仮想化技術 • 名前空間の隔離(プロセス, ファイルシステム, etc.)による仮想化 • ハードウェアとOSカーネルを仮想化しないため 仮想イメージのサイズが小さく,実行性能への影響が少ない 背景 |

    コンテナ型仮想化 7/33 仮想マシンではハードウェア, OSカーネルも仮想化するため 実行性能への影響が大きい コンテナではハードウェア, OSカーネルは仮想化せず ホストのものを共有する
  7. 背景 | 仮想化の実行性能への影響 8/33 [2] W. Felter, A. Ferreira, R.

    Rajamony, and J. Rubio, “An updated performance comparison of virtual machines and Linux containers,” IEEE International Symposium on Performance Analysis of Systems and Software, pp.171-172, 2015. 0.96 1.00 0.98 0.78 0.83 0.99 0.82 0.98 0.00 0.20 0.40 0.60 0.80 1.00 PXZ [MB/s] Linpack [GFLOPS] Random Access [GUPS] Performance Ratio [based Native] Native Docker KVM KVM-tuned コンテナ型仮想化 (Docker) は様々なベンチマークで仮想マシン (KVM) よりも より物理環境 (Native) に近い実行性能を示す HPC系ベンチマークによる実行性能評価[2]
  8. 背景 | コンテナ仮想環境の可搬性 9/33 Docker Hub Image App Bins/Libs Push

    Pull Dockerfile apt-get install … wget … … make Generate Share Ubuntu Docker Engine Container App Bins/Libs Image App Bins/Libs Linux Kernel Container App Bins/Libs Image App Bins/Libs CentOS Docker Engine Linux Kernel コンテナは仮想イメージサイズが小さく可搬性に優れ, 仮想イメージ共有サービス(Docker Hub[3]等)を介した アプリケーション環境の共有,配布が活発に行われる [3] Docker Hub: https://hub.docker.com/
  9. 背景 | e.g.) BioContainers 10/33 [4] Da Veiga Leprevost F,

    Grüning BA, Alves Aflitos S, et al. “BioContainers: an open-source and community-driven framework for software standardization” Bioinformatics, Vol. 33, No.16, pp.2580-2582, 2017. [5] BioContainers/containers (GitHub): https://github.com/BioContainers/containers 生命情報科学分野のオープンソースのツールのコンテナ仮想イメージを 配布するプロジェクト[4][5] ビルド済みイメージ(またはビルドレシピ)の普及により, ツールへのアクセス性と研究再現性の向上を目指す
  10. 生命情報分野におけるコンテナ型仮想化の利用事例の紹介 事例紹介 | 導入事例 12/33 Case 1 再現性のある応用解析のためのDocker導入 国立研究開発法人 理化学研究所

    生命機能科学研究センター バイオインフォマティクス研究開発ユニット(BiT) Case 2 スーパーコンピュータSHIROKANEにおけるSingularity導入 東京大学医科学研究所ヒトゲノム解析センター Case 3 オミックス解析パイプライン Nextflowのコンテナ仮想環境への拡張 Centre for Genomic Regulation(スペイン) Case 4 タンパク質間相互作用予測ソフトウェアMEGADOCKにおける取り組み 東京工業大学 情報理工学院 秋山研究室
  11. 理研バイオインフォマティクス研究開発ユニット(BiT) (国立研究開発法人 理化学研究所 生命機能科学研究センター) 主要な研究テーマ(ユニットページより) • 1細胞オミックス測定技術の研究開発 • エピゲノムシーケンス法のデータ解析と実験技術の開発 •

    再現性のあるバイオインフォマティクス解析環境の構築 • 研究生産性向上のための情報技術の開発 • 実践的なデータ解析だけでなく, 研究再現性の向上にも取り組む研究開発ユニット Case 1 | 再現性のある応用解析のためのDocker導入 13/33 第1回 HPC OPS研究会 (2018/2/28)[6] “コンテナ型仮想計算やクラウドでのHigh Performance Computing への応用や, DevOps による科学計算環境の自動構築,データ解析ワークフローエンジンの実 装,最適なオンプレミスPCクラウタの運用構築などについて議論します. 産学官などの垣根を越えて,クラウドやDevOps, HPCに関わる技術者や科学者など からの参加を広く募集します.” ユニットリーダー 二階堂先生 (写真は理研サイトより) [6] HPC OPS研究会のお知らせ : https://bit.riken.jp/2018/02/1st-hpc-ops-mtg/
  12. Case 1 | 再現性のある応用解析のためのDocker導入 14/33 [7] 松嶋明宏 “科学技術計算用クラスタへのDocker導入と運用 / HPC

    OPS研究会” https://speakerdeck.com/amatsus/hpc-ops-mtg1 • 解析ツールごとにDockerコンテナを用意してレジストリサービスに登録 • ツールのバージョンを仮想イメージのタグで管理 • ユーザーは計算クラスタ上(あるいはクラウド上でも)で 共通の仮想イメージを利用した解析が実行可能、研究再現性の向上に寄与 理研BiTの計算クラスタ環境[7]
  13. 東京大学医科学研究所ヒトゲノム解析センター スーパーコンピュータSHIROKANEで HPC向けコンテナ仮想環境 Singularity が提供開始[8]された (Docker対応ジョブスケジューラも利用可能) Case 2 | 東大医科研HGCにおけるSingularity導入

    15/33 [8] HGC, Singularity 利用開始のお知らせ: http://hgc.jp/japanese/news/2018/03/singularity.html [9] G. M. Kurtzer, V. Sochat, and M. W. Bauer, “Singularity : Scientific containers for mobility of compute,” PLoS One, vol. 12, no. 5, pp. 1–20, 2017. Singularity[9] • HPC環境向けコンテナ仮想環境OSS • Dockerイメージと互換性あり • 従来のHPC運用と相性がよい • 利用者のワークフローは Dockerの利用ケースと類似 • Rootデーモンが必要なDockerに対して, ユーザー権限に応じて機能を 選択的に提供可能
  14. Case 2 | 東大医科研HGCにおけるSingularity導入 16/33 1. レジストリサービスに仮想イメージをアップロード 2. ジョブ投入時に仮想イメージを指定すると、 計算ノード上で指定した仮想イメージ内でジョブ実行が可能

    • ライブラリ依存関係を気にせず自由なコンテナを利用可能 (システム運用ポリシーに依存) • システムの管理者が仮想イメージを提供する場合も多い Univa Grid Engine + Dockerによるコンテナ仮想化 Registry Service Container Local Machine Application 1. 2. Compute node Login node User script Job Scheduler Registry Service Container User script Application Docker daemon
  15. Case 2 | 東大医科研HGCにおけるSingularity導入 17/33 1. コンテナ仮想イメージをローカルファイル(.sing)として保存 2. ローカルファイルを指定してSingularityを実行すると 仮想イメージ環境上でジョブ実行が可能

    • Docker仮想イメージに対する互換性がある(Singularity形式に変換可能) • 仮想イメージ管理がローカルの問題となるため管理しやすく、導入が容易 Singularityによるコンテナ仮想化 Local file (.sing) Local Machine Container Application 1. 2. Registry Service Compute node Login node User script Job Scheduler Container User script Application Singularity Local file (.sing)
  16. Nextflow[9][10] • Centre for Genomic Regulationが開発 • オミックス解析パイプライン • ドメイン固有言語(DSL)の記述による

    再現性のある解析ワークフローの構築を支援 • コンテナ型仮想化(Docker, Singularity)をサポート Case 3 | オミックス解析パイプラインにおけるコンテナ仮想化 18/33 [9] P. DI Tommaso, M. Chatzou, E. W. Floden, P. P. Barja, E. Palumbo, and C. Notredame, “Nextflow enables reproducible computational workflows,” Nature Biotechnolgy, vol. 35, no. 4, pp. 316–319, 2017. [10] P. Di Tommaso, E. Palumbo, M. Chatzou, P. Prieto, M. L. Heuer, and C. Notredame, “The impact of Docker containers on the performance of genomic pipelines,” PeerJ, vol. 3, p. e1273, 2015.
  17. Case 4 | MEGADOCKにおける取り組み 20/33 MEGADOCK[11] • FFTによる剛体ドッキングを用いた タンパク質間相互作用予測ソフトウェア •

    OpenMP/GPU/MPIによる並列化対応 • TSUBAME,「京」などで大規模並列解析の実績 • クラウド環境,コンテナ仮想環境向けにも展開[12][13] [11] Masahito Ohue, Takehiro Shimoda, Shuji Suzuki, Yuri Matsuzaki, Takashi Ishida, Yutaka Akiyama. MEGADOCK 4.0: an ultra-high- performance protein-protein docking software for heterogeneous supercomputers, Bioinformatics, 30(22): 3281-3283, 2014. [12] 山本悠生, 大上雅史, 秋山泰, “クラウド上の分散GPU環境におけるタンパク質間相互作用予測計算フレームワークの開発”, 情報処 理学会研究報告 バイオ情報学(BIO), 2018-BIO-53(8), 1-8 (2018-03-02) [13] 青山建人, 山本悠生, 大上雅史, 秋山泰, “コンテナ型仮想化による分散計算環境におけるタンパク質間相互作用予測システムの性 能評価”, 情報処理学会研究報告 バイオ情報学(BIO), 2017-BIO-49(3), 1-8(2017-03-23)
  18. Case 4 | MEGADOCKにおける取り組み 21/33 [13] 青山建人, 山本悠生, 大上雅史, 秋山泰,

    “コンテナ型仮想化による分散計算環境におけるタンパク質間相互作用予測シ ステムの性能評価”, 情報処理学会研究報告 バイオ情報学(BIO), 2017-BIO-49(3), 1-8(2017-03-23) Microsoft Azure上のコンテナ分散[13] • クラウド上で コンテナ仮想化による MEGADOCKの 分散並列環境を構築 • 仮想イメージ作成は 公開済みMEGADOCKの Dockerfileをベースに • VM30台による実験で 通常の仮想マシンと 遜色のない実行性能を 示した • ビルド済みイメージに より環境構築が容易に
  19. 生命情報分野におけるコンテナ型仮想化は、 軽量な仮想化技術としての恩恵が大きい • 必要な依存ライブラリを内包した 即時実行可能な形式のコンテナ仮想イメージは, アプリケーションの容易な配布・管理を可能とする • 仮想化されたアプリケーションの共有は コミュニティ内のツールの共通化を促進し, 最新の研究成果の迅速な検証を容易にする

    • ツールの仮想化とイメージの維持や共有は 解析結果の再現性を通して研究再現性を向上させる • 計算機環境に縛られないオープンな研究活動を支援する 情報科学分野だけでなく, 関連する生命情報分野でもコンテナ仮想化利用の普及が進んでいる 事例紹介 | 生命情報分野の事例の総括 22/33
  20. これまでMEGADOCKではDockerを対象として コンテナ型仮想化への対応を進めてきた • Singularity, Shifter等のHPC環境向けのコンテナ仮想環境にも 対応できているか? • それぞれのコンテナ仮想環境で実行性能に大きな影響はないか? それぞれのコンテナ仮想環境上の実行性能の比較実験により 可搬性と実行性能への影響を評価する

    異なるコンテナ仮想環境上の実行性能 23/33 [14] Solomon Hykes and others. “What is Docker?” https://www.docker.com/what-docker [15] W. Bhimji, S. Canon, D. Jacobsen, L. Gerhardt, M. Mustafa, and J. Porter, “Shifter : Containers for HPC,” Cray User Group, pp. 1–12, 2016. [14] [9] [15]
  21. 実験 | コンテナ仮想環境の詳細 26/33 HPC Container Technologies Docker Singularity Shifter

    *1 NVIDIA GPU利用にはnvidia-dockerが必要 *2 ファイルシステム設定がI/O性能に影響する場合がある 今回はホストのファイルシステムをマウントして影響を回避
  22. 実験 | 100ペアのドッキング実行時間 28/33 コンテナ仮想環境による差はMPI, GPU版の両方でほぼ見られなかった (両方ともに2%以下の差) 1,649 1,664 1,651

    1,681 0 250 500 750 1,000 1,250 1,500 1,750 2,000 Shifter Singularity Docker Native Execution Time [sec] 853 854 857 853 0 250 500 750 1,000 1,250 1,500 1,750 2,000 Shifter Singularity Docker Native Execution Time [sec] MPI GPU
  23. 実験 | GPU版の実行時間プロファイル 29/33 • 小規模なタンパク質同士では ドッキング計算の所要時間が短い • GPUデバイス確保などの 初期化処理の比率が大きい

    • 実験環境では最新のGPUである NVIDIA Tesla V100を3枚搭載するが 小規模ドッキングには過剰 • タスク分散や並列化デザインに ついて再検討が必要 7.25 5.15 0.0 2.0 4.0 6.0 8.0 10.0 1-GPU 3-GPU Elapsed Time [sec] output docking receptor process initialize 83.17% 11.86% 4.83% 45.05% 47.77% 6.99% GPU版のドッキング( 1ペア)の実行時プロファイル
  24. 個別のコンテナ仮想環境による 実行性能への大きな影響は見られなかった • 管理・導入の手間や周辺ツールセットの利便性で コンテナ仮想環境を決定してもよい • 仮想イメージの作成では、互換性が高いDockerイメージを推奨 MEGADOCKのマルチGPU実行性能に課題が見られた • 近年のGPUの実行性能向上による初期化コストの顕在化

    • GPUの性能向上を考慮したタスク分散が必要 • 現状はすべてのGPUでドッキング計算を行い, 各計算ごとにデバイスを解放するため初期化コストが高い • 大規模実行時にはデバイス確保を維持する, MPIプロセスごとにGPUを割り当てるなどの変更が考えられる 実験 | 実験結果 30/33
  25. 本研究の一部は以下の支援を受けて行われた – JSPS科研費(15K16081, 17H01814, 18K18149) – JST CREST「EBD: 次世代の年ヨッタバイト処理に向けたエクストリームビッグデータの 基盤技術」(JPMJCR1303)

    – JST リサーチコンプレックス推進プログラム – 文部科学省地域イノベーション・エコシステム形成プログラム – AMED BINDS (JP17am0101112) – Microsoft Business Investment Funding – リバネス研究費 謝辞 33/33
  26. ソフトウェア開発者および利用者: • 個人環境では Docker 環境の利用を推奨する • 周辺ツールセットの汎用性,互換性が高い • Windows/Mac OS上の実行を支援するツールも存在する

    • 各種クラウド環境の対応も素早い システム管理者: • Docker または Singularity 環境の提供を推奨 • 対応スケジューラがある/コンテナ対応オーケストレーションツール (Kubernetes等)があるならば Docker • 共用計算機上のそのままの利用は運用ポリシー等が必要となるため • 既存のワークフローに対応させるならば Singularity • 細かい設定が不要であり,仮想イメージもローカルに保存 • Shifterは導入コストが高く,HPC基盤管理者向け 総括 | 生命情報分野のコンテナのすゝめ 34/33
  27. • OSベースイメージは軽量(ubuntu:18.04は79.6MB) • 配布の際は容量削減のため最低限の依存関係でイメージ作成を推奨 補足 |コンテナ仮想イメージ入手の例 35/33 # DockerHubから仮想イメージのダウンロード $

    docker pull akiyamalab/megadock:latest latest: Pulling from akiyamalab/megadock … Status: Downloaded newer image for akiyamalab/megadock:latest # コンテナの起動 $ docker run -it akiyamalab/megadock:latest megadock -h MEGADOCK ver. 4.0.2 for CPU & single node [email protected] lastupdated: March 3, 2015 … # ダウンロード済み仮想イメージの確認 $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu 18.04 452a96d81c30 4 weeks ago 79.6MB akiyamalab/megadock latest 84be61e65fc4 17 hours ago 324MB