Jointly optimizing task granularity and concurrency for in-memory mapreduce frameworks
Autor: | Jun Heo, Hakbeom Jang, Jae W. Lee, Joo-young Hwang, Jaeyoung Jang, Sangyeun Cho, Wenjing Jin, Jonghyun Bae |
---|---|
Rok vydání: | 2017 |
Předmět: |
Computer science
Distributed computing Concurrency Working set Degree of parallelism 02 engineering and technology Thread (computing) 020204 information systems Producer–consumer problem 0202 electrical engineering electronic engineering information engineering Memory footprint Concurrent computing 020201 artificial intelligence & image processing Garbage collection |
Zdroj: | IEEE BigData |
DOI: | 10.1109/bigdata.2017.8257921 |
Popis: | Recently, in-memory big data processing frameworks have emerged, such as Apache Spark and Ignite, to accelerate workloads requiring frequent data reuse. With effective in-memory caching these frameworks eliminate most of I/O operations, which would otherwise be necessary for communication between producer and consumer tasks. However, this performance benefit is nullified if the memory footprint exceeds available memory size, due to excessive spill and garbage collection (GC) operations. To fit the working set in memory, two system parameters play an important role: number of data partitions (N partitions ) specifying task granularity, and number of tasks per each executor (N threads ) specifying the degree of parallelism in execution. Existing approaches to optimizing these parameters either do not take into account workload characteristics, or optimize only one of the parameters in isolation, thus yielding suboptimal performance. This paper introduces WASP, a workload-aware task scheduler and partitioner, which jointly optimizes both parameters at runtime. To find an optimal setting, WASP first analyzes the DAG structure of a given workload, and uses an analytical model to predict optimal settings of N partitions and N threads for all stages based on their computation types. Taking this as input, the WASP scheduler employs a hill climbing algorithm to find an optimal N threads for each stage, thus maximizing concurrency while minimizing data spills and GCs. We prototype WASP on Spark and evaluate it using six workloads on three different parallel platforms. WASP improves performance by up to 3.22× and reduces the cluster operating cost on cloud by up to 40%, over the baseline following Spark Tuning Guidelines and provides robust performance for both shuffle-heavy and shuffle-light workloads. |
Databáze: | OpenAIRE |
Externí odkaz: |