IOI 2020 Contestant PC
With IOI 2020 conducted online, Teams will be required to prepare Contestant PCs and run Contestant VMs in order to participate in the competition. The IOI 2020 Contestant PC Manual specifies requirements, preparations, setup, testing, and operating procedures for the Contestant PC.
More information and other updates will be published on this page in due course.
14 Sep 2020: Contestant VM GA2 is released. Please use this VM image for Contest Days 1 and 2. For teams joining the optional practice sessions on 15 Sep 2020, please participate with this image too.
7 Sep 2020: Contestant VM GA1 is released. This is the actual VM image which all Contestants must use for the Practice and Contest Days.
30 Aug 2020: Contestant VM RC2 is released. There are usage instructions included inside the VM, in Firefox, under the link "Contestant VM Manual". You can now disable automatic screen lock by running "ioiconf setscreenlock off" in the shell, and this setting will persist after account re-provisioning; this is not yet updated in the on-image documentation, but you can fetch the latest vm-20200831.pdf.
16 Aug 2020: Contestant VM RC1 is released. The CMS test site and VPN setup are ready for testing. Team Leaders can contact us to obtain test credentials for their team to test.
2 Aug 2020: Contestant VM Beta 2 is released. There are some minor updates to the IOI 2020 Contestant PC Manual, mostly edits to use consistent terminology.
19 Jul 2020: Contestant VM Beta 1 is released.
Contestant VMs are installed with Ubuntu 20.04 LTS with minimal desktop environment. The following software and documentation are also included.
Compilers: OpenJDK 11.0.8, Gcc 9.3.0
Text Editors and IDEs: Atom 1.48.0, Codeblocks 20.03, Eclipse 2019.12, Emacs 26.3, Geany 1.36, Intellij-idea-community 2020.2, Joe 4.6, Kate 19.12.3, Kdevelop 5.5.0, Nano 4.8, Sublime 3211, Vim 8.1.2269, Visual Studio Code
Debuggers: Gdb 9.1, Ddd 3.3.12, Valgrind 3.15.0, Visualvm 1.4.3
Interpreters: Ruby 2.7, Python 3.8.2
Documentation: OpenJDK 11, C/C++, STL, Python3
Other Applications: Firefox 79, Gnome Terminal 3.36.2, Konsole 19.12.3, Byobu 5.133
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
Java (OpenJDK 11.0.8)
/usr/bin/javac grader.java task.java
/bin/sh -c jar cf task *.class
Grading will be performed on Amazon Web Services' c4.8xlarge Elastic Compute Cloud (EC2) instances with the following specifications:
- Ubuntu 20.04
- 2x 2.9 GHz Intel Xeon E5-2666 v3 Processor
- Intel® Turbo Boost Technology 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.ioi2020.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 Keybase 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 2020 Online Contest Environment. You can disable this firewall by running "ioiconf fwstop" from a shell prompt. For the actual IOI 2020 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 fall apart.
Q11: Can Contestants use their own computers?
Yes. Teams must ensure that such computers are still in compliance with the IOI 2020 Contestant PC Manual (e.g. no messaging app, etc).
Q12: Why doesn't the Contestant account seem to work with "ioisetup"?
If you are using the test credentials, they no longer work from 7th September 2020. We have switched to the live, actual Contestant accounts. Team Leaders and Deputy Leaders can send "accounts contestant" to the @ioibot user to fetch the new live credentials.