Adding Extrae and OmpSs with some of their dependencies, hwloc and PAPI.
Extrae does not compile for latest versions of any MPI implementation.
This commit is contained in:
parent
5dffa26711
commit
5a4881c086
29
var/spack/packages/extrae/package.py
Normal file
29
var/spack/packages/extrae/package.py
Normal file
@ -0,0 +1,29 @@
|
||||
from spack import *
|
||||
|
||||
class Extrae(Package):
|
||||
homepage = "http://www.bsc.es/computer-sciences/extrae"
|
||||
url = "http://www.bsc.es/ssl/apps/performanceTools/files/extrae-2.5.1.tar.bz2"
|
||||
versions = { '2.5.1' : '422376b9c68243bd36a8a73fa62de106', }
|
||||
|
||||
depends_on("mpi")
|
||||
depends_on("dyninst")
|
||||
depends_on("libunwind")
|
||||
depends_on("boost")
|
||||
depends_on("libdwarf")
|
||||
depends_on("papi")
|
||||
|
||||
def install(self, spec, prefix):
|
||||
if 'openmpi' in spec:
|
||||
mpi = spec['openmpi']
|
||||
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.")
|
||||
elif 'mpich' in spec:
|
||||
mpi = spec['mpich']
|
||||
elif 'mvapich2' in spec:
|
||||
mpi = spec['mvapich2']
|
||||
|
||||
configure("--prefix=%s" % prefix, "--with-mpi=%s" % mpi.prefix, "--with-unwind=%s" % spec['libunwind'].prefix, "--with-dyninst=%s" % spec['dyninst'].prefix, "--with-boost=%s" % spec['boost'].prefix, "--with-dwarf=%s" % spec['libdwarf'].prefix, "--with-papi=%s" % spec['papi'].prefix, "--with-dyninst-headers=%s" % spec['dyninst'].prefix.include, "--with-dyninst-libs=%s" % spec['dyninst'].prefix.lib)
|
||||
|
||||
make()
|
||||
make("install", parallel=False)
|
||||
|
15
var/spack/packages/hwloc/package.py
Normal file
15
var/spack/packages/hwloc/package.py
Normal file
@ -0,0 +1,15 @@
|
||||
from spack import *
|
||||
|
||||
class Hwloc(Package):
|
||||
"""The Portable Hardware Locality (hwloc) software package provides a portable abstraction (across OS, versions, architectures, ...) of the hierarchical topology of modern architectures, including NUMA memory nodes, sockets, shared caches, cores and simultaneous multithreading. It also gathers various system attributes such as cache and memory information as well as the locality of I/O devices such as network interfaces, InfiniBand HCAs or GPUs. It primarily aims at helping applications with gathering information about modern computing hardware so as to exploit it accordingly and efficiently."""
|
||||
homepage = "http://www.open-mpi.org/projects/hwloc/"
|
||||
url = "http://www.open-mpi.org/software/hwloc/v1.9/downloads/hwloc-1.9.tar.gz"
|
||||
|
||||
versions = { '1.9' : '1f9f9155682fe8946a97c08896109508', }
|
||||
|
||||
def install(self, spec, prefix):
|
||||
configure("--prefix=%s" % prefix)
|
||||
|
||||
make()
|
||||
make("install")
|
||||
|
@ -11,8 +11,6 @@ class Mvapich2(Package):
|
||||
|
||||
provides('mpi@:1', when='@1.9:')
|
||||
|
||||
patch('ad_lustre_rwcontig_open_source.patch', when='@1.9:')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
configure(
|
||||
"--prefix=" + prefix,
|
||||
|
@ -1,11 +1,10 @@
|
||||
from spack import *
|
||||
import os
|
||||
import glob
|
||||
import subprocess
|
||||
|
||||
# working config lines for ompss 14.06 :
|
||||
#./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
|
||||
#./nanox-0.7/config.log: $ ./configure --prefix=/usr/gapps/exmatex/ompss --with-mcc=/usr/gapps/exmatex/ompss/ --with-hwloc=/usr
|
||||
#./nanox-0.7/config.log: $ ./configure --prefix=/usr/gapps/exmatex/ompss --with-mcc=/usr/gapps/exmatex/ompss/ --with-hwloc=/usr
|
||||
#./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):
|
||||
homepage = "http://pm.bsc.es/"
|
||||
@ -15,7 +14,7 @@ class Ompss(Package):
|
||||
# all dependencies are optional, really
|
||||
depends_on("mpi")
|
||||
#depends_on("openmp")
|
||||
#depends_on("hwloc")
|
||||
depends_on("hwloc")
|
||||
|
||||
def install(self, spec, prefix):
|
||||
if 'openmpi' in spec:
|
||||
@ -25,17 +24,17 @@ def install(self, spec, prefix):
|
||||
elif 'mvapich' in spec:
|
||||
mpi = spec['mvapich']
|
||||
|
||||
openmp_options = ["--enable-tl-openmp-profile"]
|
||||
if spec.satisfies('%intel'):
|
||||
openmp_options.append( "--enable-tl-openmp-intel" )
|
||||
|
||||
os.chdir(glob.glob('./nanox-*').pop())
|
||||
#configure("-prefix=" + prefix + " -with-mcc=" + prefix + " -with-hwloc=" + spec['hwloc'].prefix)
|
||||
#configure("-prefix=" + prefix, "-with-mcc=" + prefix)
|
||||
subprocess.check_call(["configure", "-prefix=" + prefix, "-with-mcc=" + prefix])
|
||||
configure("--prefix=%s" % prefix, "--with-mcc=%s" % prefix, "--with-hwloc=%s" % spec['hwloc'].prefix)
|
||||
make()
|
||||
make("install")
|
||||
|
||||
os.chdir(glob.glob('../mcxx-*').pop())
|
||||
#configure("-prefix=" + prefix + " -with-nanox=" + prefix + " -enable-ompss -with-mpi=" + mpi.prefix)
|
||||
#configure("-prefix=" + prefix, "-with-nanox=" + prefix, "-enable-ompss", "-with-mpi=" + mpi.prefix)
|
||||
subprocess.check_call(['configure', "-prefix=" + prefix, "-with-nanox=" + prefix, "-enable-ompss", "-with-mpi=" + mpi.prefix])
|
||||
configure("--prefix=%s" % prefix, "--with-nanox=%s" % prefix, "--enable-ompss", "--with-mpi=%s" % mpi.prefix, *openmp_options)
|
||||
make()
|
||||
make("install")
|
||||
|
||||
|
29
var/spack/packages/papi/package.py
Normal file
29
var/spack/packages/papi/package.py
Normal file
@ -0,0 +1,29 @@
|
||||
from spack import *
|
||||
import os
|
||||
|
||||
class Papi(Package):
|
||||
"""PAPI provides the tool designer and application engineer with a consistent interface and methodology for use of the performance counter hardware found in most major microprocessors. PAPI enables software engineers to see, in near real time, the relation between software performance and processor events.
|
||||
In addition Component PAPI provides access to a collection of components that expose performance measurement opportunites across the hardware and software stack."""
|
||||
homepage = "http://icl.cs.utk.edu/papi/index.html"
|
||||
url = "http://icl.cs.utk.edu/projects/papi/downloads/papi-5.3.0.tar.gz"
|
||||
|
||||
versions = { '5.3.0' : '367961dd0ab426e5ae367c2713924ffb', }
|
||||
|
||||
def install(self, spec, prefix):
|
||||
os.chdir("src/")
|
||||
|
||||
configure_args=["--prefix=%s" % prefix]
|
||||
|
||||
# need to force consistency in the use of compilers
|
||||
if spec.satisfies('%gcc'):
|
||||
configure_args.append('CC=gcc')
|
||||
configure_args.append('MPICH_CC=gcc')
|
||||
if spec.satisfies('%intel'):
|
||||
configure_args.append('CC=icc')
|
||||
configure_args.append('MPICH_CC=icc')
|
||||
|
||||
configure(*configure_args)
|
||||
|
||||
make()
|
||||
make("install")
|
||||
|
Loading…
Reference in New Issue
Block a user