{"id":23207929,"url":"https://github.com/pkestene/euler2d_cudafortran","last_synced_at":"2025-08-19T03:30:37.177Z","repository":{"id":27690318,"uuid":"31176857","full_name":"pkestene/euler2d_cudaFortran","owner":"pkestene","description":"2nd order Godunov solver for 2d Euler equations written in CUDA Fortran and stdpar (standard paralelism)","archived":false,"fork":false,"pushed_at":"2023-11-23T13:22:23.000Z","size":256,"stargazers_count":31,"open_issues_count":0,"forks_count":8,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-01-27T11:04:53.248Z","etag":null,"topics":["cea","conservation-laws","cuda","cuda-fortran","euler-equations","fortran","gpu","gpu-computing","hydrodynamics","nvfortran","nvhpc","stdpar"],"latest_commit_sha":null,"homepage":"","language":"Fortran","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pkestene.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2015-02-22T19:42:23.000Z","updated_at":"2023-12-19T10:03:36.000Z","dependencies_parsed_at":"2023-01-14T07:17:41.751Z","dependency_job_id":"c57da623-de1c-40b7-9b87-7a74569a1a04","html_url":"https://github.com/pkestene/euler2d_cudaFortran","commit_stats":{"total_commits":31,"total_committers":2,"mean_commits":15.5,"dds":0.06451612903225812,"last_synced_commit":"591b5c9e6b959ce8934f9147b920dbde0acec615"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pkestene%2Feuler2d_cudaFortran","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pkestene%2Feuler2d_cudaFortran/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pkestene%2Feuler2d_cudaFortran/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pkestene%2Feuler2d_cudaFortran/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pkestene","download_url":"https://codeload.github.com/pkestene/euler2d_cudaFortran/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230312448,"owners_count":18206858,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cea","conservation-laws","cuda","cuda-fortran","euler-equations","fortran","gpu","gpu-computing","hydrodynamics","nvfortran","nvhpc","stdpar"],"created_at":"2024-12-18T17:26:37.894Z","updated_at":"2024-12-18T17:26:38.313Z","avatar_url":"https://github.com/pkestene.png","language":"Fortran","funding_links":[],"categories":[],"sub_categories":[],"readme":"![euler2d 350x350](https://github.com/pkestene/euler2d_cudaFortran/blob/master/euler2d.png?raw=true)\n\n# euler2d_cudaFortran\n\n2nd order Godunov solver for 2d Euler equations written in CUDA Fortran\n\nNote: If your more interested into c++ for GPUs, have a look at version using C++/kokkos for performance portability:\nhttps://github.com/pkestene/euler2d_kokkos\n\n## Short description\n\nThis code solves the 2D Euler equations in a regular cartesian mesh\nusing a 2nd order godunov-based finite volume scheme.\n\nThere are actually two version, one is using the so called [cuda fortran](https://developer.nvidia.com/cuda-fortran) programming model, and the other is designed with the newer [fortran standard parallelism](https://developer.nvidia.com/blog/accelerating-fortran-do-concurrent-with-gpus-and-the-nvidia-hpc-sdk/) (stdpar).\n\n## Nvhpc compiler for Cuda Fortran and stdpar\n\nYou need to have installed [nvhpc] to build this application. then, e.g\n\n```shell\nmodule load nvhpc/23.11\n```\n\nBy default, nvfortran will detect visible GPU available on the system, and generate code for it.\n\n```shell\n# for the cuda fortran version\ncd cuf\nmake\n# for the stdpar version\ncd stdpar\nmake\n```\n\n## Parameter file\n\nParameters:\n\tedit file test.nml\n\nIn 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.\n\nInitial condition: a discontinuity along the domain diagonal\n\n## Example of use\n\n./euler2d_gpu ./test.nml\n\nOutput:\n\tVTK ascii file using VTK Image Data format\n\nVisualization:\n\tparaview --data=euler2d_..vti\n\nThe cuf version was written in 2013 (with the PGI compiler), and the stdpar version in 2022.\n\nIn terms of performance,\n- stdpar version is able to run at more than 500 Mcell-updates per seconds on A100, using large domain (2048x2048).\n- cuda-fortran version has roughly the same performance (maybe slightly less performant).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpkestene%2Feuler2d_cudafortran","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpkestene%2Feuler2d_cudafortran","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpkestene%2Feuler2d_cudafortran/lists"}