{"id":22591605,"url":"https://github.com/andreeo/parallel-computing-cuda","last_synced_at":"2026-04-09T21:13:42.877Z","repository":{"id":187751193,"uuid":"673590584","full_name":"andreeo/parallel-computing-cuda","owner":"andreeo","description":"Programs in terminal applying the parallel programming model with the CUDA arquitecture","archived":false,"fork":false,"pushed_at":"2023-08-30T18:43:51.000Z","size":77,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-28T18:30:33.551Z","etag":null,"topics":["c","cpp","cuda","docker","lineal-search","parallel-computing","parallel-reduction","rank-sort-algorithm"],"latest_commit_sha":null,"homepage":"","language":"Cuda","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/andreeo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-08-02T01:42:07.000Z","updated_at":"2023-08-30T18:45:03.000Z","dependencies_parsed_at":"2023-09-26T03:50:24.399Z","dependency_job_id":null,"html_url":"https://github.com/andreeo/parallel-computing-cuda","commit_stats":{"total_commits":15,"total_committers":2,"mean_commits":7.5,"dds":0.06666666666666665,"last_synced_commit":"656272e18945a4bcecb265e84cb90db41853c815"},"previous_names":["andreeo/parallel-computing-cuda"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/andreeo/parallel-computing-cuda","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreeo%2Fparallel-computing-cuda","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreeo%2Fparallel-computing-cuda/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreeo%2Fparallel-computing-cuda/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreeo%2Fparallel-computing-cuda/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/andreeo","download_url":"https://codeload.github.com/andreeo/parallel-computing-cuda/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreeo%2Fparallel-computing-cuda/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267665241,"owners_count":24124496,"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","status":"online","status_checked_at":"2025-07-29T02:00:12.549Z","response_time":2574,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["c","cpp","cuda","docker","lineal-search","parallel-computing","parallel-reduction","rank-sort-algorithm"],"created_at":"2024-12-08T09:13:14.921Z","updated_at":"2026-04-09T21:13:42.826Z","avatar_url":"https://github.com/andreeo.png","language":"Cuda","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Parallel Computing in CUDA\n\nTerminal programs applying the parallel programming model with the CUDA arquitecture\n\n## List of terminal programs\n\n| Program file | Description |\n| --- | --- |\n|**show_devices**| show list of available cuda devices in the system.\n|**sum_vectors**| add two vectors.\n||*cuda target*: launch a kernel with multiple threads grouped into fix blocks.\n|**matrix2dim**| generate a matrix using a existing matrix.\n||*cuda target*: using threads of one kernel lauching two dimensions.\n|**pi**| roughly calculate the value of pi.\n||*cuda target*: making kernel threads work cooperatively using PR algorithm.\n|**displacer_matrix**| displacer a matrix \n||*cuda target*: measure the execution time of a kernel.\n|**rank_sort_algorithm**| sort a vector using the rank sort algorithm.\n||*cuda target*: take advantage of parallelism of the GPU to optimize algorithms.\n|**performance**| sort a vector in gpu/cpu to compare the performance.\n||*cuda target*: calculate the performance of the gain of GPU relative to CPU.\n\n``` source path:  /root/code ```\n\n# Pre-requisites\n\n1. **docker**\n2. **docker-compose**\n3. **make**  (optional)\n4. **gpu** with **cuda** support (optional)\n\n## NOTE\nGPU with CUDA support is optional, if you don't have a gpu with cuda support, you can use the docker image of cuda to run the programs.\n\nThe docker image use an emulator (GPGPU-Sim) to emulate NVIDIA GPUs running CUDA and/or OpenCL workloads. to more informatcion, go here: https://github.com/gpgpu-sim/gpgpu-sim_distribution/\n\n\n## Support for CUDA Deep Neural Network (cuDNN) or Basic Linear Algebra Subprograms (cuBLAS) libraries. (OPTIONAL)\n\nModify the docker image and add the following steps to execute programs that use these libraries\n\n1. Download cuDNN and cuBLAS libraries from NVIDIA website: https://developer.nvidia.com\n\n2. export the following environment variables\n```\n$ export CUDNN_PATH=/path/to/cuddn\n$ export LD_LIBRARY_PATH=$CUDA_INSTALL_PATH/lib64:$CUDA_INSTALL_PATH/lib:$CUDNN_PATH/lib64\n```\n\n\n# INSTALLING, BUILDING AND RUNNING archcomputing/cuda:0.3 (Docker Image) and cuda (Docker Container)\n\n1. Build/Rebuild image\n    ```\n    docker-compose build \n    ```\n\n2. Create and start container\n    ```\n    docker-compose up -d\n    ```\n\n3. Enter to the container\n    ```\n    docker exec -it cuda /bin/bash\n    ```\n\n4. Now you can compile and run the programs in the container, either manually or using the Makefile\n\n\n# Compiling in NVIDIA CUDA COMPILER (nvcc)\n\n## Manual\n\n```\nnvcc --cudart shared -o out program.cu\n```\n\nOther commands need to be executed to clean  up compiler-generated files and extent file compilation if the program has more than one file\n\n## Makefile\n\nThere is a Makefile, its execution is optional. Automates the build/compilation, execution, indentation and cleanup process\n\n### Building\n\n```\nmake target=program_filename_without_extension\n```\n\nor\n\n```\nmake all target=program_filename_without_extension\n```\n\n### Clean\n\n```\nmake clean target=program_filename_without_extension\n```\n\n### Running\n\n```\nmake run target=program_filename_without_extension\n```\n\n### Indent\n\n```\nmake indent target=program_filename_without_extension\n```\n\n### Example\n\nwhen a cuda device is available\n\n![Device Found](./device_found.png)\n\n\n### License\n\nMIT","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandreeo%2Fparallel-computing-cuda","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandreeo%2Fparallel-computing-cuda","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandreeo%2Fparallel-computing-cuda/lists"}