Supporting Material for "Benchmarking Modern Scientific Computing Platforms for 2D Potential Flow Solver"
This repository contains the code, data, and visualization outputs for benchmarking Python, Julia, and R implementations of a 2D potential flow solver around dual square obstacles.
.
├── README.md # This file
├── LICENSE.txt # License information
├── code/
│ ├── sim.py # Python implementation
│ ├── sim.jl # Julia implementation
│ ├── sim.R # R implementation
│ ├── matrix_plot.py # Statistical significance matrix visualization
│ ├── violin_plot.py # Performance violin plots
│ ├── performance.py # Performance metrics computation
│ ├── stat_perf.py # Statistical analysis of performance data
│ └── viz.py # Flow visualization
├── outputs/
│ ├── data/ # Performance measurements and analysis
│ │ ├── memory_usage_performance_stats.csv
│ │ ├── execution_time_performance_stats.csv
│ │ ├── memory_usage_comparison_stats.csv
│ │ └── execution_time_comparison_stats.csv
│ └── figs/ # Generated figures
│ ├── memory_significance.png
│ ├── memory_violin.png
│ ├── runtime_significance.png
│ ├── runtime_violin.png
│ ├── convergence.png
│ ├── potential_surface.png
│ └── streamlines_pressure.png
If you use this repository in your research, please cite:
@article{herhoKabanAnwar2024,
author = {Herho, S. H. S. and Kaban, S. N. and Anwar, I. P.},
title = {{Benchmarking Modern Scientific Computing Platforms for 2D Potential Flow Solver}},
journal = {TBD},
year = {2024},
volume = {},
number = {},
pages = {},
doi = {}
}Ensure you have the following dependencies installed:
- Python:
numpy,scipy,pandas,matplotlib - Julia:
LinearAlgebra,DataFrames,CSV - R:
tidyverse
-
Python Implementation
python ./code/sim.py
-
Julia Implementation
julia ./code/sim.jl
-
R Implementation
Rscript ./code/sim.R
Run the performance analysis scripts:
python ./code/performance.py
python ./code/stat_perf.pyGenerate all visualization plots:
python ./code/matrix_plot.py
python ./code/violin_plot.py
python ./code/viz.py- Performance measurement data is saved in
outputs/data/ - Visualization figures are saved in
outputs/figs/
memory_significance.png: Statistical significance matrix for memory usagememory_violin.png: Memory usage violin plotsruntime_significance.png: Statistical significance matrix for runtimeruntime_violin.png: Runtime violin plotsconvergence.png: L2 norm convergence plotpotential_surface.png: Velocity potential surface plotstreamlines_pressure.png: Streamlines and pressure coefficient plot
This repository is licensed under the WTFPL License - see WTFPL for details.