19 #define GISMO_HAS_OPENMP_52 1
21 #define GISMO_HAS_OPENMP_52 0
25 #define GISMO_HAS_OPENMP_51 1
27 #define GISMO_HAS_OPENMP_51 0
31 #define GISMO_HAS_OPENMP_50 1
33 #define GISMO_HAS_OPENMP_50 0
37 #define GISMO_HAS_OPENMP_45 1
39 #define GISMO_HAS_OPENMP_45 0
43 #define GISMO_HAS_OPENMP_40 1
45 #define GISMO_HAS_OPENMP_40 0
49 #define GISMO_HAS_OPENMP_31 1
51 #define GISMO_HAS_OPENMP_31 0
55 #define GISMO_HAS_OPENMP_30 1
57 #define GISMO_HAS_OPENMP_30 0
61 #define GISMO_HAS_OPENMP_25 1
63 #define GISMO_HAS_OPENMP_25 0
70 #define GISMO_HAS_OPENMP_52 0
71 #define GISMO_HAS_OPENMP_51 0
72 #define GISMO_HAS_OPENMP_50 0
73 #define GISMO_HAS_OPENMP_45 0
74 #define GISMO_HAS_OPENMP_40 0
75 #define GISMO_HAS_OPENMP_31 0
76 #define GISMO_HAS_OPENMP_30 0
77 #define GISMO_HAS_OPENMP_25 0
81 void GISMO_EXPORT omp_set_num_threads(
int num_threads);
83 int GISMO_EXPORT omp_get_num_threads(
void);
85 int GISMO_EXPORT omp_get_max_threads(
void);
87 int GISMO_EXPORT omp_get_thread_num(
void);
89 int GISMO_EXPORT omp_get_num_procs(
void);
91 int GISMO_EXPORT omp_in_parallel(
void);
93 void GISMO_EXPORT omp_set_dynamic(
int dynamic_threads);
95 int GISMO_EXPORT omp_get_dynamic(
void);
97 int GISMO_EXPORT omp_get_cancellation(
void);
99 void GISMO_EXPORT omp_set_nested(
int nested);
101 int GISMO_EXPORT omp_get_nested(
void);
103 typedef enum omp_sched_t {
104 omp_sched_static = 1,
105 omp_sched_dynamic = 2,
106 omp_sched_guided = 3,
108 omp_sched_monotonic = 0x80000000
111 void GISMO_EXPORT omp_set_schedule(omp_sched_t kind,
int chunk_size);
113 void GISMO_EXPORT omp_get_schedule(omp_sched_t *kind,
int *chunk_size);
115 int GISMO_EXPORT omp_get_thread_limit(
void);
117 void GISMO_EXPORT omp_set_max_active_levels(
int max_active_levels);
119 int GISMO_EXPORT omp_get_max_active_levels(
void);
121 int GISMO_EXPORT omp_get_level(
void);
123 int GISMO_EXPORT omp_get_ancestor_thread_num(
int level);
125 int GISMO_EXPORT omp_get_team_size(
int level);
127 int GISMO_EXPORT omp_get_active_level(
void);
129 int GISMO_EXPORT omp_in_final(
void);
131 typedef enum omp_proc_bind_t {
132 omp_proc_bind_false = 0,
133 omp_proc_bind_true = 1,
134 omp_proc_bind_master = 2,
135 omp_proc_bind_close = 3,
136 omp_proc_bind_spread = 4
139 omp_proc_bind_t omp_get_proc_bind(
void);
141 int GISMO_EXPORT omp_get_num_places(
void);
143 int GISMO_EXPORT omp_get_place_num_procs(
int place_num);
145 void GISMO_EXPORT omp_get_place_proc_ids(
int place_num,
int *ids);
147 int GISMO_EXPORT omp_get_place_num(
void);
149 int GISMO_EXPORT omp_get_partition_num_places(
void);
151 void GISMO_EXPORT omp_get_partition_place_nums(
int *place_nums);
153 void GISMO_EXPORT omp_set_default_device(
int device_num);
155 int GISMO_EXPORT omp_get_default_device(
void);
157 int GISMO_EXPORT omp_get_num_devices(
void);
159 int GISMO_EXPORT omp_get_num_teams(
void);
161 int GISMO_EXPORT omp_get_team_num(
void);
163 int GISMO_EXPORT omp_is_initial_device(
void);
165 int GISMO_EXPORT omp_get_initial_device(
void);
167 int GISMO_EXPORT omp_get_max_task_priority(
void);
169 typedef struct omp_lock_t {
173 enum { OMP_UNLOCKED = -1, OMP_INIT, OMP_LOCKED };
175 void GISMO_EXPORT omp_init_lock(omp_lock_t *arg);
177 typedef enum omp_sync_hint_t {
178 omp_sync_hint_none = 0,
179 omp_lock_hint_none = omp_sync_hint_none,
180 omp_sync_hint_uncontended = 1,
181 omp_lock_hint_uncontended = omp_sync_hint_uncontended,
182 omp_sync_hint_contended = (1<<1),
183 omp_lock_hint_contended = omp_sync_hint_contended,
184 omp_sync_hint_nonspeculative = (1<<2),
185 omp_lock_hint_nonspeculative = omp_sync_hint_nonspeculative,
186 omp_sync_hint_speculative = (1<<3),
187 omp_lock_hint_speculative = omp_sync_hint_speculative,
188 kmp_lock_hint_hle = (1<<16),
189 kmp_lock_hint_rtm = (1<<17),
190 kmp_lock_hint_adaptive = (1<<18)
193 typedef omp_sync_hint_t omp_lock_hint_t;
195 void GISMO_EXPORT omp_init_lock_with_hint(omp_lock_t *arg, omp_lock_hint_t hint);
197 void GISMO_EXPORT omp_destroy_lock(omp_lock_t *arg);
199 void GISMO_EXPORT omp_set_lock(omp_lock_t *arg);
201 void GISMO_EXPORT omp_unset_lock(omp_lock_t *arg);
203 int GISMO_EXPORT omp_test_lock(omp_lock_t *arg);
205 typedef struct omp_nest_lock_t {
210 enum { OMP_NOOWNER = -1, OMP_MASTER = 0 };
212 void GISMO_EXPORT omp_init_nest_lock(omp_nest_lock_t *arg);
214 void GISMO_EXPORT omp_init_nest_lock_with_hint(omp_nest_lock_t *arg,
215 omp_lock_hint_t hint);
217 void GISMO_EXPORT omp_destroy_nest_lock(omp_nest_lock_t *arg);
219 void GISMO_EXPORT omp_set_nest_lock(omp_nest_lock_t *arg);
221 void GISMO_EXPORT omp_unset_nest_lock(omp_nest_lock_t *arg);
223 int GISMO_EXPORT omp_test_nest_lock(omp_nest_lock_t *arg);
225 double omp_get_wtime(
void);
227 double omp_get_wtick(
void);
229 void * omp_target_alloc(
size_t size,
int device_num);
231 void GISMO_EXPORT omp_target_free(
void *device_ptr,
int device_num);
233 int GISMO_EXPORT omp_target_is_present(
void *ptr,
int device_num);
235 int GISMO_EXPORT omp_target_memcpy(
void *dst,
void *src,
size_t length,
236 size_t dst_offset,
size_t src_offset,
237 int dst_device,
int src_device);
239 int GISMO_EXPORT omp_target_memcpy_rect(
void *dst,
void *src,
242 const size_t *volume,
243 const size_t *dst_offsets,
244 const size_t *src_offsets,
245 const size_t *dst_dimensions,
246 const size_t *src_dimensions,
247 int dst_device_num,
int src_device_num);
249 int GISMO_EXPORT omp_target_associate_ptr(
void *host_ptr,
void *device_ptr,
250 size_t size,
size_t device_offset,
253 int GISMO_EXPORT omp_target_disassociate_ptr(
void *ptr,
int device_num);
Provides forward declarations of types and structs.