Information for Site Directors
Pacific Northwest NA Regional
Overview
This page is intended to help Site Directors for the PacNW Regional Contest understand how the overall contest management process works in a PC2-managed contest, as well as what is expected of each contest site.
The overall architecture of the Regional Contest consists primarily of two sets of machines: AWS machines and local site team machines. Local site team machines reside in laboratories (or similar facilities) at each contest site. Every team machine is expected to run the exact same Contest OS image (see “Team Machines”, below), although the Contest Director has the authority to alter this decision. The remainder of this document is written from the point of view of assuming that team machines are running the Contest OS image.
The second set of machines comprising the contest architecture is a collection of various servers and client machines running in the Amazon Cloud (AWS). These machines include the PC2 server, judge machines, and additional machines providing scoreboards, presentations, and other contest support functions. Teams use a browser to connect to AWS machines in order to send submissions to judges and to view the contest scoreboard. Site Directors may need to provide teams with the URL for the appropriate AWS machine(s), although this information is also baked into the Contest OS image in the form of menu items containing the appropriate links. Neither teams nor Site Directors normally need to interact directly with the contest AWS machines in any way.
Some sites may also provide other local site machines (aside from team machines) for supporting other contest functions. For example, it is frequently desirable to provide a machine for handling site-specific balloon distribution operations. Also, sites sometimes use additional machines to support required services such as printing. These and other operations are discussed further below.
Team Machines
The environment provided by the Contest OS image which is expected to run on team machines is described here. Instructions for building a machine containing the Contest OS image are provided here. Useful additional information regarding setting up multiple lab machines can be found here.
Some sites do not have the ability (read: “permission”) to install the Contest OS image directly onto the hard drives of team machines. In this case, a possible alternative is to install the Contest OS on USB chips (one for each team machine) and then to boot the machines from the USB chips (thus avoiding altering the machine hard drives in any way). The image installation instructions include a description of how to install the Contest image on USB chips as well as how to boot team machines from such chips. This procedure has been used successfully at a number of past Regional Contest sites. NOTE: it is important to pay attention to the caveats in the image installation instructions regarding USB chip speed and capacity.
Team Logins
In order to participate in the contest, teams must have two sets of credentials: a login/password for the Contest OS (Linux/Ubuntu), and a login/password for the PC2 system.
OS Logins
The Contest OS created by the image installation instructions includes creation of a single user account with login id team
and password contest
. [1] Most sites deem this single OS login account sufficient for providing teams with the ability to log into the Contest OS. That is, most sites are fine with all team machines having the same account/password, since teams are normally monitored by staff during the contest and are not allowed to access another team’s machine (and access over the network is prohibited by the installation).
However, your site may feel it is important to provide additional security by creating different login accounts for each team. If so, you will need to create these accounts as part of your setup (they won’t exist by default). These accounts can be local to each machine or you can use NIS. If you use NIS, you’ll have to manually copy all files from /etc/skel
into each team’s home directory (note that the copy must be recursive; also, be sure that you copy the .mozilla
directory and its contents). If you use “adduser” on each machine it will recursively copy the files for you. Team accounts should be created as part of Group 3000 (for example, if you use “adduser”, include the command argument --gid 3000
).
Additional note: the default shell for Linux accounts should be set to /bin/bash
(this is to ensure “level playing field”; teams can use any shell that’s installed in the image, but all should start with bash as the default). Also, be sure to create “home directories” for the team accounts.
Finally, note that if you do decide to create your own individual OS login accounts (instead of having team used the default login/password combination of “team”/”contest”), you will need to arrange a procedure for letting teams know what their login credentials are.
PC2 Logins
Once a team has logged into the Contest OS and created a solution to a contest problem, the team must login to the PC2 system to submit their solution to the judges. PC2 is accessed via the Firefox web browser; there is a menu item on the Contest OS desktop which will open Firefox and connect to the URL for the PC2 system.
Once connected to PC2 the team must enter their PC2 login and password. PC2 login ids are always of the form teamXXX
, where XXX
is a 3-digit team number. Prior to the scheduled start of the (week-long) Practice Contest (see below), the Regional Contest Systems Group will download team registration information from the ICPC Contest Management System (CMS) for all teams registered in the Regional Contest and will email each team member (and their coach) their PC2 team number and password.
Any teams that register late (i.e. after the start of the week-long Practice Contest) will need to have their coach contact the PC2 team directly, at pc2@ecs.csus.edu
, to obtain credentials.
Firewalls
The general rules related to firewalls and ports on machines used for the Regional Contests are as follows.
- It is assumed that outbound access is generally unrestricted.
- Team machines need to be able to access the IP address of the PC2 system, on ports
443/tcp
,80/tcp
, and8080/tcp
, and get the response to those outbound connections. (The specific IP address for the PC2 system will be provided as soon as it has been determined.) - Staff machines (for example, machines used by judges) need to be able to make outbound RDP access connections (port 3389). If the staff member wants to SSH into the staff machine then outbound 22 also needs to be open.
The Contest OS image includes a set of firewall rules embedded in the Ubuntu iptables system. These rules are set up to allow team machines to access necessary external addresses (for example, the PC2 team server) while prohibiting access to other Internet locations. If you need to update the firewall rules (for example, to support network printing – see below), we recommend using the Ubuntu Uncomplicated Firewall manager.
Printing
Each site needs to provide support for printing from team machines. How you choose to do that is up to you, provided there are security measures in place to ensure that teams can’t obtain printouts intended for a different team. In addition, note the following:
- The default firewall (iptables) installed on team machines severely restricts network access; if you want to arrange for network printing then among other things you’ll need to add firewall rules enabling such network traffic.
Additional information related to printing is discussed here.
Balloon Handling
Most sites follow the ICPC tradition of sending balloons to teams for each problem they solve. One way for your site to determine who gets a new balloon is to have someone monitor the scoreboard for newly-solved problems. While this process is a bit cumbersome, it will work.
A much more practical way to manage balloons is to take advantage of the ICPC Tools Balloon Utility. This is a tool that runs on a machine at your site and connects via a URL to the contest system (most sites simply use a laptop or other available machine for this; the only requirement is that the machine has at least Java 9 installed and that it has Internet access). The Balloon Utility keeps track of what balloons need to be delivered, and supports the ability to filter information by individual sites so that your runners don’t have to sift through irrelevant information from other contest sites. It also supports the ability to print hard-copy balloon notification sheets, which allows runners to maintain physical records of balloon deliveries.
Installing the Balloon Utility is easy: simply download it from the ICPCTools link (above) and unzip it to any convenient folder. There is also a Balloon Utility User’s Guide which provides instructions on how to use the tool.
Note that in order to connect the Balloon Utility to the contest system you will need to know the appropriate connection URL; this can be obtained from the Regional Contest Systems Group, or by sending an email to pc2@ecs.csus.edu
.
Practice Contest
In order to provide teams with the opportunity to become familiar with the Contest OS environment, as well as provide the Regional Contest Staff with the opportunity to test the system, a week-long “practice contest” will be held. The practice contest will start at TBD on TBD and will end at TBD on TBD.
All teams are required to submit at least one problem solution (correct or not) during the week-long Practice Contest. Any teams which do not submit at least one run during the Practice Contest may be deemed ineligible for the Regional Contest.
The practice contest will be totally online. Teams will receive login credentials via email prior to the start of the practice contest, and may use any machine they wish to participate in the contest. Teams that wish to have a practice experience that is as close as possible to that which will be used in the actual Regional Contest should examine the Contest Environment page, and then should follow the image build instructions to create a contest machine which they can then use for the practice. (However, it is not a requirement to create a contest image machine to participate in the Practice Contest.)
Connection Test Contest
The purpose of Practice Contest (above) is to provide teams with the opportunity to practice using the contest environment. As noted above, teams may use any machine they wish to connect to the Practice Contest, as long as they submit at least one run sometime during the week-long Practice Contest.
In order to verify the operation of team machines in the laboratories where they will be running for the Regional Contest, all sites must participate in a Connection Test on TBD from TBD-TBD. During this Connection Test, each site must login to at least one of their actual lab team machines and submit a run to the PC2 system. No connections into this contest from outside the actual Regional Contest team labs will be supported.
Teams are not to be given access to team machines on Friday. Instead, one staff person at each site must login (on a team machine) to a PC2 team account in each Site Division (D1 and D2) and submit a program on behalf of that team. These submissions must be submitted between 6:00pm and 8:00pm on Friday evening February 23rd.
The “contest” for the Connection Test will be a simple contest consisting of just two easy problems, as follows.
- Write a program to output the string ‘Hello World.’ on stdout.
- Write a program to read from stdin a series of lines containing integers, one integer per line, and terminated with a line containing “0”, and print a message on stdout like “The sum of the integers is xxx”, where “xxx” is the sum of the non-negative integers in the file.
Each site should submit a solution to at least one of these problems, in any of the contest languages. (If you have a machine on which you’ve installed PC2, you can find solutions to both these problems, in every contest language, in the samps/src folder beneath the PC2 folder. The solutions for the first problem are in files named “hello.*”; solutions to the second problem are in files named “isumit.*”.)
Once the Connection Test contest has ended, staff are responsible for resetting the contents of all team machines — that is, for deleting anything they put on the machines for the Connection Test.
Contest Scoreboard Displays
Teams will have access to the contest standings on their machine, via two different mechanisms:
- The PC2 Web Team Interface (WTI), which is described in the PC2 Team Guide located here, has a
Scoreboard
menu item. - The PC2 Server provides a more detailed scoreboard at
http://contest.icpc-vcss.org/scoreboard
; teams can access this URL from the web browser on their machine. There is also a link to this URL on the team machine Contest OS desktop.
In addition to these basic scoreboards, the Regional Contest Systems Staff provides support for a more comprehensive set of scoreboard displays which many sites prefer to provide for viewing by coaches, spectators, and sponsors. This alternative scoreboard is implemented by using the ICPCTools Presentation system. In order to display the ICPCTools scoreboard presentations, the Site Director must go to the ICPCTools website and download and run the ICPCTools Presentation Client.
The Presentation Client should be run on a Windows machine (this is because of the detailed graphics used; Linux graphics drivers do not work properly in many cases). The Windows machine must have at least Java 1.8 or higher installed. When the Presentation Client is started, it needs to be given the URL for the Regional Contest Presentation System; Site Directors can obtain this URL from the Regional Contest Systems team, or by sending email to pc2@ecs.csus.edu
. Also, be sure to note that it is the Presentation Client that needs to be installed at each site; not the Presentation Admin.
Additional Notes
- Teams are given a Technical Notes handout describing various technical issues related to the contest configuration. Site Directors may want to review this handout for consistency with site practices which will be used.
- If you are using NFS to mount the home directory for user (team) accounts, be aware that there is a potential issue regarding Eclipse (specifically, there are sometimes issues regarding file locking between Eclipse and NFS). If you are using NFS, you should verify that Eclipse functions properly by logging in to a team account and creating and running a test program within Eclipse. If this test fails, please send email to
pc2@ecs.csus.edu
for assistance. - The Contest OS image enforces a number of firewall rules. There is some information on how to update these rules in the document linked above under “Printing”.
- Push Capability: Most sites find it useful to establish a mechanism to be able to “push” an update out to all team machines on the fly during the contest (that is, to be able to copy one or more files from a central machine onto each team machine over the network), and also to execute a script pushed out to contest machines. While we hope everything goes perfectly and no updates are needed during the contest, it is useful to plan for the ability to handle smoothly any problems which do occur. The Regional Contest Systems staff uses Ansible to manage these tasks, but you may prefer a different approach.
Update History
January 3, 2024 Updated for Spring 2024 contest.
February 10, 2023 Added section on Firewall information.
February 8, 2023 Updated “Practice Contest” section, added additional details.
February 7, 2023 Expanded printing and scoreboard sections, fixed minor typos.
February 6, 2023 Expanded multiple sections, adding new information.
February 5, 2023 Initial version.