[ 前のページ ] [ 次のページ ] [ 目次 ] [ 索引 ] [ DOC Home ]

26 特殊処理環境の管理

OpenVMSオペレーティング・システムは以下の特殊環境をサポートします。

本章では,これらの特殊処理環境の設定と管理について説明します。

本章の内容

本章では,次の作業について説明します。

作業 参照箇所
マルチプロセッシング環境の作成 第26.2.1項
マルチプロセッシング環境の監視 第26.2.2項
+ベクタ処理サポート・コードのロード 第26.4.1項
+ベクタ処理システムの構成 第26.4.2項
+ベクタ・ プロセスの管理 第26.4.3項
+ACLによるベクタ・プロセッサへのアクセス制限 第26.4.4 項
+ベクタ処理システムに関する情報の入手 第26.4.5 項
+VAXベクタ命令エミュレーション機能(VVIEF) のロード 第26.4.6 項

+ VAXのみ

さらに,次の項目について説明します。

項目 参照箇所
対称型マルチプロセッシング 第26.1 節
1次プロセッサと2次プロセッサ 第26.1.1項
アベイラブル・セットとアクティブ・セット 第26.1.2項
ベクタ処理 第26.3節
+VAXにおけるベクタ処理のサポート 第26.3.1項
+VAXベクタ命令エミュレーション機能(VVIEF) 第26.3.2項

+ VAXのみ

26.1 マルチプロセッシングについて

マルチプロセッシング・システムは,メモリの共通プールにアドレスして同時に命令を実行することが可能な2 つ以上のCPUから構成されます。

OpenVMSオペレーティング・システムは密結合対称型マルチプロセッシング(SMP) システムをサポートします。密結合SMPシステムでは,すべてのプロセッサがオペレーティング・ システムの単一のコピーを実行し,すべてのオペレーティング・ システム・コードとシステム資源に対する等しいアクセス権を持っています。OpenVMS SMP は,プロセス優先権に基づいてプロセスが実行されるCPU を動的に選択します。

マルチプロセッシング・システムは,独立したシステム,ネットワーク上のノード, またはOpenVMS Clusterを構成するメンバとして機能することができます。 マルチプロセッシング・システムおよびユニプロセッシング・ システムは,同じオペレーティング・システムを実行します。ただし, マルチプロセッシングは特定のVAXおよびAlphaプロセッサ上でしか行うことができません。1 つのマルチプロセッシング環境を構成するすべてのプロセッサのハードウェアとファームウェアは同じレベルであることが必要です。 これは,特定のプロセッサから,システム上の別のプロセッサで実行されていたプロセスの実行スレッドを再開できるようにするためです。

26.1.1 1次プロセッサと2次プロセッサ

マルチプロセッシング・システムでは,コンソール・デバイスに論理的または物理的に付加された1 つのプロセッサがシステム内の他のプロセッサの起動を担当します。 そのようなプロセッサを1次プロセッサ と呼びます。1次プロセッサ自身は,マルチプロセッシング・システムをブートするコンソール・ コマンドのターゲットとなります。1次プロセッサは, システム全体のオペレーティング・システム環境の定義やメモリの準備のための初期化を単独で行います。 さらに,1次プロセッサはシステム内の計時を担当し, システム時間の管理,およびタイマ・キューに登録された各要素がタイムアウトになっていないかどうかの監視を行います。 一方,マルチプロセッシング・システム内のこれらの役割を持たないプロセッサを 2次プロセッサと呼びます。

26.1.2 アベイラブル・セットとアクティブ・セット

システムのハードウェア電源投入時の診断テストにパスしたプロセッサの集合を アベイラブル・セットと呼んでいます。このとき,各プロセッサがシステムに対してアクティブに関与しているかどうかは問題にされません。1 次プロセッサと2次プロセッサは,マルチプロセッシング・ システムのアクティブ・セットから構成されます。

アクティブ・セットとは,VAXまたはAlphaシステムを構成するプロセッサのうち, 電源投入時の診断テストにパスし,システム動作にアクティブに関与しているプロセッサの集合をいいます。 オペレーティング・ システムはこれらのセットに含まれる各プロセッサをCPU IDで識別します。CPU ID の値は,DCLやユーティリティの特定のコマンドの構文や表示の中に頻繁に現れます。

