Предположим, у меня есть набор из 20 задач, нагружающих процессор (~ 1 час каждая, но некоторые занимают намного больше времени), которые выполняются путем вызова функции, например. Pool.apply_async(function, Task_list) и т. д. ПК имеет 12 ядер. Таким образом, я могу распределить нагрузку и использовать все 12 ядер.
Результат каждой задачи может потребовать запуска новой задачи (некоторым задачам может потребоваться 1 новая задача). другие, возможно, 10).
Когда требуется новая задача, я хотел бы создать эту задачу в существующем пуле Task_list, чтобы полностью оптимизировать ЦП использования в любое время.
В настоящее время я запускаю 20 задач, жду завершения, запускаю новые ~18 задач, жду завершения, запускаю оставшиеся новые задачи, ...., при этом в течение часа используется только 1 ядро , вместо 12. Это приводит к потере времени расчета от нескольких часов до дней. Я мог бы запустить обновленную задачу в том же воркере, однако это приведет к еще большей потере)
С пулом кажется невозможным добавлять в пул больше задач, пока оно запущено. Это правильно, или есть какие-то умные способы сделать это, которые я пропустил при поиске повсюду?
(Единственный вариант, который я вижу, — это использовать процесс вместо пула и сделайте цикл while для динамического списка, который запускает типичную задачу как один процесс, при этом позволяя одновременно выполнять только до 12 процессов, и для каждой задачи или новой задачи, поместите их в динамический список и удалите задачу при ее отправке в процесс.)
Подробнее здесь: https://stackoverflow.com/questions/543 ... ker-result
Как добавить дополнительные задачи в работающий многопроцессорный пул на основе результатов работы? ⇐ Python
Программы на Python
1732359940
Anonymous
Предположим, у меня есть набор из 20 задач, нагружающих процессор (~ 1 час каждая, но некоторые занимают намного больше времени), которые выполняются путем вызова функции, например. Pool.apply_async(function, Task_list) и т. д. ПК имеет 12 ядер. Таким образом, я могу распределить нагрузку и использовать все 12 ядер.
Результат каждой задачи может потребовать запуска новой задачи (некоторым задачам может потребоваться 1 новая задача). другие, возможно, 10).
Когда требуется новая задача, я хотел бы создать эту задачу в существующем пуле Task_list, чтобы полностью оптимизировать ЦП использования в любое время.
В настоящее время я запускаю 20 задач, жду завершения, запускаю новые ~18 задач, жду завершения, запускаю оставшиеся новые задачи, ...., при этом в течение часа используется только 1 ядро , вместо 12. Это приводит к потере времени расчета от нескольких часов до дней. Я мог бы запустить обновленную задачу в том же воркере, однако это приведет к еще большей потере)
С пулом кажется невозможным добавлять в пул больше задач, пока оно запущено. Это правильно, или есть какие-то умные способы сделать это, которые я пропустил при поиске повсюду?
(Единственный вариант, который я вижу, — это использовать процесс вместо пула и сделайте цикл while для динамического списка, который запускает типичную задачу как один процесс, при этом позволяя одновременно выполнять только до 12 процессов, и для каждой задачи или новой задачи, поместите их в динамический список и удалите задачу при ее отправке в процесс.)
Подробнее здесь: [url]https://stackoverflow.com/questions/54351828/how-to-add-extra-tasks-to-a-running-multiprocessing-pool-based-on-worker-result[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия