All,

I'm hoping to rely on the wisdom of the gfortran gurus for some help on this.

I've been looking at trying to speed up the compilation of a library I help 
maintain because, well, always a worthy goal, especially with CI and Git. I did 
some profiling and found that the most expensive file to compile in our library 
(doing a debug build with GCC 10.3) is a "meta-module" that only has 'use foo' 
statements:

https://github.com/GEOS-ESM/MAPL/blob/main/base/MAPL_Mod.F90

It allows us to "gather" many use-statements so users don't need to "use" 50 
different modules.

This really surprised me as there are other files in this library that are 
infinitely more complex and I can think of ways we could maybe refactor or 
break them up, but this file is...boring. I guess I could split it up, but 
almost doesn't seem worth the effort.

Now, it is the slowest compile when building with Debugging flags which are, 
for this model:

  FLAGS = -O0 -g -fcheck=all,no-array-temps -finit-real=snan 
-ffree-line-length-none -fno-range-check -Wno-missing-include-dirs -fbacktrace 
-ffpe-trap=zero,overflow -fbacktrace -fallow-argument-mismatch 
-fallow-invalid-boz -falign-commons -Jinclude/MAPL.base -fPIC 
-ffixed-line-length-132 -pthread -fopenmp

My naïve thought when I first saw this was the tall pole was "well, I'll 
degrade the optimization" but, well, already at -O0. So perhaps one of these 
other flags is triggering some sort of weirdness with an "only USE" file?

I might try a binary exclusion experiment to figure it out (remove half the 
flags, etc.), but maybe it's obvious to the experts.

Thanks,
Matt

--
Matt Thompson, SSAI, Ld Scientific Programmer/Analyst
NASA GSFC,    Global Modeling and Assimilation Office
Code 610.1,  8800 Greenbelt Rd,  Greenbelt,  MD 20771
Phone: 301-614-6712                 Fax: 301-614-6246
http://science.gsfc.nasa.gov/sed/bio/matthew.thompson
  • ... Thompson, Matt (GSFC-610.1)[SCIENCE SYSTEMS AND APPLICATIONS INC] via Fortran
    • ... Martin Stein via Fortran
    • ... Thompson, Matt (GSFC-610.1)[SCIENCE SYSTEMS AND APPLICATIONS INC] via Fortran

Reply via email to