20
Brainy: Effective Selection of Data Structures

Brainy: Effective Selection of Data Structures

  • Upload
    brad

  • View
    58

  • Download
    1

Embed Size (px)

DESCRIPTION

Brainy: Effective Selection of Data Structures. Why data structure selection is important How to choose the best data structure for a specific application Related work Brainy Evaluation Future work S ummary. Algorithms + Data Structures = Programs. Algorithms + Data Structures - PowerPoint PPT Presentation

Citation preview

Page 1: Brainy:  Effective Selection of Data Structures

Brainy: Effective Selection of Data Structures

Page 2: Brainy:  Effective Selection of Data Structures

Why data structure selection is important How to choose the best data structure for a

specific application Related work Brainy Evaluation Future work Summary

Page 3: Brainy:  Effective Selection of Data Structures

Algorithms + Data Structures= Programs

Niklaus Wirth

Algorithms + Data Structures= Programs

Page 4: Brainy:  Effective Selection of Data Structures

Vector (Store ith item in A[i])

Alternative Data Structures Singly or

Double linked list

Find the ith item O(1) O(n)

Insert or delete an element O(n) O(1)

less cache misses, but may move all

elements when dynamic adjust size

Memory accessing more cache misses

Page 5: Brainy:  Effective Selection of Data Structures

Why data structure selection is important How to choose the best data structure for a

specific application Related work Brainy Evaluation Future work Summary

Page 6: Brainy:  Effective Selection of Data Structures

Data structure library

Asymptotic analysis

Developer depend on

DSLs are designed for common case,not consider application-specific situation

Asymptotic analysis is not accurate to data structures. Better asymptotic behavior may perform worse (for example, Fibonacci heap); Same asymptotic behaviors with different performances (splay tree often perform better than other balanced binary search trees).

Page 7: Brainy:  Effective Selection of Data Structures

Which interface functions are invoked, (how often the functions are used…)

What is the input for the data structure (data elements size, the number of elements…)

Which kind of underlying architecture the program running (cache size…)

What we need take into account?

Page 8: Brainy:  Effective Selection of Data Structures

The paper shows, between two different architectures Intel Core Q6600 and Intel Atom N270, 43% of the randomly generated application have different optimal data structures.

Page 9: Brainy:  Effective Selection of Data Structures

Related WorkL.Liu and S.Rus Perflint: A Context Sensitive

Performance Advisor for C++ Program

O.Shacham, M.Vechev, and E.Yahav. Chameleon: adaptive selection of collections

Page 10: Brainy:  Effective Selection of Data Structures

Why data structure selection is important How to choose the best data structure for a

specific application Related work Brainy Evaluation Future work Summary

Page 11: Brainy:  Effective Selection of Data Structures

How to get the training examples?

Page 12: Brainy:  Effective Selection of Data Structures

Is using real applications to train the machine learning algorithm a good suggestion?

How to get the training examples?Condition:

In order to avoid over fitting, every portion of the design space (input/ interface function) must be fully represented.

Application Generator: creating a variety of applications that test different parts of the overall space.

Page 13: Brainy:  Effective Selection of Data Structures
Page 14: Brainy:  Effective Selection of Data Structures

Feature Selection (Using genetic algorithm)Take a given subset of features as a

chromosome, and get the global optimum by mutation.

Artificial Neural Network

Page 15: Brainy:  Effective Selection of Data Structures

Why data structure selection is important How to choose the best data structure for a

specific application Related work Brainy Evaluation Future work Summary

Page 16: Brainy:  Effective Selection of Data Structures

Performance improvement Brainy achieved

Evaluation

27% on Core2 and 33% on Atom

Page 17: Brainy:  Effective Selection of Data Structures

Why data structure selection is important How to choose the best data structure for a

specific application Related work Brainy Evaluation Future work Summary

Page 18: Brainy:  Effective Selection of Data Structures

Exclude the interference from intervening instructions

Future Work

Page 19: Brainy:  Effective Selection of Data Structures

Why data structure selection is important How to choose the best data structure for a

specific application Brainy Evaluation Future work Summary

Page 20: Brainy:  Effective Selection of Data Structures

Selection of Data Structures is important Using machine learning in data structure

selection Hardware features Reduced overhead

Summary