Every development team faces the question of when, how, and why to redesign a product. Weighing the cost and benefits of designing a new user interface (UI) versus making an entire architectural change. A few years ago, the TotalView team made the decision to update the user interface and at the same time redesign the underlying architecture.
The old UI was starting to look a little dated and the architecture, while quite functional, had some challenges. We felt these were important enough to update to support both our strong existing base of customers in the high performance computing (HPC) marketplace and our growing set of commercial customers in industries like oil and gas, finance, and tool vendors.
If you build it…
To build the new UI we decided to go with the open source version of Qt. It allowed for color coding of source code, dockable windows, the ability to integrate in 3rd party products easier, and many other features we could take advantage of.
For us this wasn’t enough because we also felt it was important to make the debugger more modular so that the UI would be decoupled from the debug engine. This was important for several reasons:
• Provides better performance and scalability for HPC users
• Targets a broader range of customers
• Creates a more effective debugger on all platforms
… they will come
In general, this boils down to the fact that our powerful new debug engine can be built specific to the target we are debugging and the UI can be rebuilt to any host that someone uses as a front end. This is a huge advantage when debugging remote systems – which many of our customers do.
The new architecture looks like the picture below and to do this, the TotalView development team had to develop an event engine that would pass information between different applications where before everything stayed in one application. This took a good deal of effort in understanding what needed to be passed and the specific timings but overall this made for a much more efficient and capable product. This architecture also made it easier for us to turn one product (TotalView) into two, TotalView for HPC and CodeDynamics that both support the new UI.
That’s the product evolution in a nutshell and we’re excited to show you the results. If you’re in California next week, come see us at the GPU Technology Conference, where you can see a demo of both TotalView for HPC and CodeDynamics and learn some tips and tricks for debugging multi-GPU and multi-node GPU applications – details here.