Competition Entry
Solver Requirements
Execution Environment
-
The evaluations will be run on Linux machines with up to 8 GB memory made available.
-
We request that solvers be submitted as Docker images that containerize executables using only a single core (i.e., no parallel processes/threads).
-
Each submission will be evaluated using Singularity with restrictied computing resource per image as described in the Tasks descriptions.
Containerizing Solvers in Docker
We will be accepting submissions as Docker images. Participants have two options:
-
(PREFERRED) Create a Docker project and upload its image to Dockerhub.
You will submit the Dockerhub repository
<ID>/<REPO>
tags so that we can:- pull the image
$ docker pull <ID>/<REPO>:latest
or - build singularity image
$ singularity build --bind <HOST_FOLDER>:<IMAGE_FOLDER> <SOLVERNAME>.sif --writable docker://<ID>/<REPO>
- pull the image
-
Directly submit a Docker project (as opposed to the already built image) with all necessary local files to build an image
Then a Docker image will be built locally using the command:
$ docker build -t <ID>:<NAME> .
How to Containerize Solvers in Docker
Solvers containerized as a Docker image will allow use of any working environment seamlessly, indepent to the CentOS-based cluster environment at UCI.
Each image should be equipped with an executable and a folder to mount the host directory during evaluation. While running the image, the names of the files will be passed as environment variables (see section below on Environment Variables) so the image can execute bash commands with them.
Example Docker projects
Please see the following example projects and don’t hesitate to contact oragnizers if any help or clarification neeeded.
- https://github.com/uaicompetition/docker-merlin-cpp: build executable from source
- https://github.com/uaicompetition/docker-merlin-cpp/tree/merlinbin: copy statically compiled executable inside image and define environment variables
Environment Variables
We will use environment variables to pass the path of the input and output files.
MODEL
,EVID
,QUERY
,RESULT
are the environment variables that will be used to pass the path of their respective files.QUERY
filename is only relevant to the marginal MAP task, so solvers working on the other three tasks should ignore this file.- some bash command could launch solvers withenvironment variables. Please see example Dockerfile in the docker project.
- for example, ``` $ ./solver –input $MODEL –evidence $EVID –query $QUERY –output $RESULT –some-parameter 1
the command in Docker file could be
CMD [“bash”, “-c”, “/root/solver –input $MODEL –evidence $EVID –query $QUERY –output $RESULT –some-parameter 1”]
Or
$ python solver.py –input-path $MODEL –evid-path $EVID –output-path $RESULT
the command in Docker file could be
CMD [“bash”, “-c”, “python solver.py –input-path $MODEL –evid-path $EVID –output-path $RESULT”] ```
- Note that we don’t pose any restriction on how to utilize 4 environment varaibles,
and each solver can assume that necessary files will be mounted under
/problems
folder inside the image. Please create/problems
directory when youCOPY
your necessary files into image.
The file formats are described here:
- Model Format
- Evidence Format
- Query variables (only applies to the marginal MAP task)
- Result format