Git Product home page Git Product logo

easybuild-easyblocks's People

Contributors

akesandgren avatar bartoldeman avatar bedroge avatar besserox avatar boegel avatar branfosj avatar crivella avatar damianam avatar darkless012 avatar edmondac avatar fgeorgatos avatar flamefire avatar geimer avatar gppezzi avatar gribozavr avatar itkovian avatar jenstimmerman avatar jerowe avatar jfgrimm avatar lexming avatar mboisson avatar micaeljtoliveira avatar micket avatar migueldiascosta avatar ocaisa avatar pescobar avatar sebastianachilles avatar smoors avatar vanzod avatar wpoely86 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

easybuild-easyblocks's Issues

sanity check for EasyBuild fails if setuptools is not available

If EasyBuild is being installed on a system that doesn't have setuptools available, the installation completes using distutils instead, but the sanity check for the easyconfig paths fails:

easybuild.tools.build_log.EasyBuildError: 'EasyBuild encountered an exception (at easybuild/main.py:800 in build_and_install_software): autoBuild Failed (last 300 chars): ectory lib/python2.7/site-packages/easybuild_easyblocks-1.2.0-py2.7.egg-info/easybuild/easyblocks in /tmp/foo/software/EasyBuild/1.2.0, did not find non-empty directory lib/python2.7/site-packages/easybuild_easyconfigs-1.2.0.0-py2.7.egg-info/easybuild/easyconfigs in /tmp/foo/software/EasyBuild/1.2.0'

When installed with distutils, the easyconfigs are put directly under the install directory, e.g.,

/tmp/foo/software/EasyBuild/1.2.0/easybuild/easyconfigs

Trinity fails to build on SL6/Intel Westmere with ismkl toolkit

(old internal ticket 97)

Building Trinity on a Scientific Linux 6 system (Intel Westmere architecture) fails with the ismkl toolkit (Intel compilers, ScaleMP MPI and Intel MKL).

To be more specific: the build of the RSEM-mod plugin fails with ismkl/3.3.1.

Make the CUDA easyblock a bit more generic, to include code samples etc

In relation to #145:

We would like cuda.py to support also CUDA samples, v4.x and future versions too.

It basically implies that the easyconfig should have the freedom to define something like
"osdependencies = 'libglut'", if asking for -samples in the installparams:

installparams = "-samplespath=%s/samples/ -toolkitpath=%s -samples -toolkit" % (self.installdir, self.installdir))

It also implies that installparams should likely be defined/driven from the easyconfig.

support installing of Python packages with a single Python class that derives from Extension

We should be able to install extensions both as a separate module and as a part of an existing module (e.g. Python, for Python packages).

For example, currently EB_numpy derives from EB_DefaultPythonPackage, so we can only install it as a part of an existing Python installation.
To be able to install it as a separate module, we need to copy-paste the code and derive EB_numpy from EB_PythonPackage.

We need to find a way to unify EB_DefaultPythonPackage and EB_PythonPackage into one class, that can be used for both purposes.

support linking of numpy/scipy with serial BLAS libs

We now specify that linking should be done with the multithreaded BLAS/LAPACK libraries when building numpy (easyblocks/p/python.py), by using the LIBLAPACK_MT and LIBBLAS_MT environment variables provided by toolchain.

We should also support linking with the serial versions of those libs, and add an easyconfig parameter to indicate that we want this.

This could be trickier than it seems, see e.g. http://stackoverflow.com/questions/12884374/linking-numpy-scipy-to-serial-atlas .

create a generic FlexLM easyblock

The MATLAB easyblock contains some code that can easily be useful for other applications as well, especially for software also relying on the FlexLM license manager.

A dedicated generic easyblock for FlexLM-enabled software should be implemented, based on the MATLAB easyblock.

Implement support for popular software/modules on Cray platforms

Hello all,

this is an objective already covered at more than 50% level:
https://cug.org/proceedings/attendee_program_cug2012/includes/files/pap126.pdf

