AI 科技评论按:日前,阿里巴巴正式开源分散式科学计算引擎 Mars。Mars 是由阿里巴巴统一大资料计算平台 MaxCompute 研发团队历经一年多研发的基于张量的统一分散式计算框架,用其进行科学计算时,不仅使得完成大规模科学计算任务从 MapReduce 的上千行程式码降低到 Mars 数行程式码,还能大幅度地提升科学计算效能。
对于科学计算领域来说,Mars 意义重大,其突破了现有大资料计算引擎的关系代数为主的计算模型,并将分散式技术引入科学计算、数值计算领域,极大地扩充套件了科学计算的计算规模和效率。目前,该引擎在阿里巴巴及其云上客户的业务和生产场景中都的得到了应用。
作为新一代超大规模科学计算引擎,Mars 主要具备三项核心能力:
在系统设计方面,Mars 则具备以下四大特点:
第一,对科学计算任务采用分而治之的方式。
给定一个张量,Mars 会自动将其在各个维度上切分成小的 Chunk 来分别处理。对于 Mars 实现的所有的算子,都支援自动切分任务并行,这一自动切分过程在 Mars 这里被称做 tile。
第二,采用延迟执行机制和 Fusion 优化。
目前,基于 Mars 的延迟执行机制,Mars 编写的程式码需要显式呼叫 execute 触发,不过使用者在写中间程式码时,并不会需要任何的实际资料计算。这样的好处是可以对中间过程做更多优化,让整个任务的执行更优。在优化方面,Mars 目前主要使用了 fusion 优化,即把多个操作合并成一个执行。
第三,支援多执行绪模式、单机丛集模式以及分散式等多种排程方式:
第四,支援程式码向内和向外伸缩:Mars 灵活的 tile 化执行图配合多种排程模式,可以使得相同的 Mars 编写的程式码随意向内(scale in)和向外(scale out)伸缩:
目前,Mars 实现了 tensor 的部分—— numpy 分散式化,实现了 70% 常见的 numpy 界面。而后续的 Mars 0.2 的版本,也正在尝试将 pandas 分散式化,即将提供完全相容 pandas 的界面,以构建整个生态。
Github 开源地址:
https://github.com/mars-project/mars
资料来源:阿里技术
点选阅读原文,检视阿里巴巴开源深度学习框架 X-Deep Learning 相关报道