1、简介 随着多核时代的到来,并行开发越来越展示出它的强大威力!使用并行程序,充分的利用系统资源,提高程序的性能。在.net 4.0中,微软给我们提供了一个新的命名空间:System.Threading.Tasks。2、测试类using System;using System.Collection....
分类:
编程语言 时间:
2015-01-14 19:51:53
阅读次数:
254
之前写了两篇文章一个是KNN算法的C++串行实现,另一个是CUDA计算向量的欧氏距离。那么这篇文章就可以说是前两篇文章的一个简单的整合。在看这篇文章之前可以先阅读前两篇文章。
一、生成数据集
现在需要生成一个N个D维的数据,没在一组数据都有一个类标,这个类标根据第一维的正负来进行标识样本数据的类标:Positive and Negative。
#!/usr/bin/python
i...
分类:
编程语言 时间:
2014-12-26 16:40:41
阅读次数:
200
本文将介绍如何用cuda来计算两个向量之间的欧式距离,其中涉及到了如果将二维矩阵传入到核函数进行计算的问题,并且介绍两个内存分配和拷贝的API:cudaMallocPitch以及cudaMemcpy2D。
一、需求分析
现在我们要解决这么一个问题:计算一个D维的向量A[D]到二维矩阵B[N][D]的每一行的欧式距离,并且将每一组距离保存在一个向量dis[N]中并返回。...
分类:
其他好文 时间:
2014-12-25 13:09:42
阅读次数:
259
进行mpi并行编程时候,win8下使用mpich2时候,安装目录下找到wmpiexec.exe程序打开,填入编写好的.exe程序地址并制定执行的任务数目的想要运行时候,出现错误:unabletoconnecttoxxxx-PConport8676,由于目标计算机积极拒绝,无法连接解决方法:打开服务M...
分类:
其他好文 时间:
2014-12-23 16:49:49
阅读次数:
1169
async 和 await 出现在C# 5.0之后,给并行编程带来了不少的方便,特别是当在MVC中的Action也变成async之后,有点开始什么都是async的味道了。但是这也给我们编程埋下了一些隐患,有时候可能会产生一些我们自己都不知道怎么产生的Bug,特别是如果连线程基础没有理解的情况下,更不...
分类:
其他好文 时间:
2014-12-21 21:56:31
阅读次数:
418
前面介绍了基本的Cuda编程的相关知识,那么这一篇在此基础之上来看看GPU在处理数据计算上的高效能,我们拿矩阵相乘来作为例子。
1.CPU上执行矩阵相乘以及性能。
2.GPU上执行矩阵相乘以及性能。
3.性能对比。...
分类:
其他好文 时间:
2014-12-12 23:39:16
阅读次数:
592
本文将通过矢量求和运算来说明基本的Cuda并行编程的基本概念。所谓矢量求和运算,就是两个数组数据中对应的元素两两相加,并将结果保存在第三个数组中。如下图所示:
1.基于CPU的矢量求和:
代码非常简单:
#include
using namespace std;
const int N =10;
void add( int *a ,int *b , int *c)
{...
分类:
其他好文 时间:
2014-12-12 19:16:14
阅读次数:
205
要想编写高效的程序,那么一定要对内存结构有比较深刻的认识,就像C/C++里面的堆内存,栈内存,全局存储区,静态存储区,常量区等。Cuda是并行计算框架,而GPU的内存有限,那么如果想编写高效的Cuda程序,首先要对其内存结构有一个简单的认识。...
分类:
其他好文 时间:
2014-12-12 00:05:52
阅读次数:
298
任何多线程/并行/分布式都会面临一个问题,“数据状态共享"。
有经验的开发者会说,要想正确有效的避开避开状态共享,那么就应该别用任何状态共享。
虽然不得不说,这是一个不错的建议,但是没有状态共享,你需要如何才能知道非本地数据的状态?
也许你会说使用消息,使用消息来处理,那么我们丑陋的回调金字塔应该叠的更高了。
不得不说这是一个解决办法,但是为了保持状态不被修改,那么我们还得在远程申请一个写...
分类:
其他好文 时间:
2014-12-11 12:23:57
阅读次数:
135
1.在.net4.0中,有了一个新的类库:任务并行库。它极大地简化了并行编程且内容丰富。这里仅介绍其中最简单的
Parallel.For循环和Parallel.ForEach循环。它们位于System.Threading.Tasks命名空间。它们是两个方法,这两个方法将迭代分别放在不同的处理器上并行处理,如果机器是多处理器或多核处理器,这样就会使性能大大提升。
2.例子用Parallel....
分类:
编程语言 时间:
2014-12-05 14:21:56
阅读次数:
272