显示标签为“并行计算”的博文。显示所有博文
显示标签为“并行计算”的博文。显示所有博文

星期三, 九月 26, 2012

用Parallel和foreach包玩转并行计算


众所周知,在大数据时代R语言有两个弱项,其中一个就是只能使用单线程计算。但是在2.14版本之后,R就内置了parallel包,强化了R的并行计算能力。parallel包实际上整合了之前已经比较成熟的snow包和multicore包。前者已经在之前的文章中介绍过了,而后者无法在windows下运行,所以也就先不管了。parallel包可以很容易的在计算集群上实施并行计算,在多个CPU核心的单机上,也能发挥并行计算的功能。我们今天就来探索一下parallel包在多核心单机上的使用。

parallel包的思路和lapply函数很相似,都是将输入数据分割、计算、整合结果。只不过并行计算是用到了不同的cpu来运算。下面的例子是解决欧拉问题的第14个问题

星期二, 二月 07, 2012

使用snow包实现双核心并行计算


在数据挖掘和机器学习领域有许多的算法需要强大的计算能力,如果对大数据进行运算操作,那么其工作量之大使单个CPU核心难以承受负荷。目前的个人计算机已经具备有多个核心,如果采用并行计算将任务分解到多个核心上运行就能大大减少计算时间。进一步还可以将多台计算机组合成计算集群(Cluster)则能使之具备组合金刚般的运算能力。

目前已经有多个R语言扩展包专注于高性能运算,弥补了R本身单核心作业的弱点。其中snow(Simple Network of Workstations)是R语言中最流行的并行编程包于2003年推出,本文将尝试用snow来运算K均值聚类