https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80610

--- Comment #16 from Dominique d'Humieres <dominiq at lps dot ens.fr> ---
Results on a Corei7 2.8Ghz with 16Gb of RAM 

for 512^3

% time gfc pr80610_db.f90 -finit-real=nan
329.364u 16.328s 5:58.24 96.4%  0+0k 3+1197io 599275pf+0w
% ll ./a.out
-rwxr-xr-x 1 dominiq staff 536879568 May 20 16:22 a.out*

for 1024*512^2

% time gfc pr80610_db.f90 -finit-real=nan
688.772u 40.163s 12:43.51 95.4% 0+0k 7179+2546io 1553879pf+0w
% ll ./a.out
-rwxr-xr-x 1 dominiq staff 1073751008 May 20 20:12 ./a.out*

for 1024^2*512

% time gfc pr80610_db.f90 -finit-real=nan
1237.208u 106.464s 23:48.15 94.0%       0+0k 7360+5316io 3284084pf+0w
% ll ./a.out
-rwxr-xr-x 1 dominiq staff 2147492832 May 20 22:02 ./a.out*

Note that 80% of the time is taken by the clang as and that the total time and
the size of the executable scale roughly linearly.

For 1024^3 the behavior depends on the mood of my laptop (with only 80Gb left
on my SSD): I got

% time gfc pr80610.f90 -finit-real=nan
gfc: internal compiler error: Killed: 9 (program f951)
Please submit a full bug report,
with preprocessed source if appropriate.
See <https://gcc.gnu.org/bugs/> for instructions.
42.811u 88.529s 2:28.47 88.4%   0+0k 4+8io 2pf+0w

or

% time gfc pr80610.f90 -finit-real=nan
clang -cc1as: fatal error: error in backend: IO failure on output stream.
2704.570u 1196.828s 1:08:28.71 94.9%    0+0k 20192+24435io 4719854pf+0w

> Basically to initialize all of the values of a static array, the array
> is stored in gfortan memory.  To do a 1GB array, you need at least 32times
> that amount of virtual memory available.  Related to bug 56671.

On my darwin box it looks that I rather need 64 times the size of the array,
also it seems that darwin compress the memory rather than using virtual memory.
What is the origin of this factor 8/16 increase in the memory size?

Reply via email to