26.1.3 プロセッサの機能

マルチプロセッシング・システムはシステム上で実行中のプロセスに特定の機能を提供します。 次の機能がサポートされています。

さらに,他の機能を追加したり,削除したりするメカニズムもあります。

実行機能は,CPUの開始動作と停止動作に影響します。

26.2 対称型マルチプロセッシング(SMP)環境の管理

対称型マルチプロセッシング・システム(SMP)の管理には,マルチプロセッシング環境の作成と監視があります。

26.2.1 マルチプロセッシング環境の作成

マルチプロセッシング・システムの構成要素と特性は,適切なシステム・ パラメータを設定することによって,システムのブート時に制御できます。 マルチプロセッシング・システムを管理するシステム・パラメータには以下のものがあります。

パラメータ 機能
MULTIPROCESSING ブート時にオペレーティング・システムにロードする同期イメージを決定する。
SMP_CPUS ブート時に,アベイラブル・セットからマルチプロセッシング環境に追加するプロセッサを決定する。

以上のようなシステム・パラメータについては,『OpenVMSシステム管理ユーティリティ・ リファレンス・マニュアル』を参照してください。

ブート時に,アベイラブル・セットの中のプロセッサをアクティブ・セットに追加することができます。 また,DCLのSTART/CPUコマンドを使用すれば, ブート後にプロセッサの追加を行うことができます。アクティブ・セットからプロセッサを削除するときには,DCL のSTOP/CPUコマンドを使用します。

SMP Extension License

Alphaシステムでは,SMPシステムを使用している場合には,SMP Extension Licenseを登録する必要があります。このライセンスはOperating System Base License および全Interactive Userライセンスをアップグレードして, システムのマルチプロセッシング・レベルに合わせます。

SMP Extension Licenseは,既存のBaseライセンスおよびUserライセンスがユニプロセッシング・ レベルで提供するすべての権利を付与するので, マルチプロセッシング・システムにアップグレードする際に,これらのライセンスを再インストールする必要はありません。 システムを新しいマルチプロセッシング・ レベルにアップグレードする場合には,既存のライセンスにSMP Extension License を追加してください。

26.2.2 マルチプロセッシング環境の監視

オペレーティング・システムのいくつかの機能により,マルチプロセッサ・ システムの特性,能力,および状態に関する特別な情報を入手することができます。 これらを可能にするものには,DCLのSHOW CPUコマンド, MONITORユーティリティなどがあります。

マルチプロセッサ構成に関する情報の入手

SHOW CPUコマンドにより,マルチプロセッシング・システムの構成および状態を示す3 つのレベルの情報が表示されます。

レベル コマンドの例 表示内容
要約 SHOW CPU 1次プロセッサ,システム構成に加えられているプロセッサ, アクティブなプロセッサを示し,システム内のプロセッサの最低リビジョン・ レベルとシステム・パラメータMULTIPROCESSINGの設定内容を表示する。 また,マルチプロセッシング環境が使用可能になっているかどうかが示される。
簡易 SHOW CPU/BRIEF 要約レベルの情報から抽出される。 構成に追加されている各プロセッサの現在のCPUの状態と,現在稼働中のプロセスがあればその状態を示す。
詳細 SHOW CPU/FULL 要約レベルおよび追加の情報から抽出される。 構成に追加されている各プロセッサの現在のCPU の状態,現在稼働中のプロセスがあればその状態,リビジョン・レベル, および能力を示す。また,特定のプロセッサ上でしか実行できないプロセスを示す。

SMPに関連するDCLのコマンドについては,『OpenVMS DCLディクショナリ』を参照してください。 MONITORユーティリティについては,『OpenVMSシステム管理ユーティリティ・ リファレンス・マニュアル』のMONITOR のパートを参照してください。

26.3 ベクタ処理について

1つの値を持つ単一のデータ項目をスカラと呼びます。また, データ型が同じで互いに関連するスカラ値のグループをベクタ と呼びます。

