Software Archive
Read-only legacy content
17061 Discussions

All you need to know about Process and Thread priorities

SergeyKostrov
Valued Contributor II
235 Views
*** All you need to know about Process and Thread priorities *** [ Abstract ] It is very important to understand that a correct application of process and thread priorities for some data intensive processing could improve performance and complete a task in a shorter period of time. What performance gains could you expect when priority of a process, or a thread, is boosted up?
0 Kudos
3 Replies
SergeyKostrov
Valued Contributor II
235 Views
Take a look at results of some evaluation: [ Test-case 1 ] ... [ Normal Priority ] CrtSetZeroPs128 - Executed in: T1=135380280 clock cycles ( P1 ) ... [ High Priority ] CrtSetZeroPs128 - Executed in: T2=135232336 clock cycles ( P2 ) - 0.109% faster than P1 ... [ Realtime Priority ] CrtSetZeroPs128 - Executed in: T3=135197568 clock cycles ( P3 ) - 0.135% faster than P1 ... T1 - T2 = 147944 clock cycles T1 - T3 = 182712 clock cycles T2 - T3 = 34768 clock cycles Where, P1 - Processing 1 P2 - Processing 2 P3 - Processing 3
0 Kudos
SergeyKostrov
Valued Contributor II
235 Views
On Windows platforms some issues are possible, since Win32 API is Not the same for different platforms, like Desktop, Embedded ( CE ) or Mobile. Here is an example of a Microsoft C++ compiler output for a Windows CE Embedded platform: ... ------ Build started: Project: ScaLib, Configuration: Release Windows CE (ARMV4) ------ Copying ScaLib Header Files... Compiling... Stdphf.cpp *** ScaLib Message: Compiling with Visual Studio 2005 *** *** ScaLib Message: Configuration - Release Windows CE - _WINCE_MSC - RELEASE *** *** ScaLib Message: Compiling for ARM Processing Unit ( 32-bit ) *** # Diagnostics: Target Processing Unit: ARM *** ScaLib Message: Classic Processing Model *** *** ScaLib Message: Native IRT-Domains *** # Diagnostics: IRT-Domain: GEN - Native # Diagnostics: IRT-Domain: MMX - Emulated - 64-bit # Diagnostics: IRT-Domain: SSE - Emulated - 128-bit # Diagnostics: IRT-Domain: SSE2 - Emulated - 128-bit # Diagnostics: IRT-Domain: AVX - Emulated - 256-bit # Diagnostics: IRT-Domain: AVX2 - Emulated - 512-bit *** ScaLib Message: Unicode Character Set *** *** ScaLib Message: Support of HRT-Functions Enabled *** C:\WorkEnv\AppsWorkDev\AppsSca\ScaLib\../../Include/DevHrtAL.h(541) : error C2039: 'SetPriorityClass' : is not a member of 'global namespace' C:\WorkEnv\AppsWorkDev\AppsSca\ScaLib\../../Include/DevHrtAL.h(541) : error C3861: 'SetPriorityClass': identifier not found *** ScaLib Message: Support of IRT-Domains Enabled *** ScaLib - 2 error(s), 0 warning(s) ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ========== ... Note: As you can see SetPriorityClass is Not supported on Windows CE Embedded platforms.
0 Kudos
SergeyKostrov
Valued Contributor II
235 Views
[ Computer System used for performance evaluations ] ** Dell Precision Mobile M4700 ** Intel Core i7-3840QM ( 2.80 GHz ) Ivy Bridge / 4 cores / 8 logical CPUs / ark.intel.com/products/70846 32GB RAM 320GB HDD NVIDIA Quadro K1000M ( 192 CUDA cores / 2GB memory ) Windows 7 Professional 64-bit SP1 Size of L3 Cache = 8MB ( shared between all cores for data & instructions ) Size of L2 Cache = 1MB ( 256KB per core / shared for data & instructions ) Size of L1 Cache = 256KB ( 32KB per core for data & 32KB per core for instructions ) Display resolution: 1366 x 768
0 Kudos
Reply