c - 支持 OpenACC 的 CAPS 编译器的限制

标签 c compiler-construction parallel-processing openacc

我目前正在撰写一份关于编译器级别自动并行化技术状态的报告。关于 OpenACC 标准,有多种编译器可用,例如 PGI 编译器、CAPS 或 CRAY 编译器。但是,我想知道 CAPS 编译器是否有特定的限制,而 OpenACC 标准中没有记录这些限制?我知道 2.0a 可能存在限制,因为该标准尚未完全实现,但有什么我应该注意的陷阱吗?

最佳答案

当人们依赖自动并行化时,OpenACC-2.0 最常见的问题是标量隐式地copy(在内核中)或firstprivate(在并行部分中) 。 这意味着,除非编译器能够私有(private)化这些标量,否则包含此类标量的循环的自动并行化(如果写入这些标量)可能会失败(即,不会“促进”循环并行执行)。 目前,CAPS 编译器并没有积极地将标量私有(private)化,因此自动并行化可能不会像您期望的那样工作。这能回答你的问题吗?

关于c - 支持 OpenACC 的 CAPS 编译器的限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21837469/

相关文章:

c - 编写代码以缩进代码

c - Linux 管道作为输入和输出

gcc - 如何获取 BIT_FIELD_REF 引用的位域的名称?

compiler-construction - C++/CLI 数组初始值设定项编译错误

compiler-construction - Fortran 90 中 MPI_type_create_resized 编译错误

r - Linux 服务器在 R 并行中崩溃 - 反序列化错误(节点 $con): error reading from connection

c# - C# 中的任务 - 使用 Random 的结果不明确

c - 为什么字符串不相等?

C字面后缀U、UL问题

python - Tensorflow OMP : Error #15 when training