X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;ds=sidebyside;f=doc%2Findex.html;h=215736023eced49704b5b26a509a5b6369f74823;hb=28d1cfeba6612733f7626aa9fa6163a2a6970bf6;hp=4a2d4cad0e5f4915fdbfbc917cc46e2b5de5281a;hpb=f5ad63acececdf7ae15d6dd451c5fb593a8e3fbc;p=eval.git diff --git a/doc/index.html b/doc/index.html index 4a2d4ca..2157360 100644 --- a/doc/index.html +++ b/doc/index.html @@ -1,77 +1,165 @@ -The MO Contest Environment +The Moe Contest Environment - + -

The MO Contest Environment

+

The Moe Contest Environment

-

The MO Contest Environment a.k.a. MO-Eval is a simple system for conducting programming competitions similar to the -International Olympiad in Informatics – a contest -where the participants solve programming tasks, which are then evaluated off-line after the end of the -competition. It's built in a modular way, so extending to other types of programming contests -(e.g., to on-line contests like the ACM ICPC) should be -pretty easy, but it hasn't been done yet. +

The Moe Contest Environment (formerly Moe) is a system for conducting +programming competitions similar in spirit to the +International Olympiad in Informatics – +contestants solve programming tasks, submit the source code of their solutions, +which is then automatically tested on a set of test inputs. -

We use this environment at the Czech Olympiad in programming -(officially a part of the Mathematical Olympiad) since 2002 and also at the CPSPC -(Czech-Polish-Slovak Preparation Camp) when it's held in the Czech Republic. +

Moe is built in a modular way, making it easy to adapt it to the specifics +of a particular contest, to other types of tasks, or other programming languages. -

Download

+

A brief description of the system and of the ideas behind it can be found in the following series +of papers published in Olympiads in Informatics: -

You can download the current release eval-1.0.1 -or browse the archive of past releases. +

-

Everything is also available in my FTP archive. +News (2012-09-24): A new sandbox module (isolate) is available. +It has very low overhead (it uses Linux kernel containers) and it is able to cope with +multi-threaded programs. For more details, see the "New Contest Sandbox" paper above +or the isolate's man page. + +

Modules

+ + +
module + description + status +
sandbox + Runs the contestant's solution in a controlled and secure environment, + limiting its execution time, memory consumption and system calls. + We have a stable implementation (box) based on ptrace + and a new one (isolate) based on Linux kernel containers. + works +
judges + A set of utilities for comparing the solution's output with the correct + answer at a given level of strictness. + works +
evaluator
(a.k.a. grader) +
This module controls the whole process of grading the solution. It runs + the compilers, the sandbox and the judges as described in configuration + files. + works +
evaluator v2 + We have decided to rewrite the evaluator from scratch in Python for greater + flexibility. It will however need some more time to finish. + in progress +
queue manager + Distributes grading between a cluster of computers, each of them running + the evaluator. + works, but needs revision +
submitter + Handles submitting of solutions by contestants and passing them to the + evaluation system. Contains a server daemon and a front-end for contestants. + (If your contest uses a web-based contestant interface, you probably do not + need this, although it can serve as a clean interface between your web services + and the evaluator.) + works, but needs revision +
-

Development versions

+

Download

-

Since the last release, there were lots of changes, but they still wait -for polishing and documentation. If you are interested, you can take a peek -inside our pot: +

Moe is still under heavy development, so the best way to obtain the latest +version is directly from our Git repository at git://git.ucw.cz/moe.git. +The master branch of the repository is kept in a stable state, new development +is done on other branches and then merged to the master. You can also browse +the repository online. -

+

We occasionally publish snapshot tarballs in our FTP archive.

Documentation

+

Warning: Most parts of this documentation are outdated. Please consult the papers above +to get a more up-to-date picture. +

-

Recently, I have published a short article -on perspectives on automatic grading systems in Olympiads -in Informatics. It mentions many of the ideas behind MO-Eval. +

Contests

+ +

Moe (or some of its modules) are used at the following contests: + +

+ +

Languages

+ +

Moe is known to work with these programming languages: + +

+ +

Adding a new language should be easy, as long as the language behaves in a sane +way (e.g., if it does not need to use a zillion threads for a trivial program +as Java does).

Portability

-

The environment runs under Linux on the i386 architecture. We currently use a slightly modified installation of Debian -GNU/Linux, but it will happily work with any other Linux distribution with a 2.4 or newer kernel. The only dependecies -on Linux and on i386 are in the sandbox module; porting to other architectures requires just minor changes, porting to other -UNIX systems is probably hard. Outside of that, everything should run happily on almost any system providing a reasonable -set of GNU utilities (especially bash) and Perl, possibly including MinGW or Cygwin on Windows. +

Moe is developed and tested on Linux, but all modules except the sandbox should +happily work on any UNIX-like system providing a reasonable set of GNU +utilities (especially bash) and Perl. This probably includes MinGW or Cygwin +on Windows, but we have not tested that. + +

The sandbox heavily depends on the target OS. The current version works +only on Linux with kernel version 2.6 or newer and only on the i386 and amd64 +architectures. Porting to other architectures should require only minor changes, +porting to other systems is likely to be hard. -

Author

+

The isolate sandbox does not depend on CPU architecture, +but it requires a recent Linux kernel in a configuration which might be different +from your distribution's default. + +

Authors

+ +

Moe has been written by the following people: + +

-

MO-Eval has been written by Martin Mares. -Great thanks go to Jan Kara, Milan Straka and Tomas Gavenciak for their help and for many fine ideas. +

We are also thankful to Jan Kára and Milan Straka for their help and for +many fine ideas.

License

-

The MO-Eval package can be used and distributed under the terms of the GNU General -Public License version 2. +

Moe can be used and distributed under the terms of the GNU General Public License version 2.

Feedback

-

All bug reports, suggestions and patches are welcome. Please mail them to mj@ucw.cz. +

All bug reports, suggestions and patches are welcome. Please mail them to our mailing +list moe@ucw.cz. You can ask +the list server to subscribe to this list.