疎行列に対応した行列言語コンパイラCMCの開発
スポンサーリンク
概要
- 論文の詳細を見る
数値計算プログラムの記述を容易にするためにMATLABをはじめとする行列言語が開発され,ラピッドプロトタイピング用途等に広く利用されている.行列言語プログラムはインタプリタで実行される場合が多いが,処理の高速化を目的とし,行列言語コンパイラを用いて静的解析により余分な動的処理を排除して Fortranなどのコンパイル言語記述に変換する手法が検討されつつある.しかしながら,大規模数値計算コード記述を想定して疎行列の扱いを考慮した取り組みはなかった.これに対し我々は,密行列と疎行列を区別なく扱うことを可能にする行列言語コンパイラCMCを開発した. CMCはMATLABに基づくコードをFortran 90に変換することができ,対角,三角などの行列形状情報の検出機能とそれに基づく最適化機能も備える.試作した処理系をSOR法やCG法のMATLAB コードに適用して実測したところ,係数が疎行列の大規模コードにおいて,SOR法で7倍以上,CG法でも3倍以上,MATLAB実行環境よりも高速に実行でき,行列言語をベースとした大規模数値計算コード開発の可能性が確認できた. Matrix languages such as MATLAB have been widely used for numerical computations, especially as rapid prototyping tools. Those systems are basically interpreted to support typeless and flexible programming environments. Due to this fact, unfortunately, execution speed of a program written in a matrix languages is limited compared to a code in a general-purpose compiled language like Fortran. Recently, studies have revealed that the translation of matrix language scripts into programs written in compiled language would be a promising approach for high-speed computation with matrix languages. However, none of existing compilation systems seems to be able to handle sparsity of matrices attaining high-performance of translated codes. In this paper, we propose a compiler for large-scale sparse matrix computations, named CMC. Distinguishing features of CMC include the functionality to utilize sparse data structures and the optimization facility based on the detailed information of shapes of matrices, e.g., triangular, diagonal. CMC translates annotated MATLAB scripts into Fortran 90 programs. Experimental results show that the translated SOR and CG programs by CMC run seven times and three times, respectively, as fast as MATLAB interpretation, which confirms our method's effectiveness.
- 情報処理学会の論文
- 2004-10-15
情報処理学会 | 論文
- View Schemas for XML Access Control (夏のデータベースワークショップDBWS2004)
- 異種クライアント環境における連続メディアデータの分割放送型スケジューリング手法
- 商品位置情報を活用したショッピング支援エージェントシステムの構築
- 遠隔商品管理向けマルチエージェントシステムの構築
- 細胞モデルの連立常微分方程式に対する可解要件と数値計算手順の解析