阿里云专门为生物基因计算提供了相应的计算解决方案。今天生物狗课堂为大家介绍一下阿里云的批量计算(BatchCompute)是什么,以及如何应用到基因计算这个场景中来。

 

什么是批量计算

批量计算(BatchCompute)是一种适用于大规模并行批处理作业的分布式云服务。BatchCompute可支持海量作业并发规模,系统自动完成资源管理,作业调度和数据加载,并按实际使用量计费。

通俗的讲,就是你提交一个程序(任意的计算机程序),让它在阿里云机房中的多台机器上同时运行,然后把结果写入到指定的位置(OSS,阿里云对象存储服务),你可以去指定位置查看结果。

理解批量计算

1. 基础架构

BatchCompute整体架构,包括:

  • BatchCompute入口

    批量计算服务提供基于HTTP的API,在API之上我们还封装了一些工具,比如SDK,命令行工具,控制台等。用户可以使用这些工具向BatchCompute提交作业,查询作业运行状态,并管理作业生命周期(比如停止已提交的作业,释放已完成的作业等)。

  • 运行环境

    BatchCompute通过虚拟化技术构建沙箱,并在其中运行用户程序,确保用户环境和用户数据的安全性。用户可以自行定制其虚拟机镜像。

  • OSS持久化存储

    OSS 有完善的用户管理和安全机制。BatchCompute使用 OSS 作为持久化存储。用户的程序、自定义Docker镜像、输入输出数据都存储在 OSS 中。

2. 功能介绍

(1) 提交作业

用户使用工具(如SDK,命令行工具等)向 BatchCompute 提交作业,BatchCompute 使用用户指定的镜像(如:ubuntu)启动虚拟机(VM), 在虚拟机中运行用户程序, 运行完成后释放虚拟机(VM)。

  • BatchCompute中使用OSS作为持久化存储。您可以在程序运行完成时将结果数据保存到OSS中。在批量计算中,也可以通过文件接口的方式访问OSS上的数据,请参阅OSS挂载功能
  • BatchCompute程序默认运行在VM中,也可以支持 Docker容器。 也就是说,您可以自定义ECS镜像或者使用Docker,在镜像中安装自己需要的任何软件,用来运行您的任何程序。

作业描述

用户需要提交一个作业(Job)描述JSON文件到批量计算服务,该JSON文件中详细描述了需要执行那些程序(可以多个程序),运行哪些程序需要启动多少台机器,机器的规格(内存和CPU等),运行日志打印到哪里,完成后结果输出到哪里等。

一个作业(Job)包含多个任务(Task), 按照你指定DAG描述的顺序执行。

每个任务定义了使用哪个镜像,使用什么实例规格,运行哪个程序,需要多少台机器运行,还有结果存储在哪里等。

(2) 管理我的作业

您可以使用工具(控制台,命令行工具等),查看我提交的作业,可以停止,重启,或删除作业。 查看各个任务的情况,各个实例(VM实例)的情况和日志。下图是控制台的作业管理界面:


(3) 使用集群

由于每次运行程序前需要启动虚拟机,会占用一定的时间(一般几分钟左右),遇到忙时有可能申请不到资源(虚拟机被其他客户使用了),您提交作业后可能需要等待一段时间才能运行。

如果您想要提高运行效率,可以先创建好集群,指定需要的虚拟机数量(比如:5台)和镜像ID,BatchCompute会为您分配好机器并启动,这些机器会一直处于运行状态,一旦您提交作业上来,就可以直接运行,效率较高。

 

生物数据分析

生物基因企业利用BatchCompute完成大规模基因组测序分析。

 

文章由基因学院(www.jiyinxueyuan.com)整理,如需转载请联系我们。