Описание тега work-stealing

A task scheduling algorithm, well suited for shared memory environments, where parallel processors can easily access each other's pending tasks.
1 ответ

Диспетчер WPF и кража работы?

У меня есть приложение, которое использует WPF для своего графического интерфейса, но по команде запускает очень большую нагрузку обработки. Я заметил, что мой GUI был довольно вялым, когда работал движок (интенсивная обработка), и при использовании…
1 ответ

Кража работы и поток на уровне ядра

Воровство работы - распространенная стратегия для пользовательского потока. Каждый процесс имеет рабочую очередь для приема на работу и будет воровать из очереди других, когда у них нет работы. Есть ли ядро, которое реализует такую ​​стратегию для п…
1 ответ

Когда использовать схему разрушения, а когда локальное хранилище с кражей работы?

Правильно ли следующее? Шаблон разрушения имеет лучшую производительность и масштабируемость при параллельном обработке, если каждая запись должна обрабатываться несколькими способами (операции или аннотации), поскольку она может быть распараллелена…
2 ответа

Как я могу обеспечить согласованность глобальной памяти CUDA без объявления указателя как изменчивого?

Я сначала сделаю некоторую контекстуализацию. Я пытаюсь реализовать неблокирующий метод кражи работы с использованием deques в CUDA. Deques (aDeques) находятся в массиве с сегментированными блоками в глобальной памяти, а функция устройства popWork()…
23 янв '13 в 16:39
2 ответа

Методы децентрализованного планирования задач в.NET

Я пытался узнать больше деталей о CLR 4.0. и ThreadPool и различные стратегии, рекомендованные Microsoft. Я считаю себя достаточно современным по многим из этих тем и ежедневно использую многопоточность и параллельный код. Недавно я снова прошел чер…
09 авг '13 в 15:11
1 ответ

Можно ли написать решение для рекурсивного объединения вил, используя Executors.newWorkStealingPool()?

Приведенный ниже код предназначен для демонстрации простого использования рекурсивного объединения вил (найти макс.). Я знаю, что Java JIT может добиться этого быстрее в простом однопоточном цикле, но это только для демонстрации. Первоначально я реа…
1 ответ

Контекст основного потока, возвращающийся в другом аппаратном потоке, неопределенное поведение?

В настоящее время я работаю над библиотекой параллелизма для C++ с зелеными потоками, использующей кражу работы для балансировки нагрузки между планировщиками на нескольких аппаратных потоках. Я прикрепил основной контекст к его аппаратному потоку, …
1 ответ

Производительность кражи Cilk работы

Я читаю статьи, в которых описывается работа Килка по краже графиков. 1) Насколько я понимаю, планировщик не знает задач критического пути, а просто пытается поддерживать его выполнение в любом случае, крадя задачи, которые не являются "глубокими" в…
22 авг '16 в 13:57
0 ответов

Как реализовать запланированный рабочий процесс (низкий приоритет) ExecutorService?

Мой проект требует, чтобы две задачи с низким приоритетом выполнялись регулярно. Простое решение - назначить исполнителя с двумя заданиями, запланированными с фиксированной ставкой. Теперь проблема в том, что могут быть другие задачи с более высоким…
2 ответа

Всегда ли Work Stealing является наиболее подходящим алгоритмом планирования потоков на уровне пользователя?

Я исследовал различные алгоритмы планирования для пула потоков, которые я реализую. Из-за характера проблемы, которую я решаю, я могу предположить, что задачи, выполняемые параллельно, независимы и не порождают никаких новых задач. Задачи могут быть…
1 ответ

Использование cilk++ воровство работы

Я новичок в cilk++, и я хочу использовать планировщик кражи работы cilk. Я не мог найти много информации об этом. Кто-нибудь может мне помочь в этом? Благодарю.
09 апр '13 в 05:09
3 ответа

Выполняет многопоточную загрузку тысяч изображений, вызывая IOException

У меня проблема с загрузкой большого количества изображений через ForkJoinPool, я тестирую на 4-х ядерном Intel с гипер-продвижением так 8 логических потоков. Тем не менее, я ограничиваю пул только 4 потоками. И я получаю ошибки от ImageIO, не в сос…
1 ответ

Похищение параллельной работы, кажется, не крадет много работы

Идея состоит в том, чтобы запустить параллельную работу на 96-ядерном компьютере с кражей работы. ForkJoinPool, Ниже приведен код, который я использую до сих пор: import scala.collection.parallel.ForkJoinTaskSupport import scala.concurrent.forkjoin.…
01 фев '18 в 16:43
1 ответ

Java ForkJoinPool с нерекурсивными задачами, работает ли воровство?

Я хочу представить Runnable задачи в ForkJoinPool с помощью метода: forkJoinPool.submit(Runnable task) Обратите внимание, я использую JDK 7. Под капотом они превращаются в объекты ForkJoinTask. Я знаю, что ForkJoinPool эффективен, когда задача рекур…
0 ответов

Реализация алгоритма взаимного исключения Дейкстры

Я пытаюсь реализовать алгоритм Дейкстры в пуле потоков форка / соединения (состоит из основного пула потоков с глобальной очередью задач и N потоков с собственной очередью задач) на основе решения Дейкстры проблемы в управлении параллельным программ…
13 ответов

Реализация очереди кражи работы в C/C++?

Я ищу правильную реализацию очереди кражи работы в C/CPP. Я посмотрел вокруг Google, но не нашел ничего полезного. Возможно, кто-то знаком с хорошей реализацией с открытым исходным кодом? (Я предпочитаю не реализовывать псевдокод, взятый из оригинал…
4 ответа

Алгоритм кражи работы

Я читаю статью о Concurrency Runtime, и есть алгоритм с именем work stealing в этой статье. но я понятия не имею, что это за алгоритм! поэтому я хочу небольшое объяснение или какую-нибудь хорошую ссылку, которая могла бы помочь мне сделать презентац…
31 янв '12 в 14:40
1 ответ

Как я могу показать, что в Java Fork/Join Framework происходит кража работы?

Я хотел бы улучшить мой небольшой пример fork/join, чтобы показать, что во время выполнения платформы Java Fork/Join происходит кража работы. Какие изменения мне нужно сделать, чтобы следующий код? Цель примера: просто провести линейное исследование…
28 дек '12 в 23:04
2 ответа

Используйте CompletableFuture на ForkJoinpool и избегайте ожидания потока

Здравствуйте, я думал с CompletableFuture и по умолчанию ForkJoinPool Я мог бы оптимизировать выполнение задачи больше, чем классический ExecutorService но я что-то упустил С этим кодом выполнение занимает 1 секунду, у меня есть 3 рабочих потока: fo…
2 ответа

В Java 8 Executors.newWorkStealingPool() также обеспечивает очередь задач?

Есть ли очередь ожидающих выполнения задач, используемых в сочетании с Java 8? Executors.newWorkStealingPool()? Например, предположим, что число # доступных ядер равно 2, и Executors.newWorkStealingPool() пусто, потому что 2 задачи уже запущены. Что…