并行计算
文章平均质量分 66
FB1024
这个作者很懒,什么都没留下…
展开
-
Linux下配置eclipse+zeroMQ
1.创建一个C工程 2.添加链接库 右键工程Properties->C/C++ Build->Settings 添加zeromq安装路径下的include 添加zeromq安装路径下的lib文件,并在Libraries(-l)中添加一项,填入zmq。 3.示例 Server:#include <...原创 2017-04-10 21:05:46 · 178 阅读 · 0 评论 -
Linux下安装zeroMQ
1.下载zeroMQ(附件添加了zeromq-4.2.1.tar.gz) 下载网址:http://zeromq.org/area:download/2.解压 #tar -zxvf zeromq-4.2.1.tar.gz #cd zeromq-4.2.1 #./configure --prefix=/usr/local/zeromq 提示 No ...原创 2017-04-10 09:58:15 · 647 阅读 · 0 评论 -
CUDA warp divergence与bank conflict
1.Warp Divergence warp是SM的基本执行单元。一个warp包含32个并行thread,这32个thread执行于SMIT模式。也就是说所有thread 执行同一条指令,并且每个thread会使用各自的data执行该指令。 因为所有同一个warp中的thread必须执行相同的指令,那么如果这些线程在遇到控制流语句时,如果进入不同的分支,那么同一时刻除了正在执行...原创 2016-12-28 15:34:03 · 803 阅读 · 0 评论 -
CUDA-设备属性
struct cudaDeviceProp{ char name[256]; /**< 设备的ASCII标识 */ size_t totalGlobalMem; /**< 可用的全局内存量,单位字节 */ size_t totalConstMem; /**< 可用的常量...原创 2016-12-28 13:15:40 · 340 阅读 · 0 评论 -
CUDA-寄存器使用
1.重要概念存储带宽:在一定时间内从DRAM读出或写入的数据量延迟:响应一个获取内存的请求所花费的时间,这个时间通常是上百个处理器周期2.SM,SP,Grid,Block,thread,warp 从硬件角度讲:SM(流多处理器),一个SM可以看作是一个多线程的CPU核,一个GPU包含多个SM,一个SM包含有多个SP(流处理器),1.x硬件,一个SM包含8个SP,2.0是3...原创 2016-12-26 13:58:33 · 777 阅读 · 0 评论 -
CUDA-从GPU结构理解线程
原文地址: http://blog.csdn.net/sunmc1204953974/article/details/51074102 在使用GPU线程时不是线程越多就越好,其实从硬件角度分析,支持CUDA的NVIDIA 显卡,都是由多个multiprocessors 组成。每个 multiprocessor 里包含了8个stream processors,其组成是四个...原创 2016-09-18 10:41:51 · 612 阅读 · 0 评论 -
CUDA--Unified Memory
在我们编写CUDA程序时我们经常要对CPU和GPU上分配内存和管理,这样就增加了编写程序发复杂度。在cuda6后引入了统一寻址(Unified Memory)技术,该技术使得CPU和GPU使用同一个指针对同一块内存进行处理,省去了原始的在CPU和CPU分配内存然后来回拷贝的过程,简化了程序的编写。 统一寻址创建了一块托管内存(managed memory),这是在CPU...原创 2016-09-13 13:40:21 · 231 阅读 · 0 评论 -
CUDA-流
页锁定内存: cudaHostAlloc()分配页锁定内存,页锁定内存也称为固定内存或不可分页内存,它有一个重要的属性:操作系统将不会对这块内存分页并交换到磁盘上,从而确保了该内存始终驻留在物理内存中。流: cuda流用于任务的并行。任务并行性是指并行执行两个或多个不同的任务,而不是在大量数据上执行同一个任务的数据并行性。比如处理同一副图,你用一个流处理左边半张图片,...原创 2016-09-08 13:32:40 · 129 阅读 · 0 评论 -
CUDA-aware MPI
现在越来越多的高性能并行计算将MPI与GPU结合起来:MPI的将任务并行分发,CUDA进行并行计算。大大提高了并行效率。然而我们知道在GPU上进行计算时常常出现数据重CPU到GPU或从GPU到CPU的拷贝过程,在数据量大的情况下这种拷贝过程往往会花费很多时间。因此英伟达公司实现了一种新的技术:CUDA-aware MPI。改技术实现了GPU缓存的直接访问,这样就很好地避免了在使用MPI...原创 2016-06-26 15:22:10 · 1672 阅读 · 3 评论 -
CUDA—两个数组相加
使用CUDA实现两个数组的相加,熟悉CUDA相关函数的使用。#include <cuda_runtime.h>#include <stdio.h>__global__ void addKernel( int* c, const int* a, const int* b ){ int i = threadIdx.x; ...原创 2016-05-24 13:00:18 · 720 阅读 · 0 评论 -
MPI实现矩阵相乘
处理流程如下:1.主进程进行矩阵的初始化2.根据进程数对两个矩阵进行切割3.将切割好的子块矩阵发送给相应进程进行相乘4.主进程对各个进程计算结果求和 切割方式:A*B=C 代码查看附件(Linux下C语言编写) ...原创 2016-12-06 10:50:17 · 1343 阅读 · 1 评论 -
MPI学习笔记
MPI是一个跨语言的通讯协议,用于编写并行计算机。支持点对点和广播。MPI是一个信息传递应用程序接口,包括协议和和语义说明,他们指明其如何在各种实现中发挥其特性。MPI的目标是高性能,大规模性,和可移植性。MPI在今天仍为高性能计算的主要模型。1.MPI初始函数 头文件: mpi.h/mpif.h. int MPI_Init(int *argc, char ***arg...原创 2016-05-16 10:49:31 · 388 阅读 · 0 评论 -
并行计算学习之OpenMP
1. OpenMP基本概念 OpenMP是共享存储体系结构上的 一个并行编程模型。适合于SMP共享内存多处理系统和多核处理器体系结构。 OpenMP是基于线程的并行编程模型。 OpenMP采用Fork-Join并行执行方式: OpenMP程序开始于一个单独的主线程(Master Thread),然后主线程一直串行执行,直到遇见第一个并行域(Parallel Re...原创 2016-04-16 21:17:45 · 248 阅读 · 0 评论 -
并行计算学习之Pthread
1.线程与进程 相对进程而言,线程是一个更加接近于执行体的概念,它可以与同进程中的其他线程共享数据,但拥有自己的栈空间,拥有独立的执行序列。在串行程序基础上引入线程和进程是为了提高程序的并发度,从而提高程序运行效率和响应时间。 线程和进程在使用上各有优缺点:线程执行开销小,但不利于资源的管理和保护;而进程正相反。同时,线程适合于在SMP机器上运行,而进程则可以跨机...原创 2016-04-14 13:53:57 · 570 阅读 · 0 评论