MathWorksは、MATLABおよびSimulinkプロダクトファミリのリリース2011a(R2011a)を発表した。同リリースでは、次世代のコード生成製品である「MATLAB Coder」、「Simulink Coder」、および「Embedded Coder」が導入されたほか組み込みソフトウェア検証製品「Polyspace」を含めた80製品がアップデートされた。

MATLAB R2011aでは、従来のリリースに比べ、MATLAB における多くの線型代数関数の性能向上が図られたほか、Optimization Toolboxにおける二次計画法のための大規模な内点法ソルバー、Parallel Computing Toolboxを使用して、MATLAB Compilerで生成されたアプリケーションとコンポーネントで最大8個のローカルワーカーが使用可能となった。

また、Financial Toolboxにおける粗利益とトランザクション コストを使用したオブジェクト指向ポートフォリオ最適化ソルバーやEconometrics ToolboxにおけるEngle-GrangerおよびJohansenの共和分検定とVECパラメータの推定のほか、MATLABとSimulinkのために新システムツールボックスとして、Signal Processing Blockset とFilter Design Toolboxの機能を組み合わせた「DSP System Toolbox」、Communications ToolboxとCommunications Blocksetの機能を組み合わせた「Communications System Toolbox」、Video and Image Processing Blocksetの機能に新しくコンピュータビジョンアルゴリズムを追加した「Computer Vision System Toolbox」、位相配列信号処理システムの設計、シミュレーション、解析のためのアルゴリズムやツールを提供する「Phased Array System Toolbox」がそれぞれ追加された。

一方のSimulink R2011aは、Simulinkにおけるモデル間のシミュレーション結果を比較するためのSignal Logging Selector、Simulink Report GeneratorにおけるXMLテキスト比較からSimulinkモデルを結合する機能、Simulink HDL Coder、EDA Simulator Link、およびxPC TargetにおけるXilinxデバイス向けのFPGA インザループ、カスタマイズ可能なI/O、およびボードサポート、SimDrivelineにおけるSimscape言語を使用したカスタムコンポーネントの作成、Simulink Design Verifierにおいて、Polyspaceテクノロジーを使用したオーバーフローおよびゼロ除算の設計エラーを自動検出などの機能が追加および強化された。

こうした追加、強化された機能のほか、読み取りかつ移植可能なC/C++コードをMATLABアルゴリズムから直接生成する新製品として「MATLAB Coder」も提供される。

MATLAB Coderは、従来同社が提供していた「Embedded MATLAB feature of Real-Time Workshop」にコード生成用GUIやライブラリの拡張などを加えたもので、これまでMATLBでアルゴリズムを生成、エンジニアが手作業でそれを確認しながらC/C++へコーディングするといった手間のかかった作業を簡易化することが可能となる。

左が従来のアルゴリズムからCコード生成のワークフロー。MATLAB Coderを用いるとCコード生成が自動で行われるので、ワークフローの簡略化が可能となる

MathWorks Japan インダストリーマーケティング部シニアマーケティングスペシャリストである柴田克久氏

MathWorks Japan インダストリーマーケティング部シニアマーケティングスペシャリストである柴田克久氏は、「MATLABの方でアルゴリズムや仕様を固めて、自動でコードを生成させることが可能となる。ファイルの種類もツール側で選択することが可能となった。これは、従来、C/C++のプログラマがアルゴリズムを理解しないままプログラムを組んだり、仕様に応じてアルゴリズム変更したりするのを自動化しようという試み。MATLABでリファレンスとなる仕様管理などもできるようになり、もっともコストや時間がかかるMATLABからC/C++コードへの変換およびそれに付随する検証テストの短縮が図れるようになる」と説明する。

また、Microsoft Visual Studioなどのサードパーティのツールに生成されたコードを取り込んで確認したり、再コンパイルしたりすることも可能なほか、MEXファイルを活用することで、通常のMATLABとMECで実行した場合の速度比較などを見ることができたり、MATLABの可視化機能を用いることで、Cコードの検証もできるようになる。

MATLAB Coderを用いることで、MATLABで作成したアルゴリズムをC/C++に変換し、MATLABアルゴリズムとの整合性に対する検証などの手間を省くことが可能となる

さらに、今回のMATLAB Coderでは、従来の自動生成機能の拡充のほか、if文などのプログラミング要素などにも対応し、より設計エンジニアが利用しやすい形へと関数などの対応などが図られている。

このほか、MATLAB Coderと併せて、Simulink CoderとEmbedded Coderも提供が始まっている。Simulink Coderは従来のReal-Time WorkshopにStateflow Coderを統合したもので、Simulinkモデルやブロック遷移図などからコードを生成することが可能となる。

MathWorksのコード生成製品の新旧比較。従来の各種ライセンスは統合され3種類にまとめられることとなる

一方のEmbedded Coderは、従来のReal-Time Workshop Embedded CoderにEmbedded IDE LinkとTarget Support Packageを統合させたもので、IDEの連携や特定の評価ボードへの実装自動化といった組み込み分野向けにコード生成だけではなく、そこに付加価値を加えたものとなっている。

なお、C/C++コードの自動生成については、MATLAB Coderが必須であり、使用環境に併せてSimulink CoderもしくはEmbedded Coderを組み合わせた利用となる(MATLAB Coder+Simulink Coder、MATLAB Coder+Embedded Coderといった利用も可能)。従来のReal-Time Workshopを利用しているユーザーはアップグレードの対象となるが、新規で購入する場合、MATLAB Coderは75万円から、Simulink Coderは45万円から、Embedded Coderは75万円から、となっている。