Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

foss/2017b toolchain definition (REVIEW) #4768

Merged
merged 11 commits into from
Aug 31, 2017

Conversation

boegel
Copy link
Member

@boegel boegel commented Jun 22, 2017

(created using eb --new-pr)

requires #4794 for GCC 6.4.0

@boegel boegel added this to the 3.3.0 milestone Jun 22, 2017
@boegel
Copy link
Member Author

boegel commented Jun 22, 2017

Test report by @boegel
SUCCESS
Build succeeded for 8 out of 8 (8 easyconfigs in this PR)
node2050.delcatty.os - Linux centos linux 7.3.1611, Intel(R) Xeon(R) CPU E5-2670 0 @ 2.60GHz, Python 2.7.5
See https://gist.github.com/d9fd0aca3f846294b80dbbfbfd9ff141 for a full test report.


skipsteps = ['configure']

buildopts = 'BINARY=64 USE_THREAD=1 CC="$CC" FC="$F77" NO_AFFINITY=1'
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should also add USE_OPENMP=1, see #4524

@boegel
Copy link
Member Author

boegel commented Jun 22, 2017

Test report by @boegel
SUCCESS
Build succeeded for 8 out of 8 (8 easyconfigs in this PR)
node2441.golett.os - Linux centos linux 7.3.1611, Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz, Python 2.7.5
See https://gist.github.com/0fdb2da006a7c8b573ebaacac4b4da70 for a full test report.

easyblock = 'ConfigureMake'

name = 'OpenBLAS'
version = '0.2.19'
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is the most recent, but relatively old, version (released Sept'16).

I reached out to the OpenBLAS maintainer (@xianyi), this was his reply: We will release OpenBLAS in one or two weeks.

So, probably worth waiting for...

@boegel boegel modified the milestones: 3.3.0, 3.3.1 Jun 25, 2017

toolchain = {'name': 'dummy', 'version': 'dummy'}

gccver = '6.3.0-2.28'
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@boegel
Copy link
Member Author

boegel commented Jun 28, 2017

note: installing Python 2.7.13 + all dependencies on top of foss/2017b as it is currently (using the GCC 6.4.0 release candidate and OpenBLAS 0.2.19) works like a charm:

$ ml show Python/2.7.13-foss-2017b
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
   /tmp/vsc40023/modules/all/Python/2.7.13-foss-2017b.lua:
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
help([[
Description
===========
Python is a programming language that lets you work more quickly and integrate your systems
 more effectively.


More information
================
 - Homepage: http://python.org/


Included extensions
===================
arff-2.1.0, bitstring-3.1.5, blist-1.3.6, cryptography-1.8.1, Cython-0.25.2,
dateutil-2.6.0, deap-1.0.2, decorator-4.0.11, docopt-0.6.2, ecdsa-0.13,
enum34-1.1.6, funcsigs-1.0.2, mock-2.0.0, mpi4py-2.0.0, netaddr-0.7.19,
netifaces-0.10.5, nose-1.3.7, numpy-1.12.1, pandas-0.19.2, paramiko-2.1.2,
paycheck-1.0.2, pbr-2.0.0, pip-9.0.1, pycrypto-2.6.1, pyparsing-2.2.0,
pytz-2017.2, scipy-0.19.0, setuptools-33.1.1, six-1.10.0, virtualenv-15.1.0
]])
whatis("Description: Python is a programming language that lets you work more quickly and integrate your systems
 more effectively.")
whatis("Homepage: http://python.org/")
whatis("Extensions: arff-2.1.0, bitstring-3.1.5, blist-1.3.6, cryptography-1.8.1, Cython-0.25.2, dateutil-2.6.0, deap-1.0.2, decorator-4.0.11, docopt-0.6.2, ecdsa-0.13, enum34-1.1.6, funcsigs-1.0.2, mock-2.0.0, mpi4py-2.0.0, netaddr-0.7.19, netifaces-0.10.5, nose-1.3.7, numpy-1.12.1, pandas-0.19.2, paramiko-2.1.2, paycheck-1.0.2, pbr-2.0.0, pip-9.0.1, pycrypto-2.6.1, pyparsing-2.2.0, pytz-2017.2, scipy-0.19.0, setuptools-33.1.1, six-1.10.0, virtualenv-15.1.0")
conflict("Python")
load("foss/2017b")
load("bzip2/1.0.6-GCCcore-6.4.0")
load("zlib/1.2.11-GCCcore-6.4.0")
load("libreadline/7.0-GCCcore-6.4.0")
load("ncurses/6.0-GCCcore-6.4.0")
load("SQLite/3.19.3-GCCcore-6.4.0")
load("GMP/6.1.2-GCCcore-6.4.0")
load("libffi/3.2.1-GCCcore-6.4.0")
prepend_path("CPATH","/tmp/vsc40023/software/Python/2.7.13-foss-2017b/include")
prepend_path("LD_LIBRARY_PATH","/tmp/vsc40023/software/Python/2.7.13-foss-2017b/lib")
prepend_path("LIBRARY_PATH","/tmp/vsc40023/software/Python/2.7.13-foss-2017b/lib")
prepend_path("MANPATH","/tmp/vsc40023/software/Python/2.7.13-foss-2017b/share/man")
prepend_path("PATH","/tmp/vsc40023/software/Python/2.7.13-foss-2017b/bin")
prepend_path("PKG_CONFIG_PATH","/tmp/vsc40023/software/Python/2.7.13-foss-2017b/lib/pkgconfig")
setenv("EBROOTPYTHON","/tmp/vsc40023/software/Python/2.7.13-foss-2017b")
setenv("EBVERSIONPYTHON","2.7.13")
setenv("EBDEVELPYTHON","/tmp/vsc40023/software/Python/2.7.13-foss-2017b/easybuild/Python-2.7.13-foss-2017b-easybuild-devel")
prepend_path("CPATH","/tmp/vsc40023/software/Python/2.7.13-foss-2017b/lib/python2.7/site-packages/numpy-1.12.1-py2.7-linux-x86_64.egg/numpy/core/include")
prepend_path("LD_LIBRARY_PATH","/tmp/vsc40023/software/Python/2.7.13-foss-2017b/lib/python2.7/site-packages/numpy-1.12.1-py2.7-linux-x86_64.egg/numpy/core/lib")
prepend_path("LIBRARY_PATH","/tmp/vsc40023/software/Python/2.7.13-foss-2017b/lib/python2.7/site-packages/numpy-1.12.1-py2.7-linux-x86_64.egg/numpy/core/lib")
setenv("EBEXTSLISTPYTHON","setuptools-33.1.1,pip-9.0.1,nose-1.3.7,numpy-1.12.1,scipy-0.19.0,blist-1.3.6,mpi4py-2.0.0,paycheck-1.0.2,pbr-2.0.0,Cython-0.25.2,six-1.10.0,dateutil-2.6.0,deap-1.0.2,decorator-4.0.11,arff-2.1.0,pycrypto-2.6.1,ecdsa-0.13,cryptography-1.8.1,paramiko-2.1.2,pyparsing-2.2.0,netifaces-0.10.5,netaddr-0.7.19,funcsigs-1.0.2,mock-2.0.0,pytz-2017.2,pandas-0.19.2,enum34-1.1.6,bitstring-3.1.5,virtualenv-15.1.0,docopt-0.6.2")

easyblock = 'ConfigureMake'

name = 'OpenBLAS'
version = '0.2.19'
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OpenBLAS 0.2.20 is expected to be released soon (see OpenMathLib/OpenBLAS#1223); I suggest we postpone setting foss/2017b in stone until it's available?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems like they screwed something up with the OpenBLAS 0.2.20 release. Another quick 0.2.21 release is planned, probably worth waiting for this? See OpenMathLib/OpenBLAS#1258.

Thoughts @easybuilders/easybuild-easyconfigs-maintainers?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since the 0.2.21 release isn't happening, I went forward with using 0.2.20 and applying two patches on top of it, so we can finalise foss/2017b...

@easybuilders easybuilders deleted a comment from boegelbot Jul 5, 2017
@boegel boegel modified the milestones: 3.3.1, 3.4.0 Jul 9, 2017
skipsteps = ['configure']

buildopts = 'BINARY=64 USE_THREAD=1 CC="$CC" FC="$F77" NO_AFFINITY=1'
installopts = "USE_THREAD=1 PREFIX=%(installdir)s"
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should also add USE_OPENMP=1, see #4524

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

...and remove NO_AFFINITY=1 too for the reasons given in #4524

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add a checksum?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

adding USE_OPENMP=1 and dropping NO_AFFINITY=1 done, see 91fc9ed

Copy link
Member

@verdurin verdurin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Minor typos and SLURM comment suggestion

comp_mpi_tc_name = 'gompi'
comp_mpi_tc = (comp_mpi_tc_name, version)

# compiler toolchain depencies
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

dependencies


# compiler toolchain depencies
# we need GCC and OpenMPI as explicit dependencies instead of gompi toolchain
# because of toolchain preperation functions
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

preparation

configopts += '--enable-mpirun-prefix-by-default ' # suppress failure modes in relation to mpirun path
configopts += '--with-hwloc=$EBROOTHWLOC ' # hwloc support
configopts += '--disable-dlopen ' # statically link component, don't do dynamic loading

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Worth adding a commented out option here for SLURM integration?

E.g. configopts += '--with-slurm --with-pmi=/usr/include/slurm --with-pmi-libdir=/usr

as a reference?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@verdurin I think that should go in the documentation somewhere, e.g. how to site-customise OpenMPI?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@boegel yes, that's fine too

toolchainopts = {'usempi': True}

sources = [SOURCELOWER_TAR_GZ]
source_urls = ['http://www.netlib.org/benchmark/%(namelower)s']
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add a checksum?

skipsteps = ['configure']

buildopts = 'BINARY=64 USE_THREAD=1 CC="$CC" FC="$F77" NO_AFFINITY=1'
installopts = "USE_THREAD=1 PREFIX=%(installdir)s"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add a checksum?

toolchainopts = {'pic': True}

source_urls = [homepage]
sources = [SOURCELOWER_TGZ]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add a checksum here too?

@JackPerdue
Copy link
Contributor

Y'all know, if you used GCCcore (vs. GCC) for hwloc and numactl they could be reused when building iompi/2017b

name = 'OpenBLAS'
version = '0.2.19'

lapackver = '3.7.0'
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LAPACK 3.7.1 is out, so we should bump this too

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Or not, we should probably stick with the shipped LAPACK instead, see OpenMathLib/OpenBLAS#1273...

@boegel
Copy link
Member Author

boegel commented Aug 23, 2017

@JackPerdue good point, now using existing hwloc & numactl easyconfigs that use GCCcore/6.4.0 as toolchain

@easybuilders easybuilders deleted a comment from boegelbot Aug 23, 2017
@boegel
Copy link
Member Author

boegel commented Aug 23, 2017

Test report by @boegel
SUCCESS
Build succeeded for 7 out of 7 (7 easyconfigs in this PR)
node2026.delcatty.os - Linux centos linux 7.3.1611, Intel(R) Xeon(R) CPU E5-2670 0 @ 2.60GHz, Python 2.7.5
See https://gist.github.com/17f70b785b9b9ab0c96046dec2aaf95e for a full test report.

@boegel
Copy link
Member Author

boegel commented Aug 24, 2017

Test report by @boegel
SUCCESS
Build succeeded for 7 out of 7 (7 easyconfigs in this PR)
node2473.golett.os - Linux centos linux 7.3.1611, Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz, Python 2.7.5
See https://gist.github.com/f97186acf505eba7188d74591a88b03c for a full test report.

@verdurin
Copy link
Member

Test report by @verdurin
SUCCESS
Build succeeded for 9 out of 9 (7 easyconfigs in this PR)
ca003.camp.thecrick.org - Linux centos linux 7.3.1611, Intel(R) Xeon(R) CPU E5-2640 v3 @ 2.60GHz, Python 2.7.5
See https://gist.github.com/3fdbd1c0977f971b773fc28bcffcbe4c for a full test report.

@JackPerdue
Copy link
Contributor

Test report by @JackPerdue
SUCCESS
Build succeeded for 3 out of 3 (7 easyconfigs in this PR)
tlogin-0502.cluster - Linux centos linux 7.3.1611, Intel(R) Xeon(R) CPU E5-2680 v4 @ 2.40GHz, Python 2.7.5
See https://gist.github.com/d3f3cbf58e3483ac64a36ae7a42c3e64 for a full test report.

@wpoely86
Copy link
Member

Test report by @wpoely86
FAILED
Build succeeded for 11 out of 17 (7 easyconfigs in this PR)
nic66 - Linux centos linux 7.3.1611, Intel(R) Xeon(R) CPU E5-2680 v4 @ 2.40GHz, Python 2.7.5
See https://gist.github.com/5696cc2e38a5644548b3b82611bc5e69 for a full test report.

@boegel
Copy link
Member Author

boegel commented Aug 25, 2017

@wpoely86 Hmm...

/bin/grep: /usr/lib64/libmunge.la: No such file or directory
/bin/sed: can't read /usr/lib64/libmunge.la: No such file or directory
libtool:   error: '/usr/lib64/libmunge.la' is not a valid libtool archive

Any ideas? I don't have any libmunge.* installed either, works fine for me...

@ocaisa
Copy link
Member

ocaisa commented Aug 25, 2017

@akesandgren Looks like your stack isn't consistent with the new PR (two versions of M4), maybe disable searching in your local repos?

(large_src, '.'),
(timing_src, '.'),
'OpenBLAS-%(version)s_fix-Intel-L1-cache-size-detection.patch',
'OpenBLAS-%(version)s_revert-honor-cpuset.patch',
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I checked with one of the OpenBLAS co-maintainers whether going forward with OpenBLAS 0.2.20 with these two patches on top makes sense w.r.t. stability, and he confirmed it was.

No need to keep stalling this and hope for a 'quick' OpenBLAS 0.2.21 that includes these fixes...

@JackPerdue
Copy link
Contributor

Test report by @JackPerdue
SUCCESS
Build succeeded for 7 out of 7 (7 easyconfigs in this PR)
tlogin-0502.cluster - Linux centos linux 7.3.1611, Intel(R) Xeon(R) CPU E5-2680 v4 @ 2.40GHz, Python 2.7.5
See https://gist.github.com/14fb0fc56fc334acb6a3e653496695bb for a full test report.

@boegel
Copy link
Member Author

boegel commented Aug 25, 2017

@ocaisa @akesandgren Hmm, no, it's something else... The M4/1.4.17 module it's trying to load as a dependency for Bison is there (it was installed just before according to the test report), but Lmod fails to load it even though EB checked it was indeed there.

However, the check was done using module avail Core/M4/1.4.17, which passes, but when trying to load the module we have this: Current MODULEPATH: /scratch/ake/eb-sandbox/modules/all .

It makes sense that M4/1.4.17 can't be loaded then, since <prefix>/modules/all/Core is not included in $MODULEPATH.

See also easybuilders/easybuild-framework#2186.

@akesandgren Please do a module use /scratch/ake/eb-sandbox/modules/all/Core, and try again?

@wpoely86
Copy link
Member

We don't have libmunge-devel installed on our nodes. It seems like openmpi needs/wants it.

@akesandgren
Copy link
Contributor

akesandgren commented Aug 25, 2017

Yeah, i finally managed to get a correct sandbox test setup.
It's running and will produce a report sooner or later. Takes a while to compile GCCcore on the laptop.

@ocaisa was just to fast and read a report i deleted.

@JackPerdue
Copy link
Contributor

For my last test (7 of 7) I didn't see the munge issue. We have munge installed for slurm but I made sure to remove munge-devel (which doesn't seem to have a libmunge.la on RHEL7) beforehand.

@wpoely86
Copy link
Member

Test report by @wpoely86
SUCCESS
Build succeeded for 17 out of 17 (7 easyconfigs in this PR)
nic66 - Linux centos linux 7.3.1611, Intel(R) Xeon(R) CPU E5-2680 v4 @ 2.40GHz, Python 2.7.5
See https://gist.github.com/e2d0dab54128695cd92d1c4eceae411e for a full test report.

@JackPerdue
Copy link
Contributor

Was dropping LAPACK-3.7.0 intentional?

@boegel
Copy link
Member Author

boegel commented Aug 25, 2017

@JackPerdue Yes, see discussion in OpenMathLib/OpenBLAS#1273

@akesandgren
Copy link
Contributor

Test report by @akesandgren
SUCCESS
Build succeeded for 24 out of 24 (7 easyconfigs in this PR)
janson.hpc2n.umu.se - Linux ubuntu 16.04, Intel(R) Core(TM) i7-5600U CPU @ 2.60GHz, Python 2.7.12
See https://gist.github.com/8972f95f71a32b5a1d4cf3721ca30e3f for a full test report.

@vanzod vanzod dismissed verdurin’s stale review August 31, 2017 20:20

Requested changes applied

@vanzod
Copy link
Member

vanzod commented Aug 31, 2017

Going in, thanks @boegel!

@vanzod vanzod merged commit 34e22c4 into easybuilders:develop Aug 31, 2017
@boegel boegel deleted the 20170622180135_new_pr_HPL22 branch September 1, 2017 07:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants