After taking the helm of Rogue Wave Software in 2008, CEO Brian Pierce embarked on a plan that turned his company into the largest independent provider of cross-platform tools for high performance computing. We were curious how the transformation happened, so we asked:
Q: Many of us remember Rogue Wave as being in C++ development tools, how did you decide to make the switch into high performance computing?
A: It’s interesting, it was a natural migration. As all healthy software companies do, we were looking for new ways to help our customers with their development challenges, so we looked at what kind of applications they built with our products. Not surprisingly, they were building business-critical, cross-platform applications in C++. But when we looked a little deeper, we realized that they were using C++ because they needed those applications to run fast – and a great many of them had used our tools to help them with multi-threading. Our customers were actually building high performance applications.
Q: yes, that makes sense, but why did you acquire Visual Numerics, a data analysis company?
A: Again, that had a lot to do with the kinds of problems our customers were trying to solve. There’s an interesting virtuous cycle between compute power and the kinds of things you can do with that power. Organizations that have supercomputers have unconsciously been in this cycle. If you get more compute power, you can solve tougher challenges. If you start addressing harder challenges, you need more compute power. Data analysis is squarely in this cycle. The more compute power you get, the more interesting things you can do with your data. For example, if you’re an oil and gas company, you can perform simulations to help you find areas for exploration. If you’re a wireless carrier, you can dynamically forecast which areas are likely to require a spike in bandwidth. Both of these kinds of assessments are done using sophisticated math and statistics. And both require significant compute power. Providing our customers cross-platform, high performance, numerical libraries, allows them to extend their applications to do amazing things… that their competition can’t do. So the ability to embed math and stats with our IMSL Numerical libraries gives these organizations significant competitive advantage.
Q: And then you acquired TotalView Technologies?
A: Yes, well all of your readers know how difficult it is to build parallel code! It almost goes without saying that logic and memory issues are so much more difficult in a parallel environment than in a sequential one. Having developers attempt to build high performance, parallel apps without the benefit of a highly visual, scalable debugger is almost cruel. It’s intensely frustrating, particularly when some of those defects seem non-deterministic. And from a business perspective, it’s incredibly unproductive. Some of these problems are so hard to find that it causes serious delays and missed deadlines. TotalView, MemoryScape and ReplayEngine radically simplify the process of debugging and analyzing memory and logic issues. Our engineers told us that ReplayEngine’s ability to record the execution of a program and play it back once a failure happened, makes finding those hard to reproduce errors much easier. And our customers agree!
Q: And most recently, you acquired another company we’ve been watching, Acumem.
A: Again, it’s all about making developing parallel apps easier and more productive. One of the chief ways to gain greater performance is to look at how the code executes, find areas where you’re spending a lot of time, and optimize cache access in that section of code. Acumem’s ThreadSpotter does that and more and it does it in a very approachable way. It’s very visual, points out exactly where in the code the issue is, and gives very specific guidance on how to fix it. It’s completely unlike other performance profilers that provide a lot of data, but not a lot of help. So, it makes developers that are performance experts that much more productive. And it even helps developers that are not experts optimize their code and grow their expertise while doing it.
Q: So now what’s next?
A: We’re in a great place. We’re fortunate to have a large, highly skilled development staff and the luxury of being able to devote a very large proportion of our financial resources to R&D. At the end of the day, our goal is to provide a portfolio of products that help make the very difficult task of developing, debugging and optimizing high performance applications, a little easier. Not only for the traditional HPC community, but also for enterprises that are finding that they have no longer have the ability to throw faster CPUs at their applications to get them to perform better. They’re realizing that they have to modify their applications to leverage parallel architectures – but they need a little help getting there.
We know that for both of these communities, developing parallel, data intensive applications is hard. We’re just trying to make it a little easier.
For more information about Rogue Wave’s products, including how to download and evaluate them, see http://www.roguewave.com/products.aspx.