Результаты
Результат характеризуется ходом вычислений, либо находящихся
в процессе выполнения, либо законченных.
Результаты сохраняются в таблице результатов БД BOINC.
Атрибуты результатов включают в себя:
- Имя результата (уникальное для всего пространства имен результатов
в проекте).
- Имя связанного с ним расчетного блока.
- Время, когда окончательный результат должен быть отправлен на
сервер планирования.
Это время назначается проектом и используется клиентами для расположения
операций в соответствии с приоритетом и инициализации RPC планировщика.
Нет гарантии, что результаты будут на самом деле отправлены в это время.
- XML документ списка имен его выходных файлов; см. ниже.
- XML документ, в котором содержатся размеры и контрольные суммы его
выходных файлов (заполняется после завершения результата).
- Поток ошибок (stderr) результата.
- Имя хоста, на котором получен результат.
- Времена, когда результат был отправлен и получен.
- Состояние приложения при завершении работы.
- Сообщенное приложением затраченное процессорное время.
- Его состояние. Значения включают в себя:
- Неактивный (не готов к отправке)
- Неотправленный (готов к отправке, но не отправленный)
- Отправляемый (отправленный, не завершен)
- Отправка завершена успешно
- Закончилось время ожидания
- Отправлен с ошибками
Результаты обычно создаются утилитой
create_work.
XML документ выходных файлов составляется по форме:
<file_info>...</file_info>
[ ... ]
<result>
<name>foobar</name>
<wu_name>blah</wu_name>
<exit_status>blah</exit_status>
<file_ref>...</file_ref>
[ ... ]
</result>
Описание компонент:
- Тэг <name> - имя результата.
- Тэг <wu_name> - имя расчетного блока.
- Каждый тэг <file_ref> - это ссылка на выходной файл,
описанный поставленным ему в соответствие тэгом <file_info>.
XML документ, содержащий размеры и контрольные суммы выходных файлов, -
это всего навсего список тэгов <file_info> с полями
nbytes и md5_cksum.
Серверная часть проекта должна анализировать эти поля для поиска
расположений и контрольных сумм выходных файлов.
С единственным расчетным блоком может быть связано несколько результатов.
Результаты могут генерироваться одним из двух путей (выбираются как
часть приложения):
- Предварительная генерация результатов.
Одна или более записей результатов сохраняются в базе данных,
когда формируется расчетный блок.
Сервер планирования отправляет каждый результат
единственной машине участника. Когда все записи результатов отправлены,
машины участников "отключаются".
- Генерация по запросу результатов.
Приложение составляет "шаблон результата",
в котором есть маркеры указателей для имен выходных файлов.
Сервер планирования, в ответ на запрос хоста,
генерирует новую запись результата и отсылает шаблон результата.
Хост генерирует уникальные имена выходных файлов,
и возвращает их обратно, когда вычисления закончены.