Welcome to Mini HPC Manager! 🎉
Mini HPC Manager is a simple tool designed to manage and execute jobs in HPC (High Performance Computing) and Cloud environments using Go and Docker. It provides a CLI for adding, listing, and running jobs with Docker containers.
- Job Scheduling: Add jobs to a queue and specify their Docker images and commands.
- Database Integration: Stores job details and status using SQLite.
- Docker Integration: Handles job execution via Docker containers.
- Status Tracking: Updates and tracks job status (Pending, Running, Complete, Failed).
- Log Collection: Captures and stores job logs for review.
- Clone the Repository:
git clone https://github.com/yourusername/mini-hpc-manager.git
cd mini-hpc-manager
- Install Dependencies:
Make sure you have Go installed, and then install the required dependencies:
go mod download
- Build the Project:
go build -o mini-hpc
- Add a Job:
./mini-hpc add <docker-image> <command>
- List Jobs:
./mini-hpc list
- Run a Job:
./mini-hpc run <job-id>
+---------------------+ +----------------------+
| | | |
| CLI Commands | | Scheduler |
| (add, list, run) | | |
| | | |
+----------+----------+ +----------+-----------+
| |
| |
v v
+----------+----------+ +----------+-----------+
| | | |
| SQLite Database | | Docker Engine |
| | | |
+---------------------+ +----------------------+
^
|
|
v
+----------+----------+
| |
| Job Data Model |
| |
+---------------------+
- CLI Commands: The command-line interface allows you to add, list, and run jobs.
- Scheduler: Manages job scheduling, execution, and status updates.
- SQLite Database: Stores job details and status.
- Docker Engine: Executes the jobs in Docker containers.
- Job Data Model: Represents the job structure used by both the scheduler and database.
- Release v1.0.0
- Job Priority: Implement job prioritization for more advanced scheduling.
- Job Dependencies: Support job dependencies and chained execution.
- User Authentication: Add authentication for user management.
- Web Interface: Build a web-based UI for easier job management.
- Enhanced Logging: Improve log handling and storage.
This project is licensed under the MIT License. See the LICENSE file for details.