第4回ワークフローミートアップまとめ ============================= # プログラムやスクリプトを書き始めるときの TIPS かきはじめるときに、最初にやっておくとよいこと ## ruby(に限らずスクリプト系)ヘルプメッセージを出すようにする * [cwl\-inspector/cwl\-inspector at 83ca399998b3effdb2d2df56334560eff3da4c56 · tom\-tan/cwl\-inspector](https://github.com/tom-tan/cwl-inspector/blob/83ca399998b3effdb2d2df56334560eff3da4c56/cwl-inspector) * `optparse` を使ってスクリプトをかきはじめている ## シェルスクリプトをかきはじめるときに、最初に想定される引数の処理を書いておく * [pfastq\-dump/pfastq\-dump at master · inutano/pfastq\-dump](https://github.com/inutano/pfastq-dump/blob/master/bin/pfastq-dump) * だいたいこの形式で書き始めるとよいとのこと # dockerコンテナ内で cwltool でDockerRequirementsでdockerを動かしたいとき `requirement` に `docker` があるとき。 ## 解決策1 いかの2つをやればよい - `-v` でdocker.sockを、cwltool入dockerコンテナに渡す - cwltool入docker の中にも、dockerコマンドをいれておく必要がある ### node について `JavascriptRequirement` があるときは、 `node` が必要になるので、 - `node` を入れておいてない場合は、`node` のdockerコンテナをpullしてくる # docker-machineが便利 docker-machineコマンドがあればdriverを指定するだけで、 docker入りの仮想マシンをいかのようなプラットフォームで作れる。 `az` コマンドなどはいれておかなくてよい。 - AWS - Azure - GCP - vagrant などなど # まとめ ## 石井 ### 紹介したスライド。 非常によいことが書いてあるようにおもっているが、 全部を一人でやらなければいけないような人たちには、 この問題の本質が、すぐには伝わりづらいかもしれない。 - [機械学習プロジェクトを頑健にする施策 ML Ops Study \#2 // Speaker Deck](https://speakerdeck.com/takahiko03/ji-jie-xue-xi-puroziekutowowan-jian-nisurushi-ce-ml-ops-study-number-2) ### 計測したデータのダンプ 現在実験をしているデータのダンプをおこなっている - mysqlに関しては、ダンプができるようになった - prometheus に関しては、要調査 将来的には、Go言語で書いて、ポータビリティをあげたい ### 次回以降の予定を調整 - 6月 - [CWL-metrics](https://inutano.github.io/cwl-metrics/)の話(大田さん) - Accumulating container resource usage with workflow metadata - [awsub](https://github.com/otiai10/awsub)の話(落合さん) - Command line tool to run a batch jobs with ETL framework on AWS or other cloud computing resources - 7月 - 8月 ## 大田 - cwltool を走らせるとコンテナの消費リソースを取ってくれる [CWL-metrics](https://inutano.github.io/cwl-metrics/) リリースしたよ、つかってみてね - これを使っていろいろのCWLワークフローのメトリクスを取っていくぜ - このワークフローにこれくらいの入力サイズのデータを突っ込むとどれくらいメモリを食うのか、みたいなのに答えたい - これに食わせるワークフローを整備してはどんどんメトリクス取っていくモード - [pitagora-cwl](https://github.com/pitagora-galaxy/cwl) - これに入ってるツールのCWLを綺麗に書き直す = javascript requirement を外す - 走らせるために必要なサンプルデータとかを整える - 複数の入力に対してループさせるためのシェルを書く - こんな感じ - https://github.com/pitagora-galaxy/cwl/tree/master/tools/fastq-dump - https://github.com/pitagora-galaxy/cwl/blob/master/tools/fastq-dump/test/fastq-dump.sh ## 落合 - 進捗あり ## 後藤 - [BioRuby](https://github.com/bioruby/bioruby)のissueとpull requestを確認 ## 末竹 ``` 最近、 - yml で workflow っぽいのを書いて - それぞれの step を docker container にし - docker-compose で立ち上げて - swagger で書いた API と postgres で job 自体を管理して - API をラップした CLI を作る ってことを bioinfo と機械学習それぞれで、、、 ``` のやつの、機械学習のそれを作っていた。 - 機械学習は、command line tool が殆どないため、使用者は実行したいコードをガッツリ書かなければならない。 - そのため、CWL のような input, output をあまり明確に workflow yaml で書く必要がなく、実行したいコードの部分で input, tmp, output を扱ってあげればいい。っていう知見。 - Docker-compose の python SDK がないから欲しいなぁって思ってる。 - 理研の上司が、RAIDEN で溢れた機械学習の job をそのまま cloud に流せるようなシステムがめっちゃ欲しいらしい、、、、 ## 丹生 - SRX ベースのワークフローエンジンをいじっていた - これまでの挙動 - 内部で複数の SRX 処理系が連携して各ステップが実行される - 各 SRX 処理系のログはファイルとして保存される - fluentd で、ログを集約して標準出力に表示 - 課題 - ログが完全に時系列順になっていない! - 複数ファイルを tail プラグインで集約しているが、異なるログファイルのログは必ずしも時系列順に並ばない - 解決策 1. 一旦標準出力にすべて出す 2. まとめて一つのファイルにリダイレクト 3. fluentd で出力を加工 - conformance-test ``` 5 tests passed, 79 failures, 47 unsupported features ``` - これからの目標 - SRX のログを時系列にできたので、これを加工してワークフローとしてのログを出力したい - CWL-metrics 対応したい ## 池田 cromwellを利用したcwlの実行 (と言っても、現状ではcwltoolが必要。将来は単独で動作するようになるはず) - docker を利用して cromwell の実行環境を作成 - [0. cromwell でCWLを実行してみる](https://qiita.com/percipere/items/42ed510ef77d26e649e3) - cromwell を利用して cwlのサンプルを実行 - [1. cromwell でCWLを実行してみる](https://qiita.com/percipere/items/9a9c694cc7ef9fd4a67a) - cwlが動作するcromwellの実行環境のDokcerfileを作成 - [2. cromwell でCWLを実行してみる](https://qiita.com/percipere/items/c5409183bc7770e5c66e)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up