Contestant PC

IOI 2021 Contestant PC

With IOI 2021 also conducted online as with IOI 2020, Teams will be required to prepare Contestant PCs and run Contestant VMs in order to participate in the competition. The IOI 2021 Contestant PC Manual specifies requirements, preparations, setup and testing for the Contestant PC. This page is an update from the IOI 2020 edition.

Matters concerning contest operations are now specified in the IOI 2021 Contest Operations Manual. Screen recording is now mandatory; the IOI 2021 Screen Recording Procedures document provides more details. For matters regarding the Contestant VM, including setting up and backing up your data, the Contest VM Manual provides more details.

Download:

More information and other updates will be published on this page in due course.

News

24 Jun 2021: Please ignore the part of the new FFmpeg command for screen recording. The Screen Recording Procedures have been refreshed as a result.

23 Jun 2021: Screen Recording Procedures updated - the command to record your PC's screen has a new argument (please read!). Also, TLs/DLs do not need to inform the HTC when they are checking in on their contestants' PC to see the status of FFmpeg, but only when they are restarting FFmpeg upon detection that it has stopped for any reason.

21 Jun 2021: Updated the IOI 2021 Contest Operations Manual to reflect the changes in schedule for Contest Day 1 and 2.

19 Jun 2021: Added the IOI 2021 Contest VM Manual, which was previously found only inside the VM. For matters regarding the VM, including setting up and backing up your data, please refer to this document.

18 Jun 2021: Updated this section's FAQ. All PC-related FAQ can be looked up here while all other IOI-related FAQ can be found at https://ioi2021.sg/faq/

16 Jun 2021: Screen Recording Procedures updated again, this time with instructions on what to do if the screen recording software abruptly terminates. TLs/DLs should also note that the File Request upload links are not sent to you; you must fetch it from the Matrix Chat Bot!

13 Jun 2021: Screen Recording Procedures updated with instructions on fetching Teams' File Request upload link, upload status and a guide for contestants on inputting their name and email when they upload their files.

11 Jun 2021: Contestant VM 2021.0 is released. This will be the final version that shall be used by all contestants during the IOI competition. Best of luck to everyone!

10 Jun 2021: Contest Operations Manual updated.

4 Jun 2021: Contestant VM 2021.0-rc2 is released. Screen Recording Procedures document updated to allow contestants to choose either MP4 or MKV formats to record their screen recording videos into. 

29 May 2021: Contestant VM 2021.0-rc1 is released. Contest Operations Manual and Screen Recording Procedures are also refreshed.

24 May 2021: Added the Contest Operations Manual and Screen Recording Procedures.

15 May 2021: Contestant VM 2021.0-beta2 is released.

1 May 2021: Contestant VM 2021.0-beta1 is released.

Software

Contestant VMs are installed with Ubuntu 20.04 LTS with minimal desktop environment. The following software and documentation are also included.

Compilers: Gcc 9.3.0

Text Editors and IDEs: Atom 1.55.0, Codeblocks 20.03, Eclipse 2020-12, Emacs 26.3, Geany 1.36, Joe 4.6, Kate 19.12.3, Kdevelop 5.5.0, Nano 4.8, Sublime 3211, Vim 8.1.2269, Visual Studio Code 1.55.0

Debuggers: Gdb 9.1, Ddd 3.3.12, Valgrind 3.15.0, Visualvm 1.4.3

Interpreters: Ruby 2.7, Python 3.8.5

Documentation: C/C++, STL, Python3

Other Applications: Firefox 87, Gnome Terminal 3.36.2, Konsole 19.12.3, Byobu 5.133

Grading System

Contest Management System (CMS) will be used as the grading system.

The exact commands used for compilation will be shown on the grading system. With the exception of certain task types, the compilation command will generally be of the following format:

C++ (GCC 9.3.0)

/usr/bin/g++ -DEVAL -std=gnu++17 -O2 -pipe -static -s -o task grader.cpp task.cpp

Grading will be performed on Amazon Web Services' c5.metal and c5d.metal Elastic Compute Cloud (EC2) instances with the following specifications:

  • Ubuntu 20.04
  • 2x 3.0Ghz 2nd generation Intel Xeon Scalable Processors (Cascade Lake)
  • Intel® Turbo Boost Technology and CPU frequency scaling disabled

During grading, an entire CPU core (consisting of 2 CPU threads) will be dedicated to the running submission.

Frequently Asked Questions

Q1. VMware Workstation doesn't seem to work with Hyper-V in my Windows 10 PC. What can I do?

