Autograder for a first-year programming course

DesignEasy25 min

Your task

Your university's first-year programming course has 2,400 students. They submit each assignment to an autograder, which runs the course's tests on their code and shows which tests passed. Students may submit as often as they like before the deadline. A run takes 30 seconds on one CPU core, in its own container.

Assignments are due on Fridays at 23:59. Up to 4,000 runs are submitted in the last hour, 1,500 of them in the last 10 minutes. The rest of the week brings about 100 runs an hour. Today the autograder has 2 servers with 8 cores each. Before last Friday's deadline, some students waited over an hour for their results.

Students should see results within 5 minutes of submitting, even in the last minutes before a deadline. The university's cloud rents 8-core servers by the hour, and a new one is ready about 3 minutes after it is asked for.

How many cores do you run at each point in the week, and how does a submission reach a free one?

It covers

  • Test runs
  • Deadline peaks
  • Cloud servers