arXivDaily arXiv每日学术速递 周一至周五更新
arXiv周末暂无论文更新,休息一下吧,周末愉快~~
arXiv 1603.09679cs.DC
收藏

并行框架中的协同设计优化:一个MapReduce案例研究

Towards co-designed optimizations in parallel frameworks: A MapReduce case study

Colin Barrett, Christos Kotselidis, Mikel Luján

摘要:

大数据爆炸之后,大量复杂的并行软件堆栈激增,其目的是应对数据泛滥的挑战。这种多层分层部署的缺点是无法在堆栈中的层之间维护和委托重要的语义信息。软件抽象增加了应用程序与其生成的代码之间的语义距离。然而,并行软件框架包含通用编译器不被设计为利用的固有语义信息。本文介绍了一个案例研究,演示了如何在多核架构上利用MapReduce范式的特定语义信息。MR4J已在Java中实现,并针对手动优化的C和C++等效项进行了评估。最初观察到的结果导致了语义感知优化器的设计,该优化器自动运行而无需修改应用程序代码。优化器能够将MR4J的执行时间加快2.0倍。引入的优化不仅提高了生成代码在映射阶段的性能,还减少了垃圾收集器的压力。这演示了在使用并行软件框架时,如何在不牺牲良好的软件工程实践的情况下利用语义信息。

英文摘要:

The explosion of Big Data was followed by the proliferation of numerous complex parallel software stacks whose aim is to tackle the challenges of data deluge. A drawback of a such multi-layered hierarchical deployment is the inability to maintain and delegate vital semantic information between layers in the stack. Software abstractions increase the semantic distance between an application and its generated code. However, parallel software frameworks contain inherent semantic information that general purpose compilers are not designed to exploit. This paper presents a case study demonstrating how the specific semantic information of the MapReduce paradigm can be exploited on multicore architectures. MR4J has been implemented in Java and evaluated against hand-optimized C and C++ equivalents. The initial observed results led to the design of a semantically aware optimizer that runs automatically without requiring modification to application code. The optimizer is able to speedup the execution time of MR4J by up to 2.0x. The introduced optimization not only improves the performance of the generated code, during the map phase, but also reduces the pressure on the garbage collector. This demonstrates how semantic information can be harnessed without sacrificing sound software engineering practices when using parallel software frameworks.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