4
Case Study Optimizing Image Processing JD.com Speeds Image Processing 17x As China’s largest online direct sales company, JD.com handles several billion product images every day. To do this, the company developed its own distributed file system, JD File System* (JFS*). By using Intel® C++ Compiler and Intel® Integrated Performance Primitives (Intel® IPP), JD.com sped up its image processing 17x— handling 300,000 images in 162 seconds instead of 2,800 seconds. Business Requirements JD.com processes more online transactions than any other company in China, with a market share of 54.3 percent in the second quarter of 2014, according to iResearch, a third-party market research firm. The company's business has grown rapidly, from offering approximately 1.5 million SKUs in 2011 to approximately 25.7 million in 2013. Today, JD.com must handle petabytes of data, which takes an efficient, robust, distributed file system. Image System Overview To handle its massive data, JD.com developed JFS*, a distributed cache system and high-speed, key-value storage system that formed a solid foundation for its fast-growing e-commerce business. As a distributed storage system designed for excellent performance, reliability, and scalability, JFS provides three types of in- terfaces: binary large object storage, file system storage, and block storage. JFS supports many of JD.com's core services including a public/private cloud, an image system, a logistics exchange platform, and instant messaging file sharing storage. Figure 1 shows the overall architecture. Product images might be the single most important aspect of an e-commerce website like JD.com. Without the ability to touch, hold, smell, taste, or otherwise handle the products they're interested in, potential customers have only images to interact with. In JD.com, every product is displayed and described using high-, medium-, and low-resolution images in diverse formats (e.g., JPG, GIF, and PNG). Every day, billions of product images must be processed and stored in the JFS, which requires great performance and capacity. To cut storage costs, JD.com usu- ally compresses large images into smaller ones. Intel® C++ Compiler, Intel® Integrated Performance Primitives High-Performance Computing

Optimizing Image Processing · are highly optimized for performance using Intel® Single Instruction Multiple Data instruction sets. Tuning Performance GM is an open-source image

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Optimizing Image Processing · are highly optimized for performance using Intel® Single Instruction Multiple Data instruction sets. Tuning Performance GM is an open-source image

Case Study

Optimizing Image Processing

JDcom Speeds Image Processing 17x

As Chinarsquos largest online direct sales company JDcom handles several billionproduct images every day To do this the company developed its own distributedfile system JD File System (JFS) By using Intelreg C++ Compiler and Intelreg IntegratedPerformance Primitives (Intelreg IPP) JDcom sped up its image processing 17xmdashhandling 300000 images in 162 seconds instead of 2800 seconds

Business Requirements

JDcom processes more online transactions than any other company in Chinawith a market share of 543 percent in the second quarter of 2014 according toiResearch a third-party market research firm The companys business has grownrapidly from offering approximately 15 million SKUs in 2011 to approximately257 million in 2013 Today JDcom must handle petabytes of data which takesan efficient robust distributed file system

Image System Overview

To handle its massive data JDcom developed JFS a distributed cache systemand high-speed key-value storage system that formed a solid foundation for itsfast-growing e-commerce business As a distributed storage system designed forexcellent performance reliability and scalability JFS provides three types of in-terfaces binary large object storage file system storage and block storage JFSsupports many of JDcoms core services including a publicprivate cloud animage system a logistics exchange platform and instant messaging file sharingstorage Figure 1 shows the overall architecture

Product images might be the single most important aspect of an e-commercewebsite like JDcom Without the ability to touch hold smell taste or otherwisehandle the products theyre interested in potential customers have only imagesto interact with In JDcom every product is displayed and described using high-medium- and low-resolution images in diverse formats (eg JPG GIF and PNG)Every day billions of product images must be processed and stored in the JFSwhich requires great performance and capacity To cut storage costs JDcom usu-ally compresses large images into smaller ones

Intelreg C++ Compiler Intelreg Integrated Performance Primitives

High-Performance Computing

Figure 1 JFS architecture

