• お問い合わせ
  • ユーザー登録
Turbolinux関連書籍
トレーニング&資格 パートナー コンサルティング ユーザー登録 Turbolinux関連書籍
turbolinux関連書籍 Turbolinux関連特集&Turbolinux執筆記事 Turbolinux関連教材ほか
Turbolinux関連書籍

オープンソースで64 ビットコンピューティングを体験【Linux 編】
Itanium サーバで使う Turbolinux Enterprise Server 8

小林 洋行 / 橋爪 家治

■はじめに

64 ビットCPU の時代へ

最近はAMD の64 ビットプロセッサである Opteron やAthlon 64 が何かと話題に上がりますが, Intel にもLinux 対応の64 ビットプラットフォームがあることをお忘れではないでしょうか?

たしかに,2001 年にデビューしたIntel の64 ビットプロセッサItanium は,企業での導入が予想以上に進まず,Itanium2 のIA-64 アーキテクチャもいまだ大きなシェアを獲得してはいません.しかも, IA-64 のコンピュータはとても高価です.しかし, AMD がx86-64 アーキテクチャのOpteron プロセッサを発表したこともあり,64 ビットプロセッサの世界でも値下げ競争の歴史が繰り返されようとしています.IA-32 の遺産を引き継いだOpteron がエンタープライズサーバの分野で受け入れられるかどうかは非常に興味深いところですが,まさに64 ビットプロセッサの幕開けと言える状況です.

Itanium 版 Turbolinux Enterprise Server

ターボリナックスでは,x86-64 アーキテクチャに対応したTurbolinux 8 for AMD64 をすでに提供していますが,IA-64 上で動作するTurbolinux Enterprise Server 8 for Intel Itanium Processor Family powered by UnitedLinux (以下,TLES8 for IPF )の販売も行っています(写真1 ).

▼写真1 Turbolinux Enterprise Server 8 for Intel Itanium Processor Family powered by UnitedLinux


TLES8 (x86 版も含む)は世界主要Linux ベンダであるConectiva ,SCO ,SuSE ,Turbolinux の4 社により共同開発された大規模エンタープライズサーバ向けのLinux ディストリビューションである「UnitedLinux 1.0 」をベースに開発されており,ターボリナックスが従来から提供してきたTurbo linux Server/Workstation ,そして先ごろ発売された Turbolinux 10 Desktop の流れを汲むディストリビューションとは異なります 注1.ここでは,TLES8 for IPF の製品概要と,64 ビット環境が活きる用途/環境について紹介します.

注1 :UnitedLinux の詳細については,UnitedLinux のWeb サイト(http://www.unitedlinux.com/)やターボリナックスWeb サイト(http://www.turbolinux.co.jp/)を参照してください.


■TLES8 for IPF 製品概要

TLES8 for IPF のパッケージは,2CPU ライセンスで9 万8,000 円です.製品の推奨動作環境と製品パッケージの内容は表1 ,2 のとおりです.

▼表1 TLES8 for IPF の推奨動作環境
CPU Intel Itanium Processor Family(Itanium /Itanium2 )
メモリ 512M バイト以上
ハードディスク 10G バイト以上
ビデオカード VGA 以上(GUI のインストーラを利用するにはXFree86 4.2.0 に対応したビデオカードが必要)
その他 10G バイト以上
ハードディスク CD-ROM ドライブ(ATAPI/SCSI ),Super ドライブ,Ethernet カード

▼表2 TLES8 for IPF の製品パッケージ内容
CD-ROM インストールCD ,UnitedLinux バイナリCD (2 枚),UnitedLinux ソースCD
マニュアル インストールガイド(HTML 形式でインストールCD に収録)
その他 使用許諾契約書,リリースノート

製品には,1 年間のメンテナンスサービス(アップデートパッケージ,セキュリティアップデートなどのダウンロードサービス)が付属しています.次年度以降のメンテナンスサービスや製品のご購入につきましては,ターボリナックスまでお問い合わせください.


TLES8 for IPF が活きる環境/用途

さて,実際に私たちが64 ビット環境を使う段階になって,その恩恵はどのようなところにあるのでしょう.ここで,本当にユーザが求めているのは,単なる64 ビットのコンピュータとOS だけではなく,アプリケーションをサポートする実際に運用可能なシステムであるということを忘れてはいけません.つまり,TLES8 for IPF のようなハイエンドサーバ向けのLinux OS のみならず,ほかの重要なソフトウェアコンポーネントが整備されなければ,新しいシステムへの本格的な移行は始まらないと言えます.64 ビットへの移行がもたらすメリットは,各所で取り上げられていますので,ここで詳しくは触れませんが,
  1. 巨大な整数が扱える
  2. アドレス空間が64 ビットへ拡張される
と言えるでしょう.

●演算速度の高速化

巨大な整数が扱える.つまり,一度に処理できる単位を増すことで,大きな桁数の計算の高速化が期待できます.扱う単位がとくに巨大な国家予算や高度な科学技術演算,銀行や航空会社などのオンラインシステムなどの多くには,実はすでに 32 ビットCPU は使用されていません.UnitedLinux も全米科学財団(NSF)が運営するTeraGrid と呼ばれる科学データを処理する分散コンピューティングシステムに採用されるなど,その成果をすでに上げています.

●広大なメモリ空間の確保

多くの企業ユーザにとって,64 ビット環境における最大の恩恵は,やはり広大なメモリ空間の確保でしょう.とりわけ,企業における重要な業務アプリケーションは,データベースが基盤となっています.大企業のデータベースなどではデータそのものがテラバイトやペタバイトの領域へ達することもあり,すでにオンメモリで処理することが不可能になっていることも珍しいことではありません.アドレス空間が64 ビットへ拡張されれば, 4G バイト以上のアドレス空間を扱うことができるため,64 ビット対応のメリットはほかのソフトウェアと比較しても大きいことは明らかです.

そのためOracle やIBM といった企業は,自社データベース製品の64 ビット対応を早期に表明し,すでにOracle9i DB やIBM DB2 のItanium 対応版を提供しています.そしてTLES8 for IPF は,これらのデータベースを動作させる正式なプラットフォームとしての認定をすでに取得しています.そのほか,TLES8 for IPF が認定を取得,もしくは予定しているおもなミドルウェアには表3 のものがあります.

▼表3 TLES8 for IPF が認定を取得,もしくは予定しているおもな製品
 製品名  URL
IBM DB2 http://www-6.ibm.com/jp/software/data/db2/linux/
Oracle9i DB http://www.oracle.co.jp/9i/database/
Weblogic JRockit※ http://www.beasys.co.jp/products/weblogic/jrockit/
BakBone Netvault 7 (対応予定) http://www.bakbone.co.jp/products/netvault.html
dbecs4M (対応予定) http://www.dbecs.com/

※Weblogic 自体の対応は2004 年1 月を予定しています.

このように,ターボリナックスでは,データベースに代表される主要なミドルウェアを含むソリューションをすでに開始しています.TLES8 for IPF がIA-64 プラットフォームにとって不可欠な存在になるであろうことをご理解いただけるでしょう.今後は,64 ビットプロセッサに対する潜在的な需要 - とくにエンタープライズ分野での需要 - は一気に開花し,製品の検討,もしくは導入に踏み切る企業が増えていくと思われます.64 ビットサーバとLinux の組み合わせが数年後には,標準的なサーバプラットフォームの主流となっていることでしょう.

今後もターボリナックスは,パートナー各社との協業を推進し,基幹系システムでのTLES8 for IPF の導入に不可欠なサポート,コンサルティングを強化していきます.これによって,ターボリナックスのエンタープライズ戦略,ならびに UnitedLinux のアジア市場向け製品であるTLES8 for IPF の日本での採用がますます加速されるのではないかと期待しています.


■TLES8 for IPF のインストール

ここでは,実際にTLES8 for IPF のインストール手順を見ていきたいと思います.とは言うものの, IPF 版のインストーラはx86 版のそれとまったくと言って良いほど同じです.インストーラさえ起動してしまえば,あとはグラフィカルなインストーラでインストール作業を進めることができます.

ただし,PC/AT 互換機への一般的なインストール設定と異なる部分もあるので注意は必要です. Itanium システムにTLES8 for IPF をインストールするには,EFI (Extensible Firmware Interface )に関する最低限の知識が必要不可欠となります.

EFI とELILO

ご存知のとおり,PC/AT 互換機では,BIOS がハードディスクのMBR に書き込まれたLILO (LInux LOader )やGRUB (Grand Unified Bootloader )などのブートローダを読み込むことでLinux が起動します.

それに対しItanium システムでは,Linux の起動にELILO と呼ばれるブートローダが使用されます.そしてELILO は,EFI Boot Manager によって読み込まれます.EFI は,従来のPC/AT 互換機が装備していたBIOS インターフェースの代わりとなるもので,ファームウェアとOS 間の新しいインターフェースを定義しています(図1 ).これにより,OS を起動するための標準的な環境を提供しています. EFI の詳細な情報はIntel のWeb サイト(参考文献1)から得ることができます.

▼図1 EFI


詳細には触れませんが,Itanium システムへ Linux をインストールする際に知っていなければならない事項は,ELILO がVFAT ファイルシステムのパーティションに配置されなければならないという制限があることです.このパーティションは, EFI System Partition と呼ばれ,EFI Boot Manager がOS を起動するために必要なプログラム,および設定ファイルの格納に使われます.

TLES8 for IPF では,/boot ディレクトリにELILO , Linux カーネル,および設定ファイルなどが格納されるため,/boot パーティションがEFI System Partition となります.つまり,インストールした TLES8 for IPF を起動するには,/boot をマウントポイントとするパーティションを別に作成し,ファイルシステムのタイプに「FAT (vfat )」を指定しておく必要があります.さもないと,EFI Boot Manager はELILO のブートイメージを読み込むことができず,Itanium システム上にインストールしたTLES8 for IPF が起動できないというトラブルに遭遇してしまうことになります.

インストーラの起動

TLES8 for IPF のインストールも,EFI Boot Manager から「インストールCD 」上のブートイメージを読み込むことで開始します.ほとんどすべてのItanium システムはCD-ROM ドライブを搭載しており,インストールCD からインストーラを起動できますので,これが問題となることはないでしょう.インストーラの起動は,以下の手順に従います.
  1. EFI Boot Manager を起動

    コンピュータの電源を投入し,ただちにインストールCD をCD-ROM ドライブへ挿入します.もしくはコンピュータを再起動します.ハードウェアに依存して多少異なる場合もありますが, Itanium システムでは,図2 のようなEFI Boot Manager が表示されます.

    ▼図2 EFI Boot Manager
     EFI Boot Manager ver 1.02 [12.40 ]
    
    Please select a boot option
    
         Ven Hw(Unknown Device:00)
         Ven Hw(Unknown Device:FF)
         Acpi(PNP0A03,0)/Pci(5|0)/Mac(xxxxxxxxxxxx)
         EFI Shell
         Boot option maintenance menu
    
    
         Use ↑and ↓to change option(s).Use Enter to select
         an option
    

  2. ブートイメージを選択

    インストールCD に格納されているブートイメージを指定してインストーラを起動します.はじめに, EFI Boot Manager から[Boot option maintenance menu ]を選択します.[EFI Shell ]を選択し,後述するEFI シェルのコマンドラインからインストーラを起動することもできますが,以下の手順のほうが簡単にインストーラを起動できます.なお,インストーラのブートイメージは,efi/boot/bootia64.efi に格納されています.

    ▼図3 ブートイメージからの起動を選択
     EFI Boot Manager ver 1.02 [12.40 ]
    
    Main Menu. Select an Operation
    
    
                Boot from a File
                Add a Boot Option
                Delete Boot Option
                Change Boot Order
    
                Manage BootNext setting
                Set Auto Boot TimeOut
    
                Select Active Console Output Devices
                Select Active Console Input Devices
                Select Active Standard Error Devices
    
                Cold Reset
                Exit
    
    Timeout-->[2 ] sec SystemGuid--->[F267BE9B-2C22-D511-
    AB30-080009E44915 ]
    SerialNumber-->[(null)]
    

    [Boot from a File ]を選択し[Enter]キー を押します(図3 ).

    ▼図4 CD-ROM デバイスを選択
     EFI Boot Manager ver 1.02 [12.40 ]
    
    Boot From a File.Select a Volume
    
    
          NO VOLUME LABEL [Acpi(PNP0A03,1)/Pci(1|0)/Scsi(Pun0,Lun0)/HD(Par
          NO VOLUME LABEL [Acpi(PNP0A03,0)/Pci(3|1)/Ata(Secondary,Master)/
          Removable Media Boot [Acpi(PNP0A03,0)/Pci(3|1)/Ata(Primary,Maste
          Removable Media Boot [Acpi(PNP0A03,0)/Pci(3|1)/Ata(Secondary,Mas
          Load File [Acpi(PNP0A03,0)/Pci(5|0)/Mac(xxxxxxxxxxxx)]
          Load File [EFI Shall [Built-in ]]
          Legacy Boot A:
          Legacy Boot C:
          Exit
    

    リストからCD-ROM デバイスを選択します.図 4 の例では,IDE セカンダリマスタに接続された CD-ROM デバイスを選択するものとします.

    [↑][↓]キーで2 行目を選択し[Enter]キーを押します.

    efi ディレクトリ→boot ディレクトリと選択し,ブートイメージである「bootIA64.efi 」を選択してインストーラを起動します(図5 ).

    ▼図5 ブートイメージを選択してインストーラを起動
     EFI Boot Manager ver 1.02 [12.40 ]
    
    Select file or change to new directory:
    
            01/28/03 02:46p <DIR>     1,024 .
            01/28/03 02:46p <DIR>         0 ..
            01/27/03 02:51p <DIR>   347,648 bootia64.efi
        Exit
    

  3. インストーラを起動

    bootia64.efi が読み込まれ,インストーラの起動メニューが表示されますので,「Linux」を選択してください.処理はインストールプログラムへと引き継がれ,最後にグラフィカルなインターフェースを持つインストーラが起動します.インストーラの画面はすべて共通のフォーマットを持っています.インストーラ上の入力フィールド,リスト,ボタンなどすべてのオブジェクトはマウスでアクセスすることができます.

インストール手順

インストールはおおまかに以下の手順で進みます.ここでは,インストーラの画面遷移を簡単に紹介しましょう.
  1. ライセンスの同意

    インストーラが起動すると,はじめにライセンスの同意を要求するダイアログが表示されます.内容を確認してインストーラを進めます.
  2. 言語の選択

    インストーラで表示する言語とシステムの標準言語の選択を行います.
  3. インストール設定の提案と変更

    インストーラは,システムのハードウェアをチェックし,検出したハードウェア情報をもとに推奨するインストール設定を自動的に行います.インストーラの提案をそのまま受け入れることもできますし,必要に応じて以下の設定を変更することも可能です(図6 ).ユーザ自身が変更する可能性のある設定は「パーティションの設定」と「ソフトウェアの選択」ぐらいでしょう.

    • マウスの設定
    • キーボードの設定
    • 時間帯の設定
    • パーティションの設定
    • ソフトウェアの選択

    ▼図6 インストーラの初期設定

  4. パーティションの設定

    インストーラは搭載されたハードディスクの空き領域を検出し,自動的にパーティションの設定を行います.インストーラの提案をそのまま受け入れることもできますし,もちろん,提案を破棄して手動でパーティションを設定することもできます(図7 ).その場合は,先に述べたようにEFI System Pertition の作成を忘れずに行ってください.

    なお,TLES8 for IPF は,標準のファイルシステムにReiserFS を採用しています.

    ▼図7 パーティションの手動設定

  5. ソフトウェアの設定

    インストーラは推奨する3 つのインストールタイプを用意していますが,インストールするパッケージを手動で選択/解除することもできます(図 8 ).インストーラはつねに選択されたパッケージの依存関係をチェックし,必要な依存パッケージも自動的に選択しますので,ユーザが依存関係の解決に頭を悩ませる必要もありません.

    ▼図8 ソフトウェアの設定

  6. インストールの実行

    インストールの進行状況がグラフィカルに表示されます(図9 ).

    ▼図9 インストール進行状況

  7. システム再起動

    パッケージのインストール完了後,いったんシステムを再起動します.初回起動時のみ以降のインストール設定を行う画面が表示されます.以降,パスワードの設定とユーザの作成,X の設定,ネットワークインターフェースの作成と作業が進んでいきますが,本稿では割愛します.

  8. グラフィカルログイン
    ログインマネージャであるkdm が表示されますので,インストーラで作成したユーザでログインします(図10 ).

    ▼図10 グラフィカルログイン


    これでTLES8 for IPF のインストールは完了です. TLES8 のx86 版をインストールしたことがあるユーザは,IPF 版のインストーラもまったく同じであることに気付くでしょう.


■TLES8 for IPF の起動

ブートマネージャからの手動起動

TLES8 for IPF のインストール完了後にシステムの再起動を行うと,EFI Boot Manager の先頭には,図11 のようにTLES8 for IPF を起動するためのブートメニュー「Turbolinux Enterprise Server 」が自動的に登録されています.

▼図11 EFI Boot Manager にTurbolinux Enterprise Server が登録された
 EFI Boot Manager ver 1.02 [12.40 ]

Please select a boot option

     Turbolinux Enterprise Server
     Ven Hw(Unknown Device:00)
     Ven Hw(Unknown Device:FF)
     Acpi(PNP0A03,0)/Pci(5|0)/Mac(xxxxxxxxxxxx)
     EFI Shell
     Boot option maintenance menu


     Use ↑and ↓to change option(s).Use Enter to select an option

「Turbolinux Enterprise Server 」が選択された状態で[Enter]キーを押します.インストールされたELILO のブートイメージを読み込み,ELILO boot:プロンプトが表示されます.ブートイメージは/boot/efi/ SuSE/elilo.efi にインストールされています.

 ELILO boot:

そのまま[Enter]キーを押します(数秒後には自動的に起動します).

EFI シェルを使用した手動起動

EFI シェルを使用して手動でTLES8 for IPF を起動することもできます.EFI シェルは,bash のような非常にシンプルな対話型環境で,ブートローダであるELILO を起動するためにも使用されます.

また,EFI シェルは認識したハードウェアの表示や EFI System Partition 上のファイルを操作するさまざまなコマンド(edit ,type ,cp ,rm ,mkdir など)も含まれています注2.

注2 :EFI シェルで利用できるコマンドのリストは,EFI シェルでhelp と実行することで確認できます.
  1. EFI シェルの起動

    EFI Boot Menu から[EFI Shell ]を選択すると,以下のプロンプトが表示されます.

     Shell>
    

  2. パーティションの確認

    EFI が認識したデバイス,およびファイルシステムを表示するにはmap コマンドを実行します(図 12 ).

    ▼図12 map コマンドで認識したデバイス/ファイルシステムを表示
     Shell> map
    Device mapping table
       fs0 :Acpi(PNP0A03,1)/Pci(1|0)/Scsi(Pun0,Lun0)/HD(Part1,Sig00000000-0000-0000
    -0000-000000000000)
       fs1 :Acpi(PNP0A03,0)/Pci(3|1)/Ata(Secondary,Master)/CDROM(Entry1)
       blk0 :Acpi(PNP0A03,0)/Pci(3|1)/Ata(Praimary,Master)
       blk1 :Acpi(PNP0A03,1)/Pci(3|1)/Scsi(Pun0,Lun0)
       blk2 :Acpi(PNP0A03,1)/Pci(3|1)/Scsi(Pun0,Lun0)/HD(Part1,Sig00000000-0000-0000
    -0000-000000000000)
       blk3 :Acpi(PNP0A03,1)/Pci(3|1)/Scsi(Pun0,Lun0)/HD(Part2,Sig11111111-1111-1111
    -1111-111111111111)
       blk4 :Acpi(PNP0A03,1)/Pci(3|1)/Scsi(Pun0,Lun0)/HD(Part3,Sig22222222-2222-2222
    -2222-222222222222)
       blk5 :Acpi(PNP0A03,1)/Pci(3|1)/Scsi(Pun1,Lun0)
       blk6 :Acpi(PNP0A03,1)/Pci(3|1)/Scsi(Pun1,Lun0)/HD(Part1,Sig00000000)
       blk7 :Acpi(PNP0A03,0)/Pci(3|1)/Ata(Secondary,Master)
       blk8 :Acpi(PNP0A03,0)/Pci(3|1)/Ata(Secondary,Master)/CDROM(Entry1)
    

    表示されたリストからEFI System Partition を確認します.fs で始まる行がEFI が読み込むことのできるFAT ファイルシステムであることを意味します.blk で始まる行は,EFI により認識されたブロックデバイスです.

    図12 の例では,fs0 がEFI System Partition であることがわかります.つまり,TLES8 for IPF インストール時に/boot へマウントしたパーティションに対応します.
  3. パーティションの移動

    EFI System Partition へ移動します.インストールしたTLES8 for IPF の/boot がFEI デバイスのfs0: として認識されている場合は,次のように実行します.

     Shell> fs0:
    

  4. ブートイメージの確認

    ELILO のブートイメージである,elilo.efi が格納されている/boot/efi/SuSE/ディレクトリへ移動します.

     fs0:\> cd efi
    fs0:\efi> cd SuSE
    fs0:\efi \SuSE>
    

    /boot/efi/SuSE/ディレクトリに存在するファイルを確認するためにls コマンドを使用することができます(図13 ).

    ▼図13 ls コマンドで存在するファイルを確認
     fs0:\efi \SuSE> ls
    Directory of fs0:\efi\SuSE
      04/16/03 01:49p <DIR>             512 .
      04/16/03 01:49p <DIR>             512 ..
      01/27/03 10:51p               347,648 elilo.efi
      04/16/03 02:08p                   249 elilo.conf
    
                       2 Files 347,897 bytes
                       2 Dirs 1,024 bytes
    

  5. elilo コマンドの実行

    最後にelilo コマンドを実行します.ブートイメージである/boot/efi/SuSE/elilo.efi が読み込まれ, TLES8 for IPF の起動が開始されます.

     Shell> elilo
    
    ELILO boot:
    

    そのまま[Enter]キーを押します(数秒後には自動的に起動します).


■ELILO の設定

ELILO は設定ファイルである/boot/efi/SuSE/ elilo.conf の最初に定義されたカーネルをデフォルトとして読み込みます.設定ファイルの書式は,従来からLinux のブートローダとして使用されているLILO とよく似ています.ただし,LILO とは異なり,設定ファイルの変更のみで,次回起動時に設定は有効になります.

リスト1 は,標準的なelilo.conf の記述です.EFI シェルからtype コマンドを実行してファイルの内容を確認することができます.

▼リスト1 標準的なelilo.conf の内容
 Shell >type elilo.conf
#ELILO config file
prompt
timeout=80
read-only

image=/vmlinuz
         label=linux
         root=803
         initrd=/initrd
image=/vmlinuz.shipped
         label=failsafe
         root=803
         initrd=/initrd.shipped
         append="ide=nodma"

#Created by YaST2 on 木4 月10 11:41:20 UTC 2003

LILO と同じように異なるカーネルイメージや ELILO ブートローダへ渡すカーネルパラメータを指定するために,ユーザ自身がelilo.conf へ新規エントリを追加したり,elilo のコマンドラインから直接カーネルイメージやカーネルパラメータを指定することも可能です.なお,指定可能なオプションの一覧は,-h オプションで確認することができます.

 Shell> elilo -h

TLES8 for IPF のインストール後であれば, /usr/share/doc/packages/elilo/ディレクトリに詳細なドキュメントが存在します.


■インストール後の設定

最初にインストール後の見た目ですが,x86 上の TLES8 と大きな違いはありません.そのユーザインターフェースは図14 のように見慣れたKDE デスクトップです.

▼図14 KDE デスクトップ


そして,TLES8 for IPF には,x86 で標準的に使用されている主要なサーバアプリケーションも同じように収録されています.新しいプラットフォームを評価,または移行を検討する際に重要な事項の1 つに,今まで使用してきたプラットフォームと同じ方法で作業が行えるシステムかどうかということが挙げられます.ただし,必要とあらばそれ以上の作業が行えるシステムであることも要求されます.したがって,TLES8 が64 ビット環境においてもx86 上のTLES8 と同じルック&フィールを持つという事実は,異なるハードウェアアーキテクチャが混在している環境や32 ビットから64 ビットへの移行途中にある組織にとって歓迎されることでしょう.

TLES8 を使用しているユーザであれば,今まで使い慣れた環境と同じ操作でシステム管理やサーバ構築が行えます.システム管理者がアーキテクチャの違いを意識し,苦労するということはほとんどありません.逆に,「何も変化がないということのすばらしさ」に驚かれるかもしれません.


■パフォーマンスとIA-32 との互換性

unixbench によるベンチマーク

ベンチマークに関しては,現状では単一のプログラムについてIA-32 プロセッサと比較した場合において,Itanium プロセッサの優位性が現れるケースは残念ながら多くはないようです.

以下に参考として,今回利用した900MHz の Itanium2 4CPU /RAM 1G バイトシステムでの unixbench-4.1 (http://www.tux.org/pub/tux/benchmarks/System/unixbench/)の実行結果を表4 に示しますが,機材の関係から最新のクロック周波数でのテストではないため,ほかのプラットフォームとの比較は行っていません.なお,今回のテストでは,Intel 製の最適化C コンパイラ(ECC )の評価ライセンスを使用してのパフォーマンスの差についても比較してみました(Intel 製C コンパイラについては,コラム「Intel 製コンパイラ」を参照してください).

このベンチマークについては,Intel ECC コンパイラによる測定も行いました.一部のデータにばらつきはありましたが,結果に大きな差は見られなかったためGCC による結果のみ記載しています.

▼表4 unixbench-4.1 によるベンチマークの結果
TEST BASELINE RESULT INDEX
Dhrystone 2 using register variables 116700.0 2814849.6 241.2
Double-Precision Whetstone 55.0 450.7 81.9※
Execl Throughput 43.0 1457.0 338.8
File Copy 1024 bufsize 2000 maxblocks 3960.0 263742.0 666.0
File Copy 256 bufsize 500 maxblocks 1655.0 86739.0 524.1
File Copy 4096 bufsize 8000 maxblocks 5800.0 620645.0 1070.1
Pipe Throughput 12440.0 681722.5 548.0
Pipe-based Context Switching 4000.0 32075.8 80.2※
Process Creation 126.0 4184.9 332.1
Shell Scripts (8 concurrent) 6.0 212.7 354.5
System Call Overhead 15000.0 443019.3 295.3
FINAL SCORE 321.7

※Double-Precision Whetstone とPipe-based Context Switching のINDEX 値が1/10 の値で表示されていると考えられますが,ログどおりに示してます.


linpackc によるベンチマーク

数値演算を主体としたベンチマークでは大きな差が見られます.たとえばLINPACK のC 言語版であるlinpackc (http://www.netlib.org/benchmark/linpackc)を実行した結果としては表5 のようなデータが得られています.このことから判断して,数値演算処理に関してはコンパイラの最適化性能が結果に大きく影響することがわかります.

▼表5 linpackc によるベンチマークの結果(最適化オプションは-O3 のみ指定)
指定オプション GCC ECC
-DDP -DROLL 111.6MFlops 195.3MFlops
-DDP -DUNROLL 123.4MFlops 171.5MFlops


IA-32 アプリケーションとの互換性と実行速度

IA-64 ではIA-32 の命令を実行することが可能です.たとえば,TLES8 (x86 版)の/bin/gzip コマンドをTLES8 for IPF のシステムにコピーするとそのまま使用可能なことがわかります.

ただし,命令セットの大幅な変更により,IA-64 システムではIA-32 の命令セットの実行にはオーバーヘッドが生じます.たとえば,前述のlinpackc のソースをx86 版のTLES8 の環境のgcc-3.2.2 でコンパイルしたバイナリをIA-64 のTLES 上で実行すると表6 のように2 倍以上のスコア差が生じます.

▼表6 IA-32 バイナリとの比較
指定オプション GCC IA-32 バイナリ(GCC )
-DDP -DROLL 111.6MFlops 47.8MFlops
-DDP -DUNROLL 123.4MFlops 57.2MFlops


このようなパフォーマンスの問題を解決するため,インテルでは「IA32 Execution Layer 」(IA32- EL )と呼ばれるソフトウェアを開発しています.

これはIA-32 の命令をIA-64 の命令に置き換えて実行することで処理の高速化を実現します.まだ開発中のものなので実際のパフォーマンスがどの程度になるかは不明ですが,Itanium2/1.5GHz 上で Xeon/1.4GHz 並の速度が実現可能のようです.

IA32-EL はLinux とWindows Server 2003 用に開発が進められており,これがLinux ディストリビューションベースで採用されれば,IA-32 アプリケーションの実行速度の問題は大きく前進すると考えられます.SuSE Linux は2004 年第2 四半期にSLES9 にてIA-32-EL を搭載することを予定しており,同じUnitedLinux ベースのTLES の次期バージョンでも同等の機能が実現されるでしょう.


■IA-64 の動向と問題点

IA-64 Linux システムの現状

現状でのIA-64 Linux システムの利用分野はHPC (High Performance Computing )が中心となっています.これは,64 ビット化による計算能力や利用可能なメモリ空間の向上により32 ビットシステムより高速かつ大量データ処理が可能であること,あるいは大規模なマルチプロセッシングシステムに対応しているというメリットが活かせることが挙げられます.とくにHPC の分野では,特定アプリケーションや専用に開発されたアプリケーションが動作すれば問題ないため,移植性の問題さえ回避できればプラットフォームを問わないということが大きな理由でしょう.

問題点

これは逆にIA-64 システムの問題点も浮き上がらせています.すなわち科学技術計算やトランザクション処理の潜在能力が高いと言われるにも関わらず,動作するアプリケーションの少なさから用途が限定されていることです.Linux 上で動作する商用アプリケーションは近年非常に増加していますが,基本的にはIA-32 Linux のもので,これらはたとえIA-64 上で動作可能でも処理速度が遅いという問題を抱えます.もちろん,IA-32 アプリケーションの動作速度に関しては,前述のIA32-EL が実現されることでパフォーマンスが大幅に改善される可能性はありますが,やはりIA-64 ネイティブに作成されたアプリケーションがどれだけ普及してくるかが1 つの鍵になるでしょう.

そのほかにも,現状ではシステム価格が高い, CPU クロックがIA-32 よりも遅い,消費電力や発熱が同一クロッククラスのIA-32 システムより大きいなどの問題もあります.これらの問題が1 つずつ解決されていけば,より高いポテンシャルを秘めた IA-64 ベースのシステムは今後もっと普及していくと考えられます.


■Intel 製コンパイラ

Intel 製コンパイラとは

Linux では,標準のコンパイラとしてGCC を使用しています.これは,IA-64 でも同じです.GCC でも64 ビットのネイティブコードへコンパイルすることができます.しかし,とくにパフォーマンスが重視されるプログラムであれば,Intel 製のコンパイラを使うのも1 つの選択肢として挙げられます.

Itanium2 に実装されている機能をフルに利用するには,ソースコードだけでなく,コンパイラの能力に大きく依存します.Intel 製コンパイラはオープンソースではないため,個別に購入する必要はありますが, Itanium2 プロセッサ向けにコードを最適化できるという特徴と技術サポートがある点は,企業ユーザに買われる要因となるかもしれません.

評価版は,Intel のWeb サイトからダウンロードすることができます.また,マニュアルやIntel 製コンパイラとGCC を比較したベンチマーク情報などへたどることもできます.詳細は参考文献2 を参照してください.

なお,使用するには,下記のWeb サイトから30 日間無料評価版のライセンスキーを取得する必要があります.

http://developer.intel.com/software/products/compilers/clin/eval.htm

Intel 製コンパイラのインストール

インストール手順は次のようになります.
  1. /opt/intel/licenses ディレクトリを作成し,取得したライセンスキーをコピーします.

     # mkdir -p /opt/intel/licenses
    # cp ライセンスファイル/opt/intel/licenses/
    

  2. Intel のWeb サイトからダウンロードしたファイルを展開します(この例では,/tmp/intel へ展開).

     # cd /tmp/intel
    # tar xvf /tmp/intel/Intel/l_cc_p_7.1.006.tar
    

  3. install スクリプトを実行し,Intal コンパイラをインストールします.

     # ./install
    

  4. ライブラリを有効にするため,/etc/ld.so.conf に, Intel コンパイラに含まれるライブラリのパス(通常は/opt/intel/compiler70/ia64/lib )を追記します.
  5. ライブラリの検索パスを有効にするためにldconfig を実行します.

     # ldconfig
    

  6. コマンド実行PATH に/opt/intel/compiler70/ ia64/bin を追加します.


■参考文献
  1. Extensible Firmware Interface
    http://developer.intel.com/technology/efi/
  2. Intel Compilers
    http://www.intel.co.jp/jp/developer/software/products/compilers/