Hi Fokko,
On 25/09/15 11:54, Fokko Masselink wrote:
Hi,
I was looking into building architecture optimized version of one or two
packages.
So I was thing to use --optarch and accordingly change the software,
modulefile and repository paths with that, so the architecture optimized
versions keep the same name as their generic counterparts.
With the module structure you can then supersede the generic version with the
optimized version.
Though I don't seem to be able to properly use
eb --optarch=
I've tried with intel/2015
eb --optarch=xHost
eb --optarch=native
eb --optarch="-xHost"
I don't see any reflection of my values in the logs.
The --optarch should override the value in the easyconfig file for the
compiler toolchain. Right?
My easyconfig files have optarch: False by default.
When I enable it in the easyconfig file it correctly builds an optimized
version.
I want to just build with the Architecture options for the host I'm building
on (Nehalem, Westmere, SandyBridge, IvyBridge, Haswell, etc...)
With --optarch, you can modify the architecture-specific compiler flags
that EasyBuild uses; by default, it does "-march=native" for a GCC-based
toolchain, and "-xHost" for an Intel-based toolchain.
To make EasyBuild use "-O3" instead, you can use --optarch="O3" (i.e.
you strip of the leading -, yes, that's kind of weird, and we should fix
that, since it's easy to detect ;)).
The 'optarch' toolchain option in the easyconfig file should be set to
True or False (True is the default), to enable/disable using the
architecture-specific compiler flags.
So, you need to make sure it's set to True (or leave it unspecified
since that's also the default) to make EB pick up whatever you specified
to --optarch.
Does this answer your question?
regards,
Kenneth