scaffold.system_monitor
This file is strongly informed by the design of WandB’s client published under MIT license
A good overview and explanation of the different logged quantities can be found at: https://lambdalabs.com/blog/weights-and-bias-gpu-cpu-utilization/
Attributes
Classes
Abstract interface that works in conjunction with the system monitor. |
|
Initializes the SystemMonitor using the parent threads PID and a backend_sender that implements the |
Module Contents
- class scaffold.system_monitor.AbstractBackendSender
Abstract interface that works in conjunction with the system monitor. Should be used to configure where the system metrics are being sent to.
- abstractmethod publish(event: StatsDict, **kwargs) None
Implements sending event to the corresponding backend.
- class scaffold.system_monitor.SystemMonitor(pid: int, backend_sender: AbstractBackendSender, sample_rate_seconds: int = 2, rank: int | None = None)
Bases:
objectInitializes the SystemMonitor using the parent threads PID and a backend_sender that implements the logic to send the collectesd stats to the corresponding backend, e.g. CSV, Tensorboard, WandB.
- Parameters:
pid (int) – Process id of the parent process.
backend_sender (AbstractBackendSender) – Class that publishes the stats, e.g. to WandB.
sample_rate_seconds (int) – The rate of sampling system stats in seconds.
rank (int) – Rank of the current process. Only needed in a distributed setting.
- flush() None
Used the backend senders publish method to sent the latest metrics to the configured backend
- shutdown() None
Closes the SystemMonitor’s thread.
- start() None
Starts the the monitor by launching a separate thread.
- gpu_count: int
- network_init: Dict | None
- property proc: psutil.Process
Returns the process corresponding to the parents PID
- sampler: StatsDict
- scaffold.system_monitor.GPUHandle
- scaffold.system_monitor.SamplerDict
- scaffold.system_monitor.StatsDict