Skip to content

Commit fb045b2

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

1 file changed

Lines changed: 38 additions & 82 deletions

File tree

README.md

Lines changed: 38 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -1,89 +1,45 @@
1-
<!DOCTYPE html>
2-
<html lang="en">
3-
<head>
4-
<meta charset="UTF-8">
5-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
6-
<title>ASCN Architecture | Trident Pipeline</title>
7-
<style>
8-
body { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; line-height: 1.6; color: #333; max-width: 900px; margin: auto; padding: 20px; background-color: #f4f7f6; }
9-
.header { background: #24292e; color: white; padding: 20px; text-align: center; border-radius: 8px; }
10-
.section { background: white; padding: 20px; margin-top: 20px; border-radius: 8px; box-shadow: 0 2px 5px rgba(0,0,0,0.1); }
11-
h2 { color: #0366d6; border-bottom: 2px solid #eaecef; padding-bottom: 10px; }
12-
table { width: 100%; border-collapse: collapse; margin: 20px 0; }
13-
th, td { border: 1px solid #dfe2e5; padding: 12px; text-align: left; }
14-
th { background-color: #f6f8fa; }
15-
.img-container { text-align: center; margin: 20px 0; }
16-
.img-container img { max-width: 100%; border-radius: 5px; border: 1px solid #ddd; box-shadow: 0 4px 8px rgba(0,0,0,0.2); }
17-
.badge { background: #28a745; color: white; padding: 5px 10px; border-radius: 20px; font-size: 0.8em; }
18-
</style>
19-
</head>
20-
<body>
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.
2110

22-
<div class="header">
23-
<h1>🔱 ASCN: Asynchronous Scalable Computing Node</h1>
24-
<p>Architecting Physics-Based Regression at Scale | GSoC 2026</p>
25-
</div>
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.
2616

27-
<div class="section">
28-
<h2>🚀 Project Overview</h2>
29-
<p>The <strong>ASCN (Asynchronous Scalable Computing Node)</strong> is a critical component of the Trident Pipeline. It leverages a distributed architecture to handle high-intensity <strong>gprMax</strong> simulations without blocking the main CI/CD workflow.</p>
30-
31-
<div class="img-container">
32-
<img src="ascan_logic_flow.png" alt="ASCN Architecture Flow">
33-
<p><em>Figure 1: High-Level ASCN Logic & Task Queue Flow</em></p>
34-
</div>
35-
</div>
3617

37-
<div class="section">
38-
<h2>📊 A-scan Comparison & Validation</h2>
39-
<p>Automation is meaningless without precision. ASCN performs real-time A-scan comparison to ensure that every simulation matches the "Golden Truth" metadata stored in our SQL database.</p>
40-
41-
<div class="img-container">
42-
<img src="ascan_comparison.png" alt="A-scan Comparison Graph">
43-
<p><em>Figure 2: Physics-Based Validation (Simulated vs. Reference Data)</em></p>
44-
</div>
18+
<img width="300" height="300" alt="ascan_comparison" src="https://github.com/user-attachments/assets/a3a55861-d91a-4cd1-9b19-04206214d11f" />
4519

46-
<table>
47-
<thead>
48-
<tr>
49-
<th>Component</th>
50-
<th>Technology Stack</th>
51-
<th>Role in Trident Pipeline</th>
52-
</tr>
53-
</thead>
54-
<tbody>
55-
<tr>
56-
<td>Message Broker</td>
57-
<td><strong>RabbitMQ</strong></td>
58-
<td>Decoupling task submission from execution.</td>
59-
</tr>
60-
<tr>
61-
<td>Task Scheduling</td>
62-
<td><strong>Apache Airflow</strong></td>
63-
<td>Managing complex simulation DAGs.</td>
64-
</tr>
65-
<tr>
66-
<td>State Management</td>
67-
<td><strong>Redis</strong></td>
68-
<td>Real-time tracking of node health & task status.</td>
69-
</tr>
70-
<tr>
71-
<td>Elastic Scaling</td>
72-
<td><strong>Kubernetes HPA</strong></td>
73-
<td>Dynamic scaling from 10x to 100x nodes.</td>
74-
</tr>
75-
</tbody>
76-
</table>
77-
</div>
7820

79-
<div class="section">
80-
<h2>🛠️ Core Technical Logic</h2>
81-
<p>By implementing an asynchronous model, we eliminate system timeouts and resource starvation. The system is designed for <strong>high-throughput</strong> processing of electromagnetic wave models, ensuring 100% reliability for researchers worldwide.</p>
82-
</div>
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.
26+
---
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.
8329

84-
<footer style="text-align: center; margin-top: 40px; font-size: 0.9em; color: #666;">
85-
<p>Developed by <strong>Prateek Sharma</strong> | GSoC '26 Applicant @gprMax</p>
86-
</footer>
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:
8737

88-
</body>
89-
</html>
38+
RABBITMQ_URL: Connection string for the message broker.
39+
40+
REDIS_HOST: Tracking server address.
41+
42+
DB_CONNECTION: Postgres link for regression metadata.
43+
44+
**👨‍💻 Author**
45+
**Prateek Sharma** GSoC '26 Applicant | Cloud-Native Infrastructure Engineer

0 commit comments

Comments
 (0)