diff options
Diffstat (limited to '')
-rw-r--r-- | web/server/h2o/libh2o/deps/klib/test/kthread_test.c | 69 |
1 files changed, 0 insertions, 69 deletions
diff --git a/web/server/h2o/libh2o/deps/klib/test/kthread_test.c b/web/server/h2o/libh2o/deps/klib/test/kthread_test.c deleted file mode 100644 index 1b67ed4ea..000000000 --- a/web/server/h2o/libh2o/deps/klib/test/kthread_test.c +++ /dev/null @@ -1,69 +0,0 @@ -#include <stdio.h> -#include <assert.h> -#include <stdlib.h> -#include <pthread.h> -#if HAVE_CILK -#include <cilk/cilk.h> -#include <cilk/cilk_api.h> -#endif - -typedef struct { - int max_iter, w, h; - double xmin, xmax, ymin, ymax; - int *k; -} global_t; - -static void compute(void *_g, int i, int tid) -{ - global_t *g = (global_t*)_g; - double x, x0 = g->xmin + (g->xmax - g->xmin) * (i%g->w) / g->w; - double y, y0 = g->ymin + (g->ymax - g->ymin) * (i/g->w) / g->h; - int k; - - assert(g->k[i] < 0); - x = x0, y = y0; - for (k = 0; k < g->max_iter; ++k) { - double z = x * y; - x *= x; y *= y; - if (x + y >= 4) break; - x = x - y + x0; - y = z + z + y0; - } - g->k[i] = k; -} - -void kt_for(int n_threads, int n_items, void (*func)(void*,int,int), void *data); - -int main(int argc, char *argv[]) -{ - int i, tmp, tot, type = 0, n_threads = 2; - global_t global = { 10240*100, 800, 600, -2., -1.2, -1.2, 1.2, 0 }; -// global_t global = { 10240*1, 8, 6, -2., -1.2, -1.2, 1.2, 0 }; - - if (argc > 1) { - type = argv[1][0] == 'o'? 2 : argv[1][0] == 'c'? 3 : argv[1][0] == 'n'? 1 : 0; - if (argv[1][0] >= '0' && argv[1][0] <= '9') - n_threads = atoi(argv[1]); - } else { - fprintf(stderr, "Usage: ./a.out [openmp | cilk | #threads]\n"); - } - tot = global.w * global.h; - global.k = calloc(tot, sizeof(int)); - for (i = 0; i < tot; ++i) global.k[i] = -1; - if (type == 0) { - kt_for(n_threads, tot, compute, &global); - } else if (type == 2) { - #pragma omp parallel for - for (i = 0; i < tot; ++i) - compute(&global, i, 0); - } else if (type == 3) { - #if HAVE_CILK - cilk_for (i = 0; i < tot; ++i) - compute(&global, i, 0); - #endif - } - for (i = tmp = 0; i < tot; ++i) tmp += (global.k[i] < 0); - free(global.k); - assert(tmp == 0); - return 0; -} |