Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
soican
49 / 23 / 1
Регистрация: 16.11.2011
Сообщений: 329
Записей в блоге: 5
#1

OpenMP. Назначение числа потоков во время исполнения - C++

11.06.2013, 11:38. Просмотров 735. Ответов 5
Метки нет (Все метки)

Задача проста - есть готовые вектора, с которыми надо проводить операции. Размер их очень большой, поэтому задумался о многопоточности.
Так вот, ребят, а как выбрать для себя сколько потоков мне назначить? Какая здесь вообще идея, определяющая их оптимальное количество? (образ-ие не по этой спец-ти, поэтому может какую "мат. часть" почитать?)
C++
1
omp_set_num_threads(number);
или может нужно использовать динамическое изменение
C++
1
omp_set_dynamic(number);
Или если кто в курсе, может в другие библиотеки надо лезть?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.06.2013, 11:38
Здравствуйте! Я подобрал для вас темы с ответами на вопрос OpenMP. Назначение числа потоков во время исполнения (C++):

OpenMP. Время выполнения программы увеличивается с количеством потоков - C++
Задача: найти сумму максимальных элементов строк матрицы. Я составил код программы и распараллелил циклы. На компьютере вроде работает как...

OpenMP. Время выполнения программы больше чем без OpenMP - C++
Сегодня первый раз сел за OpenMP. Читаю на сайте майкрософта как работает этот API. Так вот там сказано:"Директива #pragma omp for...

Создание потоков в openmp - C++
Доброго времени суток. Мне удалось распараллелить цикл for, но внутри данного цикла, помимо прочего, содержится ещё один цикл for,...

OpenMP, создание потоков - C++
В инете нашел много примеров по распараллеливание циклов, но никак не могу понять, как просто написать чтобы конкретная функция выполнялась...

Как контролировать число создаваемых потоков? OpenMP - C++
Здравствуйте. Начал изучать OpenMP. Имеется вопрос - когда мы делаем #pragma omp parallel for Мы можем контролировать число...

Ошибка во время исполнения - C++
Здравствуйте, вылазит ошибка: Debug Assertion Failed! Expression: string subscript out of range while(getline(ffc, bffc)) { int...

5
dstat
36 / 38 / 1
Регистрация: 01.06.2011
Сообщений: 238
11.06.2013, 11:54 #2
еще можно посмотреть в сторону векторных инструкций процессора и поиграть с автовекторизацией
0
soican
49 / 23 / 1
Регистрация: 16.11.2011
Сообщений: 329
Записей в блоге: 5
11.06.2013, 12:08  [ТС] #3
Хорошо в сторону векторных инструкций процессора и автовекторизации обязательно посмотрим.
Ну а если планируется использовать приложение на любых компьютерах и соответственно процессорах, тогда как?
0
stima
494 / 344 / 43
Регистрация: 22.03.2011
Сообщений: 1,105
Завершенные тесты: 2
11.06.2013, 13:22 #4
Оставьте право решать это openMP. Вообще мое мнение не больше чем 2 * количество ядер.
0
soican
49 / 23 / 1
Регистрация: 16.11.2011
Сообщений: 329
Записей в блоге: 5
11.06.2013, 13:34  [ТС] #5
хорошо..а есть информация что определяет omp_set_dynamic(number)?
ведь если я пишу для своего процессора я могу впринципе не мытьем так катаньем определить оптимальное кол-во потоков, но если пишется для любого процессора, то тогда может ли мне помочь вот эта omp_set_dynamic(number)?
0
stima
494 / 344 / 43
Регистрация: 22.03.2011
Сообщений: 1,105
Завершенные тесты: 2
11.06.2013, 13:44 #6
http://edu.chpc.ru/parallel/mainse6.html
1
11.06.2013, 13:44
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.06.2013, 13:44
Привет! Вот еще темы с ответами:

Время исполнения алгоритмов - C++
Дали задание "Экспериментально сравнить реализации этих двух алгоритмов по времени исполнения на различных наборах данных, различных по...

Ошибка во время исполнения - C++
При попытке запустить программу Visual Studio пишет: Unhandled exception at 0x011027ce in GLTore.exe: 0xC0000005: Access violation...

Время исполнения операций и циклов - C++
Каким образом рассчитать время на исполнение любой операции в коде? К примеру, дан исходник: #include <iostream> #include <cmath> ...

Ошибка во время исполнения runtime-error - C++
Добрый день. Программа компилируется на RAD Studio XE3. Нормально работает и показывает правильный результат. При отправке в проверочный...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.