平码五不中公式规律
  • / 34
  • 下载费用:30 金币  

用于可扩展的异步计算架构的系统和方法.pdf

关 键 ?#21097;?/dt>
用于 扩展 异步 计算 架构 系统 方法
  专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
摘要
申请专利号:

CN201580020841.1

申请日:

2015.03.09

公开号:

CN106663081A

公开日:

2017.05.10

当前法律状态:

撤回

有效性:

无权

法?#19978;?#24773;: 发明专利申请公布后的视为撤回IPC(主分类):G06F 15/16申请公布日:20170510|||公开
IPC分类号: G06F15/16 主分类号: G06F15/16
申请人: 利弗环球有限责任公司
发明人: 罗翰·马洛里·?#21697;?#39532;尔·阿伦
地址: 美国加利福尼亚州
优?#28909;ǎ?/td> 2014.03.12 US 61/952,055; 2014.11.10 US 14/537,768
专利代理机构: 北京安信方达知识产权代理有限公司 11262 代理人: 周靖;郑霞
PDF完整版下载: PDF下载
法律状态
申请(专利)号:

CN201580020841.1

授权公告号:

|||

法律状态公告日:

2017.11.03|||2017.05.10

法律状态类型:

发明专利申请公布后的视为撤回|||公开

摘要

描述用于分布式数据处理方法的系统和方法,该分布式数据处理方法包含但不限于:由后端装置接收源数据;由后端装置将源数据分区为多个数据线程;由后端装置向多个用户装置中的每者发送多个数据线程中的至少一者;并由后端装置基于多个数据线程结果来确定源数据的工作成果,多个数据线程结果中的每者由多个用户装置中的一者基于多个数据线程中的至少一者来确定。

权利要求书

1.一种用于处理数据的方法,所述方法包括:
由后端装置接收源数据;
由所述后端装置将所述源数据分区为多个数据线程;
由所述后端装置向多个用户装置中的每者发送所述多个数据线程中的至少一者;并且
由所述后端装置基于多个数据线程结果来确定所述源数据的工作成果,所述多个数据
线程结果中的每者由所述多个用户装置中的一者基于所述多个数据线程中的所述至少一
者确定。
2.根据权利要求1所述的方法,其中:
所述源数据为视频数据;并且
所述数据工作包括用于所述视频数据的帧的图像处理。
3.根据权利要求2所述的方法,其中:
将所述源数据分区为所述多个数据线程包括:基于与所述帧和多个区域相关联的元数
据将所述帧分区为所述多个区域,所述多个区域中的每个区域对应于所述多个数据线程中
的一者。
4.根据权利要求2所述的方法,其中,将所述源数据分区为所述多个数据线程包括基于
所述源数据的像素来分区所述源数据。
5.根据权利要求2所述的方法,其中,所述帧为目标空间的图像。
6.根据权利要求5所述的方法,其中:
所述目标空间由多个顶点组成;并且
所述多个顶点中的每者对应于所述目标空间的3维部分。
7.根据权利要求6所述的方法,其中:
所述多个数据线程中的每者与所述多个顶点中的至少一者相关联;并且
所述多个数据线程中的每者对应于所述帧的区域。
8.根据权利要求7所述的方法,其中,所述数据线程结果中的每者通过确定与至少一种
显示特性相关联的加权值来确定,所述至少一种显示特性与所述帧的所述区域相关联。
9.根据权利要求8所述的方法,其中,所述显示特性至少包括与所述帧的所述区域相关
联的颜色。
10.根据权利要求6所述的方法,其中,所述帧采集所述多个顶点中的至少一些顶点。
11.根据权利要求6所述的方法,其中,所述用户装置基于所述工作成果显示所述目标
空间的3维投影。
12.根据权利要求1所述的方法,其中,确定所述工作成果包括:
由所述后端装置从所述多个用户装置接收所述多个数据线程结果;并且
基于所接收到的所述多个数据线程结果来确定所述数据工作的所述工作成果。
13.根据权利要求1所述的方法,其中,发送所述多个数据线程中的至少一者包括:
确定所述多个用户装置中的每者的处理能力和网络状况中的至少一者;并且
基于所述处理能力和网络状况中的至少一者向所述多个用户装置中的每者分配所述
多个数据线程中的至少一者。
14.根据权利要求1所述的方法,还包括将所述源数据格式化为图形处理单元(GPU)兼
容的格式,其中,所述多个数据线程结果中的每者由与所述多个用户装置中的每者相关联
的至少一个GPU确定。
15.根据权利要求14所述的方法,其中,所述GPU兼容的格式与着色器语言相关联。
16.根据权利要求15所述的方法,其中,所述源数据被格式化为下列元素中的至少一
者:几何形状、顶点、纹理、法线和用于着色器语言的代码。
17.根据权利要求1所述的方法,其中,所述数据线程结果通过以下操作来确定:
向所述用户装置的显示屏再现所述数据线程结果;以及
复制向所述显示屏再现的所述数据线程结果。
18.根据权利要求17所述的方法,还包括:在所述多个数据线程结果已向与每个用户装
置相关联的显示屏再?#31181;?#21518;,由所述后端装置接收所述多个数据线程结果。
19.一种用于处理数据的设备,所述设备包括:
后端装置,所述后端装置被配置成:
接收源数据;
将所述源数据分区为多个数据线程;
向多个用户装置中的每者发送所述多个数据线程中的至少一者;
基于多个数据线程结果来确定所述源数据的工作成果,所述多个数据线程结果中的每
者由所述多个用户装置中的一者基于所述多个数据线程中的所述至少一者确定;并且
向所述多个用户装置中的至少一者发送所述工作成果。
20.一种存储程序指令的非暂态计算机可读存储介?#21097;?#22312;所述程序指令被执行时,促使
处理器:
接收源数据;
将所述源数据分区为多个数据线程;
向多个用户装置中的每者发送所述多个数据线程中的至少一者;
基于多个数据线程结果来确定所述源数据的工作成果,所述多个数据线程结果中的每
者由所述多个用户装置中的一者基于所述多个数据线程中的所述至少一者确定;并且
向所述多个用户装置中的至少一者发送所述工作成果。

说明书

用于可扩展的异步计算架构的系统和方法

相关申请的交叉引用

本申请要求在2014年3月12日提交的美国临时专利申请No.61/952,055;以及在
2014年11月10日提交的美国专利申请No.14/537,768的优?#28909;ǎ?#19978;述每个专利申请的全部
内容通过引用并入本文。

发明背景

1.发明领域

各实施例大体涉及大规模的分布式计算架构,并且更具体地,涉及使用网络内可
用的空闲核的可扩展异步计算架构。

2.背景

各种分布式计算架构已被开发出用以执行某些复杂(大规模的)的计算任务。此类
分布式计算架构利用大量内核的处理能力来处理复杂的计算任务,它可能要求极大量的处
理能力。具体地,复杂的计算任务可以被分布到多个内核以进行处理。

虽然分布式计算架构已被用于某些复杂的计算任务,但是在计算任务极其复杂
时,分布式计算架构可能遇到容量问题。在数据处理中心(例如,谷歌大脑)可包括有限数量
的内核(例如,16,000个内核)的情况下,分布式计算架构的总处理能力受由数据处理中心
支持的内核的数量的限制。

公开概述

本文所述的实施例涉及使用分布式计算架构的分布式数据处理。分布式计算架构
可包含后端装置(例如,中心服务器),其被提供用于将计算任务分区为多个块(例如,更小
的具体任务)。后端装置可经由网络将每个块分布到一组用户装置中的一者。后端装置可基
于与每个用户装置相关联的处理能力和网络状况来分布各块。

分布式计算架构可被实施以解决需要极大量处理能力的很多计算任务。在非限制
性实施例中,分布式计算架构可被实施用于3维空间成像、处理和显示过程。具体地,目标(3
维)空间被分区为包含多个顶点。关于目标空间的数据(例如,图像数据、视频数据和/或类
似物)由源装置(例如,照相机)采集。每个图像或视频帧可包含多个像素,每个像素可与多
个顶点中的一者相关联。数据线程(它们中的一或多者可形成块)可由后端装置生成用于分
布在各种用户装置之中,其中,每个数据线程可对应于关于顶点的数据(例如,像素数据)。

每个用户装置可计算被分配给用户装置的数据线程的数据结果(例如,加权值)并
将该数据结果回送至后端装置。后端装置可基于从用户装置接收到的多个数据结果来确定
工作成果。接着后端装置可?#28304;?#20648;工作成果,用于在用户装置上将来或实时显示(在工作成
果对应于处理图像/视频时)。在一些实施例中,后端装置可能不能显示数据。后端装置可保
持处理调度和数据位置。此类数据可被?#38236;?#23384;储在后端装置或存储在远程数据存储中(例
如,在网络内的另一节点中)。

在一些实施例中,后端装置可向至少一些用户装置发送工作成果用于消?#36873;?#22312;其
它实施例中,工作成果可不被发送给用户装置。与后端装置或第三方相关联的实体可消费
工作成果。在这些情况下,用户装置(或网络内的其它节点)可不接收局部或完整的工作成
果。在具体实施例中,用户装置可基于与颜色、纹理、频?#26102;?#25442;、小波变换、平均值、顶点的标
?#35745;?#24046;相关的工作成果显示目标空间的3维投影(采用视频的形式)。

在一些实施例中,处理源数据所需的用户装置的计数和数据处理可为动态的(例
如,随着时间改变)。因此,在更多的用户装置变为可用时,分布式计算架构可增加规模,反
之亦然。在各种实施例中,在阈值最少数量的用户装置未能实现以用于实时处理给定计算
任务时,专用的用户装置可被添加以用于对抗计算任务。

用于处理数据的方法,该方法包括但不限于:由后端装置接收源数据;由后端装置
将源数据分区为多个数据线程;由后端装置向多个用户装置中的每者发送多个数据线程中
的至少一者;并由后端装置基于多个数据线程结果来确定源数据的工作成果,多个数据线
程结果中的每者由多个用户装置中的一者基于多个数据线程中的至少一者来确定。

在一些实施例中,源数据为视频数据;以及数据工作包含视频数据帧的图像处理。

根据一些实施例,将源数据分区为多个数据线程包含,基于与帧和多个区域相关
联的元数据将帧分区为多个区域,多个区域中的每个区域对应于多个数据线程中的一者。

在一些实施例中,将源数据分区为多个数据线程包含基于源数据的像素来分区源
数据。

根据各种实施例,帧为目标空间的图像。

在一些实施例中,目标空间包含多个顶点;并且多个顶点中的每者对应于目标空
间的3维部分。

