内容简介:翻译自: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 发布,函数式编程语言
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Data Structures and Algorithms
Alfred V. Aho、Jeffrey D. Ullman、John E. Hopcroft / Addison Wesley / 1983-1-11 / USD 74.20
The authors' treatment of data structures in Data Structures and Algorithms is unified by an informal notion of "abstract data types," allowing readers to compare different implementations of the same......一起来看看 《Data Structures and Algorithms》 这本书的介绍吧!