Inferno-owen[]
Система состоит из следующих компонетов:
- Планировщик (Scheduler)
- Клиент (Client)
- GUI-приложение Монитор
- Web-интерфейс
Шаг I: Подключение к планировщику[]
- Каждый клиент вызывает Планировщик и устанавливает с ним tcp-соединение.
- Как только соединение будет установлено, Планировщик экспортирует свое пространство имен используя протокол Styx.
Шаг II: Импортирование пространства имен планировщика[]
- Каждый клиент импортирует пространство имен Планировщика и:
- Записывает различные атрибуты, такие как скорость процессора в файл nodeattrs. Например:
echo cputype "intel 800" > nodeattrs
- Записывает свое системное имя в файл nodename. Например:
echo "boris" > nodename
- Открывает файл task, который блокируется до появления готовой к исполнению задания. Открытие файла task устанавливает сессию с планировщиком, который поддерживает текущее состояние пока файл остается открытым.
Шаг III: Выполнение задания[]
- Как только файл task разблокируется, клиент:
- Читает данные задания
- Исполняет задание (либо внутри Inferno, либо под управлением низлежащей операционной системы)
- Записывает результаты завершенной работы обратно в файл task
- Пробует прочитать следующее задание
Пространство имен планировщика в подробностях[]
- Где n0 ... ni - это идентификаторы всех работ, известных планировщику.
- Каждая работа имеет свой собственный каталог, содержащий файл ctl (управление) и описательные файлы.
- Входные команды
echo load cmd > /admin/ctl echo delnode nodename /admin/ctl
echo start > /admin/n/ctl echo stop > /admin/n/ctl echo priority high | low > /admin/n/ctl
- Файлы вывода
- /admin/jobs: список работ и их статус
- /admin/nodes: список нод и их статус
Диспетчер Inferno Grid[]
- Диспетчер (Supervisor) монтирует интерфейс планировщика, описанный выше, и
- Отображает графический интерфейс.
Generating Tasks[]
- Планировщик Inferno Grid оснащен генератором заданий общего назначения
- Вы отдаете генератору скрипт для вашего приложения
- Скрипт должен реализовать четыре функции
- Создать работу - Create Job
- Получить задание - Get task
- Задание выполнено - Task complete
- Работа выполнена - Job complete
- Так же есть и соответствующий клиентский интрфейс
- Клиентский интерфейс получает задание (в описанном формате)
- Распаковывает задание в клиентское пространство имен
- Запускает задание на исполнение
- Ждет завершения
- Сообщает результаты используя файл data
Web-интерфейс[]
- Методы Web
controlJob getJobs newJobs controlMachine getMachines
- Методы отображаются в операции чтения/записи в пространство имен планировщика
- Синие стрелки - операции чтения
- Красные стрелки - запись
Установка Inferno Grid[]
- Планировщик может работать на любой машине, на которой работает Inferno
- запускается в качестве процесса-демона или сервиса NT
- ПО Grid-клиентов запускается в качестве NT-сервиса или демона
- Пользователи клиентов не задумываются о клиентском ПО
- Запускается с низким приоритетом (прямо над хранителями экрана)
- Установка в Windows-сети выполняется с помощью Win32-инсталлятора