ローグウェーブソフトウェアのブログ

開発をシンプルに 安全で高品質のコードを 素早くお客様のもとへ

動的解析のエンジンを再構築した理由 - CodeBuzzから

ローグウェーブの動的解析ソフト(デバッガ)であるTotalViewCodeDynamicsについて、プロダクトマネージャーであるMartin BakalがCodeBuzzに書いた記事をご紹介します。これらの製品はこれまでご紹介してきたようにGUIが大きく刷新されました(末尾に紹介時記事へのリンク)。ソフトウェアを大々的に作り変えることは開発者にとって大きな勇気や労力を伴うものですが、その背景や概要を説明しています。また、末尾にカリフォルニアで行われているGPU Technology Conference (GTC) 2016 への参加に言及しています。

動的解析のエンジンを再構築した理由

http://blog.klocwork.com/featured/why-we-rearchitected-our-dynamic-analysis-engine-to-meet-new-users-and-demands/blog.klocwork.com

開発しているソフトウェア製品をいつ、どのように、またなぜ再設計するのか。全ての開発チームが直面する問題です。ユーザーインターフェース(UI)をデザインするのとアーキテクチャ全体を再構築することの費用対効果を比較すること。数年前に、わたしたちのTotalViewチームはUIの変更と同時にアーキテクチャ自体も作りなおすことを決意しました。

旧来のUIは古さを感じさせましたし、アーキテクチャも依然高機能とはいえ問題点もありました。これらを改善することは、HPC業界で活躍する大切な既存のお客様をサポートするのみならず、石油やガス、金融やソフトウェアベンダーなど商用の業界へとマーケットを広げる上でも重要だと判断したのです。

If you build it... もし君がそれを造れば *1

新しいUIを構築するために私たちはオープンソースバージョンのQtを使うことにしました。これを使えばソースコードに色を付ける(シンタックスハイライト)ことやドッキングウィンドウなど様々な便利機能が利用可能になり、その他のサードパーティ製の製品とも統合しやすくなります。

f:id:RWSJapan:20160404134712p:plain

ただしこれだけでは充分ではなく、私たちとしてはデバッガをよりモジュラーな形にしてUIをデバッグのエンジンから独立させたかったのです。これは以下の様な理由により大切なことです。

  • HPCのユーザーに対してパフォーマンスやスケーラビリティのメリットを提供できる
  • より幅広いユーザーにアピールできる
  • 全てのプラットフォーム上でより効率的なデバッガを作成できる

… they will come 彼らはやってくる

つまりやりたいことは、特定の環境やプラットフォームのために強力なデバッグエンジンを作成し、ユーザーインターフェースはユーザーがフロントエンドとして使いたいどんな環境でも使えるようにする、ということです。このことは特にリモートのシステム上でデバッグしたいときに(多くのお客様がそのように利用しています)、とても大きな利点となります。

新しいアーキテクチャは下の図のように表すことができます。これを実現するためにTotalViewの開発チームは、以前は1つのアプリケーション内に留まっていた情報を異なるアプリケーション間でやりとりができるように、新たなイベントエンジンを開発する必要がありました。必要な動作を理解し、どの情報をどのタイミングで効率よくやりとりさせるかを判断するのは並大抵の努力ではありませんでした。このアーキテクチャにより、従来の1つの製品(TotalView)を、新しいUIを共にサポートする2つの製品(TotalView for HPCCodeDynamics)に分けることが容易になりました。

f:id:RWSJapan:20160404141033p:plain

4/4-7にはカリフォルニアの San JoseGPU Technology Conference (GTC) 2016 に出展します。複数GPUや複数ノードのGPUを使ったアプリケーションをデバッグするための秘訣(Tips and Tricks)をご紹介します。

Martin Bakal

編集後記

TotalViewのGUI刷新は数年来の念願でした。必要なクリック数が少なく効率的に作られた旧GUIの利便性を損なうことなく、歴史と定評、幅広い対応環境を持つ製品のGUIを新しく作り変えるのは難事業でしたが無事リリースすることができてひとまずほっとしています。昨年前半まで注力していたスケーラビリティの向上に引き続いてTotalViewは大きく進化しました。これからもユーザーの開発作業を効率化し力強くサポートする製品を提供していきますのでお楽しみに。

関連記事

blog.roguewave.jp

blog.roguewave.jp

blog.roguewave.jp

ローグウェーブ セールスエンジニア 柄澤(からさわ)