meta-something

論文とか研究とか趣味のネタとか

SC19のコンテナ関連セッション雑まとめ

はじめに

SC19のプログラムのコンテナに関連するセッションの個人的な備忘録というかメモというか。

  • 一部(Tutorial関連)は参加していないが、オンライン上の資料があったので軽く目を通したときのめも。
  • 雑なメモなのであまり推敲などしていない
  • SC19プログラムの概要リストは以下URLから見られるが、あまり完全ではない(ポスターについては全PDFが公開されている)

sc19.supercomputing.org


Containers in HPC (Tutorial)

Program link

  • Presenters:
    • Brian Skjerven
    • Mark Gray
  • Event Type: Tutorial
  • Time: Sunday, 17 November 2019, 8:30am - 12pm

チュートリアル資料(外部ページ)

pawseysc.github.io

Memo

チュートリアルパスを買わなかったので、SCストアで購入したマテリアルに記載のある外部ページを見た感じの内容の推測

  • Docker/SingularityコンテナのHPCユーザ向けの使い方のハンズオン。汎用性高め。
  • コンテナの基本的な使い方、HPCアプリを題材にしたGPU/MPIのコンテナの使い方、レシピの書き方、ベストプラクティスなどの一通りの基本チュートリアル
  • 演習環境はPawsey Centreのスパコンか、もしくは自分の(BYOD)
  • 再現性あるワークフローのためのコンテナ活用の紹介で、Nextflowのデモがある
  • 最後の関連ツールでHPCCM, Shifter, Podman, Sarusなどの紹介がある

Container Computing for HPC and Scientific Workflows

Program link

  • Presenters:
    • Richard Shane Canon
    • Andrew J. Younge
    • Sameer Shende
    • Eduardo Arango
  • Event Type: Tutorial
  • Time: Sunday, 17 November 2019, 1:30pm - 5pm

チュートリアル資料(外部ページ)

supercontainers.github.io

Memo

Tutorialsのマテリアルになかったので、著者のGitHubアカウントから探した外部ページから感じた内容の推測

  • Shifterの筆頭著者とSylabsの人が開催しているHPCコンテナのチュートリアル
  • 上と似たような基本の使い方のレクチャー(Docker, Singularity, Shifter) + Singularity独自の機能紹介とか
  • チュートリアル実施のためにAmazon EC2と、NERSCのスパコンCoriの環境が用意されていて演習した模様

Containers and New Orchestration Paradigms for Isolated Environments in HPC (CANOPIE HPC)

Program link

canopie-hpc.org

Program (Presentations)

  • 2:00pm - 2:05pm: Containers and New Orchestration Paradigms for Isolated Environments in HPC (CANOPIE HPC)
  • 2:05pm - 2:35pm: Evaluation and Benchmarking of Singularity MPI Containers on EU Research e-Infrastructure
  • 2:35pm - 3:05pm: Enabling HPC workloads on Cloud Infrastructure Using Kubernetes Container Orchestration Mechanisms
  • 3:30pm - 4:00pm: Long-Term Preservation of Repeatable Builds in Occam
  • 4:00pm - 4:15pm: KBase: A Platform for Reproducible Bioinformatics Research
  • 4:15pm - 4:30pm: HPC Container Runtimes Have Minimal or No Performance Impact
  • 4:30pm - 4:45pm: On-Node Resource Manager for Containerized HPC Workloads
  • 4:45pm - 5:00pm: A Case for Portability and Reproducibility of HPC Containers
  • 5:00pm - 5:30pm: Lightning Session - CANOPIE-HPC
    • Continuous integration and deployment of HPC workloads, A DevOps approach to scientific workflows
    • Popper 2.0: A Multi-container Workflow Execution Engine For Testing Complex Applications and Validating Scientific Explorations
    • Running InfiniBand and GPU Accelerated MPI Applications in a Kubernetes Environment

