Topic status: We're looking for students to study this topic.
Graphics processing units (GPUs) are specialised cards (computer hardware) designed to massively accelerate basic operations such as vector and matrix arithmetic. The original purpose of such hardware was to support faster processing of computer graphics, and indeed such cards now come standard with all gaming consoles and most home PCs. In recent times though, the potential for this hardware to be used in conjunction with standard CPUs for high performance computing has been increasingly exploited. Products such as NVIDIA's Tesla card are designed specifically with this application in mind. Depending on the student's programming background, this project would involve either an investigation into accelerating MATLAB using GPUs and associated toolboxes; or else the extension of an existing C++ library for high performance linear algebra on CPU/GPU machines. In the latter case, experience with C++ and preferably template metaprogramming would be required.