跳到主要内容

QMachine: web浏览器中的超级计算机

抽象的

背景

云计算的持续发展为科学计算,特别是分布式工作流提供了新的机会。现代网络浏览器现在可以用作高性能工作站,用于查询、处理和可视化来自癌症基因组图谱(TCGA)和国际癌症基因组联盟(ICGC)等来源的基因组“大数据”,而无需安装或配置本地软件。QMachine (QM)的设计是由在生物医学关联数据网络环境中使用这种普适计算模型的机会驱动的。

结果

QM是一个开源的、公开可用的web服务,它充当一个消息传递系统,用于通过HTTP发布任务和检索结果。这里描述的说明性应用分布20链球菌引起的肺炎共享后缀的基因组。由于所有的分析和数据检索任务都是由志愿者机器执行的,因此所需的服务器资源很少。任何现代的网络浏览器都可以提交这些任务和/或自愿执行它们,而无需安装任何额外的插件或程序。客户端库提供高级分发模板,包括MapReduce。QM在12个月内收到了来自87个国家的超过220万个API调用,这与目前依赖昂贵的服务器硬件运行“下载和安装”软件截然不同,已经引起了社区的极大兴趣。

结论

QM发现足以提供那种可扩展的生物信息学的解决方案,computation-和数据密集型工作流程的需要。荒谬的是,通过网络浏览器的代码执行沙盒也被发现,使他们,作为计算节点,以解决关键的隐私问题所特有的生物医学环境。

可用性

的支撑QM部署可在https://v1.qmachine.org,其源代码可在https://github.com/wilkinson/qmachine.提供了在现场演示的说明性的例子和它们的依赖http://q.cgr.googlecode.com/hg/index.html随着一个截屏和存档基因组数据。

背景

