Я обнаружил, что моя рабочая станция Linux с 12 процессорами почти перестала работать после того, как я выполнил сценарий оболочки (tcsh), имеющий цикл for, где более сотни циклов выполняемый одновременно, добавив в конце команды «&». Есть ли способ контролировать число или время выполнения фоновых процессов в for-loop с помощью tcsh?Как управлять многопоточными фоновыми заданиями в цикле в сценарии оболочки
ответ
GNU Parallel предназначен для таких ситуаций.
GNU Parallel - это общий параллелизатор, который позволяет легко запускать задания параллельно на одном компьютере или на нескольких компьютерах, к которым у вас есть доступ к ssh.
Если у вас есть 32 различных заданий, которые вы хотите работать на 4-х процессоров, прямо вперед способ распараллеливания является выполнение 8 заданий на каждом CPU:
GNU Parallel вместо порождает новый процесс, когда один заканчивается - поддержание процессоров активным и тем самым экономя время:
Установка
Если GNU Parallel не упакован для вашего дистрибутива, вы можете выполнить личную установку, которая не требует доступа root. Это может быть сделано в течение 10 секунд, делая это:
(wget -O - pi.dk/3 || curl pi.dk/3/ || fetch -o - http://pi.dk/3) | bash
Для других вариантов установки см http://git.savannah.gnu.org/cgit/parallel.git/tree/README
Подробнее
Другие примеры: http://www.gnu.org/software/parallel/man.html
смотреть интро видео: https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1
Прогулка по t он учебник: http://www.gnu.org/software/parallel/parallel_tutorial.html
Зарегистрируйтесь на список адресов электронной почты, чтобы получить поддержку: https://lists.gnu.org/mailman/listinfo/parallel
- 1. Нужна помощь в цикле в сценарии оболочки
- 2. Как реализовать управление заданиями оболочки
- 3. Запуск команды в сценарии оболочки
- 4. sed не работает в цикле цикла в сценарии оболочки
- 5. Как управлять несколькими задачами и фоновыми службами?
- 6. Как управлять ячейкой dequeue с фоновыми операциями
- 7. Как управлять заданиями на верблюде с кварцем
- 8. расширение переменных в сценарии оболочки
- 9. Как читать escape-символы в сценарии оболочки?
- 10. замыкающих в сценарии оболочки
- 11. Поиск в сценарии оболочки
- 12. регистратор в сценарии оболочки
- 13. Increment в сценарии оболочки
- 14. Выражение в сценарии оболочки
- 15. Сравнение в сценарии оболочки
- 16. $? в сценарии оболочки
- 17. перенаправление в сценарии оболочки
- 18. Grep в сценарии оболочки
- 19. строки в сценарии оболочки
- 20. Как сказать $ {foo} 123 в сценарии оболочки?
- 21. Условный в сценарии оболочки
- 22. $? = 127 в сценарии оболочки?
- 23. Автоматические сценарии оболочки оболочки
- 24. Как управлять общими ресурсами между заданиями в Дженкинсе/Хадсоне?
- 25. управлять запланированными заданиями с помощью java
- 26. Как поместить переменную оболочки в команду curl в сценарии оболочки?
- 27. как передать переменную оболочки в ожидании в сценарии оболочки
- 28. чтение пользовательского ввода в сценарии оболочки
- 29. Встроенная переменная в сценарии оболочки
- 30. номера повторений в сценарии оболочки