在一些实施例中,多个数据线程中的每者与多个顶点中的至少一者相关联;并且
多个数据线程中的每者对应于帧的区域。

在一些实施例中,数据线程结果中的每者通过确定与至少一种显示特性相关联的
加权值来确定,至少一种显示特性与帧的区域相关联。

在一些实施例中,显示特性至少包含与帧的区域相关联的颜色。

在多个实施例中,帧采集多个顶点中的至少一些顶点。

在各种实施例中,用户装置基于工作成果显示目标空间的3维投影。

根据一些实施例,确定工作成果包含:由后端装置从多个用户装置接收多个数据
线程结果;并基于所接收到的多个数据线程结果来确定数据工作的工作成果。

在一些实施例中,发送多个数据线程中的至少一者包含:确定多个用户装置中的
每者的至少一个处理能力和网络状况;并基于处理能力和网络状况中的至少一个来向多个
用户装置中的每者来分配多个数据线程中的至少一者。

在一些实施例中,权利要求的方法另外包括将源数据格式化为图形处理单元
(GPU)兼容的格式,其中,多个数据线程结果中的每者由与多个用户装置中的每者相关联的
至少一个GPU确定。

在一些实施例中,GPU兼容的格式与着色器语言相关联。

在各种实施例中,源数据被格式化为下列元素中的至少一者:几何形状、顶点、纹
理、法线和用于着色器语言的代码。

在一些实施例中,数据线程结果通过向用户装置的显示屏再现数据线程结果;并
复制向显示屏再现的数据线程结果来确定。

根据一些实施例,该方法另外包括,在已向与每个用户装置相关联的显示屏再现
多个数据线程结果之后,由后端装置接收多个数据线程结果。

用于处理数据的设备相对于各种实施例来描述,该设备包含但不限于:后端装置,
该后端装置被配置成:接收源数据;将源数据分区为多个数据线程;向多个用户装置中的每
者发送多个数据线程中的至少一者;基于多个数据线程结果来确定源数据的工作成果,多
个数据线程结果中的每者由多个用户装置中的一者基于多个数据线程中的至少一者来确
定;并向多个用户装置中的至少一者发送工作成果。

各种实施例涉及存储程序指令的非暂态计算机可读存储介?#21097;?#22312;该程序指令被执
行时,促使处理器:接收源数据;将源数据分区为多个数据线程;向多个用户装置中的每者
发送多个数据线程中的至少一者;基于多个数据线程结果来确定源数据的工作成果,多个
数据线程结果中的每者由多个用户装置中的一者基于多个数据线程中的至少一者来确定;
并向多个用户装置中的至少一者发送工作成果。

附图简述

图1为示出根据各种实施例的分布式计算架构的示例的示意性框图。

图2为示出根据各种实施例的分布式数据处理方法的示例的处理流程图。

图3A为示出根据各种实施例的目标空间的透视图的示意性框图。

图3B为示出根据各种实施例的目标空间的前视图的示意性框图。

图4A为示出根据各种实施例的数据线程的示例的示意性框图。

图4B为示出根据各种实施例的线程结果的示例的示意性框图。

图5为示出根据各种实施例的数据线程分配方法的示例的处理流程图。

图6为示出根据各种实施例的数据线程分配和再分配图的示例的示意性框图。

图7为示出在一些实施例中的管理界面的示例的屏幕。

图8为示出根据各种实施例的数据处理方法的示例的处理流程图。

图9为示出根据各种实施例的面向GPU的分布式数据处理方法的示例的处理流程
图。

图10为示出根据各种实施例的面向GPU的分布式数据处理方法的另一示例的处理
流程图。

详细描述

在下面的各种实施例的描述中,引用了形成本说明书的一部分的附图,其中,所述
附图借助于本发明可实施的特定实施例的例证来示出。应理解在不脱离本公开的各种实施
例的范围的情况下,可使用其它实施例并可做出结构变化。

