Dismiss
InnovationQ will be updated on Sunday, Oct. 22, from 10am ET - noon. You may experience brief service interruptions during that time.
Browse Prior Art Database

Method and System for Optimizing Power Consumption While Running Parallelized Applications on Multi-Cores Using Dynamic Voltage Frequency Scaling (DVFS)

IP.com Disclosure Number: IPCOM000199818D
Publication Date: 2010-Sep-17
Document File: 8 page(s) / 158K

Publishing Venue

The IP.com Prior Art Database

Abstract

A method and system is disclosed for optimizing power consumption while running parallelized applications on multi-cores using dynamic voltage frequency scaling (DVFS).

This text was extracted from a PDF file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 35% of the total text.

Page 1 of 8

Method and System for Optimizing Power Consumption While Running Parallelized

Applications on Multi-Cores Using Dynamic Voltage Frequency Scaling (DVFS)

Disclosed is a method and system for optimizing power consumption while running parallelized applications on multi-cores using dynamic voltage frequency scaling (DVFS).

In accordance with the method disclosed herein, DVFS is employed to cores on which threads are running. When a core observes a slack period of the threads, DVFS ensures that power is saved during the slack period. During a slack period, the threads do not perform any function and are usually waiting for parallel work to be schedule for them. Subsequently, when the threads hit busy zones, DVFS is employed again to bring the cores up to their original levels. Therefore, by switching to lower power levels during the slack periods significant amount of power is saved for parallelized applications by affecting performance in a minimal way.

A thread which executes parts of a parallel work is usually controlled by a thread scheduler that is part of a parallel library provided by compilers. In an embodiment, the thread scheduler is modified to introduce DVFS calls to an underlying OS or hardware such that while it executes parallel parts it runs at full power and speed, and while during slack periods, it can bring down the underlying core to low power modes. The basic mechanism of bringing down power for a core can be extended for hyperthreaded cores when multiple threads run on a single core.

Consider a a small snippet of C code devised from the SPEC CPU 2006 benchmark libquantum for illustration purpose. In this benchmark there are three hot functions. Each of this hot function has a hot loop which is automatically parallelized by a compiler. A very simplified version of the code having three hot loops which can be parallelized is show below.

libquantum()

{

1

Page 2 of 8

//

Serial Code

_1

//

HOT LOOP

_

1

for ( …

)

{

//

} Serial Code

_2

//

HOT LOOP

_2

for ( …

)

{

//

} Serial Code

_3

//

HOT LOOP

_3

for ( …

)

{

}

//

Serial Code

_4

}

Once the hot loops are automatically parallelized by, each loop is turned into a function ex @OL@L1 and the

_xlsmpParallelRegionDo() as shown below.

libquantum()

{

Code

_

1

//

Serial

//

HOT LOOP

_

1

parallelized

_

xlsmpParallelRegionDo(@OL@L1 …

)

Code

_

2

//

Serial

//

HOT LOOP

_

2

parallelized

_

xlsmpParallelRegionDo(@OL@L2 …

)

Code

_

3

//Serial

//

HOT LOOP

_

3

parallelized

_

xlsmpParallelRegionDo(@OL@L3 …

)

Code

_

4

//Serial

}

Fig. 1 depicts an execution of the code on a 4-core architecture.

2

Page 3 of 8

Figure 1

As shown in fig. 1, thread 0 is executed on core 0, thread 1 is on core 1 and so on. Also, thread 0 is designated as a "master" thread. The master thread computes all serial parts of the code in addition to the parallel parts. The other threads are designated as "worker" threads and compute only the parallel regions. In automatically parallelized applications, the compiler...