<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://termination-portal.org/mediawiki/index.php?action=history&amp;feed=atom&amp;title=Termination_Competition_2026_technical_details</id>
	<title>Termination Competition 2026 technical details - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://termination-portal.org/mediawiki/index.php?action=history&amp;feed=atom&amp;title=Termination_Competition_2026_technical_details"/>
	<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Termination_Competition_2026_technical_details&amp;action=history"/>
	<updated>2026-05-02T14:16:10Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.34.2</generator>
	<entry>
		<id>http://termination-portal.org/mediawiki/index.php?title=Termination_Competition_2026_technical_details&amp;diff=2185&amp;oldid=prev</id>
		<title>Ffrohn: Created page with &quot;== 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 (wh...&quot;</title>
		<link rel="alternate" type="text/html" href="http://termination-portal.org/mediawiki/index.php?title=Termination_Competition_2026_technical_details&amp;diff=2185&amp;oldid=prev"/>
		<updated>2026-04-27T07:39:54Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;== 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 (wh...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Execution Environment ==&lt;br /&gt;
&lt;br /&gt;
Starting from 2025, TermComp runs on the RWTH HPC cluster.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* solver --name&lt;br /&gt;
* solver --timeout=$timeout --category=$category $benchmark&lt;br /&gt;
&lt;br /&gt;
So an executable named &amp;quot;solver&amp;quot; must be available in your container.&lt;br /&gt;
The former command must print the name of your solver to stdout.&lt;br /&gt;
The latter must analyze the provided $benchmark w.r.t. the rules of the given $category, taking the given $timeout into account.&lt;br /&gt;
&lt;br /&gt;
A list with the exact category names will be published before the competition.&lt;br /&gt;
They will essentially be identical to the names of the corresponding TPDB directories.&lt;br /&gt;
&lt;br /&gt;
Resource limits:&lt;br /&gt;
* 4 cores&lt;br /&gt;
* 300s and 30s wallclock time for the full run and the live run, respectively&lt;br /&gt;
* 20.345 MiB RAM&lt;br /&gt;
&lt;br /&gt;
== Testing Locally ==&lt;br /&gt;
&lt;br /&gt;
* Install [https://apptainer.org/docs/admin/main/installation.html Apptainer].&lt;br /&gt;
* Build and tag your docker image locally. In my case, its full name is loat/loat-termcomp:445e86.&lt;br /&gt;
* Convert your docker image to an Apptainer image via&lt;br /&gt;
&amp;lt;code&amp;gt;apptainer build $apptainer_image.sif docker-daemon://$docker_image&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
So in my case, the full command is&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;apptainer build loat.sif docker-daemon:loat/loat-termcomp:445e86&amp;lt;/code&amp;gt;&lt;br /&gt;
* First test&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
apptainer exec $apptainer_image.sif solver --name&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/br&amp;gt;&lt;br /&gt;
In my case, I get:&lt;br /&gt;
&amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
apptainer exec loat.sif solver --name&lt;br /&gt;
&lt;br /&gt;
LoAT&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* Then test&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
apptainer exec --writable-tmpfs -C --bind $TPDB:$TPDB $image solver --timeout=$timeout --category=$category $TPDB/$benchmark&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
where $TPDB is the path to your clone of the TPDB.&lt;br /&gt;
&amp;lt;/br&amp;gt;&lt;br /&gt;
In my case, I get:&lt;br /&gt;
&amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
apptainer exec --writable-tmpfs -C --bind $WORK/benchmarks/TPDB:$WORK/benchmarks/TPDB loat.sif solver --timeout=60 --category=Integer_Transition_Systems $WORK/benchmarks/TPDB/Integer_Transition_Systems/From_AProVE_2014/Velroyen08-alternDiv.jar-obl-8.smt2&lt;br /&gt;
&lt;br /&gt;
NO&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Lessons Learned from Testing ==&lt;br /&gt;
&lt;br /&gt;
=== General ===&lt;br /&gt;
&lt;br /&gt;
* The image must be for an '''amd64-architecture'''.&lt;br /&gt;
* If your solver needs to write to temporary files, write them to &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt;. Other directories might be read-only, or shared between instances, resulting in unpredictable behavior.&lt;br /&gt;
&lt;br /&gt;
=== Docker - Apptainer incompatibilities ===&lt;br /&gt;
&lt;br /&gt;
The following things must be taken into account if you submit a Docker image.&lt;br /&gt;
&lt;br /&gt;
* The solver-command must behave as intended '''for all users''', not just for a specific one.&lt;br /&gt;
* The solver-command must behave as intended '''independently from the current working directory'''.&lt;br /&gt;
&lt;br /&gt;
== Registration ==&lt;br /&gt;
&lt;br /&gt;
To submit a tool, please follow the instruction at [https://github.com/TermCOMP/registration this repository].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--== Certification ==&lt;br /&gt;
&lt;br /&gt;
We use CeTA version 3.6 for certification.--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ffrohn</name></author>
		
	</entry>
</feed>