Add CUDA and HOOMD-blue packages
This commit is contained in:
		
							
								
								
									
										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")
 | 
			
		||||
		Reference in New Issue
	
	Block a user