Automatic parallelization とは

自動並列化、自動並列化、または並列化も、文脈で使用されると自動化を意味する最後のものは、複数のプロセッサを同時に使用するためにシーケンシャルコードをマルチスレッドまたはベクトル化(または両方)コードに変換することを指します。共有メモリマルチプロセッサ(SMP)マシンです。自動並列化の目標は、プログラマが慌しくてエラーが発生しやすい手動並列処理プロセスから解放することです。ここ数十年で自動並列化の品質は向上しましたが、コンパイル時の複雑なプログラム分析や入力データ範囲などの未知の要素が必要なため、コンパイラによる順次プログラムの完全自動並列化は大きな課題です。
自動並列化が最も焦点を当てるプログラミング制御構造はループである。なぜなら、一般に、プログラムの実行時間の大部分は何らかの形のループの中で行われるからである。ループの並列化には、パイプライン型マルチスレッドとサイクリックマルチスレッドという2つの主なアプローチがあります。
たとえば、各反復で100回の操作が適用され、1000回の反復で実行されるループを考えてみましょう。これは、100行×1000行、合計100,000回の操作のグリッドと考えることができます。サイクリックマルチスレッドは、各行を別のスレッドに割り当てます。パイプラインマルチスレッドは、各列を別のスレッドに割り当てます。