summaryrefslogtreecommitdiffstats
path: root/debian/vendor-h2o/deps/klib/test/kthread_test.c
diff options
context:
space:
mode:
Diffstat (limited to 'debian/vendor-h2o/deps/klib/test/kthread_test.c')
-rw-r--r--debian/vendor-h2o/deps/klib/test/kthread_test.c69
1 files changed, 0 insertions, 69 deletions
diff --git a/debian/vendor-h2o/deps/klib/test/kthread_test.c b/debian/vendor-h2o/deps/klib/test/kthread_test.c
deleted file mode 100644
index 1b67ed4..0000000
--- a/debian/vendor-h2o/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;
-}