def __init__(self): ''' Create a Cray system platform. Target names should use craype target names but not include the 'craype-' prefix. Uses first viable target from: self envars [SPACK_FRONT_END, SPACK_BACK_END] configuration file "targets.yaml" with keys 'front_end', 'back_end' scanning /etc/bash/bashrc.local for back_end only ''' super(Cray, self).__init__('cray') # Make all craype targets available. for target in self._avail_targets(): name = target.replace('-', '_') self.add_target(name, Target(name, 'craype-%s' % target)) self.add_target("x86_64", Target("x86_64")) self.add_target("front_end", Target("x86_64")) self.front_end = "x86_64" # Get aliased targets from config or best guess from environment: for name in ('front_end', 'back_end'): _target = getattr(self, name, None) if _target is None: _target = os.environ.get('SPACK_' + name.upper()) if _target is None and name == 'back_end': _target = self._default_target_from_env() if _target is not None: safe_name = _target.replace('-', '_') setattr(self, name, safe_name) self.add_target(name, self.targets[safe_name]) if self.back_end is not None: self.default = self.back_end self.add_target('default', self.targets[self.back_end]) else: raise NoPlatformError() front_distro = CrayFrontend() back_distro = Cnl() self.default_os = str(back_distro) self.back_os = self.default_os self.front_os = str(front_distro) self.add_operating_system(self.back_os, back_distro) self.add_operating_system(self.front_os, front_distro)
def __init__(self): ''' Create a Cray system platform. Target names should use craype target names but not include the 'craype-' prefix. Uses first viable target from: self envars [SPACK_FRONT_END, SPACK_BACK_END] configuration file "targets.yaml" with keys 'front_end', 'back_end' scanning /etc/bash/bashrc.local for back_end only ''' super(Cray, self).__init__('cray') # Make all craype targets available. for target in self._avail_targets(): name = _target_name_from_craype_target_name(target) self.add_target(name, Target(name, 'craype-%s' % target)) self.back_end = os.environ.get('SPACK_BACK_END', self._default_target_from_env()) self.default = self.back_end if self.back_end not in self.targets: # We didn't find a target module for the backend raise NoPlatformError() # Setup frontend targets for name in archspec.cpu.TARGETS: if name not in self.targets: self.add_target(name, Target(name)) self.front_end = os.environ.get( 'SPACK_FRONT_END', archspec.cpu.host().name ) if self.front_end not in self.targets: self.add_target(self.front_end, Target(self.front_end)) front_distro = CrayFrontend() back_distro = CrayBackend() self.default_os = str(back_distro) self.back_os = self.default_os self.front_os = str(front_distro) self.add_operating_system(self.back_os, back_distro) if self.front_os != self.back_os: self.add_operating_system(self.front_os, front_distro)