CN113168397A - 分布式存储器***、设备和方法 - Google Patents

分布式存储器***、设备和方法 Download PDF

Info

Publication number
CN113168397A
CN113168397A CN201980076896.2A CN201980076896A CN113168397A CN 113168397 A CN113168397 A CN 113168397A CN 201980076896 A CN201980076896 A CN 201980076896A CN 113168397 A CN113168397 A CN 113168397A
Authority
CN
China
Prior art keywords
processing element
vertex
message
traversal
distributed memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201980076896.2A
Other languages
English (en)
Other versions
CN113168397B (zh
Inventor
P·沙米斯
A·里科卡罗
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ARM Ltd
Original Assignee
ARM Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ARM Ltd filed Critical ARM Ltd
Publication of CN113168397A publication Critical patent/CN113168397A/zh
Application granted granted Critical
Publication of CN113168397B publication Critical patent/CN113168397B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2264Multidimensional index structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Image Generation (AREA)

Abstract

简而言之,公开了可全部或部分地使用一个或多个移动通信设备和/或处理设备来实现以促进和/或支持用于执行分布式存储器操作的一个或多个操作和/或技术的示例性方法、装置和/或制品。具体地,一些实施方案涉及用于遍历分布式存储器***中保持的数据结构的顶点的技术。

Description

分布式存储器***、设备和方法
本公开整体涉及分布式存储器***。
在计算环境中,分布式存储器可被实现为多处理器计算机***,其中每个处理元件保持其自有的专用存储器。然后,可对本地数据执行计算任务,并且如果需要远程数据,则计算任务可与一个或多个远程处理元件通信。另一方面,在共享存储器多处理器中,单个存储器空间可由多个处理元件访问。
简而言之,特定的具体实施涉及第一处理元件,该第一处理元件包括:通信设备,该通信设备用于将消息传输到通信网络并且从通信网络接收消息;和一个或多个处理器,该一个或多个处理器用于:确定待在分布式存储器操作中遍历的当前顶点,该当前顶点能够经由第一处理元件访问,该当前顶点在一个或多个处理器处获得的在通信设备处接收的第一消息中被识别;以及响应于在第一处理元件处对当前顶点的遍历,发起通过被寻址到第二处理元件的通信设备对第二消息的传输,该第二处理元件请求对后续顶点的遍历,该后续顶点能够经由第二处理元件访问。
另一特定的具体实施涉及第一处理元件处的方法,该方法包括:确定待在分布式存储器操作中遍历的当前顶点,该当前顶点能够经由第一处理元件访问,该当前顶点在第一处理元件处接收的第一消息中被识别;以及响应于在第一处理元件处对当前顶点的遍历,传输被寻址到第二处理元件的第二消息,该第二处理元件请求分布式存储器操作中对后续顶点的遍历,该后续顶点能够经由第二处理元件访问。
另一特定的具体实施涉及一种制品,该制品包括:非暂态存储介质,该非暂态存储介质包括在其上存储的计算机可读指令,该计算机可读指令能够由处理元件的一个或多个处理器执行以:确定待在分布式存储器操作子中遍历的当前顶点,该当前顶点能够经由第一处理元件访问,该当前顶点在第一处理元件处接收的第一消息中被识别;以及
响应于在第一处理元件处对当前顶点的遍历,发起被寻址到第二处理元件的第二消息的传输,该第二处理元件请求对后续顶点的遍历,该后续顶点能够经由第二处理元件访问。
应当理解,前述具体实施仅仅是示例性具体实施,并且要求保护的主题不一定限于这些示例性具体实施的任何特定方面。
要求保护的主题在本说明书的结尾部分中被特别指出和清楚地要求保护。然而,关于组织和/或操作方法,以及其对象、特征和/或优点,在结合附图阅读的情况下,参考以下详细描述可以最好地理解,其中:
图1A、图1B和图1C是示出根据实施方案的分布式存储器***的特征的示意图;
图2是示出根据实施方案的图形表示的转换的特征的示意图;
图3是根据实施方案的在分布式存储器***的处理元件中实现的寻址方案的示意图;
图4是根据实施方案的在执行分布式存储器操作时遍历分布式存储器***中的顶点的过程的一个方面的流程图;
图5是根据实施方案的用于实现执行能够由分布式存储器***中的处理元件访问的顶点的遍历的方面的过程的特征的示意图;并且
图6是示出与处理元件相关联的示例性计算环境的具体实施的示意图。
在以下详细描述中参考了附图,附图形成描述的一部分,在整个描述中,类似的数字可表示类似的部件,这些部件是对应的和/或相似的。应当理解,附图未必按比例绘制,诸如为了简化和/或清楚地示出。例如,一些方面的尺寸相对于其他方面可能有所放大。此外,应当理解,可利用其他实施方案。此外,在不脱离要求保护的主题的情况下,可进行结构和/或其他改变。本说明书通篇提及的“要求保护的主题”是指旨在由一项或多项权利要求或其任何部分所涵盖的主题,并且不一定旨在指完整的权利要求集、权利要求集的特定组合(例如,方法权利要求、设备权利要求等)或特定权利要求。还应当指出的是,方向和/或参考(例如,诸如上、下、顶部、底部等)可用于促进对附图的讨论,并且不旨在限制要求保护的主题的应用。因此,以下详细说明不应理解为限制要求保护的主题和/或等同物。
本说明书通篇提及的一个具体实施、一具体实施、一个实施方案、一实施方案等意味着,关于特定具体实施和/或实施方案描述的特定特征、结构、特性等包括在要求保护的主题的至少一个具体实施和/或实施方案中。因此,此类短语例如在本说明书通篇中的多处出现不一定旨在指相同的具体实施和/或实施方案或任何一个特定具体实施和/或实施方案。此外,应当理解,所描述的特定特征、结构、特性等能够在一个或多个具体实施和/或实施方案中以各种方式组合,并且因此在预期的权利要求范围内。当然,一般来讲,就像对于专利申请的说明书而言一直存在的那样,这些和其他问题具有在特定使用环境下变化的可能性。换句话讲,在整个本公开中,描述和/或使用的特定上下文提供了关于要得出的合理推理的有帮助的指导;然而,同样地,一般而言“在该上下文中”在不进一步限定的情况下至少是指本专利申请的上下文。
图1A是示出根据实施方案的分布式存储器***的特征的示意图。此处,处理元件可由网络102耦接以交换与分布式存储器操作相关的消息。在该上下文中,如本文所提及的“分布式存储器***”意指各个处理元件保持相关联的专用存储器的多处理器计算机***。在一个示例性具体实施中,由分布式存储器***中的各个处理元件执行的处理可限于对由各个处理元件保持的专用存储器中本地存储的数据的计算任务。然而,各个处理元件可通过与分布式存储器***中的其他(例如,远程)处理元件通信来访问远程数据项。在该上下文中,如本文所提及的“分布式存储器操作”意指在分布式存储器***中的多个处理元件之间或之中促进进行的操作,包括访问在第一处理元件处保持的专用存储器以用于完成在第二处理元件处发起的计算任务。
如特定的具体实施中所示,分布式存储器***100中的处理元件可包括对应的中央处理单元(CPU)108以及建立能够通过对应的CPU 108访问的专用存储器的一个或多个存储器设备。处理元件可包括诸如例如以下的若干类型的计算设备中的任何一种:个人计算设备(例如,智能电话或膝上型计算机)、低功率物联网(IoT)设备、企业计算节点,此处仅列举数例。为简单起见,图1A示出了能够使用通过网络102传输的消息进行通信的三个处理元件。然而,应当理解,分布式存储器***可包括仅两个此类处理元件,或者四个或更多个此类处理元件,并且所要求保护的主题不限于具有任何特定数量的处理元件的分布式存储器***。如图所示,CPU 108可将存储器保持在诸如磁盘104(例如,磁存储器存储设备)或集成电路存储器106(例如,DRAM、SRAM、非易失性存储器等)的不同类型的物理设备上。另外,处理元件能够使用任何合适的传输介质和网络技术向网络102传输消息和从网络接收消息。应当理解,如本文所示的分布式存储器***中的处理元件的特征仅是可如何实现此类处理元件的示例,并且所要求保护的主题在这方面不受限制。
如上所述,由分布式存储器***中的处理元件完成的计算任务可利用能够由分布式存储器操作中的不同处理元件访问的数据(例如,能够由不同处理元件建立的专用存储器访问的数据项)。在一些情况下,处理元件可能无法完全意识到分布式存储器***中可能保持特定的可用数据项的位置(例如,由分布式存储器***中的特定其他处理元件保持和能够由分布式存储器***中的特定其他处理元件访问的专用存储器)。根据实施方案,虽然分布式存储器***中的特定处理元件可将特定数据项保持在专用存储器中,但该特定处理元件可接触分布式存储器***中的其他处理元件,以定位可能由其他处理元件保持或能够通过其他处理元件访问的特定数据项。
在一个实施方案中,分布式存储器***中保持的数据结构可被实现为包括由“边缘”连接的“顶点”的图形。例如,此类图形中的顶点可与感兴趣的一个或多个数据项相关联和/或包括感兴趣的一个或多个数据项(例如,作为被存储的信号和/或状态),而连接顶点的边缘可指示顶点之间的关系(或顶点的数据项之间的关系)。此类图形可表示实现特定计算解决方案的一些关系数据结构。在一个示例性具体实施中,此类图形可表示诸如在商业组织或社交网络中的个人(例如,通过顶点表示)以及个人之间或个人相互间的关系(例如,通过边缘表示)。在另一示例性具体实施中,图形的顶点可表示材料的颗粒,并且边缘可表示材料的颗粒之间或相互间的关系。在具体实施中,顶点可映射到多个处理元件(例如,并且能够通过多个处理元件访问),以例如使得能够对实际上无法驻留在单个处理元件上的大型数据结构进行分布,或者使得能够并行处理以实现实时性能。在该上下文中,如本文所提及的“遍历”意指处理元件作为与顶点结合的分布式存储器操作的一部分而参与的事件。例如,处理元件可在访问、检查、接触、探索或以其他方式访问与顶点相关联的资源的过程中发起或至少部分地执行遍历顶点的分布式存储器操作。顶点的此类遍历可包括例如以体现顶点的物理格式(例如,从存储器)检索信号和/或状态,以及处理检索到的信号和/或状态以提供物理格式的所得信号和/或状态。根据实施方案,分布式存储器***中的处理元件可发起或执行分布式存储器操作,其中图形中的顶点之间或顶点相互间的允许的遍历路径可表示为图形中的边缘。在一个示例中,连接到特定顶点的边缘可表示为可在特定顶点被遍历之后立即被遍历的另一顶点。
图1B和图1C示出了根据特定的具体实施的遍历表示分布式存储器***中保持的数据结构的图形的顶点的过程。在图1B和图1C的实施方案中,由网络基础设施(未示出)耦接的处理元件PE-0、PE-1、…、PE-i可形成分布式存储器***。例如,处理元件PE-0处的计算任务可发起能够通过其他处理元件访问的顶点的遍历,以定位感兴趣的一个或多个特定数据项。此类感兴趣的数据项可在由分布式存储器***中的一个或多个其他处理元件保持的专用存储器中访问。能够通过处理元件PE-0、PE-1、…、PE-i访问的专用存储器中保持的顶点的遍历可促进若干分布式存储器操作中的任何一个,诸如例如,可基于所访问的数据项进行计算或决定的更新、搜索、减少或比较操作。在一个示例中,搜索操作可在处理元件处发起执行比较操作。可响应于比较操作的结果而在处理元件处执行附加动作。
在图1B的特定的具体实施中,源自处理元件PE-0的计算任务可包括访问数据结构中的数据项,该数据结构被实现为能够由处理元件PE-0、PE-1、…、PE-i访问的分布式存储器***中的图形。此处,可穷举地遍历被实现为图形的数据结构的顶点,直到定位到感兴趣的数据项。例如,在处理元件PE-0处发起的分布式存储器操作可包括能够一次一个地通过处理元件PE-0、PE-1、…、PE-i访问的顶点的遍历序列,通过将消息转发到一个处理元件,并且等待来自该一个处理元件的响应,然后将后续消息传输到后续处理元件以遍历后续顶点。例如,处理元件PE-0可将第一消息传输到第一处理元件以发起遍历第一顶点,并且在将第二消息传输到第二处理元件以发起遍历第二顶点之前等待来自该第一处理元件的确认消息(例如,具有结果)。此处,为了遍历表示数据结构的图形中的顶点,处理元件PE-0可发出远程存储器读取操作,这可能需要2*Tn的网络延迟,其中Tn是用于遍历单个顶点的半往返网络延迟(例如,用于传输初始消息以发起远程存储器读取操作并且响应于初始消息而返回确认消息)。在一个示例性实施方案中,可根据表达式(1)对分布式存储器***中的N个顶点的穷举性遍历的总时间如下建模:
Toverall=N×(2×Tn+TC)+TC, (1)
其中:
TC是对提取值的操作时间。
在图1C的另选具体实施中,在处理元件PE-0处发起的分布式存储器操作不需要在完成特定顶点的遍历(例如,通过不同的处理元件)之后在后续顶点的遍历开始之前在处理元件PE-0处接收确认消息。例如,处理元件PE-0可通过将第一消息传输到处理元件PE-1来发起对初始顶点的遍历。然而,可在初始顶点的遍历之后由处理元件PE-1发起后续顶点的遍历,而不涉及处理元件PE-0。例如,响应于在处理元件PE-1处完成初始顶点的遍历,处理元件PE-1可将消息传输到处理元件PE-i,从而发起对能够经由PE-i访问的后续顶点的遍历。
在图1C所示的另选方法中,处理元件PE-0不需要直接发起分布式存储器操作中的所有顶点的遍历。例如,响应于通过处理元件PE-1完成初始顶点的遍历,可由处理元件PE-1至少部分地基于在处理元件PE-1处确定的初始顶点的遍历的结果来发起后续顶点的遍历。此处,可由处理元件PE-1基于在处理元件PE-1处确定的结果并且不与处理元件PE-0进行附加交互来发起通过处理元件PE-i的后续顶点的遍历。例如,响应于由处理元件PE-0发起的操作,处理元件PE-1可执行包括访问在处理元件PE-1处保持的专用存储器的操作。基于该操作(或基于该操作的条件),处理元件PE-1可发起通过其他处理元件的顶点的后续遍历(而不与处理元件PE-0进行附加交互)。因此,根据图1C操作的分布式存储器***中的N个顶点的穷举性遍历的总时间可根据表达式(2)如下建模:
Toverall=N×(Tn+TC)+TC。 (2)
因此,与根据图1B所示的方案的遍历所需的延迟(例如,根据表达式(1)相比),使用图1C所示的方案能够减少延迟。
根据实施方案,在分布式存储器操作中执行顶点的遍历可包括从由支持或部分支持所期望操作的处理元件(例如,在专用存储器中保持顶点的处理元件)本地保持的存储器获取信号和/或状态(例如,实现顶点)。至少部分地基于所期望操作的结果(例如,作为当前顶点的遍历的一部分执行,诸如通过处理从存储器获取的物理格式的信号和/或状态以提供物理格式的所得信号和/或状态),处理元件可触发后续操作,诸如通过另一处理元件的后续顶点的遍历。在一个示例中,如下所述,处理元件可通过传输包括特殊请求的消息来触发此类操作以遍历后续顶点,该特殊请求包含以下信息:请求发起器;值(例如,以进行比较或减小);所请求的操作(例如,进行比较或减少);对处理元件的顶点索引,此处仅列举数例。
如上所述,分布式存储器***中保持的数据结构可被实现为包括与信号和/或状态相关联或者被实现为信号和/或状态的顶点(例如,以物理格式存储在存储器中)以及边缘的图形,以指示顶点之间可能或可允许的遍历路径。图2和图3描绘了表示包括处理元件PE-0至PE-i的分布式存储器***中保持的数据结构的图形的各方面的表示。在图2中,二维矩阵指示边缘,其中特定(x,y)对的条目中的“1”指示在顶点x遍历之后紧接着的可能的顶点y的遍历。如图所示,该二维矩阵可被转换为向量表示,其中列向量中位于标签0、1、2、…N下方的值指示在遍历了与该标签相关联的顶点之后可立即遍历的顶点。
图3示出了根据实施方案的可在处理元件处实现的寻址方案。如上所述,分布式存储器***中的处理元件可发起分布式存储器***中保持的数据结构中的顶点的遍历。此类顶点能够通过访问分布式存储器***中的其他处理元件的专用存储器来访问以进行遍历。图3示出了由特定处理元件应用的寻址方案,该寻址方案指示特定处理元件可发起分布式存储器操作中的遍历的特定顶点。图3示出了该寻址方案可表示为寻址阵列302,该寻址阵列可至少部分地从图2所示的向量表示中导出。
如图所示,特定处理元件的寻址阵列302的第一行识别能够由该特定处理元件访问的四个顶点。在一个实施方案中,四个顶点可被保持在能够由特定处理元件访问的专用存储器中。在当前示出的实施方案中,分布式存储器***包括与索引0、1、2、…、N相关联的N+1个顶点。在一个示例中,用于处理元件PE-0的寻址方案(如由寻址阵列302-0表示)示出处理元件PE-0可执行与索引0、1、2和3相关联的顶点的遍历(并且分别存储由变量名称x0、x1、x2和x3表示的值)。用于处理元件PE-1的寻址方案示出处理元件PE-1可执行与索引4、5、6和7相关联的顶点的遍历(并且分别存储由变量名称x4、x5、x6和x7表示的值)。用于处理元件PE-i的寻址方案示出处理元件PE-i可执行与索引N-3、N-2、N-1和N相关联的对顶点的遍历(并且分别存储由变量名称xN-3、xN-2、XN-1和xN表示的值)。
在如上所述的图2和图3所示的特定的实施方案中,对于表示分布式存储器***中保持的数据结构的图形的N+1个顶点,每个顶点可与索引(或标识符)m∈0、1、2、…、N相关联。如图3中的寻址阵列302所示,每个处理元件可在其相关联的寻址阵列302的第一行中保持表示四个顶点的四个标识符。如下所述,使寻址阵列302指定相同数量的顶点可启用特定的寻址方案。在特定例示的实施方案中,可响应于来自恰好一个处理元件的消息而遍历每个顶点。
在遍历了在寻址阵列302的第一行中识别的特定顶点之后,可随后遍历附加顶点以完成对分布式存储器操作的执行。在第一行中识别的特定处理元件下方的第二行和第三行中的条目可表示到数据结构中的其他顶点的“边缘”,这些其他顶点可在遍历了在第一行中识别的顶点之后立即被遍历。例如,寻址阵列302-i的第一行中包含索引“N”的条目下的第二行和第三行中的条目指示可在遍历顶点N之后立即遍历顶点2或顶点p。另外,寻址阵列302-i的第一行中包含索引“N-1”的条目下的第二行中的条目指示可在遍历顶点N-1之后立即遍历顶点7。类似地,寻址阵列302-i的第一行中包含“N-2”的条目下的条目指示可在遍历顶点N-2之后立即遍历顶点m。另外,在寻址阵列302-i的第一行中包含“N-3”的条目下不存在条目指示在遍历顶点N-3之后不可遍历附加顶点。
根据实施方案,寻址阵列302可作为信号和/或状态被本地存储或高速缓存在对应的处理元件的专用存储器中。例如,寻址阵列302-0可被本地存储在处理元件PE-0的存储器中以供处理元件PE-0访问,以确定可在通过处理元件PE-0遍历当前顶点之后立即遍历哪些顶点。此处,被高速缓存的寻址阵列302-0实际上可识别w个顶点以及指示在遍历了寻址阵列302-0的第一行中识别的顶点之后可被立即遍历的顶点的相关联的连接边缘(例如,来自寻址阵列302-0的第二行或第三行中的值,从顶点1到顶点N,以及从顶点2到顶点6)。在特定的具体实施中,寻址阵列302的第一行的条目可从基础地址开始进行高速缓存。根据实施方案,对称存储器***可针对分布式存储器***中的多个处理元件使本地寻址方案限定为相同。在此类对称存储器***中,基础地址对于所有处理元件的存储器可以相同。此处,对于特定的处理元件(例如,网络地址),可根据表达式(3)如下计算顶点索引m的地址:
Figure BDA0003077436080000091
其中PEj是由分布式存储器***中的处理元件j保持的存储器分区的远程目的地地址。
与处理元件j本地的存储器内的顶点索引m相对应的本地地址可根据表达式(4)如下确定:
本地地址=基础地址+m(mod w) (4)
根据表达式(5),与顶点索引m相对应的全局地址可表示为全局地址(例如,根据表达式(3)确定)和本地地址(例如,根据表达式(4)确定)的元组(tuple),如下所述:
全局地址=(PEj,基础地址+m(mod w)) (5)
图4是根据实施方案的在执行分布式存储器操作的过程中遍历分布式存储器***中保持的数据结构的顶点的过程的一个方面的流程图。在一个具体实施中,分布式存储器***中的第一处理元件可响应于接收到第一消息而执行框402和404处的动作。在具体实施中,第一消息可由除第一处理元件之外的处理元件传输。例如,除第一处理元件之外的处理元件可响应于在除第一处理元件之外的处理元件处发起分布式存储器操作而传输第一消息。另选地,除第一处理元件之外的处理元件可响应于在除第一处理元件之外的处理元件处发生的分布式存储器操作中的对先前顶点的遍历而传输第一消息。在又一另选的具体实施中,第一处理元件可响应于在响应于在第一处理元件处执行的对先前顶点的遍历而进行的“环回(loop back)”事务中从该第一处理元件传输的第一消息而执行框402和404处的动作。
在如上结合图1C所述的特定的具体实施中,可由单个处理元件发起分布式存储器操作过程中的对顶点的遍历。在一个实施方案中,由第一处理元件执行框402和404处的动作可使得能够通过由第一处理元件传输消息来发起通过第二处理元件的对顶点的后续遍历。在一个具体实施中,处理元件响应于能够通过本地存储器访问的对当前顶点的遍历,第一处理元件可基于在当前顶点的遍历过程中确定的计算结果来发起对后续顶点的遍历。这可消除对在传输发起对后续顶点的遍历的消息之前传输和接收确认消息(例如,在完成对当前顶点的遍历时传输确认消息,并且通过发起分布式存储器操作的处理元件接收确认消息)的任何需要。
在一个具体实施中,可通过计算在第一处理元件(例如,CPU 108、存储器104或存储器106)处的资源来执行框402和404,其中第一处理元件可用于访问分布式存储器***中保持的数据结构中的当前顶点。在一个方面,可在分布式存储器操作中由处理元件(诸如第一处理元件或不同的处理元件)执行的对先前顶点的遍历之后或响应于该遍历而通过计算分布式存储器***的第一处理元件处的资源来执行框402和404。
在框402处,第一处理元件可确定待在分布式存储器操作中遍历的当前顶点,其中在由第一处理元件接收的第一消息中识别当前顶点。例如,框402可至少部分地基于在第一消息中接收的索引值来选择在寻址阵列302的第一行中识别的当前顶点。在具体实施中,框402可至少部分地通过检索能够由第一处理元件访问的本地存储器中存储的信号和/或状态并执行用于处理所检索的信号和/或状态的指令来选择当前顶点。然后,第一处理元件可执行对所选择的当前顶点的遍历。对当前顶点的此类遍历可包括诸如例如以下的若干操作中的任何一个:对值进行定位、更新值、返回值、将第一值与第二值进行比较,此处仅列举数例。在一个特定的具体实施中,可由除第一处理元件之外的处理元件传输在框402处接收的第一消息。例如,除第一处理元件之外的处理元件可响应于在除第一处理元件之外的处理元件处的分布式存储器操作中对先前顶点的遍历而发起对第一消息的传输。在另一具体实施中,在框402处接收的第一消息可能已由第一处理元件在“环回”事务中传输,在该“环回”事务中,第一处理元件响应于在第一处理元件处发生的分布式存储器操作中对先前顶点的遍历而传输(和接收)第一消息。
第一处理元件还可确定在对当前顶点的遍历之后立即被遍历的后续顶点。例如,框404可在与当前顶点相关联的第一行条目下方的条目中选择在寻址阵列302的第二行或第三行中所识别的后续顶点。参考上面讨论的图3的特定示例,包括执行框402的处理元件PE-i的第一处理元件可根据寻址阵列302-i从具有标识符N、N-1、N-2或N-3的顶点之中选择顶点,以确定待遍历的当前顶点。在一个具体实施中,可响应于在发起对当前顶点的遍历的第一处理元件处接收到第一消息而发起执行框402和404。此处,在第一处理元件处接收的第一消息可识别当前顶点(例如,使用索引来识别)。
根据实施方案,框404处的第一处理元件可至少部分地基于在第一处理元件处执行的计算(例如,在对当前顶点的遍历过程中)来确定待遍历的后续顶点。例如,可至少部分地基于实现对当前顶点的信号和/或状态(例如,从存储器获取)的检索以及基于所检索到的信号和/或状态的计算来确定此类后续顶点,以提供物理格式的所得信号和/或状态。在一个实施方案中,可在对当前顶点的遍历“之后立即”在分布式存储器操作中对后续顶点的遍历。在该上下文中,之后立即意指在分布式存储器操作中对当前顶点的遍历之后但在分布式存储器操作中对任何其他顶点的遍历之前进行的对后续顶点的遍历。
在一些情况下,例如,多于一个边缘可从表示分布式存储器***中保持的数据结构的图形中的当前顶点延伸。例如,图3中的特定的寻址阵列302-i(能够由处理元件PE-i访问)示出边缘可从顶点N延伸到顶点2或顶点p。因此,执行框404的处理元件PE-i还可确定在处理元件PE-i处的在对顶点N的遍历之后立即遍历的顶点2或顶点p。例如,执行框404的处理元件PE-i可至少部分地基于在处理元件PE-i处结合顶点N的遍历完成的计算的结果来选择顶点2或顶点p作为后续顶点。
框404可包括通过寻址到第二处理元件的通信设备(例如,在第一处理元件处的通信设备)传输消息。第二消息可识别在分布式存储器操作中待在对当前顶点的遍历之后立即遍历的后续顶点。此处,在框404处传输的第二消息可根据若干通信协议中的任何一个通过通信网络(例如,网络102)来传输。
图5是根据实施方案的用于实现执行对表示分布式存储器***中保持的数据结构的图形的顶点的遍历的方面的过程的特征的示意图。在一个特定的具体实施中,例如,网络接口控制器(NIC)502、图形加速器处理器504和存储器506可实现在分布式存储器***的处理元件500,并且可执行上面讨论的框402和404中的动作。根据实施方案,图形加速器处理器504可包括具有负载并存储对本地存储器506的存储器分级结构的访问(例如,以检索或存储物理格式的信号和/或状态)的内核处理器或微控制器。图形加速器处理器504可被配置作为流水线处理器以执行如下所述的操作和比较,以及在高速缓存或存储器分级结构处发生的生成原子操作以促进特定操作,诸如更新存储器506中存储的特定数据项。
在具体实施中,NIC 502可接收消息510(例如,从先前的处理元件接收,未示出),并且可通过具有合适通信介质的通信网络传输消息508。如图所示的消息508和510可以是较大消息、帧和/或信号分组的一部分,这些较大消息、帧和/或信号分组被格式化以用于根据通信协议通过设备之间的合适通信介质进行传输。例如,消息508和510的字段可被封装在利用附加字段(例如,标头、前导码、错误校正码等)结构化的帧和/或信号分组中,以便于在传输介质中进行可靠的传输。字段“Src”可指示分布式存储器***中已经发起对一个或多个顶点的遍历作为分布式存储器操作的一部分的处理元件的标识符和/或地址。
至少部分地基于所接收的消息510的字段“Index”中的值,框520可获取物理格式的表示值xn(例如,值x0、x1、x2、…、xN-3、xN-2、xN-1或xN)的信号和/或状态。此处,框520可访问作为信号和/或状态而被存储在存储器506中的寻址阵列(例如,诸如上面结合图3讨论的寻址阵列302),以获得由分布式存储器***保持的数据结构中的当前顶点(例如,如图所示的在寻址阵列的第一行中具有标识符N-3、N-2、N-1或N的顶点)的标识符。在一个示例中,字段“Index”中作为信号和/或状态存储的值可包括值m(例如,其中m∈0、1、2、…、N),该值m对应于待在分布式存储器操作中在处理元件500处遍历的当前顶点。在一个示例中,例如,框520可根据至少部分地基于上述表达式(3)所确定的存储器506本地的地址来获取表示与字段“Index”中的值相对应的值xN的信号和/或状态。
522、524和526处的处理可被配置用于流水线处理,并且可任选地至少部分地基于诸如消息510的字段“Op”中提供的值的特定条件来执行。在一个特定的具体实施中,消息510的字段“Op”中指示的值可指示正在执行的特定的分布式存储器操作,诸如搜索操作、搜索和更新操作、或图形减少操作,此处仅列举数例。在一个实施方案中,框522可任选地至少部分地基于消息510的字段Value1中的值以及由框520获取的值Xn,根据字段“Op”中指示的值来计算值“Ret”。例如,值“Ret”可包括由字段“Op”中的值所指定的搜索或图形减少操作所确定的值。菱形524可响应于诸如消息510的字段“Value2”中的值与由框522确定的值“Ret”的比较的条件向由消息510的字段“Src”中的值所指示的处理元件(例如,发起分布式存储器操作的处理元件)任选地返回值(例如,在框522处计算的值)。可向发起分布式存储器操作的处理元件(例如,与消息510的字段“Src”中的值相关联的处理元件)提供值“Ret”。框526可包括获取存储器506中物理格式的信号和/或状态,该信号和/或状态表示与待在对当前索引的遍历之后立即遍历的后续顶点相关联的索引。例如,框526可从存储器506获取信号和/或状态,该信号和/或状态实现寻址阵列的第二行中的低于由框520获取的索引值的值作为后续顶点的标识符。例如,如果框520获取表示N-1(在寻址阵列的第一行中)的信号和/或状态为xN-1(基于消息510中的字段“Index”中的值),则菱形526可获取“7”(在N-1下方的寻址阵列的第二行中)为待在分布式存储器操作中遍历的后续顶点的标识符。
另一方面,如果框520获取表示N(在寻址阵列的第一行中)的信号和/或状态为xN(基于消息510中的字段“Index”中的值),则在由框520获取的值下方不存在第二行值,并且菱形530可确定在对当前顶点的遍历之后在分布式存储器操作中不存在附加遍历。此处,框532可向发起分布式存储器操作(例如,根据标识符“Src”寻址)的处理元件发起对消息的传输,该消息指示正在遍历分布式存储器***的数据结构中的终端顶点。如果字段“Step”或消息510中的值指示将执行附加遍历以完成如在菱形528处所确定的分布式存储器操作,则消息508将被传输到第二处理元件(未示出)以遍历能够由第二处理元件访问的后续顶点。在发起消息以发起对后续顶点的遍历之前,菱形528可确定字段“Step”+1中的值是否超过允许步骤的最大数量(例如,以避免潜在的循环)。例如,如果字段“Step”+1中的值超过允许步骤的最大数量或菱形530确定不存在附加遍历,则框532可向发起分布式存储器操作的处理元件发起对消息的传输,该消息指示图形结束。
根据实施方案,处理元件500可执行作为若干不同分布式存储器操作中的任何一个的一部分的对顶点的遍历,该若干不同分布式存储器操作包括例如图形搜索操作、图形更新和搜索操作,或者图形减少操作。在图形搜索操作中,例如,菱形524可检测特定数据项已经位于存储器506中的条件,并且向发起包含所定位数据项的图形搜索操作的处理元件发起对消息的传输。在图形更新和搜索操作中,例如,除了检测特定数据项已位于存储器506中的条件之外,菱形524还可发起对存储器506中存储的所定位数据项的更新。在图形减少操作中,例如,菱形524可至少部分地基于存储器506中存储的数据项来计算待在消息中返回到发起图形减少操作的处理元件的一个或多个值。
除非另外指明,否则在本公开的上下文中,如果用于关联列表,诸如A、B或C,则术语“或”旨在此处以包含性意义使用以表示A、B和C,以及在此处以排他性意义使用以表示A、B或C。根据该理解,“和”以包含性意义使用,并且旨在表示A、B和C;而“和/或”可谨慎使用以使所有前述含义都是预期的,尽管此类使用不是必需的。此外,术语“一个或多个”和/或类似术语用于描述单数形式的任何特征、结构、特性等,“和/或”也用于描述特征、结构、特性等的多个和/或一些其他组合。此外,术语“第一”、“第二”、“第三”等作为一个示例用于区分不同方面,诸如不同部件,而不是提供数值限制或暗示特定顺序,除非另有明确指示。同样,术语“基于”和/或类似术语被理解为不一定旨在传达详尽的因素列表,而是允许存在不一定明确描述的附加因素。
还需注意的是,如果使用术语“类型”和/或“类”,诸如与特征、结构、特性等一起使用,使用“光学”或“电”作为简单示例,意指至少部分地具有该特征、结构、特性等和/或与该特征、结构、特性等相关,这样使得存在微小变型、甚至以其他方式可能不被认为与该特征、结构、特性等完全一致的变型通常不会阻止特征、结构、特性等称为“类型”和/或“类”(诸如为“光学类型”或“光学类”),如果微小变型足够小,使得特征、结构、特性等仍将被视为主要存在于也存在此类变型的情况下。因此,继续该示例,术语光学类型和/或光学类特性必然旨在包括光学特性。同样,作为另一示例,术语电类型和/或电类特性必然旨在包括电特性。应当注意,本公开的说明书仅提供一个或多个说明性示例,并且要求保护的主题旨在不限于一个或多个说明性示例;然后,同样,如相对于专利申请的说明书中始终存在的情况,描述和/或使用的上下文提供了关于要得出的合理推理的有帮助的指导。
例如,随着技术的进步,采用分布式计算和/或通信方法已变得更为典型,在该分布式计算和/或通信方法中,过程的一部分(诸如对于分布式存储器***中保持的数据结构的信号样本的信号处理或对顶点的遍历)例如可经由计算和/或通信网络在包括一个或多个客户端设备、处理元件、一个或多个服务器设备和/或一个或多个对等设备的各种设备之间分配。例如,网络可包括诸如网络设备、处理元件和/或计算设备的两个或更多个设备可耦接诸如网络设备、处理元件和/或计算设备的设备,使得诸如以信号分组和/或信号帧(例如,包括一个或多个信号样本)形式的信号通信可例如在诸如服务器设备、处理元件、客户端设备和/或对等设备以及其他类型的设备之间交换,包括在经由有线和/或无线网络耦接的有线和/或无线设备之间交换。
分布式计算***的示例包括采用映射减少类型架构的所谓的Hadoop分布式计算***。在本公开的上下文中,术语映射减少架构和/或类似术语旨在指代用于采用映射来处理和/或生成更大信号样本集和/或减少在设备网络上执行的并行分布式过程的操作的分布式计算***具体实施和/或实施方案。映射操作和/或类似术语指代处理信号(例如,信号样本)以生成一个或多个键值对并且将一个或多个对分配到***(例如,网络)的一个或多个设备。减少操作和/或类似术语指代经由汇总操作(例如,对队列中的学生数量进行计数、产生姓名频率等)来处理信号(例如,信号样本)。在一个实施方案中,***可采用此类架构,诸如通过将分布式服务器设备标记在一起,并行执行各种任务,和/或管理***(例如,网络)的各个部分之间的通信,诸如信号传输。如所提及的,一个非限制性但公知的示例包括Hadoop分布式计算***。该***指代映射减少类型架构的开源具体实施和/或实施方案(可从阿帕奇软件基金会获得,地址:马里兰州福里斯特山芒西大道1901号,邮编:21050-2747(Apache Software Foundation,1901Munsey Drive,Forrest Hill,MD,21050-2747)),但可包括其他方面,诸如Hadoop分布式文件***(HDFS)(可从阿帕奇软件基金会获得,地址:马里兰州福里斯特山芒西大道1901号,邮编:21050-2747)。因此,一般来讲,“Hadoop”和/或类似术语(例如“Hadoop型”等)指代用于在分布式***上使用映射减少架构来执行较大处理作业的调度器的具体实施和/或实施方案。此外,在本公开的上下文中,术语“Hadoop”的使用旨在包括目前已知和/或以后将开发的版本。
在本公开的上下文中,术语“网络设备”是指能够经由网络和/或作为网络的一部分进行通信的任何设备,并且可包括计算设备。虽然网络设备可能能够诸如经由有线和/或无线网络传达信号(例如,信号分组和/或帧),但是在各种实施方案中,它们也能够执行与计算设备相关联的操作,诸如算术和/或逻辑操作,诸如在作为有形物理存储器状态的非暂态存储器中的处理和/或存储操作(例如,存储信号样本),和/或可例如作为服务器设备和/或客户端设备操作。能够作为服务器设备、处理元件、客户端设备和/或以其他方式操作的网络设备可包括例如专用机架安装服务器、台式计算机、膝上型计算机、机顶盒、平板电脑、上网本、智能电话、可穿戴设备、组合前述设备的两个或更多个特征的集成设备等,或它们的任何组合。如所提及的,信号分组和/或帧例如可在诸如服务器设备和/或客户端设备以及其他类型的设备之间交换,包括例如在经由有线和/或无线网络耦接的有线和/或无线设备之间交换,或它们的任何组合。需注意,术语服务器、服务器设备、服务器计算设备、服务器计算平台和/或类似术语可互换使用。类似地,术语客户端、客户端设备、客户端计算设备、客户端计算平台和/或类似术语也可互换使用。虽然在一些情况下,为便于描述,这些术语可以单数形式使用,诸如通过参考“客户端设备”或“服务器设备”,但该描述旨在按需涵盖一个或多个客户端设备和/或一个或多个服务器设备。按照类似的方式,对“数据库”的引用被理解为按需意指一个或多个数据库和/或其部分。
应当理解,为便于描述,网络设备(也称为联网设备)可根据计算设备来实施和/或描述,反之亦然。然而,还应当理解,本说明书绝不应理解为使得所要求保护的主题限于一个实施方案,诸如仅计算设备和/或仅网络设备,而是,相反可被实施为各种设备或它们的组合,包括例如一个或多个说明性示例。
例如,网络还可包括现在已知和/或将以后开发的布置、衍生和/或改进,包括例如过去、当前和/或未来的大容量存储装置,诸如网络附接的存储装置(NAS)、存储区域网络(SAN)和/或其他形式的设备可读介质。网络可包括互联网的一部分、一个或多个局域网(LAN)、一个或多个广域网(WAN)、有线类型连接、无线类型连接、其他连接,或它们的任何组合。因此,网络的范围和/或延展区域可为世界范围内的。同样,诸如可采用不同架构和/或可与诸如网络计算和/或通信协议(例如,网络协议)的不同协议基本兼容和/或基本上兼容的子网络可在较大的网络内互操作。
在本公开的上下文中,如果例如相对于网络使用术语子网络和/或类似术语,则指代网络和/或其一部分。子网络还可包括诸如物理链路、连接和/或耦接节点的链路,以便能够在包括经由有线链路、无线链路或它们组合的特定节点的设备之间传达信号分组和/或帧。可使诸如网络设备和/或计算设备的各种类型的设备可用,使得设备互操作性被实现和/或在至少一些情况下可以是显而易见的。在本公开的上下文中,如果相对于网络的特定通信设备使用,则术语“显而易见”指代经由其中设备能够经由诸如一个或多个中间节点的一个或多个中间设备进行通信的网络来进行通信的设备,但使设备通信不一定指定一个或多个中间节点和/或一个或多个中间节点的一个或多个中间设备。因此,网络可包括通信中的一个或多个中间节点和/或一个或多个中间节点中的一个或多个中间设备,并且网络可参与经由一个或多个中间节点和/或一个或多个中间节点中的一个或多个中间设备的通信,但是网络可如此类中间节点和/或中间设备不一定涉及特定通信设备之间的通信那样操作。例如,路由器可在其他单独和/或独立LAN之间提供链路和/或连接。
在本公开的上下文中,“专用网络”指代诸如网络设备和/或计算设备的特定有限集合的设备,该特定有限集合的设备能够诸如经由信号分组和/或信号帧通信而不需要重新路由和/或重定向信号通信来与诸如网络设备和/或计算设备的特定有限集合的其他设备通信。专用网络可包括独立网络;然而,专用网络还可包括较大网络的子集,诸如但不限于互联网的全部或一部分。因此,例如,“云中”的专用网络可指代包括互联网的子集的专用网络。尽管信号分组和/或帧通信(例如,信号通信)可采用中间节点的中间设备来交换信号分组和/或信号帧,但是那些中间设备因例如不是一个或多个信号分组和/或信号帧的源或所指定的目的地,所以可能不一定被包括在专用网络中。应当理解,在本公开的上下文中,专用网络可将传出信号通信引导至不在专用网络中的设备,但专用网络外部的设备可能不一定能够将入站信号通信引导至专用网络中包括的设备。
互联网指代符合互联网协议(IP)的可互操作网络的分散式全局网络。需注意,互联网协议存在若干版本。术语互联网协议、IP和/或类似术语旨在指代现在已知和/或以后将开发的任何版本。互联网包括例如可允许信号分组和/或帧在LAN之间通信的局域网(LAN)、广域网(WAN)、无线网络和/或长途网络。也可使用术语万维网(WWW或Web)和/或类似术语,但其是指符合超文本传输协议(HTTP)的互联网的一部分。例如,网络设备可通过交换适当的基本兼容和/或基本上兼容的信号分组和/或帧来参与HTTP会话。需注意,超文本传输协议存在若干版本。术语超文本传输协议、HTTP和/或类似术语旨在指代现在已知和/或以后将开发的任何版本。同样应当注意,在本文档的多处,可在不显著背离含义的情况下对术语互联网与术语万维网(“Web”)进行替换,因此,如果陈述在此类替换下将保持正确,则也可以这种方式理解。
尽管要求保护的主题在范围上不受互联网和/或Web的特别限制;然而,至少出于说明的目的,互联网和/或Web可以但不限于提供实施方案的可用示例。如所指出的,互联网和/或Web可包括全球可互操作网络***,包括那些网络内的可互操作设备。互联网和/或Web已经演进到可使世界范围内数十亿人或更多能够访问的自持设施。另外,在一个实施方案中,并且如上所述,术语“WWW”和/或“Web”指代符合超文本传输协议的互联网的一部分。因此,在本公开的上下文中,互联网和/或Web可包括例如通过使用超媒体来组织所存储的诸如文本、图像、视频等的数字内容的服务。需注意,诸如互联网和/或Web的网络可用于存储电子文件和/或电子文档。
在整个本文档中使用的术语“电子文件”和/或术语“电子文档”等指代以某种方式相关联的所存储的存储器状态的集合和/或物理信号的集合,从而至少在逻辑上形成文件(例如,电子文件)和/或电子文档。也就是说,这并不意指隐式地引用例如相对于相关联的存储器状态的集合和/或相关联的物理信号的集合所使用的特定语法、格式和/或方法。如果例如预期特定类型的文件存储格式和/或语法,则明确引用该文件存储格式和/或语法。还需注意,存储器状态的关联性例如可以是逻辑意义上的并且不一定是有形的物理意义上的。因此,尽管文件和/或电子文档的信号和/或状态部件将例如在逻辑上相关联,但在一个实施方案中,该信号和/或状态部件的存储例如可驻留在有形的物理存储器中的一个或多个不同位置中。在一个具体实施中,电子文件和/或电子文档可包括分布式存储器***中的数据结构的顶点,该顶点保持在分布式存储器***中的处理元件的专用存储器中。
例如,超文本标记语言(“HTML”)例如可用于指定数字内容和/或指定其格式,诸如以电子文件和/或电子文档的形式,诸如网页、网站等。在一个实施方案中,还可利用可扩展标记语言(“XML”)来指定数字内容和/或指定其格式,诸如以电子文件和/或电子文档的形式,诸如网页、网站等。当然,HTML和/或XML仅是作为非限制性说明提供的“标记”语言的示例。此外,HTML和/或XML旨在指代现在已知和/或以后将开发的这些语言的任何版本。当然,同样,所要求保护的主题并不旨在限于作为说明提供的示例。
在本公开的上下文中,术语“网站”和/或类似术语指代以电子方式相关联以形成特定集合的网页。另外,在本公开的上下文中,在一个示例性实施方案中,“网页”和/或类似术语指代能够经由网络访问的电子文件和/或电子文档,包括通过指定用于经由Web访问的统一资源定位符(URL)。如上所述,在一个或多个实施方案中,网页可包括使用一种或多种语言(诸如例如标记语言,包括HTML和/或XML)(例如,经由计算机指令)进行编码的数字内容,尽管所要求保护的主题在这个方面的范围不受限制。另外,在一个或多个实施方案中,应用开发人员可以能够由计算设备执行的例如JavaScript(或其他编程语言)的形式编写代码(例如,计算机指令)以提供数字内容,从而以适当格式填充电子文档和/或电子文件,诸如以供特定应用使用。使用术语“JavaScript”和/或旨在指代一个或多个特定编程语言的类似术语旨在指代所识别的、现在已知和/或以后将开发的一个或多个编程语言的任何版本。因此,JavaScript仅仅是示例性编程语言。如所提及的,所要求保护的主题不旨在限于示例和/或说明。
如所指出的,在本公开的上下文中,术语“条目”、“电子条目”、“文档”、“电子文档”、“内容”、“数字内容”、“顶点”、“数据项”和/或类似术语意在指代物理格式(诸如数字信号和/或数字状态格式)的信号和/或状态,例如,如果由诸如数字设备(包括例如计算设备)的设备显示、播放、触觉生成等和/或以其他方式执行则可被用户感知到,但(例如,如果以数字格式形式)可能不一定易于被人类感知到。同样,在本公开的上下文中,数字内容以某种形式提供给用户,使得用户能够容易地感知内层内容本身(例如,以可由人类消费的形式呈现的内容,诸如听到音频、感受触觉感受和/或看到图像)相对于用户被称为“消费”数字内容、“消耗”数字内容、“可消费”数字内容和/或类似术语。对于一个或多个实施方案,例如,电子文档和/或电子文件可包括由或将由计算和/或联网设备执行的标记语言的网页代码(例如,计算机指令)。在另一实施方案中,电子文档和/或电子文件可包括网页的一部分和/或一个区域。在另一示例中,可至少部分地通过以下方式在分布式存储器操作中遍历顶点:检索包括顶点的物理格式的信号和/或状态,并且处理检索到的信号和/或状态(例如,由处理器处理)以提供物理格式的所得信号和/或状态。然而,所要求保护的主题并不旨在在这些方面受到限制。
另外,对于一个或多个实施方案,电子文档和/或电子文件可包括多个部件。如前所述,在本公开的上下文中,部件是物理的,但不一定是有形的。例如,在一个或多个实施方案中,参考电子文档和/或电子文件的部件可包括例如物理信号和/或物理状态形式(例如,能够在有形存储器中被物理地显示和/或保持为存储器状态)的文本。通常,存储器状态例如包括有形部件,而物理信号不一定是有形的,尽管信号可变得(例如,成为)有形,诸如,如果出现在有形显示器上,则这并不罕见。另外,对于一个或多个实施方案,参考电子文档和/或电子文件的部件可包括图形对象和/或子对象,该图形对象例如诸如数字图像的图像,该子对象包括其属性,该属性再次包括物理信号和/或物理状态(例如,能够在有形存储器中有形地显示和/或保持为存储器状态)。在一个实施方案中,数字内容可包括例如文本、图像、音频、视频、触觉内容和/或其他类型的电子文档和/或电子文件,包括例如电子文档和/或电子文件的部分。
另外,在本公开的上下文中,术语参数(例如,一个或多个参数)指代描述信号样本集合的素材,诸如一个或多个电子文档和/或电子文件,并且以物理信号和/或物理状态的形式存在,诸如存储器状态。例如,诸如参考包括图像的电子文档和/或电子文件的一个或多个参数可包括例如捕获图像的一天中的时间、诸如相机的图像捕获设备的纬度和经度等。在另一示例中,例如,与数字内容相关的一个或多个参数(诸如包括技术论文的数字内容)可包括例如一位或多位作者。所要求保护的主题旨在涵盖任何格式的有意义的描述性参数,只要该一个或多个参数包括物理信号和/或状态即可,该物理信号和/或状态可包括作为参数示例的集合名称(例如,电子文件和/或电子文档标识符名称)、创建技术、创建目的、创建时间和日期、如果存储的逻辑路径、编码格式(例如,计算机指令的类型,诸如标记语言)和/或所使用的以便对于一个或多个用途协议兼容的标准和/或规范(例如,基本兼容和/或基本上兼容的含义)等。
也被称为信号分组传输和/或信号帧传输(或仅“信号分组”或“信号帧”)的信号分组通信和/或信号帧通信可在网络的节点之间传达,其中,例如,节点可包括一个或多个网络设备和/或一个或多个计算设备。作为说明性示例,但不作限制,节点可包括采用本地网络地址的诸如在本地网络地址空间中的一个或多个站点。同样,诸如网络设备、处理元件和/或计算设备的设备可与该节点相关联。还需注意,在本公开的上下文中,术语“传输”旨在作为可在多种情况中的任一种下发生的信号通信类型的另一术语。因此,并非旨在暗示通信的特定方向性和/或用于“传输”通信的通信路径的特定发起端。例如,在本公开的上下文中,仅仅使用该术语本身并不意指相对于被传达的一个或多个信号具有特定的含义,诸如例如信号是否被“传达到”特定设备,信号是否从特定设备“传达”,和/或关于通信路径的哪个端可发起通信,诸如例如以信号传输的“推送类型”或信号传输的“拉取类型”进行。在本公开的上下文中,通过通信路径的哪一端发起信号传输来区分推送型信号传输和/或拉取型信号传输。
因此,例如,信号分组和/或帧可经由通信信道和/或通信路径(诸如包括互联网和/或Web的一部分)从站点经由耦接到互联网的接入节点进行通信,或者反之亦然。同样,例如,信号分组和/或帧可经由网络节点转发到耦接到本地网络的目标站点。经由互联网和/或网络传达的信号分组和/或帧例如可经由包括一个或多个网关、服务器等的路径路由,诸如被“推送”或“拉取”,该一个或多个网关、服务器等可例如基本上根据目标地址和/或目的地地址以及网络节点到目标地址和/或目的地地址的网络路径的可用性来路由信号分组和/或帧。尽管互联网和/或Web包括可互操作网络的网络,但并非所有这些可互操作网络都是公众可用的和/或可访问的。
在特定公开的上下文中,通信协议(诸如用于在网络的设备之间进行通信)可至少部分地基本上根据分层描述(诸如所谓的开放***互连(OSI)七层类型的方法和/或描述)来表征。网络计算和/或通信协议(也称为网络协议)指代信令约定集合,诸如用于通信传输,例如,如可能在网络中的设备之间和/或相互间发生的。在本公开的上下文中,术语“在…之间”和/或类似术语应理解为包括“在…之中”(如果适用于特定用途),反之亦然。同样,在本公开的上下文中,术语“与…相容”、“顺应”和/或类似术语应被理解为分别包括实质相容性和/或实质顺应性。
诸如基本上根据前述OSI描述表征的协议的网络协议具有若干个层。这些层被称为网络堆栈。诸如网络通信的各种类型的通信(例如,传输)可跨各个层发生。网络堆栈中诸如所谓物理层的最低层级的层可表征如何经由物理介质(例如,双绞线铜线、同轴电缆、光纤电缆、无线空气接口、它们的组合等)来将符号(例如,位和/或字节)作为一个或多个信号(和/或信号样本)传达。进展到网络协议栈中的更高层级的层,附加操作和/或特征可经由参与和这些更高层级的层处的特定网络协议基本兼容和/或基本上兼容的通信而可用。例如,网络协议的较高层级的层可例如影响设备许可、用户许可等。
在一个实施方案中,网络和/或子网络可经由信号分组和/或信号帧(诸如经由参与的数字设备)进行通信,并且可基本兼容于或基本上兼容于但不限于现在已知和/或待开发的以下网络协议栈中的任何一个的版本:ARCNET、AppleTalk、ATM、蓝牙、DECnet、以太网、FDDI、帧中继、HIPPI、IEEE 1394、IEEE 802.11、IEEE-488、互联网协议包、IPX、Myrinet、OSI协议包、QsNet、RS-232、SPX、***网络架构、令牌环、USB和/或X.25。网络和/或子网络可采用例如以下中的现在已知和/或以后将开发的版本:TCP/IP、UDP、DECnet、NetBEUI、IPX、AppleTalk等。互联网协议(IP)的版本可包括IPv4、IPv6和/或其他以后将开发的版本。
关于与网络相关的方面,包括通信和/或计算网络,无线网络可将包括客户端设备的设备与网络耦接。无线网络可采用独立网络、自组织网络、网状网络、无线LAN(WLAN)网络、蜂窝网络等。无线网络还可包括由无线电链路等耦接的终端、网关、路由器等的***,这些***可自由地、随机地移动和/或随意地组织它们自身,使得网络拓扑结构有时甚至可快速改变。无线网络还可采用多种网络接入技术,无论是当前已知的还是以后将开发的,包括长期演进(LTE),WLAN,无线路由器(WR)网,第2代、第3代、第4代或第5代(2G、3G、4G或5G)蜂窝技术等的版本。例如,网络接入技术可实现针对具有不同移动性程度的诸如计算设备和/或网络设备等设备的广域覆盖。
网络可经由诸如以下的无线网络接入技术和/或空中接口实现射频和/或其他无线类型的通信:全球移动通信***(GSM)、通用移动电信***(UMTS)、通用分组无线服务(GPRS)、增强型数据GSM环境(EDGE)、3GPP长期演进(LTE)、高级LTE、宽带码分多址(WCDMA)、蓝牙、超宽带(UWB)、IEEE 802.11(包括但不限于IEEE 802.11b/g/n)等。无线网络可包括几乎任何类型的现在已知和/或待开发的无线通信机制和/或无线通信协议,信号可通过这些无线通信机制和/或无线通信协议在设备之间、网络之间、网络内等进行通信,当然包括前述内容。
在一个示例性实施方案中,如图6所示,***实施方案可包括本地网络(例如,第二设备604和计算机可读介质640)和/或诸如计算和/或通信网络的另一类型的网络。因此,出于说明的目的,图6示出了可用于诸如结合用于执行分布式存储器操作的一个或多个操作和/或技术来实现网络中的任一类型或两种类型的***的实施方案600。网络608可包括一个或多个网络连接、链路、进程、服务、应用和/或资源,以促进和/或支持通信,诸如例如在诸如602的计算设备与诸如606的另一计算设备之间的通信信号的交换,该另一计算设备可例如包括一个或多个客户端计算设备、一个或多个处理元件和/或一个或多个服务器计算设备。作为示例而非限制,网络608可包括无线和/或有线通信链路、电话和/或电信***、Wi-Fi网络、Wi-MAX网络、互联网、局域网(LAN)、广域网(WAN)或它们的任何组合。
在一个实施方案中,图6中的示例性设备可包括例如客户端计算设备、处理元件和/或服务器计算设备的特征。还需注意,一般来讲,术语计算设备无论用作处理元件、用作客户端和/或用作服务器或其他,至少指代通过通信总线连接的处理器和存储器。同样,至少在本公开的上下文中,这被理解为指代35§USC 112(f)所指的足够的结构,因此,特别明确使用术语“计算设备”、“处理元件”和/或类似术语不涉及35§USC 112(f);然而,如果由于某些不明显的原因,确定前述理解不能成立,并且因此35§USC 112(f)必然被术语“计算设备”、“处理元件”和/或类似术语的使用所暗示,然后,根据该法定部分,用于执行一个或多个功能的相应结构、材料和/或动作被理解和解释为至少在图1-图5中描述。
如图6中进一步所示,在一个实施方案中,第一设备602和第三设备606能够呈现例如用于网络设备和/或计算设备的图形用户界面(GUI),使得用户操作者可参与***使用。在该图示中,设备604可潜在地发挥类似的功能。同样,在图6中,计算设备602(附图中的“第一设备”)可与计算设备604(附图中的“第二设备”)进行交互,在一个实施方案中,该计算设备也可包括例如客户端计算设备和/或服务器计算设备的特征。处理设备(例如,处理器或处理设备)620和可包括主存储器624和辅助存储器626的存储器622可通过例如通信总线615进行通信。在本公开的上下文中,术语“计算设备”或“处理元件”指代包括以信号和/或状态的形式处理(例如,执行计算)和/或存储诸如电子文件、电子文档、测量、文本、图像、视频、音频等的数字内容的能力的***和/或设备,诸如计算设备。因此,在本公开的上下文中,计算设备或处理元件可包括硬件、软件、固件或它们的任何组合(除软件本身之外)。如图6所示,计算设备604仅是一个示例,并且所要求保护的主题在范围上不限于该特定示例。
对于一个或多个实施方案,计算设备或处理元件可包括例如较宽范围的数字电子设备中的任一种,包括但不限于:台式计算机和/或笔记本电脑、高清电视、数字通用光盘(DVD)和/或其他光盘播放器和/或录像机、游戏机、***接收器、移动电话、平板设备、可穿戴设备、个人数字助理、移动音频和/或视频回放和/或录制设备、或者前述的任何组合。此外,除非另外特别说明,否则诸如参考流程图和/或其他方式描述的过程也可全部或部分地由计算设备和/或网络设备执行和/或影响。诸如计算设备和/或网络设备的设备可根据能力和/或特征而变化。所要求保护的主题旨在涵盖较宽范围的潜在变型。例如,设备可包括功能有限的数字小键盘和/或其他显示器,诸如用于显示文本的单色液晶显示器(LCD)。然而,相比之下,又如,启用网络的设备可包括物理和/或虚拟键盘、大容量存储装置、一个或多个加速度计、一个或多个陀螺仪、全球定位***(GPS)和/或其他位置识别类型能力,和/或诸如触敏彩色2D或3D显示器的具有更高功能度的显示器。
如前所述,计算设备和/或网络设备与无线网络之间的通信可根据包括例如全球移动通信***(GSM)、增强型数据速率GSM演进(EDGE)、802.11b/g/n/h等,和/或全球微波接入互操作性(WiMAX)的已知和/或待开发的网络协议发生。计算设备和/或联网设备还可具有用户身份模块(SIM)卡,该SIM卡例如可包括能够存储用户的订阅内容和/或还能够存储联系人列表的可拆卸或嵌入式智能卡。还如所讨论的,计算设备和/或联网设备还可具有其他标识。用户可拥有计算设备和/或网络设备,或者例如可以其他方式成为用户,诸如主要用户。可由无线网络运营商、有线网络运营商和/或互联网服务提供商(ISP)为设备分配地址。例如,地址可包括国内或国际电话号码、互联网协议(IP)地址和/或一个或多个其他标识符。在其他实施方案中,计算和/或通信网络可实现为有线网络、无线网络或它们的任何组合。
计算和/或网络设备可包括和/或可执行多种现在已知和/或待开发的操作***、其衍生产品和/或版本,包括诸如Windows、iOS、Linux的计算机操作***,诸如iOS、Android、Windows Mobile等的移动操作***。计算设备和/或网络设备可包括和/或可执行多种可能的应用,诸如实现与其他设备的通信的客户端软件应用。例如,可诸如经由现在已知和/或以后将开发的适用于传达电子邮件、短消息服务(SMS)和/或多媒体消息服务(MMS)的一个或多个协议传达一个或多个消息(例如,内容),包括经由至少部分地由计算和/或通信网络的一部分形成的诸如社交网络的网络,包括但不限于Facebook、LinkedIn、Twitter、Flickr和/或Google+,以列举数例。计算和/或网络设备还可包括用于处理和/或传达诸如文本内容、数字多媒体内容等的数字内容的可执行计算机指令。计算和/或网络设备还可包括用于执行诸如浏览、搜索、播放各种形式的数字内容(包括本地存储的视频和/或流式视频)和/或游戏(诸如但不限于梦幻体育联盟)的多种可能任务的可执行计算机指令。提供上述内容仅是为了说明所要求保护的主题旨在包括较宽范围的可能的特征和/或能力。
在图6中,计算设备602可以例如物理状态和/或信号(例如,存储在存储器状态中)的形式提供可执行计算机指令的一个或多个源。例如,计算设备602可通过网络连接与计算设备604通信,诸如经由网络608进行。如前所述,连接虽然是物理的,但可能不一定有形。尽管图6的计算设备604示出了各种有形的物理部件,但所要求保护的主题不限于仅具有这些有形部件的计算设备,因为其他具体实施和/或实施方案可包括可选布置,该可选布置可包括例如在实现类似结果的同时发挥不同功能的附加有形部件或更少有形部件。相反,提供示例仅是说明性的。不旨在将所要求保护的主题限制在说明性示例的范围内。
存储器622可包括任何非暂态存储机构。存储器622可包括例如主存储器624和辅助存储器626,可使用附加存储器电路、机构或它们的组合。存储器622可包括例如随机存取存储器、只读存储器等,诸如呈一个或多个存储设备和/或***的形式,诸如例如包括光盘驱动器、磁带驱动器、固态存储器驱动器等的磁盘驱动器,仅列举数例。
存储器622可用于存储可执行计算机指令的程序。例如,处理器620可从存储器获取可执行指令并且继续执行所获取的指令。存储器622还可包括用于访问设备可读介质640的存储器控制器,该设备可读介质可承载和/或形成能够访问的数字内容,该数字内容可包括例如可由处理器620和/或例如能够执行计算机指令的一些其他设备(诸如控制器)执行的代码和/或指令。在处理器620的指导下,包括例如可执行计算机指令的程序的非暂态存储器(诸如存储物理状态(例如,存储器状态)的存储器单元)可由处理器620执行并且能够生成待经由网络传达的信号,例如,如前所述。因此,在一些情况下,处理器620可促进和/或支持诸如经由通信接口630(例如,实施NIC 502)例如与多个处理元件进行电子通信,诸如以至少部分地实现框402和404处的操作。此外,在至少一个具体实施中,处理器620可促进和/或支持例如执行操作以遍历存储器622中保持的顶点。另外,在一些情况下,处理器620可促进和/或支持例如执行如上所述由图形加速器处理器504执行的动作。
存储器622可存储诸如与一个或多个用户相关的电子文件和/或电子文档,并且还可包括设备可读介质,该设备可读介质可承载和/或形成能够访问的内容,包括例如可由处理器620和/或例如能够执行计算机指令的一些其他设备(诸如控制器)执行的代码和/或指令。如前所述,在整个本文档中使用的术语电子文件和/或术语电子文档等指代以某种方式相关联的所存储的存储器状态的集合和/或物理信号的集合,从而形成电子文件和/或电子文档。也就是说,这并不意指隐式地引用例如相对于相关联的存储器状态的集合和/或相关联的物理信号的集合所使用的特定语法、格式和/或方法。还需注意,存储器状态的关联性例如可以是逻辑意义上的并且不一定是有形的物理意义上的。因此,尽管电子文件和/或电子文档的信号和/或状态部件将在逻辑上相关联,但在一个实施方案中,该信号和/或状态部件的存储例如可驻留在有形的物理存储器中的一个或多个不同位置中。
算法描述和/或符号表示是信号处理和/或相关领域的普通技术人员用于向本领域的其他技术人员传达他们工作实质的技术的示例。在本公开的上下文中,算法被认为是并且通常被认为是导致所需结果的操作和/或类似信号处理的自相一致的序列。在本公开的上下文中,操作和/或处理涉及物理量的物理操纵。通常,尽管不是必需的,但此类量可采取能够被存储、传输、组合、比较、处理和/或以其他方式操纵的电和/或磁信号和/或状态的形式,例如,作为构成各种形式的数字内容(诸如信号测量、文本、图像、视频、音频等)的部件的电子信号和/或状态。
主要出于常用的原因,有时已经证明将此类物理信号和/或物理状态称为位、值、元素、参数、符号、字符、术语、数字、数量、量度、内容等是方便的。然而,应当理解,所有这些和/或类似术语将与适当的物理量相关联,并且仅仅是为了方便的标签。除非另外特别说明,否则从前述讨论中显而易见的是,应当理解,在整个本说明书中,使用诸如“处理”、“计算”、“运算”、“确定”、“建立”、“获得”、“识别”、“选择”、“生成”、“遍历”、“访问”等术语可指代诸如专用计算机和/或类似的专用计算和/或网络设备的特定装置的动作和/或过程。因此,在本说明书的上下文中,专用计算机和/或类似的专用计算和/或网络设备能够处理、操纵和/或变换专用计算机和/或类似的专用计算和/或网络设备的存储器、寄存器和/或其他存储设备、处理设备和/或显示设备内的通常为物理电子和/或磁量形式的信号和/或状态。在该特定公开的上下文中,如所提及的,术语“特定装置”因此包括通用计算和/或网络设备,诸如通用计算机,一旦被编程就诸如依据程序软件指令来执行特定功能。
在一些情况下,存储器设备的诸如从二进制一到二进制零的状态变化或反之亦然的操作可包括转换,诸如物理转换。对于特定类型的存储器设备,此类物理转换可包括制品到不同状态或事物的物理转换。例如但不限于,对于一些类型的存储器设备,状态变化可涉及聚积和/或存储电荷或者释放所存储的电荷。同样,在其他存储器设备中,状态变化可包括物理变化,诸如磁性取向的转换。同样,物理变化可包括分子结构的转换,诸如从结晶形式转变为无定形形式,或者反之亦然。在其他存储器设备中,物理状态的变化可涉及量子机械现象,诸如叠加、缠结等,这可涉及例如量子比特(量子位)。上述内容并非旨在穷举所有示例的列表,其中存储器设备中从二进制一到二进制零或反之亦然的状态变化可包括转换,诸如物理但非暂态的转换。相反,上述内容旨在作为说明性示例。
继续参考图6,处理器620可包括诸如数字电路的一个或多个电路,以执行计算步骤和/或过程的至少一部分。作为示例而非限制,处理器620可包括一个或多个处理器,诸如控制器、微处理器、微控制器、专用集成电路、数字信号处理器、可编程逻辑设备、现场可编程门阵列等或它们的任何组合。在各种具体实施和/或实施方案中,处理器620可通常基本上根据所获取的可执行计算机指令来执行信号处理,诸如操纵信号和/或状态,构建信号和/或状态等,其中,以此类方式生成的信号和/或状态将被传达和/或存储在存储器中。
图6还将设备604示出为包括可与输入/输出设备一起操作的部件632,例如,使得信号和/或状态可在设备之间适当地传达,诸如在设备604与输入设备和/或设备604与输出设备之间适当地传达。用户可利用输入设备,诸如计算机鼠标、触笔、轨迹球、键盘和/或能够接收用户动作和/或运动作为输入信号的任何其他类似设备。同样,用户可利用输出设备,诸如显示器、打印机等、和/或能够为用户提供信号和/或生成诸如视觉刺激、音频刺激和/或其他类似刺激的刺激的任何其他设备。
在前面的描述中,已经描述了要求保护的主题的各个方面。出于解释的目的,阐述了作为示例的细节,诸如量、***和/或构型。在其他情况下,省略和/或简化了熟知的特征,以避免导致要求保护的主题模糊。虽然本文已举例说明和/或描述了某些特征,但本领域的技术人员现在将想到许多修改形式、替代形式、变化形式和/或等同形式。因此,应当理解,所附权利要求旨在涵盖落入所要求保护的主题内的所有修改形式和/或变化形式。

Claims (21)

1.第一处理元件,所述第一处理元件包括:
通信设备,所述通信设备用于将消息传输到通信网络并且从所述通信网络接收消息;和
一个或多个处理器,所述一个或多个处理器用于:
确定待在分布式存储器操作中遍历的当前顶点,所述当前顶点能够经由所述第一处理元件访问,所述当前顶点在所述一个或多个处理器处获得的第一消息中被识别;以及
响应于在所述第一处理元件处的对所述当前顶点的遍历,发起通过被寻址到第二处理元件的通信设备的对第二消息的传输,所述第二处理元件请求对后续顶点的遍历,所述后续顶点能够经由所述第二处理元件访问。
2.根据权利要求1所述的第一处理元件,其中所述一个或多个处理器还用于:
发起通过所述通信设备向除发起所述分布式存储器操作的所述第一处理元件之外的处理元件的对确认消息的传输,所述确认消息指示对所述当前顶点的遍历完成。
3.根据权利要求1或权利要求2所述的第一处理元件,其中所述第一消息由除发起所述分布式存储器操作的处理元件之外的处理元件传输。
4.根据权利要求3所述的第一处理元件,其中响应于除发起所述分布式存储器操作的所述处理元件之外的所述处理元件处对顶点的遍历,由除发起所述分布式存储器操作的所述处理元件之外的所述处理元件传输所述第一消息。
5.根据任一前述权利要求所述的第一处理元件,其中所述一个或多个处理器还用于至少部分地基于所述第一消息中的索引值来确定所述当前顶点。
6.根据权利要求5所述的第一处理元件,其中所述第一处理元件还包括本地存储器,并且其中所述一个或多个处理器还用于:
至少部分地基于所述索引值来确定所述本地存储器中的本地地址;以及
根据所述本地地址访问所述本地存储器中的寻址阵列以获取表示所述后续顶点的索引的信号和/或状态。
7.根据权利要求6所述的第一处理元件,其中对所述当前顶点的遍历包括至少部分地基于表示所述本地存储器中存储的一个或多个数据项的信号和/或状态来执行图形搜索、图形搜索和更新或者图形减少操作中的至少一部分。
8.一种在第一处理元件处进行的方法,所述方法包括:
确定待在分布式存储器操作中遍历的当前顶点,所述当前顶点能够经由所述第一处理元件访问,所述当前顶点在所述第一处理元件处接收的第一消息中被识别;以及
响应于在所述第一处理元件处对所述当前顶点的遍历,传输被寻址到第二处理元件的第二消息,所述第二处理元件请求所述分布式存储器操作中对后续顶点的遍历,所述后续顶点能够经由所述第二处理元件访问。
9.根据权利要求8所述的方法,并且所述方法还包括:
通过所述通信设备向发起所述分布式存储器操作的处理元件传输确认消息,所述确认消息指示对所述当前顶点的遍历。
10.根据权利要求9所述的方法,其中所述第一消息由除发起所述分布式存储器操作的处理元件之外的处理元件传输。
11.根据权利要求10所述的方法,其中响应于由除发起所述分布式存储器操作的所述处理元件之外的所述处理元件完成对顶点的遍历,由除发起所述分布式存储器操作的所述处理元件之外的所述处理元件传输所述第一消息。
12.根据权利要求10或权利要求11所述的方法,并且所述方法还包括至少部分地基于所述第一消息中的索引值来确定所述当前顶点。
13.根据权利要求12所述的方法,其中所述第一处理元件还包括本地存储器,所述方法还包括:
至少部分地基于所述索引值来确定所述本地存储器中的本地地址;以及
根据所述本地地址访问所述本地存储器中的寻址阵列以获取表示所述后续顶点的索引的信号和/或状态。
14.根据权利要求13所述的方法,并且所述方法还包括至少部分地基于所述本地存储器中存储的一个或多个数据项来执行图形搜索、图形搜索和更新或者图形减少操作中的至少一部分。
15.一种制品,所述制品包括:
非暂态存储介质,所述非暂态存储介质包括在其上存储的计算机可读指令,所述计算机可读指令能够由处理元件的一个或多个处理器执行以:
确定待在分布式存储器操作中遍历的当前顶点,所述当前顶点能够经由所述第一处理元件访问,所述当前顶点在所述第一处理元件处接收的第一消息中被识别;以及
响应于在所述第一处理元件处对所述当前顶点的遍历,发起被寻址到第二处理元件的第二消息的传输,所述第二处理元件请求对后续顶点的遍历,所述后续顶点能够经由所述第二处理元件访问。
16.根据权利要求15所述的制品,其中所述指令还能够由所述一个或多个处理器执行以:
发起向发起所述分布式存储器操作的处理元件的对确认消息的传输,所述确认消息指示对所述当前顶点的遍历。
17.根据权利要求16所述的制品,其中所述第一消息将由除发起所述分布式存储器操作的处理元件之外的处理元件传输。
18.根据权利要求17所述的制品,其中响应于由除发起所述分布式存储器操作的所述处理元件之外的所述处理元件完成对顶点的遍历,将由除发起所述分布式存储器操作的所述处理元件之外的所述处理元件传输所述第一消息。
19.根据权利要求17或权利要求18所述的制品,其中所述指令还能够由所述一个或多个处理器执行以至少部分地基于所述第一消息中的索引值来确定所述当前顶点。
20.根据权利要求19所述的制品,其中所述第一处理元件还包括本地存储器,其中所述指令还能够由所述一个或多个处理器执行以:
至少部分地基于所述索引值来确定所述本地存储器中的本地地址;以及
根据所述本地地址访问所述本地存储器中的寻址阵列以获取表示所述后续顶点的索引的信号和/或状态。
21.根据权利要求20所述的制品,其中所述指令还能够由所述一个或多个处理器执行以至少部分地基于所述本地存储器中存储的一个或多个数据项来执行图形搜索、图形搜索和更新或者图形减少操作中的至少一部分。
CN201980076896.2A 2018-11-16 2019-11-08 分布式存储器***、设备和方法 Active CN113168397B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/194,000 2018-11-16
US16/194,000 US11082493B2 (en) 2018-11-16 2018-11-16 Distributed memory system, device and process
PCT/GB2019/053160 WO2020099837A1 (en) 2018-11-16 2019-11-08 Distributed memory system, device and process

Publications (2)

Publication Number Publication Date
CN113168397A true CN113168397A (zh) 2021-07-23
CN113168397B CN113168397B (zh) 2024-06-07

Family

ID=68582032

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980076896.2A Active CN113168397B (zh) 2018-11-16 2019-11-08 分布式存储器***、设备和方法

Country Status (3)

Country Link
US (1) US11082493B2 (zh)
CN (1) CN113168397B (zh)
WO (1) WO2020099837A1 (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1536491A (zh) * 1999-10-18 2004-10-13 国际商业机器公司 可寻址存储设备的地址卷接功能
CN103140829A (zh) * 2011-09-29 2013-06-05 英特尔公司 对高速缓存和/或插槽敏感的多处理器内核广度优先遍历
US20150088958A1 (en) * 2013-09-24 2015-03-26 Nec Corporation Information Processing System and Distributed Processing Method
US20170192884A1 (en) * 2015-12-30 2017-07-06 Roku, Inc. Providing rolling updates of distributed systems with a shared cache
CN107004013A (zh) * 2014-11-26 2017-08-01 微软技术许可有限责任公司 用于使用基于硬件的处理来提供分布式树遍历的***和方法
CN108694112A (zh) * 2017-03-29 2018-10-23 谷歌有限责任公司 分布式硬件跟踪

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5036459A (en) 1989-03-09 1991-07-30 U.S. Philips Corporation Multi-processor computer system with distributed memory and an interprocessor communication mechanism, and method for operating such mechanism
US9110692B2 (en) * 2001-03-22 2015-08-18 Frederick Master Method and apparatus for a compiler and related components for stream-based computations for a general-purpose, multiple-core system
US7818757B1 (en) * 2005-07-18 2010-10-19 Sybase, Inc. Method for guaranteeing processing of messages in a continuous processing system
US7716180B2 (en) * 2005-12-29 2010-05-11 Amazon Technologies, Inc. Distributed storage system with web services client interface
US7929526B2 (en) 2007-09-28 2011-04-19 Oracle America, Inc. Direct messaging in distributed memory systems
US8108467B2 (en) 2008-06-26 2012-01-31 International Business Machines Corporation Load balanced data processing performed on an application message transmitted between compute nodes of a parallel computer
US9996567B2 (en) * 2014-05-30 2018-06-12 Georgetown University Process and framework for facilitating data sharing using a distributed hypergraph
US8788556B2 (en) * 2011-05-12 2014-07-22 Microsoft Corporation Matrix computation framework
US20140297833A1 (en) * 2013-03-29 2014-10-02 Alcatel Lucent Systems And Methods For Self-Adaptive Distributed Systems
US10795672B2 (en) * 2018-10-31 2020-10-06 Oracle International Corporation Automatic generation of multi-source breadth-first search from high-level graph language for distributed graph processing systems

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1536491A (zh) * 1999-10-18 2004-10-13 国际商业机器公司 可寻址存储设备的地址卷接功能
CN103140829A (zh) * 2011-09-29 2013-06-05 英特尔公司 对高速缓存和/或插槽敏感的多处理器内核广度优先遍历
US20150088958A1 (en) * 2013-09-24 2015-03-26 Nec Corporation Information Processing System and Distributed Processing Method
CN107004013A (zh) * 2014-11-26 2017-08-01 微软技术许可有限责任公司 用于使用基于硬件的处理来提供分布式树遍历的***和方法
US20170192884A1 (en) * 2015-12-30 2017-07-06 Roku, Inc. Providing rolling updates of distributed systems with a shared cache
CN108694112A (zh) * 2017-03-29 2018-10-23 谷歌有限责任公司 分布式硬件跟踪

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
龚健虎: "引入深度遍历机制的分布式数据结构插值算法", 《微电子学与计算机》, no. 6, pages 157 - 160 *

Also Published As

Publication number Publication date
US20200162549A1 (en) 2020-05-21
CN113168397B (zh) 2024-06-07
US11082493B2 (en) 2021-08-03
WO2020099837A1 (en) 2020-05-22

Similar Documents

Publication Publication Date Title
CN111033531B (zh) 用于格式化神经网络参数的***和设备
CN111033530B (zh) 用于压缩神经网络参数的***和设备
US10102227B2 (en) Image-based faceted system and method
US10922318B2 (en) Systems and methods for caching queries and query results
US10965688B2 (en) Management of transactions in a distributed transaction system
US9690860B2 (en) Recommended query formulation
US20240214467A1 (en) Systems and/or methods to limit query handling
US20180324091A1 (en) In-network aggregation and distribution of conditional internet of things data subscription in information-centric networking
US10706081B2 (en) Quality of location-related content
US10984189B2 (en) Search engine content switch
US20160125081A1 (en) Web crawling
US11810158B2 (en) Weighted pseudo—random digital content selection
CN113168397B (zh) 分布式存储器***、设备和方法
US20230359667A1 (en) Infrastructure for queryable supergraph subset representations
US11874793B2 (en) Broadcast hub for multi-processor arrangement
US10685066B2 (en) On-line content sampling
US12032506B2 (en) Multi-processor arrangement with point of serialization for broadcast communications
US20240160508A1 (en) System, devices and/or processes for sharing machine learning model
US12001369B2 (en) Broadcast regions for multi-processor arrangement
US20220382226A1 (en) Device and/or method for approximate causality-preserving time series mixing for adaptive system training
US20240160452A1 (en) System, devices and/or processes for runtime linking of software component function implementations
US20210255981A1 (en) Method, system and device for electronic interconnect delay bound determination
GB2626075A (en) System, devices and/or processes for runtime linking of software component function implementations
US20180077216A1 (en) Method and/or system for credit report sharing

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant