MathWorksは11月18日、同社が2009年9月にリリースしたMATLAB および Simulink の新機能、ならびにアップデートおよびバグフィクスが行われた83製品を含んだ「Release 2009b(R2009b)」に対応したマルチコアコンピュータおよびコンピュータクラスタ上での並列処理の実行ツール「Parallel Computing Toolbox(PCT)」の次世代バージョン「Version 4.2」を発表した。

MathWorks Japan 社長の梨澤利隆氏

同発表に際し、出席した同社日本法人であるMathWorks Japan 社長の梨澤利隆氏が同社が2009年7月より設立した日本法人の状況を説明した。「(2009年)6月までは、代理店だったサイバネットの頑張りにより、顧客が増加してきたが、それは直接やるようになってからも変わっていない」(同)とし、「直接やり取りするようになり、マーケティング戦略に力を入れてきた。7月、10月とイベントを行うなど、直接的なやり取りによる、より高いレベルでのサポートなどを実感してもらえていると感じているほか、米国からの情報をよりスピーディに提供することで、こちらが逆に不安になるほどの引き合い状態となっている」(同)と事業の成長が続いていることを強調した。

MathWorks Japan,AE テクニカルコンピューティング部 アプリケーションエンジニアの吉田剛士氏

また、同製品ならびにR2009a/R2009bの概要については、同社AE テクニカルコンピューティング部 アプリケーションエンジニアの吉田剛士氏が解説を行った。

PCTは、マルチコアのPC1台で並列処理を実行するためのツール。クラスタによる演算処理などは別に「Distributed Computing Server」が担い、それぞれが連携することで、より大規模な並列処理が実現されることとなる。吉田氏は、「ツールの開発にあたっては、なるべく複雑な作業が必要ないことを目標として、プログラミングの専門的な勉強をしたり、他のプログラミング言語に習熟しないでも、扱うことが可能になるよう配慮している」と、その使いやすさを強調する。

MATLABによる並列処理製品のイメージとPCTに該当区分

PCTの観点から、R2009a/bで強化された点としては3点あるという。まず、MATLAB専用の計算プロセスが"4 workers"から"8 workers"へと拡張された点が挙げられる。つまり、これまで4コアで4プロセスを実行していたところが、最大8コアで1コア1プロセスの処理を実行することが可能となり、計算速度が向上した。

"4 workers"から"8 workers"へと拡張したことで処理効率が向上

2点目としては、PCDとの連携するプロダクトが増加した点が挙げられる。R2009aから、Simulinkの「Real-Time Workshop」「Real-Time Workshop Embedded Coder」「Simulink Design Optimization」などが直接的にサポートされたほか、R2009bからはMATLABの通信アプリケーション構築用ライブラリ「Communications Toolbox」や、リサンプリングの高速化ツール「Statistics Toolbox」がサポートされるようになった。

これにより、これまで別ツールを起動し、行っていた最適化処理を1行、コードを変更するだけで並列処理で行えるようになったり、Simulinkのユーザにもより簡易に並列処理による最適化を実行する環境が整ったこととなった。

左の画面のような最適化をしたい場合、1行コードを変換するだけで(中央)並列処理が可能となる。なお、右の画像は並列処理状態を示すタスクマネージャ(5つ起動しているのは、内4つが仮想状態として起動しており、実際の処理をそこで行うため)

3点目の強化ポイントとしては、分散配列の機能強化が挙げられる。これまでは並列処理用に別ウィンドウを立ち上げ(パラレルコマンドウィンドウ)、そこで処理を実行させる必要があったが、今回からは、分散配列の関数「distributed」を、通常のMATLABのコードに加えることで、その他の面倒なコードの書き換えなしに、基本的には分散配列へと処理を変更することが可能となる。また、応用として分散配列を行った結果を可視化することなども可能だ。

専用関数を活用することで、コードの変更なしで1台~複数台の処理を可能にする

並列処理性能図(横軸がデータの作成数、縦軸が計算時間)

データ回収の作業をしないで、直接的にデータを可視化することも可能となった

なお、並列処理に参加させる台数に関してはユーザ側で指定が可能だが、大規模クラスタなどでの活用時のスケジュール処理などはサードパーティ製のスケジューラなどを活用する必要があるとしている。