summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin/packages
diff options
context:
space:
mode:
authorAdam J. Stewart <ajstewart426@gmail.com>2016-03-29 14:47:16 -0500
committerAdam J. Stewart <ajstewart426@gmail.com>2016-03-29 14:47:16 -0500
commit4ddba5f7edd97c8c17781368edc5b9a0db74417d (patch)
tree26cfb18cf12aaed5cbfb08e5cb9f9164ae5444e1 /var/spack/repos/builtin/packages
parente0fdb3410416f5a91aded450f1c92b01826210ea (diff)
downloadspack-4ddba5f7edd97c8c17781368edc5b9a0db74417d.tar.gz
spack-4ddba5f7edd97c8c17781368edc5b9a0db74417d.tar.bz2
spack-4ddba5f7edd97c8c17781368edc5b9a0db74417d.tar.xz
spack-4ddba5f7edd97c8c17781368edc5b9a0db74417d.zip
Add CUDA and HOOMD-blue packages
Diffstat (limited to 'var/spack/repos/builtin/packages')
-rw-r--r--var/spack/repos/builtin/packages/cuda/package.py42
-rw-r--r--var/spack/repos/builtin/packages/hoomd-blue/package.py67
2 files changed, 109 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/cuda/package.py b/var/spack/repos/builtin/packages/cuda/package.py
new file mode 100644
index 0000000000..547b43d6d2
--- /dev/null
+++ b/var/spack/repos/builtin/packages/cuda/package.py
@@ -0,0 +1,42 @@
+from spack import *
+from glob import glob
+import os
+
+class Cuda(Package):
+ """CUDA is a parallel computing platform and programming model invented by
+ NVIDIA. It enables dramatic increases in computing performance by harnessing
+ the power of the graphics processing unit (GPU).
+
+ Note: NVIDIA does not provide a download URL for CUDA so you will need to
+ download it yourself. Go to https://developer.nvidia.com/cuda-downloads
+ and select your Operating System, Architecture, Distribution, and Version.
+ For the Installer Type, select runfile and click Download. Spack will search
+ your current directory for this file. Alternatively, add this file to a
+ mirror so that Spack can find it. For instructions on how to set up a mirror,
+ see http://software.llnl.gov/spack/mirrors.html"""
+
+ homepage = "http://www.nvidia.com/object/cuda_home_new.html"
+ url = "file://%s/cuda_7.5.18_linux.run" % os.getcwd()
+
+ version('7.5.18', '4b3bcecf0dfc35928a0898793cf3e4c6', expand=False)
+
+ def install(self, spec, prefix):
+ runfile = glob(os.path.join(self.stage.path, 'cuda*.run'))[0]
+ chmod = which('chmod')
+ chmod('+x', runfile)
+ runfile = which(runfile)
+
+ # Note: NVIDIA does not officially support many newer versions of compilers.
+ # For example, on CentOS 6, you must use GCC 4.4.7 or older.
+ # The --override flag disables these checks. See:
+ # http://docs.nvidia.com/cuda/cuda-installation-guide-linux/#system-requirements
+ # for details.
+
+ runfile(
+ '--silent', # disable interactive prompts
+ '--verbose', # create verbose log file
+ '--override', # ignore compiler checks
+ '--toolkit', # install CUDA Toolkit
+ '--toolkitpath=%s' % prefix
+ )
+
diff --git a/var/spack/repos/builtin/packages/hoomd-blue/package.py b/var/spack/repos/builtin/packages/hoomd-blue/package.py
new file mode 100644
index 0000000000..97ce9c0cf0
--- /dev/null
+++ b/var/spack/repos/builtin/packages/hoomd-blue/package.py
@@ -0,0 +1,67 @@
+from spack import *
+import os
+
+class HoomdBlue(Package):
+ """HOOMD-blue is a general-purpose particle simulation toolkit. It scales
+ from a single CPU core to thousands of GPUs.
+
+ You define particle initial conditions and interactions in a high-level
+ python script. Then tell HOOMD-blue how you want to execute the job and it
+ takes care of the rest. Python job scripts give you unlimited flexibility
+ to create custom initialization routines, control simulation parameters,
+ and perform in situ analysis."""
+
+ homepage = "https://codeblue.umich.edu/hoomd-blue/index.html"
+ url = "https://bitbucket.org/glotzer/hoomd-blue/get/v1.3.3.tar.bz2"
+
+ version('1.3.3', '1469ef4531dc14b579c0acddbfe6a273')
+
+ variant('mpi', default=False, description='Compile with MPI enabled')
+ variant('cuda', default=False, description='Compile with CUDA Toolkit')
+ variant('doc', default=False, description='Generate documentation')
+
+ extends('python')
+ depends_on('py-numpy')
+ depends_on('boost+python')
+ depends_on('cmake')
+ depends_on('mpi', when='+mpi')
+ depends_on('cuda', when='+cuda')
+ depends_on('doxygen', when='+doc')
+
+ def install(self, spec, prefix):
+
+ cmake_args = [
+ '-DPYTHON_EXECUTABLE=%s/python' % spec['python'].prefix.bin,
+ '-DBOOST_ROOT=%s' % spec['boost' ].prefix
+ ]
+
+ # MPI support
+ if '+mpi' in spec:
+ os.environ['MPI_HOME'] = spec['mpi'].prefix
+ cmake_args.append('-DENABLE_MPI=ON')
+ else:
+ cmake_args.append('-DENABLE_MPI=OFF')
+
+ # CUDA support
+ if '+cuda' in spec:
+ cmake_args.append('-DENABLE_CUDA=ON')
+ else:
+ cmake_args.append('-DENABLE_CUDA=OFF')
+
+ # CUDA-aware MPI library support
+ if '+cuda' in spec and '+mpi' in spec:
+ cmake_args.append('-DENABLE_MPI_CUDA=ON')
+ else:
+ cmake_args.append('-DENABLE_MPI_CUDA=OFF')
+
+ # Documentation
+ if '+doc' in spec:
+ cmake_args.append('-DENABLE_DOXYGEN=ON')
+ else:
+ cmake_args.append('-DENABLE_DOXYGEN=OFF')
+
+ cmake_args.extend(std_cmake_args)
+ cmake('.', *cmake_args)
+
+ make()
+ make("install")