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

时间:2014-11-20 02:25:11

标签: c++ openmp aggregate-functions aggregate

实际上,我想在表上进行聚合,每列都是一个数组。所以我需要扫描表并进行聚合。但Openmp似乎并不支持使用数组名称因此,如何使用openmp来并行化我的聚合代码?thx

1 个答案:

答案 0 :(得分:0)

我认为您在OpenMP中面临两个单独的限制,阻止您做您的事情:

  1. 您的sum accumulator变量不是一个简单的变量,而是一个您希望传递给OpenMP "by name"的数组条目。 OpenMP不支持这一点。从数组中获取值,将其写入局部变量,对局部变量进行减少,然后将值写回数组。
  2. “Entry”具有用户定义的数据类型。 OpenMP不支持减少这些。因此,您想要总结的“Entry”的所有6个成员必须成为单独的局部变量。您可以将6个变量的列表传递给OpenMP“reduction”子句。