1 /* chrono - demo of GRAS benchmarking features */
3 /* Copyright (c) 2005, 2010. The SimGrid Team.
4 * All rights reserved. */
6 /* This program is free software; you can redistribute it and/or modify it
7 * under the terms of the license (GNU LGPL) which comes with this package. */
12 XBT_LOG_NEW_DEFAULT_CATEGORY(Chrono,"Messages specific to this example");
15 void cblas_dgemm(const enum CBLAS_ORDER Order,
16 const enum CBLAS_TRANSPOSE TransA,
17 const enum CBLAS_TRANSPOSE TransB, const int M,
18 const int N, const int K, const double alpha,
19 const double *A, const int lda, const double *B,
20 const int ldb, const double beta, double *C,
24 /* Function prototypes */
25 static int mat_mult(int n)
32 A = malloc(n*n*sizeof(double));
33 B = malloc(n*n*sizeof(double));
34 C = malloc(n*n*sizeof(double));
36 start=now=gras_os_time();
38 INFO1("Matrix size: %d",n);
39 /* INFO1("Before computation: %lg", start); */
43 GRAS_BENCH_ONCE_RUN_ONCE_BEGIN();
51 cblas_dgemm(CblasRowMajor,
52 CblasNoTrans, CblasNoTrans, n, n, n,
53 1.0, A, n, B, n, 0.0, C, n);
54 GRAS_BENCH_ONCE_RUN_ONCE_END();
55 now=gras_os_time()-now;
56 /* INFO2("Iteration %d : %lg ", l, now); */
59 now=gras_os_time()-start;
60 INFO1("Duration: %lg ", now);
67 int multiplier (int argc,char *argv[])
69 gras_init(&argc, argv);