![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| cutwater |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 592 Регистрация: 24.6.2008 Репутация: 1 Всего: 10 |
Здравствуйте уважаемые форумчане!
Проблема следующего рода. В наличии 8 ядер, вычисления распараллеливаются при помощи OpenMP всего один цикл при помощи #pragma omp parallel for. Вот только по моим наблюдениям не запускается один поток из восьми, хотя значения цикла равномерно распределяются на 8 частей, из-за чего 1/8 значений остается не покрытой. На тестовом примере, который не производил ресурсоемких вычислений запускались все 8 потоков. Далее я протестировал на цикл множестве непокрытых значений, ошибка повторилась.
Код
и результаты
P.S. Поиск по google, багтрекерам GCC и mailists похожих проблем не обнаружил. Это сообщение отредактировал(а) cutwater - 16.3.2010, 09:00 |
||||||
|
|||||||
| cutwater |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 592 Регистрация: 24.6.2008 Репутация: 1 Всего: 10 |
Проблема решилась, так что придется отвечать самому себе.
Оказывается gcc 4.4.3 поддерживает спецификацию OpenMP 2.5, в которой счетчик цикла может быть только signed integer. Ошибка всплывает на беззнаковом целом, на граничном значении, в моем случае 0xFFFF. |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |