【发布时间】:2016-04-29 23:58:51
【问题描述】:
我正在尝试通过并行处理优化谜题,以获得更好的性能。
理想情况下,在带有 OpenMP 的 C99 中,我应该能够在 #pragma omp parallel for 之前的 for 循环的帮助下做到这一点,然后应该由系统来分配负载CPU。
然而,https://golang.org/doc/effective_go.html#parallel 的 Go 官方文档似乎建议,对于并行处理,我必须 (0) 从运行时环境中手动获取内核数,(1),遍历所述内核,( 2),有效地为每个内核编写一个不同的 for 循环,(3),再次循环内核以确保所有内容都得到处理。
我错过了什么吗?对于最简单的情况,带有古老 C 的 OpenMP 是否优于被吹捧为 C 最佳替代品的全新 Go?对于更复杂的示例,您如何在 CPU 之间拆分 range?
【问题讨论】:
-
@Amd,肤浅的编辑(以及引入拼写错误)违反 ToS
标签: c go parallel-processing openmp