Oracle Solaris Studio 12.2: C ユーザーガイド

3.1 概要

C コンパイラは、並列化しても安全であると判断したループに対して並列コードを生成します。通常、これらのループは、独立して実行可能な繰り返しを持っています。繰り返しが実行される順番や、並列に実行するかどうかといったことなどは、ループの実行結果に影響はありません。すべてではありませんが、ほとんどのベクトル処理用ループはこのような種類のループです。

C では別名が存在する (複数の変数が同一の実体である / を指す) 可能性があるため、並列化の安全性を判断することは困難です。コンパイラの作業を容易にするため、Solaris Studio C にはプラグマおよび追加のポインタ修飾子が用意されており、プログラマは認識できてもコンパイラが判定できない別名情報をコンパイラに渡します。詳細については、第 5 章型に基づく別名解析を参照してください。

3.1.1 使用例

次の例は、C を並列化し、制御する方法を示しています。


% cc -fast -xO4 -xautopar example.c -o example

この例では、通常の方法で実行できる example という実行可能ファイルが生成されます。マルチプロセッサ上で実行する場合は、「B.2.75 -xautopar を参照してください。