We at ACS know how many parallel software development tools are out there. So we get why some people say "Oh no, not another parallel programming tool. . .". But here is the thing - Currently available tools for designing serious, high-performance parallel codes are extremely complex and misdirected. Many of the tools are really debugging aids applied to parallel programming. For the uninitiated, this confusion adds to their fear of grappling with parallel programming concepts.
Pressed by the multicore revolution imposed by hardware manufacturers, many organizations have labored for years to find the "silver bullet" for parallel programming, resulting in a confusing menagerie of parallel language extensions, parallel compilers, new parallel languages. But they have a flaw in common - Their low-level approach creates new and difficult to comprehend complexity, adding unnecessary work for everyone.
Our answer is SET™ (Supercomputing Engine Technology™). SET™ is a software development framework and implementation library for writing high-performance code required to leverage parallelism in hardware. Initially driven by ACS's internal necessities, we realized that using SET’s parallelization approach, we could put huge commercial sequential codes (millions of lines of code), without access to source codes, on a supercomputer in one man/month. The “SET-parallelized” commercial codes performance increased almost linearly with increasing number cores, and that's when we said "Wow, there is something big here". We wanted to bring the SET approach to every programmer, because it changes the whole approach to parallel programming, making it so much simpler, and so much more powerful. Just imagine how much more quickly YOU can parallelize your code when YOU have direct control over YOUR source code.
With SET, any software writer that is proficient in writing a modular, stable sequential code (i.e. the level of a second-year computer science student), can write parallel codes that scale across thousands of compute cores, much like expert supercomputing programmers. Why? Because SET handles the nitty gritty details of parallel programming tasks, so that application programmers can focus on the application rather than the parallelism. This is beyond mere multithreading. Codes parallelized with SET become full-featured message-passing based codes that work in embedded environments, workstations, clusters, supercomputer, and the Cloud. SET not only makes parallel programming much simpler, but it encourages industry-accepted modular programming, such as MVC and encapsulation.
But that’s not all. SET’s unique advantage over any parallel programming tool today is that as an implementation framework, the SET design expresses the most fundamental, the simplest, and most efficient way to make use of a parallel computer from a client device. In fact, with SET (utilizing the already available Gigabit Internet speed), you can design a fully interactive HPC application that runs on your laptop or desktop, and which interactivly utilizes thousands of cores in the Cloud. If you are a SaaS HPC application creator, imagine the strength you can add to your HPC application providing it with interactive steering and control capabilities. With SET, it is quite simple to accomplish because interactivity capability comes naturally with SET’s unique framework design. So as you can see, the design of SET is a major quantum leap beyond what came before it.
Please stay tuned to some interesting ideas we have for SET in the future… Can you imagine playing a video game that feels and looks like a movie on your iPad, laptop or a TV connected to your game console, with a 1,000-core support for a high-precision real-time physics engine in the Cloud?… SET + Gigabit Internet + Cloud can change a lot of things...
Can you think of a next-generation Killer App?...