PontusVision Thread Manager™ improves system performance by up to 270% without any changes to hardware or software. This patent pending technology simulates application behavior in any hardware platform, and provides optimised ways to pin software threads to hardware cores.
(See our how it works video here: How it Works)
(See a demo of our GUI here: GUI Demo)
The simulation results can be applied to any modern operating system, any modern multi-CPU server architecture, and any computer language.
✓ 270% performance gains
✓ App tuning in minutes, not weeks
✓ No hardware changes
✓ No code changes
✓ Linux, Windows, and soon AIX
✓ Java, C, C++, .NET, Objective C, Assembly apps
HOW Does PontusVision Thread Manager ™ Work?
PontusVision Thread Manager ™ has two modes of operation: Passive-modeling, and Self-tuning:
When running in modeling mode, thread manager requires three GUI-driven user tasks:
- Choose a target hardware platform
- Define the data relationship and performance characteristics of the software components
- Run the simulation
Any server can be modeled, allowing users to run simulations without having the target hardware available.Through an easy-to-use interface, users can build a library of various target hardware platforms.
Software component templates can be easily configured and put in a library. Users can drag and drop pre-built components from the library into a canvas, and draw lines between them to indicate a data relationship. The simulator quickly narrows down the solution set and finds an optimized solution by using a patent pending set of algorithms.
After the simulation is run, the GUI shows the best cores to pin your application threads. This works very well for systems that don’t change their loads significantly during the day. However, for systems that change frequently, the self-tuning mode allows for the system to be continuously optimized.
When running in self tuning mode, all the user has to do is run an agent in the target hardware, and point that agent back to the PV Thread Manager server. The agent uses a regular expression to select which applications to pin, and automatically starts applying steps 1-3 above whenever it senses a significant enough change in the environment. The agent is then capable of applying the tuning strategy in real-time, moving any threads in real-time (step 4).
WHAT Happens Under the Covers?
Modern operating systems (OSs) are not very good at managing threads for performance. OSs are typically configured to balance the load across various CPUs rather than to focus on application performance. When dealing with latency-sensitive applications, balancing the load across various CPUs causes the latency to increase significantly.
As an example, in a Four-CPU machine where the OS just distributes the red threads across CPUs, the cost of moving data between the threads can be several times greater than in the system with the green threads. For many applications, constraining the threads to a single CPU can significantly increase performance, but only as long as the CPU doesn’t get overloaded.
That’s where the power of the PontusVision ThreadManager™ helps simulate the best thread pinning layout. PontusVision ThreadManager™ patent pending technology allows users to quickly come up with optimal thread allocation strategies within seconds. This saves weeks or months of test cycles to empirically try different thread allocation combinations.
WHY Use PontusVision Thread Manager™?
PontusVision Thread Manager™ improved a Tier 1 investment bank’s Foreign Exchange (FX) spot pricing system performance by 270%.
The graph below shows the latency of the system (the lower the line, the better the performance). It shows the impact of different operating systems, Java virtual machines, and the impact of PontusVision Thread Manager™ on the system.
The 270% performance improvement can be seen by taking the difference between the peak values for the red and yellow lines.
The only difference between these lines was the use of PontusVision Thread Manager™ results on the system.
Percentiles end to end latency