@@ -59,19 +59,23 @@ def __init__(self, observable=None, use_continuous_observer=False, continuous_du
5959 else :
6060 # User specifices a string (single platform) as observable
6161 observable = {observable : None }
62+
6263 supported = ["powersensor2" , "powersensor3" , "nvidia" , "likwid" , "rapl" , "rocm" , "xilinx" ]
6364 for obs in observable .keys ():
6465 if not obs in supported :
6566 raise ValueError (f"Observable { obs } not in supported: { supported } " )
66-
67- self .pms = [pmt .create (obs [0 ], obs [1 ]) for obs in observable .items ()]
68- self .pm_names = list (observable .keys ())
69-
70- self .begin_states = [None ] * len (self .pms )
67+
68+ self .observable = observable
69+ self .use_continuous_observer = use_continuous_observer
70+ self .continuous_duration = continuous_duration
71+
72+ def register_device (self , dev ):
73+ self .pm_names = list (self .observable .keys ())
74+ self .pms = [pmt .create (obs [0 ], obs [1 ]) for obs in self .observable .items ()]
7175 self .initialize_results (self .pm_names )
7276
73- if use_continuous_observer :
74- self .continuous_observer = PMTContinuousObserver ("pmt" , [], self , continuous_duration = continuous_duration )
77+ if self . use_continuous_observer :
78+ self .continuous_observer = PMTContinuousObserver ("pmt" , [], self , continuous_duration = self . continuous_duration )
7579
7680 def initialize_results (self , pm_names ):
7781 self .results = dict ()
@@ -86,6 +90,7 @@ def after_start(self):
8690
8791 def after_finish (self ):
8892 end_states = [pm .read () for pm in self .pms ]
93+
8994 for i in range (len (self .pms )):
9095 begin_state = self .begin_states [i ]
9196 end_state = end_states [i ]
0 commit comments