C言語コードの高速化を支援する「OSCAR Multicore Suite」をベータ公開
株式会社フィックスターズ
4並列化で3.4倍のソフト性能向上を自動で
ソフトウェアの並列化サービス・コンサルティングをするオスカーテクノロジー株式会社(本社:東京都港区、代表:三木 聡)は6月22日、早稲田大学の研究成果である並列化技術を組み込んだソフトウェア「OSCAR Multicore Suite」をベータ公開しました(https://www.oscartech.jp/product)。C言語で開発されているソフトウェアの並列化を総合的に支援するソフトウェアスイートです。ベータ期間中はどなたでも無料でお使いいただけます。
OSCAR Multicore Suiteによる並列化解析結果イメージ
オスカーテクノロジーは、早稲田大学 理工学術院の笠原博徳・木村啓二研究室 の研究成果を基にした組み込み向け自動並列化コンパイラ「OSCARTechコンパイラ」などを提供してきました。OSCAR Multicore Suiteは、既存製品を基に大幅に機能を強化したソフトウェアスイートです。組み込みソフトウェアに限らず、C言語で開発される幅広いプログラムの高速化を総合的に支援します。
IoT(Internet of Things)やAI(人工知能)の普及で、ハードウェアの性能を使いこなす並列処理ソフトウェアのニーズが高まっています。数千円で販売されている小型コンピュータでもマルチコアのCPUが普及しており、並列計算に優れたGPU(画像処理プロセッサ)が使えない環境でもソフトウェアの並列化によって性能を引き出しやすくなっています。大規模な計算基盤でも、計算したい問題の種類や扱いたいデータによっては、GPUではなくCPUを使った並列処理のニーズが根強くあります。
一方で、開発したソフトウェアを並列処理できるように改修するには、高い技術力と時間がかかるのが現状です。OSCAR Multicore Suiteは、こうしたソフトウェアの並列化を自動化し、専門家による改修作業を支援することで、並列処理ソフトウェア開発の総合的な効率化を実現します。
製品構成
OSCAR Multicore Suiteは3つの機能を有するソフトウェアスイートです。いずれもC言語で開発されたソフトウェアのソースコードを対象に使えます。
● OSCAR Multicore Estimator
並列化のためのコード解析機能です。ソースコードを静的解析し、様々なコンピューティング環境での実行時間を予測します。予測する実行時間はマルチコアCPU上で並列動作させた場合も計算でき、並列化の可否や計算のボトルネックなどを解析して総合的なレポートを出力します。
● OSCAR Multicore Profiler
プログラムの処理時間を実測するための支援機能です。動的なプロファイル取得のためのコードを自動的に挿入し、様々な処理時間の計測を支援します。時間測定のオーバーヘッドが最小となるように、プロファイル取得のコード挿入位置を自動で判定します。
● OSCAR Parallel Compiler
シングルスレッドで実行されるソースコードを、マルチコア環境に応じたコードに変換する自動並列化コンパイラです。よくあるループ処理に限定される自動並列化だけでなく、マルチグレイン並列化と呼ばれるタスクレベルでの自動並列化を実現します。
ループ処理に限定される並列化とOSCAR Parallel Compilerが実現するマルチグレイン並列の比較
研究成果と製品性能
OSCAR Multicore Suiteは、早稲田大学の笠原・木村研究室が世界で初めてタスクレベルでの並列化解析を実現(文献1)した研究成果であるOSCAR(*) Parallelizing Technologyに基づき開発されています。ループ処理が主体となるソフトウェア(文献2)だけでなく、条件分岐が多くループ処理の少ないプログラムにも適用できます(文献3)。このソフトウェアスイートを利用することで、例えば並列処理ソフトウェアの開発期間を短縮して開発コストを削減するといったメリットが得られます。
(注*)OSCAR:Optimally Scheduled Advanced Multiprocessor
ソフトウェアの並列化には高い技術力と長い時間がかかるため、多くのケースで予め実現したいソフトウェア機能を開発してからスペシャリストが並列化改修する開発手順が取られています。OSCAR Multicore Suiteを使うと、例えばスペシャリストが不在でもParallel Compilerで自動並列化を試しながら開発が進められます。既存のソフトウェアを並列化することでどの程度の性能が期待できるかMulticore Estimatorで見積もったり、スペシャリストによる並列化作業をMulticore Profilerで効率化したりもできます。
自動で安価にソフトウェアの並列化が実現できるため、プロトタイプ開発や手動での高速化改修をするほどの予算がないソフトウェア開発でもコンピュータの性能を引き出せるようになります。例として、バイオ分野で顕微鏡画像の加工に使われているオープンソースソフトウェア「TeraStitcher」にOSCAR Multicore Suiteを適用しました。Multicore EstimatorとProfilerで計算処理のボトルネックとなる関数を解析し、Parallel Compilerで並列化したところ、4並列化で3.42倍の高速化ができました。並列化の作業時間は実行ファイルの生成を含めて約7分でした。
顕微鏡画像の加工ソフト「TeraStitcher」の自動並列化結果。4並列化で3.42倍の高速化に成功
オスカーテクノロジーはベータユーザーのフィードバックを受けてOSCAR Multicore Suiteに改修を加え、商用ソフトウェアとしての提供を予定しています。
参考文献
文献1:笠原 博徳, 合田 憲人, 吉田 明正, 岡本 雅巳, 本多 弘樹, ``Fortranマクロデータフロー処理のマクロタスク生成手法'', 電子情報通信学会論文誌, D-1 Vol.75, No.8 pp.511-525, Aug.1992.
文献2:Mamoru Shimaoka, Yasutaka Wada, Keiji Kimura, Hironori Kasahara, "Coarse Grain Task Parallelization of Earthquake Simulator GMS Using OSCAR Compiler on Various cc-NUMA Servers", 28th International Workshop on Languages and Compilers for Parallel Computing(LCPC),Sep.2015.
文献3:Dan Umeda, Takahiro Suzuki, Hiroki Mikami, Keiji Kimura, Hironori Kasahara, ""Multigrain Parallelization for Model-based Design Applications Using the OSCAR Compiler", Proc. Of The 28th International Workshop on Languages and Compilers for Parallel Computing (LCPC), Sep.2015.
オスカーテクノロジー株式会社について
2013年に設立され、2020年に株式会社フィックスターズの傘下に入ったオスカーテクノロジー株式会社は、早稲田大学の研究者が発明したOSCAR Parallelizing Technologyの商用化を目指し、同テクノロジーを体化した特許(**)の専用実施権および同研究者が開発したOSCAR並列化コンパイラの非独占的利用権を取得してマルチコアプロセッサ上で動作するソフトウェアを並列化することによる、徹底的な高速化・省電力化を実現するソフトウェアOSCAR シリーズを開発しています。
(注**)以下の3件の特許
1)特許第6319880号「並列性の抽出方法及びプログラムの作成方法」
2)特許第6600888号「並列化コンパイラ、並列化コンパイル装置、及び並列プログラムの生成方法
3)US 10,698,670「PARALLEL PROGRAM GENERATING METHOD AND PARALLELIZATION COMPILING APPARATUS」