Added Paraver and dependencies, restricted Extrae to OpenMPI 1.6
This commit is contained in:
parent
5a4881c086
commit
853784d382
5 changed files with 80 additions and 3 deletions
|
@ -1,11 +1,13 @@
|
||||||
from spack import *
|
from spack import *
|
||||||
|
|
||||||
class Extrae(Package):
|
class Extrae(Package):
|
||||||
|
"""Extrae is the package devoted to generate tracefiles which can be analyzed later by Paraver. Extrae is a tool that uses different interposition mechanisms to inject probes into the target application so as to gather information regarding the application performance. The Extrae instrumentation package can instrument the MPI programin model, and the following parallel programming models either alone or in conjunction with MPI : OpenMP, CUDA, OpenCL, pthread, OmpSs"""
|
||||||
homepage = "http://www.bsc.es/computer-sciences/extrae"
|
homepage = "http://www.bsc.es/computer-sciences/extrae"
|
||||||
url = "http://www.bsc.es/ssl/apps/performanceTools/files/extrae-2.5.1.tar.bz2"
|
url = "http://www.bsc.es/ssl/apps/performanceTools/files/extrae-2.5.1.tar.bz2"
|
||||||
versions = { '2.5.1' : '422376b9c68243bd36a8a73fa62de106', }
|
versions = { '2.5.1' : '422376b9c68243bd36a8a73fa62de106', }
|
||||||
|
|
||||||
depends_on("mpi")
|
#depends_on("mpi")
|
||||||
|
depends_on("openmpi@:1.6")
|
||||||
depends_on("dyninst")
|
depends_on("dyninst")
|
||||||
depends_on("libunwind")
|
depends_on("libunwind")
|
||||||
depends_on("boost")
|
depends_on("boost")
|
||||||
|
@ -15,8 +17,8 @@ class Extrae(Package):
|
||||||
def install(self, spec, prefix):
|
def install(self, spec, prefix):
|
||||||
if 'openmpi' in spec:
|
if 'openmpi' in spec:
|
||||||
mpi = spec['openmpi']
|
mpi = spec['openmpi']
|
||||||
if spec.satisfies('@2.5.1') and spec.satisfies('^openmpi@1.6.5'):
|
#if spec.satisfies('@2.5.1') and spec.satisfies('^openmpi@1.6.5'):
|
||||||
tty.error("Some headers conflict when using OpenMPI 1.6.5. Please use 1.6 instead.")
|
# tty.error("Some headers conflict when using OpenMPI 1.6.5. Please use 1.6 instead.")
|
||||||
elif 'mpich' in spec:
|
elif 'mpich' in spec:
|
||||||
mpi = spec['mpich']
|
mpi = spec['mpich']
|
||||||
elif 'mvapich2' in spec:
|
elif 'mvapich2' in spec:
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
#./mcxx-1.99.2/config.log: $ ./configure --prefix=/usr/gapps/exmatex/ompss --with-nanox=/usr/gapps/exmatex/ompss --enable-ompss --with-mpi=/opt/mvapich2-intel-shmem-1.7 --enable-tl-openmp-profile --enable-tl-openmp-intel
|
#./mcxx-1.99.2/config.log: $ ./configure --prefix=/usr/gapps/exmatex/ompss --with-nanox=/usr/gapps/exmatex/ompss --enable-ompss --with-mpi=/opt/mvapich2-intel-shmem-1.7 --enable-tl-openmp-profile --enable-tl-openmp-intel
|
||||||
|
|
||||||
class Ompss(Package):
|
class Ompss(Package):
|
||||||
|
"""OmpSs is an effort to integrate features from the StarSs programming model developed by BSC into a single programming model. In particular, our objective is to extend OpenMP with new directives to support asynchronous parallelism and heterogeneity (devices like GPUs). However, it can also be understood as new directives extending other accelerator based APIs like CUDA or OpenCL. Our OmpSs environment is built on top of our Mercurium compiler and Nanos++ runtime system."""
|
||||||
homepage = "http://pm.bsc.es/"
|
homepage = "http://pm.bsc.es/"
|
||||||
url = "http://pm.bsc.es/sites/default/files/ftp/ompss/releases/ompss-14.06.tar.gz"
|
url = "http://pm.bsc.es/sites/default/files/ftp/ompss/releases/ompss-14.06.tar.gz"
|
||||||
versions = { '14.06' : '99be5dce74c0d7eea42636d26af47b4181ae2e11' }
|
versions = { '14.06' : '99be5dce74c0d7eea42636d26af47b4181ae2e11' }
|
||||||
|
|
40
var/spack/packages/paraver/package.py
Normal file
40
var/spack/packages/paraver/package.py
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
from spack import *
|
||||||
|
import os
|
||||||
|
|
||||||
|
class Paraver(Package):
|
||||||
|
""""A very powerful performance visualization and analysis tool based on
|
||||||
|
traces that can be used to analyse any information that is expressed on its input trace format.
|
||||||
|
Traces for parallel MPI, OpenMP and other programs can be genereated with Extrae."""
|
||||||
|
homepage = "http://www.bsc.es/computer-sciences/performance-tools/paraver"
|
||||||
|
url = "http://www.bsc.es/ssl/apps/performanceTools/files/paraver-sources-4.5.2.tar.gz"
|
||||||
|
|
||||||
|
versions = { '4.5.2' : 'ea463dd494519395c99ebae294edee17', }
|
||||||
|
|
||||||
|
depends_on("boost")
|
||||||
|
#depends_on("extrae")
|
||||||
|
depends_on("wx")
|
||||||
|
depends_on("wxpropgrid")
|
||||||
|
|
||||||
|
def install(self, spec, prefix):
|
||||||
|
os.chdir("ptools_common_files")
|
||||||
|
configure("--prefix=%s" % prefix)
|
||||||
|
make()
|
||||||
|
make("install")
|
||||||
|
|
||||||
|
os.chdir("../paraver-kernel")
|
||||||
|
#"--with-extrae=%s" % spec['extrae'].prefix,
|
||||||
|
configure("--prefix=%s" % prefix, "--with-ptools-common-files=%s" % prefix, "--with-boost=%s" % spec['boost'].prefix, "--with-boost-serialization=boost_serialization")
|
||||||
|
make()
|
||||||
|
make("install")
|
||||||
|
|
||||||
|
os.chdir("../paraver-toolset")
|
||||||
|
configure("--prefix=%s" % prefix)
|
||||||
|
make()
|
||||||
|
make("install")
|
||||||
|
|
||||||
|
os.chdir("../wxparaver")
|
||||||
|
#"--with-extrae=%s" % spec['extrae'].prefix,
|
||||||
|
configure("--prefix=%s" % prefix, "--with-paraver=%s" % prefix, "--with-boost=%s" % spec['boost'].prefix, "--with-boost-serialization=boost_serialization", "--with-wxdir=%s" % spec['wx'].prefix.bin)
|
||||||
|
make()
|
||||||
|
make("install")
|
||||||
|
|
17
var/spack/packages/wx/package.py
Normal file
17
var/spack/packages/wx/package.py
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
from spack import *
|
||||||
|
|
||||||
|
class Wx(Package):
|
||||||
|
"""wxWidgets is a C++ library that lets developers create applications for Windows, Mac OS X, Linux and other platforms with a single code base. It has popular language bindings for Python, Perl, Ruby and many other languages, and unlike other cross-platform toolkits, wxWidgets gives applications a truly native look and feel because it uses the platform's native API rather than emulating the GUI. It's also extensive, free, open-source and mature."""
|
||||||
|
homepage = "http://www.wxwidgets.org/"
|
||||||
|
|
||||||
|
url = "https://sourceforge.net/projects/wxwindows/files/2.8.12/wxWidgets-2.8.12.tar.gz"
|
||||||
|
versions = { '2.8.12' : '2fa39da14bc06ea86fe902579fedc5b1', }
|
||||||
|
# url = "https://sourceforge.net/projects/wxwindows/files/3.0.1/wxWidgets-3.0.1.tar.bz2"
|
||||||
|
# versions = { '3.0.1' : 'dad1f1cd9d4c370cbc22700dc492da31', }
|
||||||
|
|
||||||
|
def install(self, spec, prefix):
|
||||||
|
configure("--prefix=%s" % prefix, "--enable-unicode", "--disable-precomp-headers")
|
||||||
|
|
||||||
|
make(parallel=False)
|
||||||
|
make("install")
|
||||||
|
|
17
var/spack/packages/wxpropgrid/package.py
Normal file
17
var/spack/packages/wxpropgrid/package.py
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
from spack import *
|
||||||
|
|
||||||
|
class Wxpropgrid(Package):
|
||||||
|
"""wxPropertyGrid is a property sheet control for wxWidgets. In other words, it is a specialized two-column grid for editing properties such as strings, numbers, flagsets, string arrays, and colours."""
|
||||||
|
homepage = "http://wxpropgrid.sourceforge.net/"
|
||||||
|
url = "http://prdownloads.sourceforge.net/wxpropgrid/wxpropgrid-1.4.15-src.tar.gz"
|
||||||
|
|
||||||
|
versions = { '1.4.15' : 'f44b5cd6fd60718bacfabbf7994f1e93', }
|
||||||
|
|
||||||
|
depends_on("wx")
|
||||||
|
|
||||||
|
def install(self, spec, prefix):
|
||||||
|
configure("--prefix=%s" % prefix, "--with-wxdir=%s" % spec['wx'].prefix.bin, "--enable-unicode")
|
||||||
|
|
||||||
|
make()
|
||||||
|
make("install")
|
||||||
|
|
Loading…
Reference in a new issue