Namely, the applications & libraries that are still missing currently are:

  • SPRNG
  • ARPACK
  • Hypre (tpsl)
  • SuperLU* (tpsl)
  • MUMPs (tpsl)
  • iobuf
  • ADIOS
  • liblut
  • parallel-netCDF
  • hdf5par
  • netcdf-hdf5par
  • scalasca/vampir ## others: tau/mpip/perftools # UNITE may provide?
  • hpctoolkit # UNITE may provide?
  • charm
  • UPC
  • umfpack # apparently covered via SuiteSparse
  • pspline
  • namd
  • amber
  • vasp
  • lammps
  • gromacs # OK since v1.4
  • cpmd

There were a few more, but I understand that there is no need to support all of them;

This issue is rather submitted to assist in prioritization and should perhaps be closed once,
say, three quarters or so of the items above have been accomplished.

On a related note, the concept of using instrumentation during linking to intercept
important information for system usage is a very valid one for generic HPC clusters:

  • The human effort spent to optimize libraries can be rationalized in relation to what is the actual usage pattern in each given system.
    EasyBuild can both give and take from this kind of activity (think how tough it may be to automate all this without easybuild actually).

enjoy,
Fotis

GHC installation to an NFS-mounted fails

The build fails as follows:

Registering hoopl-3.8.7.3...
"inplace/bin/ghc-cabal" install "<prefix>/software/GHC/7.4.2-goalf-1.1.0-no-OFED/lib/ghc-7.4.2/ghc" "<prefix>/software/GHC/7.4.2-goalf-1.1.0-no-OFED/lib/ghc-7.4.2/ghc-pkg" "strip" "<prefix>/software/GHC/7.4.2-goalf-1.1.0-no-OFED/lib/ghc-7.4.2" compiler stage2 '' '<prefix>/software/GHC/7.4.2-goalf-1.1.0-no-OFED' '<prefix>/software/GHC/7.4.2-goalf-1.1.0-no-OFED/lib/ghc-7.4.2' '<prefix>/software/GHC/7.4.2-goalf-1.1.0-no-OFED/share/doc/ghc/html/libraries' NO  
Installing library in
<prefix>/software/GHC/7.4.2-goalf-1.1.0-no-OFED/lib/ghc-7.4.2/ghc-7.4.2
ghc-cabal:
<prefix>/software/GHC/7.4.2-goalf-1.1.0-no-OFED/lib/ghc-7.4.2/ghc-7.4.2/Vectorise/.copyFile7186.tmp:
unsupported operation
make[1]: *** [install_packages] Error 1
make: *** [install] Error 2

Installing GHC to a local directory works just fine.

installation error was not reported properly for impi/impi-4.0.0.028*

Hi,

this is minor issue, don't be alarmed.

Introduction:
The default license we have now is obtained via a 3-year Intel Cluster XE subscription purchased recently (Nov.12) which is supposed to cover previous versions, too; Alas (as per internal issue #691555 of Intel's support site) there is an incompatibility with impi-4.0.0.028 and we need to be provided a special (secondary) license file to overcome this technical limitation. Yes, that's a bugfix licensefile!

Unfortunately, the issue is masked and not reported at the right time.
Preferably, easybuild should report this issue during the install step, rather than sanity checking.

As you can see below, the real culprit is indeed the flexlm licensing issue:

sw@gaia-64:~$ time eb /home/users/sw/CFGS/i/impi/impi-4.0.0.028*.eb
== resolving dependencies ...
== processing EasyBuild easyconfig /home/users/sw/CFGS/i/impi/impi-4.0.0.028-32bit.eb
== building and installing impi-4.0.0.028-32bit...
== fetching files...
== getting ready, creating build dir, resetting environment...
== unpacking...
== patching...
== preparing...
== configuring...
== building...
== testing...
== installing...
== taking care of extensions...
== packaging...
== postprocessing...
== sanity checking...
Traceback (most recent call last):
  File "/opt/apps/default/software/easybuild/1.1.0dev/easybuild-framework/easybuild/main.py", line 1552, in <module>
    main(options, orig_paths, log, logfile, hn, parser)
  File "/opt/apps/default/software/easybuild/1.1.0dev/easybuild-framework/easybuild/main.py", line 525, in main
    (success, _) = build_and_install_software(spec, options, log, origEnviron)
  File "/opt/apps/default/software/easybuild/1.1.0dev/easybuild-framework/easybuild/main.py", line 1009, in build_and_install_software
    regtest_online=options.regtest_online)
  File "/opt/apps/default/software/easybuild/1.1.0dev/easybuild-framework/easybuild/framework/easyblock.py", line 1595, in run_all_steps
    self.run_step(stop_name, step_methods, skippable=skippable)
  File "/opt/apps/default/software/easybuild/1.1.0dev/easybuild-framework/easybuild/framework/easyblock.py", line 1533, in run_step
    m(self)
  File "/opt/apps/default/software/easybuild/1.1.0dev/easybuild-framework/easybuild/framework/easyblock.py", line 1566, in <lambda>
    ('sanitycheck', 'sanity checking', [lambda x: x.sanity_check_step()], False),
  File "/opt/apps/default/software/easybuild/1.1.0dev/easybuild-easyblocks/easybuild/easyblocks/i/impi.py", line 116, in sanity_check_step
    super(EB_impi, self).sanity_check_step(custom_paths=custom_paths)
  File "/opt/apps/default/software/easybuild/1.1.0dev/easybuild-framework/easybuild/framework/easyblock.py", line 1397, in sanity_check_step
    os.chdir(self.installdir)
