- 博客(5)
- 资源 (6)
- 收藏
- 关注
原创 多核编程技术4
4每层中,对每个节点建立barrel,为了达到负载均衡,通常对任务进行排序,np难题。如:80,30,10,5,2.可以分两个线程,80,30+10+5+2. 动态任务调度模式本地队列->共享队列。从共享队列中“偷”任务来完成,太高负载均衡的目的。实现算法简介:快排。动态内存排序时,将总任务分为两部分,即两个子任务,放入分布式队列中。如此往复迭代,知道分解为足够小的串行
2009-07-14 16:51:00 348
原创 多核编程技术3
$3数据处理:privatefirstprivatelastprivatereductioncopyin copyprivate数据竞争的例子,j在循环外面,会出现数据竞争。 可以转为循环内部,或者在外部声明为const。图像放缩的实例。OpenMP性能很好,尤其是简单的应用。但是经常碰到其他的问题。看“任务调度与伪代码”问题在于,使用dynamic的时
2009-07-14 16:00:00 491
原创 多核编程技术2
$2死锁与数据竞争:死锁:互相等待对方的资源。请看周伟明的《软件测试实践》;)尽量避免嵌套锁。数据竞争:比较烦,与死锁比较,更难避免。多线程推出与资源释放:以计数的方式统计各个线程已经结束。共享资源并行遍历:线程控制:Set_ThreadAffinity指定内核,执行指定线程。不同编程模型的对比与适用场景:OpenMP:简单的并行执行。缺点:容易出现数据
2009-07-14 11:26:00 574
原创 多核编程技术1
串行比例f串行时间k,把f看做n的函数,由于摩尔定律n上升, f下降,串行时间近似为常数。Gustafson定律:S(n) = n + (1-n)K = K + (1-K)n,总时间是1,k串行执行时间<1.如何实现串行比例f,随着内核数量增加,如何使得f降低呢?就是说串行部分在总执行部分的比例呢?比如,队列排队,需要多处枷锁操作,如何来减少这样的锁呢?1,减少串行执行代码
2009-07-14 10:30:00 513
SQL Server数据库基本原理
2009-04-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人