1
What is the probability to capture a good kernel partition in a random sample? Total number of KPs: Finite but vast (e.g. 10 20 ) Radnom sample of 1000 KPs - Probability (capture the best KP) = 0 - Probability (capture one out of the best 1% of KPs) = 99.99% * StreamIt 2.1.1 benchmark suite Exactly four software threads Observe the performance of good and bad KPs - The performance difference ranges from to 2.4x . Kernel Partitioning of Streaming Applications: A Statistical Approach to an NP-complete Problem Petar Radojković, Paul M. Carpenter, Miquel Moretó, Alex Ramirez, Francisco J. Cazorla Motivation Performance Optimal kernel partition? Are we close to the optimal? Programming of multithreaded applications is difficult A possible solution: Expose the parallelism to the compiler Stream programming languages (StreamIt, Brook, SPM) - The application is presented as a stream graph - Suitable for applications that process long sequences of data: voice, image, multimedia, Internet and communication traffic, etc. Problem High pressure on the compiler Source code Explicit dependencies (Optimal) Multithreaded executable Complex code analysis and optimizations How to (optimally) partition kernels into software threads? The compilation problem Color the nodes of the graph Thread 2 Thread 1 Thread 3 Thread 4 The importance of a good kernel partitioning Kernel partitioning (KP) is an intractable problem Vast exploration space (e.g. 10 20 possible kernel partitions) NP-complete [Garey and Johnson, 1979] State of the art approaches are based on heuristics Try to find a good kernel partition The performance of the optimal kernel partitioning is unknown State of New KP The optimal performance Statistical analysis Extreme Value ranges from X to Y [confidence level = 0.9; 0.95; 0.99] Step 1: Execute random (i.i.d.) kernel partitions Step 2: Measure the performance of each of them Step 3: Estimate the performance of the optimal partition 13248 15468 24385 12458 25847 12358 16548 15728 12584 14658 14458 09245 10444 15236 11728 17588 14385 10458 15847 09358 15628 Performance of 1000s of random kernel partitions Do we capture a good one? * Radojković et al. Optimal Task Assignment in Multithreaded Processors: A Statistical Approach. In proceedings of ASPLOS 2012. Our proposal Estimate the performance of the optimal kernel partition . . . . . . . . . . . . . . 12659 13564 . . . . . . . . . . . . . . 11988 15684 10627 14551 15238 12654 16482 Can random sampling find a good kernel partition (KP)? Results Application of Extreme Value Theory the art method Should we keep working? River Embankment Numerous real-life problems Finance Civil engineering Process scheduling for MT CPUs Core 0 Exe. Units L2 cache Stream programming languages Compiler 3.9x . . . . . . . . . . . . . . Theory . . . . . . . . . . . . . . L1 cache Core 1 Exe. Units L1 cache Core 0 Exe. Units L2 cache L1 cache Core 1 Exe. Units L1 cache Can we apply EVT to the KP problem? Is the estimation precise? Is the estimation accurate? Can random sampling find a good KP? Benchmark Sampling method Depth First Search Edge Contraction Edge Contraction with Filter Uniformly Distributed bitonic-sort NA NA channelvocoder NA NA des NA fft NA NA filterbank NA NA NA . . . . . . . . . . . . . . . . . . . . serpent_full NA NA vocoder NA NA ** Carpenter et al. Mapping Stream Programs onto Heterogeneous Multiprocessor Systems. In proceedings of CASES 2009. Random sampling provides very good results Random sampling vs. Heuristics ** serpent_full benchmark serpent_full benchmark benchmark suite The estimation is accurate The samples should be uniformly distributed Few 1000 KPs are sufficient for a precise estimation

Kernel Partitioning of Streaming Applications: A ... · Kernel partitioning (KP) is an intractable problem • Vast exploration space (e.g. 1020 possible kernel partitions) • NP-complete

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Kernel Partitioning of Streaming Applications: A ... · Kernel partitioning (KP) is an intractable problem • Vast exploration space (e.g. 1020 possible kernel partitions) • NP-complete

What is the probability to capture a good kernel partition in a random sample?

• Total number of KPs: Finite but vast (e.g. 1020)

• Radnom sample of 1000 KPs - Probability (capture the best KP) = 0 - Probability (capture one out of the best 1% of KPs) = 99.99% *

