TBB concurrent_vector с openmp - PullRequest
       70

TBB concurrent_vector с openmp

3 голосов
/ 07 октября 2011

Можем ли мы использовать TBB concurrent_vector с openmp?

Будут ли разрешены одновременные обновления?

Ответы [ 2 ]

4 голосов
/ 07 октября 2011

Да, параллельные структуры данных TBB предназначены для обеспечения безопасности потоков, что означает, что любые парадигмы потоков, такие как OpenMP, TBB, Cilk, PPL и т. Д., Подходят для использования параллельных структур данных TBB. Это связано с тем, что concurrent_vector - это просто класс структуры данных, а не управляющий код, связанный с потоками.

Кроме того, мьютекс TBB может также использоваться в OpenMP, Cilk и PPL.

3 голосов
/ 07 октября 2011

В соответствии с разделом 1.11 страницы concurrent_vector на сайте Intel, постепенный рост, ограниченный рост и добавление новых объектов в вектор - все это потокобезопасные операции.

Во введении также говорится, что добавление новых элементов не делает недействительными существующие итераторы.

Все это означает, что вы должны иметь возможность безопасного многопоточного доступа к concurrent_vector с помощью openmp.

...