You have been granted access to this page through First Click Free. Subsequent use of TabbFORUM will require logging in. If you don't have an account, registration is free.

Videos

  • Rail_thumb_steven_harrison-imagine_software-the_60_second_rule

    Real-Time Risk: The 60-Second Rule

    The CFTC's 60-second rule requires Futures Commission Merchants to accept or reject a trade within 1 minute, meaning they must run analytics against client portfolios in near...
     
  • Rail_thumb_mark_hepsworth-interactive_data-realtimecorporatebondprices

    Real-Time Bond Prices & the Push for Liquidity

    Interactive Data provides end-of-day prices for 3 million fixed income securities every day, but Mark Hepsworth, president of pricing and reference data, says the firm sees a big...
     
  • Rail_thumb_pierre

    The New Risk Transparency Toolbox

    Traditional asset managers are facing an increasingly urgent need to generate alpha, driving a push into alternative investments, from hedge funds to private equity. But as traditional...
     
 

More Video | Podcasts

Advertisement
Missing
Michael Sorensen

Simatra Modeling Technologies

More From
Michael Sorensen

03 May 2010

From the Biosciences: Translating Mathematical Expressions of Nonlinear Systems into Optimized Code for FPGAs, GPUs and Multi-core CPUs

Sorensen issues an invitation to firms interested in using modern hardware to accelerate complex financial modeling, simulation and analysis algorithms.

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.

At Simatra Modeling Technologies, we have spent years researching high-performance computing for nonlinear systems.  Our focus to date has been for applications in computational biology and biomedical engineering research. We have developed a high-performance compiler technology that translates high-level descriptions of nonlinear systems into efficient, optimized code for GPUs, FPGAs, and multi-core CPUs. The system speeds development time by automatically converting high-level mathematical descriptions of nonlinear systems into efficient representations in CUDA, Verilog, C, etc.

Although our background and experience are in modeling and simulation of biological systems, we believe that our technology could be adapted to deliver an automated system for high-performance simulations for financial modeling applications. We have recently begun work to test and prove this, and would be interested in engaging with parties interested in accelerating modeling, simulation, and analysis algorithms with modern
hardware.

Comments | Post a Comment

4 Comments to "From the Biosciences: Translating Mathematical Expressions of Nonlinear Systems into Optimized Code for FPGAs, GPUs and Multi-core CPUs":
  • Comment_kevin_mcpartland_s
    kmcpartland

    03 May 2010

    As stated, CUDA and other similar paradigms have made hardware acceleration accessible to more than just those programming in assembly language. Sounds like this technology isn't look to replace those advancements, but to make them even more accessible still. What also is amazing is that financial markets have become so complex that bioscience techniques, used to look at the most complicated (organic) networks on the planet, are being used to trade.

  • Missing
    serafini

    05 May 2010

    I haven't looked at FPGAs in a long time, but years ago I saw some presentations by a couple companies that had C compilers for their FPGAs. There were some non-trivial restrictions to using them, but the goal was to be able to compile the kernels of high-performance scientific software applications directly, with very little modification. Did any of that research come to fruitition?

  • Comment_kevin_mcpartland_s
    kmcpartland

    05 May 2010

    Looks like FPGA C compilers are out there at some level. This site lists it as Beta however which leads me to believe the technology is still rough around the edges: http://fpgac.sourceforge.net/. For financial services applications however I'd imagine anyone dabbling in FPGA's would not trust a compiler to create their VHDL as you probably don't have as much control over the actual implementation of the logic.

  • Missing
    mesorensen

    05 May 2010

    Kevin is right that the technology for auto-generating FPGA designs is still rough around the edges. One of the important factors that we've found is that the more constrained the problem becomes, the easier it is generate efficient code automatically. That's part of our organizing principle with simEngine; by operating under the assumption that we're working with differential and difference equations ("an interative bounded loop" in CS speak), we can make many optimizations that other compilers can't. On a somewhat related note, one of the big factors that plays into many of these technologies (and any compiler that targets them) is the numeric data type used for computation. FPGAs work best when fixed point data can be used, GPUs work best (currently) at single-precision floating point, and CPUs are optimized for double-precision floating point.

You must log in to comment.