OSError: [Errno 2] No such file or directory: '/home/users/sw/easybuild.20130126/software/impi/4.0.0.028-32bit'
Command exited with non-zero status 1
2.10user 0.60system 0:04.89elapsed 55%CPU (0avgtext+0avgdata 70224maxresident)k
0inputs+277112outputs (0major+73725minor)pagefaults 0swaps

real    0m4.900s
user    0m2.100s
sys 0m0.604s
sw@gaia-64:~$ 
sw@gaia-64:~$ time eb /home/users/sw/CFGS/i/impi/impi-4.0.0.028*eb -ld 2>&1|grep -10 -i flexlm
== 2013-01-27 17:16:10,303 main.EB_impi INFO installing...
== installing...
== 2013-01-27 17:16:10,304 main.EB_impi INFO Starting install step
== 2013-01-27 17:16:10,304 main.EB_impi INFO Running method stage_install_step part of step install
== 2013-01-27 17:16:10,304 main.EB_impi INFO Running method make_installdir part of step install
== 2013-01-27 17:16:10,304 main.EB_impi DEBUG Creating the installation directory /home/users/sw/easybuild.20130126/software/impi/4.0.0.028-32bit (cleanup: True)
== 2013-01-27 17:16:10,304 main.EB_impi INFO Cleaning only, no actual creation of /home/users/sw/easybuild.20130126/software/impi/4.0.0.028-32bit, only verification/creation of dirname /home/users/sw/easybuild.20130126/software/impi
== 2013-01-27 17:16:10,305 main.EB_impi INFO Running method install_step part of step install
== 2013-01-27 17:16:10,305 main.fileTools DEBUG run_cmd: running cmd ./install.sh --tmp-dir=/tmp/impi/4.0.0.028/dummy-dummy-32bit/l_mpi_pu_4.0.0.028/4.0.0.028/mytmpdir --silent=/tmp/impi/4.0.0.028/dummy-dummy-32bit/l_mpi_pu_4.0.0.028/silent.cfg (in /tmp/impi/4.0.0.028/dummy-dummy-32bit/l_mpi_pu_4.0.0.028)
== 2013-01-27 17:16:11,470 main.fileTools INFO cmd "./install.sh --tmp-dir=/tmp/impi/4.0.0.028/dummy-dummy-32bit/l_mpi_pu_4.0.0.028/4.0.0.028/mytmpdir --silent=/tmp/impi/4.0.0.028/dummy-dummy-32bit/l_mpi_pu_4.0.0.028/silent.cfg" exited with exitcode 0 and output:
No valid FLEXlm license keys were found for this product.
To get FLEXlm license please contact the Intel(R) support team at https://registrationcenter.intel.com/support.
Exiting...

