Reputation: 1
I'm currently writing a report on the state of automatic parallelisation techniques on compiler level. Concerning the OpenACC standard, several compilers are available, such as the PGI compiler, CAPS, or the CRAY compiler. However, I was wondering if there are specific restrictions to the CAPS compiler, which are not documented within the OpenACC standard? I'm aware, that there are probably restrictions for 2.0a, as this standard is not yet completely implemented but are there any pitfalls I should take care of?
Upvotes: 0
Views: 125
Reputation: 151
The most common problem with OpenACC-2.0 when people rely on automatic parallelization, is that the scalars are implicitely copy (in kernels) or firstprivate (in parallels sections). This means that unless the compiler is able to privatize these scalars, automatic parallelization of loops that contains such scalars, if they are written to, will likely fail (that is, not "promote" a loop to parallel execution). At the present time, CAPS Compilers does not aggressively privatize scalars, so automatic parallelization may not work as well as you'd expect. Does that answer your question?
Upvotes: 1