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 Amdahl 定律

3.4.1.1 开销

3.4.1.2 Gustafson 定律

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 C99 行为

D.  C99 的功能

E.  实现定义的 ISO/IEC C90 行为

F.  ISO C 数据表示法

G.  性能调节

H.  Oracle Solaris Studio C:K&R C 与 ISO C 之间的差异

索引

3.2 OpenMP 并行化

C 编译器本身接受 OpenMP API,用于共享内存并行化。API 包括一组并行化 pragma。从 OpenMP Web 站点 http://www.openmp.org 中可获得有关 OpenMP API 规范的信息。

要启用编译器的 OpenMP 支持以及对 OpenMP pragma 的识别,请使用 -xopenmp 选项进行编译。如果没有 -xopenmp 选项,编译器会将 OpenMP pragma 视为注释。请参见B.2.131 -xopenmp[= i]

有关详细信息,请参见《Oracle Solaris Studio OpenMP API 用户指南》。

3.2.1 处理 OpenMP 运行时警告

OpenMP 运行时系统可针对非致命错误发出警告。使用以下函数注册一个回调函数以处理这些警告:

int sunw_mp_register_warn(void (*func) (void *) )

您可以通过对 <sunw_mp_misc.h> 发出 #include 预处理程序指令来访问该函数的原型。

如果不想注册函数,请将环境变量 SUNW_MP_WARN 设置为 TRUE,以向 stderr 发送警告消息。

有关特定于 OpenMP 的此实现的信息(包括与 OpenMP 相关的 pragma、环境变量和运行时函数),请参见《Oracle Solaris Studio OpenMP API 用户指南》。

3.2.2 环境变量

下面是与并行化 C 相关的一些环境变量。还存在由 OpenMP API 规范定义的其他环境变量以及特定于 Oracle Solaris Studio 实现的其他环境变量。有关与并行化相关的所有环境变量的说明,请参见《Oracle Solaris Studio OpenMP API 用户指南》。

3.2.3 在并行代码中使用 restrict

关键字 restrict 可以与并行化 C 一起使用。正确使用关键字 restrict 有助于编译器对确定代码序列是否可并行化需要的数据别名进行求值。有关详细信息,请参阅D.1.2 C99 关键字