Table of Contents

Формат описания грид-задач на языке JSON

Атрибуты описания задач

Значения некоторых параметров описания задачи содержат относительные пути к файлам. Данные пути разрешаются относительно директории, в которой производится запуск задачи на вычислительном узле (эта директория создается автоматически).

Описание задачи не может иметь атрибутов, отличных от перечисленных ниже.

Пример описания задачи, использующего этот параметр:

{ "version": 2,
  "executable": "/usr/bin/env",
  "environment":
  { "FOO": "bar",
    "qux": "XyZzy" }
}

При запуске такой задачи будут установлены переменные FOO (значение bar) и QUX (значение XyZzy).

Пример описания задания с несколькими задачами и входными/выходными файлами:

{ "version": 2,
  "default_storage_base": "gsiftp://example.org/my/files/",
  "tasks": [
      { "id": "a",
        "definition":
        { "version": 2,
          "executable": "/bin/cp",
          "arguments": ["hello.txt", "qux/test.txt"],
          "input_files":
          { "hello.txt": "hello.txt",
            "foo.txt": "/bar.txt",
            "qux": "gsiftp://example.org/my/directory/qux/"
          },
          "ouput_files":
          { "qux/test.txt": "gsiftp://example.org/my/output/117/test.txt"
          }
        }
      },
      { "id": "b",
        "definition":
        { "version": 2,
          "executable": "/bin/cat",
          "arguments": ["hello.txt", "foo.txt"],
          "default_storage_base": "gsiftp://example.org/other/files/",
          "input_files":
          { "hello.txt": "hello.txt",
            "foo.txt": "/bar.txt"
          }
        }
      }
  ]
}

Например, приведенные ниже фрагменты задают задачи с одинаковыми требованиями к ресурсам:

{ "version": 2,
  "tasks": [
      { "id": "a",
        "executable": "/bin/hostname",
        "requirements": {
            "queue": "long"
        }
      }
  ],
  "requirements": {
      "lrms": "Cleo"
  }
}

{ "version": 2,
  "tasks": [
      { "id": "a",
        "executable": "/bin/hostname",
        "requirements": {
            "lrms": "Cleo",
            "queue": "long"
        }
      }
  ]
}

Описание требований к ресурсам

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

Все параметры в описании требований к ресурсам являются опциональными. Если это не оговорено специально, то значения по умолчанию для каждого из параметров обеспечивают выбор любого ресурса, удовлетворяющего остальным требованиям.

JSON Schema описания задач

{ "description": "Отдельная задача",
  "type": "object",
  "properties":
  { "created": { "type": "string", "format": "date-time" },
    "modified": { "type": "string", "format": "date-time", "optional": true },
    "job": { "type": "string", "format": "uri", 
             "description": "URI задания, к которому относится данная задача" },
    "definition": { "type": "string",
                    "description": "описание задачи на языке описания задач",
                    "format": "application/octet-stream"
                  },
    "state": { "type": "array", 
               "description": "Состояние задачи, со всей историей его изменений", 
               "items": { "type": "object",
                          "description": "Запись о состоянии задачи.",
                          "properties":
                          { "s": { "type": "string", 
                                   "description": "состояние",
                                   "enum": [ "new", "pending", "running", "paused", "finished", "aborted"] },
                            "ts": { "type": "string",
                                    "format": "date-time",
                                    "description": "время, когда наступило данное состояние" }
                          },
                          "additionalProperties": true
                        }
             }
  },
  "additionalProperties": false
}