== 2013-01-27 17:16:11,471 main.fileTools DEBUG Using default regular expression: (?<![(,]|\w)(?:error|segmentation fault|failed)(?![(,]|\.?\w)
== 2013-01-27 17:16:11,471 main.EB_impi INFO taking care of extensions...
== taking care of extensions...
== 2013-01-27 17:16:11,471 main.EB_impi INFO Starting extensions step
== 2013-01-27 17:16:11,471 main.EB_impi INFO Running method extensions_step part of step extensions
== 2013-01-27 17:16:11,472 main.EB_impi DEBUG No extensions in exts_list
== 2013-01-27 17:16:11,472 main.EB_impi INFO packaging...
== packaging...

real    0m4.959s
user    0m2.196s
sys 0m0.552s
sw@gaia-64:~$ 

ps.
I send this mostly in the hope that others will not have to duplicate the debugging effort and also to eventually phase out this version in favor of newer ones

add support for building open-source version of TBB

The Pasha example easyconfig file that uses that goalf toolkit now depends on a commercial version of Intel TBB.

We should change that, by adding support for the open-source TBB version, and letting Pasha-goalf depend on that.

Get eclipse and PTP in, iff feasible, for debugging purposes

Since it is open source and some people could be using it indeed, it may be a huge plus:
http://www.eclipse.org/ptp/

I am not a huge java supporter, but the following would be a decent IDE for supporting languages that are popular in HPC (along with being the only parallel gdb configuration with some references I know of); in their own words:

Eclipse PTP

The PTP project provides an integrated development environment to support the development of parallel applications written in C, C++, and Fortran. Eclipse PTP provides:

  • Support for the MPI, OpenMP and UPC programming models, as well as OpenSHMEM and OpenACC
  • Support for a wide range of batch systems and runtime systems, including PBS/Torque, LoadLeveler, GridEngine, Parallel Environment, Open MPI, and MPICH2
  • A scalable parallel debugger
  • Support for the integration of a wide range of parallel tools

References

These fellows seem to be using it already and some extra info can found there:

add support for FLUENT

(old internal ticket 132)

Support for installing FLUENT with EasyBuild should be added.

This is already partially available in the old non-public version of EasyBuild, and thus needs to be ported.
Also, these remarks need to be resolved:

  • patch to enable PSM, which results in pinning (whatever FLUENT may report in the logs):
> -bash-3.2$ diff -u mpirun.fl mpirun.fl.orig
> --- mpirun.fl    2012-02-26 16:59:27.971645390 +0100
> +++ mpirun.fl.orig    2010-10-01 22:42:19.000000000 +0200
> @@ -624,7 +624,6 @@
>
>      # (set specific flags)
>
> -    my_protocol=psm
>      case $my_protocol in
>      default)
>          my_protocol_flags=
> -bash-3.2$ pwd
> /apps/gent/gulpin/magnycours/software/FLUENT/13.0/v130/fluent/fluent13.0.0/multiport/mpi_wrapper/bin
  • default HP MPI needs to be changed:
> -bash-3.2$ pwd
> /apps/gent/gulpin/magnycours/software/FLUENT/13.0/v130/fluent/fluent13.0.0/multiport/mpi/lnamd64
> -bash-3.2$ ll
> total 5
> lrwxrwxrwx 1 vsc40003 vsc40003  11 Feb 26 16:25 hp -> hp-2.03.01/
> drwxrwxr-x 7 vsc40003 vsc40003 512 Oct 22  2010 hp-2.03.01
> drwxrwxr-x 6 vsc40003 vsc40003 512 Oct 22  2010 hp.old
> drwxrwxr-x 4 vsc40003 vsc40003 512 Oct 22  2010 intel
> drwxrwxr-x 5 vsc40003 vsc40003 512 Oct 22  2010 openmpi

So, basically:

mv hp hp.old
ln -s hp-2.03.01 hp

extend unit testing support to (generic) easyblocks

We should consider extending the unit testing support to (generic) easyblocks as well.

Right now, we're only running unit tests on easybuild-framework.

We should extend this to somehow testing easyblocks as well without having to actually build the software. One example would be to simple create an easyblock instance for every easyblock supported.

We could also add unit testing support to easybuild-easyconfigs, e.g. checking whether the easyconfigs can be parsed, and whether an easyblock can be created for them (and whether it is the right one maybe, i.e. a custom easyblock or the ConfigureMake fallback).

CPLEX silent installer

The current easyconfig for cplex uses run_cmd_qa to answer questions of the interactive installer. A (probably easier) solution would be to use the silent installer feature. Basically, you call the binary blob with -f <silentconf>, where the configuration file has to specified with the absolute path.

This is a configuration that worked for me. Note that LaunchAnywhere (the weird installer used by IBM) doesn't like it if the prompt contains non-standard characters!

# NOTE this file has to specified to the installer with the absolute path; also, you should sanitize your prompt
# export PS1="> "; export PS2="> "
## adjust USER_INSTALL_DIR, then call like this
# ./cplex_studio124.linux-x86-64.bin -f /path/to/cplexSilentInstall
INSTALLER_UI=silent
LICENSE_ACCEPTED=true
USER_INSTALL_DIR=__installdir__
INSTALLER_LOCALE=en

Numpy could not find BLAS in goolf-1.4.10

To reproduce, copy Python-2.7.3-goalf-1.1.0-no-OFED.eb and edit it to use goolf.

== 2013-03-26 23:40:26,989 main.EB_Python ERROR EasyBuild crashed with an error (at easybuild/eb-install/lib/python2.6/site-packages/easybuild_easyblocks-1.3.0dev-py2.6.egg/easybuild/easyblocks/n/numpy.py:81 in configure_step): Could not detect BLAS/LAPACK library.

@boegel suggested that numpy easyblock should be made aware of the module providing BLAS/LAPACK. CP2K and libsmm might be also affected.

Unexpected output of mpicc -show command with ictce

Hi there,

Josh, one of our recent hackathon@Lux participants, reported to us the following:

fgeorgatos@gaia-54:~$ module load ictce
fgeorgatos@gaia-54:~$ module list
Currently Loaded Modulefiles:
  1) icc/2011.6.233     2) ifort/2011.6.233   3) impi/4.0.2.003     4) imkl/10.3.6.233    5) ictce/4.0.6
