Описание тега openmp

OpenMP - это кроссплатформенный многопоточный API, который позволяет выполнять детальное распараллеливание и синхронизацию задач с помощью специальных директив компилятора.
1 ответ

Преобразование c последовательно в проблемы OpenMP

Я работаю над назначением n-body, которое преобразует последовательную программу в параллельную, используя OpenMP. У меня есть функция ниже, которая прекрасно работает с выключенным OpenMP, но в противном случае выдает неправильный результат. У меня…
28 ноя '16 в 22:11
2 ответа

Как управлять глобальными настройками OpenMP из C/C++?

OpenMP не предоставляет API для настройки некоторых важных параметров во время выполнения, например, OMP_WAIT_POLICY или GOMP_SPINCOUNT (по крайней мере, в gcc 4.8.3). Такие настройки предназначены для изменения через переменные среды по некоторым п…
06 окт '15 в 12:33
1 ответ

Ошибка при сборке R из исходного кода с поддержкой gcc OpenMP

Я пытаюсь скомпилировать R в среде Redhat Linux на кластере HPC. Я использовал модули среды для установки последних версий ряда инструментов, включая GCC 5.2.0. Я не могу получить R для сборки из источника. Сбой с неопределенной ссылкой на `GOMP_par…
20 янв '16 в 17:43
0 ответов

Создание требования пакета R для OpenMP через configure.ac в windows

Я работаю над своим пакетом в R, и я рассмотрел следующую ссылку о требованиях к пакету для OpenMP: [ Требование доступности OpenMP для использования в пакете Rcpp В этой ссылке есть некоторые сведения о требованиях к пакету для OpenMP через configu…
07 апр '17 в 23:23
2 ответа

Вложенный цикл OpenMP Распараллеливание, приватный или публичный индекс?

Представьте, что у вас есть вложенный цикл для параллельной области, что-то вроде: #pragma omp parallel { for (int i = 0, ...) { for (int j = 0, ...) { }}} или же #pragma omp parallel { for (int i = 0, ...) { for (int j = i, ...) { }}} Если мы испол…
18 июн '18 в 12:02
0 ответов

Fortran FFT параллельно с использованием openmp

Я хотел бы ускорить вычисления Якобиана в подпрограмме Advection, используя инструкции omp. Моя неудачная попытка показана ниже. Четыре вычисления, обозначенные как разделы с 1 по 4, не зависят друг от друга. Обратите внимание, что я не пытаюсь испо…
29 июн '17 в 18:32
0 ответов

openMP только на внутреннем цикле не работает

Это обновление к моему первоначальному вопросу с рабочим кодом и включенным временем выполнения. У меня есть простой код, который выполняет двухмерную случайную прогулку с несколькими проходчиками за несколько шагов. Я пытаюсь распараллелить ходоков…
03 июн '16 в 19:48
1 ответ

Как использовать OpenMP в программе C++

Я хотел бы использовать OpenMP для распараллеливания некоторых из моих функций в программе на C++. Я использую Ubuntu 12.04, на Intel i5 с 4 ядрами. Но после выполнения определенных шагов я не вижу улучшения в производительности. Я мог видеть, что и…
19 ноя '14 в 06:42
1 ответ

Упорядоченные идентификаторы потоков в OpenMP в C++

Я использую OpenMP в C++. Я хочу указать количество потоков (16), а затем запустить каждый поток с идентификатором от 0 до 15. У меня есть массив из 16 чисел, которые я хочу использовать в качестве параметров в каждом отдельном потоке. Так что я omp…
14 апр '17 в 00:33
2 ответа

Как распараллелить сдвиг массива с OpenMP?

Как я могу распараллелить сдвиг массива с OpenMP? Я попробовал несколько вещей, но не получил точных результатов для следующего примера (который вращает элементы массива объектов Carteira для алгоритма перестановки): void rotaciona(int i) { Carteira…
17 май '11 в 12:18
2 ответа

Как обеспечить, чтобы динамически размещенный массив был закрытым в openmp

Я работаю в C с openMP, используя gcc на Linux-машине. В openmp параллельном цикле я могу объявить статически размещенный массив как закрытый. Рассмотрим фрагмент кода: int a[10]; #pragma omp parallel for shared(none) firstprivate(a) for(i=0;i<4;…
28 фев '10 в 22:13
1 ответ

OpenMP вызывает внутреннюю ошибку компилятора

Я написал небольшую программу для проверки прироста производительности OpenMP. Я компилирую с использованием Microsoft Visual Studio. void findAllPrimesUntilX() { for (int i = 2; i <= upToXthPrimes; i++) { if (i % 500 == 0) std::cout << "Fi…
09 авг '17 в 16:40
1 ответ

OpenMP и CPU сходство

Будет sched_setaffinity или же pthread_attr_setaffinity_np работать, чтобы установить сходство потоков под OpenMP? Связанный: CPU Affinity
30 ноя '11 в 11:55
1 ответ

OpenMP Nested Loop, что делает код?

У меня проблемы с пониманием того, как OpenMP работает с вложенными циклами. Пожалуйста помоги! Я получил следующий код для параллельной работы: #pragma omp parallel private(i) { for(i=0; i<n; i++) { #pragma omp for for(j=0; j<n; j++) { if(asu…
27 ноя '12 в 05:31
1 ответ

openMp: серьезная потеря производительности при вызове общих ссылок динамических массивов

Я пишу симуляцию cfd и хочу распараллелить мой цикл ~10^5 (размер решетки), который является частью функции-члена. Реализация кода openMp проста: я читаю записи общих массивов, выполняю вычисления с частными потоками и, наконец, снова записываю в об…
17 июн '15 в 08:22
2 ответа

OpenMP базовое распараллеливание

Я застрял в написании некоторого параллельного кода c с использованием OpenMP для курса параллелизма. Вот фрагмент #include <stdio.h> #include <time.h> #include <math.h> #define FALSE 0 #define TRUE 1 int count_primes_0(int); int c…
12 фев '11 в 17:19
2 ответа

Ошибка openmp с радиальным вычислением

#pragma omp parallel for schedule(static) default(none) for(int row = 0; row < m_height; row++) { for(int col = 0; col < m_width; col++) { int RySqr, RxSqr; SettingSigmaN(eta, m_RxInitial + col, m_RyInitial + row , RxSqr, RySqr); FunctionUsing…
6 ответов

Эффективный способ сохранения данных на диск во время выполнения задачи, требующей большого объема вычислений

Я работаю над научным программным обеспечением, которое очень интенсивно использует процессор (его привязка к процессу), но оно должно записывать данные на диск довольно часто (привязано к вводу / выводу). Я добавляю распараллеливание к этому (OpenM…
0 ответов

Неожиданное замедление с внутренним для параллелизации цикла с использованием OpenMP на компиляторе Intel

Я пишу программу для физического моделирования. Я получаю неожиданное замедление при распараллеливании внутреннего цикла for при компиляции с помощью компилятора Intel C++ (icpc). Суть кода заключается в следующем: for(int i = 0; i < steps; i++){…
19 сен '16 в 04:14
2 ответа

Как распараллелить вложенный цикл

Это часть кода C++ для решения задачи вычислительной математики большой размерности, скажем, более 100000 переменных. Я хотел бы распараллелить это с помощью OpenMP. Как лучше всего распараллелить следующий вложенный цикл с помощью OpenMP? e = 0; //…
26 апр '14 в 16:47