garbage collection auto tuning for java map reduce on multi-cores

19

Click here to load reader

Upload: kathiravelu-pradeeban

Post on 12-Jul-2015

471 views

Category:

Engineering


0 download

TRANSCRIPT

Page 1: Garbage collection auto tuning for java map reduce on multi-cores

Powerpoint Templates 1

Presentation By:Pradeeban KathiraveluINESC-ID Lisboa Instituto Superior Técnico, Universidade de Lisboa

Garbage Collection Auto-Tuning forJava MapReduce on Multi-Cores

Jeremy Singer George Kovoor Gavin Brown Mikel LujánUniversity of [email protected]

[email protected] of [email protected]

Page 2: Garbage collection auto tuning for java map reduce on multi-cores

Powerpoint Templates 2

Agenda Introduction Motivation Contributions Evaluation

Scalability GC Impact GC Auto Tuning

Related Work Conclusions

Page 3: Garbage collection auto tuning for java map reduce on multi-cores

Powerpoint Templates 3

Introduction MRJ, A MapReduce Java Framework

for multi-core architectures Use of memory management auto-

tuning techniques based on machine learning.

MRJ performance within 10% of optimal On 75% of the benchmark tests.

Page 4: Garbage collection auto tuning for java map reduce on multi-cores

Powerpoint Templates 4

Why GC Auto Tuning?

MRJ end-user cannot be expected to perform expert analysis to determine

GC activity reducing MRJ performance.

How to improve the JVM configuration.

Page 5: Garbage collection auto tuning for java map reduce on multi-cores

Powerpoint Templates 5

Motivation

Efficient adaptation to benchmark-specific or heap-size-specific anomalies.

Could be installed by the system administrator

automatically enabled for users that do not have sufficient permissions to change JVM parameters.

Enable rapid deployment of MRJ on new multi-core architecture layouts

Page 6: Garbage collection auto tuning for java map reduce on multi-cores

Powerpoint Templates 6

Contributions A Scalable Java fork/join framework

for MapReduce (MRJ), on a commodity multi-core platform.

A comprehensive study on the impact of Java runtime garbage collection (GC) on MRJ

An auto-tuning approach to optimize GC for MRJ.

Page 7: Garbage collection auto tuning for java map reduce on multi-cores

Powerpoint Templates 7

MRJ

Same application interface as Hadoop. Only map() and reduce() to be defined. Abstracts away all the details of the

parallelization, runtime scheduling, .. Focus on the application logic.

Page 8: Garbage collection auto tuning for java map reduce on multi-cores

Powerpoint Templates 8

Evaluation

Scalability evaluation on a four-core, hyperthreaded Intel Core i7 processor

Using standard MapReduce benchmarks.

Page 9: Garbage collection auto tuning for java map reduce on multi-cores

Powerpoint Templates 9

Scalability Study

Page 10: Garbage collection auto tuning for java map reduce on multi-cores

Powerpoint Templates 10

Scalability of grep

Scalability of grep degrades with increasing numbers ofprocessors, for small heap sizes

Page 11: Garbage collection auto tuning for java map reduce on multi-cores

Powerpoint Templates 11

GC Overhead

GC overhead increases with the number of processors, more significantly for small heap sizes

Page 12: Garbage collection auto tuning for java map reduce on multi-cores

Powerpoint Templates 12

Relative GC Performance

Input Dependent Application performance different inputs. Small → Serial. Medium, Large → Parallel and Concurrent. Different Heap Sizes.

Application Dependent Parallel >> Serial & Concurrent ??

Page 13: Garbage collection auto tuning for java map reduce on multi-cores

Powerpoint Templates 13

sm: concurrent > parallel ?

sm: Search for a word in an input file. Death rate = Total garbage collected

Total execution time

Page 14: Garbage collection auto tuning for java map reduce on multi-cores

Powerpoint Templates 14

GC Auto Tuning Performance(relative to optimal policy)

Page 15: Garbage collection auto tuning for java map reduce on multi-cores

Powerpoint Templates 15

GC Auto Tuning Performance(relative to default policy)

Page 16: Garbage collection auto tuning for java map reduce on multi-cores

Powerpoint Templates 16

Related Work

The original work on MapReduce [13, 14] applies to compute-clusters.

Ranger et al. describe the first application of MapReduce to multi-core processors [31].

Conventional memory management techniques do not scale to large multi-core environments [40].

Application of machine learning to Java runtime performance auto-tuning is a growing trend [26, 39].

Page 17: Garbage collection auto tuning for java map reduce on multi-cores

Powerpoint Templates 17

Conclusions MRJ: A Java-based framework for MapReduce parallelism

Targets conventional multi-core architectures. Speedups of up to 6x the default GC policy

10% geometric mean speedup over all benchmarks with the largest input data sets.

Scalable performance With increasing # of threads to the underlying Java

fork/join pool Machine-learning GC auto-tuning policy improving the

runtime performance

Page 18: Garbage collection auto tuning for java map reduce on multi-cores

Powerpoint Templates 18

Thank you! Questions?Thank you! Questions?

Page 19: Garbage collection auto tuning for java map reduce on multi-cores

Powerpoint Templates 19

Selected References

[13] J. Dean and S. Ghemawat. MapReduce: simplified data processing on large clusters. In Proceedings of the 6th symposium on operating systems design and implementation, pages 137–150, 2004.

[14] J. Dean and S. Ghemawat. MapReduce: simplified data processing on large clusters. Communications of the ACM, 51(1):107–113, 2008.

[26] F. Mao and X. Shen. Cross-input learning and discriminative prediction in evolvable virtual machines. In Proceedings of the 7th annual IEEE/ACM International Symposium on Code Generation and Optimization, pages 92–101, 2009.

[31] C. Ranger, R. Raghuraman, A. Penmetsa, G. Bradski, and C. Kozyrakis. Evaluating mapreduce for multi-core and multiprocessor systems. In Proceedings of the 13th International Symposium on High Performance Computer Architecture, pages 13–24, 2007.

[39] C. Zhang and M. Hirzel. Online phase-adaptive data layout selection. In ECOOP 2008 Object-Oriented Programming, pages 309–334, 2008.

[40] Y. Zhao, J. Shi, K. Zheng, H. Wang, H. Lin, and L. Shao. Allocation wall: a limiting factor of Java applications on emerging multi-core platforms. ACM SIGPLAN Notices, 44(10):361–376, 2009.