added the hp proliant dl385 configurations (amd epyc cpu)
This commit is contained in:
		
							parent
							
								
									7e1aab1f68
								
							
						
					
					
						commit
						61e774fa97
					
				
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| 
						 | 
					@ -92,7 +92,7 @@ class Cpu(Item):
 | 
				
			||||||
            return 'naples'
 | 
					            return 'naples'
 | 
				
			||||||
        elif re.match('amd-epyc-[0-9][0-9fh][0-9]2', proc_id):
 | 
					        elif re.match('amd-epyc-[0-9][0-9fh][0-9]2', proc_id):
 | 
				
			||||||
            return 'rome'
 | 
					            return 'rome'
 | 
				
			||||||
        elif re.match('amd-epyc-[0-9][0-9fh][0-9]3', proc_id):
 | 
					        elif re.match('amd-epyc-[0-9][0-9fh][0-9f]3', proc_id):
 | 
				
			||||||
            return 'milan'
 | 
					            return 'milan'
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            assert False, 'unhandled processor id : %s' % proc_id
 | 
					            assert False, 'unhandled processor id : %s' % proc_id
 | 
				
			||||||
| 
						 | 
					@ -150,7 +150,8 @@ class Cpu(Item):
 | 
				
			||||||
            'coffeelake': 6,
 | 
					            'coffeelake': 6,
 | 
				
			||||||
            'cascadelake': 6,
 | 
					            'cascadelake': 6,
 | 
				
			||||||
            'icelake': 8,
 | 
					            'icelake': 8,
 | 
				
			||||||
            'rome': 8
 | 
					            'rome': 8,
 | 
				
			||||||
 | 
					            'milan': 8
 | 
				
			||||||
        }[self.architecture]
 | 
					        }[self.architecture]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -230,6 +231,7 @@ def get_simd_id(proc_arch):
 | 
				
			||||||
        # - Up to 16 double-precision FLOPS per cycle per core
 | 
					        # - Up to 16 double-precision FLOPS per cycle per core
 | 
				
			||||||
        # - Double-precision floating point multiplies complete in 3 cycles (down from 4)
 | 
					        # - Double-precision floating point multiplies complete in 3 cycles (down from 4)
 | 
				
			||||||
        'rome': 'avx2',
 | 
					        'rome': 'avx2',
 | 
				
			||||||
 | 
					        'milan': 'avx2',
 | 
				
			||||||
    }[proc_arch]
 | 
					    }[proc_arch]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,3 +1,4 @@
 | 
				
			||||||
 | 
					from pathlib import Path
 | 
				
			||||||
from concho.config import TableBasedConfigurator
 | 
					from concho.config import TableBasedConfigurator
 | 
				
			||||||
from concho.config import Configurator
 | 
					from concho.config import Configurator
 | 
				
			||||||
from concho.config import Module
 | 
					from concho.config import Module
 | 
				
			||||||
| 
						 | 
					@ -864,7 +865,7 @@ class MatinfoConfigurator(Configurator):
 | 
				
			||||||
    a configurator using a server configurator web page from matinfo
 | 
					    a configurator using a server configurator web page from matinfo
 | 
				
			||||||
    '''
 | 
					    '''
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def __init__(self, configurator_html_file_path, html_parser):
 | 
					    def __init__(self, configurator_html_file_path: Path, html_parser):
 | 
				
			||||||
        super().__init__(self)
 | 
					        super().__init__(self)
 | 
				
			||||||
        self.base_config = None
 | 
					        self.base_config = None
 | 
				
			||||||
        self.chassis = None
 | 
					        self.chassis = None
 | 
				
			||||||