fgeorgatos@gaia-54:~$ mpiicc -show
icc -ldl -ldl -ldl -ldl -I/opt/apps/easybuild/software/impi/4.0.2.003/intel64/include -L/opt/apps/easybuild/software/impi/4.0.2.003/intel64/lib -Xlinker --enable-new-dtags -Xlinker -rpath -Xlinker /opt/apps/easybuild/software/impi/4.0.2.003/intel64/lib -Xlinker -rpath -Xlinker /opt/intel/mpi-rt/4.0.2 -lmpi -lmpigf -lmpigi -lpthread -lpthread -lpthread -lpthread -lrt
fgeorgatos@gaia-54:~$ mpicc -show
gcc -ldl -ldl -ldl -ldl -I/opt/apps/easybuild/software/impi/4.0.2.003/intel64/include -L/opt/apps/easybuild/software/impi/4.0.2.003/intel64/lib -L/opt/apps/easybuild/software/impi/4.0.2.003/intel64/lib -Xlinker --enable-new-dtags -Xlinker -rpath -Xlinker /opt/apps/easybuild/software/impi/4.0.2.003/intel64/lib -Xlinker -rpath -Xlinker /opt/intel/mpi-rt/4.0.2 -lmpi -lmpigf -lmpigi -lpthread -lpthread -lpthread -lpthread -lrt

I have seen it reproduced invariably across all ictce versions and various Debian/RHEL distros.
The culprit seems to be here:

fgeorgatos@gaia-54:~$ grep ^default_compiler_name /opt/apps/easybuild/software/impi/4.1.0.027/bin64/mpicc
default_compiler_name="gcc"

Do you understand the why of this?

thanks for any comment,
Fotis

Trinity fails to install on NFS-mounted install dir

When Trinity is being installed to an NFS-mounted installation directory, the build hangs somewhere in configure, when it is figuring out how long a path name can be.

On a local directory or directly on a GPFS filesystem, there is no issue.

