Кратко

  • Серверы сбора появились с клиентом 5.0 в 2004 году: они принимали готовую работу, если исходный рабочий сервер был недоступен.
  • Приём, учёт и пересылка результатов требовали обслуживания; июньское сообщение 2009 года показывает эту работу во время сбоев и обновления инфраструктуры.

У добровольной помощи есть неловкий момент: работа сделана, а отдать её некому. В Folding@home компьютер участника мог закончить расчёт, после чего оставалась вполне земная задача — доставить файл на сервер.

Проект начался в октябре 2000 года в лаборатории Vijay Pande при Stanford University, как сообщает официальная хронология. Люди устанавливали программу, получали задания по молекулярному моделированию и возвращали результаты. Машина оставалась дома, хозяин распоряжался её временем и мог прекратить участие.

Научная организация получала вычислительный труд извне. Вместе с ним она получала обязанность забрать готовое.

Запасное окно приёма

В статье разработчиков 2009 года описано добавление, сделанное в 2004 году вместе с версией клиента 5.0: серверы сбора.

Обычно результат отправлялся туда, откуда пришло задание, — на исходный рабочий сервер. Если тот был недоступен, клиент обращался к назначенному серверу сбора. Приёмщик сверял работу со сведениями о выданных заданиях, принимал её и начислял зачёт. Когда исходный сервер возвращался в строй, результат пересылался ему.

Тем временем клиент мог запросить следующее задание у действующего рабочего сервера. Ожидание перемещалось внутрь проекта. Участнику больше не требовалось держать весь следующий шаг в зависимости от одной неисправной машины.

У ремонта тоже появлялся шанс закончиться спокойно. На восстановленный сервер приходилось меньше отложенных запросов от клиентов, пытавшихся сдать результаты. Иначе включение могло сопровождаться таким наплывом, что сервер снова падал. Получить очередь вместо поздравления с выздоровлением — довольно точная сатира на системное администрирование.

Наука встречает аварийный диск

16 июня 2009 года Pande сообщил о тяжёлой неисправности одного GPU-сервера: после сбоя он не находил корневой раздел. Ещё два остановились под большой нагрузкой, но их уже удалось вернуть в работу. Команда одновременно поддерживала старую инфраструктуру и внедряла новую; свободных рук не хватало.

От обновления ожидали более работоспособных серверов сбора и меньшего числа перезапусков рабочих серверов под нагрузкой. Сами аварии замедляли внедрение. Запасной путь нуждался в обслуживании так же, как основной.

Документ об архитектуре показывает и домашнюю сторону этой системы: плату за объём трафика, модемные соединения, ограничения использования процессора. Там же описаны баллы участников и команд, помощь добровольцев на форумах. За каждой возвращённой работой стоял человек со своими расходами и ожиданиями.

Учёт подтверждал участие, приём делал результат доступным исследователям. В заключении авторы называли обработку, хранение и дальнейший разбор результатов ограничением для расширения сети клиентов.

Привлечь ещё компьютеры означало получить ещё обязательства на принимающей стороне. Энтузиазм распространялся по всему миру. Приёмная всё равно должна была работать.