|
In this section we provide a few highlights from the Intel Core Duo Optimization Guide[5]. We mainly focus on the power
aspects of the optimizations:
- Threading done right provides power savings. As indicated by the data in the "Balanced Multi-threading Model"
section, a properly multi-threaded application results in power savings. This includes MT implementations with minimum
imbalance and synchronization points. While multi-threading an application, it is always recommended to use a
threading model in which all the threads perform equal amounts of work independently. Minimizing synchronization points
between threads leads to more time spent in the parallel section which translates to better power savings.
- Thread imbalance may cause performance degradation and may not provide power benefits as compared to balanced
threading. As discussed in the "Imbalanced Threading Model" section, applications with an imbalanced threading model may
show lesser performance improvement as compared to a balanced threading model; and hence consume more power than the
balanced implementation. Thread imbalances may cause frequent thread migration across cores that may result in reporting of
incorrect processor activity states. This may lead processors to go down to the lower frequency states (if the hotfix
provided by Microsoft is not enabled) in Adaptive scheme even if one of the threads is utilizing full processor resources.
This issue may occur while running ST applications on a dual-core system in "Adaptive" mode as well.
- Utilize GV3 hotfix (KB896256) from Microsoft for Windows*. In the case of applications having huge thread
imbalances, for example, Thread A utilizing 100% CPU and Thread B utilizing 10% CPU, Thread A will keep migrating between
cores. This makes effective CPU utilization 50%. On a system running in "Adaptive" (portable/laptop) power mode, this
thread migration causes the Windows kernel power manager to incorrectly calculate the optimal target performance state for
the processor. To address this issue, Microsoft provided a kernel hotfix that calculates optimal frequency by looking at
the entire package.
Hence, if an MT application indicates increased power consumption due to reduced performance in Adaptive mode only,
install the GV3 hotfix from Microsoft (as the issue might be the one described above). GV3 hotfix will track CPU
utilization across the entire package rather than individual cores and will enable the OS to operate at optimum frequency.
- Interrupt rate. Applications need to be sensitive to the interrupt rate as the power penalty may increase further
on future architectures. In-house testing with few multimedia applications that use a high interrupt rate have shown
that the interrupt rate can actually be reduced to default frequency without impacting the user experience. It is
recommended that applications tune the interrupt rate to the content being delivered and also to shutdown the interrupts
after content delivery.
- OS scheduling vs. hard affinitizing. In general, for the Intel® Core™ Duo processor-based systems, it is
advisable to use OS scheduling instead of affinitizing threads or applications. OS scheduling may show better power savings
due to better performance than affinitizing the threads. The OS scheduler will utilize any under utilized core; while hard
affinitizing may potentially degrade performance, since applications may need to wait for the availability of a specific
processor even though other processors in the system are idle.
|