Next: , Previous: , Up: Implementation Defined Pragmas   [Contents][Index]


2.3 Pragma Acc_Parallel

Syntax:

pragma Acc_Parallel [( ACC_PARALLEL_CLAUSE [, ACC_PARALLEL_CLAUSE... ])];

ACC_PARALLEL_CLAUSE ::=
    Acc_If        => boolean_EXPRESSION
  | Acc_Private   => IDENTIFIERS
  | Async         => integer_EXPRESSION
  | Copy          => IDENTIFIERS
  | Copy_In       => IDENTIFIERS
  | Copy_Out      => IDENTIFIERS
  | Create        => IDENTIFIERS
  | Default       => None
  | Device_Ptr    => IDENTIFIERS
  | First_Private => IDENTIFIERS
  | Num_Gangs     => integer_EXPRESSION
  | Num_Workers   => integer_EXPRESSION
  | Present       => IDENTIFIERS
  | Reduction     => (REDUCTION_RECORD)
  | Vector_Length => integer_EXPRESSION
  | Wait          => INTEGERS

REDUCTION_RECORD ::=
    "+"   => IDENTIFIERS
  | "*"   => IDENTIFIERS
  | "min" => IDENTIFIERS
  | "max" => IDENTIFIERS
  | "or"  => IDENTIFIERS
  | "and" => IDENTIFIERS

IDENTIFIERS ::=
  | IDENTIFIER
  | (IDENTIFIER, IDENTIFIERS)

INTEGERS ::=
  | integer_EXPRESSION
  | (integer_EXPRESSION, INTEGERS)

Requires the -fopenacc flag.

Equivalent to the parallel directive of the OpenAcc standard. This pragma should be placed in loops. It offloads the content of the loop to an accelerator device.

For more information about the effect of the clauses, see the OpenAcc specification.