Существует ли простая «параллель для» в golang, как OpenMP?

Я пытаюсь оптимизировать головоломку с параллельной обработкой для повышения производительности.

В идеале, в C99 с OpenMP я должен быть в состоянии сделать это с помощью#pragma omp parallel for доfor рассматриваемый цикл, и тогда это должно быть до системы, чтобы распределить нагрузку между процессорами.

Официальная документация для Go athttps://golang.org/doc/effective_go.html#parallelТем не менее, похоже, что для параллельной обработки я должен (0) вручную получить количество ядер из среды выполнения, (1), циклы над ядрами, (2), эффективно кодировать отдельный цикл for для каждого core, (3), переберите ядра еще раз, чтобы убедиться, что все вещи были обработаны.

Я что-то пропустил? В самом простом случае, OpenMP с древним C превосходит совершенно новый Go, который считается лучшей заменой C? Для более сложного примера, как именно вы разбилиrange между процессорами?

Ответы на вопрос(1)

Ваш ответ на вопрос