| 
						 | 
					@ -888,7 +889,7 @@ class DellMatinfoCsvConfigurator(Configurator):
 | 
				
			||||||
    eg the excel sheet sent to guillaume.raffy@univ-rennes1.fr on 16/07/2020
 | 
					    eg the excel sheet sent to guillaume.raffy@univ-rennes1.fr on 16/07/2020
 | 
				
			||||||
    '''
 | 
					    '''
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def __init__(self, dell_csv_file_path):
 | 
					    def __init__(self, dell_csv_file_path: Path):
 | 
				
			||||||
        super().__init__(self)
 | 
					        super().__init__(self)
 | 
				
			||||||
        self.base_config = None
 | 
					        self.base_config = None
 | 
				
			||||||
        self.chassis = None
 | 
					        self.chassis = None
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -22,10 +22,15 @@ def parse_cpu_label(label: str) -> str:
 | 
				
			||||||
    if match:
 | 
					    if match:
 | 
				
			||||||
        cpu_class = match['cpu_class'].lower()
 | 
					        cpu_class = match['cpu_class'].lower()
 | 
				
			||||||
        cpu_id = "intel-xeon-%s-%s" % (cpu_class, match['cpu_number'].lower())
 | 
					        cpu_id = "intel-xeon-%s-%s" % (cpu_class, match['cpu_number'].lower())
 | 
				
			||||||
    else:
 | 
					 | 
				
			||||||
        assert False, 'unhandled label : %s' % label
 | 
					 | 
				
			||||||
        return cpu_id
 | 
					        return cpu_id
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    match = re.match(r'^AMD EPYC (?P<cpu_number>[0-9][0-9][0-9F][0-9]).*', label)
 | 
				
			||||||
 | 
					    if match:
 | 
				
			||||||
 | 
					        cpu_id = "amd-epyc-%s" % (match['cpu_number'].lower())
 | 
				
			||||||
 | 
					        return cpu_id
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    assert False, 'unhandled label : %s' % label
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class HpeCatalogParser():
 | 
					class HpeCatalogParser():
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -245,7 +250,7 @@ class HpeConfiguratorParser():
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @staticmethod
 | 
					    @staticmethod
 | 
				
			||||||
    def _get_db_as_tree(hpe_configurator_html_file_path: Path):
 | 
					    def _get_db_as_tree(hpe_configurator_html_file_path: Path):
 | 
				
			||||||
        html_root = parse(hpe_configurator_html_file_path).getroot()
 | 
					        html_root = parse(str(hpe_configurator_html_file_path)).getroot()
 | 
				
			||||||
        import json
 | 
					        import json
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        script_elements = html_root.xpath(".//script[@type='text/javascript']")
 | 
					        script_elements = html_root.xpath(".//script[@type='text/javascript']")
 | 
				
			||||||
| 
						 | 
					@ -270,14 +275,14 @@ class HpeConfiguratorParser():
 | 
				
			||||||
        db = json.loads(db_as_json_str)
 | 
					        db = json.loads(db_as_json_str)
 | 
				
			||||||
        hardware_db = HpeConfiguratorParser._find_child_with_id(db["configResponse"]["configuration"]["topLevels"], 'hardware')['subCategories']
 | 
					        hardware_db = HpeConfiguratorParser._find_child_with_id(db["configResponse"]["configuration"]["topLevels"], 'hardware')['subCategories']
 | 
				
			||||||
        # print(hardware_db)
 | 
					        # print(hardware_db)
 | 
				
			||||||
        with open('toto_hardware.json', 'w', encoding='utf-8') as f:
 | 
					        with open(hpe_configurator_html_file_path.with_suffix('.json'), 'w', encoding='utf-8') as f:
 | 
				
			||||||
            json.dump(hardware_db, f, ensure_ascii=False, indent=4)
 | 
					            json.dump(hardware_db, f, ensure_ascii=False, indent=4)
 | 
				
			||||||
        return hardware_db
 | 
					        return hardware_db
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def create_catalog_parser(self, hpe_catalog):
 | 
					    def create_catalog_parser(self, hpe_catalog):
 | 
				
			||||||
        return HpeCatalogParser(hpe_catalog)
 | 
					        return HpeCatalogParser(hpe_catalog)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def parse_proc_change_options(self, hpe_configurator_html_file_path):
 | 
					    def parse_proc_change_options(self, hpe_configurator_html_file_path: Path):
 | 
				
			||||||
        hardware_db = HpeConfiguratorParser._get_db_as_tree(hpe_configurator_html_file_path)
 | 
					        hardware_db = HpeConfiguratorParser._get_db_as_tree(hpe_configurator_html_file_path)
 | 
				
			||||||
        # print(hardware_db)
 | 
					        # print(hardware_db)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -285,7 +290,7 @@ class HpeConfiguratorParser():
 | 
				
			||||||
        proc_change_module = catalog_parser.parse_proc_change_options()
 | 
					        proc_change_module = catalog_parser.parse_proc_change_options()
 | 
				
			||||||
        return proc_change_module
 | 
					        return proc_change_module
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def parse_proc_options(self, hpe_configurator_html_file_path):
 | 
					    def parse_proc_options(self, hpe_configurator_html_file_path: Path):
 | 
				
			||||||
        hardware_db = HpeConfiguratorParser._get_db_as_tree(hpe_configurator_html_file_path)
 | 
					        hardware_db = HpeConfiguratorParser._get_db_as_tree(hpe_configurator_html_file_path)
 | 
				
			||||||
        # print(hardware_db)
 | 
					        # print(hardware_db)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -293,7 +298,7 @@ class HpeConfiguratorParser():
 | 
				
			||||||
        proc_module = catalog_parser.parse_proc_options()
 | 
					        proc_module = catalog_parser.parse_proc_options()
 | 
				
			||||||
        return proc_module
 | 
					        return proc_module
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def parse(self, hpe_configurator_html_file_path, configurator):
 | 
					    def parse(self, hpe_configurator_html_file_path: Path, configurator):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        hardware_db = HpeConfiguratorParser._get_db_as_tree(hpe_configurator_html_file_path)
 | 
					        hardware_db = HpeConfiguratorParser._get_db_as_tree(hpe_configurator_html_file_path)
 | 
				
			||||||
        # print(hardware_db)
 | 
					        # print(hardware_db)
 | 
				
			||||||
