问题标签 [rayon]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
63 浏览

rust - 使用 Rayon 对哈希图进行分块

是否可以使用 Rayon 将 HashMap 中的数据分块?我看到了几种分块方法,但它们似乎想要在切片(或类似的东西)上工作。

代码编译没有错误,vec但所有HashMap尝试都失败并出现“没有名为...”的错误。

编辑:关于如何将现有迭代器与人造丝一起使用的问题没有回答这个问题。这个问题是如何获得一个对哈希映射进行分块的迭代器。

回答

分块哈希映射的方法如下:

0 投票
0 回答
39 浏览

rust - 货物火焰图不适用于人造丝

我正在尝试分析看起来像的代码

par_iter来自人造丝。

这段代码运行缓慢,所以我试图通过类似的命令使用 cargo-flamegraph 对其进行分析

当我更改par_iter为 时iter,我在火焰图中看到合理的东西,表明这Frame::update需要一些时间,并且各种HashMap方法都需要一些时间。

如果我使用par_iter的是充满人造丝的调用,但看起来它实际上并没有从人造丝创建的线程中给我任何结果。人造丝消费者和助手和桥梁有很多条目,但我的代码没有出现。我查看了 flamegraph.svg 并Frame:没有出现。(顺序版本有Frame::update。)

我需要做些什么来让火焰图也分析线程吗?

0 投票
1 回答
115 浏览

rust - 如何使用 Rayon 的并行折叠创建 HashMap?

我正在尝试创建一个HashMap使用函数式编程并利用rayon.

如果我在没有 的情况下尝试这个rayon,它会起作用:

如果我尝试通过从 切换到 来使用多个内核iter()par_iter()我会收到错误消息:

显然,Rust 试图阻止我做一些涉及竞争条件的愚蠢的事情,但是我将如何构建一个HashMapinside apar_iter()呢?

0 投票
1 回答
71 浏览

string - 如何使用 Rayon 和 Rust 将字符串转换为并行迭代器?

我正在尝试将下面的代码转换为并行迭代器以提高性能:

但 Rayon 不支持.into_par_iter()Enumerate结构。而且对于 Rust 来说相对较新,我不确定如何解决这个问题。大多数其他问题都涉及向量,但它不在这里,因为我正在尝试执行以下操作:

  1. 获取一个字符串:String::from("Lorem ipsum dolor sit amet")
  2. 使用.split(" ").enumerate()把它变成一个向量:vec!["Lorem", "ipsum", "dolor", sit", "amet"]

那么如何让上面的代码并行运行呢?

0 投票
1 回答
109 浏览

multithreading - 使用人造丝并行化 rust 中的嵌套循环

我正在尝试并行化 Rust 中的简单嵌套 for 循环,rayon但无法:

试图关注这篇文章并创建了这个:

一次不能*object多次借用可变的借用第二个可变借用发生在这里

但它没有用。我的问题与帖子中的问题有点不同,因为我在一次迭代中修改了两个元素并试图将它们都借用为 Rust 不喜欢的可变元素,而我不喜欢在不需要时进行双倍计算的想法。

另一种尝试是迭代Range

不能借用object可变的,因为它是Fn闭包中的捕获变量

老实说,这个我根本不明白,E0596也没有多大帮助——我object的是&mut. Rust 新手,希望有任何帮助!

0 投票
1 回答
49 浏览

arrays - 使用唯一索引数组并行写入数组

这个问题类似于 使用索引数组并行写入数组, 除了我保证索引是唯一的。

有没有办法在人造丝中实现这一目标?也许我应该以某种方式使用unsafe,因为显然借用检查器无法验证索引的唯一性。

0 投票
1 回答
74 浏览

multithreading - 为什么 Condvar 线程永远不会唤醒?

此代码运行完成并打印出my_data如果我取消注释函数中的sleep行的do_work值。如果我把它注释掉,我的可执行文件每次都会挂起。

为什么 Condvar 不唤醒最后一个线程?提到收集句柄并等待它们加入主线程,但这应该由人造丝作用域处理,对吗?

sleep如果没有 in 中的语句,我如何才能完成此代码do_work()

Cargo.toml 依赖项:

这是对do_work稍后将进行的更复杂数学的测试,但我试图获得一系列成功修改较大的Vec.

0 投票
1 回答
39 浏览

rust - 保存图像时,Rust rayon crate par_iter().map() “停止”

我正在尝试从这个链接的 rust-cookbook 示例中的数据并行示例中学习 Rust。

但是,当我运行代码时(我认为是正确的依赖项),并行迭代器函数没有完成。这是我正在努力的确切回购。

当我cargo run在包含 5 个图像的项目的根目录下运行时,我在控制台中得到以下信息。

但是,没有创建任何缩略图,并且程序永远不会退出。代码编译。

在我正在努力学习 Rust的另一个小 CLI中,我遇到了同样的问题,但我认为食谱中的示例更容易使用。

任何提示,即使是我可能会寻找的,将不胜感激。我想知道它是否与机器有关。

0 投票
1 回答
44 浏览

rust - 如何用人造丝迭代数组?

我是新手,我正在尝试使用人造丝从一系列 URL 中获取响应

但我收到了这个错误