跳转到主要内容

QMachine:网络浏览器中的普通超级计算

摘要

背景

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

结果

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

结论

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

可用性

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 欧宝 可能会切实影响机器性能的。

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

JavaScript(JS)语言不仅是“真正的语言”[ar 欧宝 ]但也是“C的衣服”[ar 欧宝 支持函数式和面向对象的编程风格。然而,与Lisp不同的是,JS在学术界之外被广泛使用,在超过13年的时间里,JS一直是最受欢迎的12种语言之一[ar 欧宝 ]。JS的科学图书馆相对稀缺,虽然一些专门的图书馆如EBI的BIOJS [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浏览器就可以被任何研究人员充分利用,而不管他的专业知识或感兴趣的领域。欧洲生物信息学研究所的所有数据服务都采用了RDF框架,这极大地说明了其目前的使用程度[ar 欧宝 ]。据我们的一些工作也说明了[ar 欧宝 - - - - - -ar 欧宝 [开发用于TCGA的SPARQL端点,服务器端托管数据的卷不是开发使用这些数据的Web应用程序(“Web Apps”)的重要障碍。另一方面,尽管有像Taverna这样的优秀框架,但数据分析的工作流程的机制尚未变成用户友好的商品。ar 欧宝 ]并分享[ar 欧宝 ]。一种可能性是,底层web服务本身需要能够随时进行组装——即使是过程的过时版本。这是现代工作流程结果再现性的绝对要求[ar 欧宝 ]。我们已经探索了使用模块化的基于浏览器的web应用程序来在标准的生物信息学应用程序(如图像分析)中提供这种功能[ar 欧宝 ]序列分析[ar 欧宝 ]。这两项努力的成功强化了脚本标记加载(web浏览器用于加载web应用程序的相同机制)可以在多个物理机器上协调和分发生物信息学工作流的执行的主张。下面结果部分详细介绍的说明性和验证性的例子,将通过分析20个不同的基因组来扩展这两个报告中的第二个相同的序列分析例子链球菌引起的肺炎在平行下。

方法

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),从它们各自的网址(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 欧宝 。作为帖子的一部分发送的数据应以JavaScript对象表示法(JSON)格式格式化;来自QM的响应数据也是JSON格式化的。请注意,客户端不需要是浏览器 - 任何可以通过HTTP和操作JSON格式数据传达的软件包都可以直接使用QM。

表格1HTTP API

API服务器实现为简单的Node.js [ar 欧宝 程序,使用节点包管理器(NPM)从QM自己的公开可用模块“QM”中加载并执行其所有应用程序逻辑[ar 欧宝 ]。该模块支持五种不同的数据库作为持久存储的目标:Apache CouchDB [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,在网页浏览器间分发工作流程,而不会违反同源政策[ar 欧宝 ]。CORS在web浏览器中有广泛的支持[ar 欧宝 ]。

Web服务器

web服务器,像API服务器一样,是作为Node.js程序实现的,它的逻辑包含在同一个NPM模块“qm”中。也就是说,QMachine的所有基本库的安装都可以通过运行Node内置的模块管理系统来实现: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 欧宝 和推特引导[ar 欧宝 ]确保各种移动和桌面浏览器的一致外观。GUI另外尝试通过与Google Chrome Frame的可选集成来支持过时的浏览器[ar 欧宝 , HTML5 Shiv [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),从它们各自的网址(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乘以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模式作为第二个例子的扩展,随后使用一个分布在QM志愿者中的“reduce”来总结分布式“地图”的结果:

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

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

如在第一个例子中,我们有一些x我们希望通过一些功能来改变f, 以便x现在是一个引用NCBI托管的FASTA文件的url数组:

我们希望对每个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可以——并且已经——被整个社区发现了。在12个月期间2013年4月开始,QM 220万多个API调用收到2100个IP地址在87个国家超过1800 QM“盒子”(代码和结果交换域定义的令牌),98箱接收超过1000个电话每16盒接到10000个电话或者更多。图中描述了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%的1小时期间是空闲的(没有接到电话),这些时间被忽略了。细虚线表示按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服务器,并根据临床和/或生物医学研究使用的需要完全配置自己的安全性。当然,这些保证可以通过检查质量管理的源代码来验证。

讨论

QMachine是一个用于执行分布式工作流的web服务,它可以使用普通的web浏览器作为众包超级计算机的临时计算节点。这里的想法很简单:装有网络浏览器的普通电脑通过访问一个网站来加入一个抽象的机器,然后通过导航到另一个网站或关闭浏览器来脱离。当浏览器仍然在站点上时,它通过执行JS来响应来自用户和站点后端基础设施的输入,这为抽象机器提供了一些执行计算的潜力。在任何时刻,高流量网站可用的净计算潜力都在HPC范围内,如图所示ar 欧宝 。通过自愿计算,质量管理使这种潜力能够在没有名义成本的情况下被利用。

图5.
图5.

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

Mapreduce.

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

分布式计算

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

云浏览器

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

生物医学应用

在临床环境中,由于隐私问题,可以难以分配工作流程,以防止敏感数据离开医院环境,其中常规HPC通常不存在。QM满足此预匹卡,而无需额外资源。如图所示ar 欧宝 , 2013年11月Top500 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浏览器作为通用软件平台所主导。现代web浏览器的特性超越了那些使其成为具有高级通信层的高性能计算环境的特性;它们还包括一个变相的特性,即计算在一个健壮的沙箱中运行,这阻止了对底层机器的潜在敏感文件系统的访问。QM还响应了另一种现代趋势,即通过使用MapReduce编程模式来利用HPC资源,而不是通过与计算节点直接交互。本报告中说明QM使用的序列分析应用提供了一种即时效用,这将有利于医学基因组学中的生物信息学应用。然而,有人认为,QM作为一个“网络的”分布式计算系统,在识别普遍网络计算的基本特征方面可能同样有用。

支持数据的可用性

链球菌引起的肺炎基因组数据可以直接从公开的在线存储库使用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。“结果”部分中所示示例的代码和数据可在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。

    文章公共医学中心PubMed.中科院谷歌学术搜索

  2. 2。

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

    文章PubMed.中科院谷歌学术搜索

  3. 3.

    A:超越数据洪流。科学出版社,2009。

    文章PubMed.中科院谷歌学术搜索

  4. 4。

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

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

  14. 14。

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

    文章公共医学中心PubMed.中科院谷歌学术搜索

  15. 15.

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

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

  16. 16.

    Rohlf C, Ivnitskiy Y:客户端即时引擎的安全挑战。acta optica sinica, 2012, 38(2): 184 - 188。(http://doi.ieeecomputersocietes.org/10.1109/msp.2012.53),

    文章谷歌学术搜索

  17. 17.

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

  18. 18.

    Sansom C:许多人的力量。生物技术。2011,29:201-203。

    文章PubMed.中科院谷歌学术搜索

  19. 19.

    GitHub中的社交编码:开放软件库中的透明和协作。计算机支持协同工作(Computer Supported Cooperative Work, CSCW’12)2012,纽约:ACM, 1277-1286。(http://doi.acm.org/10.1145/2145204.2145396),

    谷歌学术搜索

  20. 20。

    Eysenbach G:医学2.0:社交网络、协作、参与、调解和开放。医学互联网研究2008,10:e22-

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

  21. 21。

    Berners-Lee T, Hendler J:从语义网到社交机器:人工智能在万维网上的一个研究挑战。中国生物医学工程学报。2010,174:156-161。

    文章谷歌学术搜索

  22. 22。

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

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

  23. 23。

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

    谷歌学术搜索

  24. 24。

    利用DAS技术整合序列和结构生物学。欧宝娱乐合法吗中国生物医学工程学报,2007,22 (4):457 - 461

    文章公共医学中心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:美国政府链接的开放数据:sematic . 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。

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

    文章公共医学中心PubMed.中科院谷歌学术搜索

  30. 30.

    Robbins DE, Grüneberg A, Deus HF, Tanik MM, Almeida 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:链接癌症基因组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。

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

    文章公共医学中心PubMed.中科院谷歌学术搜索

  35. 35。

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

    文章谷歌学术搜索

  36. 36。

    关键词:分形MapReduce,序列比对,分形分解《中国生物医学工程学报》2012年第7期

    文章谷歌学术搜索

  37. 37。

    Lenk A, Klems M, Nimis J, Tai S, Sandholm T:云里面有什么?云景观的建筑图。2009年ICSE云计算软件工程挑战研讨会论文集,Cloud ' 09。2009,华盛顿:IEEE计算机学会,23-31。(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。

    复述。(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。

    安德森DP,库比亚托维茨J:世界计算机。科学通报,2002,(3):40-47。(2002年3月),

    文章PubMed.谷歌学术搜索

  65. 65。

    卡普·阿:全球计算机。第四届计算机创造、连接和协作国际会议论文集,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。两位作者都开发了该报告并测试了说明性示例。这位作者都读到并批准了最终手稿。

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

以下是作者提交的图片原始文件的链接。

12859_2014_6442_moesm1_esm.pdf.

图1的作者原始文件

12859 _2014_6442_moesm2_esm.pdf

图2的作者原始文件

12859_2014_6442_moesm3_esm.pdf.

图3的作者原始文件

12859 _2014_6442_moesm4_esm.pdf

图4的作者原始文件

12859_2014_6442_moesm5_esm.pdf.

图5的作者原始文件

权利和权限

本文在BioMed Central Ltd.的许可下发布了这是一个开放的访问文章,根据欧宝体育2021足球欧洲杯买球平台Creative Commons归因许可(http://creativecommons.org/licenses/by/2.0),允许在任何媒体上不受限制地使用、分发和复制,但前提是原创作品须注明出处。“创作共用公共领域”豁免书(http://creativecommons.org/publicdomain/zero/1.0/)除非另有说明,否则适用于本文中提供的数据。

再版和权限

关于这篇文章

通过十字标记验证货币和真实性

引用这篇文章

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

下载引用

关键字

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