| 
						 | 
					@ -303,12 +308,18 @@ class HpeConfiguratorParser():
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        base_model_node = HpeConfiguratorParser._find_child_with_id(hardware_db, 'baseModelSection.baseModelChoice')
 | 
					        base_model_node = HpeConfiguratorParser._find_child_with_id(hardware_db, 'baseModelSection.baseModelChoice')
 | 
				
			||||||
        assert base_model_node is not None
 | 
					        assert base_model_node is not None
 | 
				
			||||||
        assert len(base_model_node['products']) == 1
 | 
					        product_node = [p for p in base_model_node['products'] if p['selected']][0]
 | 
				
			||||||
        label = base_model_node['products'][0]['desc']  # eg "DL360 Gen10"
 | 
					        label = product_node['desc']  # eg "DL360 Gen10"
 | 
				
			||||||
        match = re.match(r'^[HPE]*[ ]*(?P<chassis_type>DL[0-9][0-9][0-9]) Gen(?P<generation>[0-9+]+)', label)
 | 
					        match = re.match(r'^[HPE]*[ ]*(?P<chassis_type>DL[0-9][0-9][0-9]) Gen(?P<generation>[0-9]+) *(?P<plus>[+]?)', label)
 | 
				
			||||||
        # match = re.match(r'^(?P<chassis_type>DL[0-9][0-9][0-9]) Gen(?P<generation>[0-9+]+)', label)
 | 
					        # match = re.match(r'^(?P<chassis_type>DL[0-9][0-9][0-9]) Gen(?P<generation>[0-9+]+)', label)
 | 
				
			||||||
 | 
					        if not match:
 | 
				
			||||||
 | 
					            # HPE ProLiant DL385 Gen10 Plus v2 8SFF Configure-to-order Server
 | 
				
			||||||
 | 
					            match = re.match(r'^HPE ProLiant (?P<chassis_type>DL[0-9][0-9][0-9]) Gen(?P<generation>[0-9+]+) (?P<plus>Plus)', label)
 | 
				
			||||||
        assert match, 'unhandled label : %s' % label
 | 
					        assert match, 'unhandled label : %s' % label
 | 
				
			||||||
        chassis_id = "hpe-proliant-%s-gen%s" % (match['chassis_type'].lower(), match['generation'].lower())
 | 
					        plus = ''
 | 
				
			||||||
 | 
					        if match['plus'] and match['plus'] != '':
 | 
				
			||||||
 | 
					            plus = '+'
 | 
				
			||||||
 | 
					        chassis_id = "hpe-proliant-%s-gen%s%s" % (match['chassis_type'].lower(), match['generation'].lower(), plus)
 | 
				
			||||||
        configurator.chassis = Option(Chassis(chassis_id), 0.0)
 | 
					        configurator.chassis = Option(Chassis(chassis_id), 0.0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        configurator.base_config = catalog_parser.parse_base_config(configurator)
 | 
					        configurator.base_config = catalog_parser.parse_base_config(configurator)
 | 
				
			||||||
| 
						 | 
					@ -376,9 +387,9 @@ class HpeCpuChoiceConfiguratorParser(HpeConfiguratorParser):
 | 
				
			||||||
    def create_catalog_parser(self, hpe_catalog):
 | 
					    def create_catalog_parser(self, hpe_catalog):
 | 
				
			||||||
        return HpeCatalogWoutCpuParser(hpe_catalog)
 | 
					        return HpeCatalogWoutCpuParser(hpe_catalog)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def parse_proc_change_options(self, hpe_configurator_html_file_path):
 | 
					    def parse_proc_change_options(self, hpe_configurator_html_file_path: Path):
 | 
				
			||||||
        # find the proc options in the cpu options popup window as these options are not present in the hpe_catalog of this page
 | 
					        # find the proc options in the cpu options popup window as these options are not present in the hpe_catalog of this page
 | 
				
			||||||
        html_root = parse(hpe_configurator_html_file_path).getroot()
 | 
					        html_root = parse(str(hpe_configurator_html_file_path)).getroot()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        proc_options = Module('processor-change')
 | 
					        proc_options = Module('processor-change')
 | 
				
			||||||
        # module_root_element = self._get_module(html_root, 'Processeurs (Passage)')
 | 
					        # module_root_element = self._get_module(html_root, 'Processeurs (Passage)')
 | 
				
			||||||
| 
						 | 
					@ -399,7 +410,7 @@ class HpeCpuChoiceConfiguratorParser(HpeConfiguratorParser):
 | 
				
			||||||
                proc_options.add_option(option)
 | 
					                proc_options.add_option(option)
 | 
				
			||||||
        return proc_options
 | 
					        return proc_options
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def parse_proc_options(self, hpe_configurator_html_file_path):
 | 
					    def parse_proc_options(self, hpe_configurator_html_file_path: Path):
 | 
				
			||||||
        proc_options = self.parse_proc_change_options(hpe_configurator_html_file_path)
 | 
					        proc_options = self.parse_proc_change_options(hpe_configurator_html_file_path)
 | 
				
			||||||
        proc_options.name = 'processor'
 | 
					        proc_options.name = 'processor'
 | 
				
			||||||
        return proc_options
 | 
					        return proc_options
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -142,6 +142,7 @@ def plot_configs(configs, xaxis_def, yaxis_def, plot_title):
 | 
				
			||||||
            'cascadelake': 0.8,
 | 
					            'cascadelake': 0.8,
 | 
				
			||||||
            'icelake': 1.0,
 | 
					            'icelake': 1.0,
 | 
				
			||||||
            'rome': 0.8,
 | 
					            'rome': 0.8,
 | 
				
			||||||
 | 
					            'milan': 1.0,
 | 
				
			||||||
        }[Cpu(proc_id).architecture]
 | 
					        }[Cpu(proc_id).architecture]
 | 
				
			||||||
        #         if model == 'r620':
 | 
					        #         if model == 'r620':
 | 
				
			||||||
        #             color = 'r'
 | 
					        #             color = 'r'
 | 
				
			||||||