ldquoThrough close collaborationwith Intel engineers weadopted the Intelreg C++

compiler and Intelreg IntegratedPerformance Primitives libraryin our online image processingapplication The application

performance improvedsignificantly and our cost ofoperations reduced accordinglyThis is a typical case demonstratinghow technology creates valuerdquo

mdashLiu HaifengChief Architect of Cloud Platform and Director

of the System Technology DepartmentJDcom

Optimizing Impage Processing 2

A big challenge for the company is meet-ing image processing requirements suchas resizing sharpening color reducingor adding special effects to images Orig-inally all image processing was achievedusing GraphicsMagick (GM) and theGNU C Compiler (GCC) which con-sumed a lot of CPU time and seriouslyimpacted JDcomrsquos business resources

Intel worked closely with JDcom engineersto help them analyze the bottlenecks intheir image processing application and op-timize them by using Intelreg Integrated Per-formance Primitives and Intel C++ Compileron the Intelreg architecture platform

Intel Tools Boost Image ProcessingIntel C++ Compiler delivers strong per-formance on compatible processors Itprovides extensive optimizations for thelatest Intelreg processors including IntelregXeonreg processors and Intelreg Xeon Phitradecoprocessors Its patented automaticCPU dispatch feature optimizes code forthe current running processor and runscode optimized for specified processorsidentified at application runtime IntelC++ Compiler also comes with broad

support for current and previous C andC++ standards plus popular extensionsincluding C++11 C99 and OpenMP 40

Intelreg IPP is an extensive library of soft-ware functions for media and data process-ing It provides thousands of frequentlyused functions in various domains in-cluding image processing These functionsare highly optimized for performanceusing Intelreg Single Instruction MultipleData instruction sets

Tuning Performance GM is an open-source image processingsystem that includes a robust efficientcollection of tools and libraries to sup-port reading writing and manipulatingof images in more than 88 major formatsAs the fundamental part of JDcomrsquosimage processing application GMprocesses a large number of images onthe fly every hour Working with IntelJDcom put great effort into optimizingGM and relevant image processing librarieswith Intelreg Software Development Tools

The JDcom engineers wanted to iden-tify both performance bottlenecks andpotential areas of optimization for their

Analyzing and Optimizing Performance toRemove Bottlenecks and Cut Response Time

image processing application runningon Intel Xeon processor E5-2620-basedsystems Since image resizing is one ofthe most popular and time-consumingoperations in the application they useda benchmark to measure applicationperformance on Intel Xeon processorsThe benchmark applies to situations inwhich 300000 image files are resized in500 concurrent instances The metricsrecorded include the time the applica-tion took to complete the resizing CPUconsumption the number of image filesresized per second and average re-sponse time

The JDcom engineers recompiled GM andsome image processing librariesmdashinclud-ing libturbojpeg libpng and libwebpmdashwith GCC and the Intel C++ Compiler Theythen benchmarked the application onIntel Xeon processor-based systems Theuser times showed that the libraries gen-erated using Intel C++ Compiler performed12x faster than the GCC-generated librariesThe Intel C++ Compiler-generated li-braries were observed to reduce CPU con-sumption from 100 percent to 94 percentIn addition average response time was re-duced 62 percent Response timedropped from 2943 ms to 378 ms Queries per second (QPS) increased from100 to 1322

JDcom engineers identified that image re-sizing is a hotspot in GM and implementeda new function ScaleImage_ipp which isan IPP-optimized version of the ScaleIm-age function in GM which changes thesize of an image to specified dimensionsIts functionality is essentially the same asScaleImage A few IPP function calls wereadded to replace original code snippetsSince more than 95 percent of the imagesprocessed by GM in JDcom are BMPsJPEGs or PNGs the current implementa-tion of the ScaleImage_ipp function sup-ports only these three formats Aconditional jump at caller sites was addedto the ScaleImage function that deter-mines the format of images to be resizedThe ScaleImage_ipp function is executedfor BMP JPEG and PNG images while theScaleImage function is executed for allother formats Table 1 shows a code snip-pet in the ScaleImage and ScaleImage_ippfunctions side-by-side

Table 1 Code comparison of the ScaleImage and ScaleImage_ipp functions

Table 2 JDcom benchmark results

Figure 2 Performance gains from Intel C++ Compiler and Intel IPP

Optimizing Impage Processing 3

IPP library was added the applicationachieved a speedup of 17x compared tothe original GCC-generated code

With accelerated performance JDcomcan process more images faster and at alower latency JDcom achieved signifi-cant cost savings through efficient systemutilization and speeding up resource-in-tensive code

In August 2015 Intel announced com-munity licensing for Intelreg PerformanceLibraries including Intel IPP Communitylicensing allows individuals companiesand organizations to use these powerfuland award-winning performance librariesto create better more reliable and fastersoftware applications at no cost

The ScaleImage_ipp function led to aconsiderable performance improve-ment according to JDcomrsquos benchmarkresults (Table 2) CPU consumptiondropped to 85 percent QPS increasedto 1856 This means that JDcom canprocess more requests using the samenumber of servers In addition JDcomcustomers see images resized on Webbrowsers much more quickly

SummaryJDcom got extraordinary performancefor its image processing application withIntel C++ Compiler The compiler im-proved the performance of JDcomimage resizing code 12x on Intel Xeonprocessor-based servers And after Intel

Intel technologiesrsquo features and benefits depend on system configuration and may require enabled hardware software or service activation Performance varies depending on system configuration No computer system can be absolutely secure Check with your system manufacturer or retailer or learn more at wwwintelcom Intelrsquos compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors These optimizations include SSE2 SSE3 andSSSE3 instruction sets and other optimizations Intel does not guarantee the availability functionality or effectiveness of any optimization on microprocessors not manufactured by Intel Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors Please refer tothe applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice Notice revision 20110804 Software and workloads used in performance tests may have been optimized for performance only on Intel microprocessors Performance tests such as SYSmark and MobileMark are measured usingspecific computer systems components software operations and functions Any change to any of those factors may cause the results to vary You should consult other information and performancetests to assist you in fully evaluating your contemplated purchases including the performance of that product when combined with other products For more information go to wwwintelcomperfor-mance Intel does not control or audit the design or implementation of third party benchmark data or Web sites referenced in this document Intel encourages all of its customers to visit the referenced Web sitesor others where similar performance benchmark data are reported and confirm whether the referenced benchmark data are accurate and reflect performance of systems available for purchase This document and the information given are for the convenience of Intelrsquos customer base and are provided ldquoAS ISrdquo WITH NO WARRANTIES WHATSOEVER EXPRESS OR IMPLIED INCLUDING ANY IM-PLIED WARRANTY OF MERCHANTABILITY FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS Receipt or possession of this document does notgrant any license to any of the intellectual property described displayed or contained herein Intelreg products are not intended for use in medical lifesaving life-sustaining critical control or safety sys-tems or in nuclear facility applications Copyright copy 2015 Intel Corporation All rights reserved Intel and the Intel logo are trademarks of Intel Corporation in the US andor other countries Other names and brands may be claimed as the property of others Printed in USA 1015SS Please Recycle

Learn More

Try Intelreg C++ Compiler and IntelregIntegrated Performance Primitivesavailable as part of Intelreg Parallel Studio XE gt

Explore Intelrsquos free tools and libraries gt

Page 2: Optimizing Image Processing · are highly optimized for performance using Intel® Single Instruction Multiple Data instruction sets. Tuning Performance GM is an open-source image

Figure 1 JFS architecture

ldquoThrough close collaborationwith Intel engineers weadopted the Intelreg C++

compiler and Intelreg IntegratedPerformance Primitives libraryin our online image processingapplication The application

performance improvedsignificantly and our cost ofoperations reduced accordinglyThis is a typical case demonstratinghow technology creates valuerdquo

mdashLiu HaifengChief Architect of Cloud Platform and Director

of the System Technology DepartmentJDcom

Optimizing Impage Processing 2

A big challenge for the company is meet-ing image processing requirements suchas resizing sharpening color reducingor adding special effects to images Orig-inally all image processing was achievedusing GraphicsMagick (GM) and theGNU C Compiler (GCC) which con-sumed a lot of CPU time and seriouslyimpacted JDcomrsquos business resources

Intel worked closely with JDcom engineersto help them analyze the bottlenecks intheir image processing application and op-timize them by using Intelreg Integrated Per-formance Primitives and Intel C++ Compileron the Intelreg architecture platform

Intel Tools Boost Image ProcessingIntel C++ Compiler delivers strong per-formance on compatible processors Itprovides extensive optimizations for thelatest Intelreg processors including IntelregXeonreg processors and Intelreg Xeon Phitradecoprocessors Its patented automaticCPU dispatch feature optimizes code forthe current running processor and runscode optimized for specified processorsidentified at application runtime IntelC++ Compiler also comes with broad

support for current and previous C andC++ standards plus popular extensionsincluding C++11 C99 and OpenMP 40

Intelreg IPP is an extensive library of soft-ware functions for media and data process-ing It provides thousands of frequentlyused functions in various domains in-cluding image processing These functionsare highly optimized for performanceusing Intelreg Single Instruction MultipleData instruction sets

Tuning Performance GM is an open-source image processingsystem that includes a robust efficientcollection of tools and libraries to sup-port reading writing and manipulatingof images in more than 88 major formatsAs the fundamental part of JDcomrsquosimage processing application GMprocesses a large number of images onthe fly every hour Working with IntelJDcom put great effort into optimizingGM and relevant image processing librarieswith Intelreg Software Development Tools

The JDcom engineers wanted to iden-tify both performance bottlenecks andpotential areas of optimization for their

Analyzing and Optimizing Performance toRemove Bottlenecks and Cut Response Time

image processing application runningon Intel Xeon processor E5-2620-basedsystems Since image resizing is one ofthe most popular and time-consumingoperations in the application they useda benchmark to measure applicationperformance on Intel Xeon processorsThe benchmark applies to situations inwhich 300000 image files are resized in500 concurrent instances The metricsrecorded include the time the applica-tion took to complete the resizing CPUconsumption the number of image filesresized per second and average re-sponse time

The JDcom engineers recompiled GM andsome image processing librariesmdashinclud-ing libturbojpeg libpng and libwebpmdashwith GCC and the Intel C++ Compiler Theythen benchmarked the application onIntel Xeon processor-based systems Theuser times showed that the libraries gen-erated using Intel C++ Compiler performed12x faster than the GCC-generated librariesThe Intel C++ Compiler-generated li-braries were observed to reduce CPU con-sumption from 100 percent to 94 percentIn addition average response time was re-duced 62 percent Response timedropped from 2943 ms to 378 ms Queries per second (QPS) increased from100 to 1322

JDcom engineers identified that image re-sizing is a hotspot in GM and implementeda new function ScaleImage_ipp which isan IPP-optimized version of the ScaleIm-age function in GM which changes thesize of an image to specified dimensionsIts functionality is essentially the same asScaleImage A few IPP function calls wereadded to replace original code snippetsSince more than 95 percent of the imagesprocessed by GM in JDcom are BMPsJPEGs or PNGs the current implementa-tion of the ScaleImage_ipp function sup-ports only these three formats Aconditional jump at caller sites was addedto the ScaleImage function that deter-mines the format of images to be resizedThe ScaleImage_ipp function is executedfor BMP JPEG and PNG images while theScaleImage function is executed for allother formats Table 1 shows a code snip-pet in the ScaleImage and ScaleImage_ippfunctions side-by-side

Table 1 Code comparison of the ScaleImage and ScaleImage_ipp functions

Table 2 JDcom benchmark results

Figure 2 Performance gains from Intel C++ Compiler and Intel IPP

Optimizing Impage Processing 3

IPP library was added the applicationachieved a speedup of 17x compared tothe original GCC-generated code

With accelerated performance JDcomcan process more images faster and at alower latency JDcom achieved signifi-cant cost savings through efficient systemutilization and speeding up resource-in-tensive code

In August 2015 Intel announced com-munity licensing for Intelreg PerformanceLibraries including Intel IPP Communitylicensing allows individuals companiesand organizations to use these powerfuland award-winning performance librariesto create better more reliable and fastersoftware applications at no cost

The ScaleImage_ipp function led to aconsiderable performance improve-ment according to JDcomrsquos benchmarkresults (Table 2) CPU consumptiondropped to 85 percent QPS increasedto 1856 This means that JDcom canprocess more requests using the samenumber of servers In addition JDcomcustomers see images resized on Webbrowsers much more quickly

SummaryJDcom got extraordinary performancefor its image processing application withIntel C++ Compiler The compiler im-proved the performance of JDcomimage resizing code 12x on Intel Xeonprocessor-based servers And after Intel

Intel technologiesrsquo features and benefits depend on system configuration and may require enabled hardware software or service activation Performance varies depending on system configuration No computer system can be absolutely secure Check with your system manufacturer or retailer or learn more at wwwintelcom Intelrsquos compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors These optimizations include SSE2 SSE3 andSSSE3 instruction sets and other optimizations Intel does not guarantee the availability functionality or effectiveness of any optimization on microprocessors not manufactured by Intel Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors Please refer tothe applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice Notice revision 20110804 Software and workloads used in performance tests may have been optimized for performance only on Intel microprocessors Performance tests such as SYSmark and MobileMark are measured usingspecific computer systems components software operations and functions Any change to any of those factors may cause the results to vary You should consult other information and performancetests to assist you in fully evaluating your contemplated purchases including the performance of that product when combined with other products For more information go to wwwintelcomperfor-mance Intel does not control or audit the design or implementation of third party benchmark data or Web sites referenced in this document Intel encourages all of its customers to visit the referenced Web sitesor others where similar performance benchmark data are reported and confirm whether the referenced benchmark data are accurate and reflect performance of systems available for purchase This document and the information given are for the convenience of Intelrsquos customer base and are provided ldquoAS ISrdquo WITH NO WARRANTIES WHATSOEVER EXPRESS OR IMPLIED INCLUDING ANY IM-PLIED WARRANTY OF MERCHANTABILITY FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS Receipt or possession of this document does notgrant any license to any of the intellectual property described displayed or contained herein Intelreg products are not intended for use in medical lifesaving life-sustaining critical control or safety sys-tems or in nuclear facility applications Copyright copy 2015 Intel Corporation All rights reserved Intel and the Intel logo are trademarks of Intel Corporation in the US andor other countries Other names and brands may be claimed as the property of others Printed in USA 1015SS Please Recycle

Learn More

Try Intelreg C++ Compiler and IntelregIntegrated Performance Primitivesavailable as part of Intelreg Parallel Studio XE gt

Explore Intelrsquos free tools and libraries gt

Page 3: Optimizing Image Processing · are highly optimized for performance using Intel® Single Instruction Multiple Data instruction sets. Tuning Performance GM is an open-source image

image processing application runningon Intel Xeon processor E5-2620-basedsystems Since image resizing is one ofthe most popular and time-consumingoperations in the application they useda benchmark to measure applicationperformance on Intel Xeon processorsThe benchmark applies to situations inwhich 300000 image files are resized in500 concurrent instances The metricsrecorded include the time the applica-tion took to complete the resizing CPUconsumption the number of image filesresized per second and average re-sponse time

