Hey Jack,

On 21 November 2016 at 00:15, Jack Perdue 
<[email protected]<mailto:[email protected]>> wrote:

1) --use-existing-modules did not do what I expected
    (I was curious why it was there).   Although I had
    had all dependencies recompiled (with modules) using
    just their GCC subtoolchain (this was testing with foss),
   if I use that option, EB insisted using the foss version
   dependencies instead of the GCC version.  Not what
   I expected.  Removing it got modules with min toolchains.

Yeah, it starts searching from the top when you use this...so if you have a 
version installed with foss it will pick that over GCC.


load("libpng/1.6.24-iccifort-2016.3.210-GCC-5.4.0-2.26")
load("bzip2/1.0.6-iccifort-2016.3.210-GCC-5.4.0-2.26")
load("zlib/1.2.8-GCCcore-5.4.0")

I would've preferred it use zlib/1.2.8-iccifort-2016.3.210-GCC-5.4.0-2.26

This was exactly the use case for having `--use-existing-modules`, but the idea 
only works if you're not starting from a module tree that already has a fully 
populated top level (since it will always stop searching there). In other 
words, if I start from a clean slate and explicitly install 
zlib/1.2.8-iccifort-2016.3.210-GCC-5.4.0-2.26 (because I know Intel compiled 
zlib gives better performance since it has been explicitly tuned) and then 
build freetype with minimal-toolchains and use-existing-modules, it will chose 
zlib/1.2.8-iccifort-2016.3.210-GCC-5.4.0-2.26 over the one in GCCcore when 
appropriate.

Alan



Jack Perdue
Lead Systems Administrator
High Performance Research Computing
TAMU Division of Research
[email protected]<mailto:[email protected]>    http://hprc.tamu.edu
HPRC Helpdesk: [email protected]<mailto:[email protected]>

On 11/19/2016 01:18 PM, Kenneth Hoste wrote:
Hi Jack,


On 19/11/16 18:42, Jack Perdue wrote:
Ah... nevermind... it has to be in the ROBOTPATH,


Enabling --minimal-toolchains means that EasyBuild will go and hunt for 
easyconfig files that provide dependencies with subtoolchains like iccifort 
first, before it considers the full ('intel', in this case) toolchai.

So, yes, the robot search path is important here. Easyconfig files that are not 
available there will not be considered.

Check with --dry-run or -D to see which easyconfigs 'eb' will pick up.


not just existing in

$EASYBUILD_INSTALLPATH_SOFTWARE/<name>/<version>/easybuild/<name>-<version>.eb

The easyconfig file that was used is indeed copied to the install directory, 
but EasyBuild doesn't pick up on it later (unless you include each 
<prefix>/</name>/<version>/easybuild/ directory in your robot search path).

Some people do include the easyconfigs archive (where easyconfigs are also 
being copied to) in their robot search path, so they can easily reinstall 
something they've installed before, or to let the robot pick up on it later.


where EasyBuild often looks (or at least used to).

I don't think EasyBuild ever picked up the easyconfig file that was copied to 
the install directory automagically...


That gets me further... then it fails with:

