REVIEW 3 major objections 4 minor 20 references
Massively parallel numerical simulations with Julia
T0 review · 3 major / 4 minor · reviewed 2026-08-01 · deepseek-v4-flash
Pith's one-line read Julia, a high-level dynamic language, can run a production CFD solver on 61,440 CPU cores with close-to-ideal scaling.
desk verdict A useful and honest Julia scaling study that oversells its headline efficiency: the superlinear cache baseline inflates the 0.83 number, but the paper itself discloses the issue. read the letter →
The pith
A machine-rendered reading of the paper's core claim, the machinery that carries it, and where it could break.
The reading
What carries the argument
The load-bearing mechanism is Trixi.jl's MPI communication strategy: one non-blocking message exchange between neighbors per right-hand-side evaluation, overlapped with local computation, at the cost of recomputing some fluxes (whereas the Fortran code FLUXO uses a 'ping-pong' exchange that computes each flux once but needs two messages). The second piece of machinery is a custom system image built with Julia's package compiler, which precompiles all methods for a given simulation into a single large file; this removes both the startup compilation latency and the many-small-files I/O bottleneck that otherwise appears at thousands of MPI processes.
What would settle it
Re-run the Taylor-Green strong-scaling test with a cache-corrected baseline—e.g., using the weak-scaling efficiency curve or padding the per-rank working set so the single-node run is not cache-thrashing—and compare marginal efficiency per doubling of ranks. If the 61,440-core efficiency drops below about 0.5 against that baseline, the headline scaling result is an artifact of the cache-effect speedup rather than true HPC scaling.
Extended reading notes
Core claim
Julia's standard MPI library is sufficient for large parallel simulations. On the Taylor-Green vortex, Trixi.jl reaches 61,440 MPI ranks on 480 nodes with a parallel efficiency of 0.83 relative to a single-node run, and it outperforms FLUXO in raw throughput while showing slightly weaker scaling at extreme rank counts. A superlinear speedup, with efficiency peaking at 1.92 for 16,384 ranks, is attributed to cache effects; the marginal efficiency beyond that point is about 0.65 per doubling. The adaptive time-step calculation—a global MPI allreduce—becomes a bottleneck around 18,432 ranks, overtaking the right-hand-side computation. With a fixed time step, the code shows near-ideal scaling to
Load-bearing premise
The claim of 0.83 parallel efficiency at 61,440 cores rests on using the single-node run as the baseline, even though the reported superlinear speedup indicates the single-node baseline is partly a cache-thrashing artifact; a cache-corrected baseline would lower the headline efficiency.
Editorial extensions
If this is right
- Julia can be a drop-in language for large MPI simulations in scientific domains, at least for explicit high-order DG methods.
- Problem size per rank controls scaling: with 8x more elements per rank, Trixi.jl scales to 61,440 ranks with about 83% efficiency; with small problems it flattens near 16k-18k ranks.
- The global time-step reduction is a measurable, localizable bottleneck—at around 18,432 ranks it costs more than the RHS itself—so replacing that single allreduce is a concrete optimization target.
- Startup code loading at scale can be neutralized with custom system images, removing a barrier that had made Julia's first-run behavior incompatible with short HPC jobs.
- Trixi.jl's throughput advantage over FLUXO at moderate rank counts comes with a communication strategy that duplicates some flux computations; at very high rank counts this trade-off starts to hurt.
Reading between the lines
- If the cache-effect explanation is right, then the reported 0.83 efficiency at 61,440 cores is optimistic: against a baseline that removes cache-thrash gains on small rank counts, the true efficiency would be lower and the headline would change. A simple test would be to measure with per-rank working sets that stay within cache at the baseline.
- The system-image fix points to a wider lesson: Julia's JIT startup cost is not an obstacle once deployment artifacts are precompiled per machine—this could translate into HPC-friendly container images or job templates.
- The same scaling methodology could be applied to other Julia solvers with different communication patterns; a natural extension is to study whether implicit time integrators or AMR-heavy workloads show the same scaling limits.
- Since the bottleneck is one global allreduce per step, replacing it with hierarchical or asynchronous reduction is an immediately testable change that should push the scaling plateau well beyond 18k ranks if communication is the issue.
Editorial analysis
A structured set of objections, weighed in public.
Referee Report
Summary. The paper reports a strong-scaling study of the Julia-based DGSEM code Trixi.jl against the Fortran code FLUXO on three CPU clusters (JURECA, JUWELS Booster, MOGON NHR), using the 3D Taylor-Green vortex and an MHD Alfvén wave test. The central claim, stated in the abstract and conclusions, is that Trixi.jl scales well to 61,440 CPU cores on 480 nodes using standard MPI.jl, with a parallel efficiency of 0.83 relative to a single-node baseline. The paper also documents Julia startup and code-loading bottlenecks and shows that a custom system image alleviates them, and it investigates an MPI all-reduce bottleneck in adaptive time stepping.
Significance. If the scaling result is robust, the paper provides a valuable data point for the HPC community: a high-level, JIT-compiled language can be a viable alternative to Fortran for massively parallel CPU simulations. The comparison to an established Fortran solver on multiple clusters is a strength, and the paper is commendably explicit about startup costs, compilation, and the role of problem size. The authors' transparency about the superlinear speedup and its effect on efficiency is also a positive feature. However, the headline efficiency metric is sensitive to the choice of baseline, and the manuscript's own numbers indicate that the 'scales well up to 61,440 cores' formulation overstates the robustness of the scaling data.
major comments (3)
- [Results (Fig. 1) and Summary and conclusions] The central claim of 'good scaling up to 61,440 cores' rests on a parallel efficiency of 0.83 measured against a single-node baseline. In the same results paragraph, the authors note that the efficiency peaks at 1.92 at 16,384 ranks because of cache effects and that the marginal efficiency beyond that point is only about 0.65 per doubling. Using the 16,384-rank point as a cache-corrected baseline, the efficiency at 61,440 ranks is approximately 0.43. The abstract and conclusions do not carry this qualification. Please report a cache-corrected efficiency or revise the scaling claim to something like 'good scaling up to about 16,384 ranks, with continued but substantially degraded throughput beyond.'
- [Experimental setup (software versions)] The manuscript states that JURECA runs use Julia v1.8.3 with bounds checking disabled, while JUWELS and MOGON use Julia v1.10.6 with bounds checking enabled. Because the headline 61,440-core result comes from JURECA only, this inconsistency does not invalidate that specific result, but it is a confound when comparing scaling behavior across clusters and when generalizing the claim that 'Julia scales well.' Please state whether the Julia version or bounds-checking setting materially affects the JURECA results, and explicitly restrict cross-cluster generalizations if they are not controlled.
- [Results (all scaling figures)] Each simulation was run five times and only the minimum is reported. The paper gives no measure of run-to-run variability. Given the superlinear speedup and the observed MPI time-step bottleneck at high rank counts, the minimum can be sensitive to outliers such as OS jitter or MPI startup effects. At minimum, report min-max ranges or a standard deviation for the key data points, and indicate whether the observed trends are stable across the five runs.
minor comments (4)
- [Adaptive Time Step Bottleneck] The sentence 'This shows the role that the problem size plays in the scalability. Keeping the problem size low increases the overhead...' appears in section 'Results' with a broken reference 'section .' and is repeated near the time-step analysis. The manuscript has several unresolved section cross-reference placeholders ('section .', 'As outlined in section') that must be fixed.
- [Figure 8 and text] The claim that 'at about the break-even point the scaling worsens' is based on visual coincidence. A quantitative statement (e.g., comparing the rate of increase of dt time to the rate of decrease of RHS time) would strengthen the causal argument.
- [Package loading / avoiding I/O bottleneck] The custom system image section is introduced as 'The code loading mechanism described in section poses challenges...' with another missing reference; also the text says 'The timing tests are preformed' (typo) and 'MPI paralellized' (typo) in the Introduction.
- [Figures 6 and 7] Figure 6's caption reads 'compressible MHD and Euler equations', but the text suggests the figure compares the Euler Taylor-Green problem with the MHD Alfvén wave for MOGON. Please clarify the exact configuration and ensure the caption matches the plotted data.
Circularity Check
No significant circularity: scaling claim is an external benchmark against FLUXO; self-citations describe the software and do not carry the central result.
full rationale
The paper's central claim—that Trixi.jl scales to 61,440 cores on JURECA—is an empirical benchmark measured in this paper and compared against the external Fortran solver FLUXO. There is no fitted parameter that is later renamed as a prediction, and no quantity is defined in terms of the claim it is supposed to establish. Parallel efficiency is defined in the standard way as speedup relative to a single-node baseline, and the paper explicitly discloses the superlinear cache-effect artifact (efficiency 1.92 at 16,384 ranks and marginal efficiency ~0.65 per doubling beyond that), which weakens the headline interpretation but does not make the measurement circular. Self-citations to Trixi.jl, FLUXO, and related code-development papers are descriptive and are not the evidence for the scaling results; the scaling data are generated by the reported runs and compared to an independent code. The skeptical concern about the choice of baseline is a benchmarking-reasonableness issue, not a circularity issue: no reduction of a derived quantity to its own definition or to a self-citation chain is present. Therefore the paper receives a circularity score of 0.
Assumptions & free parameters
assumptions (4)
- domain assumption DGSEM discretization and low-storage Runge-Kutta time integration are representative of typical scientific HPC workloads.
- domain assumption The single-node baseline is a fair reference for parallel efficiency.
- domain assumption Mixing Julia v1.8.3 with bounds checking disabled (JURECA) and v1.10.6 with bounds checking enabled (JUWELS/MOGON) does not affect the conclusions.
- domain assumption The minimum of five runs is a stable performance estimate.
Cite this review
Pith. "Pith review of Massively parallel numerical simulations with Julia." pith.science (2026). https://pith.science/paper/2Z6ZARBX
@misc{pith2026260725866,
author = {Pith},
title = {Pith review of: Massively parallel numerical simulations with Julia},
year = {2026},
howpublished = {\url{https://pith.science/paper/2Z6ZARBX}},
note = {Machine review of arXiv:2607.25866}
}
abstract
The Julia programming language aims to provide a modern approach to develop high-performance computing (HPC) applications. It tries to achieve this by combining a high-level, dynamic interface with just-in-time compilation to native machine code, thereby facilitating high developer productivity and native code performance at the same time. While this approach has already been shown to work well for serial applications, it is not clear if it readily translates to traditional, massively parallel HPC work loads. In this paper, we fill this gap by analyzing the parallel performance of the numerical computational fluid dynamics simulation code Trixi$.$jl, written in Julia, and compare it to the Fortran code FLUXO. We show some of the challenges of using Julia at scale and discuss possible solutions, specifically with respect to code loading and compilation at startup. Finally, we demonstrate the parallel scaling of our Julia code on up to 61440 CPU cores.
Figures
Figures from the paper (2 more)
Reference graph
Works this paper leans on
-
[1]
Beck A (2015) High order discontinuous galerkin methods for the simulation of multiscale problems
2015
-
[2]
IEEE Transactions on Parallel and Distributed Systems doi:10.1109/TPDS.2018.2872064
Besard T, Foket C and De Sutter B (2018) Effective extensible programming: Unleashing Julia on GPUs . IEEE Transactions on Parallel and Distributed Systems doi:10.1109/TPDS.2018.2872064
arXiv 2018
-
[3]
Bezanson J, Edelman A, Karpinski S and Shah VB (2017) Julia: A fresh approach to numerical computing . SIAM Rev. 59(1): 65--98. doi:10.1137/141000671
-
[4]
part i: Theory and numerical verification
Bohm M, Winters AR, Gassner GJ, Derigs D, Hindenlang F and Saur J (2020) An entropy stable nodal discontinuous galerkin method for the resistive mhd equations. part i: Theory and numerical verification. J.\ Comput.\ Phys. 422: 108076
2020
-
[5]
jl: Julia bindings for the message passing interface
Byrne S, Wilcox LC and Churavy V (2021) Mpi. jl: Julia bindings for the message passing interface. In: Proceedings of the JuliaCon Conferences, volume 1. p. 68
2021
-
[6]
SIAM J ournal on S cientific C omputing 33(3): 1103--1133
C arsten B urstedde, L ucas C W ilcox and O mar G hattas (2011) p4est : S calable A lgorithms for P arallel A daptive M esh R efinement on F orests of O ctrees . SIAM J ournal on S cientific C omputing 33(3): 1103--1133. doi:10.1137/100791634
-
[7]
Churavy V, Godoy WF, Bauer C, Ranocha H, Schlottke-Lakemper M, R \"a ss L, Blaschke J, Giordano M, Schnetter E, Omlin S, Vetter JS and Edelman A (2022) Bridging HPC communities through the J ulia programming language. doi:10.48550/arXiv.2211.02740
-
[8]
J.\ Comput.\ Phys
Derigs D, Winters AR, Gassner GJ, Walch S and Bohm M (2018) Ideal glm-mhd: about the entropy consistent nine-wave magnetic field divergence diminishing ideal magnetohydrodynamics equations. J.\ Comput.\ Phys. 364: 420--467
2018
Show all 20 references
-
[9]
In: 2022 IEEE International Conference on Cluster Computing (CLUSTER)
Giordano M, Klöwer M and Churavy V (2022) Productivity meets performance: Julia on a64fx. In: 2022 IEEE International Conference on Cluster Computing (CLUSTER). pp. 549--555. doi:10.1109/CLUSTER51413.2022.00072
2022
-
[10]
In: Proceedings of the SC '23 Workshops of The International Conference on High Performance Computing, Network, Storage, and Analysis, SC-W '23
Godoy WF, Valero-Lara P, Anderson C, Lee KW, Gainaru A, Ferreira Da Silva R and Vetter JS (2023) Julia as a unifying end-to-end workflow language on the frontier exascale system. In: Proceedings of the SC '23 Workshops of The International Conference on High Performance Comput...
2023
-
[11]
Hunold S and Steiner S (2020) Benchmarking julia’s communication performance: Is julia hpc ready or full hpc? In: 2020 IEEE/ACM Performance Modeling, Benchmarking and Simulation of High Performance Computer Systems (PMBS). pp. 20--25. doi:10.1109/PMBS51919.2020.00008
2020
-
[12]
Journal of large-scale research facilities 7(A183)
J\" u lich Supercomputing Centre (2021) JUWELS Cluster and Booster: Exascale Pathfinder with Modular Supercomputing Architecture at Juelich Supercomputing Centre . Journal of large-scale research facilities 7(A183). doi:10.17815/jlsrf-7-183
2021 doi
-
[13]
(2021) Flexi: A high order discontinuous galerkin framework for hyperbolic--parabolic conservation laws
Krais N, Beck A, Bolemann T, Frank H, Flad D, Gassner G, Hindenlang F, Hoffmann M, Kuhn T, Sonntag M et al. (2021) Flexi: A high order discontinuous galerkin framework for hyperbolic--parabolic conservation laws. Comput.\ Math.\ Appl. 81: 186--219
2021
-
[14]
In: Proceedings of the International Symposium on Code Generation and Optimization: Feedback-Directed and Runtime Optimization, CGO '04
Lattner C and Adve V (2004) Llvm: A compilation framework for lifelong program analysis & transformation. In: Proceedings of the International Symposium on Code Generation and Optimization: Feedback-Directed and Runtime Optimization, CGO '04. USA: IEEE Computer Society, p. 75....
2004
-
[15]
doi:10.1145/3625559
Ranocha H, Schlottke-Lakemper M, Chan J, Rueda-Ram\' rez AM, Winters AR, Hindenlang F and Gassner GJ (2023) Efficient implementation of modern entropy stable and kinetic energy preserving discontinuous galerkin methods for conservation laws. doi:10.1145/3625559
2023 doi
-
[16]
Proceedings of the JuliaCon Conferences 1(1): 77
Ranocha H, Schlottke-Lakemper M, Winters AR, Faulhaber E, Chan J and Gassner G (2022) Adaptive numerical simulations with T rixi.jl: A case study of J ulia for scientific computing. Proceedings of the JuliaCon Conferences 1(1): 77. doi:10.21105/jcon.00077
2022 doi
-
[17]
part ii: Subcell finite volume shock capturing
Rueda-Ram \' rez AM, Hennemann S, Hindenlang FJ, Winters AR and Gassner GJ (2021) An entropy stable nodal discontinuous galerkin method for the resistive mhd equations. part ii: Subcell finite volume shock capturing. J.\ Comput.\ Phys. 444: 110580
2021
-
[18]
https://github.com/trixi-framework/Trixi.jl
Schlottke-Lakemper M, Gassner GJ, Ranocha H, Winters AR and Chan J (2021 a ) T rixi.jl: A daptive high-order numerical simulations of hyperbolic PDE s in J ulia. https://github.com/trixi-framework/Trixi.jl. doi:10.5281/zenodo.3996439
2021 doi
-
[19]
J.\ Comput.\ Phys
Schlottke-Lakemper M, Winters AR, Ranocha H and Gassner GJ (2021 b ) A purely hyperbolic discontinuous G alerkin approach for self-gravitating gas dynamics. J.\ Comput.\ Phys. 442: 110467. doi:10.1016/j.jcp.2021.110467
2021
-
[20]
Strauss R, Bishnu S and Petersen M (2023) Julia for geophysical fluid dynamics: performance comparisons between cpu, gpu, and fortran-mpi doi:10.22541/essoar.167390522.28476012/v1
2023
Reviewed August 1, 2026 · model on record in the stance chip above.
Discussion (0). Sign in to comment.