Skip to content

Commit ef4fe6c

Browse files
authored
Update README.md
1 parent fb045b2 commit ef4fe6c

1 file changed

Lines changed: 36 additions & 34 deletions

File tree

README.md

Lines changed: 36 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,47 @@
1-
[![A-scan Validation CI](https://github.com/pratiktech28/gprmax_Ascan/actions/workflows/main.yml/badge.svg)](https://github.com/pratiktech28/gprmax_Ascan/actions/workflows/main.yml)
2-
![download](https://github.com/user-attachments/assets/e4cb7568-886e-4caf-a1a7-79e89849cfd0)
3-
![download](https://github.com/user-attachments/assets/671e69ad-19c1-4e87-95a1-345359280c7f)
4-
**⚡ ASCN: Asynchronous Scalable Computing Node for gprMax**
5-
**🎯 Overview**
6-
ASCN is the core execution engine of the Trident Pipeline. It handles heavy-duty gprMax physics simulations asynchronously, ensuring high availability and fault-tolerant processing. By decoupling task submission from execution, ASCN allows the system to scale horizontally across distributed cloud nodes._
7-
---
8-
**🏗️ Technical Architecture**
9-
The ASCN node operates as a high-performance worker that consumes simulation tasks from a distributed message broker.
1+
# 🔱 ASCN: Asynchronous Scalable Computing Node
102

11-
**🔌 Key Components:**
12-
Task Broker (RabbitMQ): Orchestrates asynchronous message passing between the CI/CD pipeline and the worker nodes.
13-
In-Memory Cache (Redis): Manages transient task states, ensuring real-time monitoring of simulation progress.
14-
Data Persistence (PostgreSQL): Stores detailed metadata and regression results for long-term analysis.
15-
Workflow Engine (Airflow): Schedules and monitors the end-to-end simulation DAGs.
3+
<div align="center">
4+
<img src="https://img.shields.io/badge/GSoC-2026-orange?style=for-the-badge&logo=google" />
5+
<img src="https://img.shields.io/badge/RabbitMQ-FF6600?style=for-the-badge&logo=rabbitmq&logoColor=white" />
6+
<img src="https://img.shields.io/badge/Kubernetes-326ce5?style=for-the-badge&logo=kubernetes&logoColor=white" />
7+
</div>
168

9+
---
1710

18-
<img width="300" height="300" alt="ascan_comparison" src="https://github.com/user-attachments/assets/a3a55861-d91a-4cd1-9b19-04206214d11f" />
11+
## 🚀 Project Overview
12+
The **ASCN (Asynchronous Scalable Computing Node)** is the core engine of the Trident Pipeline. It leverages a distributed architecture to handle high-intensity **gprMax** simulations asynchronously.
1913

14+
### 🏗️ Technical Architecture flow
15+
<div align="center">
16+
<img src="image_5ab864.png" width="800px" alt="ASCN Logic Flow">
17+
<p><i>Figure 1: High-Level ASCN Logic & Task Queue Flow</i></p>
18+
</div>
2019

21-
**🛠️ The "Asynchronous" Logic**
22-
Producer: The Trident CI pipeline (GitHub Actions) pushes a simulation job into the Simulation_Queue.
23-
Consumer (ASCN Worker): Multiple Dockerized workers listen to the queue.
24-
Execution: An available worker pulls the job, runs the gprMax solver in an isolated container, and streams logs.
25-
Validation: Results are pushed to the validation engine, and the task status is updated in Redis/Postgres.
2620
---
27-
📈 Scalability (10x to 100x)
28-
ASCN is designed for Elastic Scaling. Using Kubernetes HPA, the number of ASCN worker nodes automatically increases based on the number of pending messages in RabbitMQ, allowing for massive parallelization of electromagnetic wave simulations.
2921

30-
**🚀 Deployment**
31-
Local Development (Docker)
32-
Bash
33-
# Build and run the ASCN worker environment
34-
docker-compose up --build
35-
Environment Variables
36-
Ensure you have the following configured:
22+
## 📊 A-scan Comparison & Validation
23+
Automation is meaningless without precision. ASCN performs real-time A-scan comparison to ensure every simulation matches the **"Golden Truth"** metadata.
24+
25+
<div align="center">
26+
<img src="ascan_comparison.png" width="700px" alt="A-scan Comparison Graph">
27+
<p><i>Figure 2: Physics-Based Validation (Simulated vs. Reference Data)</i></p>
28+
</div>
3729

38-
RABBITMQ_URL: Connection string for the message broker.
30+
---
31+
32+
## 🛠️ Tech Stack & Role
33+
| Component | Technology | Role in Trident Pipeline |
34+
| :--- | :--- | :--- |
35+
| **Message Broker** | `RabbitMQ` | Decoupling task submission from execution. |
36+
| **State Management** | `Redis` | Real-time tracking of node health & task status. |
37+
| **Task Scheduling** | `Airflow` | Managing complex simulation DAGs. |
38+
| **Elastic Scaling** | `K8s HPA` | Dynamic scaling from 10x to 100x nodes. |
3939

40-
REDIS_HOST: Tracking server address.
40+
---
4141

42-
DB_CONNECTION: Postgres link for regression metadata.
42+
## ⚡ Core Technical Logic
43+
By implementing an **Asynchronous Model**, we eliminate system timeouts and resource starvation. The system is designed for **high-throughput** processing, ensuring 100% reliability for researchers worldwide.
4344

44-
**👨‍💻 Author**
45-
**Prateek Sharma** GSoC '26 Applicant | Cloud-Native Infrastructure Engineer
45+
<p align="center">
46+
<b>Developed by Prateek Sharma | GSoC '26 Applicant @gprMax</b>
47+
</p>

0 commit comments

Comments
 (0)