如本文所引用的,“用户内核”可为至少一个数据处理单元,诸如但不限于微处理
器、中央数据处理单元、图形处理单元(GPU)、其它类型的处理器、它们的组?#31995;取?#22312;具体实
施例中,用户内核可为无需加载另外的软件程序或插件可经由浏览器应用直接访问的GPU
内核。“用户装置”可为连接到网络(例如,任何公?#19981;蛩接?#32593;络)的任?#25105;?#21160;或?#19988;?#21160;计算
装置。在一些实施例中,用户装置可访问由后端装置所提供的服务。该服务可包含但不限
于,数据传输服务、视频流传输服务、它们的组合和/或类似物。每个后端装置可包含用于处
理用户装置的任务的一个或多个用户内核。

“数据线程”可指的是被分配以供用户内核处理的数据的单元。数据线程可被后端
装置选择和分配给特定用户内核(或用户装置)。在一些非限制性示例中,数据线程可包含
图像的一部分(例如,像素的一部分、像素、宏块等)、视频区块、被布置在视频类流中的抽象
数据点、对应于它们的元数据和/或类似物。“数据块”可为包含至少一个数据线程的数据的
单元。“数据工作”可为可以被分段为由用户内核处理的多个数据线程/块的任何相干的计
算任务。例如,数据工作可为用于处理至少一个像素、宏块、视频数据的帧、3维投影、过?#36865;?br />像、图像的对象识别和/或类似物的处理任务。

如非限制性示例所示,数据工作可为处理具有大小为1920p*1080p的图像。数据块
可为在具有大小为128p*128p的图像上的区域。并且在该数据块内,每个像素可与数据线程
相关联。因此,处理图像的数据工作可被划分为125个处理块,其中,每个数据块可?#36816;?#36848;的
方式在单个用户装置上的单个帧中处理(每个用户装置可处理其预约的在任何处理任务中
可用的任何数据的5帧/秒至多于120帧/秒中的任一种)。对处理数据工作的预约可在网站
中提供(例如,硬编码),该网站可包含连接到该网站的许多用户装置(大量的网页流量)。

本公开的实施例涉及使用web内核使能可扩展的分布式计算构架的系统和方法。
带宽和web技术的突破性进展允许跨网络内的用户内核可扩展的异步并行处理架构。用户
内核可为用户装置的组件,其可通过用户访问设置在网络内的服务(例如,web服务,诸如视
频流传输服务)来操作。因此,分布式计算架构的处理能力随着连接到网络的用户装置的数
量增加而增加(使用设置在网络内的服务)。在各种实施例中,用户内核的数量可为数百万
个。

分布式计算架构的具体实施包含但不限于,大规模的图像处理、web再?#24103;?维
WebGL再?#24103;?#28145;度学习神经网络、图像识别、图像过滤和本文所述的其它合适用户。在特定的
具体实施中,本文所述的分布式计算架构可能够实时处理数据(例如,视频/图像数据),诸
如以提供实时服务(例如,流传输服务)。例如,用户装置(例如,通过用户内核)可被配置成
处理用于提供实时流传输服务的数据的一部分。所处理的数据(例如,工作成果)可由用户
装置接收以用于提供所述的实时服务。本领域的普通技术人员应明白,工作成果可不必发
送给用户装置。用户装置可以其它方式,诸如但不限于货币补偿、服务、它们的组合和/或类
似物来补偿。

在各种实施例中,每个用户装置的处理能力取决于用户内核的总处理能力、用户
内核的当前处理能力、网络带宽状态、它们的组合和/或类似物。在典型的实施例中,分布式
计算架构可需要一小部分的用户内核的处理能力(例如,总处理能力或目前的处理能力),
使得被分配给特定用户装置的分布式过程基本上不干扰用户内核的常规处理。在通常情况
下,用户装置的用户将不能够注意到分布式进程在用户装置上执行。

图1为示出根据各种实施例的分布式计算架构100的示例的示意性框图。参考图1,
分布式计算架构100可包含至少一个后端装置110、数据源120、多个用户装置(例如,用户装
置A 140a、用户装置B 140b、…、用户装置N 140n等)。

在一些实施例中,网络130可允许在后端装置110和用户装置140a-140n之间的数
据传输。在另外的实施例中,网络130也可允许在数据源120和后端装置110之间的数据传
输。在另外的实施例中,网络130可允许在数据库170和后端装置110之间的数据传输。用户
装置140a-140n可通过网络130彼此连接。网络130可为广域通信网络,诸如但不限于互联网
或一或多个内联网、局域网(LAN)、以太网、城域网(MAN)、广域网(WAN)、它们的组合和/或类
似物。在具体实施例中,网络130可表示一个或多个安全网络,其用合适的安全特征,诸如但
不限于防火墙、?#29992;?#25110;禁止未授权人员或实体访问网络通信的其它软件或?#24067;?#37197;置来配
置。可通过网络130传输的数据可使用进一步使数据安全的每帧密钥在用户装置140a-140n
的用户内核150上的着色器语?#38405;詡用?#21644;解密。

数据源120可被连接到用户装置140a-140n(例如,经由网络130或以其它方式)以
用于提供由分布式计算架构100的用户装置140a-140n处理的源数据。例如,数据源120可包
含任何合适的源或装置,其用于输出未被处理的数据,诸如但不限于图像/视频数据、应用
数据和/或类似物。在具体实施例中,数据源120可包含用于采集视频、图像和/或音频数据
的至少一个照相机。其它数据源包含但不限于货币?#19968;?#29575;、天气传感器数据、基因材料测
序、它们的组合和/或类似物。数据源120可包含用于存储所采集的输出数据(例如,实际源
数据)的数据库/服务器。

在一些实施例中,数据源120可被连接到后端装置110(例如,经由网络)。后端装置
110可基于由数据源120所输出的实际数据来生成元数据(并被存储在与数据源120相关联
的数据库/服务器中)。后端装置110可向用户装置140a-140n传送元数据(例如,具体指示被
分区的数据块/线程)。用户装置140a-140n可从数据源120(例如,从与数据源相关联的服务
器/数据库)检索实际数据以如本文所述进行处理。

在其它实施例中,数据源120可包含具有任何合适类型的图像/视频/音频采集性
能的用户装置140a-140n中的至少一者(例如,智能照相机)。在此类实施例中,用户装置
140a-140n中的至少一者可消费其自己的输出用于?#36816;?#36848;的方式进行处理而无需从远程数
据源120检索实际数据。尽管用户装置140a-140n中的至少一者不消费整个输出,后端装置
110可生成元数据,使得其它用户装置可从用户装置140a-140n中的至少一者检索输出的至
少一部分以进行处理。

后端装置110可包含至少一个处理器111、可操作地耦?#31995;?#22788;理器111的存储器
112、至少一个网络装置113、至少一个用户接口114等。在一些实施例中,后端装置110可包
含用?#24067;?#25110;软件来配置以执行本文所述的操作的台式计算机、大型计算机、便携式计算机、
平板装置、智能电话装置等。

例如,后端装置110可包含具有合适的处理能力、存储器、用户接口(例如,显示器
和输入)能力和通信能力的典型台式PC或AppleTM计算机装置,其在用合适的应用软件(或
其它软件)配置时,执行本文所述的操作。适合具体实施的平台包含Amazon/Debian Linux、
HTML(例如,HTML5)、没有插件(诸如java或flash)的合?#36755;?#35272;器等。因此,特定实施例可使
用通过用本文所述的合适软件方法来配置往往已存在于许多商业和组织环境中的处理器
装置来实施。因此,此类实施例可用最小的附加?#24067;?#25104;本来实施。然而,后端装置110的其它
实施例可涉及用被专门配置用于执行本文所述的操作的专用装置?#24067;?#26469;实施的系统和方
法。

处理器111可包含任何合适的数据处理装置,诸如通用处理器(例如,微处理器)或
执行所述的后端装置110的功能的数据处理装置。在替代实施方案中,处理器111可为任何
常规的处理器、控制器、微控制器或状态机。处理器111也可被实施为计算装置的组合,例如
DSP与微处理器的组合、多个微处理器、GPU、结合DSP内核的至少一个微处理器或任何其它
此类配置。

存储器112可操作地耦?#31995;?#22788;理器112,并且可包含用于存储用于控制处理器111
和供处理器111使用以执行本文所述的操作和功能的软件和数据的任何合适的器件,其包
含但不限于随机存取存储器(RAM)、只读存储器(ROM)、软盘、硬盘、?#29992;?#29399;或其它修理完成
传感器板(RSB)连接的存储器装置等。

网络装置113可被配置成用于通过网络130来通信。网络装置113可包含接口软件、
?#24067;?#25110;它们的组合以用于通过网络130来通信。网络装置113可包含?#24067;?#35832;如网络调制解
调器、无线接收器或收发器电子器件和/或与网络130(或与联网装置)的有线或无线通信链
路的软件。在具体实施例中,网络装置113可被耦合至处理器111以用于提供通信功能。网络
装置113可根据典型的行业标准,诸如但不限于码分多址(CDMA)、时分多址(TDMA)、频分多
址(FDMA)、长期演进(LTE)、无线保真(WiFi)、频?#23454;?#21046;(FM)、蓝牙(BT)、近场通信(NFC)等来
提供电话和其它通信。

在具体实施例中,后端装置110的用户接口114可包含至少一个显示装置。显示装
置可包含提供对人可察觉的视觉信号、听觉信号、触觉信号或它们的任何组合的任何合适
装置,包含但不限于触摸屏、LCD、LED、CRT、等离子体或其它合适的显示屏、音频扬声器或其
它音频产生装置、它们的组?#31995;取?br />

在一些实施例中,后端装置110的用户接口114可包含至少一个用户输入装置,其
为使用后端装置110的指定人员提供接口。用户输入装置可包含从用户接收输入的任何合
适的装置,包含但不限于一或多个手动操纵器(诸如但不限于开关、按钮、触摸屏、旋钮、滑
块、键盘、鼠标等)、麦克风、照相机、图像传感器、任何类型的远程连接控件等。

仍然参考图1,除了存储器112以外(或作为存储器112的备选方案),后端装置110
可操作地耦?#31995;?#33267;少一个数据库170。在一些实施例中,数据库170可通过网络130被连接到
后端装置110。在其它实施例中,数据库170可以以不通过网络130的其它合适的方式被连接
到后端装置110。相比于在后端装置110中的存储器112,数据库170可能够存储更大量的信
息并提供更大的安全等级以防止?#36816;?#23384;储的信息的未授权访问。数据库170可包含任何合
适的电子存储装置或系统,包含但不限于随机存取存储器RAM、只读存储器ROM、软盘、硬盘、
?#29992;?#29399;或其它RSB连接的存储器装置等。

在具体实施例中,数据库170可为由redis服务器保持的NoSql数据库,以控制改变
新数据块/线程的用户装置140a-140n并优化数据块/线程。用户装置140a-140n可能够与
redis服务器交互来以异步的方式存储并访问数据(例如,在元数据由数据库170和/或存储
器112保持的情况下,无瓶?#20445;?#23454;际数据可被存储在数据源120中)。此类访问的算法可被结
构化,使得没有数据重叠的危害。可包含Atomic指令以避免冲突危害。

数据库170和/或存储器112可被配置成存储来自数据源120的源数据(例如,未被
处理的数据)。在一些实施例中,源数据可被存储在数据库170或存储器112中的任一者中。
在其它实施例中,源数据的至少一部分可被存储在数据库170和存储器112中的一者中,而
源数据的独立部分可被存储在数据库170或存储器112中的另一者中。

在另外的实施例中,数据库170和/或存储器112可被配置成存储将通过网络130被
发送到用户装置140a-140n的分段数据线程。处理器111可将源数据(例如,数据工作)分区
为多个数据线程。每个数据线程可被发送给用户装置140a-140n中的一者以进行处理。在各
种实施例中,数据库170和/或存储器112可仅存储识别源数据所需的元数据。源数据自身可
被托管在内容分发网络(CDN)或驻留在数据源120内的另一服务器/数据库上。在数据块/线
程变得?#36816;?#36848;的方式可用时,用户装置140a-140n可拖动(例如,从后端装置110请求)该数
据块/线程。由于与用户装置140a-140n中的每者的每个用户内核150相关联的不相等的处
理时间,这可能是有利的。另选地,后端装置110可将数据块/线程推送到用户装置140a-
140n。一旦被分区,数据线程可在数据库170和/或存储器112内被存储并编索引,直到数据
线程由用户装置140a-140n中的一者处理。在通常被称为用户装置140n的用户装置可能出
于各种原因不能处理数据线程的情况下,数据库170和/或存储器112可存储所分配但还未
被处理的数据线程直到该数据线程已被处理。在?#33267;?#22806;的实施例中,数据库170和/或存储
器112可存储从用户装置接收到的处理后的数据线程结果。

在一些实施例中,数据线程和/或数据块可在后端装置110上被存储为数据列表,
该后端装置可采用NoSql服务器的形式,其中,redis服务器保持用户装置和NoSql服务器之
间的异步通信。借助于NoSql服务器允许快速访问平坦化数据结构的能力,该NoSql服务器
可在一些实施例中使用。后端装置110(或其至少一部分)可通过CDN被设置,或包含在后端
装置110或相关的数据库170中的数据可被复制到在世界各地分布的其它数据中心以消除
任何的单点失效。因此,可实现持久?#28304;?#20648;器以用于数据处理,即使包含数据的单节点服务
器变成离线状态。在各种实施例中,每个数据线程/块可仅包含用户装置140a-140n所需的
最小索引信息(例如,元数据)以检索或以其它方式获得待处理的正确数据和/或输出的数
据。?#36865;猓?#22788;理数据线程所必需的任何其它元数据/参数(例如,脚本、指令、参数、算法、存储
输出数据的位置、它们的组合和/或类似物)可被包含在每个数据线程/块中。因此,在接收
数据块/线程(其可包含指出实际数据的位置的元数据)时,用户装置140a-140n可基于在数
据块/线程中的元数据检索或以其它方式访问实际数据(位于服务器/数据库/网络而不是
后端装置110,例如位于数据源120)。

用户装置140a-140n中的每者(例如,关于用户装置n 140n所述)可包含至少一个
处理单元160、可操作地耦?#31995;?#22788;理单元160的用户装置存储器161、用户网络装置163、用户
装置接口164和用户内核150。用户装置140a-140n可为连接到网络130的专用或通用用户装
置。在通用用户装置的数量不满足处理某些计算任务的预定阈值的情况下,可添加另外的
专用的用户装置(以满足预定阈值或超出该阈值)。

处理单元160可被配置成执行用户装置140a-140n的一般功能。处理单元160可为
任何合适的数据处理装置,诸如通用处理器、微处理器、GPU等。在替代实施方案中,处理单
元160可为任何常规的处理器、控制器、微控制器或状态机。处理单元160也可被实施为计算
装置的组合,例如DSP与微处理器的组合、多个微处理器、结合DSP内核的至少一个微处理器
或任何其它此类配置。在具体实施例中,处理单元160可指的是用户装置140a-140n的GPU。
GPU可经由浏览器被连接到网络130(例如,互联网)而无需使用简单的HTML5的插件(例如,
java或flash),如通过提高的网络性能(例如,网络速度)所实现的那样。因此,处理单元160
的进程可能不为用户装置140a-140n中的每者的用户注意。

用户装置存储器161可操作地耦?#31995;?#22788;理单元160并且可包含用于存储软件和数
据的任何合适装置,该软件和数据用于控制处理单元160并供该处理单元使用以执行本文
所述的操作和功能。用户装置存储器161可为RAM、ROM、软盘、硬盘、?#29992;?#29399;或其它RSB连接的
存储器装置等。

用户网络装置163可包含接口软件、?#24067;?#25110;它们的组合以用于通过网络130来通
信。用户网络装置163可包含网络调制解调器、无线接收器或收发器电子器件和/或提高与
网络130(或与联网装置)的有线或无线通信链路的软件。在具体实施例中,用户网络装置
163可被耦合至处理单元160以用于提供通信功能。用户网络装置163可根据典型的行业标
准,诸如但不限于CDMA、TDMA、FDMA、LTE、WiFi、FM、BT、NFC和/或类似物来提供通信。在一些
实施例中,网络130可为互联网,因为用户装置140a-140n可使用最佳的带宽按地理方式扩
展。在其它实施例中,网络130可为受限的?#38236;?#32593;络。?#38236;?#32593;络可与其它?#25509;?#32593;络或通用互
联网相关。

在另外的实施例中,用户装置140a-140n中的每者可另外包含插件和?#24067;?#20197;加速
GPU(例如,用户内核150)处理。另外的插件可提供对用户装置140a-140n内的?#31995;?#31561;级的优
化功能的访问。另外的?#24067;?#21487;提升用户内核150的性能。用户装置140a-140n也可为数据中
心的?#26041;?#28857;,其处理发送给用户装置140a-140n的数据块/线程并将该数据块/线程中继回
用户装置140a-140n以中继回到后端装置110。

在具体实施例中,用户装置140a-140n的用户装置接口164可包含用于向用户显示
信息(例如,文字和图形)给用户的至少一个显示装置。显示装置可包含提供对人可察觉的
视觉信号、听觉信号、触觉信号或它们的任何组合的任何合适装置,包含但不限于触摸屏、
LCD、LED、CRT、等离子体或其它合适的显示屏、音频扬声器或其它音频产生装置、它们的组
?#31995;取?br />

在一些实施例中,用户装置140a-140n的用户装置接口164可包含至少一个用户输
入装置,其提供用于接受用户的输入的接口。用户输入装置可包含接收来自用户的输入的
任何合适的装置,包含但不限于一个或多个手动操纵器(诸如但不限于开关、按钮、触摸屏、
旋钮、滑块、键盘、鼠标等)、麦克风、照相机、图像传感器和/或类似物。

处理单元150可被配置成执行如上所述的用户装置140a-140n的数据线程处理功
能。在一些实施例中,用户内核150可与处理单元160相同。在其它实施例中,用户内核150可
为与处理单元160分隔开的处理装置。用户内核150可为用于处理数据线程的任何合适的数
据处理装置,诸如至少一个通用处理器、微处理器、GPU等。在替代实施方案中,用户内核150
可为任何常规的处理器、控制器、微控制器或状态机。用户内核150也可被实施为计算装置
的组合,例如DSP与微处理器的组合、多个微处理器、结合DSP内核的至少一个微处理器或任
何其它此类配置。

在具体实施例中,用户装置140a-140n中的每者可为任何有线或无线计算系统或
装置。在一些实施例中,用户装置140a-140n可为用?#24067;?#25110;软件来配置以执行本文所述的操
作的台式计算机、大型计算机、便携式计算机、平板装置等。例如,用户装置140a-140n中的
每者可包含具有合适的处理能力、存储器、用户接口(例如,显示器和输入)能力和通信能力
的典型台式PC或AppleTM计算机装置,其在用合适的应用软件(或其它软件)配置时,执行本
文所述的操作。在其它实施例中,用户装置140a-140n可包含移动智能电话(诸如但不限于
iPhoneTM、AndroidTM电话等)或具有合适的处理能力的其它移动电话。典型的现代移动电话
装置包含电话通信电子器件以及一些处理器电子器件、一个或多个显示装置和小键盘和/
或其它用户输入装置,诸如但不限于上述的输入装置。具体的实施例采用通常被称为智能
电话的移动电话,除了电话通信能力以外,该移动电话具有相对高级的处理、输入和显示能
力。然而,在本发明的另外实施例中,用户装置140a-140n可包含任何合适类型的移动电话
和/或其它类型的便携式电子通信装置,诸如但不限于电子智能平板装置(诸如但不限于
iPadTM)、便携式计算机等。通过本机库处理的移动GPU以及?#19988;?#21160;GPU可被实施以在相同异
步网络130上通信。

在一些实施例中,由用户装置140a-140n执行的功能可以通过利用现有的?#24067;?#29992;
最少的附加?#24067;?#25104;本来实施。在其它实施例中,本文所述的系统和方法可以用被特定配置
用以执行本文所述的操作的专用装置?#24067;?#26469;实施。在制造用户装置140a-140n期间,用于功
能的?#24067;?#21644;/或软件可被并入用户装置140a-140n中,例如以作为初始制造商的配置的一部
分。此类?#24067;?#21644;/或软件也可在初始制造以后被添加到用户装置140a-140n(例如,将一或多
个软件应用安装到用户装置140a-140n上)。

