If you’ve followed cloud computing over the last few years, you’ve probably noticed an explosion of “as a service” delivery types, ranging from Infrastructure (virtual machines, storage, and networking) to Software (applications), and just about every niche in between. All the while you are still searching for the model that will solve your actual problem – how to develop, package, and consume your cloud HPC applications.
The most common commodity public cloud offering is of course Infrastructure-as-a-Service, which delivers virtual machine instances that you can configure for eventual development and execution of your applications. While elastic and service-oriented, this model requires too much time and skills investment up front before you can even get to the task at hand. This includes installing development tool chains, configuring storage and networking, and scripting common tasks for future repeatability without having to reinvent the wheel. Because these instances run in virtualized environments, they in turn suffer from hypervisor overhead and performance penalties that can rob efficiency and increase compute costs at a staggering rate. In short, Infrastructure-as-a-Service for HPC is very much a do-it-yourself approach, which prolongs time to value and nets questionable return on investment versus just building the whole stack in-house.
On the other end of the spectrum is Software-as-a-Service, where you can choose to run applications from a service catalog, provide data sets, and execute in a batch fashion. This is how HPC “solver” applications are meant to be run, meaning quicker results and less up-front investment to get things going. The major drawback is of course that if the provider doesn’t have the application you need, you are out of luck. If you’re a developer, it’s best to just think about other options, since there is virtually no customization in this model. Enter Platform-as-a-Service (PaaS), which gives you the best of both worlds: SDLC and customization, as well as batch-driven processing for multi-step heterogeneous HPC pipelines. The first true HPC-optimized PaaS offering is JARVICE, designed to meet the challenges you face head on. As a developer, you enjoy rapid provisioning of “best practice” environments without dealing with infrastructure details. In fact, the Nimbix Application Environment (NAE) technology delivers the exact same stack for both development and execution, complete with bare-metal performance and “behind the firewall” security and isolation. With JARVICE, you provision an NAE to build your application, then package it up for future execution (in an identical NAE). You can then test it privately in a staging mode, before releasing it for either your own use or public consumption into the Nimbix NACC service catalog. Need to update it to a new version, even frequently? No problem, you can do this without recreating the entire process again – JARVICE has a built-in update function that picks up where you left off with the last released version of the application. In the meantime, users keep running the current version while you update it, and automatically inherit the new version for their next run once it’s done. To keep things secure, JARVICE automatically tears down and discards all ephemeral data after each build or execution job. NAE and application layers are created on demand when needed, in seconds, from pristine templates. From the user perspective, the platform delivers applications via API or web portal. You can even create multi-step heterogeneous workflows, running sequentially or in parallel across diverse accelerator types such as GPU, FPGA, and DSP. JARVICE provides private parallel data storage for data sets and intermediate objects, as well as Infiniband for MPI applications.
In summary, JARVICE’s Platform-as-a-Service model moves the value up the stack so you can immediately focus on solving problems rather than configuring instances to eventually get to the task at hand. This results in less time and money on “setup” and faster results for your cloud HPC applications. Whether you are developing or customizing your own applications for eventual use, building applications for public consumption, or just solving the world’s most complex (and important) problems in a convenient pay-per-use model leveraging the NACC engine, the JARVICE platform delivers.