【问题标题】:Restrictions of the OpenACC aware CAPS compilerOpenACC 感知 CAPS 编译器的限制
【发布时间】:2014-03-17 05:51:40
【问题描述】:
我目前正在撰写一份关于编译器级别自动并行化技术状态的报告。关于 OpenACC 标准,有几种编译器可用,例如 PGI 编译器、CAPS 或 CRAY 编译器。但是,我想知道 CAPS 编译器是否有特定限制,OpenACC 标准中没有记录这些限制?我知道,2.0a 可能存在限制,因为该标准尚未完全实施,但我应该注意哪些陷阱?
【问题讨论】:
标签:
c
compiler-construction
parallel-processing
openacc
【解决方案1】:
当人们依赖自动并行化时,OpenACC-2.0 最常见的问题是标量是隐式 copy(在内核中)或 firstprivate(在并行部分中) .
这意味着除非编译器能够私有化这些标量,否则包含此类标量的循环的自动并行化(如果写入它们)可能会失败(即,不会将循环“提升”为并行执行)。
目前,CAPS 编译器并没有积极地将标量私有化,因此自动并行化可能无法像您预期的那样工作。这能回答你的问题吗?