平行Fsharp与并行C++
Parallel Fsharp vs parallel C++
我复制粘贴了此示例的并行部分。我在 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() =
相关文章:
- C++17中的并行执行策略
- 并行用于C++17中数组索引范围内的循环
- 如何在Elixir中调用递归函数并行
- OpenMP:并行更新数组总是需要减少数组吗
- 如何使用OpenMP并行这两个循环
- 如何使用OpenMP并行化此矩阵时间矢量运算
- 如何使用OpenMP使这个循环并行
- 遍历并行数组以确定C++中的最大数字
- 为什么 openmp 的并行不适用于矢量化色彩空间转换?
- 如何在 Mac 上使用 c++17 并行标准库算法?
- 并行标准::复制复杂性
- 如何使用 MPI 的远程内存访问 (RMA) 功能并行化数据聚合?
- 在C++中使用并行化的预期速度是多少(不是 OpenMp,而是 <thread>)
- 如何在 C++17 STL 并行算法中处理调度?
- OpenMP 与有序和关键指令并行
- OpenMP for 循环并行性问题
- 两个连续的 OpenMP 并行区域会相互减慢速度
- C++17:如何在并行 STL 中获取工作项的索引
- 如何使用 OpenMP 并行化最近邻搜索
- 如何使用 winsock2 实现与 c++ 的多个并行连接?