mvapich2: added version 2.3rc1 + variant to use alloca if available (#7595)
* mvapich2: added version 2.3rc1 + variant to use alloca if available * mvapich2: removed version 1.9 + cleaned recipe
This commit is contained in:
		
				
					committed by
					
						
						GitHub
					
				
			
			
				
	
			
			
			
						parent
						
							c50628ebdf
						
					
				
				
					commit
					79251dde40
				
			@@ -1,11 +0,0 @@
 | 
				
			|||||||
--- a/src/mpi/romio/adio/ad_lustre/ad_lustre_rwcontig.c	2013-12-10 12:05:44.806417000 -0800
 | 
					 | 
				
			||||||
+++ b/src/mpi/romio/adio/ad_lustre/ad_lustre_rwcontig.c	2013-12-10 11:53:03.295622000 -0800
 | 
					 | 
				
			||||||
@@ -8,7 +8,7 @@
 | 
					 | 
				
			||||||
  *   Copyright (C) 2008 Sun Microsystems, Lustre group
 | 
					 | 
				
			||||||
  */
 | 
					 | 
				
			||||||
 
 | 
					 | 
				
			||||||
-#define _XOPEN_SOURCE 600
 | 
					 | 
				
			||||||
+//#define _XOPEN_SOURCE 600
 | 
					 | 
				
			||||||
 #include <stdlib.h>
 | 
					 | 
				
			||||||
 #include <malloc.h>
 | 
					 | 
				
			||||||
 #include "ad_lustre.h"
 | 
					 | 
				
			||||||
@@ -41,20 +41,16 @@ class Mvapich2(AutotoolsPackage):
 | 
				
			|||||||
    url = "http://mvapich.cse.ohio-state.edu/download/mvapich/mv2/mvapich2-2.2.tar.gz"
 | 
					    url = "http://mvapich.cse.ohio-state.edu/download/mvapich/mv2/mvapich2-2.2.tar.gz"
 | 
				
			||||||
    list_url = "http://mvapich.cse.ohio-state.edu/downloads/"
 | 
					    list_url = "http://mvapich.cse.ohio-state.edu/downloads/"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Newer alpha release
 | 
					    version('2.3rc1', '386d79ae36b2136d203826465ad8b6cc')
 | 
				
			||||||
    version('2.3a', '87c3fbf8a755b53806fa9ecb21453445')
 | 
					    version('2.3a', '87c3fbf8a755b53806fa9ecb21453445')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Prefer the latest stable release
 | 
					    # Prefer the latest stable release
 | 
				
			||||||
    version('2.2', '939b65ebe5b89a5bc822cdab0f31f96e', preferred=True)
 | 
					    version('2.2', '939b65ebe5b89a5bc822cdab0f31f96e', preferred=True)
 | 
				
			||||||
    version('2.1', '0095ceecb19bbb7fb262131cb9c2cdd6')
 | 
					    version('2.1', '0095ceecb19bbb7fb262131cb9c2cdd6')
 | 
				
			||||||
    version('2.0', '9fbb68a4111a8b6338e476dc657388b4')
 | 
					    version('2.0', '9fbb68a4111a8b6338e476dc657388b4')
 | 
				
			||||||
    version('1.9', '5dc58ed08fd3142c260b70fe297e127c')
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    patch('ad_lustre_rwcontig_open_source.patch', when='@1.9')
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    provides('mpi')
 | 
					    provides('mpi')
 | 
				
			||||||
    provides('mpi@:2.2', when='@1.9')  # MVAPICH2-1.9 supports MPI 2.2
 | 
					    provides('mpi@:3.0')
 | 
				
			||||||
    provides('mpi@:3.0', when='@2.0:')  # MVAPICH2-2.0 supports MPI 3.0
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    variant('debug', default=False,
 | 
					    variant('debug', default=False,
 | 
				
			||||||
            description='Enable debug info and error messages at run-time')
 | 
					            description='Enable debug info and error messages at run-time')
 | 
				
			||||||
@@ -103,6 +99,12 @@ class Mvapich2(AutotoolsPackage):
 | 
				
			|||||||
        )
 | 
					        )
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    variant(
 | 
				
			||||||
 | 
					        'alloca',
 | 
				
			||||||
 | 
					        default=False,
 | 
				
			||||||
 | 
					        description='Use alloca to allocate temporary memory if available'
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    depends_on('bison', type='build')
 | 
					    depends_on('bison', type='build')
 | 
				
			||||||
    depends_on('libpciaccess', when=(sys.platform != 'darwin'))
 | 
					    depends_on('libpciaccess', when=(sys.platform != 'darwin'))
 | 
				
			||||||
    depends_on('cuda', when='+cuda')
 | 
					    depends_on('cuda', when='+cuda')
 | 
				
			||||||
@@ -111,13 +113,6 @@ class Mvapich2(AutotoolsPackage):
 | 
				
			|||||||
        'mpicc', 'mpicxx', 'mpif77', 'mpif90', 'mpifort', relative_root='bin'
 | 
					        'mpicc', 'mpicxx', 'mpif77', 'mpif90', 'mpifort', relative_root='bin'
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def url_for_version(self, version):
 | 
					 | 
				
			||||||
        base_url = "http://mvapich.cse.ohio-state.edu/download"
 | 
					 | 
				
			||||||
        if version < Version('2.0'):
 | 
					 | 
				
			||||||
            return "%s/mvapich2/mv2/mvapich2-%s.tar.gz" % (base_url, version)
 | 
					 | 
				
			||||||
        else:
 | 
					 | 
				
			||||||
            return "%s/mvapich/mv2/mvapich2-%s.tar.gz"  % (base_url, version)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @property
 | 
					    @property
 | 
				
			||||||
    def process_manager_options(self):
 | 
					    def process_manager_options(self):
 | 
				
			||||||
        spec = self.spec
 | 
					        spec = self.spec
 | 
				
			||||||
@@ -130,16 +125,10 @@ def process_manager_options(self):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        # See: http://slurm.schedmd.com/mpi_guide.html#mvapich2
 | 
					        # See: http://slurm.schedmd.com/mpi_guide.html#mvapich2
 | 
				
			||||||
        if 'process_managers=slurm' in spec:
 | 
					        if 'process_managers=slurm' in spec:
 | 
				
			||||||
            if self.version > Version('2.0'):
 | 
					 | 
				
			||||||
            opts = [
 | 
					            opts = [
 | 
				
			||||||
                '--with-pmi=pmi2',
 | 
					                '--with-pmi=pmi2',
 | 
				
			||||||
                '--with-pm=slurm'
 | 
					                '--with-pm=slurm'
 | 
				
			||||||
            ]
 | 
					            ]
 | 
				
			||||||
            else:
 | 
					 | 
				
			||||||
                opts = [
 | 
					 | 
				
			||||||
                    '--with-pmi=slurm',
 | 
					 | 
				
			||||||
                    '--with-pm=no'
 | 
					 | 
				
			||||||
                ]
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return opts
 | 
					        return opts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -165,7 +154,7 @@ def network_options(self):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    def setup_environment(self, spack_env, run_env):
 | 
					    def setup_environment(self, spack_env, run_env):
 | 
				
			||||||
        spec = self.spec
 | 
					        spec = self.spec
 | 
				
			||||||
        if 'process_managers=slurm' in spec and spec.satisfies('@2.0:'):
 | 
					        if 'process_managers=slurm' in spec:
 | 
				
			||||||
            run_env.set('SLURM_MPI_TYPE', 'pmi2')
 | 
					            run_env.set('SLURM_MPI_TYPE', 'pmi2')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
 | 
					    def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
 | 
				
			||||||
@@ -206,12 +195,15 @@ def configure_args(self):
 | 
				
			|||||||
            '--enable-shared',
 | 
					            '--enable-shared',
 | 
				
			||||||
            '--enable-romio',
 | 
					            '--enable-romio',
 | 
				
			||||||
            '-disable-silent-rules',
 | 
					            '-disable-silent-rules',
 | 
				
			||||||
 | 
					            '--disable-new-dtags',
 | 
				
			||||||
            '--enable-fortran=all',
 | 
					            '--enable-fortran=all',
 | 
				
			||||||
            "--enable-threads={0}".format(spec.variants['threads'].value),
 | 
					            "--enable-threads={0}".format(spec.variants['threads'].value),
 | 
				
			||||||
            "--with-ch3-rank-bits={0}".format(
 | 
					            "--with-ch3-rank-bits={0}".format(
 | 
				
			||||||
                spec.variants['ch3_rank_bits'].value),
 | 
					                spec.variants['ch3_rank_bits'].value),
 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        args.extend(self.enable_or_disable('alloca'))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if '+debug' in self.spec:
 | 
					        if '+debug' in self.spec:
 | 
				
			||||||
            args.extend([
 | 
					            args.extend([
 | 
				
			||||||
                '--disable-fast',
 | 
					                '--disable-fast',
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user