如何使用 openmp 并行化我的聚合代码

How can I use the openmp to parallelize my aggregation code?

本文关键字:代码 我的 并行化 何使用 openmp      更新时间:2023-10-16

其实我想对表做一个聚合,每一列都是一个 array.so 我需要扫描表做聚合。但是Openmp似乎不支持在reduce指令之后使用数组名称。那么,如何使用 openmp 并行化我的聚合代码呢?

我认为您在 OpenMP 中面临 2 个单独的限制,这些限制会阻止您做自己的事情:

  1. 您的总和累加器变量不是一个简单的变量,而是您希望"按名称"传递给 OpenMP 的数组条目。OpenMP 不支持这一点。从数组中获取值,将其写入局部变量,对局部变量进行归约,然后将值写回数组。
  2. "条目"具有用户定义的数据类型。OpenMP 也不支持减少这些。因此,您要汇总的"Entry"的所有 6 个成员都必须成为单独的局部变量。您可以将 6 个变量的列表传递给 OpenMP "缩减"子句。
相关文章: