Applying the Maximum Performance Computing approach to an application proceeds three stages. The first step is application analysis, the main objective of which is to establish an understanding of the application, the algorithms used and the potential performance bottlenecks. Application analysis covers all the layers involved in a computational problem, from the mathematics and algorithms to the low level computer science and electrical engineering aspects.
The second step in the process is to architect an accelerated application solution. This includes algorithm-level transformations (for example: is there an alternative algorithm for achieving the same result?) as well as code transformations and data layout or representation transformations, and partitioning of the application between conventional CPUs and high-performance dataflow engines.
The final stage is to build the final application, using a mix of standard tools and Maxeler’s MaxCompiler programming environment. This includes performance validation, testing quality of results and verifying integration into the wider computing environment.