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

Reply via email to