1
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

posted at

updated at

DockerでMEGADOCKのサンプルを動かす

DockerでMEGADOCKのサンプルを動かす

by metaVariable
1 / 12

MEGADOCK

  • タンパク質ドッキングによるタンパク質間相互作用予測ソフトウェア
  • FFTによるグリッドベースの高速なドッキング計算
  • OpenMP/MPI/GPUによる高速化

SIGBIO49


物理1ノード上の性能比較

  • CPU(MPI)版の実行はDocker版が若干遅く
  • GPU版は、ほぼ差はない

クラウド環境上でMPI並列実行

  • 16 threads / 4 MPI process / 1 Container / 1 VM
  • DockerSwarmでコンテナ間ネットワークを構築

クラウド上のMPI並列実行の結果

  • VM版とDocker on VM版でスケーラビリティはほぼ同じくらい

DockerでMEGADOCKのサンプルを動かす


1. (前提条件)Docker Engineを導入

公式Docker Docsに従って導入する
https://docs.docker.com/engine/installation/

  • 今回は詳細は省略
  • 要:管理者権限
    • 現時点でDockerの実行は管理者権限が必須
    • Docker互換のOSSツールなどはある
  • ホストOSのカーネルバージョンが古いと入れられない場合がある

2. とりあえずMEGADOCKサンプルを動かす

MEGADOCKをビルド済みのコンテナイメージをDockerHubからダウンロードしてサンプルを実行をする
(https://github.com/metaVariable/Megadock-Docker)

docker run -it meta1127/megadock-docker \
mpirun -n 4 megadock-dp -tb SAMPLE.table

  • 内部処理

    1. コマンド実行
    2. ローカル環境に指定されたコンテナイメージがなければ、DockerHubからダウンロード
    3. ダウンロードしたコンテナイメージから、コンテナのプロセスを生成
    4. プロセス内でサンプルを実行
  • 今回は余計なものがない、シングルノード上のサンプル実行用のイメージ

  • 研究報告ではSSH鍵登録なども行ったコンテナイメージで複数ノードのMPI並列実行


デモ

demo.png


3. 研究の再現性

GitHub <---> DockerHub の連携

  • GitHubのリポジトリを更新するとDockerHubのコンテナイメージを自動的に更新できる
  • コードの更新と同時にコンテナイメージの作成とテストコードの実行なども可能
  • 担当者がいなくなったあともコードと実行環境を保持できる

4. Dockerは便利

  • 拾ってきたアプリを触ってみるとき

    • 適当なOSイメージに、適当にライブラリを入れて、ビルドできるか試せる
      • 失敗したらコンテナを破棄すればよい
    • 誰かが作成したコンテナのイメージを使うと、ビルドせずに試せる(GitHubやDockerHubに多くある)
  • 別のマシンと環境を共有したいとき

    • 構築済みの環境を他の人にそのまま手渡せる
    • 環境の構築をコード化して画一的に管理できる(Dockerfile)
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
1
Help us understand the problem. What are the problem?