A user-level extension scheme for a task-parallel script language

我々はメガスケールの並列処理を想定したタスク並列スクリプト言語MegaScriptを開発している. MegaScript は逐次/並列の外部プログラムをタスクとして扱い,これらを並列実行することにより 大規模並列性を引き出す.このような実行モデルにおいて,高性能化のためには処理系やタスクプロ グラムを,対象とするアプリケーションや計算環境に特化する必要がある.一方で,記述の容易さや コードの再利用性を高めるには,計算環境に依存せず,タスク間の独立性を確保することが望ましい. 本稿ではこれらを両立させるべく,ユーザレベルでの言語機能の拡張を可能とする枠組みとしてアダ プタ機構を提案する.アダプタには,実行システムに特化した拡張用コードを処理系やタスクから独 立した形で記述でき,機能の追加や動作の最適化など実行ごとのカスタマイズを簡潔に行える.本機 構をMegaScript 処理系へ組み込み,評価を行った結果,高い記述性を保ちながら実用上十分な性能 が得られることを確認した.

[1]  Shigeru Chiba,et al.  A metaobject protocol for C++ , 1995, OOPSLA.

[2]  David Thomas,et al.  Programming Ruby: the pragmatic programmer's guide , 2000 .

[3]  Kaizar Amin,et al.  GridAnt: a client-controllable grid workflow system , 2004, 37th Annual Hawaii International Conference on System Sciences, 2004. Proceedings of the.

[4]  David Flanagan,et al.  Ruby in a Nutshell , 2001 .

[5]  Mathilde Romberg The UNICORE architecture: seamless access to distributed resources , 1999, Proceedings. The Eighth International Symposium on High Performance Distributed Computing (Cat. No.99TH8469).

[6]  Akinori Yonezawa,et al.  Phoenix: a parallel programming model for accommodating dynamically joining/leaving resources , 2003, PPoPP '03.

[7]  Gregor Kiczales,et al.  Aspect-oriented programming , 1996, CSUR.

[8]  Brian Cantwell Smith,et al.  Reflection and semantics in LISP , 1984, POPL.

[9]  S. Matsuoka,et al.  MegaProto: 1 TFlops/10kW Rack Is Feasible Even with Only Commodity Technology , 2005, ACM/IEEE SC 2005 Conference (SC'05).

[10]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .