Skip to content

pratiktech28/gprmax_Containerized

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

44 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

gprMax CI/CD Trident Pipeline

logo_gprMax download download download download download

πŸ›οΈ gprMax CI/CD & HPC Automation Infrastructure πŸš€

Architecting robust, production-ready microservices ecosystems through advanced Docker containerization and enterprise-grade Kubernetes (K8s) orchestration. Expert in designing high-availability Pod architectures, managing multi-node cluster lifecycles, and implementing declarative deployments via Helm charts. Leveraging industry-standard CI/CD pipelines to automate the scaling of gprMax simulation workloads, ensuring seamless resource allocation, efficient node management, and maintaining zero-downtime infrastructure for high-performance computational physics environments at a global scale.
Google Summer of Code (GSoC) 2026 Strategy & Implementation

Docker GitHub Actions Python OpenMP Mysql


πŸ“– Overview

This project aims to revolutionize the development workflow of gprMax by implementing a Containerized CI/CD Pipeline (The Trident Pipeline). By leveraging Docker and GitHub Actions, we ensure that every physics simulation is automatically validated across isolated environments, preventing regression errors and streamlining the contribution process for researchers worldwide.


πŸ—οΈ System Architecture & Dependencies

The infrastructure is built on a "Layered Security & Performance" model:

1. High-Performance Docker Core

  • Base: python:3.11-slim for a lightweight yet powerful footprint.
  • Compiler Stack: build-essential, gcc, and g++ for compiling gprMax source code.
  • Parallelization: libgomp1 (OpenMP) integrated to allow multi-threaded simulation execution.
  • Optimization: Automatic Cython compilation during build time to convert Python bottlenecks into C-level speed.

2. Automated CI/CD Pipeline (GitHub Actions)

  • Trigger: Every push or pull_request initiates a full system audit.
  • Validation: The pipeline builds the environment from scratch, ensuring "Zero-Configuration" for new contributors.
  • Database Integration: Uses an automated Python-SQLite bridge to log NRMSE values and execution metrics.

πŸš€ Database & Automation Setup
To ensure data persistence for physics simulations (gprMax), the project uses a Dockerized MySQL instance. This allows for automated logging of NRMSE values and simulation status. Simulation Logs Schema We track each simulation run with high precision to monitor convergence and physics accuracy.

image

Resilient Infrastructure & Orchestration

The project is designed to handle high-performance GPR simulations that can be resource-intensive. To ensure zero downtime and handle potential container failures, we leverage orchestration principles.
Self-Healing & Auto-Scaling (The K8s Strategy) Self-Healing: If a Docker container crashes due to a resource-intensive simulation (OOM or Segfault), the ReplicaSet immediately detects the failure and spins up a healthy pod to maintain the desired state.
Dynamic Scaling: To optimize the "100 Parallel Pads" Roadmap, the system can use a Horizontal Pod Autoscaler (HPA). When the CPU/Memory load increases during massive physics computations, it can automatically scale the cluster from 10 replicas to 100 replicas in real-time.
image


Infrastructure & Scalability
πŸš€ Automated Milestone Tracking
The project integrates a Dockerized MySQL backend to maintain a persistent and transparent record of the development lifecycle. Unlike static documentation, this live database ensures that every stage of the "100 Parallel Pads" implementation is tracked with precision.
Data Persistence: Using a dedicated container ensures that roadmap data and simulation results remain intact, even across system reboots.
Operational Transparency: By querying the gsoc_roadmap table, mentors can verify real-time progress against the proposed timeline.
Structured Planning: Each task is categorized by week and status, providing a clear path from the initial infrastructure setup to final cloud deployment.
image


Physics Validation & High-Performance Scaling
A core focus of this gprMax project is maintaining physics integrity while scaling computational resources. To achieve this, the system is designed to handle massive parallelization across multiple environments.
Automated NRMSE Logging: Every simulation run automatically pushes its NRMSE (Normalized Root Mean Square Error) value to the database. This allows for immediate detection of physics deviations during kernel optimization.
Self-Healing Clusters: By leveraging Kubernetes orchestration principles, the infrastructure is built to be fault-tolerant. If a simulation pod crashes under heavy load, the system automatically respawns it to maintain the desired state.
Elastic Cloud Scaling: The architecture supports dynamic scaling from 10 to 100 replicas on cloud platforms like GCP or AWS. This ensures that the "100 Parallel Pads" roadmap can be executed smoothly without resource stalling or local hardware limitations.

image

πŸ› οΈ Tech Stack & Requirements

Category Technology Used Purpose
Simulation Engine gprMax (Latest) Electromagnetic wave simulation.
Virtualization Docker Environment consistency and isolation.
Acceleration OpenMP / Cython Parallel processing and code optimization.
Data Logging Mysql Persistent storage for simulation metadata.
Automation GitHub Actions Continuous Integration and automated testing.

πŸš€ Getting Started (For Mentors & Contributors)

To replicate this environment or test the simulations locally, follow these commands:

1. Clone the Repository

git clone [https://github.com/pratiktech28/gprmax_Containerized.git](https://github.com/pratiktech28/gprmax_Containerized.git)
cd gprmax_Containerized
**2. Build the HPC Docker Image**
This command compiles the gprMax engine with OpenMP support:

```Bash
docker build -t gprmax-automation -f Dockerfile .
**3. Run the Automated Pipeline**
Execute the simulation and log results directly to the database:

```Bash
# Create results directory for database persistence
mkdir -p results

# Run the container with volume mapping
docker run -v $(pwd)/results:/app/results gprmax-automation
**4. Verify Database Logs**
You can inspect the simulation history using SQLite:

```Bash
sqlite3 results/simulation.db "SELECT * FROM simulation_logs;"
πŸ“Š Performance Benchmarks
Multithreading: Enabled via OMP_NUM_THREADS.

Accuracy Tracking: Automated NRMSE calculation integrated into the validation script.

Scalability: Designed to handle 100+ concurrent simulation configurations via relational mapping.
---

About

Automating microservices deployment using Docker containers and Kubernetes orchestration. Specialized in designing scalable Pod architectures, managing multi-node clusters, and implementing Helm charts for streamlined gprMax simulation environments.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors