Oracle® Solaris Studio 12.4: C ユーザーガイド

印刷ビューの終了

更新: 2014 年 12 月
 
 

3.2 自動並列化

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

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

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

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

このコンパイラコマンドでは、通常の方法で実行できる example という実行可能ファイルが生成されます。マルチプロセッサ実行を活用する方法については、-xautoparを参照してください。