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)

    View full-size slide

  2. 生命情報解析の研究分野と関わりのある
    コンテナ型仮想化の導入事例を紹介し,
    主なコンテナ仮想環境で実アプリの実行性能の比較を行う
    A) 生命情報分野におけるコンテナ仮想化の事例紹介
    • 理研BiTにおける再現性のある応用解析のための計算環境
    • 東京大学医科学研究所ヒトゲノム解析センターにおけるコンテナ基盤の導入
    • オミックス解析パイプラインNextflowのコンテナ仮想化拡張
    • タンパク質間相互作用予測ソフトウェアMEGADOCKにおける取り組み
    B) コンテナ仮想環境上の実行性能の比較実験
    • タンパク質間相互作用予測ソフトウェアMEGADOCKの
    Docker/Singularity/Shifterによるコンテナ仮想環境上の実行性能比較
    本報告の概要 2/33

    View full-size slide

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

    View full-size slide

  4. 2.コンテナ型仮想化の背景
    4/33

    View full-size slide

  5. アプリケーション出力の再現性
    • 異なるバージョンのライブラリは異なる結果を出力する可能性がある
    • データ解析を中心とした研究領域では,
    研究成果の再現性に大きな影響を及ぼす
    • データセンターや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

    View full-size slide

  6. コンテナ型仮想化技術などを用いた
    ソフトウェアの品質を維持する手法(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.

    View full-size slide

  7. ホストカーネル共有型の仮想化技術
    • 名前空間の隔離(プロセス, ファイルシステム, etc.)による仮想化
    • ハードウェアとOSカーネルを仮想化しないため
    仮想イメージのサイズが小さく,実行性能への影響が少ない
    背景 | コンテナ型仮想化 7/33
    仮想マシンではハードウェア,
    OSカーネルも仮想化するため
    実行性能への影響が大きい
    コンテナではハードウェア,
    OSカーネルは仮想化せず
    ホストのものを共有する

    View full-size slide

  8. 背景 | 仮想化の実行性能への影響 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]

    View full-size slide

  9. 背景 | コンテナ仮想環境の可搬性 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/

    View full-size slide

  10. 背景 | 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]
    ビルド済みイメージ(またはビルドレシピ)の普及により,
    ツールへのアクセス性と研究再現性の向上を目指す

    View full-size slide

  11. 3. 生命情報解析における
    事例紹介
    11

    View full-size slide

  12. 生命情報分野におけるコンテナ型仮想化の利用事例の紹介
    事例紹介 | 導入事例 12/33
    Case 1
    再現性のある応用解析のためのDocker導入
    国立研究開発法人 理化学研究所 生命機能科学研究センター
    バイオインフォマティクス研究開発ユニット(BiT)
    Case 2
    スーパーコンピュータSHIROKANEにおけるSingularity導入
    東京大学医科学研究所ヒトゲノム解析センター
    Case 3
    オミックス解析パイプライン Nextflowのコンテナ仮想環境への拡張
    Centre for Genomic Regulation(スペイン)
    Case 4
    タンパク質間相互作用予測ソフトウェアMEGADOCKにおける取り組み
    東京工業大学 情報理工学院 秋山研究室

    View full-size slide

  13. 理研バイオインフォマティクス研究開発ユニット(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/

    View full-size slide

  14. Case 1 | 再現性のある応用解析のためのDocker導入 14/33
    [7] 松嶋明宏 “科学技術計算用クラスタへのDocker導入と運用 / HPC OPS研究会” https://speakerdeck.com/amatsus/hpc-ops-mtg1
    • 解析ツールごとにDockerコンテナを用意してレジストリサービスに登録
    • ツールのバージョンを仮想イメージのタグで管理
    • ユーザーは計算クラスタ上(あるいはクラウド上でも)で
    共通の仮想イメージを利用した解析が実行可能、研究再現性の向上に寄与
    理研BiTの計算クラスタ環境[7]

    View full-size slide

  15. 東京大学医科学研究所ヒトゲノム解析センター
    スーパーコンピュータ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に対して,
    ユーザー権限に応じて機能を
    選択的に提供可能

    View full-size slide

  16. 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

    View full-size slide

  17. 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)

    View full-size slide

  18. 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.

    View full-size slide

  19. オミックス解析ワークフローへのコンテナ仮想化導入
    ユーザーが定義した各ツール・タスクの処理を
    個別のコンテナ環境で実行する
    • タスク毎に実行される
    ツールのバージョン(=仮想イメージのタグ)をユーザーが指定可能
    • 解析ツール間のライブラリ依存関係の競合を回避可能
    • 過去のバージョンのツールを仮想イメージとして保持することで
    解析結果の再現性を維持できる
    Case 3 | オミックス解析パイプラインにおけるコンテナ仮想化 19/33
    Container A
    TASK 1
    Tool A
    Container B
    TASK 2
    Tool B
    Container C
    TASK 3
    Tool C
    samtools:v1.3 bwa:0.7.15 picard:2.3.0
    Host System

    View full-size slide

  20. 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)

    View full-size slide

  21. Case 4 | MEGADOCKにおける取り組み 21/33
    [13] 青山建人, 山本悠生, 大上雅史, 秋山泰, “コンテナ型仮想化による分散計算環境におけるタンパク質間相互作用予測シ
    ステムの性能評価”, 情報処理学会研究報告 バイオ情報学(BIO), 2017-BIO-49(3), 1-8(2017-03-23)
    Microsoft Azure上のコンテナ分散[13]
    • クラウド上で
    コンテナ仮想化による
    MEGADOCKの
    分散並列環境を構築
    • 仮想イメージ作成は
    公開済みMEGADOCKの
    Dockerfileをベースに
    • VM30台による実験で
    通常の仮想マシンと
    遜色のない実行性能を
    示した
    • ビルド済みイメージに
    より環境構築が容易に

    View full-size slide

  22. 生命情報分野におけるコンテナ型仮想化は、
    軽量な仮想化技術としての恩恵が大きい
    • 必要な依存ライブラリを内包した
    即時実行可能な形式のコンテナ仮想イメージは,
    アプリケーションの容易な配布・管理を可能とする
    • 仮想化されたアプリケーションの共有は
    コミュニティ内のツールの共通化を促進し,
    最新の研究成果の迅速な検証を容易にする
    • ツールの仮想化とイメージの維持や共有は
    解析結果の再現性を通して研究再現性を向上させる
    • 計算機環境に縛られないオープンな研究活動を支援する
    情報科学分野だけでなく,
    関連する生命情報分野でもコンテナ仮想化利用の普及が進んでいる
    事例紹介 | 生命情報分野の事例の総括 22/33

    View full-size slide

  23. これまで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]

    View full-size slide

  24. 4.コンテナ仮想環境上の
    実行性能の比較実験
    24

    View full-size slide

  25. 実験 | 実験用仮想イメージの構築 25/33
    • 同じコンテナ仮想イメージを利用して
    Native, Docker, Singularity, Shifterの環境上の実行時間を比較する
    • MEGADOCK(MPI版/GPU版)の単一ノード上の実行時間を計測

    View full-size slide

  26. 実験 | コンテナ仮想環境の詳細 26/33
    HPC Container Technologies Docker Singularity Shifter
    *1 NVIDIA GPU利用にはnvidia-dockerが必要
    *2 ファイルシステム設定がI/O性能に影響する場合がある
    今回はホストのファイルシステムをマウントして影響を回避

    View full-size slide

  27. 実験 | ソフトウェア/ハードウェア仕様 27/33
    Native container:mpi container:gpu
    Local Machine
    ×

    View full-size slide

  28. 実験 | 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

    View full-size slide

  29. 実験 | 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ペア)の実行時プロファイル

    View full-size slide

  30. 個別のコンテナ仮想環境による
    実行性能への大きな影響は見られなかった
    • 管理・導入の手間や周辺ツールセットの利便性で
    コンテナ仮想環境を決定してもよい
    • 仮想イメージの作成では、互換性が高いDockerイメージを推奨
    MEGADOCKのマルチGPU実行性能に課題が見られた
    • 近年のGPUの実行性能向上による初期化コストの顕在化
    • GPUの性能向上を考慮したタスク分散が必要
    • 現状はすべてのGPUでドッキング計算を行い,
    各計算ごとにデバイスを解放するため初期化コストが高い
    • 大規模実行時にはデバイス確保を維持する,
    MPIプロセスごとにGPUを割り当てるなどの変更が考えられる
    実験 | 実験結果 30/33

    View full-size slide

  31. 5. 結論,総括
    31/33

    View full-size slide

  32. • 生命情報分野において普及しつつある
    コンテナ仮想化の導入事例を紹介した
    • 生命情報分野でも多数の研究機関がコンテナに対応しはじ
    めており,HPC基盤のクラウド環境との技術的な融合もあ
    わせて今後も普及が続く可能性が高い
    • コンテナ仮想化の導入は様々な最新の研究成果や
    アプリケーションへの素早いアクセスを可能とし,
    コミュニティのツール共有に大きく貢献する
    • 情報科学の知見やツールを研究作業に取り入れることは
    環境構築の徒労を軽減し,研究活動の効率化に貢献する
    総括 | 結論および総括 32/33

    View full-size slide

  33. 本研究の一部は以下の支援を受けて行われた
    – JSPS科研費(15K16081, 17H01814, 18K18149)
    – JST CREST「EBD: 次世代の年ヨッタバイト処理に向けたエクストリームビッグデータの
    基盤技術」(JPMJCR1303)
    – JST リサーチコンプレックス推進プログラム
    – 文部科学省地域イノベーション・エコシステム形成プログラム
    – AMED BINDS (JP17am0101112)
    – Microsoft Business Investment Funding
    – リバネス研究費
    謝辞 33/33

    View full-size slide

  34. ソフトウェア開発者および利用者:
    • 個人環境では Docker 環境の利用を推奨する
    • 周辺ツールセットの汎用性,互換性が高い
    • Windows/Mac OS上の実行を支援するツールも存在する
    • 各種クラウド環境の対応も素早い
    システム管理者:
    • Docker または Singularity 環境の提供を推奨
    • 対応スケジューラがある/コンテナ対応オーケストレーションツール
    (Kubernetes等)があるならば Docker
    • 共用計算機上のそのままの利用は運用ポリシー等が必要となるため
    • 既存のワークフローに対応させるならば Singularity
    • 細かい設定が不要であり,仮想イメージもローカルに保存
    • Shifterは導入コストが高く,HPC基盤管理者向け
    総括 | 生命情報分野のコンテナのすゝめ 34/33

    View full-size slide

  35. • 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

    View full-size slide