summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorLuc Jaulmes <jaulmes1@llnl.gov>2014-06-20 17:15:32 -0700
committerTodd Gamblin <tgamblin@llnl.gov>2014-07-31 13:57:44 -0700
commit5a4881c086111a07d93e0e7d5d4f25ba09bb56cc (patch)
treef8a078034dfec7b9af1d3a57a3b0d61170dcfe5a /var
parent5dffa2671124024bdb15d292751abd998702ab0d (diff)
downloadspack-5a4881c086111a07d93e0e7d5d4f25ba09bb56cc.tar.gz
spack-5a4881c086111a07d93e0e7d5d4f25ba09bb56cc.tar.bz2
spack-5a4881c086111a07d93e0e7d5d4f25ba09bb56cc.tar.xz
spack-5a4881c086111a07d93e0e7d5d4f25ba09bb56cc.zip
Adding Extrae and OmpSs with some of their dependencies, hwloc and PAPI.
Extrae does not compile for latest versions of any MPI implementation.
Diffstat (limited to 'var')
-rw-r--r--var/spack/packages/extrae/package.py29
-rw-r--r--var/spack/packages/hwloc/package.py15
-rw-r--r--var/spack/packages/mvapich2/package.py2
-rw-r--r--var/spack/packages/ompss/package.py19
-rw-r--r--var/spack/packages/papi/package.py29
5 files changed, 82 insertions, 12 deletions
diff --git a/var/spack/packages/extrae/package.py b/var/spack/packages/extrae/package.py
new file mode 100644
index 0000000000..a06f02d3df
--- /dev/null
+++ b/var/spack/packages/extrae/package.py
@@ -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)
+
diff --git a/var/spack/packages/hwloc/package.py b/var/spack/packages/hwloc/package.py
new file mode 100644
index 0000000000..57c2ae2fa9
--- /dev/null
+++ b/var/spack/packages/hwloc/package.py
@@ -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")
+
diff --git a/var/spack/packages/mvapich2/package.py b/var/spack/packages/mvapich2/package.py
index 5b62835bf9..0f0f849c51 100644
--- a/var/spack/packages/mvapich2/package.py
+++ b/var/spack/packages/mvapich2/package.py
@@ -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,
diff --git a/var/spack/packages/ompss/package.py b/var/spack/packages/ompss/package.py
index 32c9e13e29..66a126579e 100644
--- a/var/spack/packages/ompss/package.py
+++ b/var/spack/packages/ompss/package.py
@@ -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 @@ class Ompss(Package):
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")
diff --git a/var/spack/packages/papi/package.py b/var/spack/packages/papi/package.py
new file mode 100644
index 0000000000..15a621985b
--- /dev/null
+++ b/var/spack/packages/papi/package.py
@@ -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")
+