跳过主要内容

Qmachine:Web浏览器中的商品超级计算

摘要

背景

云计算的持续进步为科学计算提供了新的机遇,特别是对于分布式工作流程。Modern web browsers can now be used as high-performance workstations for querying, processing, and visualizing genomics’ “Big Data” from sources like The Cancer Genome Atlas (TCGA) and the International Cancer Genome Consortium (ICGC) without local software installation or configuration. The design of QMachine (QM) was driven by the opportunity to use this pervasive computing model in the context of the Web of Linked Data in Biomedicine.

结果

QM是一个开放的公开可用的Web服务,充当消息传递系统,用于过帐任务和HTTP中检索结果。这里描述的说明性应用分配了20的分析肺炎链球菌肺炎料共享后缀的基因组。因为所有分析和数据检索任务都是由志愿者机器执行的,所以需要很少需要的服务器资源。任何现代Web浏览器都可以在不安装任何额外插件或程序的情况下提交这些任务和/或志愿者以执行它们。客户端库提供高级分布模板,包括MapReduce。这一表现出于目前依赖于昂贵的服务器硬件运行“下载并安装”软件已经收集了大量的社区兴趣,因为QM在12个月内收到来自87个国家的20多万API呼叫。

结论

QM被认为足以提供计算和数据密集型工作流所需的可扩展生物信息学解决方案。矛盾的是,网络浏览器的沙箱代码执行也被发现使它们,作为计算节点,能够解决生物医学环境的关键隐私问题。

可用性

QM的支持部署可在https://v1.qmachine.org.,其源代码可用https://github.com/wilkinson/qmachine..这些说明性的例子和它们的依赖关系在http://q.cgr.googlecode.com/hg/index.html还有一段视频和存档的基因组数据。

背景

用于生命科学的高性能计算(HPC)正在经历一场根本性的重塑[ar 欧宝 ].对处理器密集型资源的依赖(不断扩大的基因组学工作流程通过这种资源汇集)正在让位于分布式数据密集型基础设施,如TCGA和ICGC [ar 欧宝 ].因此,淹没数据中心的不可移动体积需要“超越数据洪水”的解决方案[ar 欧宝 ]颠倒传统的传输模型,以便计算到数据行驶,而不是反之亦然。然后,强调是最大化数据的可用性和应用程序的可移植性。云计算基础设施对生物医学应用的越来越多的利用反映了HPC的重新调整,如最近国家健康研究所(NIH)与亚马逊在1000个基因组项目中的伙伴关系[ar 欧宝 ].

