A collection of scripts for semi-automated performance tests to compare different Julia versions for running a Trixi.jl simulation, including timings for loading the relevant packages Trixi.jl and OrdinaryDiffEq.jl.
The scripts in this repository are written such that they need to be executed
from the working directory in which the tests are to be run. For example, if you
want to run tests with Julia 1.7 and 1.8, you could create two folders
julia-1.7 and julia-1.8, cd into each directory and then run the scripts
from there as, e.g., ../ttfx.jl julia.
Unless noted otherwise, in the following all commands assume that you are
already inside a test directory. Further, we assume that your Julia 1.7 and 1.8
executables are available as julia-1.7 and julia-1.8 respectively.
There are two ways to install all required packages: Either by installing from scratch
using setup.sh, or by insantiating the Project.toml and Manifest.toml
files found in this repo using instantiate.sh.
Running
../setup.sh julia-1.8will install OrdinaryDiffEq.jl v6.29.3 v6.24.0 and Trixi.jl v0.4.50 v0.4.44, each of which is
the current version (as of 2022-10-29 2022-08-23).
The first argument julia-1.8 is the which-expanded Julia executable that
will be used.
First, copy Project.toml and the relevant Manifest.toml file
from this repo into the test folder. Then, run
../instantiate.sh julia-1.8to instantiate.
The first argument julia-1.8 is the which-expanded Julia executable that
will be used.
Execute
../using.sh julia-1.8to get timings for loading OrdinaryDiffEq.jl and Trixi.jl. Two
checks are performed, once with OrdinaryDiffEq.jl loaded first and Trixi.jl
second, once vice-versa.
The first argument julia-1.8 is the which-expanded Julia executable that
will be used.
Execute
../ttfx.sh julia-1.8 --check-bounds=noto get timings for running a Trixi simulation. By default, it will use the
elixir_euler_source_terms_nonperiodic_modified.jl
elixir found in this repository.
The first argument julia-1.8 is the which-expanded Julia executable that
will be used. The second and subsequent arguments will be passed to the Julia
executable, e.g., to disable bounds checking.
There is also a script runall.sh that is to be run from the repo root
folder. It needs to be edited manually, but allows to run multiple trials in a loop.
This repository was initiated by Michael Schlottke-Lakemper, with input from the Trixi.jl authors.
This repository and its contents are published under the MIT license (see LICENSE.md).