[CIG-SEISMO] SPECFEM3D_GLOBE - Default xlf compiler flags

Elliott Sales de Andrade esalesde at physics.utoronto.ca
Thu Apr 5 12:02:02 PDT 2012


Hi SPECFEM3D_GLOBE developers,

I had a little trouble with the default compiler flags for the IBM xlf
compiler, and I think this info might be useful for others.

According to the manual, `FLAGS_NO_CHECK` is for fast, production code,
but the xlf flags include -qinitauto=7FBFFFFF and
-qflttrap=overflow:zerodivide:invalid:enable. The first one isn't so
bad, but the second causes the binaries to run 4 times slower on our
cluster. As no other compilers seem to have similar options enabled, I'd
guess these were left here by accident.

Also, on our cluster, the linking step does *not* use the GNU ld linker
but the native AIX linker. (FYI, the manual is mistaken; it is ld that
does the final linking, not gcc.) This AIX linker does not seem to
understand -relax (and appears to interpret it as some other options)
and produces unusable binaries. It would probably be helpful if this
little gotcha was mentioned in the manual, or perhaps moved into the
BlueGenes-specific section.

On a side note, the manual suggests to modify the generated Makefile to
experiment with different compiler flags. Now that the source files have
been split into several directories, this method may be a bit tedious
and error-prone. It would be easier to just run ./configure
FLAGS_CHECK="options" FLAGS_NO_CHECK="other options".

-- 
Elliott Sales de Andrade <esalesde at physics.utoronto.ca>
University of Toronto (Physics)




More information about the CIG-SEISMO mailing list