将软件工具塞进“容器”
时间:2017-12-07

  软件工具进入“容器” - 新闻 - 科学网

  2015年,遗传学家Guy Reeves试图安装一个名为Galaxy的免费软件系统,以在他的生物信息学项目中取得进展。但是,经过一两天的沮丧,他开始向IT人员求助。他们帮助Docker安装了模拟计算机环境的技术。这使得里夫斯能够利用他所需要的任何特殊版本的银河系统。为此,Docker也被称为容器。

  马克斯·普朗克进化生物学研究所的研究人员是使用这种容器的许多科学家之一。随着科学的数据密集度越来越高,越来越多的软件正在被写入从这些数据中提取知识。然而,很少有研究人员有时间和计算机技术来充分利用它。整合软件代码的容器,软件包和运行它的计算环境缩小了差距。他们帮助研究人员使用更广泛的软件来加速实验并提高可重复性。

  容器本质上是一个轻量级的,可配置的虚拟机操作系统和一个虚拟版本的硬件,允许软件开发者共享他们的计算环境。研究人员使用它们来分配复杂的科学软件系统,从而允许其他人在与原始开发人员使用相同的条件下运行该软件。在这种情况下,容器可以消除计算生物变异的一个来源。然而,加州大学戴维斯分校生物信息学家C. Titus Brown说,虚拟机相对资源密集,灵活性较差,容器更紧凑,可配置。虽然配置底层的集装箱化软件可能很麻烦,但可以根据用户的需要修改容器以添加或删除工具。布朗说,这是提高他们的知名度的灵活性。

  收拾东西

  实验室制造的工具很少使用。它们通常以脚本或编程源代码的形式进行处理和配置。大多数软件需要额外的工具和库,但用户可能没有安装它。即使用户访问软件并运行它,计算环境的差异也会无意中改变其性能并影响重现性。容器通过将所需软件运行的计算环境的关键元素打包到轻量级虚拟框中来降低复杂性。他们不会改变运行软件所需的资源。如果一个工具需要大量的内存,它的容器也将需要它。但是,他们使软件更易于使用,结果更可重复。

  根据使用的软件,容器运行在Windows,Mac OS X,Linux或云中。 Docker,Singularity和rkt是比较流行的容器。他们可以把一切从单一的过程包装到一个复杂的环境,如银河系。这些工具可以相互交互,如共享数据或创建管道。由于每个应用程序都保留在自己的盒子中,即使是经常冲突的工具也能和谐地工作。

  Docker使用一个名为镜像的可执行程序包。它包括所包含的工具以及开发人员的计算环境为了创建一个Docker镜像,开发人员需要指令来创建一个配置文件,以及如何下载和构建所有需要的工具,然后运行该文件来创建一个可执行的程序包所有用户需要做的就是获取包并运行它。

  加利福尼亚州伯克利国家能源研究科学计算中心的计算机科学家德博拉·巴德(Deborah Bard)帮助许多研究人员将他们的软件安装在实验室的超级计算机上,她回想起在安装复杂的软件通道进行望远镜模拟和分析之前的三四天。使用容器将把这个时间减少到几个小时,而不是搞清楚编译器的版本,你可以把时间花在研究上。

  获取容器

  虽然计算机专家有多种选择集装箱平台的可能性,但2013年推出的开源项目Docker可能是科学家中最受欢迎的项目之一。它有一个大型的预制容器注册表和一个竞争对手无法比拟的活跃在线社区。但是,许多高性能计算系统管理员不使用Docker,因为它需要高级别的管理访问权限才能运行。这种类型的访问可能会允许用户复制或损坏系统上的任何内容。基于支付模式的附加组件使得用户可以逃避这个要求,但是不能用于免费的社区版本。但是,他们可以利用不同的容器化工具,如Shifter,不需要完整的权限或root权限,但仍然支持Docker镜像。

  布朗解释说,根访问的要求是Docker被广泛采用的最大障碍。许多学者在其各自的机构或政府管理的高性能计算集群上运行生物信息学工具。当然,他们没有最多的系统管理权限。尽管亚马逊网络服务提供的云计算每年支付大约5万美元,但布朗表示,它只占其所做的三分之一。其他人则在密歇根州立大学的计算机集群中,他没有最高级别的权限,因此布朗为他的软件工具创建了Docker容器,但很少使用它们。

  研究人员可以通过Docker平台自己的托管服务或容器寄存器(如BioContainers,Dockstore)访问Docker镜像。加州大学的研究员Brian OConnor曾经是一个Dockstore注册技术工程师,他建议科学家研究容器注册工具在他们的项目上工作,而不是试图发明一些已经存在的东西。

  不过,离岸服务代码首席执行官西蒙·阿达尔(Simon Adar)表示,实际上让底层的Docker软件正确运行是非常具有挑战性的。这太技术了,最初是为开发人员部署复杂系统而设计的。两年前推出的Code Ocean创造了Adar称为Compute Capsules的服务。它包含代码,数据,结果和Docker容器本身。研究人员上传他们的代码和数据,然后在网络浏览器中执行软件,或与其他人分享。 Adar比较这个过程在网上分享视频。该公司甚至提供小部件,允许用户在网页中嵌入可执行代码。

  提高重复性

  纽约大学物理学家Kyle Cranmer在CERN的ATLAS项目(寻找新的基本粒子)工作时说,虽然围绕可重复性的大部分争议都集中在数据和代码上,但是计算环境本身也起到了很大的作用。这真的很重要。克兰默说。例如,研究不同计算环境下的结构分析工具的性能,发现操作系统的选择有相当大的影响。

  然而,乔治华盛顿大学的机械和航空航天工程师Lorena Barba认为,只有打包工具的质量很高,集装箱才能运转良好。如果研究人员把不好的代码塞进容器并分享,我们注定会失败,布朗说,没有资助机构和期刊的压力,单靠容器化技术不能使研究人员突然接受可重复性的可计算性。

  伊利诺伊大学厄巴纳 - 香槟分校的统计学家维多利亚·斯托登说,很少有研究人员使用容器。部分原因是缺乏需求或意识,但他们可能没有相关的电脑技能也是一个重要原因。

  但是,这一切正在悄然改变。石溪大学(Stony Brook University)的生物信息学家乔纳斯·阿尔梅达(Jonas Almeida)表示,谷歌和微软等公司已经开始在其容器中运行一些软件。大型生物信息学项目也开始采用集装箱化技术。 Almeida预测,在五到十年内,科学家将不再需要担心下载和配置软件,工具将简单地集装箱化。这是不可避免的。阿尔梅达说。 (宗华编)

  阅读更多

  “自然”相关报道