py-hardware-monitor

A basic, single-file Python hardware monitor

https://github.com/cirquit/py-hardware-monitor

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (7.8%) to scientific vocabulary
Last synced: 8 months ago · JSON representation ·

Repository

A basic, single-file Python hardware monitor

Basic Info
  • Host: GitHub
  • Owner: cirquit
  • License: mit
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 9.77 KB
Statistics
  • Stars: 0
  • Watchers: 2
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created over 2 years ago · Last pushed over 2 years ago
Metadata Files
Readme License Citation

README.md

Basic Python Hardware Monitor With CUDA Support

Single file implementation of a hardware monitor to be used with tensorboard, wandb, and other logging solutions that want to work with a dictionary. Put it in your codebase and use it however you like.

A very basic hardware monitor based on psutil that enables tracking of:

  • network bandwidth
  • disk read/write bandwidth
  • disk read/write counters
  • context switches
  • average CPU load (1,5,15 min)
  • memory utilization
  • process memory (resident, virtual, lib, etc.)

If a GPU is available, over pynvml:

  • framebuffer memory
  • bar1 memory
  • gpu/memory "utilization"
  • temperature
  • power
  • throttle reasons

If a GPU is available, and torch:

  • all of the stats in torch.cuda.memory_stats()
  • average (small, large, all) segment size
  • average block size
  • average inactive block size
  • allocation rounding overhead
  • memory fragmentation

TODO

  • An example application with torch
  • Write some tests
  • Better decapsulation between psutil, pynvml and torch

Reference

If you found this useful and want to cite the work, please use the following bibtex:

@software{Isenko_Basic_Hardware_Monitor_2023, author = {Isenko, Alexander}, license = {MIT}, month = sep, title = {{Basic Hardware Monitor}}, url = {https://github.com/cirquit/py-hardware-monitor}, version = {0.1}, year = {2023} }

Owner

  • Login: cirquit
  • Kind: user
  • Location: Germany

PhD student in distributed computing and machine learning. Interested in C++, Haskell, Qt, UX and ML.

Citation (CITATION.cff)

# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!

cff-version: 1.2.0
title: Basic Hardware Monitor
message: >-
  If this helped you and you want to cite, please use this
  template
type: software
authors:
  - given-names: Alexander
    family-names: Isenko
    email: alex.isenko@tum.de
    affiliation: Technical University of Munich
    orcid: 'https://orcid.org/0000-0002-0153-7251'
repository-code: 'https://github.com/cirquit/py-hardware-monitor'
abstract: A basic Python hardware monitor in a single file.
keywords:
  - monitoring
  - nvidia-smi
  - memory
  - CUDA
  - Python
license: MIT
version: '0.1'
date-released: '2023-09-23'

GitHub Events

Total
Last Year

Dependencies

requirements.txt pypi
  • psutil *
  • pynvml *
  • torch >=2.0.0