与此同时,HPC项目如SETI @ HOME [欧宝直播官网appar 欧宝 ],折叠@ home 欧宝直播官网app[ar 欧宝 ]和boinc [ar 欧宝 ]构建了分布式平台,聚集了商用硬件和志愿计算周期,以推动计算密集型的科学工作流程。事实上,Folding@Home项目目前使欧宝直播官网app用的是来自25万台个人电脑和视频游戏机的中央和/或图形处理单元[ar 欧宝 ].为了在如此多的物理机器和硬件平台上协调集中的工作,研究人员提供了客户端应用程序,他们必须说服志愿者下载并永久安装在他们的机器上。这些应用程序的入侵范围很广,从只在机器空闲时运行的程序,如开拓性的SETI@home,到永远在线的后台服务,如Condor [欧宝直播官网appar 欧宝 可能会对机器的性能产生明显的影响。

万维网为HPC提供了不同的大道,这就是我们用QM的探索 - 一种小说方向。通过创建系统的更大挑战,克服了优化QM的QM的诱惑,不仅要在Web上分发计算,而且是“Web”本身的更大挑战。作为平台的仔细研究表明,必要的组件确实准备好了组装。

JavaScript(JS)语言不仅是“真正的语言”[ar 欧宝 ]但也是“C的衣服”[ar 欧宝 ]支持功能和面向对象的编程样式。然而,与LISP不同,JS广泛应用于学术界以外,并在十三年以上的十二年中排名前12岁以下ar 欧宝 ].JS的科学图书馆相对稀缺,虽然许多专门的图书馆如ebi的生物 -ar 欧宝 , NIH/NHGRI JBrowse [ar 欧宝 和最近的基因组地图[ar 欧宝 已经出现了利用这些计算资源的广泛可用性,特别是在基因组浏览应用领域。

Web浏览器在严格控制对机器资源访问的沙箱环境中执行JS,现在这些沙箱实现了标准化api,提供了硬件加速3D图形等本地功能。所有现代浏览器,甚至一些浏览器插件都包含JIT编译器以提高性能[ar 欧宝 ].例如,JS中的正则表达式在Perl不再匹配的级别上执行[ar 欧宝 ,这种语言在生物信息学应用中最常与字符串处理联系在一起。此外,这些高性能的JS环境预装在今天销售的每台个人电脑上,以及智能手机、平板电脑、游戏机,甚至电视机上。因此,web浏览器代表了一种高性能计算的现代路线,非常适合“众包”模式[ar 欧宝 ].实际上,JS中目前的生物信息学库的快速增殖还反映了基于网络的“社会编码”环境的出现,这为大规模合作提供了全面的新机遇[ar 欧宝 ].此外,浏览器平台的网络能力允许它动态导入代码和数据,从而在不同机器上的多个浏览器中协调分布式工作流,社交计算核心的特征[ar 欧宝 ].因此,本报告中描述的内容可能被解释为机器的社交计算[ar 欧宝 ],延伸松散的分布模型,如MGRID [ar 欧宝 ].

生物医学科学中大数据的出现已经与参考数据库的扩散有关,例如每年审查的数据库核酸研究[ar 欧宝 ].链接数据资源Web的聚合独立于托管它们的机构,通过诸如分布式注释系统(如分布式注释系统)的全面数据模型[ar 欧宝 ],我们还探索了工作流组件的骨干[ar 欧宝 ].然而,它现在充分清楚,数据资源的链接,无论域如何,都是由W3C资源描述框架(RDF)的二级谓词的域中性和最佳描述,该框架(RDF)是基础的第三代Web技术[ar 欧宝 ar 欧宝 ar 欧宝 ].

RDF方法扩展了唯一资源标识符(uri)的基本依赖,用于标识和定位数据(通过url),这些数据只需要一个web浏览器,任何研究人员都可以很好地利用这些数据,无论其专业知识或兴趣领域如何。欧洲生物信息学研究所(European Bioinformatics Institute)在所有数据服务中采用RDF框架戏剧性地说明了其目前的使用范围[ar 欧宝 ].据我们的一些工作也说明了[ar 欧宝 -ar 欧宝 [开发用于TCGA的SPARQL端点,服务器端托管数据的卷不是开发使用这些数据的Web应用程序(“Web Apps”)的重要障碍。另一方面,尽管有像Taverna这样的优秀框架,但数据分析的工作流程的机制尚未变成用户友好的商品。ar 欧宝 ]并分享[ar 欧宝 ].一种可能是,底层web服务本身需要立即进行组装——即使是对于已弃用或过时的过程版本。这是现代关注工作流结果重现性的绝对要求[ar 欧宝 ].我们探索了使用模块化浏览器的Web应用程序在标准生物信息学应用中提供此功能,例如图像分析[ar 欧宝 ]序列分析[ar 欧宝 ].这两项努力的成功加强了这样一种说法:脚本标签加载(web浏览器用于加载web应用程序的相同机制)可以在多个物理机器上协调和分发生物信息学工作流的执行。下面Results部分详细介绍的说明和验证示例将通过分析20个不同的基因组,扩展上述两份报告中的第二份中所采用的序列分析的相同示例肺炎链球菌肺炎料在平行下。

方法

QM提供作为Web服务(PaaS)的分布式计算平台。它的建筑(见图ar 欧宝 在结果中,将Web 3.0技术的一般模式与现代社交网站通过从持久呈现层解耦的模型结合使用的模型,使得前者在客户端运行作为消耗应用程序编程的Web应用程序后者在服务器端呈现的接口(API)。QM还将Web应用程序的演示文稿和分析层解耦,使得第三方可以将QM Web服务嵌入到自己的Web应用程序的一部分。

图1
图1

抽象架构。自组装QMachine的体系结构突出了处理(矩形)和传输带宽(箭头)的分布。QM不仅分发执行执行所需的计算周期n不同的程序(Σ1,2,......,n),但是还需要带宽检索相应的输入数据(D.1,2,......,n),由各自的url处理(d1,2,......,n).该组件由提交者发出,该提交者发出由许多志愿者Web浏览器会话核准的密钥(V.1,......,n).然后,代码被转移到QM上的一个队列中,由自愿的浏览器提取它。

为了提供这种功能,QM包含三个主要组件:API服务器、web服务器和网站。API和web服务器完全是用JS编写的,网站是用HTML5、CSS和JS编写的。QM的设计或接口并没有将其绑定到特定的开发堆栈上,但我们希望将项目构建为一个真正的Web计算“设备”,这促使我们尽可能多地使用JS实现代码。这一策略也带来了意想不到的红利;服务器端组件无需考虑其运行的硬件和操作系统,这极大地简化了通过平台即服务(PaaS)部署到云的过程[ar 欧宝 ].

此报告还提出了代码示例(请参阅结果),该示例(请参阅结果)可以从嵌入QM Web服务的任何网站运行。这些例子都是用JS编写的,但其中一些也使用CoffeeScript,“一部分为JavaScript的小语言”[ar 欧宝 ].许多常见的科学语言可以转化为JS和JS,以及此目的的全面项目列表http://bit.ly/altjsorg.

API服务器

API服务器是一个程序,响应客户端通过标准超文本传输​​协议(HTTP)发送的请求。然后,程序根据其方法,目标URL和嵌入数据解释请求。QM的API呈现三个操作,如表所示ar 欧宝 .作为帖子的一部分发送的数据应以JavaScript对象表示法(JSON)格式格式化;来自QM的响应数据也是JSON格式化的。请注意,客户端不需要是浏览器 - 任何可以通过HTTP和操作JSON格式数据传达的软件包都可以直接使用QM。

表格1HTTP API

API服务器实现为简单的Node.js [ar 欧宝 程序使用节点包管理器(NPM)从QM自己的公开可用模块“QM”加载并执行它的所有应用程序逻辑[ar 欧宝 ].该模块支持5个不同的数据库作为持久存储的目标:ar 欧宝 ], MongoDB [ar 欧宝 ], PostgreSQL [ar 欧宝 ],redis [ar 欧宝 ]和sqlite [ar 欧宝 ].根据其高性能和流行度选择了这五个开源数据库,以及它们对设计的差异有助于指导QM作为异构数据库景观的HPC解决方案。替代实现对MongoDB的默认使用的相对优点如下。CouchDB和MongoDB都是以文档为中心的NoSQL数据库,具有MapReduce API,了解JS,但他们的设计非常不同。CouchDB不仅仅是一个数据库 - 它几乎足以自行实现QM,因为它捆绑了Web服务器和一个HTTP-Accessible API。通过对比度,MongoDB具有模拟PostgreSQL和SQLite使用的传统关系风格的API,跨节点的聚类和“分布”(水平分区)重点更强大。PostgreSQL代表关系数据库管理系统(RDBMS),传统上电源企业应用程序和数据仓库的工作人员,而SQLite则表示嵌入式(无服务器)数据库。Redis是一个内存密钥值存储,通常被称为“数据结构服务器”,因为其密钥可以包含字符串,哈希,列表,集和排序集。在这种各种存储系统中映射QM持久表示层的能力简化了部署和维护。返回此报告的说明性示例的服务可用https://v1.qmachine.org.使用MongoDB。

QM的API服务器支持跨源资源共享(CORS) [ar 欧宝 ]因此,任何网页都可以嵌入QM,以在Web浏览器上分发工作流,而不会违反相同原点策略[ar 欧宝 ].网络浏览器对CORS的广泛支持[ar 欧宝 ].

网络服务器

像API服务器一样,Web服务器被实现为Node.js程序,其逻辑包含在相同的NPM模块“QM”中。也就是说,可以简单地通过运行节点内置模块管理系统来实现所有QMachine的基础库的安装:npm安装qm.值得回顾QM的服务器端组件的最小作用(见图ar 欧宝 在结果)。Web服务器仅存在于向客户端计算机提供演示/分析层的资源。因为这些资源是静态的,所以Web服务器可以由像Apache这样的现成的Web服务器替换[ar 欧宝 ]和Nginx [ar 欧宝 ].

网站

网站用作QM的演示/分析层。它是作为QM API的浏览器客户端开发的,因此它在HTML5,CSS和JS中实现,可以通过检查其源代码来验证https://github.com/wilkinson/qmachine..该网站由一个网页组成,单个网页通过XMLHTTPRequest(XHR)定期与API服务器通信,使用称为异步JavaScript和XML(AJAX)。但是,“Ajax”名称有点误导,因为XHR不限于处理XML数据;所有浏览器客户端与API服务器的通信都使用JavaScript对象表示法(JSON)。

当浏览器加载网页时,它最初仅加载呈现图形用户界面(GUI)所需的HTML,CSS和JS资源的演示层。在GUI负载之后,浏览器立即检索QM的分析层,完全写入JS。这种设计通过加载GUI更快地提高了用户体验,并且它将演示层的代码与分析层的代码隔离。因此,第三方可以嵌入QM的分析层,从而使用QM的持久表示层而不加载QM的呈现层,如实施例所示https://v1.qmachine.org/barebones.htmlhttp://q.cgr.googlecode.com/hg/index.html

QM的浏览器客户端将工作流程为一组变换,应以特定顺序应用于输入数据以产生输出数据。“任务描述”是包含变换的对象f,数据x以及在执行之前准备环境所需的任何信息。

如上所述,当浏览器指向时分发的客户端应用程序https://v1.qmachine.org.仅使用HTML5、JS和CSS等网络技术开发。为了保持所有浏览器和平台(包括移动设备)都支持的核心JS语法,代码开发由JSLint辅助[ar 欧宝 ].JSLint还可以直接在分析层中作为静态分析工具使用,以确定哪些任务可以被忠实地序列化为JSON,分发给志愿机器。通用图书馆,Quanah [ar 欧宝 ]也开发出来解决了QM异步数据传输中面临的许多并发挑战;因此,这里描述的原型的关键组件,因此也被公开可用开源。演示层使用jQuery [ar 欧宝 ]和Twitter Bootstrap [ar 欧宝 ]确保各种移动和桌面浏览器的一致外观。GUI另外尝试通过与Google Chrome Frame的可选集成来支持过时的浏览器[ar 欧宝 , HTML5 Shiv [ar 欧宝 ]和json2.js [ar 欧宝 ]但它只是礼貌地做到了。

演示程序

演示程序是用纯粹的JavaScript编写的,以便它可以在普通的Web浏览器中运行,而无需对任何本机应用程序,插件或附加组件的依赖项。它延伸了前一项研究的演示[ar 欧宝 [其中映射分解过程的映射分解用于在用户给定序列和完整细菌基因组之间找到最长的相似段。本研究中的演示不仅将使用其他机器上的远程执行来重现先前的结果,但它将在所有20个菌株中并行肺炎链球菌肺炎料目前可从国家生物技术信息(NCBI)中获取。它使用相同的通用序列映射的更新版本(USM)[ar 欧宝 ]前一项研究使用的库,由其在线存储库直接由精确版本引用。

结果

图中详述的qmachine的体系结构ar 欧宝 遵循Web 3.0技术的一般模式,通过使用服务器侧专门用于持久构造,并将其余程序逻辑留在客户端运行。QM使用键值架构以以最大化数据传输和后续数据处理所需的计算资源分布的方式协调志愿客户机计算机。该编排在图中突出显示ar 欧宝 :QM不仅分发了执行所需的计算周期n不同的程序(Σ1,2,......,n),但是还需要带宽检索相应的输入数据(D.1,2,......,n),由各自的url处理(d1,2,......,n).这种设计的动机是生物应用的限制,如下一代测序,限制因素往往是可用的内存而不是处理器速度。

QM的操作依赖于创建唯一标识符,以定义“框”,然后以类似于传统API键的方式与志愿者浏览器共享。该操作将在一系列的四个例子中描述复杂性增加,从(1)开始远程执行简单的代数操作,然后是(2)与元素的并行(MAP)转换相同的操作的分布阵列和(3)分布再次作为MapReduce程序的一部分;最后,(4)并行执行实际基因组序列分析,其中代码和执行分析所需的数据都是由单个提交者调用的,但然后由多个志愿者浏览器异步地解决和执行。最终的现实世界示例分发了处理和网络负载,如图所示ar 欧宝 .它说明了志愿者节点从独立开发和维护的多个源调用代码和数据的能力。这个说明性的系列也可以在YouTube网站上看到http://goo.gl/tnpMiQ

图2.
图2.

真实世界基因组分析的工作流程。(1)提交者交互式调用高级qm.map.来自Web浏览器的功能,其中URL二十不同肺炎链球菌肺炎料基因组作为输入,导致客户端向QM的API服务器提交20个独立的任务描述。(2)志愿者的浏览器,在QM的API服务器上轮询新的任务描述,找到并下载任务描述。(3)志愿者的浏览器在下载了三个外部资源后执行任务:来自GitHub的USM库,来自谷歌Code的JMat库,来自NCBI的细菌基因组。(4)志愿者的浏览器将任务执行的结果返回给QM的API服务器,并继续轮询新的任务描述。(5)提交者的浏览器,轮询对单个任务描述的更新,从QM的API服务器检索结果。

加载客户端库

QM的分析层由JS库提供,该库可以由任何Web浏览器自动加载,作为包含以下代码的任何网页的一部分:

一旦加载,JS环境将包含一个名为QM.使用方便的高级方法,可用于复制下面四个示例的结果。

(1)简单的代数操作

对于第一个说明性示例,让f是一个递增给定号码的函数x二,让x= 2.计算结果,fx),在志愿者机器上,我们可以使用QM.submit方法:

如在图示的其余部分中,在伴随的截图中描述和演示了该示例(http://goo.gl/tnpMiQ).还要注意,这种简单的操作很容易用CoffeeScript等其他语言表达[ar 欧宝 ]):

如“方法”所述,QM的架构不施加使用特定的编程语言,只要编译器到JS,Web的“汇编语言”[ar 欧宝 ],用远程呼叫分发。为了支持这一索赔,QM客户端库委托给编译 - 在JS中编写 - 用于CoffeeScript语言。有关可以将以其他语言编写的程序转换为JS的编译器列表,以便通过志愿服务浏览器来解释它们,请参阅http://bit.ly/altjsorg.

(2)简单的分布式地图

因为每个人QM.submit操作是异步呼叫,多个呼叫可以同时运行。因此,分布“映射”功能的执行是直接的,这是向阵列的每个元素应用相同的操作的高阶功能模式。这种模式在科学计算中是如此普遍存在的是,它保证了一个专用的方法,qm.map.,可以使用如下:

(3)简单分布式MapReduce

正如上面所示的“映射”功能一样,分布“减少”功能的执行是直接的,这是一个高阶功能模式,该函数图案同组阵列的元素,直到只有一个值保持。最近由zou等人调查。[ar 欧宝 [MapReduce编程模板是现代计算密集型生物信息学应用的核心。第三个例证通过随后使用“regly”在QM的志愿者上分发了分布式“映射”的结果,将MapReduce模式作为第二示例的扩展。

(4)现实世界基因组分析

第四个说明性示例评估了QM缩放上面演示的异步操作的能力,以便在真实的生物信息学工作流程中使用。该示例是分形映射分解序列对齐[ar 欧宝 ]它在QM的志愿者跨越QM志愿者分发,如图所示ar 欧宝 .它还展示了任何复杂性或阐述的库可以与调用这些库的命令一起分发给志愿者。具体地,QM调用序列分析过程的数据和库编码,但由志愿者浏览器完全解析和执行。它还示出了志愿者节点来调用来自独立开发和维护的多个源代码和数据的能力。

如在第一个例子中,我们有一些x我们希望通过一些功能来改变f, 以便x现在是一系列URL,它引用了NCBI托管的Fasta文件:

我们希望对每个FastA文件执行特定的序列分析,即混沌游戏表示的分数架MapReduce分解[ar 欧宝 ].因此,我们定义了一个函数f与之使用qm.map.将使用URL作为输入的方法,并将序列分析结果返回为输出:

然而,在我们的功能中存在关键挑战f取决于USM只有在加载外部库后才存在的函数。因此,要完全指定任务,我们需要包括USM作为...的一部分f或者以URL的形式传递给库的引用。在这种情况下,我们选择后一种策略,以便可以同时由每个志家狗并行下载库,而不会加重API服务器。每个外部功能可能具有多个依赖项,因此qm.map.接受可选env.参数使每个外部函数的依赖关系可以指定为要顺序加载的URL数组:

最后,我们将指定盒子参数明确用于演示目的。这盒子参数取代API键的位置,并允许志愿者在特定队列中执行任务。此机制允许提交者将任务指向不同的队列,并进一步启用使用像MapReduce等抽象:

将这些定义放在一起,我们现在启动了20个单独的基因组序列分析,用于同时执行

这些例子的完整版本可以在网上找到http://q.cgr.googlecode.com/hg/index.html.那里的版本包括所有20个的完整url肺炎链球菌肺炎料基因组和还指定的版本化库env..该页面还提供了这些示例的附带屏幕广播。

用法统计

像GitHub这样的社会编码环境中基于浏览器的工具的传播[ar 欧宝 ]特点是与社交媒体相同的膨胀动态。例如,虽然这是我们的第一个描述它的报告,但QM可以是 - 并且已经被社区发现了大。在2013年4月开始的12个月期间,QM收到了87个国家的2,100个IP地址的220万API呼叫超过1,800 QM“盒子”(令牌定义的代码和结果交换域),98个盒子接收更多超过1,000个电话,每个和16个盒子接收10,000个电话或更多。QM使用的统计数据在图中描述ar 欧宝 ,并且其用户的地理分布描述于图中ar 欧宝 .目前尚不清楚QM的使用情况与激励其开发的分布式计算基因组学网络应用程序有多规则,但其用户的广泛地理分布表明对在分布式计算中更一般的兴趣推动的吸引力。通过未经请求的报告在HPC媒体中的未经请求的报告加强了这种解释,例如HPCwire.(文章http://go.gl/9h5w03.) 和Insidehpc.http://goo.gl/bDkJZL).最后,如方法所指出的那样,所有服务器和客户端软件都是开源和许可许可的。浏览器客户端不需要包含在Web应用程序中的脚本标记加载,并且服务器就像通过NPM访问[ar 欧宝 ].因此可以想象,其他QM部署在其他地址使用,甚至可能在医疗中心的防火墙内,这是QM发展的具体意图。

图3.
图3.

使用数据的三个表示。此绘图显示从2013年4月到2014年4月收集的日志数据的全球使用QMachine Web服务。对其应用程序编程接口(API)进行了超过220万个呼叫,表明表中显示ar 欧宝 .这条细而实的曲线表示每小时对其应用程序编程接口(API)服务器的调用次数;QM在大约79%的一小时期间是空闲的(没有接收到呼叫),这些时间被省略了。细虚线表示由IP地址聚合的API调用的数量。粗虚线表示在QM上对特定“框”进行API调用的次数;有关QM方框的详细信息,请参阅结果部分。

图4.
图4.

API通话的地理分布。这说明了按国家作为世界地图的Qmachine Web服务的用法。由IP地址确定的87个国家的访客收到超过220万API呼叫。每个国家的绿色阴影都因苍白而异,而是与最大到最大的排名。

由于依赖于代码分发而不是代码执行,与协调这种最初大量使用QM相关的服务器负载非常小。事实上,支持上面描述的使用统计数据的部署(后面的服务器https://api.qmachine.org)从未被流量峰值所淹没,即使它运行在一个只有512 MB RAM、2 × 512 MB MongoDB数据库、没有硬盘驱动器的共享租户虚拟机上。此外,无论是从GitHub还是从NPM的包存储库,作者都不需要为公共工具的传播承担任何维护成本。因此,我们承诺不收集除数字所述的广泛统计数字以外的任何数据ar 欧宝 ar 欧宝 对于此处讨论的参考部署。特别是与激励这项工作的生物医学使用场景相关,我们还致力于不会从QM的私人部署中收集任何数据;换句话说,QM软件的任何部分都没有将数据从其他部署发送回我们的服务器。该设计允许管理员通过NPM部署自己的QM服务器,并根据需要完全配置自己的安全性,以便临床和/或生物医学研究使用。当然,这些保证可以通过检查QM的源代码来验证。

讨论

QMachine是一个用于执行分布式工作流的web服务,它可以使用普通的web浏览器作为众包超级计算机的临时计算节点。这里的想法很简单:装有网络浏览器的普通计算机通过访问一个网站加入一个抽象的机器,然后通过导航到另一个网站或关闭浏览器退出。虽然浏览器仍然停留在站点上,但它通过执行JS来响应来自用户和站点后端基础设施的输入,这为抽象机器提供了执行计算的一些可能性。在任何时候,高流量网站可用的净计算潜力都在HPC范围内,如图所示ar 欧宝 .QM使这种潜力可以通过志愿计算而不花费名义成本得到利用。

图5.
图5.

Top500超级计算机的性能分布。这个柱状图显示了“Top500”最快超级计算机的浮点性能分布,以具有代表性的日用品笔记本为例。使用的数据来自于2013年11月发表的榜单http://top500.org.并与运行相同的Linpack基准测试获得的结果相比[ar 欧宝 在一台普通笔记本电脑上(Core i7-2720QM, 8GB 1333MHz DDR3 SDRAM)。对真实世界的性能进行简单的划分,得到的估计性能是普通笔记本电脑的倍数。

Mapreduce.

许多能够接触到大规模计算资源的研究人员仍然发现这些资源难以获得,因为“日常”工作流程通常需要的不仅仅是快速的计算机——它们需要更难获得的编程技能。生物信息学工作流越来越依赖MapReduce作为抽象,但可用的MapReduce资源仍将研究人员暴露在具有严格程序要求和陡峭学习曲线的编程环境中。QM的设置和操作要比Apache Hadoop简单得多[ar 欧宝 ], 例如。它允许用户在多个物理机器上运行MapReduce作业,并以简单地写作和装载网页的群源源计算资源 - 每天都在全球数百万人才执行的技能。我们争辩说,使用QM探索的网络计算架构 - 也就是说,在不安装专用应用程序的情况下 - 是当前基于云的MapReduce服务的自然演进,就像Hadoop是从一次性编译和运行工作流程的一步开始。

分布式计算

QM的Web服务提供了一种用于分布式计算的消息传递接口。此语句可能在第一个声音矛盾,但JS的单线程编程模型不会将JS程序限制为单线程执行;外部执行上下文可用于通过事件驱动的编程来支持并发。QM利用浏览器的异步(非阻塞)网络通信层来连接多个机器的执行上下文,但支持支持Web工作者的浏览器[ar 欧宝 ]可以在同一物理机器中执行并发程序。

云浏览器

Web计算架构的开发中有趣的新扭曲是“云浏览器”的出现[ar 欧宝 ].在这些系统中,移动浏览器在网页的脚本需求重计算时表现为瘦客户端。因此,云浏览器在垂直方向上展示浏览器缩放,而QM在水平方向上演示浏览器缩放。因为QM没有关于其志愿者的基础资源的假设,因为云浏览器可以在普通浏览器中志愿QM而不会丧失一般性。换句话说,云浏览器表示当前浏览器的增强,而QM为HPC提供了一个解决方案,它将网站的底层体系结构推向全球计算机[ar 欧宝 ar 欧宝 ].

生物医学应用

在临床环境中,由于隐私问题,可以难以分配工作流程,以防止敏感数据离开医院环境,其中常规HPC通常不存在。QM满足此预匹卡,而无需额外资源。如图所示ar 欧宝 ,2013年11月前500个HPC的中位数计算能力(http://goo.gl/xiuidp.)的速度大约是我们实验室标准版台式电脑的2600倍。这比一个典型医疗中心的机器数量要小得多。因此,即使仅限于单个医院环境,志愿者计算仍然可以与非常可观的HPC资源的总容量相匹敌。

QM也可用于在单个工作站内部的工作流程。在这样的场景中,工作站将在本地运行QM的API服务器,并使用多个浏览器选项卡并行执行工作流。这样的工作流还可以包含现有的生物信息工具,例如基本的本地对准搜索工具(BLAST)[ar 欧宝 ]通过使用像Perl这样的传统服务器端脚本语言[ar 欧宝 或Python [ar 欧宝 ]连接到QM的API或甚至直接到持久存储层。

安全

使用QM的工作流的安全性通过选择志愿者并通过访问控制到代码和数据来对QM进行正交地处理到QM。然而,应该考虑一些考虑因素来帮助配置其分布式操作。重要的是要回想一下,Web浏览器在沙盒环境中执行js,除其他保护中,它可以防止对志愿者机器的文件系统进行编程访问。因此,QM的安全性配置在两个防火墙周围。

第一个也是最基本的保护与提交者发出的“框”(令牌)的唯一性相关联,只能与可信志愿者共享。可以通过使用OAUTH 2.0(如OAuth 2.0)的打开身份验证来添加附加的安全性ar 欧宝 以核实只有可信赖的志愿者参与。这第二层保护在创建审计跟踪时特别有用。这两种机制可以以多种方式组合在一起,这适用于特定的工作流。例如,根据代码和数据的敏感性和/或志愿者的可信度,可以将工作流的不同步骤分配给不同的志愿者群体。由此产生的粒度还可以用于在分布式QM操作中构建冗余——从而具有健壮性。

简而言之,QM架构中最薄弱的联系 - 以及滥用诽谤的机会 - 从一群志愿者的成员分享“框”。在这方面,QM设计的关键特征是滥用者可以针对提交者但不是志愿者,因为QM的操作在Web浏览器的沙箱内发生。

结论

QMachine的开发是为了应对生物医学环境中遇到的生物信息学应用的挑战和利用生物信息学应用的机遇。十多年来,志愿计算已经吸引了计算生物学作为一个可扩展的和经济有效的高性能计算解决方案。QM本质上是将该解决方案移植到现代计算领域,后者正日益被移动硬件平台和使用web浏览器作为通用软件平台所主导。现代网络浏览器的特性超越了那些使其成为具有高级通信层的高性能计算环境的特性;它们还包括一个变革性的特性,即计算运行在健壮的沙箱中,防止访问底层机器潜在的敏感文件系统。QM还响应了另一个现代趋势,即通过使用MapReduce编程模式,而不是通过与计算节点的直接交互,来使用HPC资源。在本报告中说明QM使用的序列分析应用程序提供了某种直接的效用,将有利于生物信息学在医学基因组学中的应用。然而,有人认为,作为一种“Web的”分布式计算系统,QM在识别普及Web计算的基本特征方面可能同样有用。

提供支持数据的可用性

肺炎链球菌肺炎料基因组数据直接从公开的在线存储库中使用http://ftp.ncbi.nlm.nih.gov/genomes/Bacteria/,相关FASTA文件也已归档至http://q.cgr.googlecode.com/hg/data/,一个版本控制的存储库。用于生产数字的原始数据ar 欧宝 被拿走了http://s.top500.org/static/lists/xml/TOP500_201311_all.xml并被归档到http://q.cgr.googlecode.com/hg/data/

源代码

本文的所有源代码都是版本控制和开放的。Qmachine的代码的主要来源位于Git中[ar 欧宝 )存储库https://github.com/wilkinson/qmachine..在Results部分中显示的示例代码和数据可以在Mercurial [ar 欧宝 )存储库http://q.cgr.googlecode.com/hg/.Quanah的源代码存储库可用https://github.com/wilkinson/quanah.,USM存储库可在https://github.com/usm/usm.github.com.

参考

  1. 1。

    Schadt EE,Linderman MD,Sorenson J,Lee L,Nolan GP:大规模数据管理和分析的计算解决方案。NAT Rev Genet。2010,11:647-657。

    文章pmed中央PubMed.中科院谷歌学者

  2. 2。

    Ledford H:大科学:癌症基因组挑战。自然科学进展,2010,32(4):591 - 598。[http://dx.doi.org/10.1038/464972A],

    文章PubMed.中科院谷歌学者

  3. 3.

    贝尔g,嘿t,szalay a:超越数据洪水。科学。2009,323:1297-1298。

    文章PubMed.中科院谷歌学者

  4. 4。

    克雷迪K,兰德尔T,汤普森L: 1000个基因组项目数据可在亚马逊云上获得。2012年,(http://www.genome.gov/27548042],

    谷歌学者

  5. 5.

    安德森D,Werthimer D,Cobb J,Korpela E,Lebofsky M,Gedye D,Sullivan WT:Seti @ Home:互联网分布式欧宝直播官网app计算Seti。生物科技99,太平洋会议系列天文学会213卷。编辑:Lemarchand G,Meech K. 2000,旧金山:太平洋的天文学学会,511-511。

    谷歌学者

  6. 6.

    衬衫先生:Pande VS:世界屏幕储蓄者,团结!科学。2000,314:1903-1904。

    文章谷歌学者

  7. 7.

    安德森DP:BOINC:公共资源计算和存储系统。第5届IEEE / ACM国际研讨会上的网格计算,网格'04。2004年,华盛顿特区:IEEE计算机协会,4-10。[http://dx.doi.org/10.1109/GRID.2004.14],

    谷歌学者

  8. 8.

    Folding@欧宝直播官网appHome项目统计。[http://fah-web.stanford.edu/cgi-bin/main.py?qtype=osstats],

  9. 9.

    Tannenbaum t,Livny Baum T,Livny M:在实践中分布式计算:圣洁经验。并发实用前。2005,17(2-4):323-356。

    文章谷歌学者

  10. 10。

    Mikkonen T:Taivalsaari A:使用JavaScript作为真正的编程语言。技术。Rep.,Sun Microsystems,Inc。,山景,加利福尼亚州,美国2007年,

  11. 11.

    CROCKFORD D:JavaScript:好的部分。2007年,Sebastopol:奥里利

    谷歌学者

  12. 12.

    TIOBE索引。[http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html],

  13. 13。

    GómezJ,Garcia Lj,Salavea Ga,Villaveces Jm,Gore Sp,Castro Ag,Martin Mj,Launay G,Alcántarar,Del Toro N,Dumouseau M,乌兰萨尔SE,Velankar S,Hermjakob H,Hermjakob H,Zong C,Ping P,CorpasM,JIMENEZ RC:BIOJS:用于生物数据可视化的开源JavaScript框架。生物信息学。2013,29(8):1103-1104。[http://dblp.uni-trier.de/db/journals/bioinformatics/bioinformatics29.html#GomezGSVGGMLAdDOVHZPCJ13],

    文章pmed中央PubMed.谷歌学者

  14. 14。

    Westson O,Skinner M,Holmes I:用jbrowse可视化下一代测序数据。简短生物形式。2013,14(2):172-177。[http://bib.oxfordjournals.org/content/14/2/172.Abstract.],

    文章pmed中央PubMed.中科院谷歌学者

  15. 15.

    Medina I, Salavert F, Sanchez R, de Maria A, Alonso R, Escobar P, Bleda M, Dopazo J:基因组图谱,新一代基因组浏览器。中国生物医学工程学报,2013,31(4):441 - 446。[http://nar.oxfordjournals.org/content/41/W1/W41.abstract],

    文章pmed中央PubMed.谷歌学者

  16. 16.

    rohlf c,ivnitskiy y:客户端立交机的安全挑战。IEEE Secur隐私。2012,10(2):84-86。[http://doi.ieeecomputersocietes.org/10.1109/msp.2012.53],

    文章谷歌学者

  17. 17.

    计算机语言基准测试游戏。[http://benchmarksgame.alioth.debian.org],

  18. 18.

    桑瑟姆C:众人的力量。生物工程学报,2011,29:201-203。

    文章PubMed.中科院谷歌学者

  19. 19.

    Dabbish L, Stuart C, Tsay J, Herbsleb J: GitHub中的社会编码:开放软件库中的透明和协作。计算机支持的协同工作会议论文集,CSCW’12。2012,纽约:ACM, 1277-1286。[http://doi.acm.org/10.1145/2145204.2145396],

    谷歌学者

  20. 20。

    Eysenbach G:医学2.0:社交网络、协作、参与、调节和开放。中华医学杂志,2008,10:e22-

    文章pmed中央PubMed.谷歌学者

  21. 21。

    伯恩·李T,亨德勒J:从语义网上到社交机:世界宽网络的AI研究挑战。Artif Inclik。2010,174:156-161。

    文章谷歌学者

  22. 22。

    Karpievitch y,Almeida J:MGRID:用于远程执行用户定义的MATLAB代码的负载平衡分布式计算环境。欧宝娱乐合法吗BMC生物信息学。2006,7:139- [http://www.biomedcentral.com/1471-2105/7/139],

    文章pmed中央PubMed.谷歌学者

  23. 23。

    Galperin My,Fernandez-Suarez XM:核酸研究数据库问题和在线分子生物学数据库收集。核酸RES。2012,40,

    谷歌学者

  24. 24。

    Prlic A, Down TA, Kulesha E, Finn RD, Kahari A, Hubbard TJ:整合序列和结构生物学与DAS。欧宝娱乐合法吗生物信息学。2007,8:333-

    文章pmed中央PubMed.谷歌学者

  25. 25。

    Veiga DFT,DEUS HF,Akdemir C,Vascomcelos ATR,Almeida JS:Dasminer:从DAS源发现和集成数据。BMC SYST BIOL。2009,3:109-

    文章pmed中央PubMed.谷歌学者

  26. 26。

    Hendler J:Web 3.0新兴。计算机。2009,42:111-113。

    文章谷歌学者

  27. 27。

    Hendler J, Holm J, Musialek C, Thomas G:美国政府链接开放数据:Semantic.Data.Gov。电子学报。2012,27(4):457 - 461。

    文章谷歌学者

  28. 28.

    Jupp S, Malone J, Bolleman J, Brandizi M, Davies M, Garcia L, Gaulton A, Gehant S, Laibe C, Redaschi N, Wimalaratne SM, Martin M, Le Novère N, Parkinson H, Birney E, Jenkinson AM: EBI RDF平台:生命科学的链接开放数据。生物信息学。2014,30(9):1338-1339。

    文章pmed中央PubMed.中科院谷歌学者

  29. 29.

    DEUS HF,Veiga DF,Freire PR,Weinstein Jn,Mills GB,Almeida JS:将癌症基因组Atlas暴露为SPARQL端点。j生物注释通知。2010,43(6):998-1008。[http://www.sciencedirect.com/science/article/pii/s153204641000136x.],

    文章pmed中央PubMed.中科院谷歌学者

  30. 30。

    自更新的癌症基因组图谱。生物信息学。2013年,http://bioinformatics.oxfordjournals.org/content/early/2013/04/17/bioinformatics.btt141.abstract],

    谷歌学者

  31. 31。

    Saleem M,Padmanabhuni SS,Ngomo Acn,Almeida JS,Decker S,Deus HF:链接癌症基因组Atlas数据库。第9届国际语义系统会议的诉讼程序,I-Semantics'13。2013年,纽约:ACM,129-134。[http://doi.acm.org/10.1145/2506182.2506200],

    谷歌学者

  32. 32。

    船体D,Wolstencroft K,Stevens R,Goble C,Pocock M,Li P,Oinn T:Taverna:建造和运行服务的工具。核酸RES。2006,34:729-732。

    文章谷歌学者

  33. 33。

    Vandervalk BP,McCarthy El,Wilkinson MD:共享:用于生物信息学的语义Web查询引擎。第四届亚洲会议关于语义网络,ASWC'09的第四届会议。2009年,柏林,海德堡:Springer-Verlag,367-369。[http://dx.doi.org/10.1007/978-3-642-10871-6_27],

    谷歌学者

  34. 34。

    计算科学的可重复研究。中国科学:地球科学。

    文章pmed中央PubMed.中科院谷歌学者

  35. 35。

    Almeida JS, Iriabho E, Gorrepati VL, Wilkinson S, Robbins DE, Gruneberg A, Hackney JR: ImageJS:网页浏览器中的个性化、参与、普遍和可复制的图像生物信息学。中国病理杂志。2012,3:25-

    文章谷歌学者

  36. 36。

    Almeida JS,Gruneberg A,Maass W,Vinga S:分形MapReduce序列对齐的分解。算法Mol Biol。2012,7:12-

    文章谷歌学者

  37. 37。

    T:云里面有什么?云景观的建筑地图。2009年ICSE云计算软件工程挑战研讨会论文集,Cloud ' 09。计算机学报,2009,33(4):549 - 554。[http://dx.do.org/10.1109/cloud.2009.5071529],

    谷歌学者

  38. 38。

    CoffeeScript。[http://coffeescript.org/],

  39. 39。

    node.js.[http://nodejs.org/],

  40. 40。

    节点包管理器。[https://npmjs.org/],

  41. 41。

    apache couchdb。[https://couchdb.apache.org/],

  42. 42。

    MongoDB。[http://www.mongodb.org/],

  43. 43。

    PostgreSQL。[http://www.postgresql.org/],

  44. 44。

    redis。[http://redis.io/],

  45. 45。

    SQLite。[https://www.sqlite.org/],

  46. 46。

    跨源资源共享。[http://www.w3.org/TR/cors/],

  47. 47。

    JavaScript的同源策略。[https://developer.mozilla.org/en/same_origin_policy_for_javascript.],

  48. 48。

    我可以使用CORS吗?[http://caniuse.com/#feat=cors.],

  49. 49。

    Apache HTTP Server项目。[https://httpd.apache.org/],

  50. 50。

    Nginx。[http://nginx.com/],

  51. 51。

    jslint。[http://www.jslint.com/],

  52. 52。

    夸纳。[http://wilkinson.github.com/quanah/],

  53. 53。

    jQuery。[http://jquery.com],

  54. 54。

    Twitter的引导。[http://twitter.github.com/bootstrap/],

  55. 55。

    谷歌镀铬框架。[https://www.google.com/chromeframe.],

  56. 56。

    html5 shiv。[https://code.google.com/p/html5shiv/],

  57. 57。

    json2.js。[https://github.com/douglascrockford/json-js.],

  58. 58。

    通用序列地图。[http://usm.github.com/],

  59. 59。

    邹琦,李XB,江克,林泽,李格,陈克:麦地克谱手术调查生物信息学。简短生物形式。2013年,[http://bib.oxfordjournals.org/content/early/2013/02/07/bib.bbs088.abstract.],

    谷歌学者

  60. 60.

    LINPACK基准测试。[http://www.top500.org/project/linpack/],

  61. 61.

    Apache Hadoop。[https://hadoop.apache.org/],

  62. 62。

    Web工作者。[http://www.w3.org/tr/workers/],

  63. 63。

    Tendulkar v,斯奈德r,pletcher j,Butler k,shashidharan a,enck w:滥用基于云的浏览器以获得乐趣和利润。第28届年度计算机安全应用程序会议,ACSAC '12的诉讼程序。2012年,纽约:ACM,219-228。[http://doi.acm.org/10.1145/2420950.2420984],

    谷歌学者

  64. 64。

    J:全球计算机。中国科学(d辑:地球科学),2003,27(3):427 - 434。(2002年3月),

    文章PubMed.谷歌学者

  65. 65。

    karp啊:全球计算机。第四次国际会议创建,联系和协作通过计算,C5 '06的诉讼程序。2006年,华盛顿特区:IEEE计算机协会,112-119。[http://dx.doi.org/10.1109/C5.2006.41],

    谷歌学者

  66. 66。

    爆破。[http://blast.ncbi.nlm.nih.gov/],

  67. 67。

    Perl编程语言。[http://www.perl.org/],

  68. 68。

    Python编程语言。[http://www.python.org/],

  69. 69。

    OAuth社区网站。[],

  70. 70.

    Git分布式版本控制系统。[http://git-scm.com/],

  71. 71.

    mercurial。[http://mercurial.selenic.com/],

下载参考

致谢

这项工作是由阿拉巴马大学的临床和翻译科学中心的支持,伯明翰根据合同编号。来自NIH国家研究资源中心的5ULR025777-03在合同编号下,在赖斯大学的NCI T32实习生授予,还应支持这项工作。5T32CA096520-05。

作者信息

隶属关系

作者

通讯作者

对应到Sean R Wilkinson.

附加信息

利益争夺

两位作者宣称他们没有相互竞争的利益。

作者的贡献

原始概念是由于JSA,这两个作者都对QM的设计界面做出了大量的贡献。SRW设计了Quanah并实施了QM和Quanah,而JSA设计并实施了USM。两位作者都开发了该报告并测试了说明性示例。这位作者都读到并批准了最终手稿。

作者为图像提交的原始文件

权利和权限

本文在BioMed Central Ltd.的许可下发布了这是一个开放的访问文章,根据欧宝体育2021足球欧洲杯买球平台Creative Commons归因许可(http://creativecommons.org/licenses/by/2.0)如果原始工作正确记入,则允许在任何媒体中进行无限制使用,分发和再现。Creative Commons公共领域奉献豁免(http://creativecommons.org/publicdomain/zero/1.0/)除非另有说明,否则适用于本文中提供的数据。

重印和权限

关于这篇文章

通过Crossmark验证货币和真实性

引用这篇文章

QMachine: web浏览器中的超级计算机。欧宝娱乐合法吗15,176(2014)。https://doi.org/10.1186/1471-2105-15-176

下载引用

关键字

  • 云计算
  • 众包
  • 分布式计算
  • JavaScript
  • Mapreduce.
  • 帕斯
  • 序列分析
  • 网络服务