armon.jl

A performance portable HPC Cartesian CFD solver on CPUs and GPUs

https://github.com/keluaa/armon.jl

Science Score: 31.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.8%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

A performance portable HPC Cartesian CFD solver on CPUs and GPUs

Basic Info
  • Host: GitHub
  • Owner: Keluaa
  • License: mit
  • Language: Julia
  • Default Branch: main
  • Homepage:
  • Size: 16.6 MB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 1
  • Open Issues: 5
  • Releases: 0
Created about 3 years ago · Last pushed about 1 year ago
Metadata Files
Readme License Citation

README.md

Armon.jl

Build Status Coverage

Armon.jl is an experimental 2D CFD solver for compressible non-viscous fluids, using a finite volume method.

It was developed to explore Julia's capabilities in HPC and for performance portability: it should perform very well on any CPU (tested on Nvidia Grace CPU, AMD Milan 7763, Intel Skylake Xeon Platinum 8168...) and GPU (tested on Nvidia A100, AMD MI250, Intel Max 1100...) without any additional configuration. Domain decomposition is done using MPI, and cache-blocking is performed in a single process for higher performance on CPU.

The twin project Armon-Kokkos is a mirror of the core of this solver (with much less options, without MPI or cache-blocking) written in C++ using the Kokkos library. It is possible to reuse kernels from that solver in this one, using the Kokkos.jl package.

Armon.jl was created in order to create a portable CFD benchmark. The benchmark branch is the state of the repository for which most of the results for an upcoming paper were obtained.

Installation

Armon.jl is an unregistered Julia package: to install it, clone this repository (using Pkg; Pkg.develop(url="https://github.com/Keluaa/Armon.jl")).

Usage

Parameters are detailed in the help of ArmonParameters.

```julia julia> using Armon

julia> params = ArmonParameters(use_MPI=false, options...);

julia> armon(params); # Run the solver ```

Owner

  • Name: Luc Briand
  • Login: Keluaa
  • Kind: user

Citation (CITATION.bib)

@misc{Armon.jl,
	author  = {Luc Briand <luc.briand35@gmail.com> and contributors},
	title   = {Armon.jl},
	url     = {https://github.com/Keluaa/Armon.jl},
	version = {v0.1.0},
	year    = {2023},
	month   = {2}
}

GitHub Events

Total
  • Push event: 21
  • Pull request event: 2
  • Create event: 2
Last Year
  • Push event: 21
  • Pull request event: 2
  • Create event: 2

Issues and Pull Requests

Last synced: 11 months ago

All Time
  • Total issues: 0
  • Total pull requests: 20
  • Average time to close issues: N/A
  • Average time to close pull requests: 12 days
  • Total issue authors: 0
  • Total pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 0.55
  • Merged pull requests: 12
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 8
  • Average time to close issues: N/A
  • Average time to close pull requests: 24 days
  • Issue authors: 0
  • Pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 0.5
  • Merged pull requests: 2
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
  • Keluaa (30)
Top Labels
Issue Labels
Pull Request Labels
documentation (1)