Size: a a a

2020 November 02

A

Alex in pro.cxx
Danya
Там есть платная версия, но я хз чем отличается
Ну как минимум приоритетная поддержка и наверное даже можно пообщаться напрямую с разрабами, если очень нужно
Понял, спасибо.
источник

A

Alex in pro.cxx
А есть хороший overview / guide, что крутого в этой библиотеке и как она упрощает жизнь, или что с ней можно сделать интересного?
Смотрю оф. доку, она ужасна, по-моему
источник

AT

Anatoly Tomilov in pro.cxx
а можно просто в этот чатик отписаться), как оказалось
источник

A

Alex in pro.cxx
А он только с icc работает, или с любым компилятором?
источник

AN

Alexander N in pro.cxx
Alex
А он только с icc работает, или с любым компилятором?
С любым
источник

AN

Alexander N in pro.cxx
По крайней мере я даже кросскомпилил код  под андроид, который юзает TBB
источник

D

Danya in pro.cxx
GCC, Clang, MSVC и ICC точно поддерживает
источник

AN

Alexander N in pro.cxx
Я так помню Embracadero прикопал свой компилер)) Так что его можно в рассчет не брать наверное. Если конечно не путаю в пользу шланга
источник

D

Danya in pro.cxx
Alex
А есть хороший overview / guide, что крутого в этой библиотеке и как она упрощает жизнь, или что с ней можно сделать интересного?
Смотрю оф. доку, она ужасна, по-моему
Основные фичи:
1. Параллельные алгоритмы
2. Конкурентные контейнеры
3. Тред пул
4. Flow graph
источник

D

Danya in pro.cxx
Есть две версии TBB:
1. Старая, которая так и называется — TBB. Вот дока по нему: https://www.threadingbuildingblocks.org/docs/help/index.htm
2. Новая — oneTBB, которая является частью инициативы oneAPI
Основные отличия:
а) Минимальный поддерживаемый стандарт — С++11. Как следствие — меньше костылей из-за старых стандартов.
б) Новые фичи скорее всего будут добавляться только туда
Дока: https://spec.oneapi.com/versions/latest/elements/oneTBB/source/nested-index.html
Минус — она пока что в бете, но ожидается стабильный релиз к концу года, вроде
источник

AT

Anatoly Tomilov in pro.cxx
Danya
Есть две версии TBB:
1. Старая, которая так и называется — TBB. Вот дока по нему: https://www.threadingbuildingblocks.org/docs/help/index.htm
2. Новая — oneTBB, которая является частью инициативы oneAPI
Основные отличия:
а) Минимальный поддерживаемый стандарт — С++11. Как следствие — меньше костылей из-за старых стандартов.
б) Новые фичи скорее всего будут добавляться только туда
Дока: https://spec.oneapi.com/versions/latest/elements/oneTBB/source/nested-index.html
Минус — она пока что в бете, но ожидается стабильный релиз к концу года, вроде
хм, даже какие-то хедеры и лоадер есть. А в CMake добавлена поддержка?
источник

AN

Alexander N in pro.cxx
Реальный usecase TBB чисто CPU bound так? Т.е вычисления не оскверненные никаким IO
источник

D

Danya in pro.cxx
Anatoly Tomilov
хм, даже какие-то хедеры и лоадер есть. А в CMake добавлена поддержка?
Ну про арч я не знаю
Сборка oneTBB на CMake вместо Make
Вот ещё один плюс в копилку oneTBB
источник

D

Danya in pro.cxx
Alexander N
Реальный usecase TBB чисто CPU bound так? Т.е вычисления не оскверненные никаким IO
Ну вот вроде в World of tanks что-то считают с помощью flow graph'a — на клиенте
Где-то в презентации Wargaming видел
источник

AT

Anatoly Tomilov in pro.cxx
Danya
Ну про арч я не знаю
Сборка oneTBB на CMake вместо Make
Вот ещё один плюс в копилку oneTBB
ну как он собирается, прежде чем попадает в пакет — это не так интересно, а вот файлики на замену /usr/lib64/cmake/TBBConfig{,Version}.cmake точно не помешают
источник

IA

Ilia Abernikhin in pro.cxx
Danya
Есть две версии TBB:
1. Старая, которая так и называется — TBB. Вот дока по нему: https://www.threadingbuildingblocks.org/docs/help/index.htm
2. Новая — oneTBB, которая является частью инициативы oneAPI
Основные отличия:
а) Минимальный поддерживаемый стандарт — С++11. Как следствие — меньше костылей из-за старых стандартов.
б) Новые фичи скорее всего будут добавляться только туда
Дока: https://spec.oneapi.com/versions/latest/elements/oneTBB/source/nested-index.html
Минус — она пока что в бете, но ожидается стабильный релиз к концу года, вроде
Спасибо за инфу, была полезна)
источник

D

Danya in pro.cxx
Anatoly Tomilov
хм, даже какие-то хедеры и лоадер есть. А в CMake добавлена поддержка?
Ну это не oneTBB, а level zero
Для чего он нужен я так и не понял
источник

D

Danya in pro.cxx
Ilia Abernikhin
Спасибо за инфу, была полезна)
Не за что, надеюсь не соврал)
источник
2020 November 03

ID

In Dev in pro.cxx
Добрый вечер. Упрощенно имеется следующий код:
void send(const Type & type, Message && msg)
{
   send_impl(type, std::move(msg));
}
void send_impl(const Type & type, Message && msg)
{
   //...
}

После msg идет еще 1-3 параметра в зависимости от перегрузки.

Возникла необходимость помимо type (std::string) передавать также tags (std::set) и meta (std::map<string, string>), при этом хотелось бы не портить текущий интерфейс и также отдавать все одним аргументом.
Из этого родилось следующее:
https://codeshare.io/2pdJz9

Вопросы вот какие:
1. Можно ли как-то более явно показать, какие параметры ожидаются в тупле, вроде std::tuple<Type &, Tags &, Meta &> с сохранением преимуществ forward_as_tuple?
2. Можно ли как-то передать эту туплю в send_impl без темлейтов и распаковки, если send_impl лежит в .cpp файлике
3. Может я вообще не туда воюю и есть другой более адекватный подход?

П.С. Сделать еще несколько перегрузок, которые принимают теги и мету я как бы и могу, но хочется дать возможность отдавать только тип/только теги/только мету/мету и теги
С учетом того, что в методе send кроме приведенных в примере параметров есть еще, а также уже есть несколько перегрузок, мне кажется такой подход только раздует код и на местах вызова это будет кошмар.
П.П.С. Делать структурку и класть в нее перед передачей не хочется, ибо копии довольно дорогие и это хайлоад.
источник

IZ

Ilia Zviagin in pro.cxx
источник