def utilisation(self): if self._utilisation is not None: return self._utilisation self._utilisation = compute_load(self.df, col_begin='starting_time', col_end='finish_time', col_cumsum='proc_alloc') return self._utilisation
def queue(self): ''' Calculate cluster queue size over time in number of procs. :returns: a time indexed serie that contain the number of used processors ''' # Do not re-compute everytime if self._queue is not None: return self._queue proc = "requested_number_of_processors" self._queue = compute_load(self.df, 'submission_time', 'starting_time', proc) return self._queue
def queue(self): ''' Calculate cluster queue size over time in number of procs. :returns: a time indexed serie that contain the number of used processors ''' # Do not re-compute everytime if self._queue is not None: return self._queue proc = "requested_number_of_resources" self._queue = compute_load(self.df, 'submission_time', 'starting_time', proc) return self._queue
def utilisation(self): ''' Calculate cluster utilisation over time: nb procs used / nb procs available :returns: a time indexed serie that contain the number of used processors It is based on real time TODO: Add ID list of jobs running and ID list of jobs in queue to the returned dataframe ''' # Do not re-compute everytime if self._utilisation is not None: return self._utilisation self._utilisation = compute_load(self.df, 'starting_time', 'finish_time', 'proc_alloc', self.UnixStartTime) return self._utilisation
def queue(self): ''' Calculate cluster queue size over time in number of procs. :returns: a time indexed serie that contain the number of used processors It is based on real time if UnixStartTime is defined ''' # Do not re-compute everytime if self._queue is not None: return self._queue # sometimes "proc_req" is not provided if (self.df.proc_req == -1).any(): proc = "proc_alloc" else: proc = "proc_req" self._queue = compute_load(self.df, 'submission_time', 'starting_time', proc, self.UnixStartTime) return self._queue