| 
						 | 
					@ -167,8 +168,10 @@ def plot_configs(configs, xaxis_def, yaxis_def, plot_title):
 | 
				
			||||||
            'dell-poweredge-c6320': 1.0,
 | 
					            'dell-poweredge-c6320': 1.0,
 | 
				
			||||||
            'dell-poweredge-c6420': 1.0,
 | 
					            'dell-poweredge-c6420': 1.0,
 | 
				
			||||||
            'dell-precision-3630': 0.2,
 | 
					            'dell-precision-3630': 0.2,
 | 
				
			||||||
            'hpe-proliant-dl360-gen10': 0.55,
 | 
					            'hpe-proliant-dl360-gen10': 0.3,
 | 
				
			||||||
            'hpe-proliant-dl360-gen10+': 0.55
 | 
					            'hpe-proliant-dl360-gen10+': 0.55,
 | 
				
			||||||
 | 
					            'hpe-proliant-dl385-gen10': 0.0,
 | 
				
			||||||
 | 
					            'hpe-proliant-dl385-gen10+': 0.0
 | 
				
			||||||
        }[model]
 | 
					        }[model]
 | 
				
			||||||
        value = 0.9
 | 
					        value = 0.9
 | 
				
			||||||
        return matplotlib.colors.hsv_to_rgb((hue, saturation, value))
 | 
					        return matplotlib.colors.hsv_to_rgb((hue, saturation, value))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -99,6 +99,13 @@ intel-xeon-gold-6150	2.7	18 	4	165	0	26349
 | 
				
			||||||
intel-xeon-gold-6152	2.1	22 	4	140	0	0
 | 
					intel-xeon-gold-6152	2.1	22 	4	140	0	0
 | 
				
			||||||
intel-xeon-gold-6154	3.0	18 	4	200	0	0
 | 
					intel-xeon-gold-6154	3.0	18 	4	200	0	0
 | 
				
			||||||
intel-xeon-gold-6161	2.2	22 	4	165	0	0
 | 
					intel-xeon-gold-6161	2.2	22 	4	165	0	0
 | 
				
			||||||
 | 
					intel-xeon-platinum-8153	2.0	16	8	125	0	0
 | 
				
			||||||
 | 
					intel-xeon-platinum-8160	2.1	24	8	150	0	0
 | 
				
			||||||
 | 
					intel-xeon-platinum-8164	2.0	26	8	165	0	0
 | 
				
			||||||
 | 
					intel-xeon-platinum-8168	2.7	24	8	205	0	0
 | 
				
			||||||
 | 
					intel-xeon-platinum-8170	2.1	26	8	165	0	0
 | 
				
			||||||
 | 
					intel-xeon-platinum-8176	2.1	28	8	165	0	0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
