All Projects → pkestene → euler2d_kokkos

pkestene / euler2d_kokkos

Licence: other
Simple 2d finite volume solver for Euler equations using c++ kokkos library

Programming Languages

C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language
CMake
9771 projects
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to euler2d kokkos

Occa
JIT Compilation for Multiple Architectures: C++, OpenMP, CUDA, HIP, OpenCL, Metal
Stars: ✭ 230 (+751.85%)
Mutual labels:  openmp, cuda, multithreading
Nbody
N body gravity attraction problem solver
Stars: ✭ 40 (+48.15%)
Mutual labels:  openmp, cuda
Arraymancer
A fast, ergonomic and portable tensor library in Nim with a deep learning focus for CPU, GPU and embedded devices via OpenMP, Cuda and OpenCL backends
Stars: ✭ 793 (+2837.04%)
Mutual labels:  openmp, cuda
Ctranslate2
Fast inference engine for OpenNMT models
Stars: ✭ 140 (+418.52%)
Mutual labels:  openmp, cuda
Amgcl
C++ library for solving large sparse linear systems with algebraic multigrid method
Stars: ✭ 390 (+1344.44%)
Mutual labels:  openmp, cuda
Stdgpu
stdgpu: Efficient STL-like Data Structures on the GPU
Stars: ✭ 531 (+1866.67%)
Mutual labels:  openmp, cuda
Babelstream
STREAM, for lots of devices written in many programming models
Stars: ✭ 121 (+348.15%)
Mutual labels:  openmp, cuda
monolish
monolish: MONOlithic LInear equation Solvers for Highly-parallel architecture
Stars: ✭ 166 (+514.81%)
Mutual labels:  openmp, cuda
Laghos
High-order Lagrangian Hydrodynamics Miniapp
Stars: ✭ 131 (+385.19%)
Mutual labels:  hydrodynamics, miniapp
Kinetic.jl
Universal modeling and simulation of fluid dynamics upon machine learning
Stars: ✭ 82 (+203.7%)
Mutual labels:  cfd, finite-volume
rheoTool
Toolbox to simulate GNF and viscoelastic fluid flows in OpenFOAM®
Stars: ✭ 104 (+285.19%)
Mutual labels:  cfd, finite-volume
Weave
A state-of-the-art multithreading runtime: message-passing based, fast, scalable, ultra-low overhead
Stars: ✭ 305 (+1029.63%)
Mutual labels:  openmp, multithreading
crowdsource-video-experiments-on-android
Crowdsourcing video experiments (such as collaborative benchmarking and optimization of DNN algorithms) using Collective Knowledge Framework across diverse Android devices provided by volunteers. Results are continuously aggregated in the open repository:
Stars: ✭ 29 (+7.41%)
Mutual labels:  openmp, cuda
Ems
Extended Memory Semantics - Persistent shared object memory and parallelism for Node.js and Python
Stars: ✭ 552 (+1944.44%)
Mutual labels:  openmp, multithreading
mbsolve
An open-source solver tool for the Maxwell-Bloch equations.
Stars: ✭ 14 (-48.15%)
Mutual labels:  openmp, cuda
Openmp Examples
openmp examples
Stars: ✭ 64 (+137.04%)
Mutual labels:  openmp, multithreading
FGPU
No description or website provided.
Stars: ✭ 30 (+11.11%)
Mutual labels:  openmp, cuda
gpubootcamp
This repository consists for gpu bootcamp material for HPC and AI
Stars: ✭ 227 (+740.74%)
Mutual labels:  openmp, cuda
MAESTRO
A low Mach number stellar hydrodynamics code
Stars: ✭ 29 (+7.41%)
Mutual labels:  cfd, hydrodynamics
hydro examples
Simple one-dimensional examples of various hydrodynamics techniques
Stars: ✭ 83 (+207.41%)
Mutual labels:  finite-volume, hydrodynamics

Build Status

C/C++ CI

blast2d_1024x1536

This miniapp solves the compressible fluid dynamics (Euler) equations using 2D cartesian grids, parallelized for shared memory system. The full application for 2D/3D grids with MPI and Kokkos is available here : https://github.com/pkestene/euler_kokkos

Get the source

Our miniApp uses kokkos as a git submodule, configured to use the develop branch of kokkos. In order to download the sources all-in-one (miniApp + kokkos):

git clone --recursive [email protected]:pkestene/euler2d_kokkos.git

Alternatively, if you didn't use option --recursive, you can afterwards retrieve kokkos like this

git submodule init
git submodule update

Build

We strongly recommend the out-of-source build, so that one can have one build directory per architecture.

build for Kokkos/OpenMP

To build for Kokkos/OpenMP backend (which is the default backend):

mkdir -p build/openmp; cd build/openmp
cmake -DKokkos_ENABLE_OPENMP=ON ../..
make

You should now have executable euler2d. You can run a simply implode test like this

cd src
./euler2d ./test_implode.ini

Optionally, you can (recommended) activate HWLOC support by turning ON the flag Kokkos_ENABLE_HWLOC.

build for Kokkos/CUDA

Obviously, you need to have Nvidia/CUDA driver and toolkit installed on your platform.

Example configuration:

mkdir build/cuda; cd build/cuda
cmake -DKokkos_ENABLE_CUDA=ON -DKokkos_ENABLE_CUDA_LAMBDA=ON -DKokkos_ARCH_TURING75=ON -DKokkos_ENABLE_HWLOC=ON ../..
make

Be aware that, kokkos will not use Nvidia compiler nvcc directly, but will use a wrapper instead (located in Kokkos source directory).

then make should give you a working executable euler2d running on GPU.

cd src
./euler2d ./test_implode.ini
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].