- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
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?
Thanks
Link Copied
2 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page