Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
New Contributor II
163 Views

/Qparallel or -parallel flag compined with Coarray / MPI

Jump to solution

My understanding is that the /Qparallel or -parallel flags work as OpenMP parallelization underneath. But what does happen if a Coarray or MPI parallelized code is combined and compiled with the -parallel flag? I do not see errors or problems happening on a test problem that I have tried, but I doubt if it has led to any performance improvements beyond what Coarray/MPI offers.

On a side note, does the Intel ifort automatically integrate the omp dynamic library with the final executable or the DLL library? or should it be separately provided along with the executable? I am getting mixed results on a test system, once it work, another time (combined with Coarray/MPI) the executable complained about missing `libiomp5md.dll`.

 

0 Kudos

Accepted Solutions
Highlighted
Black Belt Retired Employee
150 Views

Auto-parallel will try to parallelize loops that operate on local variables. You're right that it uses OpenMP underneath. There's nothing inherently problematic about combining coarrays and OpenMP and I have seen it done a number of times.

On Windows, the OpenMP library is provided in DLL form only, so you will always need to have libiomp5md.dll in PATH (or in the executable directory). On Linux, a static library is still available, though discouraged.

As always, you should test the performance with different options to see which works best for you.

View solution in original post

3 Replies
Highlighted
Black Belt Retired Employee
151 Views

Auto-parallel will try to parallelize loops that operate on local variables. You're right that it uses OpenMP underneath. There's nothing inherently problematic about combining coarrays and OpenMP and I have seen it done a number of times.

On Windows, the OpenMP library is provided in DLL form only, so you will always need to have libiomp5md.dll in PATH (or in the executable directory). On Linux, a static library is still available, though discouraged.

As always, you should test the performance with different options to see which works best for you.

View solution in original post

Highlighted
New Contributor II
145 Views

Is it better to have it in the path or in the exe directory -- I would have thought the former from previous comments you made?

Highlighted
Black Belt Retired Employee
141 Views

Better in PATH - as the installer makes it. But some people want to copy their EXEs and not install the "redistributables", so putting copies of the DLLs in the EXE folder is an alternative.