The WSJ ran an online article on April 27 about the increased use of GPUs and FPGAs to drive down latency in trading applications. The article quoted Tabb Group's Kevin McPartland, who had authored a research report on the topic back in June 2009.
The article comments that the move toward hardware acceleration is being driven by the convergence of several trends, including the pace of market data, the race for speed, and, interestingly, innovations in high-level languages that make programming these types of hardware easier. This last point caught our attention.
For GPUs, nVidia’s CUDA and the emerging OpenCL standard have made the task of coding easier; programmers can write in a familiar C-like language rather than a graphics coding language. FPGAs, however, remain more of a challenge to program because of the need to make hardware layout decisions within the program. Regardless as to how higher-level tools make the process of creating a program easier, creating an optimized program for a given architecture is still an extremely difficult task because the program still has to be designed with an understanding of the properties and capabilities of the underlying hardware.
Several recent initiatives (such as GPUmat for MATLAB, or the MAGMA project) are working to combine high-level coding with optimized execution for modern multi-core architectures and GPUs, but these solutions have focused on solving linear systems, and fall short on their ability to model complex nonlinear systems like biological networks or financial markets.