Field-programmable gate arrays (FPGAs) have occasionally been used to accelerate computational research in the life sciences. But Swedish developer
Mitrionics hopes to make FPGA use more common with software that makes the arrays easier to program.
FPGAs are typically sold as add-in cards to speed up high-performance computing (HPC) systems. And some HPC systems vendors already sell units with built-in FPGA boards. Within the life sciences, FPGAs have been used in applications like BLAST and other sequencing algorithms. In such cases, an FPGA’s hardware assist often lets these life science applications run in a fraction of the normal time.
However, even with their impressive performance benefits, FPGAs are not widely deployed. One reason is cost. But another reason is the difficulty in programming FPGAs. And that is where Mitrionics hopes to help.
The company offers software dubbed the Mitrion Virtual Processor, which is a virtual machine that sits between a computer program and the FPGA hardware. Using the Virtual Processor, researchers can develop and test run programs intended for an FPGA.
Essentially, Mitrionics separates an application from the FPGA hardware by inserting an abstract language, virtual machine between the two. And instead of writing FPGA instructions in Hardware Description Language (HDL) – a programming language most researchers are not familiar with – the researcher writes code in more familiar programming terms and the Mitrionics software converts the instructions to HDL.
“This lets you program FPGAs just like you program a computer,” says Anders Dellson, CEO of Mitrionics.
To accomplish this, Mitrionics includes application development tools. For example, it offers a development language called Mitrion-c, which is similar to the C programming language. And there are graphical tools to help a developer examine an algorithm to identify sections that may run faster on FPGAs.
Specifically, the tools help a researcher find the parts of an application that are compute-intensive. These are the parts that lend themselves to an FPGA assist. The parts of an application that are not compute-intensive can remain in their native programming language. But for the compute-intensive sections of an algorithm, the researcher can make common C-like calls to an FPGA.
Once an application is reworked using the development tools, it can be compiled to run on FPGAs. Partnerships Key
Mitrionics is working with several HPC systems vendors to include its Mitrion technology with their systems. One formal partnership has been announced to date, with Silicon Graphics (SGI). But Dellson says that he plans to announce other partnerships soon.
To date, Mitrionics has demonstrated its technology in conjunction with several life science research organizations. For example, last year the Stockholm Bioinformatics Center used FPGAs to accelerate its “Tree of Life” research, which used Markov Chain Monte Carlo (MCMC) simulations to better understand how different genes and species are related to each other.
One of the challenges the researchers encountered was that the MCMC algorithms are not parallelizable – there was a sequence of operations that had be performed in a specific order. (This prevented the calculations from being done on a cluster.) Using the faster processing capabilities of an FPGA board added to a stand-alone server, the simulations were able to run 10 times faster.
The MCMC calculations were done as a proof-of-concept experiment. But Mitrionics notes that other life science applications, particularly those that are highly parallel, are ripe for its technology.
To that end, the company used the recent Power.org Community Conference (held in Barcelona in June) to demonstrate the FPGA’s power when applied to a protein analysis algorithm.
The company is targeting its software at a number of life science application areas, including image analysis, sequence analysis, and the simulation of biological systems.