• StreamIt 2.1.1 benchmark suite • Exactly four software threads • Observe the performance of good and bad KPs

- The performance difference ranges from to 2.4x

CPU Accounting in the Multi-core and Multi-threaded Era

Qixiao Liu1,2, Miquel Moreto1,2, Francisco J. Cazorla2,3 and Mateo Valero1,2

1 Departament d’Arquitectura de Computadors

Universitat Politècnica de Catalunya (UPC) Barcelona, Spain

3 Artificial Intelligence Research Institute (IIIA) Spanish National Research Council (CSIC)

Barcelona, Spain 2 Barcelona Supercomputing Center (BSC)

Centro Nacional de Supercomputación Barcelona, Spain

.

Kernel Partitioning of Streaming Applications:

A Statistical Approach to an NP-complete Problem

Petar Radojković, Paul M. Carpenter, Miquel Moretó, Alex Ramirez, Francisco J. Cazorla

Motivation

Perf

orm

ance

Optimal kernel partition?

Are we close to the optimal?

• Programming of multithreaded applications is difficult • A possible solution: Expose the parallelism to the compiler • Stream programming languages (StreamIt, Brook, SPM) - The application is presented as a stream graph - Suitable for applications that process long sequences of data: voice, image, multimedia, Internet and communication traffic, etc.

Problem

High pressure on the compiler

Source code Explicit dependencies

(Optimal) Multithreaded executable

Complex code analysis

and optimizations

How to (optimally) partition kernels into software threads?

• The compilation problem • Color the nodes of the graph

Thread 2 Thread 1

Thread 3 Thread 4

The importance of a good kernel partitioning

Kernel partitioning (KP) is an intractable problem

• Vast exploration space (e.g. 1020 possible kernel partitions) • NP-complete [Garey and Johnson, 1979]

State of the art approaches are based on heuristics • Try to find a good kernel partition

The performance of the optimal kernel partitioning is unknown

State of New KP

The optimal performance

Statistical analysis Extreme Value

ranges from X to Y [confidence level = 0.9; 0.95; 0.99]

Step 1: Execute random (i.i.d.)

kernel partitions

Step 2: Measure the performance

of each of them

Step 3: Estimate the performance

of the optimal partition

13248 15468 24385 12458 25847 12358 16548

15728 12584 14658 14458 09245 10444 15236

11728 17588 14385 10458 15847 09358 15628

Performance of 1000s of random kernel partitions

Do we capture a good one?

* Radojković et al. Optimal Task Assignment in Multithreaded Processors: A Statistical Approach. In proceedings of ASPLOS 2012.

Our proposal

Estimate the performance of the optimal kernel partition

. . . . . . .

. . . . . . .

12659

13564

. . . . . . . . . . . . . .

11988

15684

10627

14551

15238

12654

16482

Can random sampling find a good kernel partition (KP)?

Results

Application of Extreme Value Theory

the art method

Should we keep working?

River Embankment

Numerous real-life problems Finance Civil engineering Process scheduling for MT CPUs

Core 0 Exe. Units

L2 cache

Stream programming languages Compiler

3.9x

. . . . . . .

. . . . . . .

Theory

. . .

. . .

. . .

. . .

. .

L1 cache

Core 1 Exe. Units

L1 cache

Core 0 Exe. Units

L2 cache

L1 cache

Core 1 Exe. Units

L1 cache

Can we apply EVT to the KP problem? Is the estimation precise? Is the estimation accurate? Can random sampling find a good KP?

Benchmark

Sampling method

Depth First

Search

Edge

Contraction

Edge

Contraction

with Filter

Uniformly

Distributed

bitonic-sort NA NA

channelvocoder NA NA

des NA

fft NA NA

filterbank NA NA NA

. . . . . . . . . . . . . . . . . . . .

serpent_full NA NA

vocoder NA NA

** Carpenter et al. Mapping Stream Programs onto Heterogeneous Multiprocessor Systems. In proceedings of CASES 2009.

• Random sampling provides very good results

• Random sampling vs. Heuristics ** serpent_full benchmark serpent_full benchmark • benchmark suite

• The estimation is accurate • The samples should be uniformly distributed • Few 1000 KPs are sufficient for a precise estimation