Hi Kenneth

Can I ask a simpler question?  As you see from the list below, a couple of key 
modules (widely used) are affected by this.  On the other hand our centre is 
not swamped in user queries about these modules being broken.  How severe is 
that bug?  What are the implications?  Is it just, when e.g. using a foss 
toolchain, you are getting the same gcc twice (once as a gcc module and once as 
a gcccore module)?  I assume there was discussion about this on the mailing 
list, but it sort of bypassed me, and a search in my mailbox doesn’t show 
anything obvious either.

On the other hand, I have started to install stuff like e.g. cmake in GCCcore 
to have it in my foss, intel and pgi toolchains (one install fixes three :) ).  
 I am wondering whether the fix will “inhibit” this.

Could I get a pointer to where I can read up on this?

Thanks
   Joachim

On 8 Mar 2017, at 15:23, Joachim Hein 
<[email protected]<mailto:[email protected]>> wrote:


On 8 Mar 2017, at 15:12, Kenneth Hoste 
<[email protected]<mailto:[email protected]>> wrote:

Hi Joachim,

On 08/03/2017 14:24, Joachim Hein wrote:
On 7 Mar 2017, at 17:41, Kenneth Hoste 
<[email protected]<mailto:[email protected]>> wrote:

Dear EasyBuilders,

I'm happy to announce the release of EasyBuild version 3.1.1 [1].
This is, you've guessed it, the best EasyBuild release so far...

This is a minor bugfix/update release. Highlights include:

   * bug fix in module generator for hierarchical module naming schemes and the 
GCC toolchain bundle (GCCcore + binutils)

       * if you are using GCC(core) in a hierarchical module naming scheme you 
should check the module files in the Compiler/GCC/<version> module subtree,
         and regenerate module files that include a "load GCCcore” statement
Hi Kenneth,

Thanks for raising this so prominently.  If I understand this correct, I need to

eb -f --module-only config_name.eb

For all the relevant modules.  Correct?

It is a long list here.

I would be more careful, and check with 'grep' which module files in 
Compiler/GCC have a load for 'GCCcore’.


Hi Kenneth,

This is a list of the grep procedure on our system

