JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
Oracle Solaris Studio 12.3: C ユーザーガイド     Oracle Solaris Studio 12.3 Information Library (日本語)
search filter icon
search icon

ドキュメントの情報

はじめに

1.  C コンパイラの紹介

2.  C コンパイラ実装に固有の情報

3.  C コードの並列化

3.1 並列化の概要

3.2 OpenMP に対する並列化

3.2.1 OpenMP の実行時の警告の処理

3.2.2 環境変数

3.2.3 並列コードでの restrict の使用

3.3 データの依存性と干渉

3.3.1 並列実行モデル

3.3.2 固有スカラーと固有配列

3.3.3 ストアバック

3.3.4 縮約変数

3.4 処理速度の向上

3.4.1 アムダールの法則

3.4.1.1 オーバーヘッド

3.4.1.2 ガスタフソンの法則

3.5 負荷バランスとループのスケジューリング

3.5.1 静的 (チャンク) スケジューリング

3.5.2 セルフスケジューリング

3.5.3 ガイド付きセルフスケジューリング

3.6 ループの変換

3.6.1 ループの分散

3.6.2 ループの融合

3.6.3 ループの交換

3.7 別名と並列化

3.7.1 配列およびポインタの参照

3.7.2 制限付きポインタ

3.8 メモリーバリアー組み込み関数

4.  lint ソースコード検査プログラム

5.  型に基づく別名解析

6.  ISO C への移行

7.  64 ビット環境に対応するアプリケーションへの変換

8.  cscope: 対話的な C プログラムの検査

A.  機能別コンパイラオプション

B.  C コンパイラオプションリファレンス

C.  ISO/IEC C 99 の処理系定義の動作

D.  C99 の機能

E.  ISO/IEC C90 の処理系定義の動作

F.  ISO C データ表現

G.  パフォーマンスチューニング

H.  Oracle Solaris Studio C: K&R C と ISO C の違い

索引

3.1 並列化の概要

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

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

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

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

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