intel-xeon-silver-4208	2.1	8 	2	85	0	0
 | 
					intel-xeon-silver-4208	2.1	8 	2	85	0	0
 | 
				
			||||||
intel-xeon-silver-4210r	2.4	10 	2	100	0	0
 | 
					intel-xeon-silver-4210r	2.4	10 	2	100	0	0
 | 
				
			||||||
| 
						 | 
					@ -111,6 +118,7 @@ intel-xeon-gold-5215	2.5	10 	4	85	0	0
 | 
				
			||||||
intel-xeon-gold-5215l	2.5	10 	4	85	0	0
 | 
					intel-xeon-gold-5215l	2.5	10 	4	85	0	0
 | 
				
			||||||
intel-xeon-gold-5217	3.0	8 	4	115	0	0
 | 
					intel-xeon-gold-5217	3.0	8 	4	115	0	0
 | 
				
			||||||
intel-xeon-gold-5218	2.3	16 	4	125	0	0
 | 
					intel-xeon-gold-5218	2.3	16 	4	125	0	0
 | 
				
			||||||
 | 
					intel-xeon-gold-5218n	2.3	16 	4	125	0	0
 | 
				
			||||||
intel-xeon-gold-5218r	2.1	20 	2	125	0	0
 | 
					intel-xeon-gold-5218r	2.1	20 	2	125	0	0
 | 
				
			||||||
intel-xeon-gold-5220	2.2	18 	4	125	0	0
 | 
					intel-xeon-gold-5220	2.2	18 	4	125	0	0
 | 
				
			||||||
intel-xeon-gold-5220r	2.2	24 	2	150	0	0
 | 
					intel-xeon-gold-5220r	2.2	24 	2	150	0	0
 | 
				
			||||||
| 
						 | 
					@ -121,6 +129,7 @@ intel-xeon-gold-6212u	2.4	24 	1	165	0	0
 | 
				
			||||||
intel-xeon-gold-6226	2.7	12 	4	125	0	0
 | 
					intel-xeon-gold-6226	2.7	12 	4	125	0	0
 | 
				
			||||||
intel-xeon-gold-6226r	2.9	16 	2	150	0	0
 | 
					intel-xeon-gold-6226r	2.9	16 	2	150	0	0
 | 
				
			||||||
intel-xeon-gold-6230	2.1	20 	4	125	0	0
 | 
					intel-xeon-gold-6230	2.1	20 	4	125	0	0
 | 
				
			||||||
 | 
					intel-xeon-gold-6230n	2.3	20 	2	125	0	0
 | 
				
			||||||
intel-xeon-gold-6230r	2.1	26 	2	150	0	0
 | 
					intel-xeon-gold-6230r	2.1	26 	2	150	0	0
 | 
				
			||||||
intel-xeon-gold-6234	3.3	8 	4	130	0	0
 | 
					intel-xeon-gold-6234	3.3	8 	4	130	0	0
 | 
				
			||||||
intel-xeon-gold-6238	2.1	22 	4	140	0	0
 | 
					intel-xeon-gold-6238	2.1	22 	4	140	0	0
 | 
				
			||||||
| 
						 | 
					@ -154,12 +163,37 @@ intel-xeon-platinum-8276	2.2	28 	8	165	0	0
 | 
				
			||||||
intel-xeon-platinum-8280	2.7	28 	8	205	0	0
 | 
					intel-xeon-platinum-8280	2.7	28 	8	205	0	0
 | 
				
			||||||
intel-xeon-platinum-8280l	2.7	28 	8	205	0	0
 | 
					intel-xeon-platinum-8280l	2.7	28 	8	205	0	0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
intel-xeon-platinum-8153	2.0	16	8	125	0	0
 | 
					intel-xeon-silver-4310	2.1	12 	2	120	0	0
 | 
				
			||||||
intel-xeon-platinum-8160	2.1	24	8	150	0	0
 | 
					intel-xeon-silver-4314	2.4	16 	2	135	0	0
 | 
				
			||||||
intel-xeon-platinum-8164	2.0	26	8	165	0	0
 | 
					intel-xeon-silver-4316	2.3	20 	2	150	0	0
 | 
				
			||||||
intel-xeon-platinum-8168	2.7	24	8	205	0	0
 | 
					intel-xeon-gold-5315y	3.2	8 	2	140	0	0
 | 
				
			||||||
intel-xeon-platinum-8170	2.1	26	8	165	0	0
 | 
					intel-xeon-gold-5317	3.0	12 	2	150	0	0
 | 
				
			||||||
