cocluto v1.03:
- added Inventory methods related to gpus - added a missing dependency (mysqlclient); nb this change dates back from a few months. work related to [https://bugzilla.ipr.univ-rennes.fr/show_bug.cgi?id=3945]
This commit is contained in:
parent
9f4a80b11e
commit
e86197c083
|
@ -1,4 +1,5 @@
|
||||||
# encoding: utf-8
|
# encoding: utf-8
|
||||||
|
from typing import List
|
||||||
import datetime
|
import datetime
|
||||||
# from Lib import SimpaDbUtil
|
# from Lib import SimpaDbUtil
|
||||||
from . import SimpaDbUtil
|
from . import SimpaDbUtil
|
||||||
|
@ -147,7 +148,7 @@ class Inventory(object):
|
||||||
slot_index = self._sql_reader.get_table_attr('rackable_machine_to_location', 'machine_id', machine_id, 'slot_index')
|
slot_index = self._sql_reader.get_table_attr('rackable_machine_to_location', 'machine_id', machine_id, 'slot_index')
|
||||||
return rack_id, slot_index
|
return rack_id, slot_index
|
||||||
|
|
||||||
def get_cpu_dflops(self, cpu_model):
|
def get_cpu_dflops(self, cpu_model) -> float:
|
||||||
'''
|
'''
|
||||||
returns the number of double precision operation per second this cpu can achieve
|
returns the number of double precision operation per second this cpu can achieve
|
||||||
'''
|
'''
|
||||||
|
@ -159,9 +160,29 @@ class Inventory(object):
|
||||||
# print(num_cores, clock_speed, dflops_per_core_per_cycle)
|
# print(num_cores, clock_speed, dflops_per_core_per_cycle)
|
||||||
return clock_speed * dflops_per_core_per_cycle * num_cores
|
return clock_speed * dflops_per_core_per_cycle * num_cores
|
||||||
|
|
||||||
|
def get_gpu_ram(self, gpu_id: str) -> float:
|
||||||
|
mib_to_bytes = 1024 * 1024
|
||||||
|
gpu_model_id = self.machine_name_to_machine_spec_id(gpu_id)
|
||||||
|
ram_size = int(self._sql_reader.get_table_attr('gpu_specs', 'gpu_model_id', gpu_model_id, 'ram_mib')) * mib_to_bytes
|
||||||
|
return ram_size
|
||||||
|
|
||||||
|
def get_gpu_dflops(self, gpu_id: str) -> float:
|
||||||
|
gpu_model_id = self.machine_name_to_machine_spec_id(gpu_id)
|
||||||
|
dflops = int(self._sql_reader.get_table_attr('gpu_specs', 'gpu_model_id', gpu_model_id, 'peak_dgflops'))
|
||||||
|
return dflops
|
||||||
|
|
||||||
def get_num_cpus(self, computer_name):
|
def get_num_cpus(self, computer_name):
|
||||||
return int(self._sql_reader.get_table_attr('computer_to_cpu', 'computer_id', computer_name, 'num_cpu'))
|
return int(self._sql_reader.get_table_attr('computer_to_cpu', 'computer_id', computer_name, 'num_cpu'))
|
||||||
|
|
||||||
|
def get_gpus(self, computer_id: str) -> List[str]:
|
||||||
|
'''returns the gpu_ids of the gpus installed in the given computer'''
|
||||||
|
gpu_ids = []
|
||||||
|
rows = self._sql_reader.query("SELECT gpu_id FROM gpu_to_computer WHERE computer_id='%s'" % computer_id)
|
||||||
|
for row in rows:
|
||||||
|
gpu_id = row[0]
|
||||||
|
gpu_ids.append(gpu_id)
|
||||||
|
return gpu_ids
|
||||||
|
|
||||||
def get_num_cores(self, computer_name):
|
def get_num_cores(self, computer_name):
|
||||||
num_cpus = int(self._sql_reader.get_table_attr('computer_to_cpu', 'computer_id', computer_name, 'num_cpu'))
|
num_cpus = int(self._sql_reader.get_table_attr('computer_to_cpu', 'computer_id', computer_name, 'num_cpu'))
|
||||||
cpu_model = self._sql_reader.get_table_attr('computer_to_cpu', 'computer_id', computer_name, 'cpu_model')
|
cpu_model = self._sql_reader.get_table_attr('computer_to_cpu', 'computer_id', computer_name, 'cpu_model')
|
||||||
|
|
4
setup.py
4
setup.py
|
@ -2,12 +2,12 @@ from setuptools import setup
|
||||||
|
|
||||||
setup(
|
setup(
|
||||||
name='cocluto',
|
name='cocluto',
|
||||||
version=1.02,
|
version=1.03,
|
||||||
description='compute cluster utility tools',
|
description='compute cluster utility tools',
|
||||||
url='https://git.ipr.univ-rennes1.fr/graffy/cocluto',
|
url='https://git.ipr.univ-rennes1.fr/graffy/cocluto',
|
||||||
author='Guillaume Raffy',
|
author='Guillaume Raffy',
|
||||||
author_email='guillaume.raffy@univ-rennes1.fr',
|
author_email='guillaume.raffy@univ-rennes1.fr',
|
||||||
license='MIT',
|
license='MIT',
|
||||||
packages=['cocluto'],
|
packages=['cocluto'],
|
||||||
install_requires=['pygraphviz'], # requires apt install graphviz-dev
|
install_requires=['pygraphviz', 'mysqlclient'], # requires apt install graphviz-dev
|
||||||
zip_safe=False)
|
zip_safe=False)
|
||||||
|
|
Loading…
Reference in New Issue