By Peter Varhol
Most who have heard anything about cloud computing believe that it has no impact on engineers. In reality, we use cloud computing almost every day, for tasks mundane and highly technical. And in many cases, it can be an appropriate solution to many engineering computing needs.
Maybe you think you aren’t interested in cloud computing, but chances are that you use cloud applications already. If you use Gmail, Hotmail, Yahoo Mail or any of the Google applications, you are already well into the cloud. Store your photos on Picasa, Snapfish, Flickr or Shutterfly? You’re also using the cloud, albeit probably for personal rather than professional purposes.
The question is whether the cloud can meet the needs of engineers in design and analysis work. Can cloud computing help you with your job? You may already be using Gmail and Google Apps at work, for example, but for supporting roles. Can the same approach you use with other software work on the most important software you use?
Current Amazon EC2 cloud pricing enables users to rent even server clusters at far less than purchasing comparable systems.
There are a number of different technologies that fall under the umbrella of cloud computing. At the most basic level, cloud computing involves using applications that run across the Web—in “the cloud,” so to speak. Web email services, Salesforce.com, Google Apps and a host of other applications fall into this category.
Running engineering software in the cloud may be the future, but the future is not yet here. There are too many open questions to fully move to a cloud model for most engineering groups.
Still, there are ways you can start using the cloud right now, and good reasons for doing so. First, you can usually get more computational power out of renting servers in the cloud than you can from your desktop, and the cost of doing so is low. Second, renting software is ultimately what vendors want, so that they can even out their revenues—and they will make it compelling to do so. But you need to prepare and build experience in cloud computing. Here’s how:
But a second category that has emerged over the last couple of years is capacity on demand, best characterized by Amazon’s EC2 cloud. These clouds are simply empty servers that users can “rent” for a set period of time, for a price that varies depending on the type of server and quality of service. Typically, it costs just a few cents an hour. Users create a virtual machine of their application and upload it to the server, where it executes.
A third category is also capacity on demand, but with significant support software, including operating systems, application frameworks and databases. Users run their applications without having to include all of the support software and services into the virtual machine. Microsoft’s Azure and Google’s App Engine fall into this category.
A variation of this category is for a commercial software vendor to operate its own cloud with its own application, inviting engineers to rent time on their servers if they can’t afford to purchase a license outright, or if their needs are only occasional.
Here’s where it gets interesting for design engineers. As more vendors look at how they might rent software to customers with only occasional needs or with limited budgets, it may make sense for these vendors to operate their own data centers running their software. While this sort of software rental is in its infancy, it has significant potential for growth, if in fact they can successfully deliver design features and performance over the Web.
Large and geographically distributed design shops might also set up their own private cloud for internal use. These shops have multiple groups with similar needs, and it may make sense to consolidate engineering software under a single umbrella, and make it available to users over the internal network.
There’s some attraction to using design and analysis software in the cloud. One significant advantage is versioning: Engineering customers are always on the latest version of the software, and vendors manage upgrades on their own servers. Another is the pay-as-you-go model, which may appeal to the corporate financial types who prefer writing a series of small checks rather than one large one. Last for distributed teams, it provides an easy way to share files and combine design efforts.
Running in the Clouds
Even if your favorite design and analysis software were installed and available on cloud servers, you probably won’t just drop your existing licenses and sign up for the same software delivered on the cloud. There are some downsides, and they are significant enough to bring pause to anyone eying the cloud as a solution to existing problems:
The first is performance. You would think that servers on the cloud might be more powerful than those systems available at your desk. That may be true, but remember that multiple users are sharing these servers. Plus, there is the inevitable lag caused by the user interface. Engineering software is often visually detailed, and that means that a lot of bits have to go over the Web to reach the engineer’s desktop. Some vendors are responding by rearchitecting their software in a client/server configuration to run computations in the cloud and display results directly on the engineering workstation. Others are providing the ability to do some types of design through a browser.
Then there’s a matter of security. You and your organization probably want to protect your files and data from unauthorized access. With that data normally residing outside the organization, and stored on systems that are administered by another company, there may be legitimate worries of having designs lost or stolen.
There may also be cultural issues involved. Most organization want a certain amount of control over their intellectual property, and that typically means that designs don’t go outside the company. There may be a greater sense of control and protection by having design data on the box in the next room rather than in an indeterminate location some distance away.
Betting on Improvements
There are vendors who are working to address these limitations and make the cloud a better place for engineering applications. Autodesk has been developing browser-based applications that are currently in development, including Autodesk Project Twitch, Autodesk Project Butterfly, Autodesk Project Dragonfly and Autodesk Project Showroom. For example, Project Butterfly is an Autodesk labs project that allows users to edit and collaborate on AutoCAD drawings using a web browser, while Project Dragonfly does the same thing with floor planning software. A shipping product, AutoCAD WS, is a mobile version of AutoCAD for iPad and iPhone.
Solidworks is also dipping its toe into the cloud. At the company’s conference last February, it previewed a virtualized version of the new SolidWorks release running on a Netbook computer, and made statements of its commitment to the cloud.
The MathWorks MATLAB language lets engineers dynamically deploy a computation to the cloud for execution.
Special-purpose middleware is also making it possible to run applications that have been tuned to work with that software. Middleware from companies such as Acceleware (Acceleware.com, Calgary, Canada) and ScaleMP (ScaleMP.com, Cupertino, CA) sit between the operating system and the application, and use both general-purpose and industry-specific algorithms to take parts of the application execution and break them into parallel components. Those components can then execute on the underlying Windows operating system in threads that run in parallel on separate cores. Because you can rent as many processors and cores as you like on a cloud, this makes it possible to take advantage of far more cores than may be available in-house.
On the software side, the MathWorks (MathWorks.com, Natick, MA) MATLAB language provides a keyword that enables parallel execution of defined parts of the code. MATLAB also enables the programmer to define the execution environment, even defining a specific cloud such as the Amazon EC2. By configuring that location for execution, the programmer can ensure that the application is optimized for the cloud.
Managing engineering workloads in the cloud is also a significant challenge. Adaptive Computing (AdaptiveComputing.com, Provo, UT) is attempting to make the cloud more amenable to engineers requiring HPC services. Its Moab Cluster Suite provides an engine working in conjunction with cloud infrastructure that integrates scheduling, managing, monitoring and reporting of cluster workloads. Its companion product, HPC Suite, changes a node’s operating system on the fly in response to workload needs.
While you may not be ready for the cloud today, it is likely to save you money and offer better convenience and collaboration features in the future. The time when cloud computing serves all of our engineering design needs is a long way off, but there can be real benefits to getting started now.
Contributing Editor Peter Varhol covers the HPC and IT beat for DE. His expertise is software development, math systems, and systems management. You can reach him at DE-Editors@deskeng.com.