伝統的なスカラ・コンピュータはスカラ値に対してのみ動作するため,ベクタを扱う場合はその要素を順次処理する必要があります。 一方,ベクタ・ コンピュータはベクタをそのままのデータ構造として認識し,1つのベクタ命令によってベクタ全体を操作することができます。 複数の算術演算または論理演算が同時に行われるため, ベクタ・コンピュータで1つのベクタを処理すると, 伝統的なコンピュータでスカラ命令だけを使用して同じベクタを処理する場合よりも4 〜5倍高速になります。

さらに,ベクタ・プロセッサはデータのストリームを高速に処理するための特殊なハードウェア技術によって高速な処理を実現しています。 これらの技術として, データのパイプライン処理やチェイニングのほか,メモリ, 算術機能ユニット,論理機能ユニットなどのハードウェアを様々な形式で並列化したことなどが挙げられます。 ユニットをパイプライン化することによって, 同じ処理フローの前後の演算を並行して行うことが可能になっています。

26.3.1 VAXにおけるベクタ処理のサポート(VAXのみ)

VAXベクタ・アーキテクチャには,それぞれが64個の要素を含む16個の64 ビット・ベクタ・レジスタ(V0〜V15),ベクタ・カウント・レジスタ(VCR) やベクタ長レジスタ(VLR),ベクタ・マスク・レジスタ(VMR)などのベクタ制御レジスタ, ベクタ機能ユニット,ベクタ命令のセットが含まれています。VAX ベクタ命令は,ベクタ・レジスタとメモリとの間のデータ転送, 整数および浮動小数点数の算術演算,およびプロセッサの制御を行います。VAX ベクタ・アーキテクチャ,ベクタ・レジスタ,およびベクタ命令についての詳細は, 『VAX MACRO and Instruction Set Reference Manual』を参照してください。

VAXベクタ・アーキテクチャに準拠したVAXシステムをベクタ対応 システムと呼びます。

VAXベクタ処理システムの構成には,スカラCPUとベクタCPUとを統合したプロセッサ( ベクタ機能付きプロセッサ)が1組以上含まれています。 このようなシステム構成には,各スカラ・プロセッサに対して1つのベクタ・ コプロセッサを持つ対称型構成,および付加的なスカラ専用プロセッサを組み込んだ非対称型構成があります。VAX ベクタ処理システムのモデルにより, ベクタ機能付きプロセッサは,スカラCPUコンポーネントとベクタCPU コンポーネントを物理的に統合した単一のモジュールから構成される場合と, それぞれのコンポーネントを物理的に分離した2つのモジュールから構成される場合があります。 どちらの場合も,スカラCPU およびベクタCPUは論理的に統合され,同じメモリを共用し,高速の専用内部パスを通じてデータを送信します。 このようにCPUが密接に結合しているため, ベクタCPUを使用した場合は入出力動作が軽減されます。

VAXスカラ処理システムと同様,VAXベクタ処理システムはVAXclusterのメンバ, ネットワーク上のノード,またはスタンドアロン・システムとして稼働させることができます。

26.3.2 VAXベクタ命令エミュレーション機能(VVIEF) (VAXのみ)

VAXベクタ命令エミュレーション機能(VVIEF)は,オペレーティング・システムに標準で備えられている機能であり, ベクタ・プロセッサが利用できないVAX システム上でベクタ化されたアプリケーションの作成やデバッグを可能にします。VVIEF は,非特権VAXベクタ命令とベクタ・システム・サービスを含むVAX ベクタ処理環境をエミュレートします。VVIEFの使用は, ユーザ・モードのコードに制限されています。

VVIEFは厳密にプログラム開発ツールであり,ベクタ・ハードウェア上での動作をソフトウェア上で実現するものではありません。 したがって, VVIEFのもとで実行するようにアプリケーションをベクタ化しても性能は向上しません。 むしろ,VVIEFのもとで実行されるベクタ化アプリケーションの動作はスカラ版アプリケーションよりも低速です。

オペレーティング・システムは,VVIEFブートストラップ・コードをエグゼクティブ・ ローダブル・イメージとして提供します。ここで注意が必要なのは,OpenVMS ベクタ・サポート・コードが存在すると,VVIEFは非稼働状態のままであるという点です。 ベクタ機能付きシステムでベクタ・サポート・ コードをロードしないようにしてVVIEFを稼働させることは可能ですが, それによる利点はほとんどありません。ベクタ・サポート・コードのロードについては, 第26.4.1項で説明します。

