Я разрабатываю многопоточное приложение в C ++, которое управляет системой распределения ресурсов для задач с динамическими зависимостями. Каждая задача требует подмножества ресурсов (например, ядер ЦП, блоки памяти или каналы ввода -вывода) из общего пула, и задачи могут появляться подзадачи, которые создают новые цепочки зависимости во время выполнения. Система использует пул потоков для выполнения задач одновременно, причем каждый поток получает ресурсы через блокировки Mutex. Тем не менее, я сталкиваюсь с тупиками, когда задачи с круговыми зависимостями пытаются приобрести ресурсы. Тупика возникает спорадически, что затрудняет последовательно воспроизводить. Моя цель состоит в том, чтобы обеспечить выполнение без тупика при сохранении высокой параллелистики и минимизации задержки для выполнения задачи. Задачи представлены в виде узлов в направленном ациклическом графике (DAG), и я попытался обнаружить круговые зависимости, используя поиск по глубине (DFS) перед назначением ресурсов. Тем не менее, DFS не сможет поймать подзадаченные временем, которые вводят круговые ожидания. Я также попытался установить тайм -аут для получения ресурсов, но это привело к тому, что задачи не прошли преждевременно, снижая пропускную способность. Я ожидал, что система будет либо предотвратить тупики путем обнаружения/предотвращения круговых зависимостей, либо изящно разрешить их, не жертвуя параллелизмом. Вместо этого приложение висит, когда несколько потоков ожидают до бесконечности ресурсов, удерживаемых другими.
Подробнее здесь: https://stackoverflow.com/questions/795 ... c-task-dep
Задача тупика в системе распределения ресурсов с динамическими зависимостями задач с динамическими задачами ⇐ C++
Программы на C++. Форум разработчиков
1745523543
Anonymous
Я разрабатываю многопоточное приложение в C ++, которое управляет системой распределения ресурсов для задач с динамическими зависимостями. Каждая задача требует подмножества ресурсов (например, ядер ЦП, блоки памяти или каналы ввода -вывода) из общего пула, и задачи могут появляться подзадачи, которые создают новые цепочки зависимости во время выполнения. Система использует пул потоков для выполнения задач одновременно, причем каждый поток получает ресурсы через блокировки Mutex. Тем не менее, я сталкиваюсь с тупиками, когда задачи с круговыми зависимостями пытаются приобрести ресурсы. Тупика возникает спорадически, что затрудняет последовательно воспроизводить. Моя цель состоит в том, чтобы обеспечить выполнение без тупика при сохранении высокой параллелистики и минимизации задержки для выполнения задачи. Задачи представлены в виде узлов в направленном ациклическом графике (DAG), и я попытался обнаружить круговые зависимости, используя поиск по глубине (DFS) перед назначением ресурсов. Тем не менее, DFS не сможет поймать подзадаченные временем, которые вводят круговые ожидания. Я также попытался установить тайм -аут для получения ресурсов, но это привело к тому, что задачи не прошли преждевременно, снижая пропускную способность. Я ожидал, что система будет либо предотвратить тупики путем обнаружения/предотвращения круговых зависимостей, либо изящно разрешить их, не жертвуя параллелизмом. Вместо этого приложение висит, когда несколько потоков ожидают до бесконечности ресурсов, удерживаемых другими.
Подробнее здесь: [url]https://stackoverflow.com/questions/79591350/deadlock-issue-in-multithreaded-resource-allocation-system-with-dynamic-task-dep[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия