This homework is worth 15% of your grade and is due on Sunday, January 25th at 8pm
This assignment should be done in teams of 2, unless you have a compelling reason to work differently.
If you have questions about this assignment post to the HW2 folder in Piazza
Matrix multiplication is an important numerical operation that arises frequently in high performance computation. Not surprisingly, software providers put considerable effort into extracting every last bit of performance. In roughly 2 weeks time, you’ll improve on a provided implementation, exploring various optimization that will improve performance significantly. Depending on your background you’ll do one of the two possible hardware options. In particular, if you have no CUDA experience you’ll choose the CUDA option, else you’ll explore a conventional multicore implementation.
Here are the various “ambitious” options that you can use to
If you chose the single core option, parallelize with threads and block for shared caches as well as private caches. Build an autotuner.
Build an MPI + X implementation, where X is one of GPU or single core (or multithreaded if you are feeling especially lucky).
We’ll be using the Stampede system, which is located at TACC, The Texas Advanced Computing Center. Consult Getting Started with Stampede to learn about how to use the machine. As explained in Class, the CSEClass machines will also be available.