Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.

Line of sight for compiler allowing mixed coarray/OpenMP use?

OP1
New Contributor III
854 Views

I am wondering if we could have an estimate of when Intel will release a compiler that allows mixed coarray/OpenMP usage. It is still not possible in version 15. Thanks!
 

0 Kudos
8 Replies
pbkenned1
Employee
854 Views

What are you trying to do?  It's possible, if you observe these restrictions:

•A coindexed object may not be used within an OpenMP* region
•An image control statement may not be used within an OpenMP region

 

C:\U539768>cat hello_image.f90
program hello_image

!$OMP PARALLEL num_threads(2)

  write(*,*) "Hello from image ", this_image(), &
              "out of ", num_images()," total images"
!$OMP END PARALLEL

end program hello_image


C:\U539768>

 

C:\U539768>ifort -Qopenmp -Qcoarray hello_image.f90
Intel(R) Visual Fortran Intel(R) 64 Compiler XE for applications running on Intel(R) 64, Version 15.0.1.148 Build 20141023
Copyright (C) 1985-2014 Intel Corporation.  All rights reserved.

Microsoft (R) Incremental Linker Version 12.00.21005.1
Copyright (C) Microsoft Corporation.  All rights reserved.

-out:hello_image.exe
-subsystem:console
-defaultlib:libiomp5md.lib
-nodefaultlib:vcomp.lib
-nodefaultlib:vcompd.lib
hello_image.obj

C:\U539768>hello_image.exe
 Hello from image            2 out of            4  total images
 Hello from image            1 out of            4  total images
 Hello from image            3 out of            4  total images
 Hello from image            4 out of            4  total images
 Hello from image            4 out of            4  total images
 Hello from image            3 out of            4  total images
 Hello from image            1 out of            4  total images
 Hello from image            2 out of            4  total images

C:\ISN_Forums\U539768>

Patrick

0 Kudos
Steven_L_Intel1
Employee
854 Views

The compiler already "allows" you to do this. Why do you say it is "not possible"? We haven't done much testing of this, but as Patrick says, it should work as long as you follow some simple rules.

0 Kudos
OP1
New Contributor III
854 Views

Ah, I have not tested it either: I just stopped at the notice in the "User and Reference Guide for the Intel® Fortran Compiler 15.0" guide, section "Using Coarrays" (towards the bottom) that reads:

"No special procedure is necessary to run a program that uses coarrays; you simply run the executable file. The underlying parallelization implementation uses the Intel® MPI Library. Installation of the compiler automatically installs the necessary Intel® MPI run-time libraries to run on shared memory. The Intel® Cluster Toolkit installs the necessary Intel® MPI Library run-time libraries to run on distributed memory. Use of coarray applications with any other MPI implementation, or with OpenMP*, is not supported."

This may just be a matter of updating the documentation then.

0 Kudos
Steven_L_Intel1
Employee
854 Views

"not supported" isn't intended to mean "doesn't work". We have not tested coarray+OpenMP extensively but are not aware of specific issues other than those mentioned. As for other MPI implementations, we don't officially support that either but we have customers doing this with our guidance.

0 Kudos
OP1
New Contributor III
854 Views

I understand, I guess I got discouraged a bit too fast.

Now I run into another problem: last year I evaluated the Intel MPI Library 5.0 Beta (downloaded as part of Composer XE 2015 Beta). Although this cannot be used anymore (for now I am still stuck with IVF 14), it is still present on my system (same goes for the integration of Composer XE 2015 and its components in VS 2013) but I just don't know how to get rid of it (them). Any suggestion?

0 Kudos
Steven_L_Intel1
Employee
854 Views

You can uninstall Intel MPI in the usual way. As for the integration, uninstall IVF14 (or remove the VS integration via Modify). Delete the Intel Fortran folder under Microsoft Visual Studio 12.0. Reinstall IVF14 (or the integration).

0 Kudos
OP1
New Contributor III
854 Views

Thanks Steve - I figured that actually it would be simpler to download and install a trial version of Intel Parallel Studio XE 2015, so that it removes all the components that were left from the Beta Update 1 trial; then remove it; and finally reinstall Composer XE 2013. These leftover XE 2015 components could not be removed through the Control Panel or any other means (not sure why).

0 Kudos
Steven_L_Intel1
Employee
854 Views

Sometimes when you remove a newer version of the compiler it doesn't remove the integration. Then when you install the older version it doesn't replace the newer. This is why I suggest deleting the Intel Fortran folder before reinstalling. 

0 Kudos
Reply