JavaScript is required to for searching.
跳过导航链接
退出打印视图
Oracle Solaris Studio 12.2:C 用户指南
search filter icon
search icon

文档信息

前言

1.  C 编译器介绍

2.  特定于 C 编译器实现的信息

3.  并行化 C 代码

3.1 概述

3.1.1 使用示例

3.2 OpenMP 并行化

3.2.1 处理 OpenMP 运行时警告

3.3 环境变量

3.3.1 PARALLELOMP_NUM_THREADS

3.3.2 SUNW_MP_THR_IDLE

3.3.3 SUNW_MP_WARN

3.3.4 STACKSIZE

3.3.5 在并行代码中使用 restrict

3.4 数据依赖性和干扰

3.4.1 并行执行模型

3.4.2 私有标量和私有数组

3.4.3 返回存储

3.4.4 约简变量

3.5 加速

3.5.1 Amdahl 定律

3.5.1.1 开销

3.5.1.2 Gustafson 定律

3.6 负载平衡和循环调度

3.6.1 静态调度或块调度

3.6.2 自我调度

3.6.3 引导自我调度

3.7 循环变换

3.7.1 循环分布

3.7.2 循环合并

3.7.3 循环交换

3.8 别名和并行化

3.8.1 数组引用和指针引用

3.8.2 限定指针

3.8.3 显式并行化和 Pragma

3.8.3.1 串行 Pragma

3.8.3.2 并行 Pragma

for 循环的嵌套

并行化的合格性

处理器数

变量分类

privateshared 变量的缺省作用域规则

private 变量

shared 变量

readonly 变量

storeback 变量

savelast

reduction 变量

调度控制

3.9 内存边界内部函数

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.  K&R Solaris Studio C 与 Solaris Studio 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.123 -xopenmp[= i]

有关详细信息,请参见《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。有关 SUNW_MP_WARN 的更多信息,请参见3.3.3 SUNW_MP_WARN

有关特定于此 OpenMP 实现的信息,请参见《Solaris Studio OpenMP API 用户指南》。