如何用CUDA Fortran优化并行计算程序

 我来答
百度网友037955f
2017-03-05 · TA获得超过155个赞
知道答主
回答量:242
采纳率:0%
帮助的人:49.5万
展开全部
分享内存(shared memory),使并行运算时,每个R session可以避免重复读取。包裹有bigmemory等,这样不同的R sessions可以共享内存里的数据。不用再并行运算时,每个R sessions在去读入一遍。

用MPI,避免mclapply等太高等级的关于平行运算的方程。如果用MPI,你的R sessions只会传输你规定它们可以传输的objects。据我所知,mclapply是把所有environment复制到另一个R session里,有一些根本不必要的objects也要被推送,这样毫无意义。
集成运算,比如Map-Reduce或者Storm,把个体服务器的压力变为对运算过程的压力,这个坑太大了。。。
分布储存,比如mongodb,把对内存的压力变为对数据结构的压力,这个坑也太大了。。。
用C或Fortran写底层方程,比如loop structure,基本的科学运算(BLAS)等等。

从算法上的根本优化。很多时候,程序慢,内存溢出,大多都是程序猿懒,不精益求精。再加上服务器动辄16G内存,把码农们都宠坏了,好像什么都能往内存里扔,扔完也不打扫屋子。改进算法,尽量在同一时间,只能看见部分数据的情况下,通过update结果来得到最后答案。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式