Research Article
SPOT: A DSL for Extending Fortran Programs with Metaprogramming
Table 2
SPOT functions for using openMP directives and APIs.
| SPOT constructs | OpenMP directive & API | Type |
| OmpUseDirective(<startStmt>, <endStmt>, <clauses>) OmpUseDirective(<targetStmt>, <clauses>) | PARALLEL, PARALLEL DO, DO, ORDERED, SECTIONS, WORKSHARE, SINGLE, TASK, MASTER, CRITICAL | Pair directives |
| OmpUseDirectiveBefore(<targetStmt>, <clauses>) OmpUseDirectiveAfter(<targetStmt>, <clauses>) | ATOMIC, BARRIER, SCHEDULE, TASKWAIT, FLUSH, THREADPRIVATE | Single directives |
| OmpGetEnvironmentVariable(<var>) OmpSetEnvironmentVariable(<var>) OmpUnsetEnvironmentVariable(<var>) OmpDestroyEnvironmentVariable(<var>) OmpTestEnvironmentVariable(<var>) OmpInitEnvironmentVariable(<var>) OmpInFinal(<var>) | OMP_SET_NUM_THREADS OMP_GET_NUM_THREADS OMP_GET_THREAD_NUM OMP_SET_DYNAMIC OMP_GET_DYNAMIC ⋯ | Runtime library calls |
|
|