Add CUDA and HOOMD-blue packages
This commit is contained in:
parent
e0fdb34104
commit
4ddba5f7ed
42
var/spack/repos/builtin/packages/cuda/package.py
Normal file
42
var/spack/repos/builtin/packages/cuda/package.py
Normal file
@ -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
|
||||
)
|
||||
|
67
var/spack/repos/builtin/packages/hoomd-blue/package.py
Normal file
67
var/spack/repos/builtin/packages/hoomd-blue/package.py
Normal file
@ -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")
|
Loading…
Reference in New Issue
Block a user