图2为示出根据各种实施例的分布式数据处理方法200的示例的处理流程图。参考
图1-2,分布式数据处理方法200可用分布式计算架构100来实施。在非限制性示例中,分布
式数据处理方法200可被实施以用于实施本文所述的显示阈值技术的3维实时流传输系统
和方法。

一般而言,此类3维实时流传输系统和方法可指的是被配置成将3维图形构造过程
分区为更小的区块(例如,数据线程)以供多个用户装置140a-140n处理(例如,由用户内核
150处理)的后端装置110。后端装置110可接着从用户装置140a-140n接收该更小区块中的
每者的结果(例如,数据线程结果)并计算来自数据线程结果的3维重构数据。一旦计算,3维
重构数据就可被传送到用户装置140a-140n中的每者以用于再现3维视频。本领域的普通技
术人员应注意,分布式数据处理方法200适用于其它类型的图像数据处理和一般数据处理。

首先在块B210,后端装置110可从关于数据工作的数据源120接收源数据。在一些
实施例中,源数据可为任何未被处理的数据,诸如但不限于图像数据、视频数据、音频数据、
应用数据、它们的组合和/或类似物。数据工作可定义可在源数据内定义的特定计算任务。
在非限制性示例中,尽管源数据为图形(例如,视频)数据,数据工作可描绘对应于帧的源数
据的部分。

接下来在B220,后端装置110可被配置成将源数据(例如,每个数据工作)分区为多
个数据线程。换句话说,源数据可被划分为多个数据工作,并且每个数据工作可被分区为多
个数据线程。源数据的此类划分可用于将复杂的计算任务分解为供多个用户内核150处理
的更小段,从而提供更精细的粒度和更大的处理能力。在具体实施例中,源数据的单元可被
存储在后端装置110、数据库170或在网络130中或不在网络130中的第三方存储装置中。源
数据的单元的分区可包含获得源数据的单元的每个离散块的位置指示符(例如,URL)。该离
散块(或源数据单元自身)可不在数据线程中。然而,位置指示符可作为数据线程被存储或
传输。换句话说,在一些实施例中,分区涉及元数据而不是数据。在其它实施例中,离散块自
身作为数据线程被存储和传输。

在非限制性示例中,视频流(源数据)可作为独立的数据工作(例如,独立的帧、每
个帧为数据工作)来接收。每个帧可另外基于顶点来划分(例如,数据线程)以进行处理。顶
点可为目标空间内的预定点(例如,体育馆等),其中,每个顶点可与目标空间内的可定义体
积相关联。每个顶点可对应于由数字照相机(数据源120)采集的像素、多像素或宏块的一部
分。在各种实施例中,数据线程可为关于由一个照相机在单帧采集的一个顶点的视频图像/
视频数据的单元。

接下来在块B230,后端装置110可在数据库170、存储器112、它们的组合和/或类似
物中存储多个数据线程。在给定时间可能没有许多用户内核150可用来处理每个数据线程
的情况下,所有数据线程可被存储。一些数据线程可立即通过分配给可用于进行处理的用
户内核150来处理。其它未分配的数据线程可被存储在数据库170或存储器112中,直到新的
用户内核150变为可用(例如,通过完成先前数据线程的数据线程处理或通过变为连接到网
络130)。所有数据线程可被存储为元数据,该元数据包含输入数据位置、脚本、指令、参数、
算法、存储输出数据的位置、需要设置的标记、它们的组合和/或类似物。在被处理以及输出
被存储时,元数据位置可被去除,以优化新的未处理数据块/线程的周期化。

在块B240,后端装置110可被配置成向在网络130内的每个可用用户装置140n发送
多个数据线程中的一者,其中,每个可用用户装置140n可包含用户内核150。在各种实施例
中,后端装置110可?#36816;?#36848;的方式识别网络130内的用户装置140a-140n。在用户装置140n具
有处理数据线程的自由用户内核150时,用户装置140n可被视为可用的。数据块/线程可被
从后端装置110推下或由用户装置140a-140n从后端装置110拉取。后端装置110可在推的过
程中向用户装置140a-140n周期性地发送数据块/线程,其中,在该用户装置可用时,每个用
户装置可接收并处理所发送的数据块/线程。另选地,用户装置可存储数据块/线程以供未
来处理。在其它实施例中,用户装置140a-140n中的每者可在拉的过程中向后端装置110发
送接收新的数据块/线程以处理的请求(在完成数据处理时)。在用户装置140a-140n可异步
访问来自后端装置110的元数据并且用户装置140a-140n中的每者可以不同速率处理的情
况下,由用户装置140a-140n拉取数据块/线程可能是经济高效的。发送给后端装置140a-
140n的数据可基于?#36816;?#36848;的方式的数据块/线程的优先级列表。

后端装置110可基于用户内核150的总处理能力、用户内核150的当前处理能力、网
络带宽状态、它们的组合和/或类似物向每个可用用户装置140n分配数据线程。在一些实施
例中,数据线程可包含用于处理数据线程?#24230;?#24335;脚本或指令,其与数据线程一起被发送给
用户装置。数据线程可包含元数据/脚本的指针,或指令可被包含在数据线程中,使得实际
的脚本或指令可被存储在另一服务器/数据库中而不是存储在后端装置110和数据库170
中。用户装置140a-140n可基于由数据线程的元数据所指出的位置来从另一服务器/数据库
检索或以其它方式访问实?#24335;?#26412;或指令。脚本或指令可为数据线程指定的。在其它实施例
中,指令可被预存储在用户装置140a-140n的用户装置存储器161中。在一些情况下,解密密
钥也可随数据块/线程被发送,以用用户内核150(GPU)存储器解密对应的数据块/线程。用
户内核150可接着用用户内核150来处理数据块/线程,并再?#29992;?#22359;结果以用于?#25509;?#25110;DRM处
理。

接下来在块B250,后端装置110可经由网络130从可用用户装置140a-140n接收数
据线程结果。每个数据线程结果可对应于所发送的数据线程。在可用用户装置140a-140n处
理所发送的数据线程(例如,确定数据线程结果)之后,数据线程结果可由用户装置140a-
140n发送给后端装置110。在具体实施例中,用户装置140a-140n中的一者可处理关于特定
顶点的图像/视频数据,该特定顶点用于?#36816;?#36848;的方式对应于该顶点的数据线程结果(例
如,加权值)。

接下来在块B260,后端装置110可基于所接收到的数据线程结果来确定每个数据
工作的工作成果。例如,后端装置110可存储对应于在它们被接收时构成数据工作的数据线
程的所有数据线程结果。在给定与每个用户内核150相关联的网络特性和处理能力时,构成
数据工作的数据线程结果可在不同时间接收。一旦接收到所有的数据线程结果,后端装置
110就可确定整个数据工作的工作成果。在其它实施例中,用户装置140a-140n可在预计有
大量的输出时,按块确定工作成果。接着工作成果的各块可被压缩到可管理的流中。在特定
的实施例中,顶点的加权值(例如,从各种照相机和各种帧确定的)可被聚集和计算以确定
关于对应于特定顶点的颜色的显示置信度。

