StreamIt-並列プログラミングのための新しい言語

マサチューセッツ工科大学の専門家は、新しい並列プログラミング言語StreamItを開発しました。 この言語は主に、ストリーミングビデオやオーディオなどのストリーミングアプリケーションのプログラミング、モバイル通信システム、リアルタイムでの情報ストリームの暗号化と復号化に重点を置いています。 詳細情報は、StreamItプロジェクトのWebサイトで入手できます。



言語の開発は数年間続いています。 現在、サイトからStreamIt 2.1のコンパイラをダウンロードできます。 また、 Exlipse開発プラグインをダウンロードしてインストールし、Eclipse環境で開発を行うこともできます。

StreamItの開発イデオロギーはほぼ次のとおりです。 プログラマーは、1つの入力と出力を持つブロックで構成されるフローグラフを作成し、ブロックアトムの機能と複合ブロックの構造を記述します。 コンパイラは各ブロックのコードを生成し、コンピューティングシステムのターゲットアーキテクチャのフローグラフを最適化します。

コンパイラアルゴリズムは、データフローの概念に基づいています。 データは、関数で構成されるパイプラインを通過します。 コンパイラーは、どの関数が互いに独立しているかを判別し、それらの実行を異なるプロセッサーに配置します。

現在の実装では、コンパイラは出力にJavaコードを生成します。

構文上、この言語はCおよびJavaに似ています。 コードスニペットの例を次に示します。



float-> float filter LowPassFilter(int N、float freq){

float [N]ウェイト。

init {

重み= calcWeights(N、freq);

}

作業ピークNポップ1プッシュ1 {

float結果= 0;

for(int i = 0; i <weights.length; i ++){

結果+ =重み[i] *ピーク(i);

}

push(結果);

ポップ();

}

}



All Articles