Скажем, у меня есть циклКак OpenMP разделяет цикл на потоки?
for(int i = 0; i < 1000; i++){
sum += i;
}
И если я использую OpenMP, чтобы ускорить его, как это цикл отображается на 4-х различных ядер?
Я знаю, что он использует вилку и соединяется, я имею в виду, что это i = 0 для ядра 0, i = 1 для ядра 1 и т. Д. Или i = 0 для ядра 0, i = 249 для ядра 1, i = 499 для сердечника 2 и т.д.
Спасибо,
Боба
Просто проверьте вики http://en.wikipedia.org/wiki/OpenMP. Он использует модель объединения вил – pyCthon
@pyCthon Я знаю, что она использует fork и join, я имею в виду, что это как i = 0 для ядра 0, i = 1 для ядра 1 и т. Д. Или i = 0 для ядра 1, i = 249 для ядра 2, i = 499 для ядра 3 и т. Д. – dorafmon
@dorafmon см. [Разделение OpenMP для циклов над ядрами] (http://stackoverflow.com/questions/8312563/openmp-divide-for-loop-over-corees) – Gangadhar