Skip to main content
QUICK REVIEW

[論文レビュー] Simplifying Complex Software Assembly: The Component Retrieval Language and Implementation

Eric L. Seidel, Gabrielle Allen|arXiv (Cornell University)|Sep 7, 2010
Distributed and Parallel Computing Systems参考文献 1被引用数 5
ひとこと要約

本論文は、異種のバージョン管理システム(Git、Subversion、CVSなど)を跨いで分散型ソフトウェアコンポonentを指定および自動化して取得するためのドメイン固有言語(DSL)であるコンポonentリトリーブ言語(CRL)を紹介する。GetComponentsツールはCRLを実装し、CactusフレームワークおよびEinstein ToolkitのTeraGridリソースを対象として、複雑な科学的ソフトウェアの構築を簡素化した。これにより手動での設定作業が削減され、多様なHPC環境において再現可能でスケーラブルなコードデプロイメントが可能になった。

ABSTRACT

Assembling simulation software along with the associated tools and utilities is a challenging endeavor, particularly when the components are distributed across multiple source code versioning systems. It is problematic for researchers compiling and running the software across many different supercomputers, as well as for novices in a field who are often presented with a bewildering list of software to collect and install. In this paper, we describe a language (CRL) for specifying software components with the details needed to obtain them from source code repositories. The language supports public and private access. We describe a tool called GetComponents which implements CRL and can be used to assemble software. We demonstrate the tool for application scenarios with the Cactus Framework on the NSF TeraGrid resources. The tool itself is distributed with an open source license and freely available from our web page.

研究の動機と目的

  • 数百の分散コンポonentが異種のバージョン管理システム(Git、Subversion、CVSなど)に散在する複雑な科学的ソフトウェアを、信頼性と再現可能性をもって統合する課題に対処すること。
  • スーパーコンピュータにシミュレーションコードをデプロイする際、膨大な手作業による設定作業に直面する初心者の研究者や開発者の負担を軽減すること。
  • 複数のリポジトリおよびアクセスプロトコル(HTTP/HTTPS、SSHなど)を跨いで、ソフトウェアコンポonentのチェックアウトおよび更新を自動的かつ信頼性高く実行できること。
  • 将来的な機能拡張、例えば依存関係管理、日付によるバージョン指定、科学的再現性のためのプロバンセンス追跡のための拡張性を備えること。
  • 既存の科学的フレームワーク(CactusやEinstein Toolkitなど)と統合可能なプロダクション用途に適したオープンソースツール(GetComponents)を提供すること。

提案手法

  • コンポonentメタデータ、ソースリポジトリの位置、アクセス方法(公開/非公開)、バージョニング方式を指定するための宣言型言語としてのコンポonentリトリーブ言語(CRL)の設計。
  • CRLファイルを解釈し、Git、Subversion、CVS、Darcs用のネイティブAPIまたはコマンドラインツールを用いて取得を自動化するGetComponentsツールの実装。
  • HTTP、HTTPS、SSHなど複数のアクセスプロトコルおよびバージョニングシステムをサポートし、プラットフォームやプロトコルを越えたコンポonentの取得を可能にした。
  • 複雑なコンポonent依存関係や大規模フレームワークにおける論理的グルーピングを管理するため、オプションの!INCLUDEディレクティブを備えたモジュラー構成構造の採用。
  • TeraGridおよびBlue Watersリソース上で、エンドツーエンドのチェックアウトおよび更新ワークフローを実証した、既存の科学的ソフトウェアスタックへの統合。
  • シミュレーションで使用された正確なコンポonentバージョンを記録するCRLファイルを生成することで、Cactusエコシステムにプロバンセンス追跡を拡張した。

実験結果

リサーチクエスチョン

  • RQ1数百の分散コンポonentが異種のバージョン管理システムに散在する科学的ソフトウェアフレームワークを、信頼性と再現可能性をもって、異種のバージョン管理システムを跨いで統合することは可能か?
  • RQ2多様なリポジトリおよびアクセス方法を跨いでコンポonent取得の仕様を明確に、拡張可能で保守可能な形で記述できる言語設計とは何か?
  • RQ3一つのツールが、公開および非公開リポジトリを含め、複数のバージョン管理システムを跨いでコンポonentの取得および更新を自動化できるか?
  • RQ4大規模な科学的シミュレーションにおけるプロバンセンスと再現性は、自動化されたコンポonentの追跡および構成によりどのように向上できるか?
  • RQ5TeraGridのような実際のHPC環境において、自動化されたコンポonent取得システムのパフォーマンスおよびスケーラビリティ特性はどのようなものか?

主な発見

  • GetComponentsは、TeraGridのLONI、NCAR、NCSA、Purdue、TACCなど、多様なリポジトリ(Git、Subversion、CVS、Darcs)から100以上のコンポonentを正常にチェックアウトおよび更新した。
  • Einstein Toolkitをソースから構築する平均所要時間は約9分であり、大規模なデプロイメントの実現可能性を示した。
  • HTTP/HTTPSおよびSSHを含む複数のアクセスプロトコルを正しく処理し、公開および非公開リポジトリへのアクセスを両方サポートした。
  • NCARのFrostスーパーコンピュータに古くなったSubversionが搭載されていたという既知の問題がテスト後に特定され、修正された。これにより、実環境の制約下でも本ツールの堅牢性が確認された。
  • CRL言語およびGetComponentsは、CactusおよびEinstein Toolkitエコシステムに正常に統合され、コミュニティワークフローでのプロダクション利用が確認された。
  • 日付によるチェックアウトや!INCLUDEによる依存関係対応構成といった、将来的な拡張機能が、再現性および保守性の向上を目的として現在開発中である。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。