Skip to content
Masahiro TANAKA edited this page Dec 18, 2015 · 19 revisions

Pwrakeとは

並列・分散実行が可能なRakeです。

特徴

  • Rakefileに記述されたワークフローを並列に実行する。
    • Rakefileの仕様は、Rakeと全く同じ。
    • 依存関係がないタスクを自動で並列に実行。
    • Rakeの並列タスク定義である multitask は不要。
  • 複数のノードからなる計算機クラスタを用いて、並列分散実行が可能。
    • 分散実行に必要な設定は、SSHでログインできること、および、NFS,Gfarm等でディレクトリが共有されていること。
    • Pwrakeが起動時に自動でリモートホストにSSHで接続する。デーモンの起動は不要。
    • オプションにより、リモートホスト名、並列数を指定。
  • Gfarmファイルシステムの活用
    • 計算ノードのストレージを活用することにより、ネットワークを経由しないローカルアクセスを可能にする。
    • 入力ファイルが保存されている計算ノードに、タスクを割り当てるスケジューリング。

インストール

ソースコード(tgz/zip)をダウンロードし、サブディレクトリに移って次のコマンドを実行:

$ ruby setup.rb

あるいは、RubyGems でインストール:

$ gem install pwrake

使い方

ローカルホストで最大4プロセスで並列実行:

$ pwrake -j 4

ローカルホストのコア数を最大プロセス数として並列実行:

$ pwrake -j

リモートホストを用いて並列実行:

  1. 実行ホスト間で、Rakefileのあるディレクトリを、NFSやGfarmのような分散ファイルシステムで共有する。
  2. 次のいずれかの方法で、実行ホストにSSHでパスフレーズなしでログインできるようにする。
  • ssh-keygen でパスフレーズを入力せずに作成した鍵を登録する
  • ssh-add でエージェントにパスフレーズを登録する
  1. 実行ホスト名と使用コア数を、ホストファイルに記述する:

     $ cat hosts
     host1 2
     host2 2
    
  2. オプション --hostfile-F でホストファイルを指定して、 pwrake を実行:

     $ pwrake --hostfile=hosts
    

その他のオプション

-L, --logfile [FILE]                [Pw] Write log to FILE
    --ssh-opt, --ssh-option OPTION  [Pw] Option passed to SSH
    --pwrake-conf [FILE]            Pwrake configuation file in YAML:
  • pwrake_conf.yaml : このファイルが当該ディレクトリに存在すれば、これを読んでオプションを設定する。これによりPwrakeオプションをコマンドラインに記述する手間を省くことができる。詳細は...

Gfarm 関連

Tested Platform

  • Ruby 2.2.2
  • Rake 10.4.2
  • CentOS 6.7

謝辞

このソフトウェアは、以下の支援を受けて開発されました。

  • JST CREST: 研究領域「ポストペタスケール高性能計算に資するシステムソフトウェア技術の創出」における研究課題「ポストペタスケールデータインテンシブサイエンスのためのシステムソフトウェア」
  • 文部科学省の科学技術試験研究委託事業による委託業務: 次世代IT基盤構築のための研究開発「e-サイエンス実現のためのシステム統合・連携ソフトウェアの研究開発(RENKEI)」
Clone this wiki locally