TCE: Tiny Cloud Engine

Tiny Cloud Engine (TCE) では、膨大なデータを用いる並列処理をなるべく簡単な記述でプログラミングし、ほどほどに効率的に計算を行うことを目的としたミドルウェアです。

TCE で何ができるのか

ファイルを入力しファイルを出力するようなプログラムをモジュールとし、ユーザーが依存関係を指定してモジュールを繋いだDAG型ワークフローを書いたときに、そのワークフローを確実に高速に実行します。基本的にはこれだけです。

主な特徴

  • バッチジョブエンジンとの協調(現在は Sun Grid Engine のみに退化中です。Torque/LSF/単純sshぐらいはサポート予定)
  • バッチジョブエンジンを介さない、高速なジョブスケジューリング
  • 命令的なワークフロー記述
  • ファイルサーバーを介さないファイル転送(一時的に未実装です)
  • プログラム実行中のノード故障に対するエラーリカバリー(一時的に未実装です)
  • 緩い資源管理モデルに基づくエラーリカバリー(一時的に未実装です)

一時的に未実装の意味

TCE version 0.x は依存ライブラリが多すぎて新規インストールにまる1日かかる設計になってしまいました。また、予想外の度重なる設計変更で、ソースコードがスパゲッティ化し、改良やデバッグが難しくなり、パフォーマンスも低下していました。

そこで、設計を一新してスクラッチから作ることにしました。言語も C++ から Python に変えました。それが TCE version 1.x 系列です。ソースコードサイズは一桁小さくなり、設計の見通しは明るく、機能拡張も簡単になりました。LPMに対応することで、インストールもずっと簡単になりました。

移行にともなって多くの機能が未実装になっていますが、それぞれ半日ぐらいのプログラミングで実装できる見込みですのでお待ち下さい。