summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin/packages/ompss/package.py
diff options
context:
space:
mode:
Diffstat (limited to 'var/spack/repos/builtin/packages/ompss/package.py')
-rw-r--r--var/spack/repos/builtin/packages/ompss/package.py50
1 files changed, 50 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/ompss/package.py b/var/spack/repos/builtin/packages/ompss/package.py
new file mode 100644
index 0000000000..e09e0a624f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/ompss/package.py
@@ -0,0 +1,50 @@
+from spack import *
+import os
+import glob
+
+# working config lines for ompss 14.06 :
+#./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):
+ """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/"
+ url = "http://pm.bsc.es/sites/default/files/ftp/ompss/releases/ompss-14.10.tar.gz"
+ list_url = 'http://pm.bsc.es/ompss-downloads'
+
+ version('14.10', '404d161265748f2f96bb35fd8c7e79ee')
+
+ # all dependencies are optional, really
+ depends_on("mpi")
+ #depends_on("openmp")
+ depends_on("hwloc")
+ depends_on("extrae")
+
+ def install(self, spec, prefix):
+ if 'openmpi' in spec:
+ mpi = spec['openmpi']
+ elif 'mpich' in spec:
+ mpi = spec['mpich']
+ 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=%s" % prefix, "--with-mcc=%s" % prefix, "--with-extrae=%s" % spec['extrae'].prefix, "--with-hwloc=%s" % spec['hwloc'].prefix)
+ make()
+ make("install")
+
+ os.chdir(glob.glob('../mcxx-*').pop())
+ configure("--prefix=%s" % prefix, "--with-nanox=%s" % prefix, "--enable-ompss", "--with-mpi=%s" % mpi.prefix, *openmp_options)
+ make()
+ make("install")