- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I ran a simple COARRAY Fortran example on two Windows 10 machines with the same project files (so exactly the same compiler settings). However, the output is different on both machines as shown below. Is this expected behavior? Any help will be appreciated, especially with settings that need to be changed.
Computer 1: Intel i7 4770K, 16 GB RAM, Cores = 4, Threads = 8, special order through an engineering software provider
Computer 2: Intel i7 6820HQ, 32 GB RAM, Cores = 4, Threads = 8, special order directly from Dell
The program code is:
program main ! Test COARRAY Fortran 2008 if (this_image() == 1) then write(*,'(1x,a,1x,i0,1x,a)') 'Coarray Fortran program running with', num_images(), 'images' end if sync all write(*,'(1x,a,1x,i0)') 'Hello from image', this_image() if (this_image() == 1) read * 1 continue end program main
The output on Computer 1 is as advertised in the tutorial:
Coarray Fortran program running with 8 images
Hello from image 1
Hello from image 5
Hello from image 2
Hello from image 6
Hello from image 3
Hello from image 4
Hello from image 7
Hello from image 8
However, the output on Computer 2 is different as seen below and reports that only 1 image is used.
Coarray Fortran program running with 1 images
Hello from image 1
Coarray Fortran program running with 1 images
Hello from image 1
Coarray Fortran program running with 1 images
Hello from image 1
Coarray Fortran program running with 1 images
Hello from image 1
Coarray Fortran program running with 1 images
Hello from image 1
Coarray Fortran program running with 1 images
Hello from image 1
Coarray Fortran program running with 1 images
Hello from image 1
Coarray Fortran program running with 1 images
Hello from image 1
I will add that Computer 2 in general runs slower than Computer 1 on all Fortran applications although it is a newer and potentially superior computer.
Link Copied
- « Previous
- Next »
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
It would be interesting to see the value of the PATH environment variable in the context of the running program. You can add a call to GET_ENVIRONMENT_VARIABLE to fetch it (use a 2500 character variable to store the result) and print it.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Steve:
You are not wrong about the co-array sample, it takes a while to figure out.
LOL -- we are all not perfect - except maybe mecej4 -- he is close
John
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Steve Lionel (Ret.) (Blackbelt) wrote:It would be interesting to see the value of the PATH environment variable in the context of the running program. You can add a call to GET_ENVIRONMENT_VARIABLE to fetch it (use a 2500 character variable to store the result) and print it.
The file is attached. The call was invoked several times, even for the image 1. Only one output is attached.
integer :: lc, info character(len = 5000) :: c if (this_image() == 1) then call get_environment_variable ('path', c, lc, info, .true.) write(*,*) info write(*,*) lc write(*,'(g0)') trim(c) read * end if
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Is that from a good run or a bad run? Do it both ways and compare. If you build from a command line environment, and you have the Cluster Edition, a different MPI runtime will be earlier in the list.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I also received an error the first time I tried to run the x64 version (see below). It eventually ran on the second try.
MPI startup(): I_MPI_SCALABLE_OPTIMIZATION environment variable is not supported. MPI startup(): To check the list of supported variables, use the impi_info utility or refer to https://software.intel.com/en-us/mpi-library/documentation/get-started. forrtl: severe (157): Program Exception - access violation In coarray image 1 Image PC Routine Line Source impi.dll 00007FF8530C0307 Unknown Unknown Unknown impi.dll 00007FF85305BB7E Unknown Unknown Unknown impi.dll 00007FF8529A29AC Unknown Unknown Unknown impi.dll 00007FF8529A21DC Unknown Unknown Unknown impi.dll 00007FF852C2C967 Unknown Unknown Unknown impi.dll 00007FF852C1BCD9 Unknown Unknown Unknown impi.dll 00007FF852ABAFCB Unknown Unknown Unknown libicaf.dll 00007FF86E13B329 Unknown Unknown Unknown libifcoremdd.dll 00007FF86DFB5856 Unknown Unknown Unknown coarray1.exe 00007FF76B05345D Unknown Unknown Unknown coarray1.exe 00007FF76B053974 Unknown Unknown Unknown coarray1.exe 00007FF76B05389E Unknown Unknown Unknown coarray1.exe 00007FF76B05375E Unknown Unknown Unknown coarray1.exe 00007FF76B0539E9 Unknown Unknown Unknown KERNEL32.DLL 00007FF8B2724034 Unknown Unknown Unknown ntdll.dll 00007FF8B2BF3691 Unknown Unknown Unknown Abort(0) on node 0 (rank 0 in comm 496): application called MPI_Abort(comm=0x84000003, 0) - process 0
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
IA32 doesn't work anymore for coarrays. Don't even try it.
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page
- « Previous
- Next »