gpt4 book ai didi

multithreading - 并行和并发编程(Haskell)方面的开销是多少?

转载 作者:行者123 更新时间:2023-12-04 06:49:07 24 4
gpt4 key购买 nike

并行和并发编程 (Haskell) 方面的开销是多少?

However, even in a purely functional language, automatic parallelization is thwarted by an age-old problem: To make the program faster, we have to gain more from parallelism than we lose due to the overhead of adding it, and compile-time analysis cannot make good judgments in this area. An alternative approach is to use runtime profiling to find good candidates for parallelization and to feed this information back into the compiler. Even this, however, has not been terribly successful in practice.

(引自 Simon Marlow 的书 Haskell 中的并行和并发编程)

Haskell 中有哪些示例?

最佳答案

在任何系统中,线程都会占用资源。您必须将该线程的状态存储在某处。创建线程并使其运行需要时间。现在GHC使用轻量级的“绿色线程”,它比操作系统线程便宜得多。但它们仍然需要一些费用。

如果您(例如)要为每个加、减、乘和除生成一个新线程...那么,生成一个新线程的工作必须至少是几十个机器指令,而一个微不足道的机器指令算术运算可能是一条指令。将工作作为 Spark 进行排队比生成一个全新的线程需要更少的工作,但即使这样也不像在当前线程上执行操作那么便宜。

基本上,您想要并行执行的工作的成本必须超过安排并行执行它的成本。 (无论是启动操作系统线程或绿色线程,还是排队 Spark 或其他什么。)GHC 有各种各样的东西来降低成本,但它仍然不是免费

关于multithreading - 并行和并发编程(Haskell)方面的开销是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45050415/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com