All Projects → pkestene → euler2d_cudaFortran

pkestene / euler2d_cudaFortran

Licence: other
2nd order Godunov solver for 2d Euler equations written in CUDA Fortran and stdpar (standard paralelism)

Programming Languages

fortran
972 projects
Makefile
30231 projects

Projects that are alternatives of or similar to euler2d cudaFortran

Lingvo
Lingvo
Stars: ✭ 2,361 (+9737.5%)
Mutual labels:  gpu-computing
gpuowl
GPU Mersenne primality test.
Stars: ✭ 77 (+220.83%)
Mutual labels:  gpu-computing
CARE
CHAI and RAJA provide an excellent base on which to build portable codes. CARE expands that functionality, adding new features such as loop fusion capability and a portable interface for many numerical algorithms. It provides all the basics for anyone wanting to write portable code.
Stars: ✭ 22 (-8.33%)
Mutual labels:  gpu-computing
Tf Quant Finance
High-performance TensorFlow library for quantitative finance.
Stars: ✭ 2,925 (+12087.5%)
Mutual labels:  gpu-computing
meshmagick
A command line tool and a python package to manipulate hydrodynamics meshes
Stars: ✭ 36 (+50%)
Mutual labels:  hydrodynamics
CUDAfy.NET
CUDAfy .NET allows easy development of high performance GPGPU applications completely from the .NET. It's developed in C#.
Stars: ✭ 56 (+133.33%)
Mutual labels:  gpu-computing
Fast
A framework for GPU based high-performance medical image processing and visualization
Stars: ✭ 179 (+645.83%)
Mutual labels:  gpu-computing
fast-tsetlin-machine-in-cuda-with-imdb-demo
A CUDA implementation of the Tsetlin Machine based on bitwise operators
Stars: ✭ 26 (+8.33%)
Mutual labels:  gpu-computing
gpuvmem
GPU Framework for Radio Astronomical Image Synthesis
Stars: ✭ 27 (+12.5%)
Mutual labels:  gpu-computing
Laghos
High-order Lagrangian Hydrodynamics Miniapp
Stars: ✭ 131 (+445.83%)
Mutual labels:  hydrodynamics
Opt
Opt DSL
Stars: ✭ 237 (+887.5%)
Mutual labels:  gpu-computing
notebooks
A docker-based starter kit for machine learning via jupyter notebooks. Designed for those who just want a runtime environment and get on with machine learning. Docker tags:
Stars: ✭ 29 (+20.83%)
Mutual labels:  gpu-computing
hiperc
High Performance Computing Strategies for Boundary Value Problems
Stars: ✭ 36 (+50%)
Mutual labels:  gpu-computing
Gpur
R interface to use GPU's
Stars: ✭ 208 (+766.67%)
Mutual labels:  gpu-computing
PetIBM
PetIBM - toolbox and applications of the immersed-boundary method on distributed-memory architectures
Stars: ✭ 80 (+233.33%)
Mutual labels:  gpu-computing
Awesome Webgpu
😎 Curated list of awesome things around WebGPU ecosystem.
Stars: ✭ 182 (+658.33%)
Mutual labels:  gpu-computing
alsvinn
The fast Finite Volume simulator with UQ support.
Stars: ✭ 22 (-8.33%)
Mutual labels:  euler-equations
learn-gpgpu
Algorithms implemented in CUDA + resources about GPGPU
Stars: ✭ 37 (+54.17%)
Mutual labels:  gpu-computing
gardenia
GARDENIA: Graph Analytics Repository for Designing Efficient Next-generation Accelerators
Stars: ✭ 22 (-8.33%)
Mutual labels:  gpu-computing
LvArray
Portable HPC Containers (C++)
Stars: ✭ 37 (+54.17%)
Mutual labels:  gpu-computing

euler2d 350x350

euler2d_cudaFortran

2nd order Godunov solver for 2d Euler equations written in CUDA Fortran

Note: If your more interested into c++ for GPUs, have a look at version using C++/kokkos for performance portability: https://github.com/pkestene/euler2d_kokkos

Short description

This code solves the 2D Euler equations in a regular cartesian mesh using a 2nd order godunov-based finite volume scheme.

There are actually two version, one is using the so called cuda fortran programming model, and the other is designed with the newer fortran standard parallelism (stdpar).

Nvhpc compiler for Cuda Fortran and stdpar

You need to have installed [nvhpc] to build this application.

Build for a given Cuda architecture, using a given Cuda runtime version (assuming you install nvhpc)

# for the cuda fortran version
cd cuf
make CUDA_ARCH=cc80 CUDA_VERSION=11.6
# for the stdpar version
cd stdpar
make CUDA_ARCH=cc80 CUDA_VERSION=11.6

Parameter file

Parameters: edit file test.nml

In the cuf version, there are two differents variants of the numerical scheme which are different in term of allocated memory. Use parameter implementationVersion = 0 or 1 to change.

Initial condition: a discontinuity along the domain diagonal

Example of use

./euler2d_gpu ./test.nml

Output: VTK ascii file using VTK Image Data format

Visualization: paraview --data=euler2d_..vti

The cuf version was written in 2013 (with the PGI compiler), and the stdpar version in 2022.

In terms of performance,

  • stdpar version is able to run at more than 500 Mcell-updates per seconds on A100, using large domain (2048x2048).
  • cuda-fortran version has roughly the same performance (maybe slightly less performant).
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].