I'm new using the sunperf library and I have some minor questions about the way to set the number of threads to execute it in multicore environments. For example, with Intel MKL are valid both environment variables OMP_NUM_THREADS and MKL_NUM_THREADS and the API functions omp_set_num_threads() and mkl_set_num_threads(). With GotoBLAS the variables and functions from OpenMP are too valid plus GOTO_NUM_THREADS and goto_set_num_threads()
And what about sunperf? I know OMP_NUM_THREADS and omp_set_num_threads() are valid but, exists any other variables or functions like SUNPERF_NUM_THREADS sunperf_set_num_threads() or similar?
And the function USE_THREADS(), is an independent function or calls internally to omp_set_num_threads()? From http://docs.oracle.com/cd/E19422-01/819-3691/use_threads.html I understand that calls internally to the OpenMP function.
And what about the variable PARALLEL? What is the order of precedence between OMP_NUM_THREADS and PARALLEL?
USE_THREADS is a subroutine calling OMP_SET_NUM_THREADS with MAX(1,NTHREADS) as its argument. PARALLEL has the same function as OMP_NUM_THREADS. sunperf will look PARALLEL first. If found it will ignore OMP_NUM_THREADS. If not it will look for OMP_NUM_THREADS. If either is set, sunperf sees them as 1.