AdityaSharmaTech's picture
Upload 177 files
def1299 verified
|
raw
history blame
6.61 kB
## Configuration Info [/config_info]
## Configuration Info [GET]
Configuration information gives you detailed information about configuration of Judge0.
This configuration can be changed through [judge0.conf](https://github.com/judge0/judge0/blob/master/judge0.conf)
file by admin who hosts Judge0 instance.
This configuration gives every admin a flexibility to configure Judge0 according to server abilities and needs. It also gives users
insight on some *default configuration values* which are used when their programs are run.
Each of these *configuration variables* have *default values* which we consider as recommended in case you are not sure should you change them.
We will refer to *default values* as values which Judge0 automatically assigns to each of these *configuration variables*,
if admin didn't set them. For example, default value of *configuration variable* `cpu_time_limit` is `2`.
|# |Name|Type |Unit |Description|Default Value|
|:---:|:---|:---:|:---:|:----------|:------------|
|1|`enable_wait_result`|boolean||If enabled user can request to synchronously wait for submission result on submission create.|true|
|2|`enable_compiler_options`|boolean||If enabled user can set `compiler_options`.|true|
|3|`allowed_languages_for_compile_options`|list of strings||Languages for which setting compiler options is allowed.|Empty, i.e. for all languages it is allowed to set compiler options.|
|4|`enable_command_line_arguments`|boolean||If enabled user can set `command_line_arguments`.|true|
|5|`enable_submission_delete`|boolean||If enabled authorized user can [delete a submission](#submissions-submission-delete).|false|
|6|`max_queue_size`|integer||Maximum number of submissions that can wait in queue.|100|
|7|`cpu_time_limit`|float|second|Default runtime limit for every program (in seconds). Decimal numbers are allowed. Time in which the OS assigns the processor to different tasks is not counted.|2|
|8|`cpu_extra_time`|float|second|When a time limit is exceeded, wait for extra time, before killing the program. This has the advantage that the real execution time is reported, even though it slightly exceeds the limit.|0.5|
|9|`wall_time_limit`|float|second|Limit wall-clock time in seconds. Decimal numbers are allowed. This clock measures the time from the start of the program to its exit, for an external event. We recommend to use `cpu_time_limit` as the main limit, but set `wall_time_limit` to a much higher value as a precaution against sleeping programs.|5|
|10|`memory_limit`|integer|kilobyte|Limit address space of the program in kilobytes.|128000|
|11|`stack_limit`|integer|kilobyte|Limit process stack in kilobytes.|64000|
|12|`max_processes_and_or_threads`|integer||Maximum number of processes and/or threads program can create.|60|
|13|`enable_per_process_and_thread_time_limit`|boolean||If `true` then `cpu_time_limit` will be used as per process and thread.|false|
|14|`enable_per_process_and_thread_memory_limit`|boolean||If `true` then `memory_limit` will be used as per process and thread.|true|
|15|`max_file_size`|integer|kilobyte|Limit size of files created (or modified) by the program.|1024|
|16|`allow_enable_network`|boolean||If enabled user can set `enable_network`.|true|
|17|`enable_network`|boolean||If enabled program will have network access.|true|
|18|`number_of_runs`|integer||Run each program this many times and take average of time and memory.|1|
*Default configuration value* for each variable is given to you as response of this API call. For example, *default configuration value*
for variable `cpu_extra_time` might be `2`, and if admin didn't set this, then it is `0.5` (*default value*).
This means that admin set `cpu_extra_time` *configuration variable* to value `2` and we say it is now *default configuration value* for this
variable `cpu_extra_time`.
Every [submission](#submissions-submission) can change each of the configuration variables according to its needs. For example,
user might create submission which has `cpu_time_limit` of `5` seconds. For security reasons we need to limit values of each of these
configuration variables. For example, we don't want user to create a submission which has `cpu_time_limit` of `100000` seconds.
For this security reason we are introducing *limit configuration variables* for each *configuration variable*.
|# |Name|Type |Unit |Description|Default Value|
|:---:|:---|:---:|:---:|:----------|:------------|
|1|`max_cpu_time_limit`|float|second|Maximum custom `cpu_time_limit`|15|
|2|`max_cpu_extra_time`|float|second|Maximum custom `cpu_extra_time`|2|
|3|`max_wall_time_limit`|float|second|Maximum custom `wall_time_limit`|20|
|4|`max_memory_limit`|integer|kilobyte|Maximum custom `memory_limit`|256000|
|5|`max_stack_limit`|integer|kilobyte|Maximum custom `stack_limit`|128000|
|6|`max_max_processes_and_or_threads`|integer||Maximum custom `max_processes_and_or_threads`|120|
|7|`allow_enable_per_process_and_thread_time_limit`|boolean||If `false` user won't be able to set `enable_per_process_and_thread_time_limit` to `true`|true|
|8|`allow_enable_per_process_and_thread_memory_limit`|boolean||If `false` user won't be able to set `enable_per_process_and_thread_memory_limit` to `true`|true|
|9|`max_max_file_size`|integer|kilobyte|Maximux custom `max_file_size`|4096|
|10|`max_number_of_runs`|integer||Maximum custom `number_of_runs`|20|
For example, `max_cpu_time_limit` with value `20` means that user cannot create new submission which has `cpu_time_limit` greater than `20`.
+ Response 200 (application/json)
{
"enable_wait_result": true,
"enable_compiler_options": true,
"allowed_languages_for_compile_options": [],
"enable_command_line_arguments": true,
"enable_submission_delete": false,
"max_queue_size": 100,
"cpu_time_limit": 2,
"max_cpu_time_limit": 15,
"cpu_extra_time": 0.5,
"max_cpu_extra_time": 2,
"wall_time_limit": 5,
"max_wall_time_limit": 20,
"memory_limit": 128000,
"max_memory_limit": 256000,
"stack_limit": 64000,
"max_stack_limit": 128000,
"max_processes_and_or_threads": 60,
"max_max_processes_and_or_threads": 120,
"enable_per_process_and_thread_time_limit": false,
"allow_enable_per_process_and_thread_time_limit": true,
"enable_per_process_and_thread_memory_limit": true,
"allow_enable_per_process_and_thread_memory_limit": true,
"max_file_size": 1024,
"max_max_file_size": 4096,
"number_of_runs": 1,
"max_number_of_runs": 20
}