大数据与算法——累加求和、求最大值、排序加速(一)
大数据与分布式计算介绍大数据与分布式计算1. 大数据1.1 基本概念1.2 发展历史储备期:萌芽期:概念期:精细耕作期:1.3 应用领域宏观经济方面:制造业方面:农业领域:2.分布式计算2.1 基本概念2.2 发展历程2.3 分布式计算技术远程过程调用RPC基于消息的中间件进程间通信机制分布式对象计算(DOC)3.课程大作业介绍结束语大数据与分布式计算1. 大数据1.1 基本概念马尼克定义:大数据
大数据与分布式计算介绍
大数据与分布式计算
1. 大数据
1.1 基本概念
马尼克定义:大数据是一种难以被普通的数据处理软件捕获、储存、管理和分析的大规模数据集
博伊德、克罗福德定义:是一种文化、科技和学术现象,这种现象植根于越来越强大的运算能力、分析能力和对大数据价值的充分信任之上。
百度百科定义:是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。
从上述三种定义中我们可以明显看出,海量的数据集,强大运算分析能力的需求是必不可少的关键。
1.2 发展历史
大数据的发展与现代信息技术的演进息息相关,不妨将大数据的发展分为储备期、萌芽期、概念期和发展期4个阶段。
储备期:
1950—1980,从大型机、数据库开始,解决商业、科学、军事、民调等领域大量数据的管理和计算问题
萌芽期:
1980—2007,从互联网诞生、小型机普及,到2007年谷歌论文的发表,互联网飞速发展下的大数据
概念期:
2008—2018,正式提出概念到4G普及,移动互联网全球扩张下的大数据概念,AI再现生命力,云计算快速前进
精细耕作期:
2019至今,大数据背景下的数字化重提,融媒体、营销技术等基于数据的应用进入纵深发展
1.3 应用领域
大数据技术可应用的领域全面多样
宏观经济方面:
IBM日本公司的经济指标预测系统,印第安纳大学根据谷歌公司的心情分析工具对道琼斯工业指数进行预测,准确率达到87%;
制造业方面:
华尔街对冲基金依据购物网站的顾客评论, 分析企业产品销售状况;一些企业利用大数据分析实现对采购和合理库存量的管理, 通过分析网上数据了解客户需求、掌握市场动向。
农业领域:
硅谷某气候公司通过几十年的数据中进行精密图标分析,预测农场来年产量, 向农户出售个性化保险。
其他领域包括商业领域、金融领域乃至医疗保健领域等等,也有着十分广泛的应用。
2.分布式计算
2.1 基本概念
分布式计算是一种计算方法,和集中式计算是相对的。
随着计算技术的发展,有些应用需要非常巨大的计算能力才能完成,如果采用集中式计算,需要耗费相当长的时间来完成。
分布式计算将该应用分解成许多小的部分,分配给多台计算机进行处理。这样可以节约整体计算时间,大大提高计算效率。
2.2 发展历程
近30年来,分布式计算技术可谓是最为突出的成果之一,有效推动了计算技术发展。
第一个阶段在20世纪80年代中期到90年代初,在此阶段中主要核心就是需要应用程序可以支持信息共享,此时第一代分布计算技术营运而生。
第二个阶段是经过了90年代初,直到进入了21世纪,最初还处于第二代分布式计算技术刚刚发展阶段,在不断实践探索过程中不断发展,逐步出现成效,取得了一定成果。在此阶段的成果被人们称作“分布式对象技术”,此技术不同于第一代分布式计算技术,实现了在异构的网络计算环境中应用,能够在系统中进行有效控制,进而实现开发、管理以及相应的维护。
在第三个阶段中,以自主多Agent为主要特征,是第三代分布式计算技术较为突出的特点,但是并没有发展很好,目前仅仅能够使用到一些特定的应用中。
2.3 分布式计算技术
远程过程调用RPC
在构造分布应用中,RPC技术可以说是经验非常丰富的技术,该技术的出现主要是建立在UNIX系统基础上,而后通过演变发展而来的。不同的RPC执行协议其主要方向是一致的,即简化开发程序。从RPC作业过程看,可以看出,主要的作用机制就是通过重组后产生的函数调用的得出的数据,如同以往的过程化编程一般。在RPC客户端进程中会产生出形似标准的函数调用,但却不会本地执行操作,因此,可以将调用参数打包后发送到远程执行环境中,而后经过环境作用,将调用参数传入真正的执行函数当中。当完成函数执行后,该执行结果又向客户端串行化传回,接着由客户端函数传给调用者。
基于消息的中间件
基于消息的中间件,即“MOM”,实现MOM主要方式就是,采用信息之间的交换,通过消息的相互作用处理分布数据,对系统实施有效控制。其中记录主要是一个字符序列,其中不仅具有与应用相关的数据,还涉及到了控制数据,比如存储、路由、跟踪应用数据、检索等,对排队系统进行全面的控制。最大特点是可以同时支持同步和异步两种通信方式,但是,尽管MOM较为成熟、稳定,得到广泛应用。
进程间通信机制
关于IPC的作业,选取通信模块作为信息传输工具,实现与客户机之间的通讯。其中,数据的传输以Socket作为支撑,经过服务器转换处理,实现不同数据格式之间的转换,从而形成一套完整的运行体系。之所以选择Socket作为支撑,是因为其支持全双工通信,能够满足不同网络协议通信需求,当客户端向服务器发送请求时,其内部就会形成通信进程,选取IP协议或者TCP协议完成通信。
分布式对象计算(DOC)
在DOC中,不仅具有面向对象计算模式,还包含了Client/Server计算模式。其中的对象主要指的就是一种可以提供服务、可确认、封装的实体。在此种面向对象技术的应用下,可以较好的简化非常复杂的工作,比如集成分布、异构信息系统中的部分工作,通过简化后,可以通过更加客观的视图进行展现;实际上,所谓的分布对象,具体主要指的就是处于分布、异构环境中的不同方面的应用,不同的应用所产生的反映也不同,在此基础上,可以使得接口调用对象的功能得以充分发挥,而在对象内部功能上,无论处于何种位置,都能够看清。
3.课程大作业介绍
利用多种加速方式,实现对64*2000000个数据的累加求和、求最大值、排序三种算法的加速,采用两台计算机实现分布式计算,并通过socket实现通信,尽可能提高加速比,加速手段可包括:多线程、多进程、SSE指令集、Openmp加速、Cuda显卡加速,以及拓展部分:实现非windows系统的算法加速。
结束语
下一篇博客将会简单介绍各种加速手段,并给予相关代码及结果展示
更多推荐
所有评论(0)