译注:计算机早已进入了多核时代,多核时代要求程序员能够编写并行的程序来充分发挥多处理器的功效。而编写并行/并发程序必须要对内存模型有所了解。因此本人特翻译了一篇有关内存模型综述性质的文章。初次翻译文章,错误在所难免,还望指教。原文地址:http://www.cs.nmsu.edu/~pfeiffer/classes/573/notes/consistency.html
注:有一...
分类:
其他好文 时间:
2014-12-15 12:10:53
阅读次数:
251
从Dremel和Impala的学习引申出了SQL查询的并行执行问题,于是借此机会深入学习一下关系数据库以及关系代数的并行计算。Speedup和ScaleupSpeedup指用两倍的硬件换来一半的执行时间。Scaleup指两倍的硬件换来同等时间内执行两倍的任务。但往往事情不是那么简单,两倍的硬件也会带来其他问题:更多CPU带来的长启动时间和通信开销,以及并行计算带来的数据倾斜问题。多处理器架构共享内...
分类:
其他好文 时间:
2014-12-13 15:12:15
阅读次数:
254
WindowsServer2012R2Hyper-V现已支持虚拟机内部的NUMA,即非一致内存访问。NUMA是一种多处理器系统计算机架构,这种架构下处理器访问内存所需的时间取决于内存与处理器的相对位置。通过使用NUMA,处理器可用比访问远程内存(属于系统中其他处理器的内存)更快的速度访问本地内..
分类:
其他好文 时间:
2014-12-09 02:00:25
阅读次数:
254
1.在.net4.0中,有了一个新的类库:任务并行库。它极大地简化了并行编程且内容丰富。这里仅介绍其中最简单的
Parallel.For循环和Parallel.ForEach循环。它们位于System.Threading.Tasks命名空间。它们是两个方法,这两个方法将迭代分别放在不同的处理器上并行处理,如果机器是多处理器或多核处理器,这样就会使性能大大提升。
2.例子用Parallel....
分类:
编程语言 时间:
2014-12-05 14:21:56
阅读次数:
272
命令式数据并行 Visual C# 2010和.NETFramework4.0提供了很多令人激动的新特性,这些特性是为应对多核处理器和多处理器的复杂性设计的。然而,因为他们包括了完整的新的特性,开发人员和架构师必须学习一种新的编程模型。这一章是一些新的类、结构体和枚举类型,你可以使用这里来处理数据....
一、自旋锁提出的背景 由于在多处理器系统环境中有些资源因为其有限性,有时需要互斥访问(mutual exclusion),这时会引入锁的机制,只有获取了锁的进程才能获取资源访问。即是每次只能有且只有一个进程能获取锁,才能进入自己的临界区,同一时间不能两个或两个以上进程进入临界区,当退出临界区时释.....
分类:
编程语言 时间:
2014-11-26 01:03:57
阅读次数:
10123
从系统架构来看,目前的商用服务器大体可以分为三类,即对称多处理器结构 (SMP : Symmetric Multi-Processor) ,非一致存储访问结构 (NUMA : Non-Uniform Memory Access) ,以及海量并行处理结构 (MPP : Massive Parallel...
分类:
其他好文 时间:
2014-11-12 19:45:42
阅读次数:
303
自旋锁(Spinlock)是一种 Linux 内核中广泛运用的底层同步机制。自旋锁是一种工作于多处理器环境的特殊的锁,在单处理环境中自旋锁的操作被替换为空操作。当某个处理器上的内核执行线程申请自旋锁时,如果锁可用,则获得锁,然后执行临界区操作,最后释放锁;如果锁已被占用,线程并不会转入睡眠状态,而是忙等待该锁,一旦锁被释放,则第一个感知此信息的线程将获得锁。...
分类:
其他好文 时间:
2014-11-11 21:09:31
阅读次数:
316
垃圾回收算法中收集器 接着上面的说,了解了JVM收集垃圾的过程,然后我们看一看收集器。 串行收集器:用单线程处理所有垃圾回收工作,因为无需多线程交互,所以效率比较高。但是,也无法使用多处理器的优势,所以此收集器适合单处理器机器。当然,此收集器也可以用在小数据量(100M左右)情况下的多处理器机器上。...
分类:
其他好文 时间:
2014-11-09 22:12:00
阅读次数:
350
从算法的实现向算法的设计转变,提供解决问题的思路1.贪心算法一种局部最优算法设计思路,思想是保证每一步选择在当前达到最优。一个很常见的贪心算法案例是零钱找取问题。调度问题:书上的调度问题比较简单,其目标是所有作业的平均持续时间(调度+运行)最短,无论是但处理器还是多处理器,最优解的方案总是按作业的长...
分类:
编程语言 时间:
2014-11-04 17:00:22
阅读次数:
372