Winners are announced ! HERE ( Solutions included)
Maximum Subarray Problem
Given a 2-dimensional array of natural integers (between -32000 and +32000), the Maximum Subarray Problem asks for the rectangular area within the array that maximizes the sum of the array elements found in the area.
Input format : Natural integers (between -32000 and +32000) separated by spaces, ended by a line break. All the lines have the same number of natural integers.
Output format : 4 integers delimiting the rectangle (x0 y0 x1 y1), separated by a space, ended by a line break. Array index starts at 0.
Example input 1 :
-10 -5 2 1 6
-5 10 50 60 -9
Example corresponding output 1 :
1 1 3 1
Because the maximum subarray, highlighted in red, is in our case :
-10 -5 2 1 6
-5 10 50 60 -9
If the software is given several files as input, the output should be the results of each file, separated by a line break, with output lines respecting the order of the input files.
Build and run automated procedure :
The build and benchmark procedure is automated.
You will deliver C/C++/Fortran/Java source code, ready for compilation with a Makefile, in a zip file called “solution.zip” and password protected (*) with the password “secret”. Binaries are not accepted. You will send it to ISNFrance@intel.com
Do not forget to include a readme text file ( approximatively 1 page) to explain your code.
We will unzip the file with your password, clean the build environment, build the binary/bytecode from your source and run it with a variable number of worker threads (in the following example 40) and a variable set of input files. Our script is very simple :
unzip –P secret solution.zip
time ./run 40 input1.txt input2.txt input3.txt > output.txt
We expect you to have everything ready in your solution to be built with “make”, and run with “./run”.
We will then check the output for correctness, and keep the time result as benchmark.
Reference machine :
The reference machine for building and benchmarking is the ManyCore Testing Lab. The build environment and libraries available are described in the attached “Getting Started Guide.pdf”. It’s a typical 64bit Linux OS with gcc and Intel tools installed, easy to replicate at home : You don’t have to work on the MTL to participate, but it is our reference system. You can develop and benchmark on the MTL, but keep the original copy of your code outside the ManyCore Testing Lab.
Advice : Design your algorithm and code to make it scale on a very large number of cores.
* The zip file password helps your zip file go through email servers antivirures without being blocked.
From 15th of October to 15th of November
The rules are easy : a problem is designed by one of our best software engineers specialized in parallel programming. It will be delivered with Input data and the expected output. The speed of the code and its scalability will be the biggest rating criteria. To test the code in a real work environnement, the code will be tested on the Intel ManyCore testing Lab, a 40 cores, 4 sockets machine.
All the students in Europe, the Middle East, Africa and Russia can participate. The goal is for beginners to discover parallel programming, not for hard core specialists to show their skills, so don't be shy and participate ! The teams have to be formed by 2 students. A CS teacher or experienced developer can help them if needed. To register, go on the registration page. A student can only be in one team. Both students have to have an Intel Developer Zone account REGISTER ON Intel® DZ HERE
This contest is also a professional opportunity. Indeed, the Intel recruiters will ( if you want to ) look at your resume and present with you the opportunities we have at Intel for skilled people like you ! So, show us what you can do !
A 40 cores machine will be available to you remotely in order to let you test your code on the machine that will be used for the grading. The access procedure to this machine will be given after the subscription. If you don't have the Intel Software tools, you should try the evaluation Download page, before applying for some free licences of the Intel tools here.
You'll probably need to learn the basics of parallel programming to solve our parallel problem : we recommend you watch our video course.
Participate, you'll have fun learning something useful !