让R语言走向多线程并行计算课件.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《让R语言走向多线程并行计算课件.pptx》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 走向 多线程 并行 计算 课件
- 资源描述:
-
1、SupR:让 R 语言走向多线程并行计算1概要2R 并行计算概览并行模式:进程 vs 线程SupR:当 R 遇上大数据概要3R 并行计算概览并行模式:进程 vs 线程SupR:当 R 遇上大数据R 中可实现的并行方式4 C/C+/FORTRAN 并行 多进程并行 Hadoop/Spark 并行 GPU 并行C/C+/FORTRAN 并行5 由 C/C+/FORTRAN 代码进行并行,R 直接调用 优势:使用简单(作为用户),性能良好 缺点:编程困难(作为开发者),涉及 R 对象时并非线程安全 例子:OpenBLAS(Pthread/OpenMP)xgboost 包(OpenMP)recosys
2、tem 包(C+11 线程库)RcppParallel 包(Intel TBB)多进程并行6 创建多个 R 进程同时进行计算,使用 Socket 或 MPI 等软件 库进行进程通信 优势:R 中使用范围最广的方式,可直接编写 R 代码并行 缺点:通信成本较高,内存使用量大 例子:parallel 包,mclapply()和 parLapply()函数 snow,Rmpi 和 pbdMPI 等使用 MPI 接口的软件包Hadoop/Spark 并行 从 R 调用 Hadoop 和 Spark 等并行计算平台 优势:基于成熟的并行计算平台,能够处理大 规模的数据 缺点:与 R 之间通信成本非常高,
3、内存占用大 例子:RHIPE 包(Hadoop)SparkR 包(Spark)7GPU 并行 使用 GPU 进行并行计算 优势:处理器数目多,并行效果显著 缺点:硬件要求高,实现的算法较少 例子:gputools 包(CUDA)gpuR 包(OpenCL)8概要9R 并行计算概览并行模式:进程 vs 线程SupR:当 R 遇上大数据两种并行模式多进程并行多线程并行10进程 vs 线程 一个进程可包含多个线程 线程比进程更为轻量级 同一进程中的线程可共享内存资源 线程间的通信更为便捷,开销较小11R 中的并行模式12 R 中大部分已有的并行方式都是基于多进程并行 多线程并行一般依赖于 C/C+/
4、FORTRAN/Java 相较于多进程并行,多线程并行具有诸多优势 然而,在 R 中进行多线程并行非常困难 解释器、内存分配和垃圾回收都不是线程安全的 多个线程同时对 R 对象进行操作时,可能会破坏 R 的运行机 制和内部结构 要实现多线程的 R,就必须更改 R 的底层源代码概要13R 并行计算概览并行模式:进程 vs 线程SupR:当 R 遇上大数据当 R 遇上大数据14 基于种种原因,R 对于真正的大数据支持尚不理想 其受限的并行机制是其中重要的一点 理想的大数据分析平台 单机上进行多线程并行 集群上进行多机分布式计算 良好的交互性 完善的社区支持SupR 诞生15 SupR 是一款同时支
5、持多线程和分布式计算的修改版 R 由普渡大学统计系刘传海教授开发 力图实现基于 R 的大数据分析平台 主要特性 保持 R 的语法和内部数据结构不变 提供多线程并行计算支持 提供类似 Spark 的分布式集群运算 分布式文件系统支持SupR 多线程并行计算16 SupR 在源代码级别对 R 进行了修改 在可能引起线程冲突的部分加入互斥锁,保证程序正常运行 提供完整的线程创建、查询、打断、同步和取消机制主要函数17 new.thread():创建线程 start.thread():开启线程 sync.eval():同步线程执行 wait():令线程睡眠,等待信号 notify():唤醒线程例子简单
展开阅读全文