Challenge Overview
Project Overview
TopCoder Competition Engine is a system used for Single Round Matches (SRM) and Marathon Matches (MM).
About Source Code Change
Recently, we have migrated all source code for TopCoder Competition Engine from svn to github repositories, please check https://github.com/appirio-tech/arena-web/wiki/Source-Code-Repositories-for-TopCoder-Competition-Engine for details.
Competition Task Overview
Problem Description
Currently, in production, for marathon matches with big data we found a problem with Python solution.
for any non-example tests, Python submissions consistently error out as a result of LongTest.getStatus() failing. Our completely unproven theory is that I/O is somehow failing for Python in these cases.
It is convinced that any problem has large enough data going through the I/O to actually make the issue apparent.
If we temporarly increase the time limit, then the Python can get it working. But it is not an ideal solution, as the risk that any full Python submission will clog our test processors for long time, thus backing up the queue.
Challenge Scope
In order to fix the problem, the first step we want to do is reproducing the Python IO problem in our VM(dev) environment.
For this challenge, we'd like you to setup the problem and marathon match in VM environment and reproduce the python IO problem.
We will provide information of a real problem with big test data, so don't need to reinvent these pieces.
To setup marathon match problems, please follow https://github.com/appirio-tech/arena-web/wiki/Creating-Mararathon-Match-Problems-Using-MPSQAS-Client
Problem related information (description, test data, primary solution, etc) will be provided in forum. Please raise questions in forum if you need more information.
To setup marathon match, please follow https://github.com/appirio-tech/arena-web/wiki/Create-Mararathon-Match-Using-Admin-Tool
After that, you need to write some dummy python solution to reproduce the Python IO problem, as the problem is related to IO part.
Please also verification, the IO problem is only related to Python, not Java or C++.
About VMs
Before asking your own VM, you need to have a public key on your profile before asking for the VM.
You can find more details on how to generate a key http://apps.topcoder.com/wiki/display/projects/Generate+SSH+Key and how to connect using it http://apps.topcoder.com/wiki/display/projects/Connect+Using+SSH+Key.
Two VMs with root access will be allocated for each competitor.
- TC 3.0 Arena VM - the main services are started under apps account.
- Big Memory CentOS 64bit VM - the given problem requires 4G memory, so a separate VM will be provided, to setup the farm processor in a separate VM, please check the guide in forum.
Final Submission Guidelines
- Clear Guide to setup the Marathon Match Problem and Marathon Match
- Clear Guide to reproduce the Python IO, which can be used to replicate and fix the Python IO problem, please include a screencast for demonstration.
- Other needed files for review.