BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース JavaScriptに並列処理機能を追加する、IntelのJavaScript拡張機能が明らかに

JavaScriptに並列処理機能を追加する、IntelのJavaScript拡張機能が明らかに

原文(投稿日:2011/09/16)へのリンク

並列処理は今やモバイルデバイス上でさえ利用可能だが、JavaScriptの大部分は未だにシーケンシャルである。Intel Labsはマルチコアシステムを有効活用するJavaScript拡張機能に取り組み、Firefoxプラグインをリリースした。

このJavaScriptの並列拡張機能(コードネームRiver Trail)はIntel Labsのプロジェクトで、IntelのマルチコアCPUやそのVector Extensionの処理能力をWebアプリケーションへもたらそうと試みている。River Trailは、写真編集のような数値計算を駆使したアプリケーションを、ブラウザ内で動作させることを可能にするだろう。

Intel LabsのStephan Herhut氏は、既存のWebテクノロジーとの統合が主な検討対象だったと述べている。

River Trailを支えるテクノロジーで興味深いのは、既存のWebテクノロジーとのシームレスな統合です。River Trailはシンプルかつ強力なデータ並列プログラミングモデルでJavaScriptを拡張します。できるだけこの拡張機能が自然に統合されるよう、多くの努力が費やされました。我々の目的は、普通のJavaScriptを書くのと同じくらい簡単に、River Trailを使ったWebアプリケーションを書けるようにすることでした。さらに、River TrailがJavaScriptに埋め込まれれば、今後出てくるHTML5 APIともうまく組み合わせることができます。我々は特に、River TrailがWebGL(最近導入された、ブラウザで3次元のグラフィックスを表示させるためのJavaScript API)とうまく連携できるように気を遣いました。デモアプリケーションの一つに、4000以上の物体を使った物理シミュレーションがあります。これは計算をRiver Trailで、表示をWebGLで行っています。

River Trailは、実行時に低レベルのハードウェア抽象化層に翻訳される、決定論的データ並列構造を使ってJavaScriptを拡張する。複数のCPUコアとベクター命令の活用により、River TrailはシーケンシャルなJavaScriptに比べて著しく高速化されるとのことだ

具体的に言うと、River TrailはJavaScriptにParallelArray型を追加する。これは並列配列データを保持した読み取り専用のデータ構造で、コンストラクタやParallelArrayのプロパティメソッドの一つを呼び出した際に作られる。コンストラクタへの入力データは一般的なJavaScriptの配列や型付き配列、ParallelArrayの値を生成するのに使われる関数などだ。例えば、“new ParallelArray([1,2,3])”では、1、2、3を保持したParallelArrayが作成される。combinefiltermapreduceといった関数を使うことができ、それらは並列に動作する。それらに渡されたJavaScript関数はOpenCLにコンパイルされる。これらの関数はJavaScriptのサブセットを使うことができる。

River TrailはFirefoxのアドオンとして利用可能である。

著者(Dionysios G. Synodinos)はWebエンジニア兼フリーランスのコンサルタントで、Web技術に重点的に取り組んでいる

この記事に星をつける

おすすめ度
スタイル

BT