Automatically Leveraging MapReduce Frameworks for Data-Intensive Applications
MapReduce是一种流行的编程范式,用于开发大规模的数据密集型计算。最近开发了许多实现这种范式的框架。然而,要利用这些框架,开发人员必须熟悉它们的API并重写现有代码。Casper是一个新的工具,可以自动将顺序Java程序转换为MapReduce范式。Casper识别要重写的潜在代码片段并分两步翻译它们:(1)Casper使用程序合成来搜索程序摘要(即,功能规范)。摘要使用类似于MapReduce范式的高级中间语言表示,并使用定理证明器验证其在语义上与原始摘要等价。(2)Casper使用Hadoop、Spark或Flink API从摘要中生成可执行代码。我们通过自动将真实世界的顺序Java基准转换为MapReduce来评估Casper。由此产生的基准测试比原始测试快48.2倍。
2018-06-19 cs.DB cs.DC cs.PL
NetDAM: Network Direct Attached Memory with Programmable In-Memory Computing ISA
像分布式AI训练这样的数据密集型应用可能需要多TB的内存容量和多TB的带宽。我们直接将内存连接到以太网控制器上,并使用一些可编程逻辑来设计一个高效的硬件“模板”,用于内存池和内存/网络计算。我们构建了NetDAM的FPGA原型,并演示了MPI-Allreduce通信案例,NetDAM可以作为一种软硬件友好的可编程体系结构,具有高性能的RDMA替代方案。
2021-10-28 cs.DC
PlinyCompute: A Platform for High-Performance, Distributed, Data-Intensive Tool Development
本文介绍了PlinyCompute,一个用于开发高性能、数据密集型、分布式计算工具和库的系统。总的来说,PlinyCompute为程序员提供了一个非常高级的声明式接口,依靠自动的关系数据库风格的优化来弄清楚如何进行分布式计算。然而,在小型计算机中,PlinyCompute为有能力的系统程序员提供了持久对象数据模型和API(“PC对象模型”)以及相关的存储管理系统,这些系统是为高性能、分布式、数据密集型计算而设计的。这与大多数其他大数据系统形成对比,这些系统构建在Java虚拟机(JVM)之上,因此必须至少部分地将性能关键问题(如存储管理(包括布局和分配)和虚拟方法/函数分派)交给JVM。这种混合的方法-在大的声明,信任程序员的能力,有效地利用PC对象模型在小-结果在一个系统,是理想的可重用的,数据密集型的工具和库的开发。通过广泛的基准测试,我们表明,与Spark上的等效实现相比,在PlinyCompute上实现复杂的对象操作和非平凡的库式计算可以导致2倍到50倍以上的加速。
2017-11-16 cs.DB cs.DC
Challenges Towards Deploying Data Intensive Scientific Applications on Extreme Heterogeneity Supercomputers
在过去的半个世纪里,推动计算进步的缩小晶体管由于功率墙而停滞不前;现在,极端异质性有望成为满足日益多样化的科学领域需求的下一个驱动力。为了释放这种超级计算机的潜力,我们确定了三大类八个潜在挑战:首先,需要快速的数据移动,因为极端的异构性将不可避免地使通信电路复杂化,从而阻碍数据移动。其次,我们需要为相应的应用程序/阶段智能地调度合适的硬件。第三,我们必须降低编程复杂性,以鼓励采用异构计算。
2018-04-25 cs.DC
Studying the Impact of Power Capping on MapReduce-based, Data-intensive Mini-applications on Intel KNL and KNM Architectures
在这张海报中,我们定量测量了在HPC系统上执行时,数据移动对基于MapReduce的应用程序性能的影响。我们利用PAPI“powercap”组件来确定执行我们的应用程序的理想条件:(1)数据集特征(即,唯一字);(2)HPC系统(即,KNL和KNM);以及(3)MapReduce编程模型的实现(即,具有或不具有组合器优化)。结果证实了数据移动的高能量和运行时间成本,以及组合器优化对这些成本的好处。
2019-02-15 cs.DC
MaRe: a MapReduce-Oriented Framework for Processing Big Data with Application Containers
背景生命科学越来越多地受到大数据分析的驱动,MapReduce编程模型已被证明在数据密集型分析中是成功的。然而,目前的MapReduce框架对生物信息学管道中重用现有处理工具的支持很差。此外,这些框架没有对应用程序容器的原生支持,而应用程序容器在科学数据处理中正变得越来越流行。结果在这里,我们介绍了MaRe,一个具有相关开源实现的编程模型,它引入了对MapReduce中应用程序容器的支持。MaRe基于Apache Spark和Docker,MapReduce框架和容器引擎已经收集了最大的开源社区,从而提供与尖端软件生态系统的互操作性。我们在生命科学中的两个数据密集型应用程序上演示了MaRe,显示了易用性和可扩展性。结论. MaRe通过MapReduce和应用程序容器在生命科学中实现可扩展的数据密集型处理。与目前涉及使用工作流系统的最佳做法相比,MaRe具有提供数据本地化、从异构存储系统摄取和交互式处理的优势。MaRe是普遍适用的开源软件。
2019-05-09 cs.DC
Functional Augmented State Transfer (FAST) Architecture for Computationally Intensive Network Applications
我们描述了一种新颖的架构,结合了简单的REST风格的架构与功能性编程的权力提供Web服务。尽管RESTful架构在简化可伸缩系统的开发方面非常有用,但它并不适合所有类型的网络应用程序。我们的架构改进后的RESTful架构,提供可扩展的框架计算密集型网络应用程序。所提出的架构是理想的应用程序,涉及数据管理和数据分析/计算的数据。数据分析和财务计算是架构可以有效应用的两个领域。
2016-07-15 cs.DC cs.SE
FusionStitching: Boosting Execution Efficiency of Memory Intensive Computations for DL Workloads
性能优化是一种不断寻求应用程序域和硬件之间和谐映射的艺术。近年来,深度学习(DL)在工业中的应用激增。优化此类工作负载的传统智慧主要集中在计算密集型操作(GEMM,卷积等)。然而,我们在这项工作中表明,内存密集型计算的性能是至关重要的E2E性能在实际的DL模型。我们提出了\emph{FusionStitching},一个优化框架,能够融合内存密集型\emph{elementwise},\emph{reduction}和细粒度的\emph{GEMM/Batched-GEMM}操作,有或没有数据依赖,到大型计算单元,然后映射和转换成高效的GPU内核。我们将融合计划优化问题转化为整数线性规划问题,并提出了一套经验算法来减小组合搜索空间。为了将优化的融合计划映射到硬件,我们提出了一种技术,通过充分利用片上资源(如暂存器或寄存器),将各种计算组有效地组合到单个GPU内核中。六个基准和四个工业规模的实际模型的实验结果令人鼓舞。总体而言,与Tensorflow基线相比,\emph{FusionStitching}可以达到高达5.7倍的加速比,与当前技术水平相比,实现1.25倍至1.85倍的性能加速比,平均1.4倍(几何平均值)。
2019-11-24 cs.DC
Energy Efficient Scheduling of MapReduce Jobs
MapReduce是数据密集型计算的一个突出的编程模型。在这项工作中,我们研究了在Yao等人[FOCS 1995]首次引入的速度缩放设置中的功耗感知MapReduce调度。我们专注于最小化的总加权完成时间的一组MapReduce工作在给定的能源预算。利用线性规划松弛的问题,我们得到了一个多项式时间常数因子的近似算法。我们还提出了一种凸规划公式,将其与标准列表调度策略相结合,并使用模拟评估其性能。
2014-02-12 cs.DC
Modeling Task Mapping for Data-intensive Applications in Heterogeneous Systems
Otto-von-Guericke University, Magdeburg, Germany(马格德堡奥托·冯·古里克大学)
本文提出新模型帮助设计异构系统算法,重点研究设备间通信对并行执行的影响及设备特定的并行性和流式处理差异,通过两个混合整数线性规划展示模型应用。
2022-08-12 cs.DC math.OC
Blaze: Simplified High Performance Cluster Computing
Cornell University(康奈尔大学)
MapReduce及其变体大大简化和加速了开发并行程序的过程。然而,大多数MapReduce实现都集中在数据密集型任务上,而许多现实世界的任务都是计算密集型的,它们的数据可以分布到内存中。对于这些任务,MapReduce程序的速度可能比手动优化的程序慢得多。我们目前的火焰,一个C++库,可以很容易地开发高性能的并行程序,这样的计算密集型任务。Blaze的核心是一个高度优化的内存中MapReduce函数,与传统的MapReduce实现相比,它有三个主要的改进:快速减少,快速序列化和对小的固定键范围的特殊处理。我们还提供额外的便利,使开发并行程序类似于开发串行程序。这些改进使Blaze成为一个易于使用的集群计算库,接近手动优化并行代码的速度。我们将Blaze应用于一些常见的数据采掘任务,包括词频计数,PageRank,k-means,期望最大化(高斯混合模型)和k-最近邻。在这些任务中,Blaze的平均性能比Apache Spark高出10倍以上,而且Blaze的速度几乎与节点数量成线性关系。此外,Blaze在其实现中仅使用MapReduce函数和3个实用程序函数,而Spark在其官方实现中使用了近30种不同的并行原语。
2019-02-06 cs.AI cs.DC cs.LG
Scheduling Data Intensive Workloads through Virtualization on MapReduce based Clouds
MapReduce已经成为在云上运行数据密集型应用程序的流行编程模型。用户设置的MapReduce作业的完成时间目标或截止日期在现有的基于云的数据处理环境(例如Hadoop)中变得至关重要。在调度MR作业以满足最后期限和“数据局部性”(将任务分配给包含其输入数据的节点)之间存在冲突。为了满足最后期限,可以在没有用于该任务的本地输入数据的节点上调度任务,从而导致从远程节点的昂贵数据传输。在本文中,提出了一种新的调度器,以解决上述问题,主要是基于动态资源重新配置的方法。它有两个组成部分:1)资源预测器:其动态地确定每个作业满足完成时间保证所需的Map/Reduce时隙的数量; 2)资源重新配置器:其通过动态地增加或减少各个VM来调整CPU资源,同时不违反用户的完成时间目标,以最大化数据局部性,并且还最大化活动作业之间的系统内的资源的使用。建议的调度程序已被评估对公平的虚拟集群上建立在一个物理集群的20台机器。结果表明,作业吞吐量增加了约12
2012-08-09 cs.DC
Balsam: Automated Scheduling and Execution of Dynamic, Data-Intensive HPC Workflows
我们引入Balsam服务来管理超级计算系统上的高吞吐量任务调度和执行。Balsam允许用户使用从简单的独立任务到动态多任务工作流的各种任务填充任务数据库。通过对本地资源调度器和MPI环境的抽象,Balsam动态地将任务打包成集成作业并管理其调度生命周期。该集成在一个试验“启动器”中执行,该“启动器”(i)确保具有异构处理器要求的任意串行和并行程序的并发、负载平衡执行,(ii)不需要修改用户应用程序,(iii)容忍任务级故障并提供若干错误恢复选项,(iv)存储起源数据(v)支持动态工作流,其中在运行时创建或终止任务。在这里,我们介绍了Balsam服务和启动器的设计和Python实现。使用两个案例研究说明了该系统的有效性:深度神经网络的超参数优化和高通量单点量子化学计算。我们发现,灵活的作业包装和自动化调度与动态(试点管理)执行的独特组合,有利于良好的资源利用率。在超级计算机上管理资源和启动工作流通常所需的脚本开销大大减少,加快了工作流的开发和执行。
2019-09-18 cs.DC
A Model and Survey of Distributed Data-Intensive Systems
本文提出统一模型剖析分布式数据密集型系统的核心功能与设计权衡,并据此分类数十个系统,以比较异构方案、识别趋势并指出开放研究方向。
2023-06-07 cs.DB cs.DC
Application-driven Design Exploration for Dense Ferroelectric Embedded Non-volatile Memories
内存墙瓶颈是许多数据密集型应用程序面临的一个关键挑战。基于多层FeFET的嵌入式非易失性存储器是一种有前途的解决方案,用于更密集和更节能的片上存储器。然而,可靠的多级单元存储需要仔细优化,以最大限度地减少设计开销成本。在这项工作中,我们研究FeFET器件特性,编程方案和存储器阵列架构之间的相互作用,并探索不同的设计选择,以优化关键数据密集型工作负载的性能,能源,面积和精度指标。从我们的跨栈设计探索中,我们发现我们可以以超过8 MB/mm^2的密度和低于2ns的读取访问延迟存储DNN权重和社交网络图,而不会损失应用程序的准确性。
2021-06-18 cs.DC
Allocation of Computation-Intensive Graph Jobs over Vehicular Clouds in IoV
图作业表示各种各样的计算密集型任务,其中计算由包括组件(表示数据源或数据处理)和边(对应于组件之间的数据流)的图表示。近年来,智能车辆和计算密集型图形工作的急剧增长,这对提供与车联网相关的高效服务提出了新的挑战。幸运的是,由一系列车辆形成的车辆云,允许在车辆之间卸载作业,可以大大减轻沉重的车载工作负载,并实现按需提供计算资源。在本文中,我们提出了一种新的框架,车辆云,地图组件的图形作业的服务提供商通过机会性的车辆到车辆的通信。然后,图作业分配车辆云被制定为一个非线性整数规划的车辆的接触时间和可用资源,旨在最大限度地减少作业完成时间和数据交换成本。这个问题在两种情况下得到解决:低流量和高峰时间。对于前者,我们确定问题的最优解。在后一种情况下,给定的棘手的计算得出可行的分配,我们提出了一种新的低复杂度的随机图作业分配机制,考虑层次树的子图同构。我们通过大量的模拟评估我们提出的算法的性能。
2019-06-25 cs.DC cs.NI
SGX-MR: Regulating Dataflows for Protecting Access Patterns of Data-Intensive SGX Applications
英特尔SGX是一种流行的可信执行环境(TEE),用于保护在云等不可信平台上运行的应用程序的完整性和机密性。然而,基于SGX的程序的访问模式仍然可以被对手观察到,这可能会泄露成功攻击的重要信息。研究人员一直在试验遗忘RAM(ORAM)来解决访问模式的隐私问题。ORAM是一种功能强大的低级原语,它为任何I/O操作提供与应用程序无关的保护,但成本很高。我们发现,一些特定于应用程序的访问模式,如顺序块I/O,不提供额外的信息给对手。其他算法,例如排序,可以用比ORAM更有效的特定不经意算法来取代。挑战在于,开发人员可能需要查看特定于应用程序的访问模式的所有细节,以设计合适的解决方案,这既耗时又容易出错。在本文中,我们提出了轻量级的SGX基于MapReduce(SGX-MR)的方法,调节数据密集型SGX应用程序的可扩展性,以更容易的应用程序级访问模式分析和保护。它使用MapReduce框架来覆盖大量的数据密集型应用程序,整个框架可以用很小的内存占用来实现。在此框架下,我们研究了数据处理的各个阶段,识别了需要保护的访问模式,并设计了相应的有效保护方法。我们的实验表明,基于SGX-MR的应用程序比基于ORAM的实现更有效。
2020-09-08 cs.CR cs.DC cs.SY