#!/usr/bin/Rscript argv <- commandArgs(trailingOnly = TRUE) if (!is.null(options("matprod")[[1]])) options(matprod = "blas") nfrom <- 128 nto <- 2048 nstep <- 128 loops <- 1 if (length(argv) > 0) { for (z in 1:length(argv)) { if (z == 1) { nfrom <- as.numeric(argv[z]) } else if (z == 2) { nto <- as.numeric(argv[z]) } else if (z == 3) { nstep <- as.numeric(argv[z]) } else if (z == 4) { loops <- as.numeric(argv[z]) } } } p <- Sys.getenv("OPENBLAS_LOOPS") if (p != "") { loops <- as.numeric(p) } cat(sprintf("From %.0f To %.0f Step=%.0f Loops=%.0f\n", nfrom, nto, nstep, loops)) cat(sprintf(" SIZE Flops Time\n")) n <- nfrom while (n <= nto) { A <- matrix(rnorm(n * n), nrow = n) B <- matrix(rnorm(n * n), nrow = n) z <- system.time(for (l in 1:loops) { solve(A, B) }) mflops <- (8.0 / 3 * n * n * n) * loops / (z[3] * 1e+06) st <- sprintf("%.0fx%.0f :", n, n) cat(sprintf("%20s %10.2f MFlops %10.6f sec\n", st, mflops, z[3])) n <- n + nstep }