[Bug fortran/80610] Compiler crashes ungraciously when large static array is initialized with anything other than zero
dominiq at lps dot ens.fr
gcc-bugzilla@gcc.gnu.org
Sun May 21 15:25:00 GMT 2017
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?
More information about the Gcc-bugs
mailing list