接下来在块B270,后端装置110可向用户装置140a-140n发送工作成果以供消?#36873;?br />在具体的实施例中,用户装置140a-140n可接?#23637;?#20110;对应于目标空间中的特定顶点的颜色
的加权因子(例如,工作成果)并在用户装置存储器161内存储它们。用户装置140a-140n可
基于与每个顶点相关联的颜色用处理单元160和/或用户内核150来重构3维重构过程中的
目标空间。因此,用户装置140a-140n通过贡献它们的处理能力的至少一部分(通过用户内
核150)并消费图形处理的最终产物来参与图形处理阶段。

图3A为示出根据各种实施例的目标空间300的透视图的示意性框图。图3B为示出
目标空间300的前视图的示意性框图。参考图1-3B,目标空间300可被分区为多个体积310a-
310h(例如,第一体积310a、第二体积310b、...、八个体积310h)。每个体积可与顶点相关联。
例如,第一体积310a可与第一顶点320a相关联,第二体积310b可与第二顶点320b相关
联、...、八个体积310h可与第八顶点320h相关联。体积310a-310h中的每者可为任何合适的
形状,诸如但不限于长方体、立方体等。

在目标空间300的尺寸可能是已知的情况下,体积310a-310h和/或顶点320a-320h
可被预确定。在一些实施例中,对于60'*30'*10'的目标空间300,有可能有6,000,000个顶
点,诸如但不限于顶点320a-320h。在给定目标空间300中的更大数量的顶点可允许细化目
标空间300。

在被投影到3维背景中并显示时,顶点320a-320h中的每者可对应于像素的一部分
(例如,1/16、1/8、1/4、1/2等)、多个像素、宏块等。例如,用户装置140a-140n中的每者的用
户装置接口164可被配置成基于顶点320a-320h显示目标空间300的3维投影。每个顶点可与
显示特性,诸如但不限于颜色、纹理、频?#26102;?#25442;、小波变换、均值、标?#35745;?#24046;相关联。本文所述
的各种实施例可指的是作为示例性显示特性的颜色。本领域的普通技术人员应明白,所陈
述的其它显示特性也可以类似的方式来实施。

每种显示特性可基于多照相机输出来确定。例如,多个照相机可被定位在目标空
间300周围。在照相机姿势(位置和取向)可能事先已知的情况下,可确定每个照相机所采集
的顶点320a-320h。例如,采集目标空间300的前视图的照相机可采集前面顶点(例如,第一
顶点320a、第二顶点320b、第三顶点320c和第四顶点320d)。另外的照相机可沿目标空间300
的维度采集目标空间300的后视图、顶视图、底部视图和/或侧视图。因此,单个顶点可由多
个照相机采集。具体地,照相机可采集与每个顶点相关联的显示特性。一种显示特性为与每
个顶点相关联的颜色。

对于在目标空间300内定义的每个顶点,加权值可被确定以用于与顶点相关联的
每种可能颜色(和相关联的体积)。在照相机每?#25105;?#31532;一颜色采集顶点(例如,在图像或视频
的帧中)时,第一颜色的加权值将增加一。类似地,在照相机每?#25105;?#31532;二颜色采集顶点时,第
二颜色的加权值将增加一。因此,与顶点相关联的每种颜色的加权?#24403;?#30830;定(即,确定能够
采集顶点的多个照相机中的每者所采集的顶点的颜色)。特定颜色的更高加权值指示顶点
由更大量的照相机以特定颜色采集,增加与给定时刻的特定颜色相关联的顶点的置信度。
在一些实施例中,鉴于颜色(例如,第一颜色)的加权值超出阈值,则顶点可被确定与第一颜
色相关联。在一些实施例中,用户装置140a-140n可基于与每个顶点相关联的颜色显示目标
空间300的视频投影。在另外的实施例中,不对数据处理有帮助的另外装置(例如,在处理的
时间未连接到网络130)也可受益于用户装置140a-140n和后端装置110的处理,并基于与每
个顶点相关联的颜色显示目标空间300的视频投影。

通过以深度视频的形式向CDN流传输工作成果,可实现目标空间300的视频投影的
显示,该深度视频从外面到里面扫描目标空间300并表示目标空间300。扫描可涉及提取输
出视频的每个像素并从?#34892;?#36259;的立方体区域的每4-5表面将其投影到空间中。在x、y、z中的
所投影的顶点值可被编码位R、G、B以向用户装置流传输。接着用户装置可将数据再编译为
实时3维模型以用于以不同视角、角度和距离观看。

在另一方法中,可确定所有颜色的标?#35745;?#24046;。如果标?#35745;?#24046;低于预定阈值,则可选
择颜色的均值。另一方面,尽管所有潜在颜色的标?#35745;?#24046;高于预定阈值,意味着顶点在相当
多的照相机中(例如,数据源120)被投影为不同的颜色。因此,顶点可在目标空间300中的体
积的内部而不是与颜色相关联的顶点,这是可能的。

后端装置110可从环绕目标空间300的照相机接收源数据。接下来,后端装置110可
基于与目标空间300相关联的顶点将源数据分区为多个数据线程。例如,对应于给定顶点的
源数据的像素的一部分、多个像素、宏块可被识别(例如,关于块B220)并与顶点一起存储
(例如,关于块B230)。也与顶点(有时候通过唯一的顶点ID被识别)一起存储的为用该顶点
和对应的加权值识别的颜色。

图4A为示出根据各种实施例的数据线程400的示例的示意性框图。数据线程400可
为本文引用的任何数据线程。一般而言,数据线程可包含对应于源数据的元数据(例如,源
数据位置、源数据的部分的特定标识、其它合适的处理参数等),该源数据与元数据单?#26469;?br />储。实际的源数据可在数据源120中存储。元数据的大小可比实际的源数据自身更小,因此
从后端装置110移到用户装置140a-140n是更经济有效的。用户装置140a-140n自身可基于
存储在数据线程中的元数据检索或以其它方式访问实际的源数据以进行处理。另选地,数
据线程可包含源数据自身。

具体地,图4A示出图形处理背景下的数据线程400,其中,源数据可为图像、视频
帧、它们的组合和/或类似物。参考图1-4A,数据线程400可由后端装置110生成(通过?#36816;?#36848;
的方式分区源数据)、被存储在数据库170和/或存储器112中。在一些实施例中,数据线程
400可包含至少位置410、大小420、图像数据URL 430和顶点ID 440。顶点ID 440可识别目标
空间300内的特定顶点(例如,第一顶点320a)。

