Improved cray architecture class

This commit is contained in:
Gregory Becker 2016-01-07 13:01:05 -08:00
parent 83917c4c30
commit 53d4f82ce1

View File

@ -2,7 +2,7 @@
from spack.architecture import Platform, Target from spack.architecture import Platform, Target
class Cray(Platform): class CrayXc(Platform):
priority = 20 priority = 20
front_end = 'sandybridge' front_end = 'sandybridge'
back_end = 'ivybridge' back_end = 'ivybridge'
@ -13,7 +13,7 @@ def __init__(self):
if we use CRAY_CPU_TARGET as the default. This will ensure if we use CRAY_CPU_TARGET as the default. This will ensure
that if we're on a XC-40 or XC-30 then we can detect the target that if we're on a XC-40 or XC-30 then we can detect the target
''' '''
super(Cray, self).__init__('cray') super(CrayXc, self).__init__('cray_xc')
# Handle the default here so we can check for a key error # Handle the default here so we can check for a key error
if 'CRAY_CPU_TARGET' in os.environ: if 'CRAY_CPU_TARGET' in os.environ:
@ -24,12 +24,17 @@ def __init__(self):
self.front_end = self.default self.front_end = self.default
self.back_end = self.default self.back_end = self.default
# Could switch to use modules and fe targets for front end # Could switch to use modules and fe targets for front end
# Currently using compilers by path for front end. # Currently using compilers by path for front end.
self.add_target(self.front_end, Target(self.front_end, 'PATH')) self.add_target('sandybridge', Target('sandybridge', 'PATH'))
self.add_target('ivybridge', Target('ivybridge', 'MODULES', 'craype-ivybridge'))
self.add_target('haswell', Target('haswell', 'MODULES', 'craype-haswell'))
# self.add_target(self.front_end, Target(self.front_end, 'PATH'))
# Back End compiler needs the proper target module loaded. # Back End compiler needs the proper target module loaded.
# self.add_target(self.back_end, Target(self.front_end, 'MODULES', 'craype-'+ self.back_end)) # self.add_target(self.back_end, Target(self.front_end, 'MODULES', 'craype-'+ self.back_end))
self.add_target(self.default, Target(self.default, 'MODULES', 'craype-' + self.default)) # self.add_target(self.default, Target(self.default, 'MODULES', 'craype-' + self.default))
# This is kludgy and the order matters when the targets are all haswell # This is kludgy and the order matters when the targets are all haswell
# This is because the last one overwrites the others when they have the # This is because the last one overwrites the others when they have the
# same name. # same name.