文摘
由于图像数据的快速发展和必要性分析提取有意义的信息,异构系统获得了成功。分布式系统的一个最重要的方面是负载平衡。时的分布工作负载均衡的方式在一个集群中,一些异构系统用于图像处理。当工作负载分配在这些系统中,处理器的计算能力是不考虑。因此,在这些异构系统图像处理应用程序中,一个工作负载分布不均匀的问题。一个工作负载分布给出了编程框架和本文中讨论。该策略由两部分组成。作为第一步,图像数据分为最优分割大小和分布在节点,那么图像数据是分布在CPU和GPU在第二步进行处理。异构环境是由结合CPU和GPU。OpenCL的Java绑定是用于设置CPU和GPU来运行程序。 To assess the performance of the suggested technique, certain tests are carried out and compared to current platforms. For image processing applications in heterogeneous clusters, the proposed workload distribution approach distributed image data efficiently. The results of the proposed solution (Hadoop + GPU) show that using an effective workload allocation mechanism in heterogeneous systems reduces average execution time while improving overall application performance.
1。介绍
创建一个巨大的数量的数字数据在今天的技术世界,还可以从许多别的来源,如互联网,网络摄像头,手机、传感器等等。数字数据用于以兆字节,字节,但今天它以tb和pb。因为70%的数字数据是结构化的,如此大量的数据需要额外的存储和处理能力1]。非结构化数据包括图片,这是一个二维表示的像素强度变量值,其他形式之一。此外,图像包括固有数据级并行性,必须处理提取相关信息,这一过程称为图像处理。它是有用的在各种各样的应用程序,包括医学影像、卫星成像,文档分析,等等。
有限的内存容量的限制和数据访问速度时出现如此大量的数据存储在一个加工设备,影响应用程序的性能。由于这些问题和程序的计算要求高,是不可能提高单个CPU或处理系统的性能。由于需要最大化的效率运行数据跨多个各自独立的并行计算单位,分布式和并行体系结构开发。
Hadoop是一个著名的和简单易用的技术与松散联系设计和分布式环境。Hadoop分布式文件系统(HDFS)和弥补Hadoop MapReduce编程方法。谷歌基于HDFS文件系统(GFS),这是一个免费和开源的版本。从本质上说,它使用一个使用映射-规约模式方法分发大量的数据在商品电脑,使用各种各样的公司包括雅虎、亚马逊、Facebook和谷歌。地图技术提供了可靠的数据同步,减少负载平衡、以及动态分配的工作在多个计算单元。
GPU的体系结构配置,硬件有几个多处理器。每个多处理器由一组SIMD(单指令多数据)架构的32位处理器中。每一个时钟周期,多处理器执行相同的指令在一组线程称为变形。经中线程的数量决定了变形的大小。每个流多处理器(SM) 8标量线程处理器(SP)和块的线程共享16 kb内存芯片上进行交流沟通。程序员编写两种不同类型的代码为GPU执行:内核和主机代码。内核代码在GPU并行执行。CPU的主机代码管理GPU和内存之间的数据传输,以及内核开始在GPU上。
大规模并行处理核心结合GPU异构集群提供,提供高速和可伸缩性数据传播到遥远的消费者。因为商品电脑的网络和GPU能力,适应性强。异构计算是利用异构体系结构的应用程序。图1演示了如何异构体系结构是由不同的处理器类型,每一种都有一组不同的优点和缺点,如gpu和cpu与多个内核。各种硬件可以在这些平台上使用,不同在功耗和性能2]。因此,异构系统提高性能的同时降低能耗(3]。
1.1。问题陈述
通过有效地处理大量的图像数据,最先进的异构框架为图像处理应用程序提供高性能。重要的是要注意,这些技术来实现应用程序性能好,他们需要一个最少的支持分发数据节点和cpu和gpu之间基于处理能力。然而,这可以通过利用负载均衡技术,划分和分配的节点之间的数据以及在每个节点上的CPU和GPU之间,这取决于他们的计算能力。因此,必须实现一个有效的负载分配策略来提高应用程序的性能。
1.2。目的和目标
以下目标和目标被认为是支持问题描述,将我们所需的目标:(我)为程序员提供了一个易于使用的图像处理框架,自动分配工作负载在异构集群中,从而提高性能(2)在节点内,自动分区CPU和GPU之间的图像数据
1.3。贡献
(我)分区数据的一种新方法为最优分割尺寸,确保位置计算通过确保在给定的图像分割的边界不能超过分裂(2)资源效率最大化和最小化数据传输,将分散在节点和节点内根据他们的计算能力(3)向量机获得昂贵的超级计算机或专家,而是一种商品集群计算机系统可以很容易地管理海量图像数据
剩下的纸是组织如下:
部分2描述了文献综述,部分3提出了框架,部分4结果和分析,而部分5包含的结论和未来的工作。
2。文献综述
它旨在提供图像处理异构环境中通过结合多核CPU和GPU的方法。在异构集群中,不同计算能力处理器搭配在一起提供了一个编程框架,该框架允许最优分割大小,甚至/平衡工作任务,和最大的资源效率。
2.1。图像处理在一个分布式环境
在图像处理应用程序中,分布式系统迅速成为首选平台由于其快速的处理速度、可伸缩性和效率。它是可行的,处理大量图像数据上传使用分布式系统。由于分布式系统的发展,需要大量存储和处理的应用程序变得越来越受欢迎。数据共享、设备共享、设备连接和任务分配的灵活性都是分布式系统与单处理器系统的优势。许多开源编程范例,如火花,协助创建了在分布式环境中高效的数据处理(7),
加州大学伯克利分校的MapReduce和Storm6火花(4]工具允许计算的数据挖掘和机器学习等。暴风雨是一个分布式实时计算系统,成功地处理无限数据流。MapReduce架构是一个受欢迎的选择对于大型数据分析由于其并行处理能力一种和非结构化数据(2]。
除了图像处理应用程序(5],脸和手势识别[6],脸跟踪[7)、视频检测文本单词从在线讲座视频9),以及视频监控(10),Apache Hadoop框架已经应用在许多其他应用程序。Hadoop MapReduce架构被用来创建一个卫星图像申请卡塔尔环境研究中心(11]。Hadoop也被用于管理大量的图像数据在基于内容的图像检索(CBIR) [12]。
2.2。基于gpu的图像处理
使用OpenGL图形库,GPU用于特征提取和跟踪(13]。gpu曾在精明的边缘检测等应用程序(14)、卫星图像处理(15),和医学图像处理16]。GPU比CPU在处理照片,的积分所示使用viola-jones人脸检测方法的研究[17]。当从卫星图像数据实时生成,必须处理快,gpu曾图像平滑(18)和云删除(19)操作。它已经证明了gpu可以用于医学领域检测大脑肿瘤细胞,完成几个阶段的操作,并提供出色的性能迅速处理大量图像数据时(20.]。
2.3。图像处理使用异构Hadoop集群
使用并行处理核心和gpu异构集群协助向遥远的消费者提供数据在高速和可伸缩性(21]。有效地分析大量数据,采用CUDA在Hadoop框架(22),可以改善应用程序的性能通过Hadoop的分布式计算能力结合GPU的并行处理结构(23,24]。火星是一个框架,结合GPU功能与Hadoop框架,它是用来处理web文档(搜索和日志)25]。还有三个框架,结合GPU和高性能的Hadoop,尽管它们被设计用于专门的科学而不是图像处理任务。这些框架包括MAPCG [26],StreamMR [27],GPMR [28]。Hadoop图像处理界面(HIPI)创建有效地处理大量的微型图像数据;然而,它不支持GPU [29]。
3所示。提出了框架
前部分的一些挑战,导致工作不均匀分布在多元化背景下都淹没了。建立一个跨节点编程框架,可以高效地分发数据,然后在每个节点的cpu和gpu之间基于他们的处理能力,在异构环境中,需要解决这些问题。
根据图2,提出了编程框架展示了异构数据可能分布在大量图像数据有效。这个过程包括两个阶段(1)数据分布在节点:集群中的节点将销售数据在这个阶段(2)CPU和GPU之间分配工作负载:数据被分散到各个节点,然后分布在每个节点之间的CPU和GPU在这一步
这工作集中在有效负载分布在异构集群。
3.1。提出了节点之间分配工作负载
工作负载可分为Hadoop集群工作负载和节点的工作负载。节点处理数据已经收到。图像必须均匀地分布在集群节点在这项研究中,充分利用集群的处理和记忆能力。一个新的分配政策建议分布的照片。为建议的技术选择的图像大小相同,即使有各种尺寸,照片和每个分割将包括一个或多个图像。然而,这样做会降低性能,因为一个图像不能被分成许多部分。
提出分配方案的图片组合在一起,这样每个分裂都包含许多图片适合分裂的大小。防止图像超过分割界限,分裂的大小是由图像的大小。图3描述了一些照片,一直处于分裂状态,可以分布在节点,而图4描绘了理想的基于块分割大小默认大小。
解决不均匀分裂的问题,照片不均匀分散在分裂的时候,分裂大小必须计算取决于图像的大小。当选择一个输入分割大小在HDFS中,输入分割大小必须设置根据图像大小,然后可以容纳几个相同大小的图像。
3.1.1。输入分割大小的选择
理想的输入分割大小代表我在这里,默认分割大小代表D图像大小代表年代,没有代表图像的最大数量,可以适应的理想输入分割。图像数据集的总数“透明国际”和分裂的数量平均分配Sn。
理想的输入分割大小=我。
大小的图像=年代。
输入分割大小默认Hadoop =d。
大小可以容纳的理想分割图像的数量=没有。
分d通过年代地板和使用功能,忽视部分组件来计算没有。得到我、乘年代通过没有。
这种方法计算输出将基于输入图像的大小,也没有可以跨越两个输入分割图像。
3.2。工作负载分配cpu和gpu之间在一个节点
异构集群协处理器gpu,速度比cpu。因此,工作分配必须基于最佳性能的处理器的计算能力。一种新的有效负载分配技术在异构的Hadoop集群提出实现优秀的图像处理应用程序的性能。
这个负载平衡方法直观地解释在图5。这个阶段涉及分裂每个任务映射到固定大小的图像。map函数每次调用发生分裂,这需要一个输入的键和值。通过使用map函数,每个图像的分割是阅读。通过应用该方法,map函数检查比率对所有图像分割和分配图像基于CPU和GPU的计算能力。样本图像上同时执行CPU和GPU来确定执行时间的CPU和GPU的算法。创建一个图像比通过比较每个处理器的执行时间和比较有多少图片同时GPU和CPU可以处理。高效的工作负载分布实现细节过程和基本流程图描绘在图的工作6如下。
3.3。高效的工作负载分布实施
本节描述该方法的实现。
定义三个变量分裂形成的setSplitSize()方法的类CPU-GPU表1。使用HDFS块大小作为参考分大小计算,一个可以指定下列格式文件信息:文件大小(我),(2)默认分大小,和(3)最优分割大小。默认的分割大小是代替的最优分割大小决定由于运行的配置设置()。
样例图像,图像宽度、高度和图像的三个输入是CalculateRatio()函数,计算比例。Concate()方法用于将图像基于比率将被发送到GPU,图像类中给出了详细的表2。GPU上的方法称为GPUdetect()是用于生成一个边缘检测操作基于宽度,高度,并在图像像素的总数。照片被处理后,它们再次分开分开每一个图像,然后保存在一个输出文件。(关键字,值)对通过使用两个参数创建map()函数的imagemap类指定包装的细节照片和他们的实际数据,CPU-GPU, imagemap类表所示1和表2分别,而变化的CPU和GPU执行时间(单位为毫秒)边缘检测表给出细节3。
4所示。结果和分析
在本节中,所有的结果详细显示进行了实验和分析。
4.1。CPU和GPU的比较分析
结果在表4和一个条形图图7显示了执行时间为四个不同的分辨率的图像在CPU和GPU,分别以毫秒为单位。在实验中,他们发现图像大小增加时,CPU和GPU执行时间也增加;然而,GPU执行时间比指数上升缓慢增加CPU执行时间。CPU和GPU的执行时间的变化中看到数据8和9,分别。表5表明,随着图像尺寸增加,方差在GPU执行时间小于CPU执行(27]。通过展示增加图像大小对计算时间的影响,这个实验说明了GPU可以用来改善应用程序的性能通过考虑加载数据从CPU内存的开销GPU。
4.2。不同/ GPU上越来越多的图像
实验图10演示了如何集成的图像在GPU影响程序的性能。的x设在代表图像的数量相互集成,而y设在显示了执行持续时间,以毫秒为单位。在表中6和7,这个实验的执行时间和标准偏差提出了通过集成四个不同分辨率的图片(图片1、2、3、4)。基于实验,单个图像分辨率为1024×768年42毫秒是独立处理的,但四个相同的分辨率的图像结合51毫秒。根据实验结果,执行时间的变化直接归因于CPU和GPU之间的交流的数量为每个图像的传输和随后的结果写入CPU。这些数据转移和加载流程执行为每个单独的图像,但当涉及到图像集成,集成所有照片处理在一个循环。
4.3。性能在不同的平台上的比较分析
图11显示了建议的解决方案的平均执行时间(Hadoop + GPU)与电流的方法。所有决议的照片显示在表中5,建议框架需要更少的时间比其他当前执行框架(HIPI HIPI + GPU, Hadoop + GPU)。建议的解决方案的结果(Hadoop + GPU)显示使用一个有效的工作负载分配机制在异构系统中减少平均执行时间,同时提高应用程序的整体性能。表8展示了重要的执行时间之间的差异显示法(Hadoop + GPU)和现有的平台(HIPI HIPI + GPU, Hadoop + GPU)。实验的结果表明,显著提高应用程序性能的主要因素,完全利用可用的资源是建议的有效负载分配策略。
5。结论和未来的工作
本文的目的是介绍一种新的编程框架利用Hadoop MapReduce编程模型和图形处理单元(gpu)。建议技术提供了这些优于现有方法对于图像处理应用程序在异构集群。分区数据的一种新方法为计算最优分割尺寸确保位置通过确保在给定的图像分割的边界不能超过分割,资源效率最大化和最小化数据传输,将分散在节点和节点内根据他们的计算能力,而获得昂贵的超级计算机或专家向量机,一种商品集群计算机系统可以很容易地管理海量图像数据。
因此,未来的工作将集中在发展中分割大小,可以很容易地支持不同的图像大小和节点之间的分歧以及内部CPU和GPU之间的每个节点。实时图像处理是指在设定时间内完成某些活动。在特定的图像处理应用程序中,创建一个流的图像,必须在一定的时间处理,确保图像不会错过最后期限。建议技术在异构系统将用于处理这些图像流在未来能够在规定时间内学习。
数据可用性
使用的数据来支持本研究的结果包括在本文中。
的利益冲突
所有的作者宣称他们没有利益冲突。
作者的贡献
所有作者的贡献同样这项研究。
确认
这项研究是由白沙瓦大学的合作,国际伊斯兰大学伊斯兰堡,Haripur大学。