2.1 比赛硬件

DOMjudge 区分以下主机:

队伍电脑

队伍使用的设备,队员通过它编写题解并向评测系统提交题解。唯一需要在此设备上运行的 DOMjudge 程序是(可选的)命令行提交客户端,其他所有交互都在浏览器上通过 web 界面完成。

DOMjudge服务器

一个用于接收提交,保持数据库并提供 web 服务的主机。这台主机会运行 Nginx 或 Apache 作web服务器和 MySQL 或 MariaDB 数据库,简称为DOMserver。

评测机

一台或多台主机,用于从 DOMjudge 服务器获得提交的程序,编译、运行并将结果返回给 DOMjudge 服务器。他们会运行 DOMjudge 的评测守护进程(judgedaemon)。

裁判/管理员设备

想要监视比赛的裁判只需要一台有web浏览器的设备即可访问裁判网页界面。而不需要安装任何DOMjudge程序。


运行 DOMserver 需要一台机器(虚拟机)。评测机也至少要有一台,但建议用多台:考虑到不同的限时,评测一个题解可能要占用一台评测机几分钟的时间;并且如果有一台评测机出现故障,其他评测机还可以继续工作。

根据经验,我们建议每二十支队伍配一台评测机。

然而,冗余配置并没什么不好:DOMjudge 可以灵活扩展评测机的数目,因此如果硬件条件允许,就多用几台。但是比赛时少用几台也无妨,但是参赛队伍在接收结果时将会多等待一段时间。

每台评测机都应该是一台没有运行其他程序的专用(虚拟)机。举例来说,尽管将运行 DOMserver 的机器同时作为评测机是可行的,但我们并不推荐这样做,除非是以测试为目的。评测机也不能同时作为裁判的设备。统一评测机的硬件配置有助于建立合理的,可重现的评测系统,更理想的情况是他们用与选手机相同的配置。

DOMjudge 支持在一台评测机上运行多个评测守护进程,这可能对多核CPU很有用。注意:尽管每个评测守护进程可以被单独绑定在一个核心上(通过 Linux cgroups),但是像硬盘 I/O 等共享的其他资源仍然可能对性能造成一些影响。详细使用说明参见安装:可选功能章节。