0 / 0 / 1
Регистрация: 15.12.2012
Сообщений: 19
|
||||||
1 | ||||||
Программирование на OpenMP08.04.2015, 19:20. Показов 2159. Ответов 10
Метки нет (Все метки)
Такой вопрос, у меня есть прога, которая работает ~сутки, не буду вдаваться что и как она делает, мне посоветовали для быстроты распоточить, начал гуглить, наткнулся на использование openMP(пример взят с msdn):
В качестве примера рассмотрим классическую программу «Hello World»:
Hello World Hello World Тем не менее, результат мог бы оказаться и таким: HellHell oo WorWlodrl d компилю этот код у себя и получаю в консоли только Hello World 1 раз, хотелось бы разобраться как работать с этой штукой(использую Visual studio2013). Добавлено через 10 минут разобрался, необходимо включить поддержку openMP: Откройте диалоговое окно Страницы свойств проекта. Дополнительные сведения см. в разделе Открытие свойств страниц проекта. Разверните узел Свойства конфигурации. Разверните узел C/C++. Выберите страницу свойств Язык. Измените значение свойства Поддержка OpenMP.
0
|
08.04.2015, 19:20 | |
Ответы с готовыми решениями:
10
Параллельное программирование openmp OpenMP. Время выполнения программы больше чем без OpenMP Параллельное программирование openmp (Умножение матрицы на вектор) Программирование с OpenMP и ошибка Cannot open file |
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
|
|
08.04.2015, 19:22 | 2 |
Свойства проекта -> С/С++ -> Language -> Open MP Support -> Yes
Добавлено через 2 минуты Можно еще заняться поиском слабых мест, с целью увеличения их скорости работы. Я, например, часто использую Inte VTune Amplifier для поиска самых трудоемких мест в проекте, а также Intel Inspector для поиска утечек и ошибок работы с памятью.
0
|
0 / 0 / 1
Регистрация: 15.12.2012
Сообщений: 19
|
||||||
08.04.2015, 19:45 [ТС] | 3 | |||||
У меня возник вопрос следующего характера:
допустим есть код:
мне нужно поведение следущего хар-ра чтобы в каждый поток опрвлялся лишь внешний for
0
|
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
|
|
08.04.2015, 20:08 | 4 |
Omp выберет оптимальное кол-во потоков (если ты их сам строго не указал),
далее твой первый for разобьется на куски и каждый кусок будет выполняться в отдельном потоке. Параллелить вложенные циклы в дополнение к первому обычно бессмысленно.
0
|
mat_for_c
|
08.04.2015, 20:20
#5
|
Не по теме: nonedark2008, у тебя профилировщик какого года?
0
|
nonedark2008
|
08.04.2015, 20:23
#6
|
Не по теме: mat_for_c, 2015
0
|
mat_for_c
|
08.04.2015, 20:27
#7
|
Не по теме: а чтобы в нем отпрофилировать omp region нужен интелловский компилятор?
0
|
nonedark2008
|
08.04.2015, 20:33
#8
|
Не по теме: mat_for_c, нет. Но я считаю, что со своим компилятором анализ будет продуктивнее.
0
|
mat_for_c
|
08.04.2015, 20:41
#9
|
0
|
nonedark2008
|
08.04.2015, 20:50
#10
|
0
|
0 / 0 / 1
Регистрация: 15.12.2012
Сообщений: 19
|
|||||||||||
08.04.2015, 21:58 [ТС] | 11 | ||||||||||
Unhandled exception at 0x0F912153 (xeneth-xvi.dll) in XVI_CONVERTER.EXE: 0xC0000005: Access violation writing location 0x03685000. если не использовать
я предполагаю, что не получается в один момент времени считать с файла значения 4мя потоками, как можно модернизировать код?
0
|
08.04.2015, 21:58 | |
08.04.2015, 21:58 | |
Помогаю со студенческими работами здесь
11
OpenMP Qt и openMP Qt и OpenMp OpenMP Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |