Skip to content

PTsolvers/JustRelax.jl

JustRelax.jl JustRelax.jl

Dev Ask us anything DOI CPU Unit Tests GPU Unit Tests CSCS CI codecov License: MIT code style: runic Downloads SQAaaS badge shields.io

JustRelax.jl

Need to solve a very large multi-physics problem on many GPUs in parallel? Just Relax!

JustRelax.jl is a collection of accelerated iterative pseudo-transient solvers using MPI and multiple CPU or GPU backends. It's part of the PTSolvers organisation and developed within the GPU4GEO project. Current publications, outreach and news can be found on the GPU4GEO website.

The package relies on other packages as building blocks and parallelisation tools:

The package serves several purposes:

  • It provides a collection of solvers to be used in quickly developing new applications

  • It provides some standardization so that application codes can

    • more easily handle local material properties through the use of GeoParams.jl
    • more easily switch between a pseudo-transient solver and another solvers (e.g. an explicit thermal solvers)
  • It provides a natural repository for contributions of new solvers for use by the larger community

We provide several miniapps, each designed to solve a well-specified benchmark problem, in order to provide

  • examples of usage in high-performance computing
  • basis on which to build more full-featured application codes
  • cases for reference and performance tests

Installation

JustRelax.jl is a registered package and can be added as follows:

using Pkg; Pkg.add("JustRelax")

However, as the API is changing and not every feature leads to a new release, one can also do add JustRelax#main which will clone the main branch of the repository. After installation, you can test the package by running the following commands:

using JustRelax

julia> ]

(@v1.xx) pkg> test JustRelax

The test will take a while, so grab a ☕ or 🍵

⚠️ If you plan on developing JustRelax.jl and/or modifying the source coude, you can test your local version by running the testing framework again

julia> ]
(@v1.xx) pkg> test JustRelax

Miniapps

Available examples and Benchmark miniapps can be found in the miniapps folder. The miniapps are simple and easy to understand, while still providing a good basis for more complex applications. The miniapps are designed to be run on a single node, but can be easily extended to run on multiple nodes using ImplicitGlobalGrid.jl and MPI.jl. To get started, instantiate the miniapps folder and run our favourite one!

Funding

The development of this package is supported by the GPU4GEO PASC project.

About

Pseudo-transient accelerated iterative solvers

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

No packages published

Contributors 14

Languages