| @@ -2,6 +2,10 @@ | |||||
| argv <- commandArgs(trailingOnly = TRUE) | argv <- commandArgs(trailingOnly = TRUE) | ||||
| if (!is.null(options("matprod")[[1]])) { | |||||
| options(matprod = "blas") | |||||
| } | |||||
| nfrom <- 128 | nfrom <- 128 | ||||
| nto <- 2048 | nto <- 2048 | ||||
| nstep <- 128 | nstep <- 128 | ||||
| @@ -19,7 +23,6 @@ if (length(argv) > 0) { | |||||
| loops <- as.numeric(argv[z]) | loops <- as.numeric(argv[z]) | ||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| p <- Sys.getenv("OPENBLAS_LOOPS") | p <- Sys.getenv("OPENBLAS_LOOPS") | ||||
| @@ -27,31 +30,23 @@ if (p != "") { | |||||
| loops <- as.numeric(p) | loops <- as.numeric(p) | ||||
| } | } | ||||
| cat(sprintf( | |||||
| "From %.0f To %.0f Step=%.0f Loops=%.0f\n", | |||||
| nfrom, | |||||
| nto, | |||||
| nstep, | |||||
| loops | |||||
| )) | |||||
| cat(sprintf("From %.0f To %.0f Step=%.0f Loops=%.0f\n", nfrom, nto, nstep, loops)) | |||||
| cat(sprintf(" SIZE Flops Time\n")) | cat(sprintf(" SIZE Flops Time\n")) | ||||
| n <- nfrom | n <- nfrom | ||||
| while (n <= nto) { | while (n <= nto) { | ||||
| A <- matrix(rnorm(n * n), ncol = n, nrow = n) | |||||
| B <- matrix(rnorm(n * n), ncol = n, nrow = n) | |||||
| A <- matrix(rnorm(n * n), nrow = n) | |||||
| B <- matrix(rnorm(n * n), nrow = n) | |||||
| z <- system.time(for (l in 1:loops) { | z <- system.time(for (l in 1:loops) { | ||||
| solve(A, B) | solve(A, B) | ||||
| }) | }) | ||||
| mflops <- | |||||
| (2.0 / 3.0 * n * n * n + 2.0 * n * n * n) * loops / (z[3] * 1.0e6) | |||||
| mflops <- (2.0/3 * n * n * n + 2 * n * n * n) * loops/ (z[3] * 1e6) | |||||
| st <- sprintf("%.0fx%.0f :", n, n) | st <- sprintf("%.0fx%.0f :", n, n) | ||||
| cat(sprintf("%20s %10.2f MFlops %10.6f sec\n", st, mflops, z[3])) | cat(sprintf("%20s %10.2f MFlops %10.6f sec\n", st, mflops, z[3])) | ||||
| n <- n + nstep | n <- n + nstep | ||||
| } | } | ||||