I'm new using ACML 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 ACML? I know OMP_NUM_THREADS and omp_set_num_threads() are valid but, exists any other variables or functions? In acml.h I see acmlsetnumtreads() function. This function is under the comment /* OMP interfaces */. Is acmlsetnumthreads() only a wrapper around omp_set_num_threads() or is an independent function? Exist any other function or variable like ACML_NUM_THREADS?
ACML relies on the OpenMP runtime for the given Fortran compiler to implement OpenMP threading. Because of this, the control over number of threads, affinity, etc. depends on the OpenMP runtime.
In other words, for each build of ACML, you should refer to the Fortran compiler's OpenMP environment variables for the information you are after.
One caveat about the ACML Intel compiler builds is that the Ifort OpenMP runtime may not honor all environment variables when run on AMD platforms.