#pragma omp construct [clause [clause]…]
#pragma omp parallel if(N>1000)
#pragma omp for #pragma omp for nowait
schedule(static [,chunk]) schedule(dynamic[,chunk]) schedule(guided[,chunk]) rarely used schedule(runtime) OMP_SCHEDULE environment variable
#pragma omp sections
#pragma omp master
#pragma omp barrier
#pragma omp single
shared
private lastprivate
private - firstprivate threadprivate private
threadprivate data using a copyin clause.
DEFAULT (PRIVATE | SHARED | NONE)
reduction (op : list) critical atomic barrier end parallel, end do (except when nowait is used), end sections (except when nowait is used), end single (except when nowait is used)
ordered flush flush construct denotes a sequence point where a thread tries to create a consistent view of memory for a subset of variables called the flush set.
locks (both simple and nested) critical, but much lower level critical) when needing mutual exclusion when buried in a data structure
omp_init_lock(), omp_set_lock(), omp_unset_lock(), omp_test_lock(), omp_destroy_lock()
omp_init_nest_lock(), omp_set_nest_lock(), omp_unset_nest_lock(), omp_test_nest_lock(), omp_destroy_nest_lock()
omp_set_num_threads(), omp_get_num_threads(), omp_get_thread_num(), omp_get_max_threads()
omp_in_parallel()
omp_set_dynamic, omp_get_dynamic()
omp_get_num_procs()
OMP_NUM_THREADS int_literal
OMP_SCHEDULE "schedule[, chunk_size]"
MPI_Thread_Single, MPI_Thread_Funneled, MPI_Thread_Serialized, MPI_Thread_Multiple
MPI_init_thread
flush denotes a sequence point where a thread tries to create a consistent view of memory for a subset of variables call the flush set
#pragma gpump accessible(list) #pragma gpump accessible gpump_malloc, gpump_realloc, gpump_free gpump_copy_to/from_device performs device memory management, copyin/copyout and handles pointer translation
gpump_alloc_list_add creates list of variables for copy routines
Copyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.