LLVM OpenMP* Runtime Library
Typedefs | Functions
Parallel (fork/join)

Typedefs

typedef void(* kmpc_micro) (kmp_int32 *global_tid, kmp_int32 *bound_tid,...)
 

Functions

void __kmpc_push_num_threads (ident_t *loc, kmp_int32 global_tid, kmp_int32 num_threads)
 
void __kmpc_fork_call (ident_t *loc, kmp_int32 argc, kmpc_micro microtask,...)
 
void __kmpc_push_num_teams (ident_t *loc, kmp_int32 global_tid, kmp_int32 num_teams, kmp_int32 num_threads)
 
void __kmpc_fork_teams (ident_t *loc, kmp_int32 argc, kmpc_micro microtask,...)
 
void __kmpc_serialized_parallel (ident_t *loc, kmp_int32 global_tid)
 
void __kmpc_end_serialized_parallel (ident_t *loc, kmp_int32 global_tid)
 

Detailed Description

These functions are used for implementing #pragma omp parallel.

Typedef Documentation

◆ kmpc_micro

typedef void(* kmpc_micro) (kmp_int32 *global_tid, kmp_int32 *bound_tid,...)

The type for a microtask which gets passed to __kmpc_fork_call(). The arguments to the outlined function are

Parameters
global_tidthe global thread identity of the thread executing the function.
bound_tidthe local identity of the thread executing the function
...pointers to shared variables accessed by the function.

Definition at line 1494 of file kmp.h.

Function Documentation

◆ __kmpc_end_serialized_parallel()

void __kmpc_end_serialized_parallel ( ident_t loc,
kmp_int32  global_tid 
)
Parameters
locsource location information
global_tidglobal thread number

Leave a serialized parallel construct.

Definition at line 483 of file kmp_csupport.cpp.

◆ __kmpc_fork_call()

void __kmpc_fork_call ( ident_t loc,
kmp_int32  argc,
kmpc_micro  microtask,
  ... 
)
Parameters
locsource location information
argctotal number of arguments in the ellipsis
microtaskpointer to callback routine consisting of outlined parallel construct
...pointers to shared variables that aren't global

Do the actual fork and call the microtask in the relevant number of threads.

Definition at line 261 of file kmp_csupport.cpp.

◆ __kmpc_fork_teams()

void __kmpc_fork_teams ( ident_t loc,
kmp_int32  argc,
kmpc_micro  microtask,
  ... 
)
Parameters
locsource location information
argctotal number of arguments in the ellipsis
microtaskpointer to callback routine consisting of outlined teams construct
...pointers to shared variables that aren't global

Do the actual fork and call the microtask in the relevant number of threads.

Definition at line 364 of file kmp_csupport.cpp.

◆ __kmpc_push_num_teams()

void __kmpc_push_num_teams ( ident_t loc,
kmp_int32  global_tid,
kmp_int32  num_teams,
kmp_int32  num_threads 
)
Parameters
locsource location information
global_tidglobal thread number
num_teamsnumber of teams requested for the teams construct
num_threadsnumber of threads per team requested for the teams construct

Set the number of teams to be used by the teams construct. This call is only required if the teams construct has a num_teams clause or a thread_limit clause (or both).

Definition at line 345 of file kmp_csupport.cpp.

◆ __kmpc_push_num_threads()

void __kmpc_push_num_threads ( ident_t loc,
kmp_int32  global_tid,
kmp_int32  num_threads 
)
Parameters
locsource location information
global_tidglobal thread number
num_threadsnumber of threads requested for this parallel construct

Set the number of threads to be used by the next fork spawned by this thread. This call is only required if the parallel construct has a num_threads clause.

Definition at line 230 of file kmp_csupport.cpp.

◆ __kmpc_serialized_parallel()

void __kmpc_serialized_parallel ( ident_t loc,
kmp_int32  global_tid 
)
Parameters
locsource location information
global_tidglobal thread number

Enter a serialized parallel construct. This interface is used to handle a conditional parallel region, like this,

#pragma omp parallel if (condition)

when the condition is false.

Definition at line 465 of file kmp_csupport.cpp.