Company Offers a New Way to Parallelize Applications
Startups always begin with big ambitions and Massively Parallel Technologies (MPT) is no exception. This week, the company unveiled “Blue Cheetah,” which is described as a “total application ecosystem” that aims to revolutionize the traditional software development and distribution model, especially for highly parallel codes. The idea is to turbo-charge the ROI model by automating the application development process, bringing software to market faster, and making it widely reusable.
MPT is not exactly a startup, though. The Colorado-based company has been around since 2000, and is on its third CEO. The first two, company founder Scott Smith and HPC luminary John Gustafson, are now on the board of directors. Former Linux Networx exec Bobbi Hazard is the current CEO and will oversee the reboot of MPT as it rolls out the Blue Cheetah suite of tools. Kevin Howard, the CTO, who has been with the company since its inception, has driven the technical innovation behind the products, especially in regard to the parallelization techniques.
During the company’s early years, MPT offered BLAST-based bioinformatics products and services, based on the company’s “HOWARD” technology. Using some of that early work, as well as additional development performed under a DARPA HPCS program contract, the company developed a new parallel communication technology that Hazard claims is “a huge improvement over MPI and PVM.” According to her, more than half of their 400-plus patent filings are based on this area of the technology.
But Blue Cheetah extends far beyond its novel communication scheme. It encompasses the whole software lifecycle, from design, testing, and development to deployment, licensing and revenue distribution. As Hazard puts it: “Usually you get one set of products to do one thing and another set of products to do another,” says Hazard. “I don’t know of anywhere else where you can get them all together.”
Not all of this is available today, though. What MPT announced this week is a beta version of Blue Cheetah’s software development platform, called Cub. With it, developers can design and develop applications, as well as share code with others in a collaborative fashion. Cub also automatically generates application documentation based on the design. The output from this tool is an executable that can run in a uni-processor environment. If parallelization is desired, that is performed separately further down the toolchain.
The key to Blue Cheetah software development is teasing out an application’s fundamental process elements, which they call kernels, from the control functions. Basically, the idea is to separate the math from the program control logic. During design, the system translates the developer’s kernel specifications directly into executable code. This is not revolutionary in itself; pseudcode-to-code translation has been done with varying degrees of success for decades. In this case though, there is no intermediary programming language like C or Fortran to deal with. The design itself represents the program source.
The control functions encompass the if-then-else and looping constructs that wrap around the kernel invocations. Conveniently, Cub automatically generate all the control functionality itself, again, based on the original design. This functional decomposition not only frees the developer from maintaining any of the control software, it also removes the dependency of the kernel algorithms on the underlying hardware and subsequent parallelization schemes.
Another important side effect to this decomposition is that the algorithms are easier to share among applications. Code reuse is a core element of MPT’s software monetization scheme, and during the design phase, the system points the developer to existing kernels that may apply to his or her application. Matches are based on keyword searches, input/output parameters, dataset similarities, and so on. Anything from an individual FFT algorithm to a complete application library can be shared across applications, taking with it the licensing agreement associated with the original code. The choice of reusing existing kernels versus designing new ones is up to the developer, though.
Once the application design is complete, its licensing is set up. The developer determines the fee structure and sets up the payment scheme for their own code. Blue Cheetah offers both a pay-per-use model and a more traditional licensing model. The intention is to offer applications on-demand via their own 256-node “cloud” cluster, but MPT will also license Blue Cheetah to customers who want to take the whole system in-house.
If kernels are reused in multiple applications, the original developers will get paid for each instance of use. It’s essentially the opposite of the open source licensing model. MPT is hoping to attract both commercial and academic developers, especially those frustrated by the “free software” business model. “A whole ecosystem will be formulated over time, and get larger as more kernels and algorithms become available,” says Hazard.
Blue Cheetah includes special capabilities to help developers parallelize their applications across the multicore/multiprocessor/cluster/grid/cloud computing landscape. That certainly covers high performance computing, but all software applications that require a large-scale computing infrastructure (e.g., cloud computing, business analytics, math-intensive applications, etc.) are fair game. Hazard says they have had early interest from organizations who develop nanotech, biotech and multi-player gaming applications.
Parallelizing applications will be performed by the upcoming Blue Cheetah product called Coalition, which is scheduled for release in the January 2011 timeframe. The tool will take the code developed under Cub and automatically restructure it in such a way as to maximize parallelism, be it for multicore platforms or clusters. How it actually accomplishes this is not clear, although an auto-parallelization feature that bypasses MPI and promises better performance should pique the interest of HPC developers.
Further down the road, a separate product called Savannah will also be available to put a Blue Cheetah app into firmware. This is targeted at users who want maximum performance or are running the types of embedded applications that requires the application to be executed locally.
Another future Blue Cheetah tool, called Spots, will consume existing source code and perform process-control decomposition so that it can be fed into the Cub platform. Once in the system, the application can go through the rest of the Blue Cheetah toolchain, including auto-parallelization. How this code transformation occurs, and what types of source code are deemed consumable, is not defined, but Hazard implied that even legacy MPI codes could be restructured by Spots. This tool also checks incoming code for malware and plagiarism.
Redefining the software development ecosystem is certainly a lot for one small company to take on. MPT has no venture capital money behind it. But the company has attracted a large number of angel investors to fund the Blue Cheetah development.
They’ve also managed to catch the attention of Gene Amdahl, a computer science icon who developed Amdahl’s law of software parallelism. He is on MPT’s board of advisors and appears to be thoroughly impressed by the Blue Cheetah products. In a video on MPT’s website, he talks about the importance of parallel computing and the opportunity afforded by the company’s technology. “It will revolutionize the world of computing,” he says.