We need to look into a way to fix this, e.g. patch the long path name check out of the relevant configure script.

MVAPICH2 build may hang if pax is installed on system

The MVAPICH2 v1.8.1 build hangs when pax is installed on the system where it is being built:

== 2012-11-22 10:16:43,595 main.fileTools DEBUG run_cmd: running cmd  ./configure 
--prefix=/apps/gent/gulpin/magnycours/software/MVAPICH2/1.8.1-GCC-4.7.2  --with-rdma=gen2 
--with-thread-package=pthreads --enable-fast --enable-shared --enable-sharedlibs=gcc 
--enable-f77 --enable-fc --enable-cxx  (in /tmp/easy/MVAPICH2/1.8.1/GCC-4.7.2/mvapich2-1.8.1)

ATTENTION! pax archive volume change required.
Ready for archive volume: 1
Input archive name or "." to quit pax.
Archive name > 
$ rpm -qa | grep pax
pax-3.4-10.1.el6.x86_64

My notes indicate that this has occured with OpenFOAM in the past as well. It was then fixed by simply uninstalling pax, but that's not really workable.

Note: this no longer occurs for the more recent 1.9a2 version of MVAPICH2, due to changes in the build procedure.

try and avoid "possible errors" messages for demo

(old internal ticket 252)

For several packages that are part of the demo (goalf + HPL), false positives w.r.t. detected errors are reported, e.g., :

  • GCC:
WARNING: Build exited with exit code 0. 10 possible error(s) were detected in the build logs, please verify the build.
  • OpenMPI
WARNING: Build exited with exit code 0. 3 possible error(s) were detected in the build logs, please verify the build.
  • ATLAS
WARNING: Build exited with exit code 0. 77 possible error(s) were detected in the build logs, please verify the build.
  • HPL:
WARNING: Build exited with exit code 0. 70 possible error(s) were detected in the build logs, please verify the build

This should be fixed to adjusted the regular expression used by parseLogError, so that these message don't show up during the demo build.

Re-factorize code around *BLAS*phemous libraries ;)

Hi there,

We had a good info swap with Ken, it is surely recognized that this area is a tricky one;
I came across the need to add OpenBLAS while working on goolf (see experimental repo)
and we think though we may have to shuffle some code over here:
(it feels unnatural that this is part of easybuild/easyblocks/l/lapack.py and need tuning)

It may well belong to some external easyblock I am missing... comments?


# also used for e.g. ScaLAPACK
def get_blas_lib(log):
    """
    Determine BLAS lib to provide to e.g. LAPACK for building/testing
    """
    blaslib = None
    known_blas_libs = {
##                       'OpenBLAS': '-L%s -lopenblas',
                       'GotoBLAS': '-L%s -lgoto',
                       'ATLAS': '-L%s -lf77blas -latlas'
                      }
    for (key,val) in known_blas_libs.items():
        root = get_software_root(key)
        if root:
            blaslib = val % os.path.join(root, 'lib')
            log.debug("Using %s as BLAS lib" % root)
            break
        else:
            log.debug("%s module not loaded" % key)

    if not blaslib:
        log.error("No or unknown BLAS lib loaded; known BLAS libs: %s" % known_blas_libs.keys())

    return blaslib

add support for ARPACK-ng

(old internal ticket 235)

replaces ARPACK, has mpi version too

very similar to current ARPACK, e.g. for gimkl toolkit just configure/make/make install:

export F77=gfortran
export MPIF77=mif90
export CC=mpicc
 ./configure --prefix=/tmp/arpack_ng --with-pic --with-blas="-L$SOFTROOTIMKL/lib/em64t -lmkl_gf_lp64 -lmkl_sequential -lmkl_core -lpthread" --with-lapack="-L$SOFTROOTIMKL/lib/em64t -lmkl_gf_lp64 -lmkl_sequential -lmkl_core -lpthread" --enable-mpi
make
make install

TotalView easyblock needs to provide a correct PATH - hoping for a hotfix

At the end of the following dialog you will see that PATH is not defined in the current easyblock; mea culpa.

