LINUX.ORG.RU

[OpenMP] Shared Memory


0

1

Насколько дешёвыми являются операции доступа к одной переменой из нескольких потоков с помощью OpenMP?

Какие подводные камни может иметь попытка из нескольких потоков насиловать один QList (добавление, удаление, изменение элементов и пр.) без блокировок?

Приветствуется полезная литература.

попытка из нескольких потоков насиловать один QList (добавление, удаление, изменение элементов и пр.) без блокировок?


ну хоть бы подумал что пишешь. Тут тебе не подводные камни будут, а цунами.

Boy_from_Jungle ★★★★ ()

>Какие подводные камни может иметь попытка из нескольких потоков насиловать один QList (добавление, удаление, изменение элементов и пр.) без блокировок?

Ну, как минимум, будет валиться при одновременных попытках править кулист.

Zhbert ★★★★★ ()

3.1415здец будет. Организуй данные так, чтобы они не менялись из разных потоков.

Reset ★★★★★ ()

Так... момент!

Насколько я понял мощь OpenMP заключается в простоте распоточивания приложений и работе с общей памятью.

Также мне известно, что переменная расположенная перед распоточенным блоком считается расшаренной для любого потока внутри этого блока. В моём вопросе подразумевалось, что это объект QList. В примерах я не узрел явного описания блокировок.

И вопрос-баян: как реализовано OpenMP? Где-то пробегало, что это просто обёртка над потоками и мьютексами. Так это? Какую роль играет опция -fopenmp при компилировании приложения, с точки зрения приёмов компилирования (т.е. почему компилятор должен ПОДДЕРЖИВАТЬ работу с OpenMP и почему не смогли обойтись простой строчкой #include <omp.h> в таком случае?)?

Просто вброс: почему при компиляции питона с -fopenmp линковщик бросает ошибку и останавливает сборку?

DarkAmateur ★★★ ()

пиши в потоках в локальные переменные, а потом собери все в точке join'a в лист, зачем делать неправильно?

Zubchick ()
Ответ на: комментарий от DarkAmateur

Просто вброс: почему при компиляции питона с -fopenmp линковщик бросает ошибку и останавливает сборку?

Потому что надо ещё и линковать с -lgomp ? Угадал?

tim239 ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.