intel-xeon-platinum-8176	2.1	28	8	165	0	0
 | 
					intel-xeon-gold-5318s	2.1	24 	2	165	0	0
 | 
				
			||||||
 | 
					intel-xeon-gold-5318y	2.1	24 	2	165	0	0
 | 
				
			||||||
 | 
					intel-xeon-gold-5320	2.2	26 	2	185	0	0
 | 
				
			||||||
 | 
					intel-xeon-gold-6312u	2.4	24 	1	185	0	0
 | 
				
			||||||
 | 
					intel-xeon-gold-6314u	2.3	32 	1	205	0	0
 | 
				
			||||||
 | 
					intel-xeon-gold-6326	2.9	16 	2	185	0	0
 | 
				
			||||||
 | 
					intel-xeon-gold-6330	2.0	28 	2	205	0	0
 | 
				
			||||||
 | 
					intel-xeon-gold-6334	3.6	8 	2	165	0	0
 | 
				
			||||||
 | 
					intel-xeon-gold-6336y	2.4	24 	2	185	0	0
 | 
				
			||||||
 | 
					intel-xeon-gold-6338	2.0	32 	2	205	0	0
 | 
				
			||||||
 | 
					intel-xeon-gold-6338n	2.2	32 	2	185	0	0
 | 
				
			||||||
 | 
					intel-xeon-gold-6342	2.8	24 	2	230	0	0
 | 
				
			||||||
 | 
					intel-xeon-gold-6346	3.1	16 	2	205	0	0
 | 
				
			||||||
 | 
					intel-xeon-gold-6348	2.6	28 	2	235	0	0
 | 
				
			||||||
 | 
					intel-xeon-gold-6354	3.0	18 	2	205	0	0
 | 
				
			||||||
 | 
					intel-xeon-platinum-8351n	2.4	36 	2	225	0	0
 | 
				
			||||||
 | 
					intel-xeon-platinum-8352m	2.3	32 	2	185	0	0
 | 
				
			||||||
 | 
					intel-xeon-platinum-8352s	2.2	32 	2	205	0	0
 | 
				
			||||||
 | 
					intel-xeon-platinum-8352v	2.1	36 	2	195	0	0
 | 
				
			||||||
 | 
					intel-xeon-platinum-8352y	2.2	32 	2	205	0	0
 | 
				
			||||||
 | 
					intel-xeon-platinum-8358	2.6	32 	2	250	0	0
 | 
				
			||||||
 | 
					intel-xeon-platinum-8358p	2.6	32 	2	240	0	0
 | 
				
			||||||
 | 
					intel-xeon-platinum-8362	2.8	32 	2	265	0	0
 | 
				
			||||||
 | 
					intel-xeon-platinum-8368	2.4	38 	2	270	0	0
 | 
				
			||||||
 | 
					intel-xeon-platinum-8380	2.3	40 	2	270	0	0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
amd-epyc-7262	3.2	8	2	155	0	0
 | 
					amd-epyc-7262	3.2	8	2	155	0	0
 | 
				
			||||||
amd-epyc-7272	2.9	12	2	120	0	0
 | 
					amd-epyc-7272	2.9	12	2	120	0	0
 | 
				
			||||||
amd-epyc-7282	2.8	16	2	120	0	0
 | 
					amd-epyc-7282	2.8	16	2	120	0	0
 | 
				
			||||||
| 
						 | 
					@ -177,3 +211,19 @@ amd-epyc-7f32	3.7	8	2	180	0	0
 | 
				
			||||||
amd-epyc-7f52	3.5	16	2	240	0	0
 | 
					amd-epyc-7f52	3.5	16	2	240	0	0
 | 
				
			||||||
amd-epyc-7f72	3.5	24	2	240	0	0
 | 
					amd-epyc-7f72	3.5	24	2	240	0	0
 | 
				
			||||||
amd-epyc-7h12	2.6	64	2	280	0	0
 | 
					amd-epyc-7h12	2.6	64	2	280	0	0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					amd-epyc-72f3	3.7	8	2	180	0	0
 | 
				
			||||||
 | 
					amd-epyc-7313	3.0	16	2	155	0	0
 | 
				
			||||||
 | 
					amd-epyc-7343	3.2	16	2	190	0	0
 | 
				
			||||||
 | 
					amd-epyc-73f3	3.5	16	2	240	0	0
 | 
				
			||||||
 | 
					amd-epyc-7413	2.65	24	2	180	0	0
 | 
				
			||||||
 | 
					amd-epyc-7443	2.85	24	2	200	0	0
 | 
				
			||||||
 | 
					amd-epyc-7453	2.75	28	2	225	0	0
 | 
				
			||||||
 | 
					amd-epyc-74f3	3.2	24	2	240	0	0
 | 
				
			||||||
 | 
					amd-epyc-7513	2.6	32	2	200	0	0
 | 
				
			||||||
 | 
					amd-epyc-7543	2.8	32	2	225	0	0
 | 
				
			||||||
 | 
					amd-epyc-75f3	2.95	32	2	280	0	0
 | 
				
			||||||
 | 
					amd-epyc-7643	2.3	48	2	225	0	0
 | 
				
			||||||
 | 
					amd-epyc-7663	2.0	56	2	240	0	0
 | 
				
			||||||
 | 
					amd-epyc-7713	2.0	64	2	225	0	0
 | 
				
			||||||
 | 
					amd-epyc-7763	2.45	64	2	280	0	0
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		
		
			
  | 
