简介: 本文从数据科学概念、背景和现状切入,引出加速数据科学的新方式Mars,并介绍了Mars具体能解决的一些问题和背后的逻辑、哲学,同时对Mars整体数据处理流程进行了介绍。

本文分为4个部分:

Mars的背景和现状

Mars解决了什么问题

Mars背后的哲学

总结与展望

一、Mars的背景和现状

说到加速数据科学的新方式,就不得不说什么是数据科学,以下是维基的定义:

数据科学通过运用各种相关的数据来帮助非专业人士来理解问题。第一,它的目标是从数据中提取输入价值的部分,第二,它要生产数据产品,第三它结合了非常多重要的技术,包括数学、统计、机器学习、可视化,最后,它需要真正解决问题。

它包含三个方面,计算机科学、数学和统计、领域和商业知识。它们结合起来分别是机器学习、软件开发和传统研究,中间是数据科学。

数据科学技术栈包含语言、数据分析、数据工程、机器学习、Web开发、运维和商业智能。每个技术栈都包含不同的工具,提供不同的数据服务。

传统Python数据科学栈的三大底座是NumPy、Pandas和SciPy。NumPy是最核心的部分,它用来做数值计算,几乎其他所有Python的数据科学技术栈都建立在NumPy上,因为它有最基础的数据结构,也就是多维数组;另外,Pandas也用NumPy实现,它上面有很多API来进行分析操作;而SciPy主要负责科学计算。在此基础上,是机器学习和可视化,同时还有丰富的Python函数。

上面是Python数据科学技术栈整体的状况,他们有几大好处,比如广泛使用,是事实标准;上手成本低,容易为初学者和学生入门;和语言结合紧密,能用Python来组织函数调用。但是它们都是单机的库,不能处理很大的数据量,所以需要用到大数据的数据工程技术栈,比如Hadoop、Hive、Spark等。它们虽然支持多语言,没有强绑定,但是学习门槛比较陡峭,也需要对系统本身有足够的了解。做数据科学需要把精力放在数据本身,而不是工具,但是这几个库让工作围绕着库展开,而非数据。因此,我们是否能把这两个工作连接起来,利用传统的技术价值而不是关注大数据系统本身,来解决很多问题。

现在大家说摩尔定律已经失效,我们可以回顾一下它的历史。早期它通过复杂指令集和精简指令集的方式让速度提升,但是随着缩放比例定律和阿姆达尔定律的终结,未来是不是要20年才能达到2倍效率的提升呢?

另外随着深度学习、机器学习和AI的火热,机器学习模型也会越来越大,它的训练已经呈指数级增长,但是摩尔定律并没有追上机器学习模型训练发展的速度。

另外一个现状就是技术栈的问题,NumPy、Pandas等它们更多只能在单核上来应用计算,但是阿姆达尔定律下的核数是会越来越多,所以并没有很好地进行利用。同时,不管是计算量还是数据规模的增长速度,都超过了摩尔定律的速度,所以也不能用单机解决问题。

基于以上,加速数据科学主要有两种方式。第一是Scale up,利用多核和更好的硬件,比如GPU、FPGA和TPU等,以及现有的库,包括Modin、CuPy、Rapids等来提升效率。第二是 Scale out,利用分布式的方式来加速,因为单核的性能总归是有限的,可以利用Ray、Dask和Modin等。而结合Scale up和Scale out,就可以构建一个大规模的更好的硬件集成,比如今天介绍的加速数据科学的新方式Mars。

二、Mars解决了什么问题

Mars就是我们试图构建的“桥”,能来兼顾小规模和大规模数据处理。大规模数据处理能构建集群,有三种主要方式,第一是在物理机上,第二是kubernetes,第三是Hadoop Yarn的调度器上,拉起Mars的集群。

Mars的核心基础部分对应着传统Python数据技术栈,比如Mars Tensor对应NumPy,DataFrame对应Pandas等。而构建在这个基础之上的,是Mars Learn模块,它可以兼容Scikit-learn API,能简单地进行更大数据规模的分布式处理。此外,Mars还支持深度学习和机器学习的框架,比如能轻松运行TensorFlow、PyTorch等,而且可视化也可以在Mars上宣布。除此之外,Mars还支持了丰富的数据源。

