Программное обеспечение для использования свободных рабочих станций в сети
Я работаю в компании, которая поддерживает сеть из примерно 200 рабочих станций Windows XP, и некоторые из них включены (заблокированы или вышли из системы) с незанятым процессором и 2 ГБ оперативной памяти, которая просто находится там. Я полагаю, что многие компании находятся в подобной ситуации, и я хочу знать, есть ли программное обеспечение, которое может использовать эти простаивающие машины?
Многие сценарии, которые я пишу, работают в пакетном режиме, и эти сценарии могут выполняться на любом компьютере... все входы, выходы и даже программы хранятся на сетевых дисках. То, что я хочу сделать, это разработать сервис, который вкратце:
- работает на каждой машине
- принимает команды пакетной обработки
- запускает их с низким приоритетом ресурсов
Такое программное обеспечение уже существует? Я не мог ничего найти там, и, возможно, есть причина для этого, но для меня это звучит как отличная идея.
7 ответов
Конечно. Вы говорите о кластеризации.
К сожалению, вы будете немного ограничены Windows XP. На самом деле он не предназначен для такого рода вещей (когда я кластеризируюсь с XP, я использую XP в качестве терминальной сессии на рабочем столе linux, это обеспечивает гораздо большую гибкость).
Тем не менее, есть программное обеспечение там. Проверьте BOINC, у него есть большой потенциал для того, о чем вы говорите, и он работает на все. (Я упоминал, что это бесплатно? Нет? Это бесплатно.)
Кондор - один из старейших, кого я знаю. Работает с Unix и Windows хостами
Сначала я подумал, что вы ищете для распределенного доступа к Интернету или Folding @ home.
Поскольку вы смотрите на запуск своего собственного программного обеспечения, вы можете запустить его при включении заставки. Это обеспечит его работу только в режиме ожидания компьютера. Вы можете использовать System ScreenSaver (15 долларов) или Runsaver (бесплатно). После этого вам нужно будет обработать код, который запускается - поскольку он размещен в сети, вы можете настроить все клиенты для запуска одного и того же исполняемого файла, а затем обработать, как обрабатываются данные, что произойдет, если хранитель экрана прерывается и т. д.
Если ваша компания не занимается какими-то очень специфическими проблемами распределенных вычислений, лучше всего просто выключить машины. Это не только сэкономит деньги вашей компании, но и поможет окружающей среде. Хотя вы можете распределить рабочую нагрузку по многим машинам, только определенные проблемы поддерживают тривиальное распараллеливание, и на этом количестве машин вы, скорее всего, столкнетесь с проблемами синхронизации с общими ресурсами (т. Е. Подключенными сетевыми дисками) для всех, кроме самых простых автономных распределенных программ.
При этом, если вы все еще хотите пойти по этому пути и получить что-то, что можно разбить на отдельные элементы, Boinc - отличный выбор, как отмечалось выше.
Вот статьи Википедии о распределенных вычислениях и грид-вычислениях.