-bash-4.2$ more gcc_modules_for_rebuild.out
4.9.3-2.25/Autoconf/2.69:if { ![ is-loaded GCCcore/4.9.3 ] } {
4.9.3-2.25/Autoconf/2.69:    module load GCCcore/4.9.3
4.9.3-2.25/Automake/1.15:if { ![ is-loaded GCCcore/4.9.3 ] } {
4.9.3-2.25/Automake/1.15:    module load GCCcore/4.9.3
4.9.3-2.25/Autotools/20150215:if { ![ is-loaded GCCcore/4.9.3 ] } {
4.9.3-2.25/Autotools/20150215:    module load GCCcore/4.9.3
4.9.3-2.25/Emacs/24.5:if { ![ is-loaded GCCcore/4.9.3 ] } {
4.9.3-2.25/Emacs/24.5:    module load GCCcore/4.9.3
4.9.3-2.25/hwloc/1.11.2:if { ![ is-loaded GCCcore/4.9.3 ] } {
4.9.3-2.25/hwloc/1.11.2:    module load GCCcore/4.9.3
4.9.3-2.25/libtool/2.4.6:if { ![ is-loaded GCCcore/4.9.3 ] } {
4.9.3-2.25/libtool/2.4.6:    module load GCCcore/4.9.3
4.9.3-2.25/M4/1.4.17:if { ![ is-loaded GCCcore/4.9.3 ] } {
4.9.3-2.25/M4/1.4.17:    module load GCCcore/4.9.3
4.9.3-2.25/ncurses/6.0:if { ![ is-loaded GCCcore/4.9.3 ] } {
4.9.3-2.25/ncurses/6.0:    module load GCCcore/4.9.3
4.9.3-2.25/numactl/2.0.11:if { ![ is-loaded GCCcore/4.9.3 ] } {
4.9.3-2.25/numactl/2.0.11:    module load GCCcore/4.9.3
4.9.3-2.25/OpenBLAS/0.2.15-LAPACK-3.6.0:if { ![ is-loaded GCCcore/4.9.3 ] } {
4.9.3-2.25/OpenBLAS/0.2.15-LAPACK-3.6.0:    module load GCCcore/4.9.3
4.9.3-2.25/OpenMPI/1.10.2:if { ![ is-loaded GCCcore/4.9.3 ] } {
4.9.3-2.25/OpenMPI/1.10.2:    module load GCCcore/4.9.3
4.9.3-2.25/OpenMPI/1.10.2~:if { ![ is-loaded GCCcore/4.9.3 ] } {
4.9.3-2.25/OpenMPI/1.10.2~:    module load GCCcore/4.9.3
4.9.3-2.25/Singularity/2.2.1.lua:if not isloaded("GCCcore/4.9.3") then
4.9.3-2.25/Singularity/2.2.1.lua:    load("GCCcore/4.9.3")
5.4.0-2.26/Autoconf/2.69.lua:if not isloaded("GCCcore/5.4.0") then
5.4.0-2.26/Autoconf/2.69.lua:    load("GCCcore/5.4.0")
5.4.0-2.26/Automake/1.15.lua:if not isloaded("GCCcore/5.4.0") then
5.4.0-2.26/Automake/1.15.lua:    load("GCCcore/5.4.0")
5.4.0-2.26/Autotools/20150215.lua:if not isloaded("GCCcore/5.4.0") then
5.4.0-2.26/Autotools/20150215.lua:    load("GCCcore/5.4.0")
5.4.0-2.26/bzip2/1.0.6.lua:if not isloaded("GCCcore/5.4.0") then
5.4.0-2.26/bzip2/1.0.6.lua:    load("GCCcore/5.4.0")
5.4.0-2.26/CMake/3.6.1.lua:if not isloaded("GCCcore/5.4.0") then
5.4.0-2.26/CMake/3.6.1.lua:    load("GCCcore/5.4.0")
5.4.0-2.26/CUDA/8.0.44:if { ![ is-loaded GCCcore/5.4.0 ] } {
5.4.0-2.26/CUDA/8.0.44:    module load GCCcore/5.4.0
5.4.0-2.26/CUDA/8.0.44-GCC-5.4.0-2.26.lua:if not isloaded("GCCcore/5.4.0") then
5.4.0-2.26/CUDA/8.0.44-GCC-5.4.0-2.26.lua:    load("GCCcore/5.4.0")
5.4.0-2.26/CUDA/8.0.44.lua:if not isloaded("GCCcore/5.4.0") then
5.4.0-2.26/CUDA/8.0.44.lua:    load("GCCcore/5.4.0")
5.4.0-2.26/GMP/6.1.1.lua:if not isloaded("GCCcore/5.4.0") then
5.4.0-2.26/GMP/6.1.1.lua:    load("GCCcore/5.4.0")
5.4.0-2.26/hwloc/1.11.3:if { ![ is-loaded GCCcore/5.4.0 ] } {
5.4.0-2.26/hwloc/1.11.3:    module load GCCcore/5.4.0
5.4.0-2.26/libffi/3.2.1.lua:if not isloaded("GCCcore/5.4.0") then
5.4.0-2.26/libffi/3.2.1.lua:    load("GCCcore/5.4.0")
5.4.0-2.26/libtool/2.4.6.lua:if not isloaded("GCCcore/5.4.0") then
5.4.0-2.26/libtool/2.4.6.lua:    load("GCCcore/5.4.0")
5.4.0-2.26/libxml2/2.9.4.lua:if not isloaded("GCCcore/5.4.0") then
5.4.0-2.26/libxml2/2.9.4.lua:    load("GCCcore/5.4.0")
5.4.0-2.26/numactl/2.0.11:if { ![ is-loaded GCCcore/5.4.0 ] } {
5.4.0-2.26/numactl/2.0.11:    module load GCCcore/5.4.0
5.4.0-2.26/OpenBLAS/0.2.18-LAPACK-3.6.1:if { ![ is-loaded GCCcore/5.4.0 ] } {
5.4.0-2.26/OpenBLAS/0.2.18-LAPACK-3.6.1:    module load GCCcore/5.4.0
5.4.0-2.26/OpenBLAS/0.2.18-LAPACK-3.6.1-INTERFACE64:if { ![ is-loaded 
GCCcore/5.4.0 ] } {
5.4.0-2.26/OpenBLAS/0.2.18-LAPACK-3.6.1-INTERFACE64:    module load 
GCCcore/5.4.0
5.4.0-2.26/OpenMPI/1.10.3:if { ![ is-loaded GCCcore/5.4.0 ] } {
5.4.0-2.26/OpenMPI/1.10.3:    module load GCCcore/5.4.0
5.4.0-2.26/OpenMPI/1.10.3~:if { ![ is-loaded GCCcore/5.4.0 ] } {
5.4.0-2.26/OpenMPI/1.10.3~:    module load GCCcore/5.4.0
5.4.0-2.26/XZ/5.2.2.lua:if not isloaded("GCCcore/5.4.0") then
5.4.0-2.26/XZ/5.2.2.lua:    load("GCCcore/5.4.0")
6.2.0-2.27/hwloc/1.11.4:if { ![ is-loaded GCCcore/6.2.0 ] } {
6.2.0-2.27/hwloc/1.11.4:    module load GCCcore/6.2.0
6.2.0-2.27/numactl/2.0.11:if { ![ is-loaded GCCcore/6.2.0 ] } {
6.2.0-2.27/numactl/2.0.11:    module load GCCcore/6.2.0
6.2.0-2.27/OpenMPI/2.0.1:if { ![ is-loaded GCCcore/6.2.0 ] } {
6.2.0-2.27/OpenMPI/2.0.1:    module load GCCcore/6.2.0
6.3.0-2.27/hwloc/1.11.5.lua:if not isloaded("GCCcore/6.3.0") then
6.3.0-2.27/hwloc/1.11.5.lua:    load("GCCcore/6.3.0")
6.3.0-2.27/numactl/2.0.11.lua:if not isloaded("GCCcore/6.3.0") then
6.3.0-2.27/numactl/2.0.11.lua:    load("GCCcore/6.3.0")
6.3.0-2.27/OpenBLAS/0.2.19-LAPACK-3.7.0.lua:if not isloaded("GCCcore/6.3.0") 
then
6.3.0-2.27/OpenBLAS/0.2.19-LAPACK-3.7.0.lua:    load("GCCcore/6.3.0")
6.3.0-2.27/OpenMPI/2.0.2.lua:if not isloaded("GCCcore/6.3.0") then
6.3.0-2.27/OpenMPI/2.0.2.lua:    load("GCCcore/6.3.0")




--module-only is indeed useful to regenerate the affected modules, but it needs 
to be used with care, it's not 100% perfect yet (some 'setenv' or 
'prepend_path' statement may be missing or contain incorrect values in some 
cases, or the easyblock used for regenerating the module file may crash).

Not sure I understand this.  Are you suggesting, I should do a full build of 
all the module on the list?



So, back up the existing module files first, and then do a 'diff' after 
regenerating the modules that include a "load GCCcore" to make sure nothing is 
missing in the regenerated module file.


Hmm,  that requires one understands these modules and what needs to be there.   
T o be honnest unless I hit issues, I take a fair amount of Easybuild on trust 
(and complain here if stuff breaks).

If you notice anything strange, please let us know.


No worries - you know me, that I will do this.

Warm  regards
   Joachim

Also, if you could share a list of module files affected by this bug in your 
setup, that would be nice.


regards,

Kenneth


Thanks and best wishes
   Joachim

   * bug fix in packaging support with FPM where unexpected characters in the 
software description caused problems

   * patch for XZ 5.2.2 to avoid breaking the 'rpm' command when the XZ module 
is loaded

   * ensure that the right ncurses dependency is picked up in the CMake 
easyconfig to get a working 'ccmake'

   * updates to easyblocks CGAL, impi, imkl, MCR, NWChem and Qt for recent 
versions of these software packages

   * easyconfig files for the new iomkl/2017a and intel/2017.02 compiler 
toolchains

   * fixed source URLS for various software packages

   * lots of style fixes in existing easyconfig files (in order to enable 
automatic style checking in easyconfig pull requests in the near future)

   * support for 16 new software packages, incl. Caffe

   * updated easyconfigs for binutils 2.28, NWChem 6.6, matplotlib 2.0.0, VTK 
7.1.0, etc.

This brings the total number of supported software packages to 1,168 [2]!
A detailed overview of all changes is available in the release notes [3].

Thanks to everyone who contributed to this release in one way or another!


To upgrade to EasyBuild v3.1.1, there are several options, see [4].
Two particularly easy options include:

   * eb --install-latest-eb-release  # requires EasyBuild v2.9.0 or more recent

   * eb --from-pr 4266               # use easyconfig from PR #4266 [5]



Enjoy!

regards,

Kenneth (a.k.a. boegel)
EasyBuild release manager


[1] https://pypi.python.org/pypi/easybuild/3.1.1
[2] 
http://easybuild.readthedocs.io/en/latest/version-specific/Supported_software.html
[3] http://easybuild.readthedocs.io/en/latest/Release_notes.html
[4] 
http://easybuild.readthedocs.io/en/latest/Installation.html#updating-an-existing-easybuild-installation
[5] https://github.com/hpcugent/easybuild-easyconfigs/pull/4266/files




Reply via email to