There is a strange structure with symlinks, IMHO, only one path has to be defined and this is: toolworks/totalview.8.11.0-0/bin # I've checked manually that this allows memscape to run, too.

tia,
Fotis

sw@gaia-74:/opt/apps/HPCBIOS.20130226/software/TotalView/8.11.0-0-linux-x86-64/toolworks/memoryscape.3.3.0-0/bin$ find . -ls
1519943815    0 drwxr-xr-x   2 sw       clusterusers       55 Oct 25 16:40 .
1519943816   24 -r-xr-xr-x   2 sw       clusterusers    21970 Oct 25 16:17 ./memscript
1519943816   24 -r-xr-xr-x   2 sw       clusterusers    21970 Oct 25 16:17 ./memscape
1519943817    0 lrwxrwxrwx   1 sw       clusterusers       40 Feb 28 17:36 ./htmlhelp.sh -> ../../totalview.8.11.0-0/bin/htmlhelp.sh
sw@gaia-74:/opt/apps/HPCBIOS.20130226/software/TotalView/8.11.0-0-linux-x86-64/toolworks/memoryscape.3.3.0-0/bin$ cd ../../totalview.8.11.0-0/bin/
sw@gaia-74:/opt/apps/HPCBIOS.20130226/software/TotalView/8.11.0-0-linux-x86-64/toolworks/totalview.8.11.0-0/bin$ find . -ls
1518780432    4 drwxr-xr-x   2 sw       clusterusers     4096 Oct 25 16:40 .
1518780433    0 lrwxrwxrwx   1 sw       clusterusers        3 Feb 28 17:36 ./sctv8 -> tv8
1518780435    0 lrwxrwxrwx   1 sw       clusterusers        6 Feb 28 17:36 ./totalviewcli -> tv8cli
1518780436   24 -r-xr-xr-x   3 sw       clusterusers    21970 Oct 25 16:17 ./tvscript
1518780437    4 -r-xr-xr-x   1 sw       clusterusers     3391 Oct 25 16:39 ./htmlhelp.sh
1518780438    0 lrwxrwxrwx   1 sw       clusterusers        6 Feb 28 17:36 ./sctv8cli -> tv8cli
1518780439    8 -r-xr-xr-x   1 sw       clusterusers     6968 Oct 25 16:40 ./visualize
1518780440   20 -r-xr-xr-x   2 sw       clusterusers    19093 Oct 25 16:19 ./tvdbootstrap
1518780441    0 lrwxrwxrwx   1 sw       clusterusers        6 Feb 28 17:36 ./sctotalviewcli -> tv8cli
1518780442   12 -r-xr-xr-x   1 sw       clusterusers     9161 Oct 25 16:39 ./mrnet_commnode
1518780443    0 lrwxrwxrwx   1 sw       clusterusers        3 Feb 28 17:36 ./totalview -> tv8
1518780436   24 -r-xr-xr-x   3 sw       clusterusers    21970 Oct 25 16:17 ./tv8
1518780440   20 -r-xr-xr-x   2 sw       clusterusers    19093 Oct 25 16:19 ./tvdsvr
1518780445    0 lrwxrwxrwx   1 sw       clusterusers        3 Feb 28 17:36 ./sctotalview -> tv8
1518780436   24 -r-xr-xr-x   3 sw       clusterusers    21970 Oct 25 16:17 ./tv8cli
1518780444    0 lrwxrwxrwx   1 sw       clusterusers       38 Feb 28 17:36 ./memscape -> ../../memoryscape.3.3.0-0/bin/memscape
1518780434    0 lrwxrwxrwx   1 sw       clusterusers       39 Feb 28 17:36 ./memscript -> ../../memoryscape.3.3.0-0/bin/memscript
sw@gaia-74:/opt/apps/HPCBIOS.20130226/software/TotalView/8.11.0-0-linux-x86-64/toolworks/totalview.8.11.0-0/bin$ module show TotalView-------------------------------------------------------------------
/opt/apps/HPCBIOS.20130226/modules/all/TotalView/8.11.0-0-linux-x86-64:

