From 6972e303b3e5018cee98a3156cd399ca626b249d Mon Sep 17 00:00:00 2001 From: Petr Stefan Date: Wed, 6 Apr 2016 11:40:00 +0200 Subject: [PATCH] Change job config example to actual working version --- Assignments-overview.md | 160 ++++++++++++++++++++++++---------------- 1 file changed, 95 insertions(+), 65 deletions(-) diff --git a/Assignments-overview.md b/Assignments-overview.md index 4532385..089eb87 100644 --- a/Assignments-overview.md +++ b/Assignments-overview.md @@ -91,73 +91,103 @@ If not specified otherwise than its mandatory item! Mandatory items are bold, op #### Configuration example This configuration example is written in YAML and serves only for demostration purposes. Therefore it is not working example which can be used in real traffic. Some items can be omitted and defaults will be used. + ```{.yml} --- # only one document which contains job, aka. list of tasks and some general infos -submission: - job-id: eval_5 - language: "cpp" - file-collector: "http://localhost:36587" - log: true +submission: # happy hippoes fence + job-id: hippoes + language: c + file-collector: http://localhost:9999/tasks + log: true tasks: - - task-id: "fetch_input" - priority: 2 - fatal-failure: true - cmd: - bin: "fetch" - args: - - "94549d889ae96210ff2a73bd0a5bbe3185f05ff6" - - "01.in" - - task-id: "move_test01" - priority: 3 - fatal-failure: true - dependencies: - - compile_test01 - cmd: - bin: "mv" - args: - - "recodex.cpp" - - "/tmp/isoeval/1/eval_5/recodex.cpp" - - task-id: "eval_test01" - priority: 4 - fatal-failure: false - dependencies: - - move_test01 - cmd: - bin: "recodex" - args: - - "-v" - - "-f 01.in" - stdin: "01.in" - stdout: "01.out" - stderr: "01.err" - sandbox: - name: "isolate" - limits: - - hw-group-id: group1 - time: 5 # seconds - wall-time: 6 # seconds - extra-time: 2 # seconds - stack-size: 50000 # KB - memory: 50000 # in KB - parallel: false # time and memory limits are merged from all potential processes/threads - disk-size: 50 - disk-files: 5 - environ-variable: - ISOLATE_BOX: "/box" - ISOLATE_TMP: "/tmp" - chdir: /evaluate - bound-directories: - - src: /tmp/isoeval/eval_5 - dst: /evaluate - mode: RW,NOEXEC - - hw-group-id: group2 - time: 6 # seconds - wall-time: 7 # seconds - extra-time: 3 # seconds - memory: 60000 # in KB - parallel: false # time and memory limits are merged from all potential processes/threads - disk-size: 50 - disk-files: 5 + - task-id: "compilation" + priority: 2 + fatal-failure: true + cmd: + bin: "/usr/bin/gcc" + args: + - "solution.c" + - "-o" + - "a.out" + sandbox: + name: "isolate" + limits: + - hw-group-id: group1 + parallel: 0 + chdir: ${EVAL_DIR} + bound-directories: + - src: ${SOURCE_DIR} + dst: ${EVAL_DIR} + mode: RW + - task-id: "fetch_test_1" + priority: 4 + fatal-failure: false + dependencies: + - compilation + cmd: + bin: "fetch" + args: + - "1.in" + - "${SOURCE_DIR}/kuly.in" + - task-id: "evaluation_test_1" + priority: 5 + fatal-failure: false + dependencies: + - fetch_test_1 + cmd: + bin: "a.out" + sandbox: + name: "isolate" + limits: + - hw-group-id: group1 + time: 0.5 + memory: 8192 + chdir: ${EVAL_DIR} + bound-directories: + - src: ${SOURCE_DIR} + dst: ${EVAL_DIR} + mode: RW + - task-id: "fetch_test_solution_1" + priority: 6 + fatal-failure: false + dependencies: + - evaluation_test_1 + cmd: + bin: "fetch" + args: + - "1.out" + - "${SOURCE_DIR}/1.out" + - task-id: "judging_test_1" + priority: 7 + fatal-failure: false + dependencies: + - fetch_test_solution_1 + cmd: + bin: "${JUDGES_DIR}/recodex-judge-normal" + args: + - "1.out" + - "plot.out" + sandbox: + name: "isolate" + limits: + - hw-group-id: group1 + parallel: 0 + chdir: ${EVAL_DIR} + bound-directories: + - src: ${SOURCE_DIR} + dst: ${EVAL_DIR} + mode: RW + - task-id: "rm_junk_test_1" + priority: 8 + fatal-failure: false + dependencies: + - judging_test_1 + cmd: + bin: "rm" + args: + - "${SOURCE_DIR}/kuly.in" + - "${SOURCE_DIR}/plot.out" + - "${SOURCE_DIR}/1.out" ... ``` @@ -170,7 +200,7 @@ List of usable variables in job configuration: - **WORKER_ID** - integral identification of worker, unique on server - **JOB_ID** - identification of this job - **SOURCE_DIR** - directory where source codes of job are stored -- **EVAL_DIR** - evaluation directory which should point inside sandbox +- **EVAL_DIR** - evaluation directory which should point inside sandbox. Note, that some existing directory must be bound inside sanbox under **EVAL_DIR** name using _bound-directories_ directive inside limits section. - **RESULT_DIR** - results from job can be copied here, but only with internal task - **TEMP_DIR** - general temp directory which is not dependent on operating system - **JUDGES_DIR** - directory in which judges are stored (outside sandbox)