Benchmark

Disclaimer

Julia often delivers substantial performance gains over Python for numerical and scientific code because it is JIT‑compiled, type‑stable, and generates native LLVM code, so well‑written Julia can approach C/Fortran speeds. However, that speed comes with trade‑offs: just‑in‑time compilation (and package precompilation) introduces startup latency, and Julia’s compilation artifacts and runtime can consume more memory than lightweight Python interpreters. In practice, Julia is most advantageous for long‑running, compute‑intensive workflows; for short scripts or very memory‑constrained environments you should weigh the startup and memory overheads or use precompilation strategies to mitigate them.

Benchmark Setup

All files used in the benchmark can be found in the GitHub repo under the benchmarks/ directory. All benchmarks were run using an AMD Ryzen 9 3950X 16-Core Processor with 64 GB of RAM running Fedora 43.

Benchmark Results

YetAnotherSimulationSuite.jl (YASS) was benchmarked against Atomistic Simulation Environment (ASE) for geometry optimization, harmonic frequency calculations, and molecular dynamics simulations. For both packages, a simple Lennard-Jones potential for gold atoms was used. The results are shown below.

In all cases, YASS outperforms ASE once the computational workload is sufficiently large to overcome YASS's initial compilation overhead. The speedups observed can still increase further for longer-running simulations.

Geometry Optimization

Geometry optimizations using the LBFGS algorithm were performed on gold clusters containing 100, 500, 1000, and 5000 atoms. The results are shown in the table below.

Number of AtomsIterationsYASS Time (s)ASE Time (s)YASS Speedup
100150011.88.40.71x
500150029.664.02.16x
10001500108.7218.82.01x

Harmonic Frequencies

Harmonic frequency calculations were performed on gold clusters containing 100, 500, and 1000 atoms. The results are shown in the table below.

Number of AtomsYASS Time (s)ASE Time (s)YASS Speedup
10011.23.30.29x
50022.789.83.95x
100087.1490.85.63x

Molecular Dynamics

Molecular dynamics simulations were performed on gold clusters containing 100, 500, and 1000 atoms for 1000, 2000 and 5000 time steps. The results are shown in the table below.

Number of AtomsTime StepsYASS Time (s)ASE Time (s)YASS Speedup
100100015.84.80.30x
100200016.19.30.58x
100500016.622.41.35x
500100021.932.31.47x
500200027.765.92.38x
500500044.2160.73.63x
1000100035.679.42.23x
1000200055.9165.32.95x
10005000112.5406.13.61x
100015000315.31332.84.22x