VVIEFのロードとアンロードについては,第26.4.6 項で説明します。

26.4 ベクタ処理環境の管理(VAXのみ)

この節では,ベクタ処理システムの管理について取り上げます。

26.4.1 ベクタ処理サポート・コードのロード(VAX のみ)

VAXベクタ処理システムでは,ブート時にベクタ処理サポート・コードが自動的にロードされるように設定されています。 この省略時の動作は, 静的なシステム・パラメータVECTOR_PROCを設定することで変更することができます。 具体的な設定方法は,表 26-1に示すとおりです。

表 26-1 システム・パラメータVECTOR_PROCの設定

結果
0 システム構成に関係なく,ベクタ処理サポート・ コードをロードしない。
1 少なくとも1つのベクタ機能付きプロセッサが存在する場合にベクタ処理サポート・ コードをロードする(省略時の設定)。
2 システムがベクタ対応の場合にベクタ処理サポート・ コードをロードする。この設定は,各プロセッサごとに電源を供給しているシステムで最も有効。 また,この設定では,オペレーティング・ システムを再ブートしなくてもベクタ・プロセッサをシステム構成に追加することができる。

26.4.2 ベクタ処理システムの構成(VAXのみ)

マルチプロセッシング構成へのベクタ機能付きプロセッサの追加または削除は, システム・パラメータSMP_CPUSを設定することによってブート時に行うことができます。 また,DCLのSTART/CPUコマンドおよびSTOP/CPUコマンドによって実行時に行うこともできます。 オペレーティング・システムはベクタ機能付きプロセッサのスカラCPU コンポーネントとベクタCPUコンポーネントとを単一のプロセッサとして扱い, これらの起動と停止を同時に行います。

ブート時,システム・パラメータSMP_CPUSの設定に従って,マルチプロセッシング・ システムの中の2次プロセッサのうちどのプロセッサを構成に追加するかが決定されます。 これらの2次プロセッサの中にはベクタ機能付きプロセッサも含まれます。 オペレーティング・システムは,1 次プロセッサを常に構成に追加します。システム・パラメータSMP_CPUS の省略時の値-1では,利用可能なすべてのプロセッサがブートされ, スカラ・プロセッサもベクタ機能付きプロセッサも同様にシステム構成に追加されます。 このSMP_CPUSパラメータについての詳細は,『OpenVMSシステム管理ユーティリティ・ リファレンス・マニュアル』を参照してください。ブート時, ベクタ機能付きプロセッサの起動の前に,ベクタ処理サポート・コード( 第26.4.1項を参照)をロードしておく必要があります。 サポート・コードがロードされていなければ,プロセスはベクタ機能付きプロセッサのスカラCPU コンポーネントしか使用できなくなります。

稼働中のマルチプロセッシング・システムに2次プロセッサを追加する場合は,DCL のSTART/CPUコマンドを使用します。また,システムから2次プロセッサを削除する場合は,STOP/CPU コマンドを使用します。この場合でも, ベクタ処理サポート・コードがブート時にロードされていなければ, 起動したベクタ機能付きプロセッサのベクタCPUコンポーネントを使用することはできません。

STOP/CPUコマンドを使用する場合,そのコマンドによって削除するベクタ機能付きプロセッサが現在動作中のベクタ使用プロセスにベクタ機能を提供する唯一のものである場合, コマンドは異常終了し,メッセージが生成されます。 プロセッサを修理するためにプロセッサを構成から削除するような特別なケースでは,STOP/CPU/OVERRIDE コマンドを発行すれば,ベクタ機能を使用するプロセスが残っていてもプロセッサを強制的に停止させることができます。

STOP/CPU/OVERRIDEコマンドがベクタ機能付きプロセッサに対して発行された場合, またはベクタ機能付きプロセッサが異常終了した場合,オペレーティング・ システムは残されたすべてのベクタ使用プロセスをベクタ機能付きプロセッサが構成に追加されるまで「CPU 機能待ち」状態(RSN$_CPUCAP) にします。その後,他のプロセス(潜在的ベクタ使用プロセス) からベクタ命令が発行されると,要求されたCPUが稼働していないことを示すメッセージ(CPUNOTACT) が返されます。