从传统Python技术栈到Mars也非常简单,比如在NumPy和Pandas里要变成Mars,只需要替换import,然后后面变为延迟执行即可。

普通的Python函数,在调用的时候变成mr.spawn来延迟这个过程,最后通过execute来并发执行,不用担心Mars是运行在单机上还是分布式运行。

而Mars上的TensorFlow大部分也一样,区别在于main函数部分的变化。

三、Mars背后的设计哲学

第一是分而治之,不重复造轮子。比如创建一个Mars的Tensor,对里面所有元素进行求和操作,在触发execute之后,Mars会生成小任务的计算图,它可以将小任务调度到分布式的集群中来运行。此外还做了很多优化,通过算子融合来提升性能。

第二,在Mars的世界,一切皆可并行。在Mars里实现了并行正则排序算法,比如创建一个cluster,有5个Worker,每个Worker是8核32G,那么相比单机的NumPy函数,它提升了4倍。

下面看下Mars整体数据的处理流程。我们通过客户端的代码触发执行,生成一个粗粒度的计算图,然后通过Web服务器提交任务,并将任务转发给Scheduler,然后在这里切分成小任务。随后,Scheduler根据Worker工作负载的情况来把它分发到各个机器上运行,这里会用到调度的策略等等。这个过程中,Mars会自动触发数据传输工作,保证在节点执行的时候它所有输入的数据都在这台机器上。此外Mars还会自动进行Spill操作,当我们内存不够的时候,它会把不常用的数据Spill到磁盘上,让Mars可以处理远超过这个内存能放下的数据规模。

四、总结与展望

首先Mars是完全开源的项目,完全遵循开源的规范,而且项目的progress都能在GitHub上看到;其次Mars有兼容性,它的API高度兼容NumPy、Pandas和Scikit-learn;同时,它的单机、多核与分布式的处理性能也更高;最后是交互性,Mars Remote可以把以前的代码变成分布式代码,并且内部也可以与第三方库做集成。

Github地址:https://github.com/mars-project/mars

下面是关于Mars未来的展望,大家可以访问专栏。未来我们的开发计划重心放在提升Mars learn的接口覆盖率和Mars DataFrame接口覆盖率上,统一单机和分布式执行层等等。

原文链接

本文为阿里云原创内容,未经允许不得转载。

