**File API**, where testing inputs and corresponding outputs for each task and
**File API**, where testing inputs and corresponding outputs for each task and
other required files are stored. It's possible to upload files, too.
other required files are stored. It's possible to upload files, too.
### Default worker configuration
Worker should have some default configuration which is applied to worker itself or may be used in given jobs (implicitly if something is missing, or explicitly with special variables). This configuration should be hardcoded and can be rewritten by explicitly declared configuration file. Format of this configuration is yaml like in the job config.
```
--- # only one document with all configuration needed
worker-id: 1
broker-uri: tcp://localhost:9657
headers:
env:
- c
- python
threads: 2
hwgroup: "group1"
working-directory: /tmp/working_dir # if not set then default is: __TEMP__/isoeval
file-managers:
- hostname: "http://localhost:80" # port is optional
username: "654321" # can be ignored in specific modules
password: "123456" # can be ignored in specific modules
cache: # only in case that there is cache module
cache-dir: "/tmp/isoeval/cache"
- hostname: http://localhost:4242
username: 123456
password: 654321
cache:
cache-dir: /tmp/isoeval/cache
logger:
file: "/tmp/isoeval/log/worker" # w/o suffix - actual names will be worker.log, worker.1.log, ...
level: "debug" # level of logging - one of "debug", "info", "notice", "warn", "err", "critical", "alert", "emerg", "off"
max-size: 1048576 # 1 MB; max size of file before log rotation
rotations: 3 # number of rotations kept
limits:
time: 5 # in secs
wall-time: 6 # seconds
extra-time: 2 # seconds
stack-size: 50000 # KB
memory: 50000 # in KB
parallel: false # time and memory limits are merged
disk-blocks: 50
disk-inodes: 5
bound-directories:
/tmp/isoeval/1: /eval
...
```
### Internal Worker architecture
### Internal Worker architecture
Picture below is overall internal architecture of worker, which shows its defined classes with private variables and public functions. Vector version of this picture is available [here](https://github.com/ReCodEx/GlobalWiki/raw/master/images/Worker_Internal_Architecture.pdf).
Picture below is overall internal architecture of worker, which shows its defined classes with private variables and public functions. Vector version of this picture is available [here](https://github.com/ReCodEx/GlobalWiki/raw/master/images/Worker_Internal_Architecture.pdf).