{"id":16932860,"url":"https://github.com/jeng1220/openacc_fortran_examples","last_synced_at":"2025-03-22T12:31:23.272Z","repository":{"id":161630245,"uuid":"241827190","full_name":"jeng1220/openacc_fortran_examples","owner":"jeng1220","description":"Simple OpenACC Fortran Examples","archived":false,"fork":false,"pushed_at":"2021-08-01T07:03:50.000Z","size":122,"stargazers_count":56,"open_issues_count":0,"forks_count":10,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-03-18T11:04:45.777Z","etag":null,"topics":["cuda","fortran","openacc"],"latest_commit_sha":null,"homepage":"","language":"Fortran","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jeng1220.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}},"created_at":"2020-02-20T08:06:51.000Z","updated_at":"2025-03-18T02:23:02.000Z","dependencies_parsed_at":"2023-09-25T02:07:38.106Z","dependency_job_id":null,"html_url":"https://github.com/jeng1220/openacc_fortran_examples","commit_stats":{"total_commits":83,"total_committers":3,"mean_commits":"27.666666666666668","dds":0.5060240963855422,"last_synced_commit":"08e0b68f884ab82ebbd2d68292ea3e41ad44a00c"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeng1220%2Fopenacc_fortran_examples","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeng1220%2Fopenacc_fortran_examples/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeng1220%2Fopenacc_fortran_examples/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeng1220%2Fopenacc_fortran_examples/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jeng1220","download_url":"https://codeload.github.com/jeng1220/openacc_fortran_examples/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244959409,"owners_count":20538625,"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":["cuda","fortran","openacc"],"created_at":"2024-10-13T20:47:50.626Z","updated_at":"2025-03-22T12:31:22.742Z","avatar_url":"https://github.com/jeng1220.png","language":"Fortran","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Simple OpenACC Fortran Examples #\nAuthor: Jeng Bai-Cheng(rjeng@nvidia.com)\n\nAn example code is worth a thousand words. This repository intends to host fundamental, but useful examples. Each example is just a few dozen lines of code. Most of them come from my past experience in HPC projects, but readers do not need to have the HPC background to understand the examples.\n\n## Eexamples ##\n### Basic ###\n* [acc_async](/acc_async) - faster way to enqueue GPU routines(kernels)\n* [access_efficiency](/access_efficiency) - faster way to access a GPU arrary\n* [alternative_nested_parallelism](/alternative_nested_parallelism) - alternative to nested parallelism on the GPU\\\n* [array_of_pointers](/array_of_pointers) - array of pointers usage\n* [array_setting](/array_setting) - faster way to initialize a GPU array\n* [atomic_op](/atomic_op) - use atomic operation to maximize parallelism\n* [auto_depend](/auto_depend) - automatic dependency solution\n* [cuda_c_binding](/cuda_c_binding) - call CUDA C from Fortran\n* [cuda_graph](/cuda_graph) - faster way to launch GPU kernels\n* [device_routine](/device_routine) - usage of GPU routine. Call other routines in the GPU kernel\n* [device_variable](/device_variable) - usage of GPU variable. Access a global variable from other modules in the GPU kernel\n* [do_concurrent](/do_concurrent) - DO CONCURRENT construct (Fortran 2008)\n* [hybrid_omp_acc](/hybrid_omp_acc) - usage of OpenMP and OpenACC\n\n### MPI ###\n* [cuda_mpi_sendrecv](/cuda_mpi_sendrecv) - CUDA-Aware MPI, faster way to use MPI on GPU\n* [cuda_unified_memory_mpi_bcast](/cuda_unified_memory_mpi_bcast) - usage of CUDA Unified Memory and MPI, more convenient way to use MPI on GPU\n* [nccl_alltoall](/nccl_alltoall) - faster Alltoall on GPU\n* [nccl_alltoallv](/nccl_alltoallv) - faster Alltoallv on GPU\n\n### Profiling ###\n* [auto_nvtx](/auto_nvtx) - use compiler to insert CPU profiling routines automatically\n* [profiling_range](/profiling_range) - demonstration of focused profiling via profiling tool\n\n## Requirement ##\n* NVIDIA HPC SDK 21.3\n\nTo install HPC SDK via Docker, visit NVIDIA GPU Cloud: https://ngc.nvidia.com/catalog/containers/nvidia:nvhpc/tags\n\nOr download HPC SDK from official website: https://developer.nvidia.com/hpc-sdk\n\n## Bulid ##\n```sh\n$ cd \u003cfolder\u003e\n$ make\n```\n\n## Run ##\n```sh\n$ cd \u003cfolder\u003e\n$ ./\u003cexecutable\u003e\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjeng1220%2Fopenacc_fortran_examples","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjeng1220%2Fopenacc_fortran_examples","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjeng1220%2Fopenacc_fortran_examples/lists"}