| 
						 | 
					@ -1,3 +1,4 @@
 | 
				
			||||||
 | 
					from pathlib import Path
 | 
				
			||||||
from concho.dell import DellMatinfoCsvConfigurator
 | 
					from concho.dell import DellMatinfoCsvConfigurator
 | 
				
			||||||
from concho.dell import MatinfoConfigurator
 | 
					from concho.dell import MatinfoConfigurator
 | 
				
			||||||
from concho.dell import DellConfiguratorParser2020
 | 
					from concho.dell import DellConfiguratorParser2020
 | 
				
			||||||
| 
						 | 
					@ -5,7 +6,7 @@ from concho.dell import DellConfiguratorParser2021
 | 
				
			||||||
from concho.hpe import HpeConfiguratorParser, HpeCpuChoiceConfiguratorParser
 | 
					from concho.hpe import HpeConfiguratorParser, HpeCpuChoiceConfiguratorParser
 | 
				
			||||||
from concho.procs_chooser import plot_configurators
 | 
					from concho.procs_chooser import plot_configurators
 | 
				
			||||||
from concho.procs_chooser import ConfigPrice
 | 
					from concho.procs_chooser import ConfigPrice
 | 
				
			||||||
from concho.procs_chooser import ConfigFlops
 | 
					# from concho.procs_chooser import ConfigFlops
 | 
				
			||||||