Memo

  • Shifter, Singularity, SarusなどのHPCコンテナ開発者が主導するCANOPIE HPC の第一回ワークショップ
  • ちなみにワークショップのSlackグループがあり、招待URLから誰でも参加できる。SC19で開催されたコンテナ関連セッションで使いまわされていた。

  • 心に残ったセッションをいくつかピックアップ

    • KBase: A Platform for Reproducible Bioinformatics Research PDF

      • ローレンスバークレー研究所で使われている解析ワークフロープラットフォームの話。
      • WebのUI上からワークフローのカタログを選んで利用できる(https://kbase.us/apps/)、すべてのツールはコンテナが前提、再現性重視。
      • NERSCで開発されたため、現在はShifter(=Docker)のコンテナイメージが利用可能
    • HPC Container Runtimes Have Minimal or No Performance Impact PDF

      • いくつかのコンテナ環境とベアメタル(Bare-metal, Singularity, Shifter, Chariecloud)でHPC向けコンテナの性能ベンチマーク
      • CPU/Memory Performance, UsageをSysBench, STREAMベンチマークで計測する。あと実際のApplication (HPCG)でマルチノードMPIを実施して性能検証
        • CPU: ほとんど影響がない。ゼロと言ってもいい。性能差が出るのはソフトウェアスタックの違いがある場合だけでは。
        • Memory: あっても数百MBくらい。ただし、イメージそのものの解凍などの挙動に必要なメモリは考慮する必要がある。
        • HPCG: ほぼほぼ1~2%の性能差、最大最小の幅は4.5%。HPCコンテナの実装の中ではShifterとSingularityがBare-metal, Charliecloudと比べて若干低い傾向があり、PMI (Process Management Interface)の実装の差ではないか?と考察している(PMI初心者並感想)
    • On-Node Resource Manager for Containerized HPC Workloads PDF

      • 計算ノード上で動くコンテナのリソースを監視するPMIxの話っぽい?
        • あまりよくわからなかったのであとでちゃんとペーパー読む必要ありそう…(PMI初心者並感想)。
      • 将来的にSingularityで動いてるコンテナのリソースを把握しやすくなってMPIの割り当てが幸せになるというような話をしていた
    • A Case for Portability and Reproducibility of HPC Containers PDF

      • Shifterの著者によるHPCコンテナの現状の話。HPCシステム間の可搬性を確保するために現在どういう方法があるか、何ができるか。
      • イメージラベルでバージョンを明示的に指定する方法、ライブラリそのものの後方互換性に頼る、コンテナの互換性レイヤーに頼る、システムそのものを仮想化する、などの方法について具体例を挙げつつ詳細な議論をしていた。

Containers in HPC (BoF)

Program link

  • Session Leader: Andrew Younge
  • Additional Session Leaders
  • Event Type: Birds of a Feather
  • Time: Wednesday, 20 November 2019, 5:15pm - 6:45pm

  • Slide (リンク切れてたら残念)

    • (スライドはSlack共有されていたものなので、探せば何処か別の場所で公開されているかも)

Memo

  • コンテナ関連のBoFセッション。最初に進行役の自己紹介をしたあと、用意された質問に対する聴衆の回答をリアルタイムで映しながら全体で議論する
  • 回答結果はここで確認できる(いつまでリンクが有効かはわからない。また回答はこれで全てではないが、おそらく無料プランではあとから全部を確認できない?)
  • 「コンテナの最も重要な特性は何か?(2つ選択)」という質問に対して「可搬性(Portability)」が最多、次いで「再現性(Reproducibility)」
  • 「現在のHPCコンテナの最も大きな問題は何か?」という質問に対しては「既存のHPC環境との統合(Lack of integration with existing HPC)」が最多、次いで「使いやすさ(Difficult to use)」
    • この辺は現状認識としては私と同じく、HPC分野におけるコンテナコミュニティが年々成長して、様々な安心感からワークフロー実装やアプリケーションへの応用が増えてきたものの、「最適化(性能)と可搬性の両立」にはまだまだ超えるべき壁がある(特にMPI互換性とインターコネクトとCPUアーキテクチャ周りの互換性問題)
    • アーキテクチャ毎に最適化されたバイナリを用意するプロジェクトやMPIのABI互換性による支援など様々なプロジェクトが進行しているが、まだコミュニティでも手段を模索している状況。
    • OpenHPCコミュニティとの交流を続けてもっとシームレスなシステム間の互換性を目指していかなければ、、
    • もっというと「今後はFugakuに代表されるARMアーキへの対応などもあるので、今年はもっと議論が難しくなりそう」という話で笑いが起こっていた。

Posters (Research Posters, Docgral Showcase, )

Poster 74: Enabling Code Portability of a Parallel and Distributed Smooth-Particle Hydrodynamics Application, FleCSPH

Archive link

Memo

  • FleCSPHというアプリケーションをKokkos C++ LibraryとCharliecloudを使って性能の可搬性を評価する話。今回はCPUだけのアプリっぽい。
    • Kokkosは複数のCPU/GPUシステムに対して"Performance Porability"を向上させるためのフレームワーク、マルチ環境向けのバイナリを吐き出す
    • CharliecloudはLos Alamos National Laboratoryで開発されてるHPC環境向けコンテナランタイム
  • 実験ではCharliecloudの方がbaselineに近い結果に。実験対象のマシンが似たような構成であまりKokkosの利点を生かせなかった?
    • というかコンテナ版がbaselineを平均的に上回っているので、ちょっと怪しい。議論もないのでなんとも言えない。
      • (よくあるコンテナ版の方が新しいライブラリを内部で使っちゃってるパターンでは?)

Poster 88: HPC Container Runtime Performance Overhead: At First Order, There Is None

Archive link

Memo

  • 上の方のCANOPIE HPCのショートペーパー発表と内容が完全に同じなので省略。
    • "HPC Container Runtimes Have Minimal or No Performance Impact"

Poster 89: BeeCWL: A CWL Compliant Workflow Management System

Archive link

Memo

  • コンテナと直接関係はないけど、ワークフローの実装の1つであるCWLの拡張の話があった。
  • CWLファイルを読み込み、ワークフローの構造を読み取り、各ステップの実行とデータを効率的に分割したりしてオーケストレーター(スケジューラー)にデプロイするフレームワーク
  • 既存のBEE Systemの拡張っぽい。BEEシステム自体はChariecloudを想定したワークフロー管理システムっぽい?同じロスアラモスだし。

Poster 111: Multiple HPC Environments-Aware Container Image Configuration for Bioinformatics Application

Archive link

Memo

  • 私が発表したポスター。
  • HPCCMを使ったアプリケーションデプロイの実例。ABCIとTSUBAME3にそれぞれ異なるドライバ、OpenMPIライブラリを利用してデプロイして性能を計測した話。

Poster 112: Building Complex Software Applications Inside Containers

Archive link

Memo

  • Chariecloudを利用してMPASという気候シミュレーションソフトをコンテナ化して、構成の異なる複数のシステムにデプロイした話。
    • 片方がラボのGrizzly Cluster: TOSS3, Intel Xeon Broadwell, Intel Omni-Path, CTS-1 x86_64
    • 片方がCrayのTrinitie Cluster: CLE6.0, Intel Haswell, 3D Aries Dragonfly Interconnect, Cray XC40 Haswell
  • 性能の評価は無し、依存関係が複雑なソフトウェア用のDockerfileを用意したよ、という話(タイトル通り)
  • OpenMPI用のDockerfileを見ると、様々な環境のインターコネクトに対応するためのMPIサポート解説が結構勉強になるので、ポスターより添付QRコードDockerfileを見た方がよい。

あとがき

  • とりあえず暫定で、腐らないうちにアップロード。
  • 全体を通した雑感としては目を惹くような新情報はあまりなかったものの、色んなコミュニティに浸透したものの共通の問題(アーキテクチャ依存の可搬性、再現性)に辿り着いて、何ができるだろうかとコミュニティ全体でケーススタディを共有しながら報告し合っている状態。
  • コンテナではないワークショップやBoFでも面白いものは沢山あって、HPC環境上のソフトウェア提供フレームワークとして Spack.io とか、諸々のプロジェクトを含めた OpenHPC コミュニティとか。余裕があったらあとで追加したい。
  • あとKokkos関連で辿り着いた”性能の可搬性”(Performance Portability)のワークショップとかもチラっと見てた。