【问题标题】:How is functional programming beneficial in parallel computations?函数式编程对并行计算有何好处?
【发布时间】:2020-10-25 06:42:19
【问题描述】:

有趣的是,存在禁止更改变量值的函数式编程语言,例如 Scala 或 Erlang。 在并行计算等领域,这种限制会带来某些好处。建议学习这样一门语言(即使您不打算很快使用它)以拓宽思路。

所以我开始想知道它对并行计算有什么好处?

【问题讨论】:

    标签: parallel-processing functional-programming programming-languages


    【解决方案1】:

    “它对并行计算有什么好处?”

    因为代码执行路径都不会尝试更改任何变量,它更改变量的值越少,所以所有人都受益于原则一致的保证(根据它的值 (从未改变) ),非冲突处理。

    没有像对变量的读/写一致访问这样的竞争(根据定义,永远不会改变)。

    如果没有别的,这是 (根据定义是安全的)[PARALLEL] 流的酷属性代码执行路径,不是吗?

    【讨论】:

    • 编译器是否需要添加线程池来调度程序中的所有函数?
    • 或者编译器不需要对线程做任何事情,多核CPU会根据CPU的自然架构自动运行应用程序?
    • @linrongbin 出于显而易见的原因,编译器阶段无法知道代码执行目标平台将有多少个内核,不是吗?有关详细信息,必须深入研究特定的函数式语言编译器设计和实现。有代码方面的文档记录了哪些与硬件相关的假设和工程工作已投入或未投入实际功能语言表达的问题转换以及由此产生的代码执行计划和调度
    猜你喜欢
    • 2010-09-12
    • 2011-06-19
    • 1970-01-01
    • 2018-01-20
    • 2017-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多