
并发编程
文章平均质量分 90
napu_sh
半路出家的机械师
展开
-
多核编程文章汇总
转载自 http://blog.youkuaiyun.com/drzhouweiming/article/details/4019792以下为截止2009年3月21日前发布在本人博客中的多核相关的文章汇总,这些文章大部分摘自于我写的《多核计算与程序设计》一书。现将这些文章分类汇总,方便大家阅转载 2011-07-26 23:56:42 · 797 阅读 · 0 评论 -
OpenMP编程指南
转自 http://blog.youkuaiyun.com/drzhouweiming/article/details/4093624进入多核时代后,必须使用多线程编写程序才能让各个CPU核得到利用。在单核时代,通常使用操作系统提供的API来创建线程,然而,在多核系统中,情况发生了很大的变化, 如果仍然使用操作系统API来创建线程会遇到一些问题。具体来说,有以下三个问题:1)CPU转载 2012-02-06 17:44:45 · 682 阅读 · 0 评论 -
VC上使用OpenMP并行程序设计
转自 http://blog.chinaunix.net/uid-423637-id-357688.htmlVC上使用OpenMP并行程序设计最近由于工作的需要,一直在研究并行程序设计,试图采用多线程来解决工作中的问题。WIN32线程控制主要实现线程的创建、终止、挂起和恢复等操作,这些操作都依赖于WIN32提供的一组API和具体编译器的C运行时库函数。在启动一个线程之前,必须为线程转载 2012-05-09 15:43:58 · 1402 阅读 · 0 评论 -
openmp概念
转自 http://baike.baidu.com/view/1687659.htmOpenMp简介 OpenMp是由OpenMP Architecture Review Board牵头提出的,并已被广泛接受的,用于共享内存并行系统的多线程程序设计的一套指导性注释(Compiler Directive)。OpenMP支持的编程语言包括C语言、C++和Fortran;而支持Open转载 2012-05-09 14:51:39 · 666 阅读 · 0 评论 -
OpenMP和MPI
MPI(MPI是一个标准,有不同的具体实现,比如MPICH等)是多主机联网协作进行并行计算的工具,当然也可以用于单主机上多核/多CPU的并行计算,不过效率低。它能协调多台主机间的并行计算,因此并行规模上的可伸缩性很强,能在从个人电脑到世界TOP10的超级计算机上使用。缺点是使用进程间通信的方式协调并行计算,这导致并行效率较低、内存开销大、不直观、编程麻烦。OpenMP是针对单主机上多核/多CP转载 2012-05-09 14:54:21 · 869 阅读 · 0 评论 -
在Windows下使用MingGW[GCC+OpenMP]和CodeBlocks开发多核应用基本环境配置
转自 http://blog.youkuaiyun.com/danny_xcz/article/details/3332251 从06年开始,多核开发已经越来越多的成为所有应用设计必须考虑的问题。我使用MingGW+CodeBlocks来测试OpenMP多核计算框架。虽然VC8里面已经有了对OpenMP的支持,但是VC体积有点大,而且众所周知的MS编译器在兼容性上的问题,所以决定采用标准的GC转载 2012-05-09 15:21:33 · 1733 阅读 · 0 评论 -
多核开发入门指南
转自 http://blog.youkuaiyun.com/danny_xcz/article/details/3345277一、为什么需要多核开发? 答案很简单,目前的芯片制造技术对CPU主频的提升已经达到一个极限了,也就是说性能的垂直伸缩已经不太可能了。因此通过多核的方法,可以让程序横向的伸缩,这就类似于用多台服务器实现负载均衡(水平伸缩),而不是简单的靠将服务器升级成小型机来提供处转载 2012-05-09 15:37:43 · 736 阅读 · 0 评论 -
并发编程的 15 条建议(译)
转自 http://blog.youkuaiyun.com/solstice/article/details/5915355内核专家 Bryan Cantrill 和 Jeff Bonwick 在 2008 年 9 月的《ACM Queue》上发表了《Real-world Concurrency》 一文,提出了 15 条并发编程的建议,这里简单摘录如下。1. Know your cold转载 2012-07-24 14:18:29 · 1153 阅读 · 0 评论 -
在Windows下使用OpenCL
转自 http://www.kimicat.com在Windows下使用OpenCL目前,NVIDIA 和 AMD 的 Windows driver 均有支援 OpenCL(NVIDIA 的正式版 driver 是從 195.62 版开始,而 AMD 则是从 9.11 版开始)。NVIDIA 的正式版 driver 中包含 OpenCL.dll,因此可以直接使用。A转载 2012-08-30 16:07:34 · 1361 阅读 · 2 评论 -
双剑合璧:CPU+GPU异构计算完全解析
转自 http://www.beareyes.com.cn/2/lib/201106/20/20110620416_0.htm并行计算:让处理的速度变得更快 相对于串行计算,并行计算可以划分成时间并行和空间并行。时间并行即流水线技术,空间并行使用多个处理器执行并发计算,当前研究的主要是空间的并行问题。以程序和算法设计人员的角度看,并行计算又可分为数据并行和任务并行转载 2012-08-22 20:53:48 · 5079 阅读 · 0 评论 -
遇见C++ PPL:C++ 的并行和异步
转自 http://www.cnblogs.com/allenlooplee/archive/2012/07/25/2608820.html遇见C++ PPL:C++ 的并行和异步 Written by Allen Lee You held it all, but you were careless to let it fall. You hel转载 2012-08-22 22:01:01 · 1602 阅读 · 0 评论 -
遇见C++ AMP:在GPU上做并行计算
转自 http://www.cnblogs.com/allenlooplee/archive/2012/08/15/2640644.html遇见C++ AMP:在GPU上做并行计算 Written by Allen Lee I see all the young believers, your target audience. I see all转载 2012-08-22 22:07:15 · 1543 阅读 · 0 评论 -
遇见C++ Lambda
转自 http://www.cnblogs.com/allenlooplee/archive/2012/07/03/2574119.html遇见C++ Lambda Written by Allen Lee If you die when there's no one watching, and your ratings drop and you转载 2012-08-22 22:00:14 · 724 阅读 · 0 评论 -
Hadoop的那些事儿
转自 http://www.searchtb.com/2010/11/talk-about-hadoop.html在说Hadoop之前,作为一个铁杆粉丝先粉一下Google。Google的伟大之处不仅在于它建立了一个强悍的搜索引擎,它还创造了几项革命性的技术:GFS,MapReduce,BigTable,即所谓的Google三驾马车。Google虽然没有公布这几项技术的实现代码,但它发表了转载 2013-01-04 17:16:46 · 765 阅读 · 0 评论 -
云计算浅谈
转自 http://www.changhai.org/articles/technology/misc/cloud_computing.php一. 引言我们这个时代是一个互联网的时代, 但不知大家有没有注意过, 与其它一些连网的东西——比如管道煤气——相比, 我们使用互联网的方式是比较特别的。 比如我们的计算机虽然连在了互联网上, 我们却依然要常常为它购买软件或存储空间转载 2012-01-18 22:50:02 · 955 阅读 · 0 评论 -
《Win32多线程程序设计》学习笔记---(合集)
小记: 当口上需要写一个p2p程序,设计底层线程结构时,想用事件去控制多线程的调度。可惜看书的年代太久远了,实在记不起来event中的set/reset的那些区别,只好上网搜索。发现这位未知名仁兄的文章写的实在清楚,不敢独享,转贴如下: 转自 http://www.diybl.com/course/3_program/c++/cppjs/2007918/71872.htm转载 2008-09-19 22:23:00 · 1019 阅读 · 0 评论 -
Double Checked Locking 模式
转自http://docs.huihoo.com/ace_tao/double_checked_locking.html 意图无论什么时候当临界区中的代码仅仅需要加锁一次,同时当其获取锁的时候必须是线程安全的,可以用Double Checked Locking 模式来减少竞争和加锁载荷。动机1、标准的单例。开发正确的有效的并发应用是困难的。程序员必须学习新的技术(并发控转载 2010-05-11 19:00:00 · 1761 阅读 · 0 评论 -
无锁的 ( lock-free ) 线程安全算法
转载自http://blog.youkuaiyun.com/jadedrip/article/details/1731554友情提示:对 Lock-free 算法没概念的朋友,请先看下面的参考。算法描述Lock-free 算法的基础是 CAS (Compareand-Swap) 原子操作。当转载 2011-07-27 00:02:12 · 940 阅读 · 0 评论 -
多核编程中的线程随机竞争模式的概率分析
转载自http://blog.youkuaiyun.com/drzhouweiming/article/details/1689789多核编程中的线程随机竞争模式的概率分析 前一篇多核编程中的线程分组竞争模式中谈到了让线程分组竞争以解决多核CPU遇到的锁竞争导致的饥饿问题。并不是任意的共享数转载 2011-07-26 23:59:53 · 769 阅读 · 0 评论 -
获取进程模块的信息
转自 http://dev.rdxx.com/VC/Process/2002-5/15/040726450.shtml 一、实现原理: 首先通过CreateToolhelp32Snapshot函数创建一个进程的快照,然后通过调用Process32First使用快照返回的句柄对进程进行遍历,相关的信息存放在PROCESSENTRY32结构类型的实例中,通过调用内部的一个函数GetPro转载 2008-09-19 22:20:00 · 896 阅读 · 0 评论 -
多核机器上多线程内存敏感程序的可伸缩性
原文出处:http://www.codeproject.com/KB/cpp/rtl_scaling.aspx翻译此文也是一个学习的过程,因为在多CPU下的编程和单CPU下看起来区别巨大,就方向而言,OpneMP,MPI,TBB发展的都很快,当然快速也许就意味着一些技术会被淘汰。而本文只是对现有单核编程的改良,和上述方向无关,只是为了尽可能解决现有程序的问题,而尽量做最小改动。翻译 2010-02-22 21:19:00 · 3214 阅读 · 0 评论 -
对Linux内核中进程上下文和中断上下文的理解
转自http://www.cctime.com/html/2010-3-3/2010331051391.htm 内核空间和用户空间是操作系统理论的基础之一,即内核功能模块运行在内核空间,而应用程序运行在用户空间。现代的CPU都具有不同的操作模式,代表不同的级别,不同的级别具有不同的功能,在较低的级别中将禁止某些操作。Linux系统设计时利用了这种硬件特性,使用了两个级别,最高级别和最低级别转载 2010-05-05 23:41:00 · 608 阅读 · 0 评论 -
信号量与自旋锁
转自http://www.cnitblog.com/zouzheng/archive/2008/02/26/40164.html 内核同步措施 为了避免并发,防止竞争。内核提供了一组同步方法来提供对共享数据的保护。 我们的重点不是介绍这些方法的详细用法,而是强调为什么使用这些方法和它们之间的差别。 Linux 使用的同步机制可以说从2.0到2.6以来不断发展完善。从最初的原转载 2010-05-05 23:46:00 · 791 阅读 · 0 评论 -
BKL(大内核锁)
转自http://blog.youkuaiyun.com/qinzhonghello/archive/2008/12/20/3564984.aspx BKL(大内核锁)是一个全局自旋锁,使用它主要是为了方便实现从Linux最初的SMP过度到细粒度加锁机制。 BKL的特性:持有BKL的任务仍然可以睡眠 。因为当任务无法调度时,所加的锁会自动被抛弃;当任务被调度时,锁又会被重新获得。当然,并不是说转载 2010-05-06 00:04:00 · 972 阅读 · 0 评论 -
Handle table中CAS操作与A-B-A Problem解析
转自 http://www.cnblogs.com/lbq1221119/archive/2008/08/18/1270318.html在研究handle table的时候顺便研究的东西。Baidu了下,发现国内这方面的资料几乎没得,然后就准备瞎bb下,为下面的一篇介绍handle table的结构做准备。关于lock-free data structure。以及解决这个问题中使用的CAS(转载 2010-05-12 11:07:00 · 1130 阅读 · 0 评论 -
在Intel(R) Core(TM) i7 处理器上的Intel(R) VTune(TM) Performance Analyzer 的性能计数器
<br /><br />转自http://software.intel.com/zh-cn/blogs/2009/03/18/intelr-coretm-i7-intelr-vtunetm-performance-analyzer/<br /> <br />以前在CDSN的多核软件开发论坛上发表过有关Intel(R) Core(TM) 2 Duo 的性能计数器的论述(http://topic.youkuaiyun.com/u/20080527/17/44d9ebf9-959d-4495-8456-62e4b2d40f0转载 2010-06-22 16:55:00 · 2122 阅读 · 0 评论 -
多线程服务器的常用编程模型
本文转自 http://blog.youkuaiyun.com/solstice/archive/2010/02/12/5307710.aspx 多线程服务器的常用编程模型 陈硕 (giantchen_AT_gmail)Blog.youkuaiyun.com/Solstice2009 Feb 12 建议阅读本文 PDF 版下载: http://files.cppblog.com/S转载 2011-06-10 11:13:00 · 900 阅读 · 0 评论 -
多线程 or 多进程 (转强力推荐)
转自http://archive.cnblogs.com/a/1811381/在Unix上编程采用多线程还是多进程的争执由来已久,这种争执最常见到在C/S通讯中服务端并发技术 的选型上,比如WEB服务器技术中,Apache是采用多进程的(perfork模式,每客户连接对应一个进程,每进程中只存在唯一一个执行线程), Java的Web容器Tomcat、Websphere等都是多线程的(每客户连接对应一个线程,所有线程都在一个进程中)。从Unix发展历史看,伴随着Unix的诞生进程就出现了,而线程很晚才被系统支转载 2011-04-22 14:05:00 · 1692 阅读 · 0 评论 -
高性能服务器注意事项
转自http://www.open-china.net/blog/45941.html对于这里所说的服务器,更精确的定义应该是每秒处理大量离散消息或者请求的服务程序,网络服务器更符合这种情况,但并非所有的网络程序都是严格意义上的服务器。使用“高性能请求处理程序”是一个很糟糕的标题转载 2011-07-24 09:48:00 · 839 阅读 · 0 评论 -
多线程编程杂谈
多线程编程原创 2013-07-11 18:50:20 · 2303 阅读 · 0 评论