- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
How is I/O handeled with CoArrays on Windows. I know that WRITE(* goes to all images and READ(* is set to Image 1, but if I have an input file assigned to unit 17 and all the images open the file will there be read input errors? Say I have IUNIT=17 and I open the file with all the images OPEN(UNIT=IUNIT,FILE='INPUT.txt') would they be synconized on the read statements (READ(IUNIT,*) X,Y,Z) or each over there only location within the file?
The program I want to modify had a series of input files and I like the threads to read the same ones except for one file. 9 input files are the same and the 10th contains different values for the coarrays to handle. It be great not to have to clone the 9 input files to separate directories.
Also, eventually this code will be run on a Windows Cluster. Could someone provide an example CoArray instruction file for how this is done for windows? I have only seen versions for linux.
Is there a way of setting the max number of images at runtime besides using the FOR_COARRAY_NUM_IMAGES variable?
Thanks for your input.
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
It's not that "WRITE(*) goes to all images". Here's how it works:
- "Standard input" (that is, READ(*)), is preconnected only on image 1
- All other images have their own independent units, including standard output (WRITE(*)). The standard encourages, but does not require, implementations to "merge the streams" of standard output and Intel Fortran does this, so that all of the writes to unit * (or 6) will appear on the console of image 1, though the order is indeterminate.
- Any files you open are independent of other images. It is generally an error to open the same file twice, so yes, if you open a file on unit 17 in one image, you will likely get errors if you try to open the same file in other images. If you have enabled (non-standard) file sharing options, the open may succeed but there's no synchronization of file positions
For Windows Clusters, see http://software.intel.com/en-us/articles/building-and-running-a-distributed-coarray-application-on-windows/ (linked in the release notes)
The environment variable is the only control we provide for number of images.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks, that is what exactly what I was looking for.

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