Webでとにかく高速に計算したい やまだです。Webでとにかく高速な計算を行うために人生の何%かを使っています。 前回はJavaScriptから直接SIMD.jsを呼びましたが今回はEmscriptenを使用し、C言語からSIMD命令を呼び出してみます。 題材としては定番ですがマンデルブロ集合を使用します。 マンデルブロ集合は以下の漸化式で計算が可能でしばしば並列演算の課題としてとりあげられます。 z は複素数なので実部と虚部をXY平面に表すと以下のようになります。 Emscriptenを使う 今回はWebでということでC言語のコードをJavaScriptコードにコンパイルするEmscriptenを使用します。 Emscriptenを使用するとasm.jsを利用した最適化をかけることができるため単純にJavaScriptで実装した時よりも高速になることがあります。 Emscriptenでは
![EmscriptenからSSEとかpthreadを使って爆速にする](https://cdn-ak-scissors.b.st-hatena.com/image/square/da71430a17afd3602d8c64f7c88004852af48b18/height=288;version=1;width=512/https%3A%2F%2Fwww.klab.com%2Fjp%2Fassets%2Fimg%2Fogp-image.png)