31 #define omp_set_max_active_levels ompc_set_max_active_levels 32 #define omp_set_schedule ompc_set_schedule 33 #define omp_get_ancestor_thread_num ompc_get_ancestor_thread_num 34 #define omp_get_team_size ompc_get_team_size 36 #define omp_set_num_threads ompc_set_num_threads 37 #define omp_set_dynamic ompc_set_dynamic 38 #define omp_set_nested ompc_set_nested 39 #define kmp_set_stacksize kmpc_set_stacksize 40 #define kmp_set_stacksize_s kmpc_set_stacksize_s 41 #define kmp_set_blocktime kmpc_set_blocktime 42 #define kmp_set_library kmpc_set_library 43 #define kmp_set_defaults kmpc_set_defaults 44 #define kmp_set_disp_num_buffers kmpc_set_disp_num_buffers 45 #define kmp_malloc kmpc_malloc 46 #define kmp_aligned_malloc kmpc_aligned_malloc 47 #define kmp_calloc kmpc_calloc 48 #define kmp_realloc kmpc_realloc 49 #define kmp_free kmpc_free 51 static double frequency = 0.0;
54 static size_t __kmps_init() {
55 static int initialized = 0;
56 static size_t dummy = 0;
68 dummy = __kmp_version_copyright - __kmp_version_build_time;
72 BOOL status = QueryPerformanceFrequency(&freq);
74 frequency = double(freq.QuadPart);
83 #define i __kmps_init(); 86 void omp_set_num_threads(omp_int_t num_threads) { i; }
87 void omp_set_dynamic(omp_int_t dynamic) {
89 __kmps_set_dynamic(dynamic);
91 void omp_set_nested(omp_int_t nested) {
93 __kmps_set_nested(nested);
95 void omp_set_max_active_levels(omp_int_t max_active_levels) { i; }
96 void omp_set_schedule(omp_sched_t kind, omp_int_t modifier) {
98 __kmps_set_schedule((kmp_sched_t)kind, modifier);
100 int omp_get_ancestor_thread_num(omp_int_t level) {
102 return (level) ? (-1) : (0);
104 int omp_get_team_size(omp_int_t level) {
106 return (level) ? (-1) : (1);
108 int kmpc_set_affinity_mask_proc(
int proc,
void **mask) {
112 int kmpc_unset_affinity_mask_proc(
int proc,
void **mask) {
116 int kmpc_get_affinity_mask_proc(
int proc,
void **mask) {
122 void kmp_set_stacksize(omp_int_t arg) {
124 __kmps_set_stacksize(arg);
126 void kmp_set_stacksize_s(
size_t arg) {
128 __kmps_set_stacksize(arg);
130 void kmp_set_blocktime(omp_int_t arg) {
132 __kmps_set_blocktime(arg);
134 void kmp_set_library(omp_int_t arg) {
136 __kmps_set_library(arg);
138 void kmp_set_defaults(
char const *str) { i; }
139 void kmp_set_disp_num_buffers(omp_int_t arg) { i; }
142 void *kmp_malloc(
size_t size) {
146 void *kmp_aligned_malloc(
size_t sz,
size_t a) {
154 if (err = posix_memalign(&res, a, sz)) {
161 void *kmp_calloc(
size_t nelem,
size_t elsize) {
163 return calloc(nelem, elsize);
165 void *kmp_realloc(
void *ptr,
size_t size) {
167 return realloc(ptr, size);
169 void kmp_free(
void *ptr) {
174 static int __kmps_blocktime = INT_MAX;
176 void __kmps_set_blocktime(
int arg) {
178 __kmps_blocktime = arg;
181 int __kmps_get_blocktime(
void) {
183 return __kmps_blocktime;
186 static int __kmps_dynamic = 0;
188 void __kmps_set_dynamic(
int arg) {
190 __kmps_dynamic = arg;
193 int __kmps_get_dynamic(
void) {
195 return __kmps_dynamic;
198 static int __kmps_library = 1000;
200 void __kmps_set_library(
int arg) {
202 __kmps_library = arg;
205 int __kmps_get_library(
void) {
207 return __kmps_library;
210 static int __kmps_nested = 0;
212 void __kmps_set_nested(
int arg) {
217 int __kmps_get_nested(
void) {
219 return __kmps_nested;
222 static size_t __kmps_stacksize = KMP_DEFAULT_STKSIZE;
224 void __kmps_set_stacksize(
int arg) {
226 __kmps_stacksize = arg;
229 int __kmps_get_stacksize(
void) {
231 return __kmps_stacksize;
234 static kmp_sched_t __kmps_sched_kind = kmp_sched_default;
235 static int __kmps_sched_modifier = 0;
237 void __kmps_set_schedule(kmp_sched_t kind,
int modifier) {
239 __kmps_sched_kind = kind;
240 __kmps_sched_modifier = modifier;
243 void __kmps_get_schedule(kmp_sched_t *kind,
int *modifier) {
245 *kind = __kmps_sched_kind;
246 *modifier = __kmps_sched_modifier;
251 static kmp_proc_bind_t __kmps_proc_bind = proc_bind_false;
253 void __kmps_set_proc_bind(kmp_proc_bind_t arg) {
255 __kmps_proc_bind = arg;
258 kmp_proc_bind_t __kmps_get_proc_bind(
void) {
260 return __kmps_proc_bind;
265 double __kmps_get_wtime(
void) {
270 if (frequency > 0.0) {
272 BOOL status = QueryPerformanceCounter(&now);
274 wtime = double(now.QuadPart) / frequency;
281 rc = gettimeofday(&tval, NULL);
283 wtime = (double)(tval.tv_sec) + 1.0E-06 * (double)(tval.tv_usec);
291 double __kmps_get_wtick(
void) {
301 rc = GetSystemTimeAdjustment(&adjustment, &increment, &disabled);
303 wtick = 1.0E-07 * (double)(disabled ? increment : adjustment);