Commit 1962797f authored by cirou's avatar cirou
Browse files

knowing validate in flops.py no more rely on telemetry initialization

parent ef1a052f
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -95,9 +95,9 @@ else:
        power_manager = PowerManager(compute_node_power_uncertainties, **config)
    else:
        power_manager = PowerManager(compute_node_power, **config)

flops_manager = FLOPSManager(**config)
args_dict['config'] = config
flops_manager = FLOPSManager(**args_dict)

sc = Scheduler(
    power_manager = power_manager, flops_manager = flops_manager,
    cooling_model = cooling_model,
+4 −5
Original line number Diff line number Diff line
import numpy as np
from .utils import linear_to_3d_index
import raps.telemetry as telemetry

class FLOPSManager():

    def __init__(self, **config):
        self.config = config
    def __init__(self, **kwargs):
        self.config = kwargs.get('config')
        self.validate = kwargs.get('validate')
        self.flop_state = np.zeros(self.config['SC_SHAPE'])

    def update_flop_state(self, scheduled_nodes, cpu_util, gpu_util):
        node_indices = linear_to_3d_index(scheduled_nodes, self.config['SC_SHAPE'])
        validate = telemetry.telemetry_args.get('validate')
        if validate:   # cpu_util is in fact node_Watts in this case
        if self.validate:   # cpu_util is in fact node_Watts in this case
            self.flop_state[node_indices] = \
                (self.config['CPU_FP_RATIO']*self.config['CPU_PEAK_FLOPS'] + self.config['GPU_FP_RATIO'] * self.config['GPU_PEAK_FLOPS']) * (cpu_util / (self.config['POWER_CPU_MAX']*self.config['CPUS_PER_NODE'] + self.config['POWER_GPU_MAX']*self.config['GPUS_PER_NODE']+ self.config['POWER_NIC']*self.config['NICS_PER_NODE']+self.config['POWER_NVME']))
        else:   
+0 −2
Original line number Diff line number Diff line
@@ -38,8 +38,6 @@ class Telemetry:

    def __init__(self, **kwargs):
        self.kwargs = kwargs
        global telemetry_args
        telemetry_args= kwargs
        self.system = kwargs.get('system')
        self.config = kwargs.get('config')
        self.dataloader = importlib.import_module(f".dataloaders.{self.system}", package = __package__)