from concho.procs_chooser import ConfigFlopsPerEuro
 | 
					from concho.procs_chooser import ConfigFlopsPerEuro
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -13,9 +14,9 @@ def test_all_matinfo_2020_configs():
 | 
				
			||||||
    # configurator = DellMatinfoConfigurator('rcrc1406676-4834664 - Cat2 Conf4 PowerEdge R640 - Dell.html')
 | 
					    # configurator = DellMatinfoConfigurator('rcrc1406676-4834664 - Cat2 Conf4 PowerEdge R640 - Dell.html')
 | 
				
			||||||
    # print(configurator)
 | 
					    # print(configurator)
 | 
				
			||||||
    configurators = [
 | 
					    configurators = [
 | 
				
			||||||
        DellMatinfoCsvConfigurator('c6420-20200716-price.tsv'),
 | 
					        DellMatinfoCsvConfigurator(Path('c6420-20200716-price.tsv')),
 | 
				
			||||||
        MatinfoConfigurator('rcrc1406676-4834664 - Cat2 Conf4 PowerEdge R640 - Dell.html', DellConfiguratorParser2020()),
 | 
					        MatinfoConfigurator(Path('rcrc1406676-4834664 - Cat2 Conf4 PowerEdge R640 - Dell.html'), DellConfiguratorParser2020()),
 | 
				
			||||||
        MatinfoConfigurator('rcrc1406676-4824727 - Cat 2 Conf 7 PowerEdge R940 - Dell.html', DellConfiguratorParser2020()),
 | 
					        MatinfoConfigurator(Path('rcrc1406676-4824727 - Cat 2 Conf 7 PowerEdge R940 - Dell.html'), DellConfiguratorParser2020()),
 | 
				
			||||||
        # dell.DellPowerEdgeR940(),
 | 
					        # dell.DellPowerEdgeR940(),
 | 
				
			||||||
    ]
 | 
					    ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -26,9 +27,9 @@ def test_credits_2020_configs():
 | 
				
			||||||
    # configurator = DellMatinfoConfigurator('rcrc1406676-4834664 - Cat2 Conf4 PowerEdge R640 - Dell.html')
 | 
					    # configurator = DellMatinfoConfigurator('rcrc1406676-4834664 - Cat2 Conf4 PowerEdge R640 - Dell.html')
 | 
				
			||||||
    # print(configurator)
 | 
					    # print(configurator)
 | 
				
			||||||
    configurators = [
 | 
					    configurators = [
 | 
				
			||||||
        DellMatinfoCsvConfigurator('c6420-20200716-price.tsv'),
 | 
					        DellMatinfoCsvConfigurator(Path('c6420-20200716-price.tsv')),
 | 
				
			||||||
        MatinfoConfigurator('rcrc1406676-4834664 - Cat2 Conf4 PowerEdge R640 - Dell.html', DellConfiguratorParser2020()),
 | 
					        MatinfoConfigurator(Path('rcrc1406676-4834664 - Cat2 Conf4 PowerEdge R640 - Dell.html'), DellConfiguratorParser2020()),
 | 
				
			||||||
        MatinfoConfigurator('rcrc1406676-4824727 - Cat 2 Conf 7 PowerEdge R940 - Dell.html', DellConfiguratorParser2020()),
 | 
					        MatinfoConfigurator(Path('rcrc1406676-4824727 - Cat 2 Conf 7 PowerEdge R940 - Dell.html'), DellConfiguratorParser2020()),
 | 
				
			||||||
        # dell.DellPowerEdgeR940(),
 | 
					        # dell.DellPowerEdgeR940(),
 | 
				
			||||||
    ]
 | 
					    ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -51,9 +52,9 @@ def test_credits_2020_configs():
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def test_credits_2021_configs():
 | 
					def test_credits_2021_configs():
 | 
				
			||||||
    configurators = [
 | 
					    configurators = [
 | 
				
			||||||
        MatinfoConfigurator('20210407 - Cat2 Conf4 PowerEdge R640 - Dell.html', DellConfiguratorParser2021()),
 | 
					        MatinfoConfigurator(Path('20210407 - Cat2 Conf4 PowerEdge R640 - Dell.html'), DellConfiguratorParser2021()),
 | 
				
			||||||
        MatinfoConfigurator('20210407 - Cat2 Conf7 PowerEdge R940 - Dell.html', DellConfiguratorParser2021()),
 | 
					        MatinfoConfigurator(Path('20210407 - Cat2 Conf7 PowerEdge R940 - Dell.html'), DellConfiguratorParser2021()),
 | 
				
			||||||
        MatinfoConfigurator('20210407 - Cat2 Conf8 PowerEdge R7525 - Dell.html', DellConfiguratorParser2021()),
 | 
					        MatinfoConfigurator(Path('20210407 - Cat2 Conf8 PowerEdge R7525 - Dell.html'), DellConfiguratorParser2021()),
 | 
				
			||||||
        # MatinfoConfigurator('20210407 - Cat2 Conf10 PowerEdge R6525 - Dell.html', DellConfiguratorParser2021()),
 | 
					        # MatinfoConfigurator('20210407 - Cat2 Conf10 PowerEdge R6525 - Dell.html', DellConfiguratorParser2021()),
 | 
				
			||||||
    ]
 | 
					    ]
 | 
				
			||||||
    # config_filter = lambda config : config.cpu.uid in [
 | 
					    # config_filter = lambda config : config.cpu.uid in [
 | 
				
			||||||
| 
						 | 
					@ -76,8 +77,9 @@ def test_credits_2021_configs():
 | 
				
			||||||
def test_ur1_presents_2023_configs():
 | 
					def test_ur1_presents_2023_configs():
 | 
				
			||||||
    configurators = [
 | 
					    configurators = [
 | 
				
			||||||
        # MatinfoConfigurator('20210407 - Cat2 Conf4 PowerEdge R640 - Dell.html', DellConfiguratorParser2021()),
 | 
					        # MatinfoConfigurator('20210407 - Cat2 Conf4 PowerEdge R640 - Dell.html', DellConfiguratorParser2021()),
 | 
				
			||||||
        MatinfoConfigurator('20230120-cat2-conf3-hpe-dl360-gen10.html', HpeConfiguratorParser()),
 | 
					        MatinfoConfigurator(Path('20230120-cat2-conf3-hpe-dl360-gen10.html'), HpeConfiguratorParser()),
 | 
				
			||||||
        MatinfoConfigurator('20230123-cat2-conf10-hpe-dl360-gen10plus-cpuchoice.html', HpeCpuChoiceConfiguratorParser()),
 | 
					        MatinfoConfigurator(Path('20230123-cat2-conf10-hpe-dl360-gen10plus-cpuchoice.html'), HpeCpuChoiceConfiguratorParser()),
 | 
				
			||||||
 | 
					        MatinfoConfigurator(Path('20230123-cat2-conf11-hpe-dl385-gen10plus-cpuchoice.html'), HpeCpuChoiceConfiguratorParser()),
 | 
				
			||||||
    ]
 | 
					    ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def config_filter(config):
 | 
					    def config_filter(config):
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue