MPI-powered log analysis system detecting Backdoors, DoS & Reconnaissance attacks across 2.5M+ network records using distributed parallel computing.
→ 8,168 total malicious records — 9.9% of training set.
→ Rank 1 shows 0 detections — rows 20k–41k are entirely Normal/Generic in the dataset's natural ordering. Global totals verified against Python.
→ Communication-bound workload. MPI_Scatter distributes ~125MB (257K lines × 512 bytes) to each process, dominating total parallel time.
→ Computation scales linearly. Local compute drops from 50ms (np=1) to 8.9ms (np=6) — near-perfect computational parallelism.
→ Amdahl's Law in action. Serial bottleneck (file I/O + scatter) limits theoretical max speedup regardless of process count. Optimization path: MPI-IO parallel file reads.
| Processes (np) | T_serial (s) | T_parallel (s) | Speedup | Efficiency | Comm Overhead | Compute Time |
|---|---|---|---|---|---|---|
| 1 | 0.016969 | 0.044402 | 0.38x | 38.2% | 63.8% | 0.016030s |
| 2 | 0.033313 | 0.068503 | 0.49x | 24.3% | 127.0% | 0.015799s |
| 3 | 0.020483 | 0.062837 | 0.33x | 10.9% | 142.7% | 0.015415s |
| 4 | 0.033230 | 0.044674 | 0.74x | 18.6% | 181.4% | 0.013329s |
| 5 | 0.036810 | 0.044293 | 0.83x | 16.6% | 224.4% | 0.005903s |
| 6 | 0.034533 | 0.044630 | 0.77x | 12.9% | 257.8% | 0.002977s |
→ Communication-bound workload: MPI_Scatter dominates (~70% of parallel time) because 82K lines × 512 bytes = ~40MB must be distributed to each process.
→ Computation scales well: Local compute time drops linearly from 16ms (np=1) → 3.0ms (np=6), showing near-perfect computational parallelism.
→ Amdahl's Law in action: The serial fraction (file I/O + scatter) limits theoretical max speedup regardless of process count.
→ Optimization path: Using MPI file I/O (MPI_File_read) instead of rank-0-reads-then-scatters would significantly reduce overhead.
| File | Rows | Size |
|---|---|---|
| UNSW-NB15_1.csv | 700K | 162MB |
| UNSW-NB15_2.csv | 700K | 158MB |
| UNSW-NB15_3.csv | 700K | 148MB |
| UNSW-NB15_4.csv | 440K | 94MB |
| Training set | 82K | 15MB |
| Testing set | 175K | 31MB |


