Openmp + private arrays puzzling

Openmp + private arrays puzzling


I am having problems understanding what ifort is doing with allocatable arrays that are private to each thread in an OpenMP program.

In my program, each OpenMP thread allocates a private array. The allocation is successful: no error, I can initialize and check the data, etc.

However, if compiled with ifort the operating system reports (top, free, /proc) that the memory used by my program is equal to the sum of shared variables + private variables on the master thread. It does not seem to notice the arrays allocated in any other thread. With the 7 compiler however, the memory reported is correctly the shared memory + private memory allocated in each thread.

Anyone knows what is the cause of this difference in behavior from version 7 to version 8, and if it is an issue for abug report? I find ifort is generally more efficient than ifc7 when dealing with allocatable arrays, but thisissue of"invisible" used memoryworries me.


OS:Linux 2.4.21 ia64
Compiler: ifc 7 and 8 (latest patches)

1 post / 0 new
For more complete information about compiler optimizations, see our Optimization Notice.