XL Fortran for AIX V8.1.1

ユーザーズ・ガイド


論理ボリューム I/O とデータ・ストライピングによるスループットの向上

パフォーマンスが重要なアプリケーションの場合、I/O 操作についてのジャーナル・ファイル・システム (JFS) のオーバーヘッドにより、プログラムの速度が低下する場合があります。また、大きなスクラッチ・ファイルを生成するプログラムでは、I/O 帯域幅によってパフォーマンスが制限される場合があります。ファイル・システムにではなく、論理ボリュームに直接 I/O を行うと、 JFS のオーバーヘッドをなくすことができます。論理ボリュームに対してデータ・ストライピングを使用すれば、スループットかプロセッサー使用率、またはその両方をさらに向上させることができます。

関連情報:
データ・ストライピングを使用した I/O は、通常より厳格に位置合わせしたデータ項目で大幅に処理が高速化されるので、論理ボリューム I/O またはデータ・ストライピングを行うプログラムをコンパイルする場合は、必ず -qalign オプションを使用してください。

論理ボリューム I/O

論理ボリュームをファイルとして使用するには、下のことを行ってください。

重要: この I/O を、すでにファイル・システムが入っている論理ボリュームに対して実行してはなりません。実行した場合、ファイル・システムが破壊されます。また、複数のユーザーまたはプログラムが同じ論理ボリュームへ書き込んだり、他のだれかが読み取り中の論理ボリュームへ書き込まないようにするため、必要な予防措置を講じておかなければなりません。

注:

  1. 論理ボリュームは、単一の直接アクセス・ファイルとしてのみオープンすることができ、レコードの長さはその論理ボリュームのセクター・サイズ (通常は 512 バイト) の倍数です。

  2. I/O 操作は、論理ボリュームの末尾を超えた読み書きの試みを必ずしも検出できません。したがって、プログラムが必ず論理ボリュームの範囲を記録しておくようにしてください。この方法で論理ボリュームに格納できるデータの最大量は、論理ボリュームのサイズから 1 ストライプのサイズ ( これは、XL Fortran I/O ルーチンが簿記処理に使用します) を差し引いた値です。

  3. データ・ストライピングの最適なパフォーマンスを得るには、論理ボリューム用の読み取りリストまたは書き込みリストの中に指定したデータ項目が、必ず 64 バイト境界に位置合わせされるようにしてください。この位置合わせを、大きな静的配列と共通ブロックに対して確実に行う最も簡単な方法は、-qalign=4k オプションを指定することです。

  4. STATUS='SCRATCH' 指定子または STATUS='DELETE' 指定子に関係なく、論理ボリューム内のデータと /dev 内の特殊ファイルのどちらも OPEN ステートメントまたは CLOSE ステートメントによって破壊されることはありません。
関連情報:
-qalign オプションを参照してください。

データ・ストライピング

データ・ストライピングは、主として、大きな直接アクセス・スクラッチ・ファイルの I/O ステートメントを向上させるのに役立ちます。パフォーマンスは、プログラムが大きなオブジェクトを読み書きするときに最大になります。

データ・ストライピングを利用する場合は、論理ボリューム I/Oで説明したように論理ボリュームに対して I/O を行い、smit コマンドまたは mklv コマンドによって論理ボリュームを高性能ストライプ I/O 用に特別にセットアップします。その後、スクラッチ・ファイルの命名にある技法を使用してスクラッチ・ファイルをストライプ論理ボリューム上に置くことができます。

たとえば、Fortran プログラムに次のステートメントが入っているとします。

      OPEN (UNIT=42, STATUS='SCRATCH',
     +      FORM='UNFORMATTED', ACCESS='DIRECT', RECL=131072)
      ...
      OPEN (UNIT=101, STATUS='SCRATCH',
     +      FORM='UNFORMATTED', ACCESS='DIRECT', RECL=131072)

この場合、プログラムを実行する前に次のように環境変数を設定すれば、装置 42 と装置 101 のスクラッチ・ファイルを未処理の論理ボリューム /dev/rlv30 および /dev/rlv31 に配置できます。

XLFRTEOPTS="scratch_vars=yes"
XLFSCRATCH_42="/dev/rlv30"
XLFSCRATCH_101="/dev/rlv31"
export XLFRTEOPTS XLFSCRATCH_42 XLFSCRATCH_101
関連情報:
AIX パフォーマンス・マネージメント・ガイド 」に、データ・ストライピングのパフォーマンスの説明があります。


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]