CoArray I/O, Windows Instruction File, and Setting Max Images

CoArray I/O, Windows Instruction File, and Setting Max Images

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.

3 posts / novo 0
Último post
Para obter mais informações sobre otimizações de compiladores, consulte Aviso sobre otimizações.

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 (linked in the release notes)

The environment variable is the only control we provide for number of images.

Steve - Intel Developer Support

Thanks, that is what exactly what I was looking for.

Deixar um comentário

Faça login para adicionar um comentário. Não é membro? Inscreva-se hoje mesmo!