検索に移動この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。コンパイル時にループをベクトル演算命令に変換すること。他の形式のデータをベクタ形式データに変換することベクトル化とは、コンピュータのプログラムにおいて、繰り返し処理で配列(ベクトル)の要素をひとつひとつ計算しているような部分を、手動あるいはコンパイラで(自動ベクトル化)、ベクトル計算機で高速に演算できるよう変形すること。近年のSIMD演算のための並列化やスーパースカラ機でのソフトウェアパイプラインに応用できる内容もある。Fortranはこれらの高速化を意識したプログラミング言語である。参考文献ベクトル化の手法[編集]以下ではFORTRANのコードを例にとって説明する。基本的に、ループ演算を1つのベクトル演算命令にするので、DOループがベクトル化対象となる。ベクトル命令に出来るパターンは各機種毎、コンパイラ毎に多少異なる。単純DOループ[編集]たとえば以下のようなDOループは1つのベクトル命令に出来る。CONTINUEIF文を含むDOループ[編集]以下のような、IF文を含むDOループは、それをサポートするハードウェアがあればベクトル化が可能である。配列Aの各要素について、IF文を満たすか満たさないかを判断するマスクベクトルを作成。マスクが真の部分だけを演算する、ベクトル命令を生成。いう方法でベクトル化を行なう。多重ループ[編集]多重ループは、全部まとめて1つのベクトル命令を生成することもある。効率化をはかるために、内側のループと外側のループを入れ替える場合もある。これは、ベクトル化を行なうためには、データがメモリ上で連続している必要があるからである。二次元配列を演算する場合、内側のループが連続したメモリをアクセスするようになっていない場合には、演算する順番を入れ替えて(すなわちDOループの内側と外側を入れ替えて)ベクトル化が容易になるようにする。40004407108。(日時は個人設定で未設定ならばUTC)。表示-継承ライセンスの下で利用可能です。追加の条件が適用される場合があります。詳細は利用規約を参照してください。Cookieに関する声明モバイルビュ。