Exemple #1
0
int main(int argc, char *argv[]) {
  Node root;
  double t1, t2;

  lace_parseParams(&argc, argv);
  uts_parseParams(argc, argv);

  uts_printParams();
  uts_initRoot(&root, type);
  
  lace_init(_lace_workers, _lace_dqsize);
  lace_startup(32*1024*1024, 0, 0);

  printf("Initialized Lace with %d workers, dqsize=%d\n", _lace_workers, _lace_dqsize);

  LACE_ME;

  t1 = uts_wctime();
  Result r = CALL(parTreeSearch, 0, &root);
  t2 = uts_wctime();

  maxTreeDepth = r.maxdepth;
  nNodes  = r.size;
  nLeaves = r.leaves;

  uts_showStats(GET_NUM_THREADS, 0, t2-t1, nNodes, nLeaves, maxTreeDepth);

  printf("Time: %f\n", t2-t1);

  lace_exit();

  return 0;
}
Exemple #2
0
int main(int argc, char **argv)
{
    int workers = 1;
    int dqsize = 100000;

    char c;
    while ((c=getopt(argc, argv, "w:q:h")) != -1) {
        switch (c) {
            case 'w':
                workers = atoi(optarg);
                break;
            case 'q':
                dqsize = atoi(optarg);
                break;
            case 'h':
                usage(argv[0]);
                break;
            default:
                abort();
        }
    }

    if (optind == argc) {
        usage(argv[0]);
        exit(1);
    }

    lace_init(workers, dqsize);
    lace_startup(0, 0, 0);

    LACE_ME;

    int n = atoi(argv[optind]);

    double t1 = wctime();
    int m = CALL(pfib, n);
    double t2 = wctime();

    printf("fib(%d) = %d\n", n, m);
    printf("Time: %f\n", t2-t1);

    lace_exit();
    return 0;
}
Exemple #3
0
int main(int argc, char *argv[])
{
    int workers = 1;
    int dqsize = 100000;
    int verify = 0;

    char c;
    while ((c=getopt(argc, argv, "w:q:h:c")) != -1) {
        switch (c) {
            case 'w':
                workers = atoi(optarg);
                break;
            case 'q':
                dqsize = atoi(optarg);
                break;
            case 'c':
                verify = 1;
                break;
            case 'h':
                usage(argv[0]);
                break;
            default:
                abort();
        }
    }

    if (optind == argc) {
        usage(argv[0]);
        exit(1);
    }

    int n = atoi(argv[optind]);

    lace_init(workers, dqsize);
    lace_startup(0, 0, 0);

    REAL *A, *B, *C1, *C2;

    if ((n & (n - 1)) != 0 || (n % 16) != 0) {
        printf("%d: matrix size must be a power of 2"
                " and a multiple of %d\n", n, 16);
        return 1;
    }

    A = alloc_matrix(n);
    B = alloc_matrix(n);
    C1 = alloc_matrix(n);
    C2 = alloc_matrix(n);

    init_matrix(n, A, n);
    init_matrix(n, B, n);

    LACE_ME;

    double t1=wctime();
    CALL(OptimizedStrassenMultiply, C2, A, B, n, n, n, n);
    double t2=wctime();

    if (verify) {
        matrixmul(n, A, n, B, n, C1, n);
        verify = compare_matrix(n, C1, n, C2, n);
    }

    if (verify)
        printf("WRONG RESULT!\n");
    else {	
        printf("Time: %f\n", t2-t1);
    }

    lace_exit();

    return 0;
}