Parallel_Programming:使用 openMP、openMPI 和 CUDA 进行并行编程-源码

上传者: 42138545 | 上传时间: 2021-07-07 23:18:24 | 文件大小: 78KB | 文件类型: ZIP
C
并行编程(CUDA、openMP、MPI) 介绍 这个存储库包含一些并行编程的实现。 使用了 3 种技术:* 用于共享内存拓扑的 openMP * 用于分布式内存拓扑的 openMPI * 用于 GPU(图形处理单元)的 CUDA 项目一 描述 该项目包含使用 openMP 和 openMPI 的线性系统高斯算法的并行化实现,并比较各种并行实现与串行实现之间的并行化和时间增益。 在文件 LU_serial.c 中,已经给出了原始序列号。 使用 openMPI 的算法有 4 个并行实现,它们在数据分配类型和进程之间的通信类型方面有所不同。 第一种类型的数据分配是连续块分配。 因此,如果我们有一个 100x100 元素和 n 个进程的数组,则该数组的前 100/n 行分配给第一个进程,接下来的 100/n 行分配给下一个进程。 第二种数据分配类型是数据的循环分配。 所以,如果我们有一个 10

文件下载

资源详情

[{"title":"( 45 个子文件 78KB ) Parallel_Programming:使用 openMP、openMPI 和 CUDA 进行并行编程-源码","children":[{"title":"Parallel_Programming-master","children":[{"title":"README.md <span style='color:#111;'> 6.98KB </span>","children":null,"spread":false},{"title":"Project3","children":[{"title":"timer.c <span style='color:#111;'> 1.72KB </span>","children":null,"spread":false},{"title":"gpu_util.h <span style='color:#111;'> 1.42KB </span>","children":null,"spread":false},{"title":"timer.h <span style='color:#111;'> 1.31KB </span>","children":null,"spread":false},{"title":"cuPrintf.cuh <span style='color:#111;'> 7.09KB </span>","children":null,"spread":false},{"title":"apsp_main.c <span style='color:#111;'> 4.35KB </span>","children":null,"spread":false},{"title":"gpu_util.cu <span style='color:#111;'> 1.77KB </span>","children":null,"spread":false},{"title":"graph.h <span style='color:#111;'> 3.12KB </span>","children":null,"spread":false},{"title":"common.h <span style='color:#111;'> 1.70KB </span>","children":null,"spread":false},{"title":"alloc.c <span style='color:#111;'> 1.57KB </span>","children":null,"spread":false},{"title":"gpu_kernels.cu <span style='color:#111;'> 17.52KB </span>","children":null,"spread":false},{"title":"cpu_kernels.c <span style='color:#111;'> 1.14KB </span>","children":null,"spread":false},{"title":"graph.c <span style='color:#111;'> 7.45KB </span>","children":null,"spread":false},{"title":"error.c <span style='color:#111;'> 2.44KB </span>","children":null,"spread":false},{"title":"gpuinfo.c <span style='color:#111;'> 13.80KB </span>","children":null,"spread":false},{"title":"Makefile <span style='color:#111;'> 3.66KB </span>","children":null,"spread":false},{"title":"cuPrintf.cu <span style='color:#111;'> 31.13KB </span>","children":null,"spread":false},{"title":"alloc.h <span style='color:#111;'> 1.18KB </span>","children":null,"spread":false},{"title":"error.h <span style='color:#111;'> 1.23KB </span>","children":null,"spread":false}],"spread":false},{"title":"Project2","children":[{"title":"Serial","children":[{"title":"mm_serial_for.c <span style='color:#111;'> 4.01KB </span>","children":null,"spread":false},{"title":"mm_serial_spawn.c <span style='color:#111;'> 4.06KB </span>","children":null,"spread":false},{"title":"Makefile <span style='color:#111;'> 677B </span>","children":null,"spread":false}],"spread":true},{"title":"Recursive","children":[{"title":"mm_recursive.c <span style='color:#111;'> 6.93KB </span>","children":null,"spread":false},{"title":"Makefile <span style='color:#111;'> 231B </span>","children":null,"spread":false}],"spread":true},{"title":"Strassen","children":[{"title":"mm_strassen.h <span style='color:#111;'> 1.83KB </span>","children":null,"spread":false},{"title":"Makefile <span style='color:#111;'> 265B </span>","children":null,"spread":false},{"title":"mm_parallel_strassen.c <span style='color:#111;'> 8.63KB </span>","children":null,"spread":false}],"spread":true},{"title":"Original Code","children":[{"title":"mm_recursive.h <span style='color:#111;'> 1.61KB </span>","children":null,"spread":false},{"title":"mm_tiled.h <span style='color:#111;'> 1.02KB </span>","children":null,"spread":false},{"title":"mm_tiled.c <span style='color:#111;'> 5.22KB </span>","children":null,"spread":false},{"title":"mm_strassen.h <span style='color:#111;'> 1.72KB </span>","children":null,"spread":false},{"title":"mm_recursive.c <span style='color:#111;'> 6.67KB </span>","children":null,"spread":false},{"title":"mm_serial.c <span style='color:#111;'> 3.45KB </span>","children":null,"spread":false},{"title":"Makefile <span style='color:#111;'> 375B </span>","children":null,"spread":false},{"title":"mm_strassen.c <span style='color:#111;'> 8.24KB </span>","children":null,"spread":false}],"spread":true},{"title":"Tiled","children":[{"title":"par_mm_tiled2_c_j.c <span style='color:#111;'> 6.38KB </span>","children":null,"spread":false}],"spread":true}],"spread":true},{"title":"Project1","children":[{"title":"LU_block_p2p.c <span style='color:#111;'> 5.18KB </span>","children":null,"spread":false},{"title":"LU_cyclic_bcast.c <span style='color:#111;'> 5.12KB </span>","children":null,"spread":false},{"title":"utils.c <span style='color:#111;'> 1.87KB </span>","children":null,"spread":false},{"title":"utils.h <span style='color:#111;'> 1008B </span>","children":null,"spread":false},{"title":"LU_cyclic_p2p.c <span style='color:#111;'> 5.43KB </span>","children":null,"spread":false},{"title":"LU_serial.c <span style='color:#111;'> 1.41KB </span>","children":null,"spread":false},{"title":"LU_block_bcast.c <span style='color:#111;'> 4.83KB </span>","children":null,"spread":false},{"title":"Makefile <span style='color:#111;'> 857B </span>","children":null,"spread":false},{"title":"LU_omp.c <span style='color:#111;'> 1.50KB </span>","children":null,"spread":false}],"spread":true}],"spread":true}],"spread":true}]

评论信息

免责申明

【只为小站】的资源来自网友分享,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,【只为小站】 无法对用户传输的作品、信息、内容的权属或合法性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论 【只为小站】 经营者是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。
本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二条之规定,若资源存在侵权或相关问题请联系本站客服人员,zhiweidada#qq.com,请把#换成@,本站将给予最大的支持与配合,做到及时反馈和处理。关于更多版权及免责申明参见 版权及免责申明