マルチコア化への第1歩は,シングル・コア上で動いているソフトウェアの解析 ―― 「ET アワード2011」受賞企業インタビュー(2) 横河ディジタルコンピュータ
ETアワード2011の開発環境・ツール部門の優秀賞は,横河ディジタルコンピュータのマルチコア・パフォーマンス計測ツール「adviceLUNA」が受賞した.本ツールに搭載されているシステム・マクロ・トレース技術は,組み込みシステムのデバッグから結合テストまで,幅広い工程で利用できる動的解析の機能である.ここでは,同社 エンベデッドプロダクト事業部 プロダクトマーケティング部の山下 真一氏(写真1)に話をうかがった.
写真1 横河ディジタルコンピュータの山下 真一氏
―― ETアワード2011の開発環境・ツール部門の優秀賞を受賞した製品の概要をお聞かせください
山下氏:今回,受賞した「advice LUNA」は,2009年にシングル・コア用として開発した動的解析ツールのマルチコア,マルチOS(Linux/Android,T-Kernel,μITRON,Windows Embedded Compact 7)対応版です.
製品の特徴は,実機のCPUコアごとの性能を確認できる点です.関数とタスクの実行履歴を図やリストで可視化します(写真2).これまでのデバックでは,プログラム上の確認したい箇所にprint文を挿入する方法が一般的でした.しかしこの手法では,print文を多用しすぎるとCPUへの負荷が大きくなります.今回のツールはprint文を使用しないため,CPUの負荷を軽減(最高で5万分の1)できます.このツールを使ってだいたい15分~30分の実機の動作を確認できます.
写真2 マルチコアの動作を図とリストで可視化したデモンストレーション画面
―― どのような技術によって,このツールは実現されているのでしょうか
山下氏:まず,トレースしたデータを圧縮する技術です.それとmicroSDやUSB,非同期バス,GPIO,パケット通信など,さまざまなインターフェースにより高速にパソコンのハード・ディスクへデータを転送する技術です.
―― このツールはどのようなユーザを対象としていますか?
山下氏:スマートフォンを見ても分かるように,プロセッサのマルチコア化が進んでいます.これからの組み込みシステムではマルチコアの利用は必須となります.スマートフォンやカー・ナビゲーション・システムでは,シングル・コアからマルチコアへの移行が始まり,すでにこのツールが利用されています.
まず,シングル・コアで動いているソフトウェアのふるまいをこのツールで確認し,どの部分を並列化できるかを検討していただきたいと思います.これが,マルチコアを利用するための第1歩となります.次に,並列化したソフトウェアをマルチコア上で動作させると想定外の挙動を示すことがあるので,排他制御などを行う必要性がでてきます.タスク間の通信もOSコールで確認できるので,複雑なOSのふるまいも分かります.さらに,WindowsなどのOSを使用する際に,マルチスレッドのような複雑な動作の制御に困る場合がありますが,こうした挙動もきちんと確認できます.
―― このツールを開発しようと考えたきっかけは?
山下氏:シングル・コア用のパフォーマンス計測ツールを利用されているユーザから,マルチコア上でのOSやソフトウェアの挙動を確認したい,という依頼があり,開発がはじまりました.
―― 今回の受賞を踏まえて,貴社では今後,どのような製品を開発していきますか?
山下氏:ET 2011でもデモ展示を行いましたが,まずCPUの使用率を可視化する機能を用意し,さらにAndroid搭載機器開発向けにJava言語への対応機能を追加します.Java言語対応機能が追加されることにより,Javaメソッド,JNI(Java Native Interface)など,ネイティブ・コードの実行履歴が収集可能となります.例えば,プログラム・コードと消費電力の関係を可視化することなどが可能になります.
―― ETアワード2011を受賞して,何か変わりましたか?
山下氏:アワードの応募用紙に丁寧に製品解説を書いたので,少し自信はありました.実際に受賞の連絡があったときは社内のみんなで喜び,また,開催前に連絡があったのでモチベーションが上がり,今回のデモ展示に臨むことができました.アワード受賞製品ということで,多くの来場者の方に興味を持って見ていただくことができました.
ETアワード2011 審査委員のコメント
マルチコアを採用した開発が深化するに従い,開発対象の動作状況の不確実性が高くなり,実機の動作を体系的に把握できないことから,人依存性が高くなるという状況が生まれている.本技術は実機への負荷を最高で5万分の1に低減しつつ,各種動作をチャート形式で可視化するシステムマクロトレース技術を提供するものである.組織力の強化,解析するカバレッジの拡大などマルチコア応用技術へ大きく貢献することが期待できる.
http://www.jasa.or.jp/et/ET2011/event/etaward.html