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