Some editions of Windows 10 (e.g. Pro and Education editions) come with Hyper-V support. Since both VMware Workstation and Hyper-V are virtualisation layers, you cannot run both at the same time. You need to disable Hyper-V, either by uninstalling the feature in "Turn Windows features on or off" (just press the Windows key and search for that phrase), or by temporarily stopping Hyper-V with this command in CMD prompt:

bcdedit /set hypervisorlaunchtype off

and reboot the PC.

(Note that from Windows 10 version 2004, VMware Workstation can use Hyper-V for virtualisation.)

Q2. Can I use a Mac or Linux computer for the host PC?

Yes, you can use VMware Workstation for Linux and VMware Fusion, for Linux and macOS respectively, to run the Contestant VM. Note that the HTC can only commit to provide technical support for Contest PCs running Windows 10.

Q3. Can I use AMD processors instead of Intel?

Yes. While there are no reasons why AMD processors cannot be used, the HTC has only tested the Contestant VM on Windows 10 PCs using Intel processors. You should expect to self-support in the event that there are technical issues with running the Contestant VM with AMD processors.

Q4. What is required for the VPN to work? How do I test the VPN requirements?

The Tinc (https://www.tinc-vpn.org) VPN software is used. It requires access to TCP port 655 (and if possible, UDP port 655). To verify that your network (ISP) does not block the VPN traffic, try to run from a command line "telnet pop1.ioi2021.sg 655". If the telnet command "hangs", disconnects, has a connection error, or otherwise fails to connect, it will mean that your network is likely to be blocking the VPN traffic.

Q5. How can I verify the integrity of the VM images downloaded?

The SHA256 checksum will either be announced or listed in a SHA256SUMS file at the download location. In Windows command prompt, run "certutil -hashfile <filename> SHA256" to compute the file's checksum and verify that it matches.

Q6. How do I get account credentials?

Check your email and/or Matrix chat for instructions on obtaining test account credentials to use for testing access to the Online Contest Environment and CMS Test website. These test accounts are not associated with any specific individuals, so Team Leaders can distribute to their team as they like. Note that after registration has closed, a new set of account credentials will be distributed; these new accounts are associated with specific Contestants, and they will be used for Practice and actual Contests.

Q7. Will the Contestant VM be firewalled?

Yes. Firewall restrictions will be applied during the Contests and Practice session. Access is permitted only to the Online Contest Environment (CMS and related services).

Q8. Can I use the Contestant VM to access other websites like Codeforces for practice?

The Contestant VM's firewall is configured once you setup the Contestant Credentials to login to the IOI 2021 Online Contest Environment. You can disable this firewall by running "ioiconf fwstop" from a shell prompt. For the actual IOI 2021 Online Practice and Contest sessions, the firewall restrictions will be enforced and you cannot disable them.

Q9: Is VPN required on Contest Day? Is there a need to arrange for Proctor with troubleshooting knowledge?

VPN is required for Practice and actual Contest days. Anyone with some general Windows desktop support competency should suffice. Since the VM is locked down, there is not much we expect the local Proctors to do. The HTC will provide remote support when needed.

Q10: Should spare computers be turned on and with Internet connection during all Contest, or only turned on if necessary?

This is left the the team's discretion. Do note that while spare computers may be turned on and connected to the Internet, the Contestant VM itself must not run until the Contestant is ready to use it. I.e. there must be only one instance of the Contestant Credentials active and online at any one time, otherwise the VPN connection for the Contestant will fail.

Q11: Can Contestants use their own computers?

Yes. Teams must ensure that such computers are still in compliance with the IOI 2021 Contestant PC Manual (e.g. no messaging app, etc).

Q12: When rebooting or shutting down the VM, a message pops up about an "ansible (remote)" user being logged in. Is this ok?

This is our ansible configuration system managing the VM. It is alright to reboot/shutdown as per normal.

Q13: Is modifying the VM's settings allowed?

Contestants are NOT allowed to modify the VM's settings, especially with regards to increasing the number of CPU cores and memory (RAM). This is to ensure that every contestant has the same working environment as much as possible.

However, exceptions are granted to the following:

  • The VM's resolution/scaling settings, where contestants may change the Display Settings in VMware Workstation Player/Pro (Virtual Machine Settings → Hardware → Display → Monitors → Specify monitor settings), and the scaling option in the Ubuntu VM itself (Settings → Displays → Scale/Fractional Scaling).
  • Toggling the "Accelerate 3D graphics" option in the VMware Display Settings if they encounter performance issues with the VM.
  • Reducing the amount of RAM in the VM

Contestants can change these settings only if they feel that it is necessary to optimise their user experience.