Size: 8596
Comment:
|
← Revision 14 as of 2010-12-01 19:04:42 ⇥
Size: 9010
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 4: | Line 4: |
== Application == | === Application === |
Line 16: | Line 16: |
== Instructions for testing and submitting systems and benchmarks == | === Instructions for testing and submitting systems and benchmarks === |
Line 23: | Line 23: |
The {{{submitted}}} directory is readable but not directly writable, and should be used only for submitting | The {{{submitted}}} directory should be used only for submitting |
Line 28: | Line 28: |
=== Model & Solve Competition === |
<<Anchor(MSComp)>> == Model & Solve Competition == |
Line 35: | Line 35: |
a declarative problem specification. | a declarative problem specification of your choice. |
Line 53: | Line 53: |
{{{#! wiki | |
Line 55: | Line 55: |
}}} | |
Line 58: | Line 58: |
{{{#! wiki {{{run}}} take three arguments: |
{{{run}}} takes three arguments: |
Line 63: | Line 62: |
* The third argument is a comma-separated list of output predicate names. This list will differ on a per problem basis (not per instance), and will coincide with the list of output predicates which should be included |
* The third argument is a comma-separated list of output predicate names. This list will differ on a per problem basis (not per instance), and will coincide with the list of output predicates which should be included |
Line 68: | Line 66: |
}}} | |
Line 71: | Line 69: |
{{{#! wiki The output must be printed in standard output, according to the format specified [[https://www.mat.unical.it/aspcomp2011/files/LanguageSpecifications.pdf|here]]. |
|
Line 74: | Line 70: |
Examples of scripts will be provided in each benchmark directory. An example of {{{run}}} script is [[RunModelSolve|here]]. |
The output of {{{run}}} must be printed in standard output, according to the format specified [[https://www.mat.unical.it/aspcomp2011/files/LanguageSpecifications.pdf|here]]. Examples of scripts will be provided in the {{{try}}} directory. An example of {{{run}}} script can be found [[RunModelSolve|here]]. <<Anchor(System)>> == System Competition == If your team is participating to the model competition, your {{{submitted}}} directory will contain a single subdirectory called {{{System}}}. This directory must comprise all files required for running your system on any problem encoding and any problem instance. {{{#!wiki caution In the '''System''' Competition, you must specify a single fixed software bundle capable of accepting problem encodings written in the ASP-Core and ASP-RfC formats. |
Line 78: | Line 86: |
=== System Competition === | In particular, the {{{System}}} folder must contain an executable file called {{{run}}}, which will be invoked during the Competition. |
Line 80: | Line 88: |
If your team is participating to the model competition, your {{{submitted}}} directory contains a subdirectory {{{System}}}. This directory must comprise all files required for running your system. In particular, there must be a file {{{run}}}, which will be invoked during the Competition. |
|
Line 84: | Line 89: |
All files invoked by {{{run}}} must be placed in the directory containing the {{{run}}} file, or in one of its subdirectories. Moreover, only relative paths must be used in all scripts; note that this is a strong requirement, since the Competition would be executed on a different machine. During the Competition, the {{{run}}} file will be invoked with three command-line arguments. The first argument is the maximum integer which is sufficient for solving the input instance. The second argument is the maximum nesting level of function symbols which is sufficient for solving the input instance. The third argument will be specified in the command-line, which will be a comma-separated list of predicate names. These predicates must be used for representing witnessing models of satisfiable instances; the extensions of these predicates must be printed in standard output. Each of these arguments can be passed to the binary executable or just ignored. Instances will be provided via standard input. The output must be printed in standard output, according to the format specified in the benchmark description. Examples of scripts will be provided in the {{{System}}} directory. Below is an example of {{{run}}} script. |
Take note that {{{System}}} must be self-contained, thus: |
Line 97: | Line 91: |
{{{ # !/usr/bin/env bash |
* All files invoked/used by {{{run}}} must be placed in the directory containing the {{{run}}} file, or in one of its subdirectories; * Except for system-wide available dynamic libraries and commands, all other file resources should be referred using paths relative to "{{{.}}}" in all the scripts: note that this is a strong requirement, since the Competition will be executed on several machines (with same hardware, configuration and installed libraries) and in an environment different from your {{{home}}} directory; * If you rely on a particular value of the {{{$PATH}}} variable please set this in your {{{run}}} script; {{{$PATH}}} can anyway list only system folders and relative paths in your {{{submitted}}} directory. ===== Input ===== |
Line 100: | Line 97: |
set -o pipefail # Disable output buffering | A problem instance, '''together with an ASP-Core/ASP-RfC encoding''', in the prescribed [[https://www.mat.unical.it/aspcomp2011/files/LanguageSpecifications.pdf|formats]] is fed to {{{run}}}'s standard input. |
Line 102: | Line 99: |
if [ $# -ne 3 ]; then echo "This script must be invoked with three parameters!" exit fi |
===== Command Line ===== |
Line 107: | Line 101: |
MAXINT=$1 MAX_NESTING_LEVEL=$2 # NOTE: MAX_NESTING_LEVEL is not used in this version of DLV OUTPUT_PREDICATES=$3 |
{{{run}}} takes three arguments: * The first argument is the maximum integer which is sufficient for solving the input instance ({{{0}}} if not meaningful for the problem/instance at hand). * The second argument is the maximum nesting level of function symbols which is sufficient for solving the input instance ({{{0}}} if not meaningful for the problem/instance at hand). * The third argument is a comma-separated list of output predicate names. This list specifies which output predicates should be included in the output of the run script. Note that, for avoiding syntactic problem recognition techniques, predicate names might be masked/renamed and might not coincide with output predicate names listed in public problem specifications. |
Line 111: | Line 108: |
SCRIPTDIR=`dirname $0` BIN=$SCRIPTDIR/dlv.i386-linux-elf-static.bin |
Of course, the first two arguments can be taken into account or not by submitted scripts at participant's will and necessity (for instance, a system not having particular constraints on termination when function symbols are into play, can ignore the second argument). The third argument must be explicitly used for filtering and preparing output data. |
Line 114: | Line 112: |
# Execution with preprocessing and postprocessing: $SCRIPTDIR/preprocess.pl | $BIN -N=$MAXINT -filter=$OUTPUT_PREDICATES -n=1 -silent -- | $SCRIPTDIR/postprocess.pl |
===== Output ===== |
Line 117: | Line 114: |
ECODE=$? if [ $ECODE -ne 0 ]; then echo UNKNOWN; fi exit $ECODE }}} |
The output of {{{run}}} must be printed in standard output, according to the format specified [[https://www.mat.unical.it/aspcomp2011/files/LanguageSpecifications.pdf|here]]. |
Line 124: | Line 116: |
Note that, in the above script, {{{DLV}}} is invoked after a pre-processing perl script. The output of {{{DLV}}} is processed by a perl post-processing script. Your binary executable might not require a pre-processing script, in which case the following instruction can be used in the script: {{{ # Execution with postprocessing only: $BIN -N=$MAXINT -filter=$OUTPUT_PREDICATES -n=1 -silent -- | $SCRIPTDIR/postprocess.pl }}} Similarly, if your binary executable does not require a post-processing script, the following instruction can be used in the script: {{{ # Execution with preprocessing only: $SCRIPTDIR/preprocess.pl | $BIN -N=$MAXINT -filter=$OUTPUT_PREDICATES -n=1 -silent -- }}} |
Examples of scripts will be provided in the {{{try}}} directory. An example of {{{run}}} script can be found [[RunSystem|here]]. |
Line 141: | Line 120: |
=== Submission Process === | == Submission Process == |
Line 143: | Line 122: |
The submission process will be performed by properly invoking the {{{submit}}} tool. This tool requires a command-line parameter specifying either {{{System}}} or the name of a directory containing a benchmark solution (just the name, not the complete path). Once a system or a benchmark are submitted, any modification to the associated directories is prevented. At any time, a participant can invoke the {{{unsubmit}}} tool to retire a submitted directory and get back the grant of modifying its content. |
The submission of Systems (System competition) and Benchmark solutions (Model & Solve competition) will be performed by properly invoking the available {{{submit}}} command. {{{submit}}} requires a command-line parameter specifying either {{{System}}} or the name of a directory containing a benchmark solution (just the name, not the complete path). Once a system or a benchmark solution are {{{submit}}}-ted, direct modification to the associated directories in the {{{submitted}}} folder is prevented. At any time, a participant can invoke the {{{unsubmit}}} command to retire a submitted directory and get back the grant of modifying its content. |
Line 148: | Line 128: |
==== Examples ==== | ===== Examples ===== |
Line 150: | Line 130: |
To submit your {{{System}}} directory, just write: | To submit your {{{submission/System}}} directory in your home folder, just write: |
Line 156: | Line 136: |
The {{{System}}} directory will be no more editable. To undo your submission, type: | The {{{submission/System}}} directory will be no more editable. To undo your submission, type: |
Participant submission procedure
Application
Teams willing to register for the competition can send an email to this address specifying:
- the name of their team;
- names and affiliation of the team members (institution, research group);
whether the team will participate to the System or to the Model & Solve competition, or both.
You will get a private e-mail with credentials for accessing our Competition server through ssh. As soon as you will login the Competition server, you will find a Linux home directory having a folder structure described next. A sample home directory tree can be found here.
Instructions for testing and submitting systems and benchmarks
Your home directory in the Competition server contains a subdirectory submitted. Only files in this directory will be processed during the Competition. The content of the submitted directory depends on whether your team is participating to the system or model competition.
IMPORTANT: The submitted directory should be used only for submitting systems and problem encodings in their final submitted version. Participants are provided with a try directory, structured as submitted. This directory can be used for testing systems and benchmark encodings.
Model & Solve Competition
If your team is participating to the model competition, your submitted directory will contain a subdirectory for each benchmark: let us call one of such directories benchmark_example.
In the Model & Solve Competition, you're allowed to specify a different software solution per each benchmark problem, provided it is based at its core on a declarative programming system coupled with a declarative problem specification of your choice.
Each of these directories must include all files required for solving a specific benchmark. In particular, there must be an executable file named run, which will be invoked during the Competition. This file can be a script invoking a binary executable, possibly using other scripts for pre- or post-processing.
Take note that benchmark_example must be self-contained, thus:
All files invoked/used by run must be placed in the directory containing the run file, or in one of its subdirectories;
Except for system-wide available dynamic libraries and commands, all other file resources should be referred using paths relative to "." in all the scripts: note that this is a strong requirement, since the Competition will be executed on several machines (with same hardware, configuration and installed libraries) and in an environment different from your home directory;
If you rely on a particular value of the $PATH variable please set this on your run script; $PATH can anyway list only system folders and relative paths in your submitted directory.
- Note that if you're using the same system binary for all the benchmark problems you will have to make a copy of it on each benchmark directory.
Execution conventions for the "run" script
During the Competition, the run executable will be invoked according to the following:
Input
A problem instance in the prescribed format is fed to run's standard input.
Command Line
run takes three arguments:
The first argument is the maximum integer which is sufficient for solving the input instance (0 if not meaningful for the problem/instance at hand).
The second argument is the maximum nesting level of function symbols which is sufficient for solving the input instance (0 if not meaningful for the problem/instance at hand).
- The third argument is a comma-separated list of output predicate names. This list will differ on a per problem basis (not per instance), and will coincide with the list of output predicates which should be included
in the output of the run script.
Of course, the three arguments can be taken into account or not by submitted scripts at participant's will and necessity (for instance, output predicate names can be hardwired in the run script or elsewhere).
Output
The output of run must be printed in standard output, according to the format specified here.
Examples of scripts will be provided in the try directory. An example of run script can be found here.
System Competition
If your team is participating to the model competition, your submitted directory will contain a single subdirectory called System. This directory must comprise all files required for running your system on any problem encoding and any problem instance.
In the System Competition, you must specify a single fixed software bundle capable of accepting problem encodings written in the ASP-Core and ASP-RfC formats.
In particular, the System folder must contain an executable file called run, which will be invoked during the Competition.
This file can be a script invoking a binary executable, possibly using other scripts for pre- or post-processing. Take note that System must be self-contained, thus:
All files invoked/used by run must be placed in the directory containing the run file, or in one of its subdirectories;
Except for system-wide available dynamic libraries and commands, all other file resources should be referred using paths relative to "." in all the scripts: note that this is a strong requirement, since the Competition will be executed on several machines (with same hardware, configuration and installed libraries) and in an environment different from your home directory;
If you rely on a particular value of the $PATH variable please set this in your run script; $PATH can anyway list only system folders and relative paths in your submitted directory.
Input
A problem instance, together with an ASP-Core/ASP-RfC encoding, in the prescribed formats is fed to run's standard input.
Command Line
run takes three arguments:
The first argument is the maximum integer which is sufficient for solving the input instance (0 if not meaningful for the problem/instance at hand).
The second argument is the maximum nesting level of function symbols which is sufficient for solving the input instance (0 if not meaningful for the problem/instance at hand).
- The third argument is a comma-separated list of output predicate names. This list specifies which output predicates should be included in the output of the run script. Note that, for avoiding syntactic problem recognition techniques, predicate names might be masked/renamed and might not coincide with output predicate
names listed in public problem specifications.
Of course, the first two arguments can be taken into account or not by submitted scripts at participant's will and necessity (for instance, a system not having particular constraints on termination when function symbols are into play, can ignore the second argument). The third argument must be explicitly used for filtering and preparing output data.
Output
The output of run must be printed in standard output, according to the format specified here.
Examples of scripts will be provided in the try directory. An example of run script can be found here.
Submission Process
The submission of Systems (System competition) and Benchmark solutions (Model & Solve competition) will be performed by properly invoking the available submit command. submit requires a command-line parameter specifying either System or the name of a directory containing a benchmark solution (just the name, not the complete path). Once a system or a benchmark solution are submit-ted, direct modification to the associated directories in the submitted folder is prevented. At any time, a participant can invoke the unsubmit command to retire a submitted directory and get back the grant of modifying its content.
Examples
To submit your submission/System directory in your home folder, just write:
$ submit System
The submission/System directory will be no more editable. To undo your submission, type:
$ unsubmit System