书签 分享 收藏 举报 版权申诉 / 24
上传文档赚钱

类型让R语言走向多线程并行计算课件.pptx

  • 上传人(卖家):三亚风情
  • 文档编号:3177485
  • 上传时间:2022-07-28
  • 格式:PPTX
  • 页数:24
  • 大小:493.25KB
  • 【下载声明】
    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():唤醒线程例子简单

    6、并行18 将需要并行处理的两个表达式放到两个线程中执行set.seed(123)n=10A=matrix(rnorm(n2),n)B=matrix(rnorm(n2),n)th1=new.thread(C1-A%*%B,1:(n/2)th2=new.thread(C2-A%*%B,(n/2+1):n)start.thread(th1);start.thread(th2)ls()#1 ABC1 C2 nth1 th2例子线程同步 所有具有相同 x 对象的 sync.eval()语句,任何时间只 能有一个被执行x=any objectthreads=vector(list,5)for(i in 1

    7、:5)threadsi=new.thread(sync.eval(x,cat(current.thread(),:,as.character(Sys.time(),n,sep=)thread.sleep(2)for(i in 1:5)start.thread(threadsi)#thread_1:2016-05-25 09:21:24#thread_3:2016-05-25 09:21:27#thread_5:2016-05-25 09:21:29#thread_4:2016-05-25 09:21:31#thread_2:2016-05-25 09:21:3319例子线程通信(1)wait(

    8、)使线程进入睡眠,直到被 notify()唤醒 主线程1.创建主线程2.打印欢迎信息3.唤醒工人,等待工人工作结束4.打印结束信息sync.m=master barrier sync.w=worker barrier threads=vector(list,3)count=0master=new.thread(sync.eval(sync.m,cat(Thread M:Program startsn)#Notify workers starting to worksync.eval(sync.w,notify(sync.w,all=TRUE)#Wait for workers to finis

    9、hwait(sync.m)cat(Thread M:Program endsn)20例子线程通信(2)工人线程1.创建工人线程,等待主线程“宣布开工”2.把 count 加 1 并打印信息,任一时刻只有一个线程在工作3.工作完成后(count 到 10)通知主线程,线程结束work=function()sync.eval(sync.w,wait(sync.w)while(TRUE)sync.eval(sync.w,if(count 10)count-count+1cat(current.thread(),is working,count=,count,n)else break)sync.eva

    10、l(sync.m,notify(sync.m)for(i in 1:3)new.thread(work(),start=TRUE)21例子线程通信(3)输出结果start.thread(master)#Thread M:Program starts#thread_3 is working,count=1#thread_4 is working,count=2#thread_2 is working,count=3#thread_3 is working,count=4#thread_4 is working,count=5#thread_2 is working,count=6#thread_3 is working,count=7#thread_4 is working,count=8#thread_2 is working,count=9#thread_3 is working,count=10#Thread M:Program ends22SupR 与分布式计算23预告:刘传海教授将做客统计之都七月份的 COS 沙龙,敬请关注问题?

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:让R语言走向多线程并行计算课件.pptx
    链接地址:https://www.163wenku.com/p-3177485.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库