Presentation is loading. Please wait.

Presentation is loading. Please wait.

Brainy: Effective Selection of Data Structures. Why data structure selection is important How to choose the best data structure for a specific application.

Similar presentations


Presentation on theme: "Brainy: Effective Selection of Data Structures. Why data structure selection is important How to choose the best data structure for a specific application."— Presentation transcript:

1 Brainy: Effective Selection of Data Structures

2 Why data structure selection is important How to choose the best data structure for a specific application Related work Brainy Evaluation Future work Summary

3 Niklaus Wirth

4 Vector (Store i th item in A[ i ]) Alternative Data Structures Singly or Double linked list Find the i th itemO(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

5 Why data structure selection is important How to choose the best data structure for a specific application Related work Brainy Evaluation Future work Summary

6 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).

7 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?

8 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.

9 Related Work L.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

10 Why data structure selection is important How to choose the best data structure for a specific application Related work Brainy Evaluation Future work Summary

11 How to get the training examples?

12 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.

13

14 Feature Selection (Using genetic algorithm) Take a given subset of features as a chromosome, and get the global optimum by mutation. Artificial Neural Network

15 Why data structure selection is important How to choose the best data structure for a specific application Related work Brainy Evaluation Future work Summary

16 Performance improvement Brainy achieved Evaluation 27% on Core2 and 33% on Atom

17 Why data structure selection is important How to choose the best data structure for a specific application Related work Brainy Evaluation Future work Summary

18 Exclude the interference from intervening instructions Future Work

19 Why data structure selection is important How to choose the best data structure for a specific application Brainy Evaluation Future work Summary

20 Selection of Data Structures is important Using machine learning in data structure selection Hardware features Reduced overhead Summary


Download ppt "Brainy: Effective Selection of Data Structures. Why data structure selection is important How to choose the best data structure for a specific application."

Similar presentations


Ads by Google