在各种实施例中,图像数据URL 430可为地址,通过该地址,用户装置140a-140n可
访问或检索对应于数据工作的源数据(例如,图像、帧和/或类似物)的一部分。在具体实施
例中,图像数据URL 430可为由照相机采集的图像/帧(例如,数据工作)的统一资源定?#29615;?br />地址。图像/帧可作为源数据存储在数据库170、存储器112或另一服务器上。图像/帧可采集
目标空间300的多个顶点,包含与顶点ID 440相关联的顶点。位置410可为在与关于顶点ID
440的顶点相关联的图像/帧(如被包含在图像数据URL430中)中的位置。位置410可为像素
的分数或至少一个像素。大小420指的是与顶点相关联的图像/分数的部分的大小(例如,面
积)。换句话说,大小420指示与顶点相关联的位置410周围的面积。大小420可为1/16、1/8、
1/4、1/2、1、2、3、4个像素和/或类似物(在从位置410的图像/帧的任何方向?#30001;?。在一些实
施例中,大小420可对应于与每个顶点相关联的体积。例如,体积越大,出现在图像上的顶点
越大。

通过远程存储整个图像,并只向用户装置140a-140n发送足够的识别信息(例如,
位置410、大小420和图像数据URL 430)以用于执行数据处理,在用于传输图像/帧数据的数
据大小可能大于用于传输识别信息的数据大小的情况下,带宽可被保留。在其它实施例中,
数据线程400可包含图像/帧的特定部分(由位置410、大小420和图像URL 430以其它方式所
识别的)和顶点ID 440。

图4B为示出根据各种实施例的线程结果460的示例的示意性框图。参考图1-4B,线
程结果460可由用户装置140a-140n中的每者生成并被传送给后端装置110。线程结果460可
包含至少数据线程结果470和顶点ID440。数据线程结果470可为所述的数据线程400的处理
结果。在具体实施例中,数据线程结果470可包含颜色或指示与图像/帧的面积相关联的颜
色的指示符。例如,面积可由数据线程400的位置410和大小420来识别。图像/帧可被包含在
图像数据URL 430内。源数据可被定位在网络130内或互联网上的任何位置。

在用户装置140a-140n中的每者接收数据线程400时,用户装置140a-140n中的每
者通过访问所述的图像数据URL 430并用位置410和大小420定位面积,可检索与顶点相关
联的图像/帧的面积。用户装置140a-140n中的每者可随后确定与该面积相关联的显示特性
(例如,颜色)。颜色可与顶点ID 440一起在线程结果460中被回送给后端装置110。后端装置
110随后可根据顶点ID 440对数据线程结果470的编索引。后端装置110可增加在数据线程
结果470中列出的颜色或与顶点ID 440相关联的顶点的加权值。

在各种实施例中,单个数据线程400可被一次发送给用户装置140n。在先前的数据
线程400已被处理时(例如,数据线程结果460已由后端装置110接收),另一数据线程400可
被发送给用户装置140n。在其它实施例中,块(即,包含多个数据线程,诸如数据线程400的
数据的单元)可被发送给用户装置140a-140n以用于分布式处理。因此,在多个数据线程400
被传送到用户装置140a-140n时,时间可被保留。

图5为示出根据各种实施例的数据线程分配方法500的示例的处理流程图。在各种
实施例中,数据线程分配方法500可对应于图2的分布式数据处理方法200的块B240。

现参考图1-5,首先在块B510,后端装置110可识别多个可用用户装置(例如,用户
装置140a-140n)。在一些实施例中,在可用用户装置例如通过网络被连接到后端装置110
时,可用用户装置可被识别。在非限制性示例中,后端装置110可提供用户装置140a-140n可
访问的web服务(例如,采用网站的形式)。后端装置110可生成互联网协议(IP)地址的列表,
其中,每个IP地址可表示用户装置140a-140n中的至少一者。在另一非限制性示例中,后端
装置110可提供?#29616;?#24212;用,使得一旦对后端装置110的?#29616;?#26159;成功的,则用户装置140a-140n
中的每者就可被识别。数据库170和/或存储器112可维护用户装置140a-140n的列表(如被
合适的标识符,诸如IP地址、登?#35745;局?#21644;/或类似物所识别的)。

已识别的用户装置目前不在处理由后端装置110发送的任何数据线程400时,其可
被视为可用用户装置。一旦连接到后端装置110,则在用户装置140a-140n中的一个或多个
在处理由后端装置110分配的数据线程400时,用户装置140a-140n中的一个或多个变成“忙
碌”。

在块B520,后端装置110可用处理器111确定与每个可用用户装置相关联的处理能
力和网络状况。在一些实施例中,后端装置110可确定(例如,经由脚本)或促使每个可用用
户装置确定每个可用用户装置的处理能力。处理能力可指的是总处理能力、目前可用的处
理能力(考虑到不同于数据线程处理的过程的处理能力消费)等等。在一些实施例中,处理
能力(例如,总处理能力)可从给定用户装置140n可用的用户内核150的数量?#24179;?#22312;非限制
性示例中,在可用用户装置具有8个或更多个用户内核150时,其可被视为具有高的处理能
力,而另一可用用户装置具有4个或更少的用户内核150时,其可被视为具有低的处理能力。
在具体的实施例中,用户内核150的数量可指的是GPU内核的数量。

在一些实施例中,后端装置110可确定(例如,经由脚本)与可用用户装置中的每者
相关联的网络状况(例如,总的网络带宽、可用的带宽和/或类似物)。在另外的实施例中,后
端装置110也可确定与后端装置110相关联的网络状况。

接下来在块B530,后端装置110(经由处理器111)可基于与每个可用的装置相关联
的处理能力和/或网络状况来分配每个可用用户装置的数据线程的数量。一般而言,在处理
能力和/或网络状况较大时,被分配给给定的可用用户装置的数据线程400的数量可较大。
在一些实施例中,在与第二可用用户装置相比,第一可用用户装置具有更多处理能力(例
如,总的处理能力、目前的处理能力和/或类似物)时,第一可用用户装置可比第二可用用户
装置分配更多的数据线程400。例如,475个数据线程可被分配给具有16个用户内核150的可
用用户装置,而200个数据线程可被分配给具有4个用户内核150的可用用户装置。在替代或
另外的实施例中,在与第四可用用户装置相比,第三可用用户装置具有改善的网络状况(例
如,更多的带宽和/或类似物)时,第三可用用户装置可比第四可用用户装置分配更多的数
据线程400。

被分配给可用用户装置的数据线程的数量可被布置在块中。包含至少一个数据线
程400的块可被发送给每个可用用户装置,并?#20918;?#21253;含在该块中的每个数据线程400的线程
结果460可(作为单元一起)返回给后端装置110。

基于与可用用户装置相关联的处理能力和网络状况?#36816;?#36848;的方式确定在给定的
实例中被发送给可用用户装置的数据线程400的数量(例如,块的大小)可以允许高效的数
据处理来解决数据工作。在各种实施例中,块可要求可用用户装置的用户内核150的总处理
能力和/或目前处理能力的少量百分比(例如,0.5%、1%、2%、5%、10%和/或类似物),使
得该块的处理对可用用户装置的用户是微不足道的。因此,复杂的计算任务,诸如3维目标
空间300的实时流传输可被分布式计算架构100、分布式数据处理方法200和本文的相关公
开启用。

在各种实施例中,数据源120可向后端装置110连续和/或周期性地馈送源数据以
用于分区(关于块B220)和存储(关于块B230)。例如,摄像机(作为数据源120)可连续馈送待
处理的视频数据(作为源数据)。因此,在先前的数据线程400被可用用户装置处理时,待处
理的新数据线程460可被分区、存储和备用。

接下来在块B540,后端装置110可(用处理器111)确定至少一个数据线程460是否
保持未被分配给可用用户装置。在连接到后端装置110的可用用户装置的数量可能随着时
间波动的情况下,在给定时间存储在数据库170和/或存储器112中的所有数据线程400可或
不可被立即分配给可用用户装置。在所有的存储数据线程400在给定时间被分配时,分布式
计算架构100可拥有大量的处理能力(例如,足够数量的用户内核150变得对后端装置110可
用)来几乎即刻处理源数据,该处理仅经受网络和处理延迟。另一方面,在某一时刻分配之
后保持的大量数据线程400可指示源数据的不充足处理能力和更长的处理时间。

在一些实施例中,工作成果的分辨率可基于处理能力(例如,可用的用户内核150
的数量)来调节。例如,在较多数量的可用的用户内核150(超出预定的阈值)被连接到网络
130时,工作成果(例如,处理后的图像数据)可为?#32454;?#30340;分辨?#21097;?#36825;需要较多的处理能力。另
一方面,在较少数量的可用的用户内核150(低于预定的阈值)被连接到网络130时,工作成
果(例如,处理后的图像数据)可为?#31995;?#30340;分辨?#21097;?#36825;需要较少的处理能力。

鉴于不存在数据线程400保持未分配,数据线程分配方法500可在块B550终止
(B540:否)。在一些示例中,在所有未解决的已分区(关于块B220)和已存储(关于块B230)数
据线程400已被分配给可用用户装置时,不存在剩下的数据线程400。在一些实施例中,在数
据源120不再接收源数据时,可能出现这种情况。在其它实施例中,在数据源120还未向后端
装置110传送新的源数据时或在后端装置110还未分区或存储对应于新的源数据的新数据
线程400时,可能出现这种情况。

在各种实施例中,在未剩下数据线程时(B540:否),后端装置110可被配置成待机
用于待分区/存储的新数据线程400。在确定(例如,利用处理器111)新的数据线程400被存
储时,后端装置110可诸如但不限于关于块B530所述的基于与每个可用用户装置相关联的
处理能力和/或网络状况,在该时间为每个可用用户装置分配多个新的数据线程400。数据
线程分配方法500可从块B530继续向前(例如,至块B530、B540、B550、B560、B570和/或
B580)。

鉴于存在剩下未分配的数据线程400,后端装置110可在块B560待机用于另外的用
户装置(B540:是)。后端装置110在块B570检测到至少一个另外的用户装置,例如用户装置
140a-140n时,待机块B560可被终止。在一些实施例中,在忙碌的用户装置(例如,被分配处
理数据线程的块的用户装置)完成处理该块并返回包含在该块中的每个数据线程400的线
程结果460时,该忙碌的用户装置被检测为另外的用户装置。在另外的实施例中,在块B540
剩余的剩余数据线程400之后被后端装置110(以诸如但不限于关于块B510所述的方式)识
别的用户装置140n可被视为另外的用户装置。

后端装置110可用处理器111周期性地寻求以检测另外的用户装置是否存在。在未
检测到另外的用户装置时,后端装置110可在块B560恢复为待机(B570:否),直到已检测到
至少一个另外的用户装置。尽管?#36816;?#36848;的方式检测到至少一个另外的用户装置,后端装置
110可在块B580将检测到的另外用户装置设置为可用的装置(B570:是)。接下来,后端装置
110可基于与每个可用用户装置相关联的处理能力和/或网络状况,诸如但不限于关于块
B530所述的向每个可用的(例如,另外)用户装置分配数据线程400(已分区和存储的剩下的
数据线程以及新的未被处理的数据线程)。

图6为示出根据各种实施例的数据线程分配和再分配图600的示例的示意性框图。
在各种实施例中,数据线程分配和再分配图600可对应于图2的分布式数据处理方法200的
块B240。

现参考图1-6,数据源120可包括第一照相机(例如,照相机A 610a)和第二照相机
(例如,照相机B 620b)。照相机A 610a和照相机B 610b中的每者可将图像/视频数据作为源
数据馈送给后端装置110以被分区和存储以进行所述处理。例如,照相机A 610a可向后端装
置110发送第一帧620a和第二帧620b。第一帧620a和第二帧620b可为连续的帧。照相机
B610b可向后端装置110发送第一帧'630a和第二帧'630b。第一帧'630a和第二帧'630b可为
连续的帧。

第一帧620a、第二帧620b、第一帧’630a、第二帧’630b可被后端装置110的处理器
111划分为多个数据线程(诸如但不限于数据线程400)。如所述,每个帧可包含多个区域。每
个区域可对应于给定空间(诸如但不限于目标空间300)内的顶点(诸如但不限于顶点320a-
320g)。例如,第一帧620a可包含第一线程1 622a、第一线程2 622b、第一线程3 622c和第一
线程4 622d。在各种实施例中,每个帧可包含400、1,000、5,000、20,000、360,000个数据线
程。出于说明目的,仅示出每个帧的4个数据线程。

数据线程(例如,第一线程1 622a-第一线程4 622d、第二线程1 624a-第二线程4
624d、第一线程'1 626a-第一线程'4 626d和第二线程1 628a-第二线程4 628d)中的每者
可被分配给例如关于块B510被识别的可用用户装置。第一线程1 622a可被分配给用户装置
1 690a、第一线程2 622b可被分配给用户装置2 690b、…以及第二线程’4可被分配给用户
装置16 690p。应明白,各种大小的块(例如,包含各种数量的数据线程)可被分配给不同的
用户装置。为了简化起见,示出一个数据线程被分配给迥然不同的用户装置。

第二线程2 624b可被分配(初始)给用户装置6 690f以进行处理。在一些实施例
中,被分配给可用用户装置(例如,用户装置6 690f)的数据线程400的处理可能出于各种原
因,诸如但不限于网络?#25910;稀?#21518;端装置110的有效断开、处理?#25910;稀?#19981;成功的数据线程400或
结果线程的传输(例如,数据线程结果470)、它们的组合和/或类似物而失败。后端装置110
可检测此类?#25910;?#24182;向另一用户装置(例如,用户装置17 690q)再分配第二线程2 624b以进
行处理。

在一些实施例中,在对应于用于给定照相机(例如,照相机A 610a)的时间之前接
收的数据线程400可(由后端装置110的处理器111)优先于在以后时间的相同照相机或另一
照相机(例如,照相机B 610b)的帧。使一个数据线程400优先于另一数据线程是指一个数据
线程400被分配给可用用户装置,而只有在另外的用户装置可用时,另一数据线程400被分
配给另一用户装置。换句话说,在先前帧的数据线程(例如,第一线程1 622a)和后面帧的数
据线程(例如,第二线程1 624a)待机并待被分配给用户装置时,先前帧的数据线程400可被
首先分配给可用用户装置。例如,只有在用户装置1 690a在分配时间可用时,第一线程1
622a(而不是第二线程1 624a)可被分配给用户装置1 690a。在以后的时间用户装置5 690e
变为可用时,第二线程1 624a可被分配给用户装置5 690e。

在一些实施例中,在对应于给定照相机之前接收到的帧的失败数据线程400可相
对于对应于相同或不同照相机的帧的数据线程更优先(由后端装置110的处理器111)。在具
体实施例中,失效的数据线程400只可比还未被处理的(相同或不同照相机的)后续帧的数
据线程400优先。

因此,多个数据线程400(或块)可通过多个用户装置140a-140n(或用户内核150)
异步并行处理。每个数据线程400/块可被用户装置140n处理,而与用于其它数据线程400/
块的其它用户装置140a-140n的处理无关。在用户装置140n变得可用于处理时,任何用户装
置140n可以处理任何数据线程400。应指出,基于时间(例如,帧的顺序排序)和处理状态(例
如,失败的数据线程可利用可用用户装置来处理以控制流传输延迟)的对数据线程的分配
优先级可被实施以如所述优化处理。

与分布式数据处理系统和方法相关联的优点也包含处理能力的自由扩展。分布式
数据处理系统的处理能力可取决于连接到后端装置110(例如,其可为异步NoSql元数据服
务器)的用户装置140a-140n的数量。在更多的用户装置140a-140n被连接到后端装置110
时,处理能力得以放大,反之亦然。

在一些实施例中,在用户装置(例如,用户装置140a-140n)处的数据处理可被执行
(例如,作为在web浏览器中的触发器)而无需特殊插件,从而简化数据处理。例如,用户装置
140a-140n中的每者可为支持HTML5的web客户端,其可?#36816;?#36848;的方式执行数据处理而无需
使用插件。在一些实施例中,可消除将用户装置140a-140n连接到后端装置110以及检索未
处理数据的所有?#20064;?#19981;需要下载软件来进行处理。与总处理能力或目前可用的处理能力
相比,数据处理需要用户装置140a-140n的最小处理能力。在各种实施例中,数据线程400/
块的数据处理对使用用户装置140a-140n的用户的体验基本没有影响(如果有的话)。

图7为示出在一些实施例中的管理界面700的示例屏幕。管理界面700可由后端装
置110的用户接口114显?#38742;?#25805;作后端装置110的指定人员。通过管理界面700,指定人员可
监测分布式数据处理(例如,图2的分布式数据处理方法200、图5的数据线程分配方法500、
图8的数据处理方法800、它们的组合和/或类似物)。

参考图1-7,管理界面700可被配置为由后端装置110的用户接口114的显示装置显
示的窗口界面。管理界面700可至少包含装置表格710和数据工作图720。装置表格710和/或
数据工作图720可以任何合适的位置、大小、取向在管理界面700内布置。管理界面700可包
含选项,以在连接到网络130的可用用户装置140a-140n可能不足以处理计算任务(例如,源
数据)时,从第三方内核(诸如用户内核150)供应商购买另外的用户装置(诸如用户装置
140a-140n)。

装置表格710可列出连接到后端装置110的多个用户装置(例如,用户装置140a-
140n)。换句话说,装置表格710可显示如关于块B510被识别的可用用户装置。每个可用用户
装置可在单独的条目(例如,行),诸如但不限于第一条目740a、第二条目740b、第三条目
740c、第四条目740d和第五条目740e中列出。可在装置表格710中显示另外的条目。

每个可用用户装置可通过唯一的标识,诸如但不限于在IP地址栏715中列出的IP
地址来识别。例如,条目740a-740e中的每者可包含在IP地址栏715中识别的对应IP地址。每
个IP地址可与用户装置中的两者或多者相关联。对于条目740a-740e中的每者,内核的总数
在根据一些实施例的总内核栏730中显示。用户装置中的每者可与至少一个内核相关联。例
如,与第一条目740a(具有IP地址75.82.189.xx)相关联的用户装置可包含32个内核。在另
一示例中,与第五条目740e(具有IP地址79.61.525.xx)相关联的用户装置可仅包含4个内
核。

与每个IP地址相关联的执行时间(如在执行时间栏735中显示的)可在装置表格
710中显示。在一些实施例中,执行时间可为处理所分配数据线程中的一者所需的平均时
间。因此,与每个IP地址相关联的执行时间可取决于处理能力(例如,?#32454;?#30340;处理能力可与
较快的执行时间相关联)。例如,与第一条目740a(具有IP地址75.82.189.xx)相关联的用户
装置可能需要25.2ms来执行所分配的每个数据线程。在另一示例中,与第五条目740e(具有
IP地址79.61.525.xx)相关联的用户装置可能需要41.7ms来执行所分配的每个数据线程。
在其它实施例中,执行时间可能要考虑网络状况。例如,执行时间可从数据线程通过后端装
置110的传输到线程结果的接收所测量的时间,从而考虑了网络传输延迟。

在一些实施例中,装置表格710可包含由后端装置110处理的多个数据线程和/或
由后端装置110分配对应IP地址的多个数据线程。例如,与第一条目740a(具有IP地址
75.82.189.xx)相关联的用户装置可被分配475个数据线程来进行处理,所有数据线程已被
处理。在另一示例中,与第五条目740e(具有IP地址79.61.525.xx)相关联的用户装置可被
分配100个数据线程来进行处理,10个数据线程已被处理。

在一些实施例中,装置表格710可包含在FPS栏755中指示的帧每秒(FPS),该FPS栏
对应于在IP地址栏715中列出的每个IP地址。FPS指示消费工作结果的性能,其由后端装置
110基于每个可用用户装置的线程结果460来确定。工作结果可被传送至用户装置140a-
140n以用于消?#36873;?#24037;作结果可为与实时3维流传输的目标空间(例如,目标空间300)内的每
个顶点(例如,顶点320a-320h)相关联的加权值。提高处理能力和网络状况可产生更高的
FPS,反之亦然。

数据工作图720可示出源数据和/或数据工作。在一些实施例中,数据工作可为处
理图形数据。具体地,在数据工作图720中示出的数据工作是为了处理包含采集的数据750
的帧795。如所述,每个数据工作可被分段为多个数据线程(例如,数据线程760-775)。每个
数据线程可与帧795内的迥然不同的区域相关联。

在另外的实施例中,管理接口700可包含图和图表,其图形化示出关于数据工作的
总数、时间、内核的数量、可用/总线用户装置的数量、它们的组合和/或类似物的已处理数
据工作。

图8为示出根据各种实施例的数据处理方法800的示例的处理流程图。数据处理方
法800可由用户装置(例如,用户装置140a-140n)来执行。参考图1-8,用户装置140n可在块
B810连接到后端服务器110。在各种实施例中,通过评估由后端装置110托管的网站或通过
登录到后端装置110,用户装置140n可(经由用户网络装置163)连接到后端装置110。换句话
说,在用户装置140n已被后端装置110根据块B510识别时,用户装置140n可被连接到后端装
置110。

接下来在块B820,用户装置140n可接收包含至少一个数据线程460的数据块,该数
据块被设置为当前数据块。在一些实施例中,后端装置110可?#36816;?#36848;的方式向用户装置
140a-140n定期推送数据块/线程。在其它实施例中,用户装置140a-140n中的每者可在拉取
的过程中向后端装置110发送接收新的数据块/线程以处理的请求(在完成数据处理时)。发
送给后端装置140a-140n的数据可基于?#36816;?#36848;的方式分配优先级的数据块/线程的列表。

接下来在块B830,用户装置140n可被配置成处理当前的数据块。在一些实施例中,
处理当前的数据块可包含确定与帧的区域相关联的颜色的加权值,该区域对应于在目标空
间300内的顶点(例如,顶点320a-320h)。接下来在块B840,用户装置140n可向后端服务器
110发送块结果。块结果可包含至少一个数据线程结果470。

接下来在块B850,用户装置140n可确定是否已从后端装置110接收另外的数据块。
在用户装置140n还未从后端装置110接收另外的数据块时,用户装置140n可在块B860待机
(B850:否)。另一方面,鉴于用户装置140n从后端装置110已经接收至少一个另外数据块,用
户装置140n可被配置成在块B880(B850:否)将该另外数据块设置为将在块B830进行处理的
当前数据块。

在块B810连接到后端装置110之后,用户装置140n可从后端装置110接收第一工作
结果以用于在块B895消?#36873;?#31532;一工作结果可基于由不是用户装置140n的用户装置(例如,用
户装置140a、用户装置140b、...、用户装置140n-1)输出的块结果。例如,在用户装置n 140n
被连接到后端装置之前,第一工作结果可基于先前由其它用户装置处理的数据线程/块来
确定。

在块B840向后端服务器110发送块结果之后,用户装置140n可从后端装置110接收
第二工作结果以用于在块B890消?#36873;?#31532;二工作结果可基于由用户装置(例如,用户装置
140a、用户装置140b、...、用户装置140n-1)以及用户装置140n输出的块结果。

