R语言如何并行处理[parallel package][向量化操作并行优化]
使用数据,长下面这样:
方法:使用parallel包,并行向量化处理,进一步提升原先向量化处理速度。
- 原始代码:
start <- Sys.time()
experiment_step1 <- apply(dtc_small_modify, 1, decompose)
end <- Sys.time()
print(end-start)
原始运行时间:3.083114 分
- 使用parallel包后
library(parallel) #并行处理包
cl.cores <- detectCores(logical = F) #计算电脑核心数
cl <- makeCluster(cl.cores) # 初始化要使用的核心数
start <- Sys.time()
results <- parApply(cl=cl, dtc_small_modify, 1, decompose) # apply的并行版本
stopCluster(cl) # 关闭并行模式
end <- Sys.time()
print(end-start)
并行后,运行时间:55.5877 秒,相较原先,速度提升了将近四倍!
Tips:上述是对向量化(Vectorization)apply类的并行处理。对于apply的并行处理,必须使用par开头的对应apply.列表如下:
parLapply(cl = NULL, X, fun, …, chunk.size = NULL)
parSapply(cl = NULL, X, FUN, …, simplify = TRUE, USE.NAMES = TRUE, chunk.size = NULL)
parApply(cl = NULL, X, MARGIN, FUN, …, chunk.size = NULL)
parRapply(cl = NULL, x, FUN, …, chunk.size = NULL)
parCapply(cl = NULL, x, FUN, …, chunk.size = NULL)
parLapplyLB(cl = NULL, X, fun, …, chunk.size = NULL)
parSapplyLB(cl = NULL, X, FUN, …, simplify = TRUE, USE.NAMES = TRUE, chunk.size = NULL)
使用apply类向量化操作后,常常产生大规模列表,可能需要将列表转成一个完整的大数据框。
res.df <- do.call(rbind,results) # 按行整合结果
df <- as.data.frame(res.df) #转成数据框
Tips:上面的do.call函数简单说明
END
R语言如何并行处理[parallel package][向量化操作并行优化]相关推荐
- R语言实现并行计算[parallel,Rdsm]
R语言实现并行计算[parallel,Rdsm] 最近在R中的学习并行计算 整个人被各种函数整的头都大了 所以准备专门写一条博文来总结 所谓R中的并行无非是 snow包multicore包和forea ...
- r语言 调用 c,R语言数据的输入和输出操作
数据的载入 R本身已经提供了超过50个数据集,而在众多功能包中,默认的数据集被存放在datasets程序包中,通过函数data()k可以查看系统提供所有的数据包,同时可以通过函数library()加载 ...
- R语言空间数据处理(part1)--基础数据操作与处理
学习笔记,仅供参考 学习书目:<R语言空间数据处理与分析实践教程>–卢宾宾; 基础数据操作与处理 设置工作路径,并导入包 workL = "F:/MyStudio/Rstudio ...
- R 语言怎么保存工作目录到当前路径_【R语言基础】01.R语言软件环境搭建及常用操作...
一.R语言简介 R语言是专业的统计分析软件,来自著名数据科学网站(http://www.kdnuggets.com/)发起的一个2019年统计分析和数据挖掘软件使用情况的调查结果: 表明R语言是该领域 ...
- R语言︱基本函数、统计量、常用操作函数
先言:R语言常用界面操作 帮助:help(nnet) = ?nnet =??nnet 清除命令框中所有显示内容:Ctrl+L 清除R空间中内存变量:rm(list=ls()).gc() 获取或者设置当 ...
- 【R语言】文件及路劲操作
大家可能对使用dos或者shell创建文件及文件夹或者查看和修改其属性并不陌生,其实R语言的基础函数中也囊括了文件夹和文件的基本操作函数,由于使用R的过程中会常常需要与文件打交道,因此一些基本的文件操 ...
- 【R语言与数据分析实战】数据操作(一):基于向量的处理与外部数据处理
目录 1.R中的常用数据集 2.读写CSV文件 (1) 读写CSV文件 (2) 读写对象文件 3.合并数据框的行与列 4.apply系数函数 (1) apply (2) lapply (3) sapp ...
- 云服务器上安装 R语言 以及 RStudio Server 详细图文操作(全)
目录 前言 1. 更换镜像源 2. 安装R 2.1 R包版本(最新) 3. 安装RStudio Server 4. 后续细节 4.1 关闭防火墙 4.2 入口规则(端口) 4.3 增加用户 5. 验证 ...
- 【已解决】R语言添加行、列,转置操作
严格来说,矩阵的长度和维度是固定的,因此不能增加或删除行或列.但是可以给矩阵重新赋值,这样可以得到和增加或删除一样的效果. 函数rbind()(代表row bind,按行组合)和函数cbind()(代 ...
最新文章
- HCNE题库附件、可下载
- 日报 18/06/04
- easyui---修改删除查询
- P2286 [HNOI2004]宠物收养场
- 如何将 kitten编程猫里的以分号分隔的长字符串转换成列表结构
- C++工作笔记-对继承的进一步认识
- php分页上一页下一页判断,一个分页函数:显示“上一页下一页”等
- windows域策略——配置组策略刷新间隔
- Mac系统升级node
- 走进Selenium新世界
- Yii框架官方指南系列42——专题:验证和授权(Authentication and Authori
- 个人记账软件测试初学者,好用的个人记账软件
- linux+路由器+刷机,某款小路由刷机方法介绍
- idea使用技巧总结,超实用(2年mac idea使用经验)
- java生成随机10位数字_用Java生成10个随机的四位数字
- 实习每日总结_20161212
- 电信计费综合管理系统
- 基于HSV颜色空间的辅助车牌定位
- win10系统桌面图标变为白色方框和去除桌面图标快捷方式小箭头的方法
- 如何通过python自动化薅短视频APP羊毛
热门文章
- 在dotnetnuke中去掉显示姓名中的空格
- flash as3笔记1
- 【技术博客】 利用Postman和Jmeter进行接口性能测试
- BugkuCTF web5
- 使用Android OpenGL ES 2.0绘图之三:绘制形状
- 一篇文章总结暴力破解方法大全
- 软件_git异常错误[博]
- 数据分析汇报用这个神器,让他们弃用了Excel和PPT
- flex里播放声音的方法
- tomcat 启动需要java环境吗?_三分钟教你Windows环境下,如何设置Tomcat随机自动启动?...