psyclone.psyir.transformations.omp_parallel_loop_trans#
Classes#
OMPParallelLoopTrans: Adds an OpenMP PARALLEL DO directive to a loop.
- class psyclone.psyir.transformations.omp_parallel_loop_trans.OMPParallelLoopTrans(omp_directive='do', omp_schedule='auto')[source]#
Adds an OpenMP PARALLEL DO directive to a loop.
For example:
>>> from psyclone.parse.algorithm import parse >>> from psyclone.psyGen import PSyFactory >>> ast, invokeInfo = parse("lfric.F90") >>> psy = PSyFactory("lfric").create(invokeInfo) >>> schedule = psy.invokes.get('invoke_v3_kernel_type').schedule >>> # Uncomment the following line to see a text view of the schedule >>> # print(schedule.view()) >>> >>> from psyclone.transformations import OMPParallelLoopTrans >>> trans = OMPParallelLoopTrans() >>> trans.apply(schedule.children[0]) >>> # Uncomment the following line to see a text view of the schedule >>> # print(schedule.view())
Inheritance

- apply(node, options=None, **kwargs)[source]#
Apply an OMPParallelLoop Transformation to the supplied node (which must be a Loop). In the generated code this corresponds to wrapping the Loop with directives:
!$OMP PARALLEL DO ... do ... ... end do !$OMP END PARALLEL DO
- Parameters:
node (
psyclone.psyir.nodes.Loop) – the node (loop) to which to apply the transformation.options (Optional[Dict[str, Any]]) – a dictionary with options for transformations and validation.