PARALLEL.RU

Дискуссионный клуб по параллельным вычислениям
Текущее время: 24 окт 18 1:35

Часовой пояс: UTC + 4 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 16 ]  На страницу Пред.  1, 2
Автор Сообщение
СообщениеДобавлено: 4 апр 08 13:52 
Не в сети

Зарегистрирован: 18 июн 07 13:13
Сообщения: 47
Откуда: Москва
Цитата:
А неправильно вот почему: s=s+a[i] - операция неатомарная. Соответственно может случиться, что обе нити одновременносанчала прочитают значение S, потом прибавит каждая свое значение a[i], потом обе запишут результат назад в S. Соответственно, один из результатов не будет записан (на его место ляжет другой), и одно из слагаемых потеряется.


В приведённом вами случае нужно применять редукцию.
То есть в каждом потоке переменная S будет локальной копией а при выходе из цикла происходит сложение всех результатов суммирования.

См. пример: https://computing.llnl.gov/tutorials/openMP/#REDUCTION


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 16 ]  На страницу Пред.  1, 2

Часовой пояс: UTC + 4 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB