跳到主要内容

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

抽象的

背景

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

结果

QM是一个开源的、公开可用的web服务,它充当一个消息传递系统,用于通过HTTP发布任务和检索结果。这里描述的说明性应用分布20链球菌引起的肺炎共享后缀的基因组。由于所有的分析和数据检索任务都是由志愿者机器执行的,因此所需的服务器资源很少。任何现代的网络浏览器都可以提交这些任务和/或自愿执行它们,而无需安装任何额外的插件或程序。客户端库提供高级分发模板,包括MapReduce。QM在12个月内收到了来自87个国家的超过220万个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 欧宝 这就改变了传统的传输模型,使计算能够传递到数据,而不是相反。因此,重点是最大化数据的可用性和应用程序的可移植性。生物医学应用中云计算基础设施使用的增加反映了高性能计算的重新调整,例如最近美国国家卫生研究院(NIH)和亚马逊在1000基因组项目上的合作[ar 欧宝 ].

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

万维网为HPC提供了一条不同的途径,这就是我们对QM的探索——一个新的方向。为特定问题领域优化QM的诱惑被一个更大的挑战所克服,即创建一个系统不仅要在网络上分布计算,而且要成为“网络的一员”仔细研究网络作为一个平台,发现必要的组件确实已经准备好组装。

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

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

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

该RDF办法扩大了独特的资源标识符(URI)既要识别和定位数据(通过网址)只需要一个网络浏览器由任何研究人员可以善加利用,不管他的专业知识或感兴趣的领域基本依赖。其使用的电流程度戏剧性地通过了RDF框架的整个欧洲生物信息学研究所的所有数据服务[说明ar 欧宝 ].我们的一些工作也说明了这一点[ar 欧宝 ar 欧宝 在为TCGA开发SPARQL端点时,服务器端托管的数据量并不是开发使用这些数据的web应用程序(“web应用程序”)的重大障碍。另一方面,收集数据分析工作流程的机制尚未成熟为用户友好的商品,尽管有Taverna等优秀框架[ar 欧宝 ]及分享[ar 欧宝 ]。一种可能性是,底层web服务本身需要能够随时进行组装,即使对于不推荐或过时的过程版本也是如此。这是现代关注工作流结果再现性的绝对要求[ar 欧宝 ].我们已经探索了基于模块化浏览器的web应用程序的使用,以在图像分析等标准生物信息学应用程序中提供此功能[ar 欧宝 ]及序列分析[ar 欧宝 ].这两项努力的成功增强了脚本标签加载的索赔,相同的机制Web浏览器用于加载Web应用程序,可以协调和分发多种物理机器的生物信息学工作流程。下面结果部分中详述的说明性和验证示例将扩展通过分析二十种不同基因组在第二个报告中接近的序列分析的相同示例。链球菌引起的肺炎在平行下。

方法

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

图1
图1

抽象的架构。自组装QMachine的结构,突出处理(矩形)和传输带宽(箭头)的分布。QM不仅分配执行所需的计算周期n不同的程序(σ.1、2、…n),以及检索相应输入数据所需的带宽(D1、2、…n)从各自的URL处理(d1、2、…n)。大会由提交人启动,提交人发布一个密钥,该密钥由多个志愿web浏览器会话认可(v1,…,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 欧宝 .作为POST的一部分发送的数据应该采用JavaScript对象表示法(JSON)格式;QM的响应数据也是json格式的。注意,客户端不需要是浏览器——任何可以通过HTTP通信和操作json格式数据的软件包都可以直接使用QM。

表格1HTTP API

API服务器实现为简单的Node.js [ar 欧宝 ]程序加载并执行全部由QM自己的公开可用的模块,“QM”,使用节点包管理器(NPM)及其应用逻辑[ar 欧宝 ].该模块支持5个不同的数据库作为持久存储的目标:ar 欧宝 ], MongoDB [ar 欧宝 ]时,PostgreSQL [ar 欧宝 ],复述,[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 欧宝 ].Web浏览器中的CORS很多支持[ar 欧宝 ].

Web服务器

与API服务器一样,web服务器也是作为Node.js程序实现的,其逻辑包含在同一个NPM模块“qm”中。也就是说,只需运行Node的内置模块管理系统即可安装所有QMachine的基本库:npm安装qm.值得回顾一下QM的服务器端组件所扮演的最小角色(参见图)ar 欧宝 结果)。web服务器的存在只是为了向客户端机器提供表示/分析层的资源。因为这些资源是静态的,web服务器可以被现成的web服务器取代,比如Apache [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.html.http://q.cgr.googlecode.com/hg/index.html

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

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

演示程序

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

结果

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

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

图2
figure2

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

加载客户端库

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

加载后,JS环境将包含一个名为QM.具有方便的高级方法,可用于再现以下四个示例的结果。

(1)简单代数运算

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

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

正如在“方法”中所讨论的,QM的体系结构并不强制使用特定的编程语言,只要将编译器用于JS,即web的“汇编语言”[ar 欧宝 ],随远程调用一起分发。为支持此声明,QM客户端库将委托给CoffeeScript语言的编译器(以JS编写)。有关可以将以其他语言编写的程序翻译为JS的编译器列表,请参阅http://bit.ly/altjsorg.

(2)简单的分布式地图

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

(3) 简单分布式MapReduce

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

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

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

如在第一个例子中,我们有一些x我们希望通过某个函数进行变换f, 以便x现在是引用NCBI托管的FASTA文件的URL数组:

我们想对每个FASTA文件执行一个特定的序列分析,即混沌博弈表示的分形MapReduce分解[ar 欧宝 ]因此,我们定义了一个函数fQM.map方法,该方法将以URL作为输入,并将序列分析的结果作为输出返回:

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

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

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

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

使用情况统计

GitHub等社交编码环境中基于浏览器的工具的传播[ar 欧宝 与社交媒体具有相同的扩张性。例如,尽管这是我们描述QM的第一个报告,但QM可以——而且已经——被整个社区发现。在12个月期间2013年4月开始,QM 220万多个API调用收到2100个IP地址在87个国家超过1800 QM“盒子”(代码和结果交换域定义的令牌),98箱接收超过1000个电话每16盒接到10000个电话或者更多。图中描述了QM使用情况的统计数据ar 欧宝 ,其用户的地理分布如图所示ar 欧宝 .目前尚不清楚QM的使用有多少与推动其发展的分布式计算基因组学网络应用程序有关,但其用户广泛的地理分布表明,对分布式计算更普遍的兴趣推动了其吸引力。HPC媒体中关于QM的主动报告强化了这种解释,例如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.
装具

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.
figure5

“TOP500”超级计算机的绩效分布。这个柱状图显示了“Top500”最快超级计算机的浮点性能分布,以具有代表性的日用品笔记本为例。使用的数据来自于2013年11月发表的榜单http://top500.org并与运行相同的LINPACK基准测试得到的结果进行比较[ar 欧宝 ]在商品笔记本电脑上(核心I7-2720QM,8GB 1333MHz DDR3 SDRAM)。简单的实际业绩分工产生了商品笔记本电脑倍数的估计性能。

Mapreduce.

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

分布式计算

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

云浏览器

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

生物医学应用

在临床环境中,由于隐私问题,防止敏感数据离开医院环境(传统的HPC通常不存在),分发工作流可能很困难,甚至不可能。质量管理在不需要额外资源的情况下满足了这一要求。如图所示ar 欧宝 ,2013年11月Top500 HPC的计算能力中值(http://goo.gl/xiuidp.)大约比我们实验室的标准问题台式机快2600倍。这是一个比典型医疗中心的机器数量小得多的因素。因此,即使仅限于单个医院环境,志愿计算仍然可以与非常可观的HPC资源的总容量相抗衡。

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

安全

使用QM的工作流的安全性是通过志愿者的选择以及对代码和数据的访问控制与QM进行正交处理的。不过,仍应考虑一些因素,以协助其分布式业务的配置。值得注意的是,web浏览器在沙箱环境中执行JS,在其他保护措施中,这阻止了对志愿者机器文件系统的编程访问。因此,QM的安全性是围绕两个防火墙配置的。

第一个也是最基本的保护与提交者发出的“盒子”(令牌)的唯一性有关,它应该只与可信的志愿者共享。通过使用开放身份验证(如OAuth 2.0),可以添加额外的安全层[ar 欧宝 ]验证只涉及受信任的志愿者。该第二层保护在创建审计跟踪方面特别有用。这两个机制可以在很多方面组合,适用于特定的工作流程。例如,根据代码和数据的敏感性和/或志愿者的可信度,可以将工作流的不同步骤分配给不同的志愿者队列和/或志愿者的可信度。由此产生的粒度也可用于构建冗余 - 并因此鲁棒性 - 进入分布式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的原始数据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.对于在结果部分中示出的说明性实施例中的代码和数据在水银[可用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:大规模数据管理和分析的计算解决方案。《中国科学院院刊》2010年第11期。

    文章公共医学中心PubMed.CAS谷歌学者

  2. 2。

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

    文章PubMed.CAS谷歌学者

  3. 3.

    Bell G,Hey T,Szalay A:超越数据洪流。《科学》2009,323:1297-1298。

    文章PubMed.CAS谷歌学者

  4. 4.

    Cravedi K,Randall T,Thompson L:1000基因组项目数据可在亚马逊云上获得。2012年[http://www.genome.gov/27548042],

    谷歌学者

  5. 5。

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

    谷歌学者

  6. 6。

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

    文章谷歌学者

  7. 7。

    Anderson DP: BOINC:公共资源计算和存储系统。第五届IEEE/ACM网格计算国际研讨会论文集,Grid ' 04。2004,中国计算机学会,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作为一种真正的编程语言。技术代表,太阳微系统公司,山景城,加州,美国,2007,

  11. 11.

    Crockford D: JavaScript: The Good Parts. 2007, Sebastopol: O 'Reilly

    谷歌学者

  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],

    文章公共医学中心PubMed.谷歌学者

  14. 14。

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

    文章公共医学中心PubMed.CAS谷歌学者

  15. 15.

    Medina I,Salavert F,Sanchez R,De Maria A,Alonso R,Escobar P,Bleda M,Dopazo J:基因组图,新一代基因组浏览器。核酸RES。2013,41(W1):W41-W46。[http://nar.oxfordjournals.org/content/41/W1/W41.abstract],

    文章公共医学中心PubMed.谷歌学者

  16. 16。

    Rohlf C,Ivnitskiy:客户端即时引擎的安全挑战。IEEE安全隐私。2012,10(2):84-86[http://doi.ieeecomputersocietes.org/10.1109/msp.2012.53],

    文章谷歌学者

  17. 17。

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

  18. 18

    《许多人的力量》。美国国家生物技术公司。2011,29:201-203。

    文章PubMed.CAS谷歌学者

  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:社交网络,协作,参与,受让值和开放性。J MED Internet Res。2008,10:E22-

    文章公共医学中心PubMed.谷歌学者

  21. 21.

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

    文章谷歌学者

  22. 22.

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

    文章公共医学中心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-

    文章公共医学中心PubMed.谷歌学者

  25. 25。

    Veiga DFT,DEUS HF,Akdemir C,Vascomcelos 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。

    Hendler J,Holm J,Musialek C,Thomas G:美国政府联系开放数据:语义.Data.gov。IEEE智能系统。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年。

    文章公共医学中心PubMed.CAS谷歌学者

  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],

    文章公共医学中心PubMed.CAS谷歌学者

  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.

    Hull D, Wolstencroft K, Stevens R, Goble C, Pocock M, Li P, Oinn T: Taverna:一种构建和运行服务工作流的工具。核酸学报2006,34(4):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.

    彭朗:计算科学的可重复研究。科学。2011,334:1226-1227。

    文章公共医学中心PubMed.CAS谷歌学者

  35. 35。

    Almeida JS,Iraibho E,Gorrepati VL,Wilkinson S,Robbins De,Gruneberg A,Hackney JR:ImageJs:Web浏览器中的个性化,参与,普遍和可重复的图像生物信息学。J Pathol Informat。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.

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

  53. 53.

    jQuery[http://jquery.com],

  54. 54.

    Twitter Bootstrap。[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。

    邹强,李晓波,姜文荣,林志勇,李国良,陈凯: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.

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

  63. 63.

    Tendulkar V, Snyder 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 J:全球电脑。SCI AM。2002,286(3):40-47。[2002年3月],

    文章PubMed.谷歌学者

  65. 65.

    Karp AH:全球计算机。第四届通过计算创建、连接和协作国际会议记录,2006年6月5日,华盛顿特区: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.

    水银。[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.),允许在任何媒介中不受限制地使用、分发和复制,前提是原创作品被正确地记入贷方。知识共享公共领域奉献豁免(http://creativecommons.org/publicdomain/zero/1.0/)适用于本条提供的数据,除非另有说明。

再版和权限

关于这篇文章

通过CrossMark验证货币和真实性

引用这篇文章

威尔金森,S.R.,阿尔梅达,J.SQMachine:在Web浏览器的商品超级计算机。欧宝娱乐合法吗15,176(2014)。https://doi.org/10.1186/1471-2105-15-176

下载引用

关键字

  • 云计算
  • 众包
  • 分布式计算
  • javascript.
  • Mapreduce.
  • PaaS
  • 序列分析
  • 网络服务