平行Fsharp与并行C++

Parallel Fsharp vs parallel C++

本文关键字:C++ 并行 Fsharp 平行      更新时间:2023-10-16

我复制粘贴了此示例的并行部分。我在 i3 处理器中测量了时间,测量结果为 37563 毫秒。我在 Fsharp 中像这样重写了相同的程序

 let rec fib x = if x<2 then x else fib(x-1)+fib(x-2)
 let time_call f = 
 let b=System.Environment.TickCount in
 let x = f() in
 System.Environment.TickCount-b
 let fibs() =
  Async.Parallel[for i in [24;26;41;42]->async{return fib   i}]|>Async.RunSynchronously
 [<EntryPoint>]
 let main argv = 
 printfn "%A" (time_call fibs)
 0 // return an integer exit code

我测量的时间是4735ms。 是我做错了什么,还是Fsharp并行编程快得多?

fibs/f 是示例中的值,而不是函数。 fibs甚至在main开始之前就被计算出来了。

您想要例如

let x = printfn "%A" (f()) in

let fibs() =