Я играл с OpenMP, и я пытаюсь посмотреть, могу ли я получить ускорение в определенном фрагменте кода на C++.OpenMP-распараллеливание с элементами массива
#pragma omp parallel for
for (Index j=alignedSize; j<size; ++j)
{
res[j] = cj.pmadd(lhs0(j), pfirst(ptmp0), res[j]);
res[j] = cj.pmadd(lhs1(j), pfirst(ptmp1), res[j]);
res[j] = cj.pmadd(lhs2(j), pfirst(ptmp2), res[j]);
res[j] = cj.pmadd(lhs3(j), pfirst(ptmp3), res[j]);
}
Я полный новичок с OpenMP так нежна со мной, но кто-то может пролить некоторый свет на то, почему этот код заканчивается удвоение времени выполнения, а не ускоряя его?
Я бегу с 4 ядрами, на всякий случай это важно.
Как вы измерили время? Каковы ваши конкретные результаты? Можете ли вы предоставить код в виде [mcve]? Какова конкретная модель процессора и настройка памяти в системе? – Zulan