F# 在范围上使用PLINQ AsParallel()
我想使用PLINQ方法AsParallel()重写这个并行.For循环。就我所见,AsParallel()需要向它传递整个序列,例如创建数组A,然后调用A.AsParallel().ForAll或A.AsParallel().Select。有没有一种方法可以使AsParallel()在一个范围内工作——在本例中是从低到高F# 在范围上使用PLINQ AsParallel(),f#,task-parallel-library,plinq,F#,Task Parallel Library,Plinq,我想使用PLINQ方法AsParallel()重写这个并行.For循环。就我所见,AsParallel()需要向它传递整个序列,例如创建数组A,然后调用A.AsParallel().ForAll或A.AsParallel().Select。有没有一种方法可以使AsParallel()在一个范围内工作——在本例中是从低到高 for k = 2 to m+n do let low = max 1 (k-m) let high = min (k-1) n Parallel.Fo
for k = 2 to m+n do
let low = max 1 (k-m)
let high = min (k-1) n
Parallel.For(low, high + 1, (fun j ->
您可以使用和跳过一些元素,然后获取某个数字,这基本上允许您查询一个范围
这将是
A.AsParallel().Skip(低)。Take(高-低+1)。选择(…
一种方法是使用:
ParallelEnumerable.Range(low, high-low+1).Select(fun i -> let a = A.[i] in …)