ガイド付き自動並列化 (GAP) メッセージは、最適化を向上するためのアドバイスを提供します。
メッセージには、以下の提案が含まれます。
ループの入れ子の自動並列化
内部ループの自動ベクトル化
データ変換
特定の提案に従うかどうか決定する必要があります。例えば、特定のディレクティブを適用するようにアドバイスされた場合は、そのディレクティブのセマンティクスを理解して、対象のループに安全に適用できるかどうかを慎重に検証して判断しなければなりません。
ディレクティブの適用を誤ると、コンパイラーが不正なコードを生成し、アプリケーションが正しく実行されません。
提案されたアドバイスを完全に理解していない場合は、そのアドバイスを適用する前に、コンパイラー・ドキュメントの関連トピックを参照してください。
提案されたアドバイスを適用すると、コンパイラーはそれが正しいと判断し、チェックや警告を行いません。
一般的に、ループに関連するメッセージは、ループのベクトル化や並列化を目的としていることが多いです。ループの最適化に慣れていない方は、コンパイラー・ドキュメントのループの最適化に関するトピックを参照してください。
データをメモリーからフェッチしたり、メモリーへストアすると、最適化の助けになることもあれば、妨げになることもあります。これらのフェッチ/ストア操作は、読み取りや書き込みと呼ばれることがありますが、これを READ や WRITE 入出力文と混同しないでください。READ 文 (入力) は、メモリーへストアする方法の 1 つであり、WRITE 文 (出力) は、メモリーからフェッチする方法の 1 つです。式の中の値は、式が評価される前にメモリーからフェッチする (読み取る) 必要があります。代入の左辺にある変数は、メモリーへのストア (書き込み) の対象となります。呼び出しプロシージャーへ渡される実際の引数は、メモリーからフェッチしてストアできます。