Preparing the Coding Challenge for the 2014 Intel Parallel Universe Computing Challenge

My friend and co-worker James Reinders will once again be the judge and administrator of the parallel coding portion of the Intel Parallel Universe Computing Challenge (PUCC) at SC14 this November. He’s the Chief Evangelist for Intel Software and author of several books including Intel® Xeon® Phi™ Coprocessor High-Performance Programming and an upcoming book High Performance Parallelism Pearls – Multicore and Many-core Programming Approaches, a contribution-based book, focused on practical techniques for Intel Xeon processor and Intel Xeon Phi coprocessor parallel computing. With example code available for download by the time the book is published, it has over 70 contributors with over 25 real world examples.

James and his team have also been busy working on finding parallelized code to UNparallelize to use in the PUCC. We talked to him recently about how the preparations for the coding challenge were coming and other topics.

Q:  Why is Intel sponsoring the Intel Parallel Universe Computing Challenge?

Fun comes to mind first. We’re going to this conference because supercomputing is very important to Intel and we want to give back, add some excitement, and bring focus to a very important topic at the same time. It’s a good thing for us to do.

The contest is also about code modernization. Hardware hasn’t stood still. So we are highlighting of capabilities of modern hardware. The contest is very focused on taking advantage of modern hardware but doing it on a way that can apply to all modern hardware. It’s not about programming to a particular type of machine. It’s more about how you change your code so that it will run faster on all modern architectures. That’s truly code modernization.

Q:  Were you surprised at how popular the PUCC was at last year’s supercomputing conference?

It was pleasant to see the large crowds. We weren’t sure they would stick around and watch. But the trivia got people going and the intensity of the audience increased as they watched the big screens that showed the teams coding live and they would shout out instructions.

Q:  How do contestants win this portion of the competition?

The contest is won by whoever gets the program to run the fastest. That generally means scale and vectorize. Boning up on making sure you know how to get a program to scale across multiple cores and vectorize well are the keys to getting the speed up. The winning teams get both to happen. Knowing just one isn’t enough.

Q:  What kinds of coding challenges can contestants expect this year?

It will be the same as last year. We’ll be taking programs written in C and Fortran mostly. What we do is go looking for real world programs that have been modernized and then devolve them and we see during the contest if the contestants can figure out how to update them. We’ll definitely have C/C++, Fortran and OpenMP. If no team members know Fortran, they’ll be at a disadvantage. I had cheat sheets last year and I’ll do that again to show the syntax if someone doesn’t remember how to type the exact directive or pragma. We really wanted to stress the concepts more than just remembering the exact command.

Q:  Can you give the potential contestants any pointers about how best to prepare?

The teams that do the best have some diverse backgrounds, work together as a team, and definitely have an attitude to have some fun. There is no way to really bone up on this, it’s really just the experience that they’ll bring. We don’t give them very much time. So if one programmer thinks they are going to do it all and not pool their knowledge, they won’t do as well.

The key things are going to be some experience with a highly scalable device like the Xeon Phi and taking a look at the techniques that are working to get the highest degree of scaling. (Editor’s Note: one resource is James’ book Intel Xeon Phi Coprocessor High Performance Programming.)

Q:  SC14 is using the tagline, “HPC Matters.”  Why do you think HPC matters?

I have no doubt that it matters. It matters because today all of the activity at the forefront of science and engineering is done computationally. Advancing science and advancing engineering all happens computationally. The ultimate expression of that is HPC—the fastest computers in the world. HPC has never been as diverse as it has been today. Today it’s an indispensable tool for advancing science and engineering.

More information about the PUCC is available at