module-whatis    TotalView is a GUI-based source code defect analysis tool that gives you unprecedented
  control over processes and thread execution and visibility into program state and variables. It allows
  you to debug one or many processes and/or threads in a single window with complete control over program
  execution. This allows you to set breakpoints, stepping line by line through the code on a single thread,
  or with coordinated groups of processes or threads, and run or halt arbitrary sets of processes or threads.
  You can reproduce and troubleshoot difficult problems that can occur in concurrent programs that take
  advantage of threads, OpenMP, MPI, GPUs or coprocessors. - Homepage: http://www.roguewave.com/products/totalview.aspx 
conflict     TotalView 
setenv       EBROOTTOTALVIEW /opt/apps/HPCBIOS.20130226/software/TotalView/8.11.0-0-linux-x86-64 
setenv       EBVERSIONTOTALVIEW 8.11.0-0 
setenv       EBDEVELTOTALVIEW /opt/apps/HPCBIOS.20130226/software/TotalView/8.11.0-0-linux-x86-64/easybuild/TotalView-8.11.0-0-linux-x86-64-easybuild-devel 
-------------------------------------------------------------------

sw@gaia-74:/opt/apps/HPCBIOS.20130226/software/TotalView/8.11.0-0-linux-x86-64/toolworks/totalview.8.11.0-0/bin$ 

add support for building alias modules

An easyblock for generating alias modules is required for stuff like hwloc, that is built with an iccifort toolchain but for which also an ictce and/or iomkl version is required.

The easyconfig file would look something like:

easyblock = 'AliasModule'

name = 'hwloc'
version = '1.2.3'

toolchain = {'name': 'ictce', 'version': '4.0.6'}

dependencies = [(name, version, '-iccifort-4.0.6', False)]

The module generated would simple be an alias to the iccifort hwloc module.

easybuild should compile python code after installation of python packages

(originally by @JensTimmerman)

http://docs.python.org/library/compileall.html#module-compileall

This module provides some utility functions to support installing Python libraries. These functions compile Python source files in a directory tree. This module can be used to create the cached byte-code files at library installation time, which makes them available for use even by users who don’t have write permission to the library directories.

This way python doesn't have to compile everything to byte code each time a module is loaded.

just run python -m compileall in the install dir (or use the wrapper script trick if needed in python 2.4)

trip over unknown configure options

We need to make sure we trip when unknown configure options are being used.

The autoconf configure script will only issue a warning, but will happily continue, e.g. when using --enable-mpi-threads with OpenMPI v1.6.4:

configure: WARNING: unrecognized options: --enable-mpi-threads

This particular one was only figured out when OpenMPI was being used to build and test larger programs depending on its functionality, i.e. CP2K, so way too late in the build cycle.

patch for impi includes hardcoded tmp path

The patch file for Intel MPI now uses a hard-coded path, which can lead to the installer exiting with exit code 2 and the following (warning) messages, when multiple users are installing impi (spread over time) on the same system:

cmd "./install.sh  -s /tmp/easybuild_build/icc/2011.6.233/dummy-dummy/l_ccompxe_intel64_2011.6.233/silent.cfg" \
exited with exitcode 2 and output: \
Missing optional pre-requisites \
-- unsupported OS
easybuild-easyconfigs kehoste$ grep -R easybuild_impi *
easybuild/easyconfigs/i/impi/impi_4.x_productsdb.patch:+    local db="/tmp/easybuild_impi/intel_sdp_products.db"

The hardcoded path should include $USER or the process ID, or something that's unique in some way...

Geant4 easyblock is using os.putenv, should be using setvar from environment module

339             os.putenv("G4INSTALL", self.installdir)
340             os.putenv("G4SYSTEM", self.g4system)
341             os.putenv("G4LIB", "%s/lib/geant4/" % self.installdir)
342             os.putenv("G4INCLUDE", "%s/include/geant4/" % self.installdir)

Should be changed to:

339             env.setvar("G4INSTALL", self.installdir)
340             env.setvar("G4SYSTEM", self.g4system)
341             env.setvar("G4LIB", "%s/lib/geant4/" % self.installdir)
342             env.setvar("G4INCLUDE", "%s/include/geant4/" % self.installdir)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.