Какой-либо опыт со Стандартными блоками Поточной обработки Intel? [закрытый]

Чтобы заполнить список уникальных имен, используйте Set, затем зациклите и заполните новый объект. Если вам нужен ключ, замените набор на карту.

Надеюсь, что этот пример поможет

       List<Cities> citiesList = findAllByCity();
        Set<Cities> uniqueCities = new HashSet<>();
        citiesList.forEach(c ->{
            uniqueCities.add(c);
        });
25
задан Pat Notz 20 September 2008 в 03:56
поделиться

8 ответов

Я ввел его в нашу кодовую базу, потому что нам был нужен заключающий пари malloc для использования, когда мы переместились в 16 базовых машин. С 8 и под ним не была значительная проблема. Это работало хорошо на нас. Мы планируем использование мелкомодульных параллельных контейнеров затем. Идеально мы можем использовать реальную суть продукта, но это требует пересмотра прежнего мнения, как мы создаем наш код. Мне действительно нравятся идеи в TBB, но не легко модифицировать на кодовую базу.

Вы не можете думать о TBB как другая библиотека поточной обработки. У них есть совершенно новая модель, которая действительно находится сверху потоков и абстрагирует потоки далеко. Вы учитесь думать в задаче, parallel_for операции типа и конвейеры. Если бы я должен был разработать новый проект, то я, вероятно, попытался бы смоделировать его этим способом.

Мы работаем в Visual Studio, и она работает просто великолепно. Это было первоначально записано для linux/pthreads, таким образом, это работает очень хорошо туда также.

13
ответ дан 28 November 2019 в 21:16
поделиться

Я не делаю числового вычисления, но я работаю с анализом данных (думайте, кластеризируясь и классификация), и наши рабочие нагрузки, вероятно, подобны: все данные статичны, и у Вас есть они в начале программы. Я кратко исследовал TBB Intel и нашел их излишеством для моих потребностей. После запуска с необработанного находящегося в pthread кода я переключился на OpenMP и получил правильное соединение между удобочитаемостью и производительностью.

5
ответ дан 28 November 2019 в 21:16
поделиться

Я использовал TBB кратко и буду, вероятно, использовать его больше в будущем. Мне понравилось использовать его, самое главное потому что Вы не должны иметь дело с макросами/расширениями C++, но остаться в языке. Также его довольно портативное. Я использовал его на обоих окнах и Linux. Одна вещь, хотя: трудно работать с потоками с помощью TBB, необходимо было бы думать с точки зрения задач (который является на самом деле хорошей вещью). Intel TBB не поддерживал бы Ваше использование пустых блокировок (это сделает это утомительным). Но в целом, это - мой предварительный опыт.

я также рекомендовал бы взглянуть на openMP 3 также.

3
ответ дан 28 November 2019 в 21:16
поделиться

ZThread является LGPL, Вы ограничены для пользований библиотекой в динамической связи, не работая в проекте с открытым исходным кодом.

Поточная обработка стандартных блоков (TBB) в открытой исходной версии, (существует новая коммерческая версия, 299$, не знайте, различия все же) версия 2 Генеральной общедоступной лицензии GNU с так называемым “Runtime Exception” (который характерен для использования только при создании бесплатного программного обеспечения.) я видел другие Исключения на этапе выполнения, которые пытаются приблизиться к LGPL, но включение коммерческого использования и статического подключения этот не является , теперь случай.

я только пишу это, потому что я рискнул для исследования лицензий библиотек, и те должны быть также соображением для выбора на основе использования, которое каждый намеревается дать им.

<час>

Txs, Jihn для указания на это обновление...

3
ответ дан 28 November 2019 в 21:16
поделиться

Я изучил TBB, но никогда не использовал его в проекте. Я не видел преимуществ (в моих целях) [более чем 110] ZThread. Резюме и несколько датированный обзор могут быть найдены здесь .

Это справедливо вместе с несколькими опциями отправки потока, всеми обычными классами синхронизации и очень удобным основанным на исключении механизмом "прерывания" потока. Это является легко растяжимым, правильно написанным и зарегистрировано. Я использовал его на 20 + проекты.
Это также играет по правилам с любым *, ОТКЛОНЯЮТ, который поддерживает потоки POSIX, а также Windows.

Стоящий взгляда.

2
ответ дан 28 November 2019 в 21:16
поделиться

Вы посмотрели повышение библиотека с API потока?

1
ответ дан 28 November 2019 в 21:16
поделиться

Поточная обработка стандартных блоков (TBB) в открытой исходной версии, (существует новая коммерческая версия, 299$, не знайте, различия все же) версия 2 Генеральной общедоступной лицензии GNU с так называемым “Runtime Exception” (который характерен для использования только при создании бесплатного программного обеспечения.) я видел другие Исключения на этапе выполнения, которые пытаются приблизиться к LGPL, но включению коммерческого использования и статического подключения дело обстоит не так.

Согласно этому вопрос стандартные блоки поточной обработки применим без разрешенных для копирования ограничений с коммерческим использованием.

2
ответ дан 28 November 2019 в 21:16
поделиться

Я использую TBB в одном проекте. Казалось, пользоваться им проще, чем потоками. Есть задачи, которые можно запускать параллельно. Задача - это просто вызов вашей параллельной подпрограммы. Балансировка нагрузки выполняется автоматически. Вот почему я принимаю ее как библиотеку распараллеливания более высокого уровня. Я без особых усилий добился увеличения скорости в 2,5 раза на 4-ядерном процессоре Intel. Есть примеры, они отвечают на вопросы на форумах, и это поддерживается, и это бесплатно.

3
ответ дан 28 November 2019 в 21:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: