Battle Royale: GeoCompressor Windows vs Linux

Despite our extensive unit and system tests for the ECWJP2 SDK, few head-to-head comparisons have been done across platforms, at least from a performance point of view over long running processes. Although we have a number of very high performance machines from HP available, customers ultimately want a baseline from which they can compare.

announcerSo today we will be using Amazon AWS “in the cloud” to spin up two identical EC2 M3.Xlarge instances and benchmark GeoCompressor head-to-head to find the undisputed winner of ECW / JPEG2000 compression throughput.

Introducing first in the blue corner …

  • Amazon EC2 xlarge instance
  • Windows Server 2012 R2 (full updates as of 17th Dec 2014)
  • SSD instance storage, provisioned 3000 IOPS, formatted as NTFS
  • Fighting out of US East Virginia data center (us-east-1d)
  • Geocompressor 2015 release

Followed by the contender in the red corner ….

  • Amazon EC2 xlarge instance
  • Amazon Linux AMI kernel (full updates as of 17th Dec 2014)
  • SSD instance storage, provisioned 3000 IOPS, formatted as Ext4
  • Fighting out of US East Virginia data center (us-east-1a)
  • Geocompressor 2015 release

 Tale of the tape

Artificial benchmark scores were recorded to discount any OS level misconfiguration that might unfairly favour one competitor. As the GeoCompressor test is of encoding only, only the Write IOPS is really of concern and as expected matches the Provisioned IOPS of 3000 in the Amazon Console. Based on these results together with a double check of the AWS Provisioning console both machines can be considered identical.

 

Blue (Windows)

Red (Linux)

Geekbench 3 Single-Core score x86 2,481* 2,495*
Multi-Core score x86 5,748* 5,712*
Single-Core score x64 2,608* 2,671*
Multi-Core score x64 6,016* 6,197*
FIO 2.1.5 Random Write IOPS SSD 3,081 3,073

Early Bets by the Engineering Team

The following shows the spread of bets by each engineer who wanted to participate in our fun little wager. Needless to say, Windows was the early favourite due mainly to the increased amount of specific optimizations made over the years.

  • Windows by 30%
  • Windows by 10%
  • Windows by 7%
  • Windows by 5%
  • Windows by 3%
  • Linux by 5%
  • Linux by 8.6%
  • Linux by 10%

In-progress Screenshots

Win v linux in progress1

Results

Round 1 – Multi-threaded ECW encoding

Input

 File type:  Test Pattern Image Descriptor
Dimensions:  500,000 x 500,000 px  (250.000 gigapixel)
Structure:  3 Band, RGB UINT8
Opacity band:  false
Filesize:      698.49 GB uncompressed
Encoding threads:    4
Windows Icon_Awards_ColorLinux – WINNER +32%
 Duration:       3 hours 30 mins 51 secs

  • Read:         34 mins 53 secs
  • Write:        2 hours 39 mins 50 secs
  • Reassembly:   14 mins 55 secs

Target Ratio:   15:1
Actual Ratio:   18.7:1
Throughput:     56.6 MB / sec

Duration:       2 hours 23 mins 3 secs

  • Read:         18 mins 11 secs
  • Write:        1 hours 49 mins 8 secs
  • Reassembly:   13 mins 38 secs

Target Ratio:   15:1
Actual Ratio:   18.7:1
Throughput:     83.4 MB / sec

Output

 File Type:      ECW v2
Data Writer:    ECW JPEG2000 SDK v5.2
Dimensions:     500,000 x 500,000 px
Structure:      3 Band, RGB UINT8
Opacity band:   false
Projection:     EPSG:4326
File Size:      37.28 GB

Round 2 – Single-threaded JPEG2000 encoding

Input

 File type:  Test Pattern Image Descriptor
Dimensions:       500,000 x 100,000 px  (50.000 gigapixel)
Structure: 3 Band, RGB UINT8
Opacity band:  false
Filesize:      139.70 GB uncompressed
Projection:  EPSG:4326
Encoding threads:   1

Icon_Awards_ColorWindows  – WINNER +15%

Linux

Duration:       1 hours 43 mins 2 secs

  • Read:         8 mins 29 secs
  • Write:        1 hours 28 mins 59 secs
  • Reassembly:   1 mins 56 secs

Target Ratio:   15:1
Actual Ratio:   22.5:1
Throughput:     23.2 MB / sec

 Duration:       2 hours 1 mins 36 secs

  • Read:         7 mins 32 secs
  • Write:        1 hours 49 mins 30 secs
  • Reassembly:   49 secs

Target Ratio:   15:1
Actual Ratio:   22.5:1
Throughput:     19.7 MB / sec

Output

 File Type:      JP2
Data Writer:    ECW JPEG2000 SDK v5.2
Dimensions:     500,000 x 100,000 px
Structure:      3 Band, RGB UINT8
Opacity band:   false
File Size:      6.20 GB

 

Round 3 – Multi-threaded JPEG2000 conversion to ECW

Input

 File type:  JP2
ImageDimensions: 500,000 x 100,000 px (50.000 gigapixel)
Structure: 3 Band, RGB UINT8
Opacity band: false
Filesize:      6.20 GB (139.70 GB uncompressed)
Encoding threads:       4

Windows

Linux

Duration:       7 hours 37 mins 45 seconds

  • Read:         6 hours 54 mins 52 secs
  • Write:        39 mins 45 secs
  • Reassembly:   2 mins 49 secs

Target Ratio:   15:1
Actual Ratio:   18.6:1
Throughput:     5.3 MB / sec

Duration:       7 hours 32 mins 19 seconds

  • Read:         7 hours 9 mins 25 secs
  • Write:        19 mins 56 secs
  • Reassembly:   2 mins 25 secs

Target Ratio:   15:1
Actual Ratio:   18.6:1
Throughput:     5.3 MB / sec

Output
File Type:      ECW v2
Data Writer:    ECW JPEG2000 SDK v5.2
Dimensions:     500,000 x 100,000 px
Structure:      3 Band, RGB UINT8
Opacity band:   false
File Size:      7.51 GB

 Performance per Dollar

 If we change the winner from being the fastest to the one which is cheapest based on the hourly EC2 charge and assuming all other hardware costs are the same, Linux is the clear winner:

  • xlarge Windows = $0.532 / hr
  • xlarge Linux (Amazon) = $0.28 / hr
Windows Linux
Round 1 $1.86 Icon_Awards_Color$0.64 – WINNER
Round 2 $0.93 Icon_Awards_Color$0.56 – WINNER
Round 3 $3.99 Icon_Awards_Color$2.10 WINNER

 Conclusion

While Linux was the clear winner in these three small tests, many other variables contribute to the platform decision. The product team of both GeoCompressor and ECWJP2 SDK continues to optimize both so there is no “preferred platform” and of course YMMV!

The biggest unknown not tested here is the decoding speed differential that might be present for the variety of formats supported by GeoCompressor. Decoding (or Read Time) is always the bottleneck for compressing to ECW so if you are really concerned about performance, ensuring your input data is formatted correctly and stored on a drive with fast Read I/O will likely yield much bigger gains than merely swapping server platforms.

  • Last Chance to Save on HxGN LIVE!

    Act now before it's too late! Register for HxGN LIVE before 28 May to get our Last Chance Rate of just $1,049.

  • Recent Posts

    More