It’s one thing to talk about leveraging threading to optimize applications for multicore processors. It’s another thing entirely to demonstrate the skills and expertise required to translate complex problems into fast-executing code.
When it came to the first challenge in the AMD Multicore Threadfest, a four-part contest run by TopCoder, there was a clear winner: Amin Allam, a computer scientist in Cairo, Egypt. But before we get to the winner, let’s talk about the AMD Multicore Threadfest, and the challenge that Mr. Allam and his fellow programmers decided to tackle.
About the Threadfest
AMD is the sponsor of this competition, which has four specific events. The first, won by Mr. Allam, opened on March 12 and closed on March 26. The next three are scheduled as follows:
Competition 2: opens May 21, closes June 4
Competition 3: opens September 10, closes September 24
Competition 4: opens November 26, closes December 10
By the way, anyone can compete in the AMD Multicore Threadfest. All you need is a free account on TopCoder, which gives you access to the contest rules and results, as well as some great discussion forums. The details of a specific competition, including the requirements and scoring methodology, aren’t disclosed in advance, which means that every competitor is on equal footing during the 14-day competition period.
All of the problems can be solved by a variety of approaches, but generally speaking, a solution that is properly threaded will tend to have a performance advantage over those that are not threaded. However, each problem in the event series may have different memory usage constraints, runtime constraints, and scoring criteria. While it’s helpful to study and learn from each winning entry, each competition truly presents a unique challenge.
When you’re competing in a challenge, you have to write applications in C++ that solve the specific requirements. Then you upload the source code, which TopCoder compiles and executes on a standardized platform. And it’s not just any platform: It’s a box with two quad-core AMD Opteron™ 2350 processors running at 2GHz, 8GB of RAM, and SUSE Linux 10.3. The compiler is SUSE’s version of gcc 4.2.1.
Competitors are encouraged to iteratively improve the performance of their solution. The five top-scoring solutions at the end of each competition win cash prizes ranging from $2,500 to $250. Plus, of course, the immortal fame and glory that comes from winning the AMD Multicore Threadfest! (You can read the complete contest rules online.)
It’s not too late to enter Competition #2, which kicks off on May 21. Check it out, sign up!
Before we get into the detail about Competition #1, which focused on coming up with an efficient processor scheduling algorithm, let’s talk about our winner, Amin Allam.