meta-something

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

インターンの成果が欧州スパコンの本番環境で使えるようになった

前回の記事で紹介した3ヶ月のスイスのCSCS滞在中にHPC運用チームで取り組んだ成果が、無事に同機関のスーパーコンピュータPizDaintの本番環境上で利用可能になったようです。

metavariable.hatenablog.com

はじめは期間が長いと思っていたインターンも、作業を進めるうちに「3ヶ月では足りない、もっとやりたいことが…」となり帰国後もしばらくスイスに心を置いてきた感覚でしたが、無事に国際会議発表も本番環境への提供もできたという報告をチームメンバーから貰えて一安心と言ったところです。

ちなみに国際会議の発表を取り上げた記事中に発表の録画映像があるのですが、発表者のAlberto氏(チームメンバー)が冒頭で以下のように触れて頂けたことに(共著ではないものの)少し嬉しみを感じました。

"... and I would like to acknowledge the efforts of Kento AOYAMA from Tokyo Tech who made big contributions to our work during his internship at CSCS."

insidehpc.com

国際会議の発表スライド (by Alberto Madonaa)

www.slideshare.net

PizDaint上のShifterのユーザーガイド

Shifter

Advanced Shifter User Guide

スイスで3ヶ月間の留学を完走した感想

昨年2017年秋~冬にかけて経験した3ヶ月ほど滞在したスイスのCSCSで行った海外留学について書いてみます。ほとんど研究内容には触れず、かなり一般的な話です。タイトルにある通り、研究というよりもただの感想です。

海外留学の概要

  • 滞在場所
    • Lugano, Switzerland
  • 渡航期間
    • 2017年9月中旬 ~ 2017年12月中旬(約3ヵ月間)
  • ホスト機関
    • Swiss National Supercomputing Centre
      • (Italian: Centro Svizzero di Calcolo Scientifico; CSCS)
  • 研究内容(ざっくり)

CSCSについて

www.cscs.ch

  • スイス連邦工科大学(ETH Zurich)の運営するスーパーコンピューティングセンター
  • 正式名称はSwiss National Supercomputing Centre (Italian: Centro Svizzero di Calcolo Scientifico) で、イタリア語の頭文字を取って CSCSと呼ばれる
  • 2017年7月のTOP500において3位にランクインしたPiz Daintを運用している
  • スーパーコンピューターに関連するインフラ基盤から応用研究のアプリケーションまで、HPC分野の研究者が幅広く所属する

f:id:MetaVariable:20180405142654j:plain
山頂から見下ろしたルガーノ湖と市街

全体的なスケジュール

時期 内容
2016.12 - ? 受け入れ先の候補を探す
2017.3 - 2017.4 受け入れ交渉
2017.4 - 2017.5 滞在ビザ等の調整
2017.9.19 渡航(日本→スイス)
2017.12.15 帰国(スイス→日本)

受け入れ先の交渉(?)

もともとHPC環境向けのコンテナ型仮想化OSSであるSingularityShifter等に興味があったので、主にコンテナ型仮想化をキーワードに関連する論文の著者や研究機関を探していたところ、色々な幸運に恵まれてShifterの研究開発・運用を行うCSCSに海外留学(インターンシップ)として参加できることになった。

スイス渡航にあたってのあれこれ

スイス渡航にあたって少し面倒だったのがビザの扱い。 基本的には90日以内の滞在の場合、日本国籍の人はスイス入国にビザ/査証は必要ない大使館情報)のだが、今回の滞在はこれが適用できなかった(微妙に合計90日を超えていたので)。

上記が適用できない場合、スイスの居住地を管轄する現地の行政組織(カントン)に滞在許可発行確認書を直接申請する必要があるのだが、現地の行政機関のページを覗いてみると日本語はもちろん英語情報もなく、イタリア語だったため、非常に困った。

結局、留学先の事務担当の方に必要書類を取得して頂いて、国際郵便で届けてもらうことで解決した。留学にあたっては受け入れ機関の事務の人が手続きしてくれる場合が多いらしいので、頑張って英語メールを書きましょう。