The JDcom engineers recompiled GM andsome image processing librariesmdashinclud-ing libturbojpeg libpng and libwebpmdashwith GCC and the Intel C++ Compiler Theythen benchmarked the application onIntel Xeon processor-based systems Theuser times showed that the libraries gen-erated using Intel C++ Compiler performed12x faster than the GCC-generated librariesThe Intel C++ Compiler-generated li-braries were observed to reduce CPU con-sumption from 100 percent to 94 percentIn addition average response time was re-duced 62 percent Response timedropped from 2943 ms to 378 ms Queries per second (QPS) increased from100 to 1322

JDcom engineers identified that image re-sizing is a hotspot in GM and implementeda new function ScaleImage_ipp which isan IPP-optimized version of the ScaleIm-age function in GM which changes thesize of an image to specified dimensionsIts functionality is essentially the same asScaleImage A few IPP function calls wereadded to replace original code snippetsSince more than 95 percent of the imagesprocessed by GM in JDcom are BMPsJPEGs or PNGs the current implementa-tion of the ScaleImage_ipp function sup-ports only these three formats Aconditional jump at caller sites was addedto the ScaleImage function that deter-mines the format of images to be resizedThe ScaleImage_ipp function is executedfor BMP JPEG and PNG images while theScaleImage function is executed for allother formats Table 1 shows a code snip-pet in the ScaleImage and ScaleImage_ippfunctions side-by-side

Table 1 Code comparison of the ScaleImage and ScaleImage_ipp functions

Table 2 JDcom benchmark results

Figure 2 Performance gains from Intel C++ Compiler and Intel IPP

Optimizing Impage Processing 3

IPP library was added the applicationachieved a speedup of 17x compared tothe original GCC-generated code

With accelerated performance JDcomcan process more images faster and at alower latency JDcom achieved signifi-cant cost savings through efficient systemutilization and speeding up resource-in-tensive code

In August 2015 Intel announced com-munity licensing for Intelreg PerformanceLibraries including Intel IPP Communitylicensing allows individuals companiesand organizations to use these powerfuland award-winning performance librariesto create better more reliable and fastersoftware applications at no cost

The ScaleImage_ipp function led to aconsiderable performance improve-ment according to JDcomrsquos benchmarkresults (Table 2) CPU consumptiondropped to 85 percent QPS increasedto 1856 This means that JDcom canprocess more requests using the samenumber of servers In addition JDcomcustomers see images resized on Webbrowsers much more quickly

SummaryJDcom got extraordinary performancefor its image processing application withIntel C++ Compiler The compiler im-proved the performance of JDcomimage resizing code 12x on Intel Xeonprocessor-based servers And after Intel

Intel technologiesrsquo features and benefits depend on system configuration and may require enabled hardware software or service activation Performance varies depending on system configuration No computer system can be absolutely secure Check with your system manufacturer or retailer or learn more at wwwintelcom Intelrsquos compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors These optimizations include SSE2 SSE3 andSSSE3 instruction sets and other optimizations Intel does not guarantee the availability functionality or effectiveness of any optimization on microprocessors not manufactured by Intel Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors Please refer tothe applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice Notice revision 20110804 Software and workloads used in performance tests may have been optimized for performance only on Intel microprocessors Performance tests such as SYSmark and MobileMark are measured usingspecific computer systems components software operations and functions Any change to any of those factors may cause the results to vary You should consult other information and performancetests to assist you in fully evaluating your contemplated purchases including the performance of that product when combined with other products For more information go to wwwintelcomperfor-mance Intel does not control or audit the design or implementation of third party benchmark data or Web sites referenced in this document Intel encourages all of its customers to visit the referenced Web sitesor others where similar performance benchmark data are reported and confirm whether the referenced benchmark data are accurate and reflect performance of systems available for purchase This document and the information given are for the convenience of Intelrsquos customer base and are provided ldquoAS ISrdquo WITH NO WARRANTIES WHATSOEVER EXPRESS OR IMPLIED INCLUDING ANY IM-PLIED WARRANTY OF MERCHANTABILITY FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS Receipt or possession of this document does notgrant any license to any of the intellectual property described displayed or contained herein Intelreg products are not intended for use in medical lifesaving life-sustaining critical control or safety sys-tems or in nuclear facility applications Copyright copy 2015 Intel Corporation All rights reserved Intel and the Intel logo are trademarks of Intel Corporation in the US andor other countries Other names and brands may be claimed as the property of others Printed in USA 1015SS Please Recycle

