「エンタープライズ号も使っていた」――MATLABを生んだCleve Moler氏が講演:組み込み技術 モデルベース開発
技術計算ソフトウェア「MATLAB」を生んだ開発者で、MathWorks会長兼チーフサイエンティストを務めるCleve Moler氏が来日。日本の3つの大学で講演を行った。同氏が語ったMATLABの起源と進化とは……
技術計算ソフトウェアとして広く利用されているThe MathWorks(以下、MathWorks)の「MATLAB」。エレクトロニクス技術者にとっては、モデルベース開発環境「MATLAB/Simulink」のプログラミングツールとしての方がイメージしやすいかもしれない。
このMATLABを開発したのが、MathWorksの創設者であり、現在も会長兼チーフサイエンティストを務めるCleve Moler氏だ(図1)。同氏は、2011年10月に来日し、京都大学、慶應義塾大学、筑波大学の3カ所で「MATLABの起源と進化」と題して講演した。これらのうち、慶應義塾大学での講演は、10月19日に同大学の理工学部がある矢上キャンパスで行われた。
企業ロゴもMATLABの計算結果から
講演が始まる数分前。Moler氏が、手持無沙汰にしている学生を相手に説明を始めたのが、MathWorksのロゴにもなっているL-shaped membraneの1次振動モデルの解析結果を導出するプロセスについてである。この解析にはもちろんMATLABが用いられている。そして、解析結果をグラフとして視覚化したものが、MATLABが開発された1980年代以降、時代を進むごとに精細になっていることを紹介した(図2)。
講演が始まってからは、MATLABの“起源”となるMathWorks設立以前の歴史と、MATLABの“進化”となる現在の取り組みに分けて解説した。まず、Moler氏が取り上げたのが、1950〜1960年代の米国におけるコンピュータサイエンス研究についてである。同氏は、カリフォルニア工科大学(Caltech)で数学を学んだ後、スタンフォード大学のコンピュータサイエンス学科を1964年に立ち上げたGeorge Forsythe氏の下で研究を続けて、学位を取得している。そして講演の中では、世界で最初期のコンピュータ「Pilot ACE」から、Caltechにあった「Burroughs(バロース) B205」、スタンフォード大学にあった「DEC PDP-1」などを写真で示した(図3)。
このDEC PDP-1で動作する世界初のシューティングゲーム「Space War」の画面写真を交えながら、同じくコンピュータ上で動作するソフトウェアであるベンチマークプログラムの「LINPACK」や「EISPACK」の開発に携わったことを説明した。これらのプログラムを扱うには、プログラミング言語のFortranを用いる必要があった。そこで同氏は、Fortranの知識がなくてもLINPACKなどのプログラムを扱えるようにするため、1977年にMATLABを開発したのである。
ここで、Moler氏は、初期のMATLAB(1984年バージョン)を起動して、3×3の行列を用いた計算のデモを行ったり、「what」コマンドを入力して使用可能な関数を表示するなどした。同氏は、「初期のMATLABは、Fortran上で動作するコマンドラインベースのシンプルなソフトウェアだったが、進化を続ける中で、関数が増えたり、ツールボックスのような機能が追加されていった」と振り返った。進化の代表例として紹介したのが、いわゆるジョークコマンドである「why」を入力した際のリアクションである。現在のバージョンは、初期バージョンと比べて、はるかに多くの種類のリアクションを返すようになっているという。さらに、1979年に公開された映画版「スタートレック」において、エンタープライズ号の艦橋のメインスクリーンに表示されている3次元波形は、当時のMATLABの「plot」コマンドで計算したものだったことを明かした(図4)。
その後、MATLABは、大学や研究所など向けの技術計算ソフトウェアとして開発が続けられた。Moler氏は、その頃のエピソードとして、「MATLABの機能について、数学やコンピュータサイエンスを研究している学生はあまり興味を抱いていなかった。一方、工学系の学生は、研究に役立つ便利なツールとして愛用していた」と述べている。そして1984年、MATLABが商用化された。同じ年にMathWorksも設立されている。
並列処理への対応で進化
MATLABの進化に当たる、現在の取り組みとして紹介したのが、並列処理への対応である。ここでも、Intelが1985年に発表した並列コンピュータ「iPSCファミリ」を紹介しながら、現代のコンピュータがさまざまな粒度で並列処理を行っていることを説明した。Moler氏は、「コンピュータ間、コンピュータ内、プロセッサ内、どのような粒度においても並列処理が行われるようになっている。MATLABにとって、並列処理への対応は中核となるものだ」と強調する。実際に、MATLABのオプションとして展開されている「Parallel Computing Toolbox」は、アップグレードのたびにその機能を拡大させている。同氏は、MATLABにおける並列処理の効果を示すために、日本発のパズルである「数独」を解く時間を大幅に短縮するデモを見せた。
Moler氏は、講演終了後の質疑応答の際に、「MATLABの最大のライバルはMicrosoftの『Excel』だ」と述べた。「MATLABを、Excelと同じくらい多くの人々に利用してもらいたい。MATLABの主なユーザーが工学分野だというイメージはあるが、創薬や金融などの分野でも利用されている」(同氏)。また、ユーザーを広げるための取り組みとして、Amazonのクラウドサービス「Amazon EC2」で計算処理を行うiPhoneのアプリケーション「MATLAB Mobile」を提供していることなどを挙げた。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 自動車での成功事例をエネルギー分野にも、MathWorksが新分野を強化
制御/信号処理/画像処理システム向けソフトウェアツール「MATLAB/Simulink」を提供するMathWorksが、エネルギー分野への取り組みを強化している。 - MathWorksが「MATLAB」最新版を販売開始、C/C++コードの自動生成が目玉
「MATLAB」最新版の目玉機能の1つが、MATLAB言語からC/C++コードを直接生成する「MATLAB Corder」だ。 - 「MATLABで並列計算の敷居を下げる」、マスワークス社が取り組み説明