2010年11月26日、東京ミッドタウンホール&カンファレンスにおいて、MathWorksのMATLAB/Simulinkに関する総合テクノロジカンファレンス「MATLAB EXPO2010」が開催された。午前中は基調講演に充てられ、午後は7つのトラックに分かれてテクニカルセッションが同時進行して、様々なテーマでのセッションが行われた。今回は午前中に行われた基調講演の模様をレポートしたい。

基調講演はまずMathWorks Japan社長の梨澤利隆氏(Photo01)が挨拶のために登壇した。氏は日本法人設立後1年5カ月ほど経過したが、それまでの米国本社からのビジネス移管も大きな混乱も無く完了したこと、また今年に入って毎月カスタマサーベイを行っているが、良いスコアを貰っているという話をまず紹介。ついで昨今の経済状況に触れて、やはり日本は製造業が命であり、これに何らかの貢献が出来ればということでMATLAB EXPOを開催した、と述べた。

Photo01:MathWorks Japan社長の梨澤利隆氏

日本での活用事例を多数紹介

梨澤氏に続き、米MathWorksのRichard Rovner氏(Photo02)が登壇し、1本目の基調講演を行った。今回、Rovner氏の講演は日本を意識してか、日本のクライアントの事例が多く登場したものになった。まずモデルベース開発(MBD)のメリットに触れ、ミツバでMBDを採用した製品開発が大きな効果をあげた事(Photo03)、またスバルは10年に渡って次第にMBDの適用事例を増やしていることを紹介した(Photo04)あとで、調査会社によるレポートでもMBDの効果が明白に示されていることを示した(Photo05)。

Photo02:Richard Rovner氏(Vice President of Marketing)

Photo03:過去12カ月の事例、として最初に出てきたのがこちら

Photo04:最初はコントローラの開発に適用するところから、現在はテストにまで適用しているという

Photo05:とはいえ、ここからもMBDは「銀の弾丸」では無いことも見て取れる。別にMBDを適用すれば遅れが無くなるという単純な話ではないということだ

次がMATLABの技術計算能力に関する話である。IDCによれば、2009年→2020年で年間取り扱われるデータ量は44倍になり、その一方でそれを扱う人数は1.4倍にしかならないとしており(Photo06)、つまり2020年には1人が取り扱うデータ量が30倍になるという計算である。実際Global Hawkのテスト飛行では、一回あたり20GBものデータが収集されており、これを処理するとともに次回のテスト飛行の計画を立てるのに毎回1週間掛かっていたそうだ(Photo07)。

Photo06:1ZBは1TBの10億倍である

Photo07:RQ-4 Global Hawkはノースロップ・グラマンが製造した無人偵察機で、アメリカ海空軍で利用されている

こうしたデータの洪水に対応するのがMathWorksの並列関連製品で、マルチコアやクラウドを使った並列処理やGPUの利用、そして新しいSystem objectnなど様々なものがこれに対応する(Photo08)。GPUに関しては、R2010bでCUDAを正式にサポートしており(Photo09)、これを使っての高速化が可能である。氏によれば現在540万のCUDAユーザーがおり、これは昨年の4倍になるという。

Photo08:並列計算ツールは、マシン内の複数のCPUに処理を分散できるParallel、Computing Toolboxや、ネットワーク経由で外部の計算リソースを使うMATLAB Distributed Computing Serverが相当する。GPUやSystem objectsは後述

Photo09:Toolboxに含まれる関数を呼ぶのが一番手っ取り早いが効率は悪く、自分でCUDAコードを書いてMATLABから呼ぶのが一番効率的だが手間は掛かる。ということで、ニーズに合わせてこのあたりを自由に構成できるとしている

またSystem objectsまわりも変更された。バッチ処理ならば例えばPhoto10の様に簡単だが、ファイルではなくストリーム処理となるといきなり記述が面倒になる(Photo11)。これがR2010aでは大幅に改善された(Photo12)。R2010bではこれがさらに改善されているという(Photo13)。具体的な例として氏はブブセラを取り出しながら、ワールドカップの中継の際にブブセラの音がほとんどのTV中継で邪魔にならなかったのは、こうしたストリーム処理でブブセラの音をリアルタイムで消すことに成功したからだという話を紹介した。

Photo10:これはファイルから入力された音声データにフィルタを掛けて出力するという単純なもの

Photo11:要するにストリームを適当な長さで切り、その単位で処理をして次のストリームを取り込み、という繰り返しになる

Photo12:初期設定がちょっと面倒だが、暗黙のステート/インデックスが利用可能になった

Photo13:R2010bにおける主要な変更点

Photo14:突然登場したブブセラ