Since 1986


 
  RTPatch® Multi-core Support

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:

  1. 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.

  2. 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.

  3. 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.

  4. 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.

Copyright © 2011, Pocket Soft, Inc. All Rights Reserved.
RTPatch, Postulate5, UnThread and Pocket Soft are registered trademarks of Pocket Soft, Inc.
All other trademarks are the property of their respective owners.