Skip to content

πŸš€ View NVIDIA-SMI from multiple nodes at once

Notifications You must be signed in to change notification settings

scottsuk0306/gpu-board

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

5 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ–₯️ GPU Monitor Board

License: MIT Python Version FastAPI

πŸ“‹ Description

GPU Monitor Board is a cutting-edge web application that provides real-time monitoring of NVIDIA GPUs across multiple servers. With its intuitive interface, you can effortlessly track GPU utilization, memory usage, temperature, and user information for each GPU on connected servers.

✨ Features

  • πŸ”„ Real-time monitoring of multiple servers
  • πŸ“Š Comprehensive GPU information display:
    • GPU index and name
    • Temperature
    • Utilization percentage
    • Memory usage and total memory
    • Current user (if available)
  • 🎨 Color-coded utilization for quick status identification
  • ⏱️ Automatic updates every 60 seconds
  • πŸ“‘ Tabbed interface for seamless navigation between servers

πŸ› οΈ Prerequisites

  • Python 3.9+
  • FastAPI
  • Uvicorn
  • Paramiko
  • NVIDIA GPU drivers installed on monitored servers

πŸš€ Installation

  1. Clone the repository:

    git clone https://github.com/scottsuk0306/gpu-board.git
    cd gpu-board
  2. Install the required Python packages:

    pip install fastapi uvicorn paramiko
  3. Create a config.json file based on the provided template:

    cp config.json.example config.json

    Edit config.json with your server details.

βš™οΈ Configuration

Edit the config.json file to include your server details:

{
  "servers": [
    {"hostname": "server1.example.com", "username": "user1", "password": "pass1", "port": 22},
    {"hostname": "server2.example.com", "username": "user2", "port": 22, "key_filename": "path/to/key.pem"}
  ]
}

πŸ–±οΈ Usage

  1. Start the server:

    uvicorn app:app --host 0.0.0.0 --port 8000
  2. Open a web browser and navigate to http://localhost:8000

πŸ”’ Security Notes

  • Ensure that config.json is not exposed to public access.
  • For production use, consider using environment variables or a secure secrets management system for sensitive information.
  • Ensure that the SSH keys have appropriate permissions (typically 600).

🀝 Contributing

Contributions to the GPU Monitor Board project are welcome! Please feel free to submit pull requests or create issues for bugs and feature requests.

πŸ“„ License

This project is licensed under the MIT License. See the LICENSE file for details.

πŸ™ Acknowledgements

πŸ“ž Support

If you encounter any issues or have questions, please open an issue on our GitHub repository.

πŸš€ Roadmap

  • Support installation through pip
  • Dockerize

About

πŸš€ View NVIDIA-SMI from multiple nodes at once

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published