首页> 外文会议>ACM SIGPLAN International Conference on Functional Programming >Organizing Functional Code for Parallel Execution or, foldl and foldr Considered Slightly Harmful
【24h】

Organizing Functional Code for Parallel Execution or, foldl and foldr Considered Slightly Harmful

机译:组织函数代码以进行并行执行,或者折叠和折扣被认为是略微有害的

获取原文

摘要

Alan Perlis, inverting Oscar Wilde's famous quip about cynics, once suggested, decades ago, that a Lisp pro-grammer is one who knows the value of everything and the cost of nothing. Now that the conference on Lisp and Functional Programming has become ICFP, some may think that OCaml and Haskell programmers have inherited this (now undeserved) epigram. I do believe that as multicore processors are be-coming prominent, and soon ubiquitous, it behooves all programmers to rethink their programming style, strategies, and tactics, so that their code may have ex-cellent performance. For the last six years I have been part of a team working on a programming language, Fortress, that has borrowed ideas not only from Fortran, not only from Java, not only from Algol and Alphard and CLU, not only from MADCAP and MODCAP and MIRFAC and the Klerer-May system-but also from Haskell, and I would like to repay the favor. In this talk I will discuss three ideas (none original with me) that I have found to be especially powerful in organizing Fortress programs so that they may be executed equally effectively either sequentially or in parallel: user-defined associative operators (and, more generally, user-defined monoids); conjugate transforms of data; and monoid-caching trees (as described, for example, by Hinze and Paterson). I will exhibit pleasant little code examples (some original with me) that make use of these ideas.
机译:反驳奥斯卡·韦尔德的着名奔驰关于愤世嫉俗者的艾伦盖利,曾经建议过,几十年前是一个Lisp Pro-grammer是一个了解一切的价值和任何东西的人。现在,LISP和功能规划的会议已成为ICFP,有些人可能认为OCAML和HASKELL程序员继承了这一点(现在不值得的)epigram。我相信,随着多核处理器的突出,很快泛滥,它就会成为所有程序员重新思考他们的编程风格,策略和策略,以便他们的代码可能具有前细胞性能。在过去的六年里,我一直是队上的编程语言,丰泽,已不仅来自Fortran语言,不仅从Java,不仅从陵和星宿和CLU,不仅从MADCAP和MODCAP和借来的思想工作的一部分MiRFAC和Klerer-May系统 - 也来自Haskell,我想偿还赞成。在这个演讲中,我将讨论三个想法(没有原我),我发现是特别强大的组织要塞的节目,使他们同样可以有效地按顺序或并行执行:用户自定义的联想运营商(以及更一般地,用户定义的monoids);缀合的数据变换;和长脚上的树木(如所描述的,例如,通过Hinze和Paterson)。我将展示令人愉快的小代码示例(与我有一些原创),利用这些想法。

著录项

相似文献

  • 外文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号