START/CPUコマンドとSTOP/CPUコマンドについての詳細は,『OpenVMS DCLディクショナリ』を参照してください。

26.4.3 ベクタ・プロセスの管理(VAXのみ)

オペレーティング・システムのスケジューリング・アルゴリズムにより, ベクタ処理資源とスカラ処理資源とはベクタ使用プロセス,潜在的ベクタ使用プロセス, スカラ使用プロセスに自動的に分配されます。しかし, VAXベクタ処理構成は,次の2つの重要な点が異なります。

システム内に存在するベクタ使用プロセスの数がそれらにサービスを提供するスカラ機能付きプロセッサ( スカラ・プロセッサとベクタ・プロセッサのペア) の数よりも多い場合は,プロセスの優先順位に従ってベクタ使用プロセスがベクタ機能付きプロセッサを共用します。 ベクタ機能付きプロセッサを使用する複数のプロセスの優先順位が等しい場合, それらのプロセスはラウンド・ ロビン形式でスケジューリングされます。ベクタ機能付きプロセッサに新しいベクタ使用プロセスをスケジューリングする場合, システムは現在メモリ内に存在するベクタ使用プロセスのベクタ・コンテキストを保存し, メモリから新しいベクタ使用プロセスを復元する必要があります。 このような「低速」ベクタ・コンテキスト・スイッチが過剰に発生する場合は, 実際の演算よりもベクタ・コンテキスト・スイッチに多くの処理時間が費やされるようになります。

ベクタ処理の必要性が大きなシステムは,それらの必要性を満たすように構成する必要があります。 しかし,既存の構成のままでチューニングを行うことでその性能を改善できるいくつかの方法があります。

26.4.3.1 システム資源とプロセス・ クォータの調整(VAXのみ)

いくつかのベクタ使用プロセスが同時に稼働状態になるシステムでは, プロセスがメモリを共用するためにページング動作が増加することがあります。 プロセス・ページングの回数を減らすためには,AUTHORIZEユーティリティを使って, ベクタ化アプリケーションを実行しているプロセスのワーキング・ セットの制限とクォータを調整します(詳細は,『OpenVMSシステム管理ユーティリティ・ リファレンス・マニュアル』のAUTHORIZEのパートを参照してください) 。また,プロセス最大ワーキング・セット・サイズ(システム・ パラメータWSMAX)の値を大きくします。さらに必要であれば,ベクタ化アプリケーションでワーキング・ セット・システム・サービス($LKWSET)のロック・ ページを使って,自身の性能を向上させます。

ベクタを使用する各プロセスは8 KBのシステム非ページング動的メモリを割り当てられ, その中にベクタ・コンテキストの情報が格納されます。 システム内で同時に稼働状態になっているベクタ使用プロセスの数に応じて, システム・パラメータNPAGEDYNの値を調整します。DCLのSHOW MEMORY/POOL/FULLコマンドを使用すると,非ページング・プールの現在のサイズがバイト数で示されます。

VAXベクタ処理システムの最適な性能を得るため,バッチ・キューの設定時にシステムのベクタ資源を飽和させないように注意する必要があります。 キューに登録された稼働状態のベクタ化バッチ・ジョブの数がシステム内のベクタ機能付きプロセッサの数より多いと, ベクタ・コンテキスト・ スイッチに処理時間の多くの部分が消費されるようになります。

できれば,ベクタ化されたバッチ・ジョブをVAXベクタ処理システムにディスパッチするためのキュー( たとえばVECTOR_BATCH)を別に用意し,そのジョブの制限数をシステム内のベクタ機能付きプロセッサの数と同じにします。 そして,ベクタ化バッチ・ジョブをこの汎用ベクタ処理バッチ・キューに登録するようにユーザに指示します。

26.4.3.2 プロセスへのスカラ資源およびベクタ資源の配分(VAX のみ)

ベクタ使用プロセスはベクタ機能付きプロセッサにスケジューリングする必要があります。 プロセスが実行しているイメージが,ある期間スカラ命令だけを発行し, ベクタ機能付きプロセッサを他のベクタ使用プロセスと共用する必要がある場合, そのイメージはスカラ・プロセッサ上で実行できないために, そのイメージ自身の性能だけでなく,システム全体の性能が低下します。

