R- future.apply 并行包用法简概
2023-05-11 本文已影响0人
倪桦
future.apply
是一个基于future包的并行计算工具包,提供了一种简单而高效的方式来并行化 apply函数族
的操作。
- 并行计算:future.apply包可以将apply函数族的操作并行化,从而加速计算过程。这对于大规模数据的处理和计算非常有用。
- 易于使用:future.apply包的语法与apply函数族的语法非常相似,因此用户可以很容易地将现有的代码转换为并行化的代码。
- 灵活性:future.apply包支持多种并行计算模式,包括multicore、multisession和cluster等模式,用户可以根据自己的需求选择最适合的模式。
- ①multicore模式 使用多核CPU来进行并行计算,它可以在同一个进程中启动多个线程,从而实现并行计算。适用于计算密集型任务,比如大规模的矩阵计算、模拟等。(Windows上暂不支持)
- ②multisession模式 使用多个独立的R进程来进行并行计算,每个进程都是独立的,它们之间可以并行执行任务,从而提高计算效率。这种模式适用于 IO密集型任务,比如读写文件、网络通信等。
- 可扩展性:future.apply包可以与其他future包一起使用,例如future.callr、future.batchtools和future.snow等包,从而提供更多的并行计算选项。
- 跨平台性:future.apply 同时兼容Windows、Linux和Mac OS等系统开启多线程。
总之,future.apply包提供了一种简单而高效的方式来并行化apply函数族的操作,从而加速计算过程,提高计算效率。它易于使用、灵活性强、可扩展性好,是一个非常实用的并行计算工具包。
一般用法示例
library(future.apply);
plan(multisession(workers = 6));
options(future.globals.maxSize = 100 * 1024^4);
sprintf("FUTURE CURRENT WORKERS = %s", nbrOfWorkers());
### Load data
<\your code\>
####
future_lapply(setNames(<\your cdoe\>),function(x){
<\your code\>
},future.globals = T,future.seed=T) -> parallel_lst