不,通常情况并非如此,除非您明确指定您想要并行处理(例如ScalaCL,并行集合).它很难自动完成,例如:
def foo() = {
val x = 1 + 2
val y = 2 + 3
x + y
}
Run Code Online (Sandbox Code Playgroud)
虽然x和y的计算可以并行化,但实际上它比串行代码更慢(由于并行化引起的损失).因此,对于所有内容的自动并行化,您将最终得到基本单元的高效无效代码.
你可以说:你为什么不自动并行代码和选择性(当它是不值得例如,不要并行),但这样的系统必须依靠数十亿的因素,最重要的将是一个特定的架构,目前的OS负载,运行配置文件,以及更多(我想最终,我们将不得不解决暂停问题).而这个魔法跟踪系统将涉及它自己的惩罚.
最后,尽管存在效果类型研究,但是库存标量没有任何方法来区分副作用和非副作用功能.
毕竟,正如@fracca所展示的那样,手动并行化scala代码并不困难.
| 归档时间: |
|
| 查看次数: |
197 次 |
| 最近记录: |