Trixi.jl icon indicating copy to clipboard operation
Trixi.jl copied to clipboard

Performance evaluation for Julia v1.11

Open sloede opened this issue 2 months ago • 0 comments

As discussed at yesterday's meeting, LoopVectorization.jl, Octavian.jl, and JuliaSIMD in general will be deprecated for Julia v1.11. That is, code is likely to continue to work for the time being, but bugs might not get fixed anymore. It is also to be expected that we will see a performance hit in areas where we heavily rely on LV.jl & friends, especially with the @turbo macro.

Some parts of Trixi.jl that are likely to be adversely affected by this have already been identified:

  1. multiply_dimensionwise! for mortar and AMR projections/interpolations (see interpolation.jl)
  2. Computation of metric terms for P4estMesh/StructuredMesh (e.g., here)
  3. DGMulti solver: Several areas where Octavian.jl's matmul! (see also #1906), some explicit uses of @turbo
  4. Manual SIMD optimizations for the EC performance paper (these might not work at all anymore, e.g., here)

The decision yesterday was to first proceed with switching CI testing to Julia v1.10 (#1562 - @DanielDoehring is on it!), and to continue monitoring CI testing with v1.11 (#1904 will help). Once v1.11.0 is released, we will revisit this issue and benchmark the aforementioned cases, before we make decisions on how to proceed.

sloede avatar Apr 24 '24 09:04 sloede