在用户装置140n未接收用于处理的任何数据块而在块B860待机时,用户装置140n
可从后端装置110接收第三工作结果以用于在块B870消?#36873;?#31532;三工作结果可基于由不是用
户装置140n的用户装置(例如,用户装置140a、用户装置140b、...、用户装置140n-1)输出的
块结果。

工作结果(例如,与顶点320a-320h相关联的加权值)可被用于确定目标空间300的
3维投影以用于通过用户装置接口164输出实时3维视频。

图9为示出根据各种实施例的面向GPU的分布式数据处理方法900的示例的处理流
程图。参考图1-9,面向GPU的分布式数据处理方法900可为分布式数据处理方法200、数据处
理方法800和/或本文所述的相关系统和方法的特定具体实施。例如,面向GPU的分布式数据
处理方法900可对应于数据处理方法800的块B830。面向GPU的分布式数据处理方法900可利
用用户装置,诸如但不限于用户装置140a-140n来实施。在面向GPU的分布式数据处理方法
900的具体实施例中,至少一个GPU可被实施为用户装置的用户内核150。

首先在块B910,用户装置(经由其处理单元160或其GPU内核)可识别对应于(例如,
在块B830)所接收到的数据块的源数据的至少一部分,源数据被格式化为GPU兼容的格式以
用于由用户装置的GPU来处理。源数据可根据GPU兼容的格式(由后端装置110或由数据源
120)编码或进行格式化以用于由用户装置的GPU来处理。例如,着色器语言标准可被用于
GPU处理。源数据可被编码或以其它方式格式化为元素,诸如但不限于几何形状、顶点、纹
理、法线、用于着色器语言自身的代码和/或类似物。一旦被变换,源数据就可被流传输或以
其它方式发送到着色器中以用于GPU处理。在具体实施例中,源数据(例如,图像或视频的
帧)可被格式化为纹理(与其它元素相比)以用于进行快速GPU处理(例如,以120fps)。

