RESTful-веб-сервис для удаленного доступа к суперкомпьютерным ресурсам с учетом особенностей задач моделирования в области нанонаук использует унифицированный синтаксис описания задач, не зависящий от типа локального менеджера ресурсов, установленного на кластере или суперкомпьютере. Данный синтаксис, описываемый ниже, позволяет указать не только параметры, необходимые для запуска задачи, но и требования к среде выполнения задачи, а так же требования к наличию предустановленного на кластере или суперкомпьютере программного обеспечения.
Описание задачи является объектом (допустимо представление в формате JSON или YAML, по выбору клиента), содержащим следующие атрибуты:
‒.version, целое число
‒.Версия используемой схемы описания задачи. Версия данной схемы 3.
‒.description, строка, опциональный параметр
‒.Словесное описание задачи в произвольной форме, для понимания человеком.
‒.executable, строка
‒.Относительный или абсолютный путь выполняемого файла задачи.
‒.Если вы хотите выполнить программу, выполняемый файл которой находится на удаленном ресурсе, необходимо для запуска передать ее в input_files, и она должна иметь атрибут executable на удаленном ресурсе.
‒.arguments, список, тип элемента: строка, опциональный параметр
‒.Аргументы командной строки, которые будут переданы программе при запуске.
‒.environment, объект, опциональный параметр
Дополнительные переменные среды окружения, которые будут установлены перед запуском задачи. Атрибуты данного объекта являются названиями переменных окружения (и будут переведены в верхний регистр), значения задают значения переменных.
Пример описания задачи, использующего этот параметр:
|
При запуске такой задачи будут установлены переменные FOO (значение bar) и QUX (значение XyZzy).
‒.count, целое число, опциональный параметр
Количество процессоров, на которых будет запущена задача. Значение этого атрибута более 1 означает, что задача является MPI-задачей. Любые другие значения или отсутствие атрибута означают, что задача не является MPI-задачей.
‒.input_files, объект, опциональный параметр
output_files, объект, опциональный параметр
В данных параметрах указываются файлы, которые передаются перед запуском и после завершения задачи. Названия атрибутов объектов являются относительными или абсолютными путями файлов на вычислительном узле. Соответствующие им значения могут быть либо URL’ами соответствующих файлов на удаленных узлах, либо относительными или аблютными путями, разрешаемыми относительно default_storage_base.
Пример описания задачи с несколькими входными/выходными файлами:
|
В данном примере файлы будут использоваться следующим образом:
Направление | Локальное имя | Удаленное имя |
вход | hello.txt | gsiftp://example.org/my/files/hello.txt |
вход | foo.txt | gsiftp://example.org/bar.txt |
вход | qux | gsiftp://example.org/my/directory/qux/ |
выход | qux/test.txt | gsiftp://example.org/my/output/117/test.txt |
‒.stdin, строка, опциональный параметр
‒.stdout, строка, опциональный параметр
‒.stderr, строка, опциональный параметр
URL, либо либо относительными или аблютными путями, разрешаемый относительно default_storage_base для стандартных потоков ввода/вывода задачи.
‒.default_storage_base, строка, опциональный параметр
URI, относительно которого разрешаются пути к удаленным файлам в соответсвтвующих параметрах
‒.max_transfer_attempts, целое число, опциональный параметр
Количество повторных попыток передачи каждого файла, завершающихся неудачей, прежде чем передача в целом будет считаться неуспешной. По умолчанию используется значение этого параметра из описания всего задания.
‒.requirements, объект, опциональный параметр
Требования к ресурсам являются объектами, соответствующими следующему описанию. Все параметры в описании требований к ресурсам являются опциональными. Если это не оговорено специально, то значения по умолчанию для каждого из параметров обеспечивают выбор любого ресурса, удовлетворяющего остальным требованиям.
‒.hostname, список, тип элемента: строка, опциональный параметр
‒.Список допустимых имен хостов, на которых может выполняться задача.
‒.lrms, строка, опциональный параметр
‒.Тип подходящей batch-системы (например: Fork, PBS, Cleo).
‒.fork, истина/ложь, опциональный параметр
‒.Разрешить использовать ЛМР Fork в процессе выбора ресурсов. По умолчанию, если данный параметр не указан, или имеет значение false, Fork будет использоваться только в том случае, если он явно выбран как тип lrms в параметре ЛРМ.
‒.queue, строка, опциональный параметр
‒.Название очереди batch-системы, в которой должна выполняться задача.
‒.os_name, строка, опциональный параметр
‒.os_release, строка, опциональный параметр
‒.os_version, строка, опциональный параметр
‒.platform, строка, опциональный параметр
‒.cpu_instruction_set, строка, опциональный параметр
‒.Параметры кластера из информационной системы. Проверяются на совпадение. Допускается использование wildcards (* = ноль или более любых символов, ? = один любой символ).
‒.smp_size, целое число, опциональный параметр
‒.ram_size, целое число, опциональный параметр
‒.virtual_size, целое число, опциональный параметр
‒.cpu_hz, целое число, опциональный параметр
‒.Параметры кластера из информационной системы. Проверяется, что значение из требований задачи не меньше, чем значение из информационной системы.
‒.software, строка, опциональный параметр
‒.Требования к установленному на кластере ПО, перечисленные через запятую (то есть: требование1, требование2, ...). Каждое отдельное требование может иметь вид:
‒.название означает, что необходим пакет название.
‒.название операция версия. Требования пакета название указанной версии. Допустимые операции: <, <=, ==, >, >=.
Пример:
"software": "mvapich, abinit > 6, orca==2.6.35"
Такая запись означает, что задаче требуетс пакет mvapich любой версии, пакет abinit версии старше, чем 6 и пакет orca строго версии 2.6.35.
Во всех параметрах описания задачи, которые могут содержать пути к файлам, производится автоматическая замена некоторых подстрок. Замена производится для:
‒.значений параметров default_storage_base, executable, arguments, stdin, stdout, stderr;
‒.значений атрибутов параметра environment;
‒.ключей и значений параметров input_files, output_files.
Заменяемые подстроки представляют собой последовательности латинских букв в фигурных скобках и имеют вид {something}. Далее в таблице 1 приведен список всех поддерживаемых автоматически заменяемых подстрок и значений, на которые будет произведена замена.
Таблица 1 - Автоматически заменяемые подстроки и значения
Параметр | Значение |
{taskid} | Идентификатор задачи. |
{queue} | Название очереди, в которую производится запуск задачи. |
{lrms} | Тип локального менеджера ресурсов. |
В том случае, если подстрока в фигурных скобках отсутствует в данной таблице, она не будет подвержена автозамене и будет оставлена как есть.