可以使用C ++属性来替换OpenMP pragma吗?

时间:2016-05-03 23:40:35

标签: c++ openmp

C ++属性提供了一种方便且标准化的方法来标记代码,并提供额外的信息以提供给编译器和/或其他工具。

使用OpenMP涉及在源中添加大量#pragma omp...行(例如标记循环以进行并行处理)。这些#pragma行似乎是广义属性等设施的绝佳候选者。

例如,#pragma omp parallel for可能会成为[[omp::parallel(for)]]

经常不准确的cppreference.com使用这样的属性作为示例here,这确认了它至少被某人考虑过。

是否存在OpenMP pragma到当前可用并且由任何/所有主要编译器支持的C ++属性的映射?如果没有,是否有计划创建一个?

1 个答案:

答案 0 :(得分:0)

这绝对是可能的,甚至是OpenMP语言委员会正在研究的东西。请参阅第36页的OpenMP技术报告8(https://www.openmp.org/wp-content/uploads/openmp-TR8.pdf),其中提出了通过属性使用OpenMP的语法。包含在TR8中并不能保证将其包含在5.1版中,但表明它正在被讨论。这种语法主要基于原始提案中针对C ++属性所做的工作。

如果您对此有具体的反馈意见,建议您通过OpenMP论坛(http://forum.openmp.org/forum/viewforum.php?f=26)对此提供反馈。