Memory Alignment in Co-Array Fortran

Memory Alignment in Co-Array Fortran

Portrait de cachecoherent

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.

1 contribution / 0 nouveau(x)
Reportez-vous à notre Notice d'optimisation pour plus d'informations sur les choix et l'optimisation des performances dans les produits logiciels Intel.