Распараллелить вывод с помощью OpenMPC++

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

Сообщение Anonymous »

Я написал приложение на C++, которое должно обрабатывать большой объем данных. Используя OpenMP, я довольно хорошо распараллелил этап обработки и, к своему стыду, обнаружил, что запись выходных данных теперь является узким местом. Я решил использовать параллель для и здесь, поскольку порядок вывода элементов не имеет значения; их просто нужно выводить как связные фрагменты.

Ниже приведена упрощенная версия выходного кода, показывающая все переменные, за исключением двух пользовательских итераторов в разделе «Сбор данных в связанный» цикл. Мой вопрос: это правильный и оптимальный способ решения этой проблемы? Я читал о барьере прагма, мне это нужно?

Код: Выделить всё

long i, n = nrows();

#pragma omp parallel for
for (i=0; i

Подробнее здесь: [url]https://stackoverflow.com/questions/4106992/parallelize-output-using-openmp[/url]

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