Existe um simples `paralelo para` em golang como o OpenMP?

Estou tentando otimizar um quebra-cabeça com processamento paralelo, para obter melhor desempenho.

Idealmente, em C99 com OpenMP, eu deveria poder fazer isso com a ajuda de um#pragma omp parallel for antes de umfor loop em questão e, então, cabe ao sistema distribuir a carga entre as CPUs.

A documentação oficial do Go athttps://golang.org/doc/effective_go.html#parallel, no entanto, parece sugerir que, para processamento paralelo, devo (0) obter manualmente o número de núcleos do ambiente de tempo de execução, (1), fazer um loop sobre os referidos núcleos, (2), efetivamente codificar um loop for distinto para cada core (3), faça um loop sobre os núcleos mais uma vez para garantir que todo o material seja processado.

Estou esquecendo de algo? Para o caso mais simples, o OpenMP com o C antigo é superior ao novo Go que é apontado como o melhor substituto do C? Para um exemplo mais complicado, como exatamente você divide umrange entre as CPUs?

questionAnswers(1)

yourAnswerToTheQuestion