内容简介:翻译自:https://stackoverflow.com/questions/21583480/are-there-functional-programming-languages-that-run-on-the-gpu
使用传统的顺序缩减方法,下面的图表减少为:
(+ (+ 1 2) (+ 3 4)) -> (+ 3 (+ 3 4)) -> (+ 3 7) -> 10
但是,图形缩减本质上是平行的.相反,人们可以将其减少为:
(+ (+ 1 2) (+ 3 4)) -> (+ 3 7) -> 10
据我所知,每种函数式编程语言都使用第一种方法.我相信这主要是因为在CPU上,调度线程过度补偿了并行减少的好处.不过,最近我们开始使用GPU而不是CPU用于并行应用程序.如果一种语言完全在GPU上运行,那么这些通信成本就会消失.
是否有功能语言利用这个想法?
实际上,GPU中使用的那种并行性要难以安排:它是 SIMD 并行性,即整批流处理器一次完全基本相同,除了每一个都压碎不同的数字.因此,您不仅需要安排子任务,还需要保持它们的同步.自动执行一般计算几乎是不可能的.
为特定任务执行此操作非常好,并已嵌入到函数式语言中;看看 Accelerate project .
翻译自:https://stackoverflow.com/questions/21583480/are-there-functional-programming-languages-that-run-on-the-gpu
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 编程语言特性:函数
- Go 语言函数式编程系列教程(十八) —— 函数篇:函数的基本定义和调用
- Go 语言函数式编程系列教程(十九) —— 函数篇:函数的传参和返回值
- Elixir 1.8 发布,函数式编程语言
- OCaml 4.08.0 发布,函数式编程语言
- OCaml 4.09.0 发布,函数式编程语言
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
算法设计与分析导论
R.C.T.Lee (李家同)、S.S.Tseng、R.C.Chang、Y.T.Tsai / 王卫东 / 机械工业 / 2008-1 / 49.00元
本书在介绍算法时,重点介绍用干设计算法的策略.非常与众不同。书中介绍了剪枝搜索、分摊分析、随机算法、在线算法以及多项式近似方案等相对较新的思想和众多基于分摊分析新开发的算法,每个算法都与实例一起加以介绍,而且每个例子都利用图进行详细解释。此外,本书还提供了超过400幅图来帮助初学者理解。本书适合作为高等院校算法设计与分析课程的高年级本科生和低年级研究生的教材,也可供相美科技人员和专业人七参考使用。一起来看看 《算法设计与分析导论》 这本书的介绍吧!