Learn More

Try Intelreg C++ Compiler and IntelregIntegrated Performance Primitivesavailable as part of Intelreg Parallel Studio XE gt

Explore Intelrsquos free tools and libraries gt

Page 4: Optimizing Image Processing · are highly optimized for performance using Intel® Single Instruction Multiple Data instruction sets. Tuning Performance GM is an open-source image

IPP library was added the applicationachieved a speedup of 17x compared tothe original GCC-generated code

With accelerated performance JDcomcan process more images faster and at alower latency JDcom achieved signifi-cant cost savings through efficient systemutilization and speeding up resource-in-tensive code

In August 2015 Intel announced com-munity licensing for Intelreg PerformanceLibraries including Intel IPP Communitylicensing allows individuals companiesand organizations to use these powerfuland award-winning performance librariesto create better more reliable and fastersoftware applications at no cost

The ScaleImage_ipp function led to aconsiderable performance improve-ment according to JDcomrsquos benchmarkresults (Table 2) CPU consumptiondropped to 85 percent QPS increasedto 1856 This means that JDcom canprocess more requests using the samenumber of servers In addition JDcomcustomers see images resized on Webbrowsers much more quickly

SummaryJDcom got extraordinary performancefor its image processing application withIntel C++ Compiler The compiler im-proved the performance of JDcomimage resizing code 12x on Intel Xeonprocessor-based servers And after Intel

Intel technologiesrsquo features and benefits depend on system configuration and may require enabled hardware software or service activation Performance varies depending on system configuration No computer system can be absolutely secure Check with your system manufacturer or retailer or learn more at wwwintelcom Intelrsquos compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors These optimizations include SSE2 SSE3 andSSSE3 instruction sets and other optimizations Intel does not guarantee the availability functionality or effectiveness of any optimization on microprocessors not manufactured by Intel Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors Please refer tothe applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice Notice revision 20110804 Software and workloads used in performance tests may have been optimized for performance only on Intel microprocessors Performance tests such as SYSmark and MobileMark are measured usingspecific computer systems components software operations and functions Any change to any of those factors may cause the results to vary You should consult other information and performancetests to assist you in fully evaluating your contemplated purchases including the performance of that product when combined with other products For more information go to wwwintelcomperfor-mance Intel does not control or audit the design or implementation of third party benchmark data or Web sites referenced in this document Intel encourages all of its customers to visit the referenced Web sitesor others where similar performance benchmark data are reported and confirm whether the referenced benchmark data are accurate and reflect performance of systems available for purchase This document and the information given are for the convenience of Intelrsquos customer base and are provided ldquoAS ISrdquo WITH NO WARRANTIES WHATSOEVER EXPRESS OR IMPLIED INCLUDING ANY IM-PLIED WARRANTY OF MERCHANTABILITY FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS Receipt or possession of this document does notgrant any license to any of the intellectual property described displayed or contained herein Intelreg products are not intended for use in medical lifesaving life-sustaining critical control or safety sys-tems or in nuclear facility applications Copyright copy 2015 Intel Corporation All rights reserved Intel and the Intel logo are trademarks of Intel Corporation in the US andor other countries Other names and brands may be claimed as the property of others Printed in USA 1015SS Please Recycle

Learn More

Try Intelreg C++ Compiler and IntelregIntegrated Performance Primitivesavailable as part of Intelreg Parallel Studio XE gt

Explore Intelrsquos free tools and libraries gt