美文网首页
R-小技巧-parallel多线程

R-小技巧-parallel多线程

作者: 小贝学生信 | 来源:发表于2021-05-17 22:05 被阅读0次

在遇到R里的大量重复操作时,可以考虑使用doParallel包提供的多线程处理技巧,大大提高分析速度。具体使用方法针对window与linux/mac平台有所区别。相关笔记如下

#查看系统平台
Sys.info()['sysname']

一、Linux/Mac平台

library(parallel)
# 检测系统的CPU数
detectCores()

1、lapply 多线程

  • mclapply()函数,关键是mc.cores参数设置
cores=4
res = mclapply(1:10, function(x){
    <code>
    <code>
    }, mc.cores = cores)

2、for循环 多线程

  • 配合foreach包。可通过调整参数,设置结果返回的形式,详见相关笔记,或者该包的帮助文档。
library(foreach)
library(doParallel)

cl=makeCluster(4)
registerDoParallel(cl) 
#专门加载所需要的分析包
clusterEvalQ(cl, library(package1))
clusterEvalQ(cl, library(package1)) 
 
res = foreach(i = 1:10) %dopar% {
    <code>
    <code>
    }
stopCluster(cl)

二、window平台

  • 个人觉得window平台的笔记本电脑可能还是不太适合多线程的使用
library(parallel)
# 检测系统的CPU数
detectCores()

1、lapply 多线程

  • parLapply()函数
cl <- makeCluster(4)
#专门加载所需要的分析包
clusterExport(cl, library(packages))
res=parLapply(cl, 1:10, function(x){
    <code>
    <code>
    })
stopCluster(cl) #需要显式的释放已加载的线程,比较麻烦

2、for循环的多线程调用同上


相关文章

  • R-小技巧-parallel多线程

    在遇到R里的大量重复操作时,可以考虑使用doParallel包提供的多线程处理技巧,大大提高分析速度。具体使用方法...

  • TestNg-09-多线程测试

    TestNg-09-多线程测试1、基于注解 2、基于xml parallel="classs" parallel=...

  • Chrome

    开启多线程下载chrome://flags/#enable-parallel-downloading

  • 【python】Parallel

    Parallel [TOC] 并行化程序和多线程。一般用thread或者threading,multiproces...

  • OpenMP多线程——Parallel for

    多线程——线程同步 数据竞争问题 线程互斥同步——critical 线程互斥同步——atmoic 线程互斥同步——...

  • R 多线程跑任务 ----- parallel

    使用的R包 library(parallel),实现多线程操作。多线程即将任务分配到多个核中,能够缩减运行时间。p...

  • C# 多线程的使用

    此篇文章简单总结了C#中主要的多线程实现方法,包括Thread、ThreadPool、Parallel和Task类...

  • fastq-dump、fasterq-dump和parallel

    最近新发现一个工具——parallel-fastq-dump,能多线程运行fastq-dump处理SRA文件,而且...

  • JVM垃圾回收器

    1.JVM垃圾回收器 单线程回收器SerialSerial Old 多线程回收器(吞吐量优先)Parallel S...

  • R中进行parallel并行运算

    R语言的内置并行包parallel,可以进行多线程调用。其使用方法类似于apply家族函数,常用parApply ...

网友评论

      本文标题:R-小技巧-parallel多线程

      本文链接:https://www.haomeiwen.com/subject/whrsjltx.html