OpenMP параллельно отнимает еще больше времени?C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 OpenMP параллельно отнимает еще больше времени?

Сообщение Anonymous »

Я пытаюсь распараллелить алгоритм Нидлмана-Вунша (NW), но вместо того, чтобы тратить меньше времени, требуется еще больше времени, чтобы вычислить, что я делаю неправильно.
#pragma omp parallel
{
#pragma omp single
{

unsigned int grain_size = (rows + cols) / (4 * omp_get_max_threads());
grain_size = grain_size > 1 ? grain_size : 1; // Ensure at least 1 cell per chunk

int waves = rows + cols - 1;
for (int wave = 0; wave < waves; wave++) {
#pragma omp taskloop grainsize(grain_size)
for (int i = 1; i < rows; i++) {
int j = wave - i;
if (j < 1 || j > cols) continue;
float match = S[j - 1] + (X == Y[j - 1] ? match_score : mismatch_score);
float del = S[j] + gap_penalty;
float insert = S[j - 1] + gap_penalty;
S[j] = std::max({match, del, insert});
thread_counters[omp_get_thread_num()]++;
}
}
}
}


Подробнее здесь: https://stackoverflow.com/questions/791 ... n-parallel
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»