有没有一种语言可以利用大规模并行计算机?

问题描述 投票:3回答:1

有一家公司正在开发一款名为Parallella的非常平行的计算机。 看起来它有很多潜力,但它运行一些C风格的语言。

问:是否有人专门编写了一种语言来利用像这样的大规模并行计算机?

  • 第1条。它必须是一种 托管 垃圾收集语言。
  • 第2条。它必须使编写并行代码变得非常容易,而不需要开发人员管理低级锁定。
  • 第3条。功能语言的加分点。
  • 第4条。具有lambdas语言的超级奖励积分。
parallel-processing programming-languages
1个回答
3
投票

有一种语言可以用来处理并行计算日益普及的问题。 自摩尔定律去世以来,并行处理器日益受欢迎。 在编程语言中支持更好的并行计算已经很快得到了应用。

我的个人推荐是HaskellClojure 。 两者都是功能语言,它们在并行和并发计算方面取得了巨大进步,利用它们的功能性来获得优势。 Haskell有一本非常好的书,叫做Simon Marlow的Haskell中Parallel and Concurrent Programming 。 我读过它,它很棒。 Clojure也是从头开始构建的,考虑到了并发性。 这个领域的一个有趣的新玩家是朱莉娅 ,但我不能说我完全了解它。

至于第1条,我不知道托管语言的含义。 编辑:你所谓的托管语言通常被称为垃圾收集语言。 您可能希望使用该术语来帮助获得更有效的答案。 我推荐的所有语言都有垃圾收集。

至于第2条,Haskell肯定使并行计算相当自动,而不用担心低级概念或锁定。 有一个名为'par'的简单函数,它允许程序员注释要并行执行的两个计算。 语义保证表达式在必要时进行评估,并且由于计算功能正常,因此保证不以非线程安全的方式进行交互。

至于第3条,你正在寻找一种功能性语言。 功能子计算具有自动线程安全性,当确保并行执行不会导致问题时,它会带来很大的好处。 如果计算功能正常,则不会导致任何问题。

至于第4条,祝你好运找到一个没有lambda的函数式语言;)编辑:严格来说,它不是函数式语言定义的一部分,因为函数式编程语言没有正式的定义。 非正式地,我认为很多人会将其视为最重要的功能之一。 基于隐性编程(也称为无点样式)的连接语言或语言可以起作用,并且没有lambda就可以逃脱。 如果K语言尽管功能正常,我也不会感到惊讶。 此外,我知道肯定组合逻辑(这是K的基础)没有lambda。 虽然组合逻辑只是一个理论基础而不是一种实用的编程语言。

© www.soinside.com 2019 - 2024. All rights reserved.