数据块可包含至少一个数据线程,每个数据线程可包含对应于源数据(例如,图像
或视频的帧)的元数据(例如,实际源数据的位置、源数据的部分的特定标识符、处理参数
和/或类似物)。基于源数据的位置(例如,URL数据)和关于该数据线程的源数据的部分的标
识符(例如,图像/帧的区域的坐标),用户装置可从数据源120定位和检索用于处理的源数
据的相关部分。一旦在用户装置接收到着色器格式(或其它合适的GPU兼容格式)的源数据,
可出现这种情况。

接下来在块B920,用户装置可用至少一个GPU来处理GPU兼容格式(例如,采用所述
的着色器语言)的源数据的至少一个部分(在块B910中识别的)。一般而言,处理可涉及包含
数学函数的?#22336;?#20018;的任何处理,其可利用用于矩阵数学和?#22270;?#20989;数的OpelGL优化管路的优
点以有效的方式完成。

在一些具体的实施例中,此类处理可涉及将2维图像(其在着色器语言中被格式化
为纹理或其它合适的元素)投影为在目标空间(例如,目标空间300)内定义的一组顶点(例
如,顶点320a-320h)。例如,目标空间的一组全部顶点或其一部分(例如,整组顶点的子集、
顶点的子集可以合适的方式布置成诸如直线、平面、体积等)可用数据块/线程或单独经由
至用户装置的其它数据单元来设置。用户装置可将所接收到的至少一个顶点投影到由作为
数据块/线程所发送的元数据所识别的帧/图像的区域。

在其它或另外的具体实施例中,用户装置可用其GPU来确定对应于至少一个顶点
的帧/图像的区域的显示特性。借助于所示的非限制性示例,用户装置可被配置成对相对于
目标像素的环绕的像素的数量求平均(其可为由数据线程识别的图像的区域)以输出作为
目标像素的颜色的均值。

接下来在块B930,用户装置可用至少一个GPU向用户装置的用户接口164(例如,用
户接口164的显示装置)再现(例如,在块B920)处理的结果。在完成处理之后,GPU可向用户
装置的屏幕再现该结果。接下来在块B940,用户装置可复制再现的结果并向后端装置110或
另一远程存储回送该再现结果以用于?#36816;?#36848;的方式聚集任何计算工作成果。因此,所处理
的结果可很容易和快速地从GPU和用户装置?#32479;觥?br />

图10为示出根据各种实施例的面向GPU的分布式数据处理方法1000的另一示例的
处理流程图。参考图1-10,面向GPU的分布式数据处理方法1000可为分布式数据处理方法
200和/或本文所述的相关系统和方法的特定具体实施。例如,面向GPU的分布式数据处理方
法1000可对应于分布式数据处理方法200的块B240和B250。面向GPU的分布式数据处理方法
1000可用后端装置110来实施。在面向GPU的分布式数据处理方法1000的具体实施例中,至
少一个GPU可被实施为用户装置的用户内核150。

首先在块B1010,后端装置110(或数据源120或另一装置)可提供采用GPU兼容的格
式的源数据以用于由多个GPU进行分布式处理。每个GPU可与用户装置相关联。例如,着色器
语言标准可被用于对GPU处理进行编程。源数据可被编码或以其它方式格式化为元素,诸如
但不限于几何形状、顶点、纹理、法线和用于着色器语言自身的代码。一旦被变换,源数据就
可被流传输或以其它方式发送到着色器中以用于GPU处理。在具体实施例中,源数据可被转
换为纹理(与其它元素相比)以用于进行快速GPU处理(例如,以120fps)。

接下来在块B1020,后端装置110可以诸如但不限于在块B240中的方式向多个GPU
中的每者发送对应于源数据的至少一部分的至少一个数据块。至少一个数据块可包含至少
一个数据线程,每个数据线程可包含对应于源数据(例如,图像或视频的帧)的元数据(例
如,源数据的位置、源数据的部分的特定标识符、处理参数和/或类似物)。基于源数据的位
置(例如,URL数据)和关于该数据线程的源数据的部分的标识符(例如,图像的区域的坐
标),用户装置可定位和检索用于处理的源数据的相部分。一旦在用户装置接收到着色器格
式的源数据,可出现这种情况。

接下来在块B1030,后端装置110可从多个GPU中的每者接收结果,每个结果以诸如
但不限于块B250的方式被再现给与多个GPU中的每者相关联的用户接口164。用户装置可用
至少一个GPU以诸如但不限于关于块B920所述的方式来处理GPU兼容格式(例如,采用所述
的着色器语言)的源数据的至少一个部分(在块B910中识别的)。接着GPU可以关于B930所述
的方式向用户接口再现结果并以在块B940所述的方式将该结果复制并传送到后端装置
110。

异步计算web架构的各种具体实施可与图像/视频处理(例如,过?#36865;?#20687;、图像中的
面部识别、3维投影等)、基因数据处理、货币套利数据、天气数据、顶点数据、化学公式或分
布式计算任务所需的其它随机数据相关。换句话说,源数据可为任何并行数据集。在一些实
施例中,不同的数据块可利用用户装置140a-140n的地理位置分布的优点以支持大数据的
问题的解决方案。

在一些另外的实施例中,分布式计算处理架构100可被实施以解决货币?#19968;?#22871;利
算法(例如,使用贝尔曼福特最短路径算法,其确定在采用货?#19968;?#29575;的日志时的无限循?#20998;?br />期)。在一些实施例中,用户装置140a-140n中的每者可与货币相关联。关联货币(可采用数
据块/线程的形式的数据)可由后端装置110基于与用户装置140a-140n中的每者相关联的
地理位置(即,用户装置140a-140n中的每者可被分配用在该地理位置的货币)来分配。因
此,在用户装置140a-140n检测对应于所分配的货币的无限循?#20998;?#26399;时,其可能更接近可以
最高效交易所分配的货币的金融机构。例如,用户装置可在金融机构中或邻近金融机构。用
户装置140a-140n可使用浏览器被连接到后端装置110或使用后台的分布式计算架构100连
接到社交网络以进行数据处理,这对于用户装置140a-140n的用户是未察觉的。因此,在网
络130的带宽能力增加时,此分布式计算架构100可扩大集中的套利超级计算机的规模。分
布式计算架构100(例如,后端装置110)可用社交网络(如网络130)来实施。

在一些另外的实施例中,原始的视频/图像数据(例如,如源数据)可被扩展和编码
到并行重叠段(例如,在块B210接收到的、在块B220分区的、在块B230存储的和在块B240发
送的)中,每个段可被视为将由用户装置140a-140n中的单独一者处理的数据块/线程。因
此,任何数据块/线程可在任何编码系统可以完成编码整个视频/图像之前完成处理(例如,
在块B250-B260)。因此,原始的视频/图像数据的所有段可被立即、几乎同时完成。具有大量
的用户装置140a-140n(例如,社交网络?#38236;?的服务器可提供前所未有的处理能力。

在一些另外的实施例中,基因序列数据可被接收(例如,在块B210)、分区(例如,在
块B220)和存储(例如,在块B230)为数据块/线程。数据块/线程可被发送给用户装置140a-
140n(例如,在块B240)以用于进行处理(例如,在块B250)。具体地,基因序列数据可基于基
因类别来划分(在块B220)以用于并行处理。搜索窗口可跨DNA的串提供并被发送到分布式
计算架构100中以用于自动分类。

在其它另外的实施例中,存储在社交网络上的图像可随着时间缓慢处理以自动识
别任何随机角落或特征,接着向用户装置140a-140n发送以在足够数量的角落或特征已在
一起被识别形成对象和人时识别该角落或特征。随着时间推移,所有对象和人被分布式计
算网络100自动学习,其不?#31995;?#30001;其用户的输入教导。识别处理可由社交网络几乎无成?#38236;?br />实?#37073;?#22240;为识别处理由连接到网络130(例如,社交网络)的用户装置140a-140n完成。

上述参考图1-8的各种实施例包含各种处理或任务的性能。在各种实施例中,此类
处理或任务可通过从计算机可读存储介质读取的计算机代码的执行来实施。例如,在各种
实施例中,一个或多个计算机可读存储介质存储一个或多个计算机程序,在一个或多个计
算机程序由处理器执行时,促使处理器执行关于在上述实施例中的处理器所述的处理或任
务。而且,在各种实施例中,一个或多个计算机可读存储介质存储一个或多个计算机程序,
在一个或多个计算机程序由装置执行时,促使计算机执行关于在上述实施例中提到的装置
所述的处理或任务。在各种实施例中,一个或多个计算机可读存储介质存储一个或多个计
算机程序,在一个或多个计算机程序由数据库执行时,促使该数据库执行关于在上述实施
例中的数据库所述的处理或任务。

因此,各实施例包含程序产品,该程序产品包含用于执行或具有存储在其上面的
计算机或机器可执行指令或数据结构的计算机可读或机器可读介质。此类计算机可读存储
介质可以为例如通过通用或专用计算机或带有处理器的机器可存取的任何可用介质。借助
于示例,此类计算机可读存储介质可以包含半导体存储器、闪存、硬盘、诸如光盘(CD)或数
字多功能盘(DVD)的光盘、磁存储、随机存取存储器(RAM)、只读存储器(ROM)和/或类似物。
这些类型的存储器的组合也被包含在计算机可读存储介质的范围内。计算机可执行程序代
码可包含,例如促使计算机或处理机器执行某些功能、计算、行为等的指令和数据。

本文所公开的实施例在所有方面被视为说明性的而非限制性的。本公开不以任何
方式局限于本文描述的实施例。在不脱离本公开的精神和范围的情况下,可以对上述实施
例做出许多修改和变化。落在权利要求的含义和等效范围内的各?#20013;?#25913;和变化旨在落入该
公开的范围内。

关于本文
本文标题:用于可扩展的异步计算架构的系统和方法.pdf
链接地址:http://www.pqiex.tw/p-6091871.html
关于我们 - 网站声明 - 网?#38236;?#22270; - 资源地图 - 友情链接 - 网站客服 - 联系我们

[email protected] 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备17046363号-1 
 


收起
展开
平码五不中公式规律 大乐透139期历史同期号 三张牌游戏炸金花下载 盘锦kk棋牌麻将下载 球探网蓝球比分即时比分直播 上海时时乐开奖结果快 国际娱乐城注册送彩金 天津新时时彩走势图 安徽11选5开奖全双结果 旺旺论坛一肖中特免费公开资料 顶呱刮