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

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

OP1
새로운 기여자 III
849 조회수

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 포인트
8 응답
pbkenned1
직원
849 조회수

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 포인트
Steven_L_Intel1
849 조회수

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 포인트
OP1
새로운 기여자 III
849 조회수

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 포인트
Steven_L_Intel1
849 조회수

"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 포인트
OP1
새로운 기여자 III
849 조회수

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 포인트
Steven_L_Intel1
849 조회수

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 포인트
OP1
새로운 기여자 III
849 조회수

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 포인트
Steven_L_Intel1
849 조회수

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 포인트
응답