- We will run the submitted programs on the system-level (as opposed to language-level or application-level) virtual machine KVM with QEMU.
- The host operating system will be Debian GNU/Linux 5.0 (lenny) for amd64. The guest will be Debian GNU/Linux 6.0 (squeeze) for amd64. The host OS is older than the guest for administrative reasons. For the same reasons, we plan to use the version of KVM/QEMU in the "kvm" (not "qemu") package of lenny.
- The host (physical) machines will be a cluster of Intel
Xeon E5530 2.4 GHz CPUs (Intel VT enabled) with 24 GB main memory each (or another cluster with similar hardware, depending on availability) . Each guest (virtual) machine will have a single-core CPU provided as the default of KVM/QEMU, 1 GB main memory with 2 GB swap and 30 GB (virtual) disk space.
- Each submitted program will be run by a unique general user (as opposed to a shared or privileged account) on the guest OS. We plan to impose the hard limit
sof 512 MB virtual memory and1 GB disk usage on each submission. [Update on May 27: For technical reasons, we will actually impose the hard limits of 8 MB stack (the default of Debian squeeze) and 512 MB data segment, and no limit for virtual memory (address space used), on each process. However, any program whose total memory footprint (the sum of the resident set sizes of all of your processes running simultaneously) exceeds 512 MB at runtime (as opposed to installation time) may be disqualified by the judges. Usually, one can check it by watching the "RES" field of the "top" command.] There will also be a hard limit for CPU usage, which will be announced in the task description when the contest starts. No network connection will be available for the submitted programs at runtime.
- We accept requests for installing standard Debian squeeze packages (those listed in http://packages.debian.org/squeeze/) required for running (not compiling) your program, from now on until the contest ends. Please specify the exact name(s) of the package(s) in a comment to this post (do not e-mail to the organizers or comment to other posts for this purpose). Please also check the list of already installed packages to make sure that your request is not subsumed yet.
- If the runtime/libraries/files required for running your program is not available as a standard package, submit them together with your program. We will install your submission in the home directory of a unique general user. [Update on May 15: If your program needs to know the absolute path of this directory, please try to use $HOME or something similar. In case this is impossible, e-mail to icfpc2011-blogger AT kb.ecei.tohoku.ac.jp and request a specific username (please try to choose a unique one).] Details of the submission procedure will be described in the contest task.
- In either case, we will do our best to run each submitted program. For this purpose, we may contact you (by e-mail to the address registered at the time of submission) after the contest has ended.
- Source code of your program must also be submitted, though it will not be compiled by the judges (except for the winners, whose submissions will be examined with more attention).
- We will not distribute the image of our virtual machine because of network bandwidth limitations. It should anyway be easy for oneself to install Debian squeeze on a virtual (or physical) machine.
[The ICFP Programming Contest 2011 organizers, with special thanks to the InTrigger team]
[Update on June 13: It would be the best if each participant can prepare an environment (virtual or physical) with Debian squeeze for amd64 (which supports x86-64 including Intel 64), but in case you can only produce 32-bit executables, please remember:
- Statically linked 32-bit Linux executables should run with no problem on the 64-bit environment;
- Dynamically linked 32-bit libraries should also be fine as long as they are included in the ia32-libs package of Debian; and
- Other dynamically linked 32-bit libraries (and any other files required at runtime but unavailable on Debian squeeze for amd64) can be included in the submission itself.]