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

Memory Alignment in Co-Array Fortran

cachecoherent
Beginner
370 Views

We are attempting to use Direct IO file I/O with Coarray Fortran (CAF)

We would like to write a distributed CAF array to a file opened via Direct IO (e.g. the O_DIRECT flag in the unix open(...) command).

In order for this to work, the distributed CAF array must be aligned to a specific logical block size (typically 512 or 4096).

What compiler flag or other method is needed to align CAF arrays in memory? Is this even possible?

NOTE:

    * We perform memory alignment in FORTRAN by calling an external C function to call POSIX_MEMALIGN(..). This alignment method works well, but does not work with CAF.

    * We would prefer not to copy a CAF array to an aligned local array before writing to disk because of the overhead associated with the copy.

0 Kudos
0 Replies
Reply