64 lines
1.1 KiB
R
Executable File
64 lines
1.1 KiB
R
Executable File
#!/usr/bin/Rscript
|
|
|
|
argv <- commandArgs(trailingOnly = TRUE)
|
|
|
|
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(runif(n*n), ncol = n, nrow = n, byrow = TRUE)
|
|
B <- matrix(runif(n*n), ncol = n, nrow = n, byrow = TRUE)
|
|
|
|
l = 1
|
|
|
|
start <- proc.time()[3]
|
|
|
|
while ( l <= loops ) {
|
|
|
|
solve(A,B)
|
|
l = l + 1
|
|
}
|
|
|
|
end <- proc.time()[3]
|
|
timeg = end - start
|
|
mflops = (2.0/3.0 *n*n*n + 2.0 *n*n*n ) * loops / ( timeg * 1.0e6 )
|
|
|
|
st = sprintf("%.0fx%.0f :",n , n)
|
|
cat(sprintf("%20s %10.2f MFlops %10.6f sec\n", st, mflops, timeg))
|
|
|
|
n = n + nstep
|
|
|
|
}
|
|
|
|
|