These module(s) exist but cannot be loaded as requested: 
"iccifort/2016.3.210-GCC-5.4.0-2.26
== 2016-11-19 11:35:19,503 build_log.py:220 INFO FAILED: Installation ended 
unsuccessfully (build directory: /tmp/easybuild/freetype/2.6.5/intel-2016b): 
build failed (first 300 chars): Sanity check failed: loading fake module 
failed: 'Changing environment as dictated by module failed: name \'false\' is 
not defined (stdout: \nfalse\n, stderr: Lmod has detected the following error: 
These module(s) exist but cannot be loaded as requested: 
"iccifort/2016.3.210-GCC-5.4.0-2.26"\n\n
== 2016-11-19 11:35:19,504 build_log.py:149 ERROR EasyBuild crashed with an 
error (at ?:124 in __init__): build failed (first 300 chars): Sanity check 
failed: loading fake module failed: 'Changing environment as dictated by module 
failed: name \'false\' is not defined (stdout: \nfalse\n, stderr: Lmod has 
detected the following error: These module(s) exist but cannot be loaded as 
requested: "iccifort/2016.3.210-GCC-5.4.0-2.26"\n\n   Tr (at 
easybuild/main.py:118 in build_and_install_software)
== 2016-11-19 11:35:19,505 build_log.py:149 ERROR EasyBuild crashed with an 
error (at ?:124 in __init__): Build of 
/general/sw/eb/hprc/ec-dev/terra/freetype-2.6.5-intel-2016b.eb failed (err: 
'build failed (first 300 chars): Sanity check failed: loading fake module 
failed: \'Changing environment as dictated by module failed: name \\\'false\\\' 
is not defined (stdout: \\nfalse\\n, stderr: Lmod has detected the following 
error: These module(s) exist but cannot be loaded as requested: 
"iccifort/2016.3.210-GCC-5.4.0-2.26"\\n\\n   Tr') (at easybuild/main.py:150 in 
build_and_install_software)

This looks like a problem with your current $MODULEPATH.

It seems like you're installing to a different location than usual to test, but 
remember that EasyBuild will (only) include the '/modules/all' subdirectory of 
the location you're installing to to $MODULEPATH. If you also have modules in 
other locations that it should be picked up on, do a 'module use' on those 
locations first.


I hope this helps,


Kenneth


jack


On 11/19/2016 11:18 AM, Jack Perdue wrote:
Howdy again,

Alright I've tried the environment and the command line
and not having any luck.  For environment, I have:

pushenv("EASYBUILD_MINIMAL_TOOLCHAINS", "1")
pushenv("EASYBUILD_USE_EXISTING_MODULES", "1")

I also built:

bzip2/1.0.6-iccifort-2016.3.210-GCC-5.4.0-2.26
libpng/1.6.24-iccifort-2016.3.210-GCC-5.4.0-2.26
zlib/1.2.8-iccifort-2016.3.210-GCC-5.4.0-2.26

I force a rebuild of the provided freetype-2.6.5-intel-2016b.eb
(which has those as dependencies) with the above settings
enabled (and/or on the command line), and I still get a freetype
that uses bzip2/1.0.6-intel-2016b (and not the one above).

intel/2016b is based on iccifort/2016.3.210-GCC-5.4.0-2.26.
Why doesn't it use the minimal toolchain version?

What am I missing?

Jack Perdue
Lead Systems Administrator
High Performance Research Computing
TAMU Division of Research
[email protected]<mailto:[email protected]>    http://hprc.tamu.edu
HPRC Helpdesk: [email protected]<mailto:[email protected]>

On 11/19/2016 01:39 AM, Kenneth Hoste wrote:
Hi Jack,

The rule is the same for all configuration options: strip off the --, all caps, 
- becomes _, prefix with EASYBUILD_

So, you need to define $EASYBUILD_MINIMAL_TOOLCHAINS .

Also, make sure you read the documentation at 
http://easybuild.readthedocs.io/en/latest/Manipulating_dependencies.html#using-minimal-toolchains-for-dependencies
 
<https://urldefense.proofpoint.com/v2/url?u=http-3A__easybuild.readthedocs.io_en_latest_Manipulating-5Fdependencies.html-23using-2Dminimal-2Dtoolchains-2Dfor-2Ddependencies&d=CwMFAg&c=ODFT-G5SujMiGrKuoJJjVg&r=yuyoBkmTkIQPbv1BTF9U27ww5Lm7GhsMmWcQG9gmjbA&m=lMiSfU2GikqWdQbwozX3Y7KXPniN6Hlo0pz_PSaStU8&s=TjtxIb9vxJnsiX2yDsMKwv4zEnsuhJwRUHTUb2r4U1c&e=>,
 since there are additional config options you should consider that relate to 
--minimal-toolchains.


regard,

Kenneth

Op 19 nov. 2016 om 07:44 heeft Jack Perdue 
<[email protected]<mailto:[email protected]> 
<mailto:[email protected]<mailto:[email protected]>>> het volgende geschreven:

Howdy EB gods,

What's the environment variable for --minimal-toolchain

(e.g. EASYBUILD_MINIMAL_TOOLCHAIN=1 ??)

http://easybuild.readthedocs.io/en/latest/Manipulating_dependencies.html#using-minimal-toolchains-for-dependencies
 
<https://urldefense.proofpoint.com/v2/url?u=http-3A__easybuild.readthedocs.io_en_latest_Manipulating-5Fdependencies.html-23using-2Dminimal-2Dtoolchains-2Dfor-2Ddependencies&d=CwMFAg&c=ODFT-G5SujMiGrKuoJJjVg&r=yuyoBkmTkIQPbv1BTF9U27ww5Lm7GhsMmWcQG9gmjbA&m=lMiSfU2GikqWdQbwozX3Y7KXPniN6Hlo0pz_PSaStU8&s=TjtxIb9vxJnsiX2yDsMKwv4zEnsuhJwRUHTUb2r4U1c&e=>

I'd like it as a default. jack









--
Dr. Alan O'Cais
E-CAM Software Manager
Juelich Supercomputing Centre
Forschungszentrum Juelich GmbH
52425 Juelich, Germany

Phone: +49 2461 61 5213
Fax: +49 2461 61 6656
E-mail: [email protected]<mailto:[email protected]>
WWW:    http://www.fz-juelich.de/ias/jsc/EN


------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------
Forschungszentrum Juelich GmbH
52425 Juelich
Sitz der Gesellschaft: Juelich
Eingetragen im Handelsregister des Amtsgerichts Dueren Nr. HR B 3498
Vorsitzender des Aufsichtsrats: MinDir Dr. Karl Eugen Huthmacher
Geschaeftsfuehrung: Prof. Dr.-Ing. Wolfgang Marquardt (Vorsitzender),
Karsten Beneke (stellv. Vorsitzender), Prof. Dr.-Ing. Harald Bolt,
Prof. Dr. Sebastian M. Schmidt
------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------

Reply via email to