高性能计算(HPC)为生命科学正在发生根本性的重塑[1].依赖于处理器密集的资源,通过扩大基因组学工作流程的漏斗是漏斗的,正在促使位于TCGA和ICGC等数据密集型基础设施的方法[2].因此,被淹没的数据中心不动产卷要求“超出了海量数据”解决方案[3.这就改变了传统的传输模型,使计算能够传递到数据,而不是相反。因此,重点是最大化数据的可用性和应用程序的可移植性。生物医学应用中云计算基础设施使用的增加反映了高性能计算的重新调整,例如最近美国国家卫生研究院(NIH)和亚马逊在1000基因组项目上的合作[4].

同时,诸如SETI@home [188体育投188体育投注5], Folding@188体育投188体育投注Home [6]和BOINC [7]已经构建分布式平台,为了聚合商品硬件和志愿者的计算周期到功率计算密集型科学工作流。事实上,Folding @ Home项目目188体育投188体育投注前采用的中央和/或图形从超过25万台的个人电脑和视频游戏控制台[处理单元8].为了协调过这种大量的物理机和硬件平台的集中努力,研究人员提供客户端应用程序,他们必须说服志愿者下载并在其计算机上安装永久。这些应用范围从侵袭性总是-像秃鹰[后台服务运行只有当机器处于闲置状态,如创业SETI @ home的,对程序188体育投188体育投注9]可以有形地影响机器的性能。

万维网为高性能计算提供了一个不同的途径,而这正是我们用QM探索的——一个新的方向。为特定问题领域优化QM的诱惑被更大的挑战所克服,这一挑战不仅要创建一个跨Web分布计算的系统,而且还要创建一个“Web的”系统。对Web作为平台的仔细研究表明,必要的组件确实已经准备好进行组装。

JavaScript (JS)语言不仅仅是一种“真正的语言”[10也是“披着C语言外衣的Lisp”[11支持函数式和面向对象编程风格。然而,与Lisp不同的是,JS在学术界之外得到了广泛的使用,并且在超过13年的时间里一直排在最流行的12种语言之列[12].JS中的科学库相对稀少,尽管有一些专业库,如EBI的BioJS [13],NIH / NHGRI JBrowse [14],以及最近的基因组图[15]已经开始利用这些计算资源的广泛可用性,特别是在基因组浏览应用领域。

Web浏览器沙盒环境是严格控制访问计算机资源执行JS,而现在这些沙箱中实现标准化的API,提供原生的功能,如硬件加速3D图形。所有现代浏览器,甚至一些浏览器插件包括刚刚在实时(JIT)编译器来提高性能[16].例如,JS中的正则表达式在不再匹配Perl [17],最常与BioInformatics应用中的字符串处理相关的语言。此外,这些高性能JS环境预先安装了今天销售的每台个人电脑,以及智能手机,平板电脑,游戏机,甚至电视。因此,Web浏览器代表了一种用于高性能计算的现代路线,这适合“众群”模型[18].事实上,在JS的生物信息库,目前快速增殖也反映了其中存在的大规模合作,完全新颖的机会,基于web的“社交编码”环境问世[19].此外,浏览器平台的网络功能允许它动态导入代码和数据,从而在不同机器上的多个浏览器上协调分布式工作流,这是社会计算的核心特性[20.].因此,本报告中描述的可以被理解为机器的社会计算[21],扩展了松散分布模型,如mGrid [22].

生物医学科学中大数据的出现已经与参考数据库的扩散有关,例如每年审查的数据库核酸的研究23].链接数据资源Web的聚合独立于托管它们的机构,已经被诸如分布式注释系统(Distributed Annotation System)等综合数据模型所实现[24],我们也将其作为工作流组装的骨干进行了探索[25].然而,现在已经非常清楚的是,数据资源的链接,无论属于哪个领域,本身都是与领域无关的,最好由W3C的资源描述框架(RDF)的二元谓词来描述,该框架是第三代Web技术的基础[212627].

该RDF办法扩大了独特的资源标识符(URI)既要识别和定位数据(通过网址)只需要一个网络浏览器由任何研究人员可以善加利用,不管他的专业知识或感兴趣的领域基本依赖。其使用的电流程度戏剧性地通过了RDF框架的整个欧洲生物信息学研究所的所有数据服务[说明28].我们的一些工作也说明了这一点[29- - - - - -31对于TCGA开发SPARQL端点,服务器端的托管量数据不开发Web应用程序消耗的数据(“网络应用程序”)一显著障碍。另一方面,尽管有像Taverna这样的优秀框架,但数据分析的工作流程的机制尚未变成用户友好的商品。32]及分享[33].一种可能性是,底层的Web服务本身需要在一瞬间的通知时汇编 - 即使对于程序的弃用或过时的版本也是如此。这是现代关注工作流程结果的重复性的绝对要求[34].我们已经探索了模块化基于浏览器的web应用程序的使用,以在标准生物信息学应用程序(如图像分析)中提供这种功能[35]序列分析[36].这两个工作的成功加强了要求该脚本代码加载,相同的机制Web浏览器用来加载Web应用程序,可以协调和分发跨多个物理机器的生物信息学工作流的执行。说明性和验证,例如在结果部分中详述下面将通过分析20个不同基因组延伸的这两个报告的第二接近序列分析的相同的例子链球菌引起的肺炎并行执行。

方法

QM提供了一个作为web服务(PaaS)的分布式计算平台。它的体系结构(参见图1结果)结合了Web 3.0技术的一般模式与现代社交网站所使用的模型解耦的演讲/分析层持久表示层,这样前运行在客户端作为一个Web应用程序,使用一个应用程序编程接口(API)提出的后者服务器端。QM还将web应用程序的表示层和分析层解耦,以便第三方可以将QM web服务嵌入到他们自己的web应用程序中。

图1
图1

抽象的架构。自组装QMachine的结构,突出处理(矩形)和传输带宽(箭头)的分布。QM不仅分配执行所需的计算周期N不同的程序(σ.1、2、…N),以及检索相应输入数据所需的带宽(D1、2、…N)从它们各自的URL被处理(D.1、2、…N).集合由提交者启动,提交者发出一个密钥,该密钥由多个志愿web浏览器会话(V1、……N).然后,该代码被转移到上QM一个队列,其中它是由浏览器志愿拾起。

为了提供此功能,QM包含三个主要组件:API服务器,Web服务器和网站。API和Web服务器完全写入JS,网站以HTML5,CSS和JS编写。关于QM的设计或界面没有任何内容将其绑定到特定的开发堆栈,但我们希望将项目构建为真正的Web计算“设备”,我们的激励我们在JS中的大量代码实现。该战略也支付了意外的股息;服务器端组件无关的假设是关于运行的硬件和操作系统的假设,它通过平台AS-Service(PAAS)大大简化了到云的部署[37].

该报告还提供了代码示例(参见结果),这些代码示例可以在任何嵌入QM web服务的网站上运行。这些例子都是用JS编写的,但其中一些也使用了CoffeeScript,“一种编译成JavaScript的小语言”[38].许多常见的科学语言都可以翻译成JS或从JS中翻译出来,为此目的的全面项目列表可以在以下网站找到http://bit.ly/altjsorg

API服务器

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

表1http api.

API服务器实现为一个简单的Node.js [39]程序加载并执行全部由QM自己的公开可用的模块,“QM”,使用节点包管理器(NPM)及其应用逻辑[40].该模块支持五种不同的数据库作为持久存储目标:阿帕奇CouchDB的[41],MongoDB的[42]时,PostgreSQL [43],复述,[44]和SQLite [45].选择这五个开源数据库是基于它们的高性能和受欢迎程度,它们在设计上的差异有助于指导将QM作为异构数据库环境的HPC解决方案进行开发。与默认使用MongoDB相比,其他实现的相对优点如下。CouchDB和MongoDB都是以文档为中心的NoSQL数据库,使用理解JS的MapReduce api,但它们的设计非常不同。CouchDB不仅仅是一个数据库——它本身就足以实现QM,因为它捆绑了一个web服务器和一个http可访问的API。相比之下,MongoDB的API模仿了PostgreSQL和SQLite使用的传统关系风格,更注重节点间的集群和“分片”(水平分区)。PostgreSQL代表关系数据库管理系统(RDBMS),传统上支撑企业应用程序和数据仓库的主力,而SQLite代表嵌入式(无服务器)数据库。Redis是一个内存中的键值存储,通常被称为“数据结构服务器”,因为它的键可以包含字符串,哈希,列表,集合和排序集合。在如此广泛的存储系统之间映射QM的持久表示层的能力大大简化了部署和维护。支持本报告的说明性示例的服务,可在https://v1.qmachine.org,使用mongodb。

QM的API服务器支持跨域资源共享(CORS)46],以便任何网页均可嵌入QM,在不违反同源策略的情况下,跨浏览器分发工作流程[47].目前在网络浏览器CORS [广泛支持48].

Web服务器

web服务器和API服务器一样,是作为Node.js程序实现的,其逻辑包含在同一个NPM模块“qm”中。也就是说,QMachine的所有基本库的安装都可以通过运行Node内置的模块管理系统来实现:NPM安装QM.值得回顾一下QM的服务器端组件所扮演的最小角色(参见图)1结果)。web服务器的存在只是为了向客户端机器提供表示/分析层的资源。因为这些资源是静态的,web服务器可以被现成的web服务器取代,比如Apache [49]和Nginx的[50.].

网站

网站作为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.orgHTML5,JS和CSS:只使用Web技术开发。为了保持由所有浏览器和所有平台都支持核心JS语法中 - 包括移动设备 - 代码开发被JSLint的[协助51.].的JSLint也直接使用的分析层作为一个静态分析工具内,以确定其可以忠实地被序列化为JSON以便分发到志愿者的机器的任务。一个普通的图书馆,Quanah [52.],也是为了解决QM在异步数据传输中面临的众多并发挑战;因此,它是这里描述的原型的一个关键组件,因此也可以通过开源公开。表示层使用jQuery [53.]和Twitter的引导[54.]确保各种移动和桌面浏览器的一致外观。GUI另外尝试通过与Google Chrome Frame的可选集成来支持过时的浏览器[55.],HTML5希夫[56.和json2.js [57.,但这只是出于礼貌。

演示程序

演示程序是用纯JavaScript编写的,因此它可以在普通的web浏览器中运行,而不依赖于任何本机应用程序、插件或附加组件。它扩展了先前研究的论证[36],利用序列分析程序的MapReduce分解,找出用户给出的序列和整个细菌基因组之间最长的相似片段。这项研究中的演示不仅将在另一台机器上使用远程执行复制以前的结果,而且还将对所有20个菌株并行执行链球菌引起的肺炎目前可以从国家生物技术信息中心(NCBI)获得。它使用相同的通用序列映射(USM)的更新版本[58.]库,直接从其在线资源库中引用。

结果

QMachine的架构如图所示1遵循Web 3.0技术的一般模式,将服务器端专门用于持久表示,而将程序逻辑的其余部分留在客户端运行。QM使用键-值体系结构以一种最大化数据传输和后续数据处理所需计算资源分布的方式来协调自愿客户端机器。此业务流程在图中突出显示1: QM不仅分发执行所需的计算周期N不同的程序(σ.1、2、…N),以及检索相应输入数据所需的带宽(D1、2、…N)从它们各自的URL被处理(D.1、2、…N).这种设计是通过生物应用的约束动机如下一代测序,其中所述的限制因素是往往比处理器的速度可用内存。

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

图2
figure2

工作流为真实世界的基因组分析。(1)提交者交互地调用高层QM.map函数来自一个带有20个不同url的浏览器链球菌引起的肺炎基因组作为输入,导致客户端向QM的API服务器提交二十个单独任务说明。(2)志愿者的浏览器,对QM的API服务器上的新任务说明进行轮询,查找和下载任务说明。(3)志愿者的浏览器在下载三个外部资源后执行任务:从Github提供的USM库,来自Google Code的JMAT库以及来自NCBI的细菌基因组。(4)志愿者的浏览器将任务执行的结果返回给QM的API服务器,并恢复轮询新任务说明。(5)提交者的浏览器,轮询到各个任务描述的更新,从QM的API服务器检索结果。

加载客户端库

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

加载后,JS环境将包含一个名为的全局对象QM与可用于重现的后面的四个实施例的结果方便高水平的方法。

(1)简单代数运算

对于第一个说明性示例中,让F是一个对给定数字加1的函数X2,让X= 2。为了计算结果,FX),志愿者机器上,我们可以使用QM.submit方法:

与演示系列的其余部分一样,这个示例将在附带的屏幕广播中进行描述和演示(http://goo.gl/tnpMiQ).还要注意,这个简单的操作很容易用其他语言表达,如CoffeeScript [38):

正如在“方法”中所讨论的,QM的体系结构并不强制使用特定的编程语言,只要将编译器用于JS,即web的“汇编语言”[35,随远程调用分发。为了支持这一声明,QM客户端库委托给CoffeeScript语言的一个用JS编写的编译器。要查看编译器列表,这些编译器可以将其他语言编写的程序翻译成JS,以便志愿者浏览器能够解释它们,请参阅http://bit.ly/altjsorg

(2)简单分配地图

因为每个QM.submit操作是一个异步调用,多个调用可以同时运行。因此,很容易分发“map”函数的执行,这是一种高阶函数模式,对数组的每个元素应用相同的操作。这种模式在科学计算中是如此普遍,以至于它需要一个专用的方法,QM.map,可以如下使用:

(3)简单的分布式MapReduce

就像上面所示的“map”函数一样,分配“reduce”函数的执行是很简单的,这是一种高阶函数模式,它一次组合两个数组元素,直到只剩下一个值。正如Zou等人最近所做的调查[59., MapReduce编程模板是现代计算密集型生物信息学应用的核心。第三个例子展示了MapReduce模式,作为第二个例子的扩展,随后使用“reduce”对分布的“map”的结果进行求和,也分布在QM的志愿者中:

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

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

像第一个例子一样,考虑我们有一些X我们希望通过一些功能来改变F,所以X现在是一组引用NCBI托管的FASTA文件的url:

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

然而,我们的职能面临着一个关键的挑战F取决于A.超声电机外部库已被加载之后才存在的功能。因此,要彻底指定任务,我们将需要要么包括超声电机作为的一部分F或者以URL的形式将引用传递给库。在本例中,我们选择了后一种策略,这样每个志愿者都可以同时并行下载库,而不会给API服务器带来负担。每个外部函数可能有多个依赖项,因此QM.map接受一个可选的env参数,以便可以将每个外部函数的依赖项指定为要顺序加载的url数组:

最后,我们将指定盒子参数,用于演示目的。的盒子参数代替API键,允许志愿者在特定队列中执行任务。这种机制允许提交者将任务引导到不同的队列中,并进一步支持使用抽象,如MapReduce:

把这些定义放在一起,我们现在启动20个个体基因组序列分析,通过

这些例子的完整版本可以在网上找到的http://q.cgr.googlecode.com/hg/index.html.该版本有包含完整的网址全部二十链球菌引起的肺炎基因组和指定的版本库env.对于这些例子的陪同截屏也在该页面提供的。

使用情况统计

GitHub等社交编码环境中基于浏览器的工具的传播[19与社交媒体具有相同的扩张性。例如,尽管这是我们描述QM的第一个报告,但QM可以——而且已经——被整个社区发现。在12个月期间2013年4月开始,QM 220万多个API调用收到2100个IP地址在87个国家超过1800 QM“盒子”(代码和结果交换域定义的令牌),98箱接收超过1000个电话每16盒接到10000个电话或者更多。图中描述了QM使用情况的统计数据3.,其用户的地理分布如图所示4.目前尚不清楚QM的使用有多少与推动其发展的分布式计算基因组学网络应用程序有关,但其用户广泛的地理分布表明,对分布式计算更普遍的兴趣推动了其吸引力。HPC媒体中关于QM的主动报告强化了这种解释,例如HPCwire(文章http://goo.gl/9H5W03),Insidehpc.http://goo.gl/bDkJZL).最后,如Methods中所述,所有的服务器端和客户端软件都是开源的,并且是许可的。浏览器客户端只需要加载脚本标签就可以包含在web应用程序中,服务器也可以通过NPM访问[40].因此,可以想象的是,其他QM的部署都在使用其他的地址,甚至医疗中心的防火墙内,因为是QM发展的具体意图。

图3
图3

使用数据的三种表示。该图说明了从收集从2013年4月至2014年4月220万个以上的电话都是以它的应用程序编程接口(API)取得的历史数据,QMachine Web服务的全球使用,细节为这些表1.薄的实体曲线表示按小时对其应用程序编程接口(API)服务器进行的呼叫数量;QM在所有一小时期间的大约79%期间闲置(没有收到的电话),并且省略了那些时间。薄的虚线表示通过IP地址聚合的API调用的数量。厚的虚线表示QM上的特定“框”所做的API调用数量;有关QM框的更多详细信息,请参阅“结果”部分。

图4
装具

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

与策划这一初始大量使用质量管理相关的服务器的负载,因为在代码分配,而不是执行代码的依赖非常温和。事实上,支持使用统计部署上述(后面的服务器描述https://api.qmachine.org)从来没有得到,即使它的共享租户虚拟机上运行只有512 MB的RAM,2×512 MB的MongoDB数据库,以及没有硬盘流量峰值淹没。此外,作者不承担任何从GitHub或NPM的包库为大众传播工具的任何维修费用。因此,我们承诺不收集任何数据超出图中描述的广泛统计3.4参阅这里讨论的参考部署。特别是与生物医学使用场景相关的激发了这项工作,我们也承诺不会从QM的私人部署中收集任何数据;换句话说,QM的软件从来没有从其他部署中将数据发送回我们的服务器。这种设计允许管理员通过NPM部署自己的QM服务器,并根据临床和/或生物医学研究使用的需要完全配置自己的安全性。当然,可以通过检查QM的源代码来验证这些保证。

讨论

QMachine是用于执行分布式工作流,可以使用普通的网络浏览器作为一个众包的超级计算机的短暂计算节点的网络服务。这里的想法很简单:配有网络浏览器的计算机商品通过访问一个网站加入一个抽象的机器,他们通过导航到不同的站点或关闭浏览器群组退出。虽然浏览器仍然在网站上,它从用户和通过执行JS,它提供了抽象机来进行计算,一些潜在的网站的后端基础设施反应输入。在任何时刻,提供给高流量网站的计算净电位降低以及高性能计算范围内,如图5.QM使这一可能,通过志愿者计算没有名义成本加以利用。

图5
figure5

在“500强”超级计算机的性能分布。这一直方图显示的“500强”最快的超级计算机中,有代表性的商品笔记本电脑方面给出的浮点性能分布。所使用的数据来自于刊登在2013年11月列表中取http://top500.org并与运行相同的LINPACK基准测试得到的结果进行比较[60.]上的商品膝上型(核心i7-2720QM,8GB的1333MHz DDR3 SDRAM)。真实世界中的性能的简单的划分产生的估计性能作为商品的笔记本电脑的数倍。

MapReduce

许多具有访问大规模计算资源的研究人员仍然发现这些资源无法进入,因为“日常”工作流程通常需要不仅需要快速计算机 - 它们需要更难获取的编程技能。生物信息学工作流程越来越依赖MapReduce作为抽象,但可用的MapReduce Resources仍然将研究人员暴露于具有严格的程序要求和陡峭的学习曲线的编程环境。QM比Apache Hadoop设置和操作更简单[61.例如,]。它允许用户在多个物理机器上运行MapReduce作业,并通过编写和加载网页的简单性将弹性计算资源众包——全世界数百万人每天都在使用这些技能。我们认为,使用QM探索的web计算架构——也就是说,不安装专用的应用程序——是当前基于云的MapReduce服务的自然进化,就像Hadoop从一次性的编译和运行工作流升级。

分布式计算

QM的web服务为分布式计算提供了一个消息传递接口。这句话乍一听可能有点矛盾,但JS的单线程编程模型并不限制JS程序的单线程执行;外部执行上下文可以通过事件驱动编程来支持并发。QM利用浏览器的异步(非阻塞)网络通信层来连接多个机器的执行上下文,但是支持Web Workers的浏览器[62.]可以在同一物理机器上执行并发程序。

云浏览器

web计算架构发展的一个有趣的新转折是“云浏览器”的出现[63.].在这些系统中,当网页的脚本需要大量计算时,移动浏览器就像瘦客户机一样运行。因此,云浏览器演示了浏览器在垂直方向的伸缩,而QM演示了浏览器在水平方向的伸缩。因为QM对志愿者的底层资源没有任何假设,所以云浏览器可以像普通浏览器一样自愿加入QM,而不会丧失一般性。换句话说,云浏览器代表了当今浏览器的改进,而QM为HPC提供了一种解决方案,它将Web的底层架构推进到全球计算机的架构[64.65.].

生物医学应用

在临床环境中,由于隐私问题,可以难以分配工作流程,以防止敏感数据离开医院环境,其中常规HPC通常不存在。QM满足此预匹卡,而无需额外资源。如图所示5, 2013年11月Top500高性能计算的计算能力中值(http://goo.gl/XIUIDP)比我们的实验室的标准问题桌面机速度快2600倍。这比典型医疗中心中的机器数量要小得多。因此,即使仅限于单个医院环境,志愿者计算仍然可以竞争非常大量的HPC资源的总容量。

QM还可以用于推动单个工作站上的工作流程。在这种情况下,工作站将在本地运行QM的API服务器,并使用多个浏览器选项卡并行执行工作流。这样的工作流还可能包含现有的生物信息学工具,如基本局部对齐搜索工具(BLAST) [66.通过使用传统的服务器端脚本语言,如Perl [67.]或Python [68.]连接到QM的API,甚至直接连接到持久存储层。

安全

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

第一个也是最基本的保护与提交者发出的“盒子”(令牌)的唯一性有关,它应该只与可信的志愿者共享。通过使用开放身份验证(如OAuth 2.0),可以添加额外的安全层[69.],以确认只有受信任的志愿者参与。这种保护作用的第二层是在创建审核记录特别有用的。这两种机制可以以多种方式进行组合,以适合特定的工作流程。例如,工作流的不同步骤可以被分配给根据代码和数据和/或志愿者的可信赖的灵敏度志愿者不同群组。将得到的粒度也可用于构建冗余 - 因此鲁棒性 - 到分布式QM的操作。

简而言之,质量管理体系结构中最薄弱的环节——以及滥用的机会所在——来自于一组志愿者成员的“盒子”共享。在这方面,QM设计的关键特征是,滥用可以针对提交者,而不是志愿者,因为QM的操作是在web浏览器的沙箱中进行的。

结论

QMachine的开发是为了应对挑战 - 和对机会把握 - 在生物环境中遇到的生物信息学应用。对于十多年来,志愿计算已诱惑计算生物学的可扩展性和成本效益的高性能计算解决方案。QM基本端口解决了现代计算的景观,这是越来越多移动硬件平台和使用Web浏览器作为通用的软件平台为主。超越那些使其与先进的通信层的高性能计算环境下的现代网络浏览器转至的功能;它们还包括了变革特征计算在一个坚固的沙箱中运行,防止访问底层机器的潜在的敏感文件系统。QM也响应通过使用MapReduce编程模式,而不是通过与计算节点的直接相互作用另一种现代潮流走向接合HPC资源。这说明了本报告中的使用质量管理的序列分析中的应用提供了某种直接的工具,将有利于中医学基因组生物信息学应用。有人认为,但是,QM,作为一种分布式计算系统“网页的”,可能只是在无孔不入的网络计算的基本特征的识别有用的。

可获得的支持数据

链球菌引起的肺炎基因组数据直接从公开提供的在线资源库,在使用http://ftp.ncbi.nlm.nih.gov/genomes/Bacteria/,以及相关的FASTA文件也被归档到http://q.cgr.googlecode.com/hg/data/,版本控制的存储库。用于生成Figure的原始数据5来自http://s.top500.org/static/lists/xml/TOP500_201311_all.xml并存档到http://q.cgr.googlecode.com/hg/data/

源代码

本文的所有源代码都是版本控制和开源的。QMachine的主要源代码位于Git [70]在仓库https://github.com/wilkinson/qmachine.对于在结果部分中示出的说明性实施例中的代码和数据在水银[可用71.]在仓库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。

    文章公共医学中心PubMedCAS谷歌学术

  2. 2.

    莱德福德H:大科学:癌症基因组的挑战。自然。2010年,464(7291):972-974。[http://dx.doi.org/10.1038/464972a],

    文章PubMedCAS谷歌学术

  3. 3.

    Bell G, Hey T, Szalay A:超越数据洪流。中国科学:地球科学。

    文章PubMedCAS谷歌学术

  4. 4.

    Cravedi K,Randall T,Thompson L:1000基因组项目数据在Amazon Cloud上提供。2012年,[http://www.genome.gov/27548042.],

    谷歌学术

  5. 5。

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

    谷歌学术

  6. 6。

    MR: Pande VS:全世界的屏幕保护程序,团结起来!科学进展。2000,31(4):417 - 418。

    文章谷歌学术

  7. 7。

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

    章节谷歌学术

  8. 8。

    折叠@ home188体育投188体育投注项目统计。[http://fah-web.stanford.edu/cgi-bin/main.py?qtype=osstats],

  9. 9。

    Thain D, Tannenbaum T, Livny M:实践中的分布式计算:秃鹰经验。计算机科学与技术,2003,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ómez J, Garcia LJ, Salazar GA, Villaveces JM, Gore SP, Castro AG, Martin MJ, Launay G, Alcántara R, del Toro N, Dumousseau M, Orchard SE, Velankar S, Hermjakob H, Zong C, Ping P, Corpas M, Jimenez RC: BioJS:生物数据可视化的开源JavaScript框架。生物信息学。2013,29(8):1103-1104。[http://dblp.uni-trier.de/db/journals/bioinformatics/bioinformatics29.html#GomezGSVGGMLAdDOVHZPCJ13],

    文章公共医学中心PubMed谷歌学术

  14. 14.

    Westesson O, Skinner M, Holmes I:用JBrowse可视化下一代测序数据。生物通报。2013,14(2):172-177。[http://bib.oxfordjournals.org/content/14/2/172.abstract],

    文章公共医学中心PubMedCAS谷歌学术

  15. 15.

    麦地那I,Salavert楼桑切斯R,德玛丽亚A,阿隆索R,埃斯科瓦尔P,布列达男,Dopazo Y:基因组地图,新一代基因组浏览器。核酸RES。2013年,41(W1):W41-W46。[http://nar.oxfordjournals.org/content/41/W1/W41.abstract],

    文章公共医学中心PubMed谷歌学术

  16. 16。

    Rohlf C, Ivnitskiy Y:客户端准时化引擎的安全挑战。网络安全学报。2012,10(2):84-86。[http://doi.ieeecomputersociety.org/10.1109/MSP.2012.53],

    文章谷歌学术

  17. 17。

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

  18. 18。

    SANSOM C:许多力量。NAT BIOTECHNOL。2011年,29:201-203。

    文章PubMedCAS谷歌学术

  19. 19。

    Dabbish L,斯图尔特C,纂Ĵ,Herbsleb记者:社会编码GitHub上:透明度和协作,一个开放的软件库。计算机的ACM 2012会议论文集支持的协同工作,CSCW '12。2012年,纽约:ACM,1277年至1286年。[http://doi.acm.org/10.1145/2145204.2145396],

    章节谷歌学术

  20. 20。

    Eysenbach G:医药2.0:社交网络,协作,参与,apomediation性和开放性。J MED Internet Res。2008年,10:e22-

    文章公共医学中心PubMed谷歌学术

  21. 21。

    从语义网到社交机器:人工智能在万维网上面临的研究挑战。《中国科学:地球科学》2010年第4期。

    文章谷歌学术

  22. 22。

    mGrid:一个用于远程执行用户定义的Matlab代码的负载平衡分布式计算环境。www.188bet com生物信息学。2006,7:139-[http://www.biomedcentral.com/1471-2105/7/139],

    文章公共医学中心PubMed谷歌学术

  23. 23.

    核酸研究数据库问题和在线分子生物学数据库收集。核酸学报2012,40,

    谷歌学术

  24. 24.

    普尔利奇A,向下TA,Kulesha E,芬兰人RD,Kahari A,哈伯德TJ:与DAS整合序列和结构生物学。www.188bet comBMC生物信息学。2007年,8:333-

    文章公共医学中心PubMed谷歌学术

  25. 25.

    Veiga DFT, Deus HF, Akdemir C, Vasconcelos ATR, Almeida JS: DASMiner:从DAS源发现和集成数据。BMC Syst Biol. 2009, 3: 109-

    文章公共医学中心PubMed谷歌学术

  26. 26.

    Hendler J: Web 3.0正在兴起。计算机学报。2009,42:111-113。

    文章谷歌学术

  27. 27.

    亨德勒Ĵ,霍尔姆Ĵ,Musialek C,托马斯·G:美国政府链接开放数据:Semantic.Data.Gov。IEEE INTELL SYST。2012年,27:25-31。

    文章谷歌学术

  28. 28。

    朱佩S,马龙Ĵ,BollemanĴ,Brandizi男,戴维斯男,加西亚L,Gaulton A,Gehant S,Laibe C,Redaschi N,Wimalaratne SM,马丁男,乐NovèreN,帕金森H,伯尼E,詹金森AM:该EBI RDF平台:连动开数据为生命科学领域。生物信息学。2014年,30(9):1338至1339年。

    文章公共医学中心PubMedCAS谷歌学术

  29. 29。

    Deus HF, Veiga DF, Freire PR, Weinstein JN, Mills GB, Almeida JS:揭示作为SPARQL端点的癌症基因组图谱。生物医学通报。2010,43(6):998-1008。[http://www.sciencedirect.com/science/article/pii/s153204641000136x.],

    文章公共医学中心PubMedCAS谷歌学术

  30. 30.

    罗宾斯DE,GrünebergA,杀出HF,Tanik MM,阿尔梅达JS:癌症基因组图谱的自更新路线图。生物信息学。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:连锁癌症基因组图谱数据库。第九届国际语义系统会议论文集,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: SHARE:生物信息学的语义web查询引擎。第四届亚洲语义网会议论文集,ASWC ' 09。2009,柏林,海德堡:斯普林格,367-369。[http://dx.doi.org/10.1007/978-3-642-10871-6_27],

    谷歌学术

  34. 34。

    彭RD:重复性研究计算科学。科学。2011,334:1226-1227。

    文章公共医学中心PubMedCAS谷歌学术

  35. 35.

    阿尔梅达JS,Iriabho E,Gorrepati VL,威尔金森S,罗宾斯DE,Gruneberg A,哈克尼JR:ImageJS:个性化,参与,普遍的和可重复的图像在Web浏览器中的生物信息学。病理学杂志了信息。2012年,3:25-

    文章谷歌学术

  36. 36.

    李志强,王志强,王志强:序列对齐的分形MapReduce分解。《生物工程学报》2012年第7期:12-

    文章谷歌学术

  37. 37.

    Lenk A,Klems M,Nimis J,Tai S,Sandholm T:云内部是什么?云景观的建筑地图。2009年ICSE研讨会关于云计算的软件工程挑战的课程,云'09。2009年,华盛顿特区:IEEE计算机协会,23-31。[http://dx.doi.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。

    复述。[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服务器项目。[https://httpd.apache.org/],

  50. 50.

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

  51. 51.

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

  52. 52.

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

  53. 53.

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

  54. 54.

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

  55. 55.

    谷歌Chrome框架。[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.

    邹强,李晓波,姜文荣,林志勇,李国良,陈凯:MapReduce框架操作在生物信息学中的应用综述。Brief Bioinform. 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.

    网络的工人。[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.

    安德森DP,Kubiatowicz记者:在全球计算机。SCI AM。2002年,286(3):40-47。[2002年3月发行]

    文章PubMed谷歌学术

  65. 65.

    Karp AH:全球计算机。第四届计算机创造、连接和协作国际会议论文集,C5’06。2006,中国计算机学会计算机分会,113 -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。

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

下载参考

确认

这项工作得到了阿拉巴马大学伯明翰分校临床与转化科学中心的部分支持,合同编号为。NIH国家研究资源中心5UL1RR025777-03。这项工作也得到了莱斯大学NCI T32培训生补助金的部分支持。5 t32ca096520-05。

作者信息

隶属关系

作者

通讯作者

对应于肖恩·R威尔金森

额外的信息

相互竞争的利益

提交人声明他们没有竞争利益。

作者的贡献

最初的概念来自JSA,两位作者都对QM的设计接口做出了重大贡献。SRW设计并实现了Quanah的QM和Quanah, JSA设计并实现了USM。两位作者开发了报告并测试了示例。两位作者都阅读并批准了最终的手稿。

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

权利和权限

本文由BioMed Central Ltd授权发表。188bet金博宝欧洲杯哪里能买球这是一篇基于知识共享署名许可协议(http://creativeCommons.org/licenses/by/2.0.),允许在任何媒介上不受限制地使用、分发和复制,但须注明原作的出处。创作共用及公共领域专用豁免书(http://creativecommons.org/publicdomain/zero/1.0/)除非另有说明,否则适用于本文中提供的数据。

再版和权限

关于这篇文章

通过CrossMark验证货币和真实性

引用这篇文章

威尔金森,S.R.,阿尔梅达,J.SQMachine:在Web浏览器的商品超级计算机。www.188bet com15,176(2014)。https://doi.org/10.1186/1471-2105-15-176

下载引用

关键词

  • 云计算
  • 众包
  • 分布式计算
  • javascript.
  • MapReduce
  • 帕斯
  • 序列分析
  • Web服务