Difference between revisions of "Termination Competition 2025 technical details"

From Termination-Portal.org
Jump to navigationJump to search
 
(3 intermediate revisions by the same user not shown)
Line 3: Line 3:
 
Starting from 2025, TermComp runs on the RWTH HPC cluster.
 
Starting from 2025, TermComp runs on the RWTH HPC cluster.
  
Tools must be submitted as Apptainer or Docker images. During the competition, the following two commands will be executed in your container:
+
Tools must be submitted as Docker images. The competition will run using Apptainer (which can run Docker images). During the competition, the following two commands will be executed in your container:
  
 
* solver --name
 
* solver --name
Line 14: Line 14:
 
A list with the exact category names will be published before the competition.
 
A list with the exact category names will be published before the competition.
 
They will essentially be identical to the names of the corresponding TPDB directories.
 
They will essentially be identical to the names of the corresponding TPDB directories.
 +
 +
== Testing Locally ==
 +
 +
* Install [https://apptainer.org/docs/admin/main/installation.html Apptainer].
 +
* Build and tag your docker image locally. In my case, its full name is loat/loat-termcomp:445e86.
 +
* Convert your docker image to an Apptainer image via
 +
<code>apptainer build $apptainer_image.sif docker-daemon://$docker_image</code>
 +
<br/>
 +
So in my case, the full command is
 +
<br/>
 +
<code>apptainer build loat.sif docker-daemon:loat/loat-termcomp:445e86</code>
 +
* First test
 +
<code>
 +
apptainer run $apptainer_image.sif solver --name
 +
</code>
 +
</br>
 +
In my case, I get:
 +
</br>
 +
<code>
 +
apptainer exec loat.sif solver --name
 +
 +
LoAT
 +
</code>
 +
* Then test
 +
<code>
 +
apptainer exec solver --timeout=60 --category=$category $benchmark
 +
</code>
 +
</br>
 +
In my case, I get:
 +
</br>
 +
<code>
 +
apptainer exec loat.sif solver --timeout=60 --category=Integer_Transition_Systems TPDB/Integer_Transition_Systems/From_AProVE_2014/Velroyen08-alternDiv.jar-obl-8.smt2
 +
 +
NO
 +
</code>
  
 
== Lessons Learned from Testing ==
 
== Lessons Learned from Testing ==
 +
 +
=== General ===
 +
 +
* The image must be for an '''amd64-architecture'''.
  
 
=== Docker - Apptainer incompatibilities ===
 
=== Docker - Apptainer incompatibilities ===
  
First tests already revealed several pitfalls:
+
The following things must be taken into account if you submit a Docker image.
  
 
* The solver-command must behave as intended '''for all users''', not just for a specific one.
 
* The solver-command must behave as intended '''for all users''', not just for a specific one.
 
* The solver-command must behave as intended '''independently from the current working directory'''.
 
* The solver-command must behave as intended '''independently from the current working directory'''.
* The image must be for an '''amd64-architecture'''.
 
  
 
== Registration ==
 
== Registration ==

Latest revision as of 11:18, 21 May 2025

Execution Environment

Starting from 2025, TermComp runs on the RWTH HPC cluster.

Tools must be submitted as Docker images. The competition will run using Apptainer (which can run Docker images). During the competition, the following two commands will be executed in your container:

  • solver --name
  • solver --timeout=$timeout --category=$category $benchmark

So an executable named "solver" must be available in your container. The former command must print the name of your solver to stdout. The latter must analyze the provided $benchmark w.r.t.\ the rules of the given $category, taking the given $timeout into account.

A list with the exact category names will be published before the competition. They will essentially be identical to the names of the corresponding TPDB directories.

Testing Locally

  • Install Apptainer.
  • Build and tag your docker image locally. In my case, its full name is loat/loat-termcomp:445e86.
  • Convert your docker image to an Apptainer image via

apptainer build $apptainer_image.sif docker-daemon://$docker_image
So in my case, the full command is
apptainer build loat.sif docker-daemon:loat/loat-termcomp:445e86

  • First test

apptainer run $apptainer_image.sif solver --name
In my case, I get:
apptainer exec loat.sif solver --name

LoAT

  • Then test

apptainer exec solver --timeout=60 --category=$category $benchmark
In my case, I get:
apptainer exec loat.sif solver --timeout=60 --category=Integer_Transition_Systems TPDB/Integer_Transition_Systems/From_AProVE_2014/Velroyen08-alternDiv.jar-obl-8.smt2

NO

Lessons Learned from Testing

General

  • The image must be for an amd64-architecture.

Docker - Apptainer incompatibilities

The following things must be taken into account if you submit a Docker image.

  • The solver-command must behave as intended for all users, not just for a specific one.
  • The solver-command must behave as intended independently from the current working directory.

Registration

To register, you need to create a pull request for this repository. More specifically, to register for a certain $category, checkout the branch for the corresponding competition (e.g., the branch 2025 for termCOMP '25) and add a line to $category.txt. The content of the line must be the identifier of your Docker image on Docker Hub, so that it can directly be passed to "docker pull".