研究環境とか開発環境とか

今回はCSCSでHPCシステム(PizDaintを含む)の運用や研究開発を担当するHPC Operasions部門のSystem Integration Teamに参加して3ヵ月間を過ごした。 共同研究者用の広めのスペースでデスクを1つ借りて、持ち込んだSurface Bookで毎日Shfiterのコーディングしたり、テスト環境でコードをテストしたり、開発中コードの性能をメンバーと議論したり。

ミーティングはほぼ毎週行われ、進捗状況・計測データ・採用したアルゴリズムなどを資料にまとめて、事前にSlackで共有後に30分~1時間程度メンバーと方針について議論をしていた。開発中の性能測定やデバッグにあたってはPizDaintを利用できた。また、サクッとベンチマーク走らせたりする上ではPizDaint上のShifterは結構便利だったので、個人的にはやっぱりHPC環境でもコンテナ使いたい。

ちなみにミーティング資料について特に何も指定がなかったのでMarkdownで書いていたが、Visual Studio Codeの機能含めてわりとウケは良かった。(Visual Studio CodeのMarkdown Preview機能 + PDF変換プラグイン

また、内部のソフトウェア開発ではGitLabをベースにしたCIパイプラインが運用されていて、

  1. 内部ネットワーク上でホストしているGitLabからcloneして開発
  2. PullRequest等をトリガーにGitLab CIのパイプライン開始、仮想テスト環境(Vagrant, Docker)を立ち上げてテストを実行
  3. テスト結果を見ながらレビューしたり諸々、大丈夫ならマージ
  4. コードマージ後、実テスト環境(PizDaintと同じ構成のマシン)で諸々の検証
  5. 問題なければ実際にリリース

という流れで開発と運用が行われていた。CS系の研究機関としてちゃんと開発ツールを使っている感じがあり、個人的にはとても居心地がよい場所だった。

最終日には滞在中の研究成果をまとめてCSCSスタッフの前でプレゼンテーションを行った。流石に緊張したが、それなりにスライドも作り込んで話したのでムードも悪くはなく、よい経験になったと思う。

f:id:MetaVariable:20180405143008p:plain

人間関係とか

基本的には毎日チームメンバーとお昼を一緒に食べていたのと、帰国前の最後の週にはメンバーの家でチーズフォンデュパーティーをしたりできたので、かなり仲良くなれたように感じる。

特にチームメンバーに過去に日本の国立大学で5年間ほど研究員をしていた人(ただし日本語は話せない)がいて、日本という共通のネタがあったこともあって、研究でも日常生活でも大変にお世話になった。また、チームメンバー以外でもスタッフ向けのパーティーやExcursionに参加して交流できたので結構充実していた。

その他

  • 居住地がイタリア語圏だったので主食がピザ、パスタ、ケバブ。深刻な野菜不足
  • 研究施設では英語が通じたが、市内は全くわからないイタリア語なので大変だった
  • 物価が高い(適当に安いものを食べても約10CHFくらい(≒約1200円)する)
  • 店舗の閉店時間が早い(19時には大手スーパー含めて閉店、日曜日は何処も開いていない)

完走した感想

これまでも学会等で何度か海外出張に行く機会はあったものの、1ヶ月以上の長期滞在は初体験だったので、大変に緊張していた。とはいえ2週間も経つ頃には、同じコンピュータサイエンスの背景知識があれば多少不完全な英語でもミーティングは可能で、難しい表現がなくとも日常会話はできるということがなんとなく理解できて、いつの間にかすっかり生活に馴染んでしまった。

1ヶ月も経つ頃には宿泊施設のキッチンでのんびり料理しながらチームメンバーオススメの専門書を読むのを楽しんだり、週末にはまた別の人にオススメされた観光地に旅行へ行ったり、CSCSでの研究作業が順調だったのもあって、いつの間にか海外での研究生活を楽しむ自分が居た。

興味がある対象の研究開発ができて、目の前のことに集中できる環境って、素晴らしいですね。。。

特によく言われる「限られた時間で最大限の仕事を行う」という意識はチームメンバーとの議論でも強く伝わってきたので、この意識は日本に持ち帰ってからの研究にも活かしたいところです。

おまけ:週末の旅行

欧州に長期滞在する機会は今後あるかわからないと思ったので、週末には長距離バスでイタリアの首都(ミラノ)、特急で片道4時間でヴェネツィアに旅行に行ったり、電車でチューリッヒに行ったりした。文化的な土台が違うと街並みも観光の名所も違って面白いですね。特にヴェネティアは人生で最も行ってみたい場所だったので、旅行的な意味ではもう悔いがないです。

f:id:MetaVariable:20180405142429j:plainf:id:MetaVariable:20180405142330j:plainf:id:MetaVariable:20180405141722j:plain
欧州旅行(ミラノチューリッヒベネツィア

ISC2017のメモ

個人的なまとめ

  • 小電力効率GREEN500で東工大TSUBAME3.0が首位にランクイン
  • LINPACK性能TOP500首位は相変わらず中国Sunway Taihulight
    • 3位にスイスCSCSのPiz Daint
  • バイオインフォ関係のセッションが結構多い(初日Keynote, Session, Workshop, …)
  • LinuxContainer関連ワークショップあり(後述)

ISC2017とは

http://isc-hpc.com/id-2017.html

スーパーコンピューティングの国際会議。ISCはInternational Supercomputing Conferenceの略。規模的には北米で開催されるSCに次いで大きい。ドイツの会社が主催しているらしい。今回は(も?)ドイツのフランクフルトで開催された。

初日のKeynoteが生体ネットワークの数理グラフ的解析とゲノム・プロテオームへの応用事例とHPC基盤のお話だったり、High Performance Computing in Life Sciencesというライフサイエンスそのままなセッションがあったり、結構バイオインフォ関係のセッション多め。内容的には解析手法の紹介とかスクリーニングの紹介、ライフサイエンス業界のツールのプログラム品質問題とか。あとはクラウド利用のユースケース紹介が多くてわりと学びがあったのと、HPC領域でも結構クラウド利用が普及している実感が得られた。

Linux Container to optimise IT Infrastructure and High-Performance Workloads

一番興味があったのが最終日のLinux Container関連のワークショップ。スライド,Youtubeビデオが公開されているのであとから見直すのも楽ですごくいい。

qnib.org

HPC基盤上のコンテナ仮想化実現のためのOSS:Singularityの紹介、SingularityのKubernetes拡張の話、Dockerの動向、ゲノム解析センターのDockerによるワークフローオーケストレーション、などなど。

特にゲノム解析センターの話は、以前に自分のスライドの中で概要を引用した話だったので興味があった。

peerj.com

www.univa.com

ゲノム解析パイプラインのライブラリ管理は難しく、パイプラインを構成するツール毎のライブラリ依存性が複雑怪奇で、しかもそのバージョンに依存して出力結果に差異が発生するので、再現性を確保するために容易にバージョンを更新できない。バージョンを固定したいが、ずっと上げないわけにもいかない。 このレポートのシステムでは、Univa Grid Engineの提供するDocker機能とワークフロー管理Next Flowを使い、ジョブ投入スクリプト「使用したいツール(コンテナ)」「使用したいバージョン(タグ)」を指定してジョブを投げると、以下の感じに処理してくれる。

  1. ワークフロー管理ソフトが全体の進行管理
  2. ジョブスケジューラが計算資源を確保
  3. 確保されたノード上に指定されたコンテナが稼働
  4. スクリプト処理を実行、次のタスクへ

各バージョンはコンテナ毎にファイルシステムの差分で管理されているので省容量で楽、競合するライブラリの管理もしないでよい。

ただ、他のセッションでもMPI通信をガリガリ実行するHPCアプリのコンテナ運用話は扱われているのを見たことがない(ベンチマークはちらほらあるけど)ので、うーん。