Jump to content 日本-日本語

製品  >  ソフトウェア  >  HP- UX Developer Edge

HP-UX/Itaniumへラクに移行する6つの方法・後編

HP-UX/Integrityサーバー お問い合せ
コンテンツに進む
HP-UX/Itaniumへラクに移行する6つの方法・後編
HP-UX/Itaniumへラクに移行する6つの方法・後編
Linuxからの移行
Ariesの動作メカニズムとパフォーマンス

Ariesの動作メカニズムとパフォーマンス


では本特集の締めくくりとして、バイナリ・トランスレータAriesの動作メカニズムとパフォーマンスについて簡単に紹介しよう。前編で紹介した通り、Ariesは、HP-UX/PA-RISCとの透過的なバイナリ互換性を実現する。ソースコードが入手できないアプリや、ドキュメント不足などで再ビルドが困難なアプリについては、Ariesが優れた移行ソリューションとして威力を発揮するはずだ。

図3は、Ariesの内部アーキテクチャを示した図である。

  図3:Ariesの内部アーキテクチャ
図3:Ariesの内部アーキテクチャ
 

Ariesは、大きく分けて以下の2つの部分から構成されている。

  • ISAエミュレーション・エンジン
  • 実行環境エミュレーション・エンジン

ISA(Instruction Set Architecture)エミュレーション・エンジンは、簡単にいえばPA-RISCプロセッサーのエミュレータである。ただし単純なエミュレータと異なるのは、「インタプリタ」と「トランスレータ」の2つから構成されている点だ。このうちインタプリタは、PA-RISCバイナリの命令コードを逐一解釈し、実行していく。一方、同じコード・ブロックが繰り返し実行されるとトランスレータが呼び出され、同コードに相当するItaniumバイナリが生成される。このバイナリは「コード・キャッシュ」に格納され、次回以降はトランスレータを介在せずにItaniumバイナリの実行が可能になる。

もう一つのコンポーネントである実行環境エミュレーション・エンジンは、PA-RISCバイナリのシステム・コールやシグナル、スレッドを管理し、PA-RISC上と同等の実行環境を再現する役割を司る。


Ariesのパフォーマンス・チューニング


これら2つのエンジンの実体は、aries32.soおよびaries64.soという2つの共有ライブラリである。前述のとおり、Aries自体がHP-UXカーネルに組み込まれているため、開発者やユーザがこれらの共有ライブラリを明示的に呼び出す必要はない。ただしAriesでは、「Ariesリソース・ファイル」と呼ばれるテキスト・ファイルを通じて、個々のアプリケーションごとにパフォーマンス・チューニングの手段を提供している。

このリソース・ファイルは、.ariesrc(32ビット用)もしくは.aries64rc(64ビット用)という名称で作成する。このファイルをHP-UXのルート・ディレクトリに配置すれば、Ariesが実行するすべてのアプリケーションが設定対象となる。一方、ユーザのホーム・ディレクトリに配置すると、同ユーザが起動するアプリケーションのみ対象となる。

リソース・ファイルの中では、個々のアプリケーションごとにAriesの実行オプションを指定可能だ。例えば、「同じコード・ブロックを何回繰り返し実行したらItaniumバイナリへ変換するか」、「Itaniumバイナリを保存するコード・キャッシュのサイズはどの程度か」といった項目について、チューニングが可能だ。


Ariesのパフォーマンスと制限


では、このAriesは実際にどの程度のパフォーマンスを達成可能なのだろうか。HPでは、システムやI/O処理、メモリ・アクセスが平均的に混在したアプリケーションの場合、「PA-8700ベースのシステムと同等のパフォーマンス」としている。例えば数年前に導入されたHP 9000サーバ上のアプリケーションであれば、HP Integrityサーバ上のAriesに移行することで、それまでと同じかそれ以上のパフォーマンスが得られると期待できる。またアプリケーションによっては、Itaniumバイナリに匹敵する性能を出すものもあるという。

一方、CPU処理主体のアプリケーションの場合は、それほどの結果は期待できない。例えば浮動小数点処理が主なものでは、PA-8700ベース・システムの50%程度、Itaniumバイナリの10〜15%まで低下するケースもある。

以上のようなAriesの特性から、やはりItaniumのネーティブ・パフォーマンスを要求する用途では、ソースコードからの再ビルドが望ましい。一方、WebサーバのようにネットワークI/OやディスクI/Oに依存するもの、もしくはWebブラウザやエディタなどは、Ariesでも十分な結果が得られるだろう。

ただし、前編でも指摘したとおり、Ariesには使用上の制限がいくつかある。以下のような条件にあてはまるPA-RISCアプリケーションは、Ariesでは実行できないか、もしくは実行に支障が生じる。

  • HP-UX 9.x以前のもの
  • Itanium用共有ライブラリを必要とするもの
  • 同期が不十分でシステム・コールの処理タイミングに依存するもの
  • PA-RISCバイナリの再コンパイルが必要なもの
  • カーネル内部のデータ構造やカーネルモードを使用するもの

もっとも、これらの条件に抵触するアプリケーションはほとんど存在しない。大半のケースでは、HP IntegrityサーバがあたかもHP 9000サーバであるかのように振る舞う、シームレスな移行環境は実現される。

以上、本特集ではHP-UX/Itaniumが提供する移行ソリューションについて紹介した。ここで紹介したいくつかの手段を活用すれば、より多くの局面でHP Integrityサーバの真価を引き出せるはずだ。

関連リンク

 
Linux porting kit v.2.0 for hp-ux USサイト
Linux STK USサイト
Solaris STK USサイト
Tru64 STK USサイト
 
トップへ 戻る    

記事の内容に関するご意見・ご質問・お問い合わせ

  日本ITフォーラムにて承っております(別途、会員登録が必要です)。

日本ITフォーラム
 

その他のコラム(特集)もお読み下さい

 
 

本ページの内容は執筆時の情報に基づいており、異なる場合があります。
印刷用画面へ
プライバシー ご利用条件・免責事項