|
RTPatch Overview
Byte-Level Differencing
Platforms
Features
What's New
Specialized Editions:
RTPatch Server
RTPatch for Mac
RTPatch Embedded
Resources:
Pricing and Evaluation
Multi-core Support
RTPatch for Games
Examples of Use
RTPatch OEM
20 Years of RTPatch
|
RTPatch Server: Multi-core Enabled
RTPatch Server features multithreaded byte-level differencing, dramatically reducing Build time. Select results from our in-house test suite are shown below. Our test suite is gathered from real-world applications of its byte-level differencing products.
Note that minimum run time is the main focus of these tests. Smaller sized patch files are possible under different settings of the RTPatch build program.
Several file pairs of note are listed below showing application speedup results, on an Intel dual quad-core machine (dual Intel Xeon Quad Core W5590 @ 3.33Ghz with hyperthreading enabled):
Description: US Postal Service Data
Description: Structured Data File (proprietary)
Description: Japanese Map Data
* 16 threads used to take advantage of Intel Hyper-Threading (see Goal #4 above).
The Japanese city map data results are of particular note, as it is this file pair that was a primary driving factor in creation of a multicore version of RTPatch Server. Provided by an existing Fortune 500 customer, this data file suffered from poor simple compression results (less than 30%), as well as exceedingly long runtime in the single threaded versions of RTPatch Server. Though an optimal patch output of 77.8% compression is achievable with RTPatch Server, the results shown above are presented both to show variation, as well as for test expediency - the 77.8% compression case also benefited significantly from new version 5, yielding a 7.26x faster speedup at 16 threads, thus reducing the build time to several hours, down from over a day when using a single thread/core.
For more statistics on any file set, please contact Pocket Soft.
We achieved several goals with the conversion of RTPatch Server to multicore:
- Sustained CPU Utilization. Given sufficiently sized inputs and using all available cores, CPU utilization plateaus of 99% are common, with an average CPU utilization during the differencing phase, exceeding 90% throughout the differencing step, demonstrating a high level of sustained concurrency.
- No Loss of Patch Efficiency (i.e., patch size). Less than a +/- 1% variation in patch size was observed in the general case, when comparing single threaded differencing to multithreaded differencing.
- Overall Application Speedup. In the typical, real-world cases of GB+ sized files, RTPatch Server 5 reached up to 7x faster build times on an 8 core system, achieving the stated speedup goal of n-1 times faster. Average speedup of about 4x faster on an 8 core system was recorded for all tests cases, which included small files with little to no multithreading possible.
- Take advantage of Intel® Hyper-Threading when available. The max speedup that enabled RTPatch Server to achieve Goal #3 was due in part to the use of Hyper-Threading on the test machine. The extra threads served as "slack threads" to utilize spare cycles on otherwise idle cores.
|