JavaScript is required to for searching.
Skip Navigation Links
Exit Print View
Oracle Solaris Studio 12.2: OpenMP API User's Guide
search filter icon
search icon

Document Information

Preface

1.  Introducing the OpenMP API

2.  Compiling and Running OpenMP Programs

3.  Implementation-Defined Behaviors

4.  Nested Parallelism

5.  Tasking

6.  Automatic Scoping of Variables

7.  Scope Checking

8.  Performance Considerations

A.  Placement of Clauses on Directives

B.  Converting to OpenMP

B.1 Converting Legacy Fortran Directives

B.1.1 Converting Sun-Style Fortran Directives

B.1.1.1 Issues Between Sun-Style Fortran Directives and OpenMP

B.1.2 Converting Cray-Style Fortran Directives

B.1.2.1 Issues Between Cray-Style Fortran Directives and OpenMP Directives

B.2 Converting Legacy C Pragmas

B.2.1 Issues Between Legacy C Pragmas and OpenMP

Index

B.2 Converting Legacy C Pragmas

The C compiler accepts legacy pragmas for explicit parallelization. These are described in the C User’s Guide. As with the Fortran directives, these are only suggestions.

The legacy parallelization pragmas are:

Table B-5 Converting Legacy C Parallelization Pragmas to OpenMP

Legacy C Pragma
Equivalent OpenMP Pragma
#pragma MP taskloop [clauses]
#pragma omp parallel for [clauses]
#pragma MP serial_loop
No exact equivalent. You can use

#pragma omp master

loop

#pragma MP serial_loop_nested
No exact equivalent. You can use

#pragma omp master

loopnest

The taskloop pragma can take on one or more of the following optional clauses.

Table B-6 taskloop Optional Clauses and OpenMP Equivalents

taskloop Clause
OpenMP parallel for Equivalent Clause
maxcpus(n)
No exact equivalent. Use num_threads(n)
private(v1,v2,...)
private(v1,v2,...)
shared(v1,v2,...)
shared(v1,v2,...)
readonly(v1,v2,...)
No exact equivalent. You can achieve the same effect by using firstprivate(v1,v2,...).
storeback(v1,v2,...)
You can achieve the same effect by using lastprivate(v1,v2,...).
savelast
No exact equivalent. You can achieve the same effect by using lastprivate(v1,v2,...).
reduction(v1,v2,...)
reduction(operator:v1,v2,...). Must supply the reduction operator as well as the list of variables.
schedtype(spec)
schedule(spec) (See Table B-7)

The schedtype(spec) clause accepts the following scheduling specifications.

Table B-7 SCHEDTYPE Scheduling and OpenMP schedule Equivalents

schedtype(spec)
OpenMP schedule( spec) Clause Equivalent
SCHEDTYPE(STATIC)
schedule(static)
SCHEDTYPE(SELF(chunksize))
schedule(dynamic,chunksize)

Note: Default chunksize is 1.

SCHEDTYPE(FACTORING(m))
No exact equivalent.
SCHEDTYPE(GSS(m))
schedule(guided, m)

Default m is 1.

B.2.1 Issues Between Legacy C Pragmas and OpenMP