js调用数科阅读器_【JS】「直播回顾」Mars:加速数据科学的新方式相关推荐

  1. js调用数科阅读器_阅读大型 JavaScript 源码时有什么好用的工具?

    这是一个为了阅读复杂 JavaScript 代码而开发的工具,以阅读 Vue.js 为例,在 Sublime Text 中打开后感觉非常复杂,不知道该从哪里读起: 使用 lambda-view 打开后 ...

  2. 「直播回顾」Mars:加速数据科学的新方式

    简介: 本文从数据科学概念.背景和现状切入,引出加速数据科学的新方式Mars,并介绍了Mars具体能解决的一些问题和背后的逻辑.哲学,同时对Mars整体数据处理流程进行了介绍. 本文分为4个部分: M ...

  3. 华旭金卡js调用身份证阅读器和易联众社保卡阅读器

    近期公司做身份证读卡器(华旭金卡的产品)和社保卡读卡器(易联众的产品)功能,识别后进行相应人员的参保信息查询.可算是长知识了,弄了整整两天.今天就总结一下,因为在华旭金卡的官网上只有c,pb,vb的D ...

  4. ❤️一文掌握HTML+CSS+JS开发小说阅读器❤️

    上周<让CSS3中Transform属性带你一文实现炫酷的转盘抽奖效果>博文中说到这周出一篇介绍小说阅读器开发的博文,可能是离职不上班的原因,在家变得也懒散了一些,本来是打算上周三时候动手 ...

  5. 小说下载阅读器_初始简单版

    小说下载阅读器_初始简单版 相信园子里面的很多人和我一样喜欢阅读小说,下面是这几年用的比较多一点的阅读器,功能相对完整. Windows本地程序/手机 1.http://www.mybook66.co ...

  6. 「SAP技术」SAP MM 采购信息记录新价格不能体现在采购订单新的ITEM上?

    「SAP技术」SAP MM 采购信息记录新价格不能体现在采购订单新的ITEM上? 下午,一个同行朋友问我一个问题,说她修改了某个物料的采购价格,然后去一个老的采购订单上增加一个新的item,deliv ...

  7. 安卓手机小说阅读器_【手机软件】安卓+iOS双箭齐发,全网小说阅读神器,且iOS版已上架!无广告、免登陆、全免费!...

    Hello,大家好,我是春哥!每天记得打卡哦!感谢每一位小伙伴们的关注和支持!免责声明 大部分资源来源于网络,仅供学习和交流使用,如有侵权请联系我们删除. 每期文章末尾都会有关键词,在公众号发消息处回 ...

  8. 安卓手机ppt阅读器_手机文件管理器,安卓自带的清理垃圾神器

    不论哪个品牌的安卓手机,一般自带有手机文件管理器,但是大部分人不知道它的存在,更不知道他的功能,今天小编就开一贴,科普一下: 手机文件管理器,是最简单.实用的安卓文件管理工具,能识别标识文本.音乐.视 ...

  9. epub阅读器_推荐一款Epub(windows版)阅读软件,附下载安装教程

    软件 [名称]:Adobe Digital Editions [大小]:8.65 MB [语言]:简体中文 [安装环境]:Windows 软件介绍 Adobe推出的轻量级电子书阅读器,完美支持epub ...

  10. python写小说阅读器_用python实现自己的小说阅读器!

    前一段时间书荒的时候,在喜马拉雅APP发现一个主播播讲的小说-大王饶命.听起来感觉很好笑,挺有意思的,但是只有前200张是免费的,后面就要收费.一章两毛钱,本来是想要买一下,发现说的进度比较慢而且整本 ...

最新文章

  1. #研发解决方案#智慧的太空桥管理智慧设备
  2. Linux执行yum不显示时间,Linux停的yum命令详解(朝花夕拾)
  3. .NET Core 仿魔兽世界密保卡实现
  4. 为什么程序员都不愿意升级 Java 8?
  5. C++结构体,联合体与枚举类
  6. 末日帝国——Agile公司的困境 (4)
  7. 错误解决办法:2006:MySQL server has gone away
  8. 黑马程序员pink老师前端入门教程,零基础必看的JavaScript基础语法视频教程(jQuery2)
  9. 30本互联网相关的电子书
  10. 计算机视觉中的数学方法——7. 2 酉空间与酉矩阵
  11. android 获取声音资源,Android从视频中提取出音频
  12. LVDS 显示屏的两种接口标准:VESA 和 JEIDA;单/双路 LVDS 信号
  13. 30分钟学会shapely空间几何分析
  14. 本次给大家来个简单的一元二次方程求解的编程
  15. c语言编程能力风暴,学编程得从娃娃抓起:Abilix 能力风暴 发布 全新教育机器人伯牙...
  16. vue简单的金额计算
  17. ◮OpenGL-混合
  18. Word 2016 撰写论文(3): 文献中常见的表格(三线表)制作
  19. dmr中继 自建服务器,海能达DMR中继接入BrandMeister教程
  20. 手把手教你申请CCC(City Colleges of Chicago)教育邮箱

热门文章

  1. 合成器基础(三) - 减法合成器的工作原理
  2. Java基础常见面试题及详细答案(总结40个)
  3. 华为悦盒6108V9-V9U-V9_PUB-6108V9C-非高安版-通刷精简固件及教程
  4. 计算机模块中的画板英文,电脑中将画板导入Mockingbot的方法
  5. a链接下载文件名乱码
  6. Python绘图实例24:三层嵌套正方形绘制
  7. 记录一次破解某加固APP的修改纪录
  8. ORB-SLAM:一种通用的(全能的)精确的单目SLAM系统(ORB-SLAM论文翻译)
  9. Python读写txt文件
  10. 合并时显示是无效的m3u8文件_如何合并m3u8及ts文件