省略時の設定では,ベクタ使用プロセスがある期間ベクタ命令を発行していない場合, そのプロセスはすぐにはベクタ命令を発行しないと想定されます。 このプロセスはベクタ機能が必要でないとみなされ,潜在的ベクタ使用プロセスに移行します。

非対称型ベクタ処理構成では,潜在的ベクタ使用プロセスが検出されると次のような効果があります。

システム・パラメータVECTOR_MARGINは,すべてのベクタ使用プロセスの状態がチェックされる間隔を決定します。VECTOR_MARGIN に,1からFFFFFFFF(16) までの任意の整数値に設定することができます。この値は, システム・パラメータQUANTUMによって決定される連続プロセス・クォンタムの数を表します。 指定したクォンタムの数で決定する期間プロセスがベクタ命令を発行しないと, システムはそのプロセスを潜在的ベクタ使用プロセスとして宣言します。

VECTOR_MARGINの省略時の値は200(10)です。

26.4.4 ACLによるベクタ・プロセッサへのアクセスの制限(VAX のみ)

ベクタ機能は,ユーザがベクタ・プロセッサのサービスを使用できるようにするために, オペレーティング・システムが使用する抽象的なソフトウェアです。 アクセス制御リスト(ACL)にベクタ機能のオブジェクトを対応づけることによって, ベクタ・プロセッサの使用を特定のID を持つユーザに制限することができます。

たとえば,大学ではベクタ・プロセッサの使用を,イメージ処理を研究する学部や学生に限定する場合があります。 また,情報サービス会社では, ベクタ機能へのアクセスとベクタ・プロセッサを使用した時間の一方または両方をユーザに対して請求する場合があります。

DCLコマンドSET SECURITY/ACLを次の形式で使用して,ベクタ機能についてのACL を設定します。

SET SECURITY /CLASS=CAPABILITY /ACL=(ace[,...]) VECTOR

次のDCLコマンドでベクタ機能のが表示されます。

     $ SHOW SECURITY /CLASS=CAPABILITY VECTOR

ここで,ACLはベクタ機能に対して設定されるものであり,システム上の任意またはすべてのベクタ機能付きプロセッサの使用を制限するものではないということに注意してください。 オペレーティング・システムは,ベクタ機能付きプロセッサ上のベクタ機能を使用する許可を持たないプロセスでもスケジューリングします。 しかし,これらのプロセスが利用できるのはプロセッサのスカラCPU コンポーネントだけであって,ベクタ命令を実行することはできません。 同様に,ACLはベクタ機能に対して設定され, ベクタ機能付きプロセッサに対して設定されているものでないため, ACLを使って特定のプロセッサ上でジョブを長時間実行させることはできません。

SET SECURITYコマンドとSHOW SECURITYコマンドについての詳細は,『OpenVMS DCL ディクショナリ』を参照してください。

26.4.5 ベクタ処理システムに関する情報の入手(VAX のみ)

ベクタ処理システムの状態とプロセス別のシステム使用量についての情報を様々な方法で入手することができます。 具体的には,次のとおりです。

26.4.5.1 DCLレキシカル関数F$GETJPIおよびF$GETSYI (VAX のみ)

DCLレキシカル関数F$GETJPIは以下の項目を受け付け,指定されたプロセスのベクタ状態に関して対応する情報を返します。

項目 戻り値の型 返される情報
FAST_VP_SWITCH 整数 指定されたプロセスが発行したベクタ命令のうち,ベクタ・ コンテキスト・スイッチを行うことなく非稼働状態のベクタ・プロセッサを稼働状態にした命令の数。
SLOW_VP_SWITCH 整数 指定されたプロセスが発行したベクタ命令のうち, 完全なベクタ・コンテキスト・スイッチを行うことによって非稼働状態のベクタ・ プロセッサを稼働状態にした命令の数。
VP_CONSUMER 論理 指定されたプロセスがベクタ使用プロセスかどうかを示すフラグ。
VP_CPUTIM 整数 指定されたプロセスがベクタ機能を利用した時間の累計。

DCLレキシカル関数F$GETSYIは以下の項目を受け付け,ベクタ処理システムの状態に関して対応する情報を返します。

