首页 > 解决方案 > 无互斥体的人造丝并行迭代器的顺序依赖缓存

问题描述

我对需要处理一系列计算的数千个项目进行了计算,其中每个 n 迭代需要处理 [n - 1, n, n + 1] 的数据。最好在图表上理解这一点迭代图表

迭代器内部的所有计算都是相同的,所以我们可以缓存它。但是用人造丝做的最好方法是什么?

我想根据线程级别缓存它。因此,如果我们有 4 个迭代的线程,我们可以为每个组(0 - n/4,n/4 - 2*n/4,..)提供缓存,但我们无法控制人造丝中的迭代顺序。

有没有更好的方法在没有互斥锁的人造丝中拥有每个线程或共享缓存?

重要说明:我不知道需要哪个迭代来进行计算。它在运行时确定,所以基本上我不能在迭代之前进行所有计算。

标签: rustparallel-processingrayon

解决方案


推荐阅读