Using Intel MKL with Multiple Processors

Using Intel MKL with Multiple Processors

I am trying to solve a complex matrix system on an Altix SGI 350 with 16 itanium processors. The function I am using iszsysv(). I tried using OpenMP with a call to zsysv() enclosed in the familiar parallel construct, but this takes as much time to solve the matrix system as running withoutOpenMP.
Is there a way to specify the number of processors to use with the MKL7.0?
Is the zsysv function threaded?
Is there another way touse zsysv()such that the entire 16 processorsare involved?

3 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

You should be able to get an idea whether the function is threaded by using nm to examine the .o file. Assuming that it is, the maximum number of threads started under OpenMP would be controlled by the environment variable OMP_NUM_THREADS.

If I understand what you are doing, putting a parallel section around the call wouldn't do anything.

In my opinion, if the function chooses fewer than 16 threads, it's probably seeing that your data set could not benefit from a larger number. OpenMP scaling on Altix can be difficult, but the function will not make allowances for that, so you may have to use the envioronment variable to experiment with number of threads.

Glad to hear you had reasonable success, and thanks for the report. The -openmp switch is recommended for linking with MKL simply to assure that libguide is linked. If you have OpenMP directives in your source, without that option, they would be treated as comments. As you have seen, MKL is not directly influenced by whether you have OpenMP in your source; it performs its own OpenMP, in case that is sufficient for your application.

Leave a Comment

Please sign in to add a comment. Not a member? Join today