Wednesday, May 18, 2011

"" will be down on May 21 (Saturday) and 22 (Sunday) JST

Because of scheduled maintenance of the campus electricity, mail and WWW at "" will be down on May 21 (Saturday) and 22 (Sunday) JST. Although this blog itself is not affected, the links and mail addresses at "" will be unavailable during the weekend. Sorry for any inconvenience.

[Update on May 18: The dates were mistaken in the initial version of this post (which was online for a few minutes). They are now corrected.]

Saturday, May 14, 2011

Judges' machine and system environment

As stated in the contest announcement, submitted programs must be run by the judges.  We plan to use the following environment:
  • 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 limits of 512 MB virtual memory and 1 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 required for running (not compiling) your program, from now on until the contest endsPlease 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 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.
Please note that all the above is subject to possible changes in case of unexpected problems of the hardware and/or software.  We appreciate your understanding.  Thank you!

[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.]
[Update on June 14: Most virtual machine software for Intel PC requires that you enable Intel VT in your host BIOS to run 64-bit guest OS.  Please see the documents of your VM (and PC) for details.]

Friday, May 6, 2011

Contest announcement

The ICFP Programming Contest 2011 is the 14th instance of the annual programming contest series sponsored by The ACM SIGPLAN International Conference on Functional Programming.  This year, the contest starts at  00:00 June 17 Friday UTC (= 24:00 June 16 Thursday UTC) and ends at 00:00 June 20 Monday UTC (= 24:00 June 19 Sunday UTC).   Unlike in previous years, there is no 24-hour lightning division.

The task description will be published in this blog when the contest starts.  Solutions to the task must be submitted online before the contest ends.  Details of the submission procedure will be announced along with the contest task.

This is an open contest.  Anybody may participate except for the contest organizers and members of the same laboratory as the the contest chair's.  No advance registration or entry fee is required.

Participants may form teams.  A team consists of every person who contributes ideas and/or code towards a submission.  Teams may have any number of members.  Individuals may only be members of a single team and teams may not divide or collaborate with each other once the contest has begun.

Any programming language(s) may be used as long as the submitted program can be run by the judges on a standard Linux environment with no network connection.  Details of the judges' environment will be announced later.

There will be prizes for the first (US$1,000) and second ($500) place teams as well as a discretionary judges' prize ($500).  There will also be a total of $6,000 travel support.  (The prizes and travel support are subject to the budget plan of ICFP 2011 pending approval by ACM.)

In addition, the organizers will declare during the conference that:
  • the first place team's language is "the programming language of choice for discriminating hackers",
  • the second place team's language is "a fine tool for many applications", and
  • the team winning the judges' prize is "an extremely cool bunch of hackers".

Additional announcements about the contest will be made at  Questions can be posted as comments to the blog or e-mailed to icfpc2011-blogger AT (please replace AT with @).

We look forward to your participation!

The contest organizers: Hidehiko Abe, Yumi Arai, Kenichi Asai (observer), Noriko Hirota, Atsushi Igarashi (observer), Kazuhiro Inaba, Arisa Iwai, Chihiro Kaneko, Shinya Kawanaka, Moe Masuko, Yasuhiko Minamide (observer), Ryosuke Sato, Yu Shibata, Yu Sugawara, Takeshi Tsukada, Kanae Tsushima, Yayoi Ueda, and Eijiro Sumii (chair).