項目 戻り値の型 返される情報
VECTOR_EMULATOR 整数 システムにVAXベクタ命令エミュレーション機能(VVIEF) が存在することを示すフラグ。
VP_MASK 整数 システム内のどのプロセッサがベクタ・ コプロセッサを持っているかを示すマスク。
VP_NUMBER 整数 システム内のベクタ・ プロセッサの数。

DCLレキシカル関数のF$GETJPIおよびF$GETSYIについての詳細は,『OpenVMS DCL ディクショナリ』を参照してください。

26.4.5.2 SHOW CPU/FULLコマンド(VAXのみ)

SHOW CPU/FULLコマンドにより,指定されたCPUの機能の一覧が示されます。STOP/CPU コマンドを実行する場合,まずこのコマンドを実行してシステムがベクタ機能を持っているかどうかを調べてください。

SHOW CPUコマンドについての詳細は,『OpenVMS DCLディクショナリ』を参照してください。

26.4.5.3 SHOW PROCESSコマンドとLOGOUT/FULLコマンド(VAX のみ)

あるプロセスがベクタ機能付きプロセッサにスケジューリングされたベクタ使用プロセスとして任意の時間が経過すると,DCL のSHOW PROCESSコマンドとLOGOUT/FULL コマンドによって,そのプロセスがベクタCPUを実際に使用した時間とそのプロセスにベクタCPU が割り当てられた時間がそれぞれ表示されます。

ベクタCPU時間を累計するためには,プロセスがベクタ使用プロセス(すなわち, システム・ベクタ機能を必要とするプロセス)であり,ベクタ機能付きプロセッサにスケジューリングされていることが必要です。 オペレーティング・ システムは,ベクタ使用プロセスをベクタ機能付きプロセッサにスケジューリングすると, そのプロセスが実際にはベクタCPUを使用していなくてもそのプロセスのベクタCPU 時間を累計します。スカラ使用プロセスと潜在的ベクタ使用プロセスはベクタCPU を使用しないため,これらのプロセスがベクタ機能付きプロセッサにスケジューリングされているときでも, それらのベクタCPU時間は累計されません。

SHOW PROCESSコマンドおよびLOGOUTコマンドについての詳細は,『OpenVMS DCL ディクショナリ』を参照してください。

26.4.6 VAXベクタ命令エミュレーション機能(VVIEF) のロード(VAXのみ)

VAXベクタ命令エミュレーション機能(VVIEF)は,オペレーティング・システムに標準で備えられている機能であり, ベクタ・プロセッサが利用できないVAX システム上でベクタ化されたアプリケーションの作成やデバッグを可能にします。VVIEF は厳密にプログラム開発ツールとして意図されたものであり, ベクタ・ハードウェア上での動作をソフトウェア上で実現するものではありません。 したがって,VVIEFのもとで実行するようにアプリケーションをベクタ化しても性能は向上しません。 むしろ,VVIEFのもとで実行されるベクタ化アプリケーションの動作はスカラ版アプリケーションよりも低速です。

コマンド・プロシージャSYS$UPDATE:VVIEF$INSTAL.COMを呼び出すと, 次回以降のシステム・ブート時にVVIEFがロードされます。VVIEF をアンロードするためには,コマンド・プロシージャSYS$UPDATE:VVIEF$DEINSTAL.COM を呼び出して,システムを再ブートします。

システムにVVIEFが存在するかどうかはDCLの以下のコマンドによって調べることができます。

     $ X = F$GETSYI("VECTOR_EMULATOR")
     $ SHOW SYMBOL X
     X = 1   Hex = 00000001  Octal = 0000000001

戻り値が1の場合はVVIEFが存在し,0の場合は存在しません。

ベクタ・サポート・コードが存在してもVVIEFをシステムにロードすることはできますが, その場合は非稼働状態のままになります。ベクタ機能付きシステム( 第26.4.1項を参照)でベクタ・ サポート・コードをロードしないようにしてVVIEFを稼働させることは可能ですが, それによる利点はほとんどありません。システム内でベクタ機能付きプロセッサだけに障害が発生した場合, 中断されたベクタ化されたアプリケーションの実行はVVIEF のもとでは再開されません。


[ 前のページ ] [ 次のページ ] [ 目次 ] [ 索引 ] [ DOC Home ]