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 ) {
 | |
| 
 | |
| 		C <- A %*% B
 | |
| 		l = l + 1
 | |
| 	}
 | |
| 
 | |
| 	end <- proc.time()[3]
 | |
| 	timeg = end - start
 | |
| 	mflops = ( 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
 | |
| 
 | |
| }
 | |
| 
 | |
| 
 |