JP2021118004A - グラフ計算の処理方法、装置、電子機器及び記憶媒体 - Google Patents

グラフ計算の処理方法、装置、電子機器及び記憶媒体 Download PDF

Info

Publication number
JP2021118004A
JP2021118004A JP2021008619A JP2021008619A JP2021118004A JP 2021118004 A JP2021118004 A JP 2021118004A JP 2021008619 A JP2021008619 A JP 2021008619A JP 2021008619 A JP2021008619 A JP 2021008619A JP 2021118004 A JP2021118004 A JP 2021118004A
Authority
JP
Japan
Prior art keywords
execution engine
node
processing unit
graph
interface function
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
JP2021008619A
Other languages
English (en)
Other versions
JP7316305B2 (ja
Inventor
ヤン ワン,
Yang Wang
ヤン ワン,
シュンチャオ ソン,
Xunchao Song
シュンチャオ ソン,
ペンチャン ユアン,
Pengcheng Yuan
ペンチャン ユアン,
イーフェイ ワン,
Yifei Wang
イーフェイ ワン,
ハイピン ヂャン,
Haiping Zhang
ハイピン ヂャン,
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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co 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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Publication of JP2021118004A publication Critical patent/JP2021118004A/ja
Application granted granted Critical
Publication of JP7316305B2 publication Critical patent/JP7316305B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/509Offload
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

【課題】固定した計算資源を利用してグラフ計算の並列処理を実現し、グラフ計算効率を向上させるグラフ計算の処理方法、装置、コンピュータ機器及び記憶媒体を提供する。【解決手段】CPUに、グラフ計算の実行をリードするための実行エンジンを配置し、GPUで実行される、グラフ計算におけるパラメータ処理又はフィードバックを行うためのインターフェース関数を配置し、グラフ計算を実行する時に、実行エンジンがグラフ計算インターフェースを介してインターフェース関数を呼び出し、GPUが複数の並列スレッドによってインターフェース関数を実行し、複数の並列したインターフェース関数が並列して複数のグラフノードを処理するために用いられ、複数の並列スレッドがインターフェース関数の実行結果を実行エンジンにフィードバックし、実行エンジンが実行結果に基づき、グラフ計算を完成させる。【選択図】図2

Description

本出願の実施例は、コンピュータ技術分野に関し、特に、グラフデータベース分野に関する。
オンライン分析処理(Online Analytical Processing、OLAP)は、データベース分析技術の1つである。グラフデータベースに対して全グラフ分析を行う場合は、OLAP技術を利用することができる。
従来のグラフデータベースシステムの計算資源は固定したものであり、グラフデータベースシステムを利用してオンライン分析処理を実現する場合に、大規模のデータベースに対しては、数百のサービスノードを計算資源として配置する必要があるため、この配置方式はコストが高い。しかし、コストを低減するようにグラフデータベースの計算資源を制限すると、グラフデータベースの計算速度は大幅に低下することになる。固定した計算資源をいかに利用して効率的なグラフ計算効率を行うかは、早急に解決すべき問題となっている。
本出願は、固定した計算資源を利用してグラフ計算の並列処理を実現し、グラフ計算効率を向上させることを実現するように、グラフ計算の処理方法、装置、コンピュータ機器及び記憶媒体を提供する。
第1の態様において、本出願の実施例は、グラフ計算の処理方法を提供し、前記グラフ計算の処理方法は、セントラルプロセッシングユニットCPUに、グラフ計算の実行をリードするための実行エンジンを配置するステップと、グラフィックスプロセッシングユニットGPUで実行される、グラフ計算におけるパラメータ処理またはフィードバックを行うためのインターフェース関数を配置するステップと、グラフ計算を実行する時に、実行エンジンがグラフ計算インターフェースを介してインターフェース関数を呼び出すステップと、グラフィックスプロセッシングユニットGPUが複数の並列スレッドによってインターフェース関数を実行するステップであって、複数の並列したインターフェース関数が並列して複数のグラフノードを処理するために用いられ、複数の並列スレッドがインターフェース関数の実行結果を実行エンジンにフィードバックするステップと、実行エンジンが実行結果に基づき、グラフ計算を完成させるステップと、を含む。
上記出願の実施例は、セントラルプロセッシングユニットCPUに実行エンジンを配置し、グラフィックスプロセッシングユニットGPUに実行エンジンにより利用可能なインターフェース関数を配置し、グラフ計算を実行する時に、セントラルプロセッシングユニットCPUにおける実行エンジンがグラフ計算インターフェースを介してインターフェース関数を呼び出し、グラフィックスプロセッシングユニットGPUが複数の並列スレッドによってインターフェース関数を実行し、複数の並列したインターフェース関数が並列して複数のグラフノードを処理するために用いられ、複数の並列スレッドがインターフェース関数の実行結果を実行エンジンにフィードバックし、実行エンジンがインターフェース関数によってフィードバックされた実行結果に基づき、グラフ計算を完成させることができる。従来では、グラフ処理を行うにはセントラルプロセッシングユニットCPUしか使えないため、計算資源が固定化され、並列処理効率が低下するということに対して、本出願の実施例は、グラフィックスプロセッシングユニットGPUによる高い同時並行性を利用し、セントラルプロセッシングユニットCPUにおける実行エンジンによりグラフ計算フローをリードすることができ、グラフ計算フローにおいて実行エンジンは、グラフィックスプロセッシングユニットGPUで実行されるインターフェース関数を呼び出し、全グラフ処理を行う時に、グラフに含まれる複数のノードはグラフィックスプロセッシングユニットGPUで並列処理を行うことができ、さらに固定した計算資源において、高い同時並行性のノード並列処理を実現し、グラフ計算効率を向上させる。
上記出願の一実施例において、実行エンジンがグラフ計算インターフェースを介してインターフェース関数を呼び出すステップが、実行エンジンが収集方向事前判断インターフェース関数gather_edgeを呼び出すことにより、入辺パラメータを取得し、実行エンジンが入辺パラメータに基づいてノードターゲットノードのプリセットパラメータの収束を行い、ノードターゲットノードの更新データを得て、実行エンジンがデータ変更アプリケーションインターフェース関数applyを呼び出すことにより、ノードターゲットノードのプリセットパラメータを更新する、という方式によって実施することができる。
上記出願の実施例では、グラフィックスプロセッシングユニットGPUで実行されるインターフェース関数を呼び出すことにより、複数のノードに対して同時並行的かつ迅速な処理を同時に行うことを実現し、処理効率を向上させることができる。
上記出願の一実施例において、実行エンジンがデータ変更アプリケーションインターフェース関数を呼び出すことにより、ノードターゲットノードのプリセットパラメータを更新した後、実行エンジンが発散方向事前判断インターフェース関数scatter_edgeを呼び出すことにより、ノードの出辺パラメータを取得するステップと、実行エンジンが発散インターフェース関数scatterを呼び出すことにより、更新データを出辺の相手側ノードに更新するステップと、をさらに含む。
上記出願の実施例では、PageRankシーン、LPAシーンなどのような、収束した後に発散することが必要なシーンに対して、ノードターゲットノードのプリセットパラメータの更新後に、ノードターゲットノードのプリセットパラメータをその出辺の相手側ノードに送信することにより、グラフにおけるノード情報を対称的なものとし、グラフ中の情報の正確性を向上させることができる。
上記出願の一実施例において、実行エンジンが入辺パラメータに基づいてノードターゲットノードのプリセットパラメータの収束を行い、ノードターゲットノードの更新データを得るステップが、実行エンジンがデータベースにアクセスすることにより、ノードターゲットノードの入辺隣接インデックスを取得するステップと、実行エンジンが入辺隣接インデックスによってノードターゲットノードのプリセットパラメータの収束を行い、ノードターゲットノードの更新データを得るステップと、を含む。
上記出願の実施例では、CPUがデータベースにアクセスすることにより隣接リストを取得し、データベースインターフェースを用いてデータベースからデータを迅速に取得し、データクエリ効率を向上させることができる。
上記出願の一実施例において、実行エンジンが入辺隣接インデックスによってノードターゲットノードのプリセットパラメータの収束を行い、ノードターゲットノードの更新データを得るステップが、実行エンジンが入辺隣接インデックスによって各入辺を取得するステップと、実行エンジンが集合インターフェース関数gatherを呼び出すことにより、各入辺の相手側ノードのプリセットパラメータを取得するステップと、実行エンジンがグラフィックスプロセッシングユニットGPUにおける累積インターフェース関数sumを呼び出して入辺の相手側ノードのプリセットパラメータを累積し、ノードターゲットノードの更新データを得るステップと、を含む。
上記出願の実施例では、グラフィックスプロセッシングユニットGPUで累積sum計算を行うことができる。グラフィックスプロセッシングユニットGPUがsum計算を行うことにより、同時並行的な複数のノードのプリセットパラメータの計算を実現し、処理効率を大幅に向上させることができる。また、セントラルプロセッシングユニットCPUの負荷を低減し、累積sum計算が容易であり、GPUの負荷への影響が小さい。
上記出願の一実施例において、実行エンジンがグラフ計算インターフェースを介してインターフェース関数を呼び出すステップが、実行エンジンがグラフィックスプロセッシングユニットGPUのメモリ空間のサイズによって処理対象のグラフデータをブロック化し、それぞれがグラフィックスプロセッシングユニットGPUのメモリ空間のサイズにマッチングする複数のノードブロックを取得するステップと、実行エンジンがグラフ計算インターフェースを介してインターフェース関数を呼び出し、複数のノードブロックに対してグラフ計算を順次行うステップと、を含む。
上記出願の実施例では、セントラルプロセッシングユニットCPUのメモリとグラフィックスプロセッシングユニットGPUのメモリはサイズがマッチングしないことで、グラフィックスプロセッシングユニットGPUはメモリが小さいために全てのグラフデータを処理することができない、という問題を解決することができる。セントラルプロセッシングユニットCPUにおける実行エンジンは、ブロック化後のノードブロックがGPUのメモリのサイズにマッチングするように、グラフィックスプロセッシングユニットGPUのメモリのサイズによって処理対象のデータをブロック化し、グラフィックスプロセッシングユニットGPUは、ブロック化後のノードブロックを一括して処理し、全ての処理対象のデータのグラフ計算を実行して、信頼性を向上させることができる。
第2の態様において、本出願の実施例は、グラフ計算の処理装置をさらに提供し、前記グラフ計算の処理装置は、セントラルプロセッシングユニットCPUに、グラフ計算の実行をリードするための実行エンジンを配置し、グラフィックスプロセッシングユニットGPUで実行される、グラフ計算におけるパラメータ処理またはフィードバックを行うためのインターフェース関数を配置するための配置モジュールと、グラフ計算を実行する時に、グラフ計算インターフェースを介してインターフェース関数を呼び出すための実行エンジンモジュールと、グラフィックスプロセッシングユニットGPUが複数の並列スレッドによってインターフェース関数を実行するためのインターフェース呼び出しモジュールであって、複数の並列したインターフェース関数が並列して複数のグラフノードを処理するために用いられ、複数の並列スレッドがインターフェース関数の実行結果を実行エンジンにフィードバックするインターフェース呼び出しモジュールと、を備え、実行エンジンモジュールが、さらに、実行結果に基づき、グラフ計算を完成させるために用いられる。
第3の態様において、本出願の実施例は、コンピュータ機器をさらに提供し、前記コンピュータ機器は、メモリと、セントラルプロセッシングユニットCPUと、グラフィックスプロセッシングユニットGPUと、メモリに記憶され、プロセッシングユニット及びグラフィックスプロセッシングユニットで実行可能なコンピュータプログラムとを含み、プロセッシングユニットはプログラムを実行する時に、第1の態様に示すようなグラフ計算の処理方法を実現する。
第4の態様において、本出願の実施例は、コンピュータ実行可能な命令を含む記憶媒体をさらに提供し、コンピュータ実行可能な命令は、コンピュータプロセッサにより実行される時に、第1の態様に示すようなグラフ計算の処理方法を実行するために用いられる。
上記の選択的な態様が有する他の効果については、以下、具体的な実施例に合わせて説明する。
図面は、本解決手段をよりよく理解するために使用され、本出願を限定するものではない。
本出願の第1の実施例によるアーキテクチャ模式図である。 本出願の第2の実施例によるフローチャートである。 本出願の第3の実施例によるフローチャートである。 本出願の第4の実施例によるフローチャートである。 本出願の第4の実施例による構造模式図である。 本出願の実施例におけるグラフ計算の処理方法を実現するための電子機器のブロック図である。
以下、図面に合わせて本出願の例示的な実施例を説明し、理解を容易にするためにその中には本出願の実施例の様々な詳細が含まれており、それらは単なる例示的なものと見なされるべきである。従って、当業者は、本出願の範囲及び精神から逸脱することなく、ここで説明される実施例に対して様々な変更と修正を行うことができると理解すべきである。同様に、明確かつ簡潔にするために、以下の説明では、周知の機能及び構造の説明を省略する。
[実施例1]
図1は、本出願の第1の実施例により提供されるグラフ計算の処理アーキテクチャであり、当該処理アーキテクチャは、電子機器でセントラルプロセッシングユニットCPUとグラフィックスプロセッシングユニットGPUとの共同処理により、高い同時並行性のグラフ計算を実現し、グラフ計算の処理効率を向上させるために用いられ、具体的には、ユーザプログラミングインターフェース010と、実行エンジン020と、グラフデータベースクエリインターフェース030と、グラフインデックス040とを備える。
ここで、実行エンジン020はセントラルプロセッシングユニットCPUで実行され、実行エンジン020は、グラフ計算の処理ステップを実行し、ユーザプログラミングインターフェース010を介してインターフェース関数を呼び出し、インターフェース関数はグラフィックスプロセッシングユニットGPUで実行され、実行エンジン020は、グラフにおけるノードデータを取得する必要がある場合に、グラフデータベースクエリインターフェース030を介して、データベース及びデータベースによって提供されるグラフインデックス040にアクセスする。
電子機器にセントラルプロセッシングユニットCPUとグラフィックスプロセッシングユニットGPUが備えられ、ここで、セントラルプロセッシングユニットにはグラフ計算の操作を行い、グラフ計算の処理プロセスをリードするための実行エンジン020が実行される。実行エンジン020はグラフ計算の処理プロセスにおいて、ユーザプログラミングインターフェース010を介してインターフェース関数を呼び出すことができる。
インターフェース関数は、ユーザが編集して得られたインターフェース関数であり、あるノード処理機能の実現に用いられ、インターフェース関数の機能は固定したものであり、ユーザ(例えば、プログラマーやデータベース管理者)は、自分のプログラミング習慣によってプログラミングしてインターフェース関数を得ることができ、インターフェース関数の機能は、インターフェース関数の予め定義された機能に合致すればよい。
インターフェース関数は、ユーザプログラミングインターフェース010を介して実行エンジン020の呼び出しを受ける。実行エンジン020は、グラフ計算のプロセスを実行する時に、パラメータの代入または呼び出しによりユーザプログラミングインターフェース010を利用することができる。インターフェース関数は呼び出されると、GPUで並列して実行され、複数のノードのグラフ計算を同時に処理する。インターフェース関数の所定の機能を完了すると、インターフェース関数は、ユーザプログラミングインターフェース010を介して結果データを実行エンジン020にフィードバックする。
グラフ計算プロセスにおいて、ノードターゲットノードのグラフインデックス040の取得に関わることがあるが、当該グラフインデックス040は、データベースに記憶されている場合が多い。上記処理アーキテクチャにおいて、実行エンジン020は、データベースクエリインターフェースを介してデータベースへのグラフインデックス040のクエリを開始し、ネイティブグラフデータベースのクエリエンジンによりグラフインデックス040を取得する。データベースは、それに記憶されているグラフインデックス040に基づき、ノードターゲットノードのインデックス情報を、データベースクエリインターフェースを介して実行エンジン020にフィードバックする。
本出願の実施例により提供されるグラフ計算の処理アーキテクチャでは、セントラルプロセッシングユニットCPUにより実行される実行エンジン020は、ユーザプログラミングインターフェース010を呼び出すことができ、ユーザプログラミングインターフェース010に対応するインターフェース関数は、グラフィックスプロセッシングユニットGPUで実行され、ノードターゲットノードの隣接インデックスなどのデータを取得する必要がある場合に、実行エンジン020は、データベースクエリインターフェースを介してデータベースにアクセスし、グラフデータベースにより提供されたグラフインデックス040へのアクセスにより、ノードターゲットノードの隣接ノードを取得することで、グラフ計算を完了する。上記処理アーキテクチャは、セントラルプロセッシングユニットCPUとグラフィックスプロセッシングユニットGPUとの間でデータサービスを効率的に提供しかつ高い同時並行性のデータ処理を実行するシステム枠組みを提供し、固定したコンピュータ資源において、グラフィックスプロセッシングユニットGPUにより高い同時並行性のノード処理を実現し、実行エンジン020によってグラフ計算フローをリードすることで、グラフ計算の処理効率を向上させ、同時並行的な処理能力を提供することを実現することができる。
[実施例2]
図2は、本出願の第2の実施例により提供されるグラフ計算の処理方法の模式図であり、当該方法は、グラフ計算の処理プロセス、特に、セントラルプロセッシングユニットCPUとグラフィックスプロセッシングユニットGPUを用いて共同でグラフ処理を行うプロセスに適用され、当該方法は、グラフ計算を実行する電子機器により実行可能であり、電子機器は、パソコン、サーバ、スマートフォン、タブレット型パソコンなどであってもよく、当該方法は、下記のステップ101〜ステップ105を含む。
ステップ101において、セントラルプロセッシングユニットCPUに、グラフ計算の実行をリードするための実行エンジンを配置する。
セントラルプロセッシングユニットにおいて、実行エンジンに利用されるためのプロセッサ資源を要求することができ、実行エンジンは、グラフ計算の計算フローをロードする。
ステップ102において、グラフィックスプロセッシングユニットGPUで実行される、グラフ計算におけるパラメータ処理またはフィードバックを行うためのインターフェース関数を配置する。
グラフィックスプロセッシングユニットにおいて、インターフェース関数は、実行エンジンの呼び出しを受けることができる。実行エンジがインターフェース関数を呼び出して実行させる時に、グラフィックスプロセッシングユニットGPUは、インターフェース関数を実行するように、資源を配分する。
ステップ101とステップ102の実行順番は、前後を問わないが、同時に実行してもよい。
ステップ103において、グラフ計算を実行する時に、実行エンジンはグラフ計算インターフェースを介してインターフェース関数を呼び出す。
グラフ計算は、様々なシーン、特に、Pagerank、Lpa、接続性などのようなオンライン分析処理OLAPにおける全グラフ計算シーンに適用される。ユーザグラフ計算(pagerank、lpaなど)全体は、実行エンジンにより駆動される。ただし、Pagerankは、ウェーブページ重み分析とも呼ばれ、ウェーブページライブラリ全体における全てのウェーブページに対して重み分析を行うために用いられる。Lpaは、コミュニティ発見とも呼ばれ、例えば、金融取引ライブラリにおいて詐欺容疑と認められた幾つかのアカウントを標識し、可能な詐欺グループを推算するなどに用いられる。説明を容易にするために、後続きの実施例は、PAgerankの実行プロセスの実現を例として説明する。
グラフ計算を実行する時に、実行エンジンは、ユーザのグラフデータベース操作に応答することによって、対応するグラフ計算を行う。実行エンジンがグラフ計算を実行する時に、グラフ計算プロセスに用いられるパラメータを入力パラメータとして、インターフェース関数を呼び出す。インターフェース関数は、グラフィックスプロセッシングユニットGPUで実行される。
ステップ104において、グラフィックスプロセッシングユニットGPUは複数の並列スレッドによってインターフェース関数を実行し、複数の並列したインターフェース関数は並列して複数のグラフノードを処理するために用いられ、複数の並列スレッドはインターフェース関数の実行結果を実行エンジンにフィードバックする。
グラフィックスプロセッシングユニットGPUにおける記憶空間が、全グラフ計算に含まれる計算対象の全てを収容することができる場合に、グラフィックスプロセッシングユニットは、並列スレッドにより各々のノードをそれぞれ処理する。各々のスレッドは、それぞれ処理するノードに対して同じインターフェース関数を実行し、対応するノードのフィードバックデータをフィードバックし、GPUにおける、並列したマルチスレッドによるグラフ計算の並列処理を実現する。ただし、グラフィックスプロセッシングユニットにおいて、各々のスレッドは、ストリームプロセッサにより実行される。GPUにおいて、ストリームプロセッサは、大規模で同時並行して実行することができる。
例示的に、例えば、全グラフは100段階を含み、GPUにおける記憶空間は100個のノードデータを記憶することができるとともに、GPUには、100個の並列スレッドをそれぞれ実行し、100個のノードを並列処理する100個のストリームプロセッサを配置することができ、各々のスレッドは、いずれも収集方向事前判断を実行し、各ノードの入辺パラメータをフィードバックする。
本出願の実施例では、グラフィックスプロセッシングユニットGPUは、一般に、機械学習及びグラフィック計算に適用される。データベース処理に適用されることが少ない。グラフィックスプロセッシングユニットGPUには、大量のストリームプロセッサが備えられ、それぞれのストリームプロセッサは、1つの減弱したセントラルプロセッシングユニットCPUに相当する。これらのストリームプロセッサは、大規模(数百万個)で同時並行して実行することができる。GPUにおけるマルチスレッドの並列のコストは、通常のセントラルプロセッシングユニットCPUの並列のコストよりも遥かに低い。ステップ105において、実行エンジンは実行結果に基づき、グラフ計算を完成させる。
上記出願の実施例により提供されるグラフ計算の処理方法は、セントラルプロセッシングユニットCPUに実行エンジンを配置し、グラフィックスプロセッシングユニットGPUに実行エンジンにより利用可能なインターフェース関数を配置し、グラフ計算を実行する時に、セントラルプロセッシングユニットCPUにおける実行エンジンがグラフ計算インターフェースを介してインターフェース関数を呼び出し、グラフィックスプロセッシングユニットGPUが複数の並列スレッドによってインターフェース関数を実行し、複数の並列したインターフェース関数が並列して複数のグラフノードを処理するために用いられ、複数の並列スレッドがインターフェース関数の実行結果を実行エンジンにフィードバックし、実行エンジンがインターフェース関数によってフィードバックされた実行結果に基づき、グラフ計算を完成させるようにすることができる。従来は、セントラルプロセッシングユニットCPUしか使えずグラフ処理を行うことで、計算資源が固定化され、並列処理効率が低下することに対して、本出願の実施例は、グラフィックスプロセッシングユニットGPUによる高い同時並行性を利用し、セントラルプロセッシングユニットCPUにおける実行エンジンによりグラフ計算フローをリードすることができ、グラフ計算フローにおいて実行エンジンは、グラフィックスプロセッシングユニットGPUで実行されるインターフェース関数を呼び出し、全グラフ処理を行う時に、グラフに含まれる複数のノードはグラフィックスプロセッシングユニットGPUで並列処理を行うことができ、さらに固定した計算資源において、高い同時並行性のノード並列処理を実現し、グラフ計算効率を向上させる。
さらに、セントラルプロセッシングユニットCPUのメモリ空間は大きくて、大量のグラフデータを読み取ることができる。グラフィックスプロセッシングユニットGPUのメモリ空間は、セントラルプロセッシングユニットCPUのメモリ空間よりも小さいので、セントラルプロセッシングユニットCPUにより1回読み取られて処理されたデータを一括してグラフィックスプロセッシングユニットに伝送して処理することができないことが発生し、直接伝送すれば誤りが生じやすく、データの紛失などのミスを引き起こすことになる。これに基づき、ステップ103において、実行エンジンが前記グラフ計算インターフェースを介してインターフェース関数を呼び出すステップは、実行エンジンがグラフィックスプロセッシングユニットGPUのメモリ空間のサイズによって処理対象のグラフデータをブロック化し、それぞれがグラフィックスプロセッシングユニットGPUのメモリ空間のサイズにマッチングする複数のノードブロックを取得し、実行エンジンがグラフ計算インターフェースを介してインターフェース関数を呼び出し、複数のノードブロックに対してグラフ計算を順次行うという方式により実施することができる。
セントラルプロセッシングユニットCPUは、グラフィックスプロセッシングユニットGPUのメモリ空間のサイズを予め取得する。現在処理可能なグラフデータのデータ量がグラフィックスプロセッシングユニットGPUのメモリ空間のサイズよりも大きいと、グラフィックスプロセッシングユニットのメモリ空間のサイズによってグラフデータをブロック化し、それぞれのデータ量がグラフィックスプロセッシングユニットGPUのメモリ空間のサイズと同じである複数のノードブロックを取得する。
例示的に、ブロック化(block by block)技術によりグラフデータを分割し、実行エンジンによりサイズを予測し、ノード(vertex)によってブロック化することができる。
本出願の実施例により提供されるグラフ計算の処理方法は、セントラルプロセッシングユニットCPUのメモリとグラフィックスプロセッシングユニットGPUのメモリはサイズがマッチングしないことで、グラフィックスプロセッシングユニットGPUはメモリが小さいために全てのグラフデータを処理できない、という問題を解決することができる。セントラルプロセッシングユニットCPUにおける実行エンジンは、ブロック化後のノードブロックがGPUのメモリのサイズにマッチングするように、グラフィックスプロセッシングユニットGPUのメモリのサイズによって処理対象のデータをブロック化し、グラフィックスプロセッシングユニットGPUは、ブロック化後のノードブロックを一括して処理し、全ての処理対象のデータのグラフ計算を実行して、信頼性を向上させることができる。
[実施例3]
図3は、本出願の第3の実施例により提供されるグラフ計算の処理方法の模式図であり、上記実施例についての更なる説明としては、下記のステップ201〜ステップ207を含む。
ステップ201において、セントラルプロセッシングユニットCPUに、グラフ計算の実行をリードするための実行エンジンを配置する。
ステップ202において、グラフィックスプロセッシングユニットGPUで実行される、グラフ計算におけるパラメータ処理またはフィードバックを行うためのインターフェース関数を配置する。
ステップ201とステップ202の実行順番は、前後を問わない。
ステップ203において、グラフ計算を実行する時に、実行エンジンは収集方向事前判断インターフェース関数gather_edgeを呼び出すことにより、入辺パラメータを取得する。
全グラフ処理を行う時に、本出願の実施例は、収束−適用−発散(GASと略称する)という処理構想を提供し、このような計算は、1つのほぼ汎用の計算フローを抽象化し、グラフ計算全体を、各々の点に同時に(同時並行して)作用させる3つのステップに分ける。ここで、収集(collect/gather)は、現在ノードの周辺のノードの情報を集め、対応するアルゴリズムの計算を行うことを含む。適用は、更新(update/apply)とも呼ばれ、第1のステップの計算結果を現在ノードに作用させることを含む。発散は、ブロードキャスト(signal)とも呼ばれ、周りのノードへ自分のデータをブロードキャストすることを含む。
収集方向事前判断インターフェース関数gather_edgeの入力パラメータは、ノード(Vertex)データであり、ノードデータは、グラフ中のあるノードを標識するために用いられる。実行エンジンは、ノード(Vertex)データをグラフィックスプロセッシングユニットGPUにコピーし、パラメータとしてGPUで実行されるgather_edgeに伝送する。
例示的に、実行エンジンは、収集方向事前判断インターフェース関数gather_edgeがノードAによってフィードバックしたパラメータを受信するように、現在処理されているノードAをパラメータとして収集方向事前判断インターフェース関数gather_edgeを呼び出す。
PageRankシーンでは、入辺によって隣接ノード重みを計算する必要があるので、収集方向事前判断インターフェース関数gather_edgeは、入辺パラメータ(IN)を返す。
ステップ204において、実行エンジンは入辺パラメータに基づいてノードターゲットノードのプリセットパラメータの収束を行い、ノードターゲットノードの更新データを得る。
実行エンジンは、ノードターゲットノードの入辺の相手側ノードを取得し、相手側ノードのプリセットパラメータによって累積などの処理を行い、ノードターゲットノードの更新データを得る。PageRankシーンでは、プリセットパラメータは、ノードの重みであってもよい。
ステップ205において、実行エンジンはデータ変更アプリケーションインターフェース関数applyを呼び出すことにより、ノードターゲットノードのプリセットパラメータを更新する。
ステップ204でノードターゲットノードの更新データを得た後、実行エンジンは、データ変更アプリケーションインターフェース関数applyを呼び出すことにより、ノードターゲットノードのプリセットパラメータの更新を実現する。この場合、更新データをパラメータとしてデータ変更アプリケーションインターフェース関数applyを呼び出す。
さらに、更新データと元データ(ノードターゲットノードの更新前のプリセットパラメータ値)の変動幅を検出することができる。かつ、この変動を保存しておく。後でこの幅に基づいて更なる分析などの操作を行うことができる。
ステップ206において、グラフィックスプロセッシングユニットGPUは複数の並列スレッドによってインターフェース関数を実行し、複数の並列したインターフェース関数は並列して複数のグラフノードを処理するために用いられ、複数の並列スレッドはインターフェース関数の実行結果を実行エンジンにフィードバックする。
なお、上記のステップでインターフェース関数を呼び出す時に、グラフィックスプロセッシングユニットGPUで複数のストリームプロセッサによりグラフデータにおける複数のノードに対して並列処理を行う。例えば、収集方向事前判断インターフェース関数gather_edge、データ変更アプリケーションインターフェース関数applyなどを呼び出すステップは、いずれもグラフィックスプロセッシングユニットGPUで並列方式によりインターフェース関数を実行することができる。
ステップ207において、実行エンジンは実行結果に基づき、グラフ計算を完成させる。
本発明の実施例により提供されるグラフ計算の処理方法は、グラフィックスプロセッシングユニットGPUで実行されるインターフェース関数を呼び出すことにより、複数のノードに対して同時並行的かつ迅速な処理を同時に行うことを実現し、処理効率を向上させることができる。ノードに対する収束と適用の並列処理が実現される。
さらに、幾つかの適用シーンでは、ノードに対する収束と適用の他に、更新後の更新データをノードターゲットノードの出辺の相手側に知らせ、発散を完成させることも必要である。これに基づき、ステップ205において、実行エンジンがデータ変更アプリケーションインターフェース関数を呼び出すことにより、ノードターゲットノードのプリセットパラメータを更新した後、さらに下記のステップ208とステップ209を含む。
ステップ208において、実行エンジンは発散方向事前判断インターフェース関数scatter_edgeを呼び出すことにより、ノードの出辺パラメータを取得する。
発散方向事前判断インターフェース関数scatter_edgeの入力パラメータは、ノード(Vertex)データであり、ノードデータは、グラフ中のあるノードを標識するために用いられる。実行エンジンは、ノード(Vertex)データをグラフィックスプロセッシングユニットGPUにコピーし、パラメータとしてGPUで実行される発散方向事前判断インターフェース関数scatter_edgeに伝送する。
例示的に、実行エンジンは、発散方向事前判断インターフェース関数scatter_edgeがノードAによってフィードバックしたパラメータ(OUT)を受信するように、現在処理されているノードAをパラメータとして発散方向事前判断インターフェース関数scatter_edgeを呼び出す。
ステップ205においてデータ変更アプリケーションインターフェース関数applyを利用してノードターゲットノードの更新データを更新した後に、データ変更アプリケーションインターフェース関数applyの保存している変動値を取得する。変動値が収束すると、NONEを返し、そうでないと、OUTを返す。PageRankシーンでは、ノードターゲットノードの更新データを更新した後、ノードターゲットノードの出辺の相手側ノード(out neighbor)にノードターゲットノードの更新データを知らせる。
ステップ209、実行エンジンが発散インターフェース関数scatterを呼び出すことにより、更新データを出辺の相手側ノードに更新する。
発散方向事前判断インターフェース関数scatter_edgeが発散パラメータOUTを返すと、実行エンジンは、ノードターゲットノードの更新データをその出辺の相手側ノードに更新するように、発散インターフェース関数scatterを呼び出す。
本発明の実施例により提供されるグラフ計算の処理方法は、PageRankシーン、LPAシーンなどのような、収束した後に発散することが必要なシーンに対して、ノードターゲットノードのプリセットパラメータの更新後に、ノードターゲットノードのプリセットパラメータをその出辺の相手側ノードに送信することができ、グラフにおけるノード情報を対称的なものとし、グラフ中の情報の正確性を向上させる。
[実施例4]
図4は、本出願の第4の実施例により提供されるグラフ計算の処理方法の模式図であり、上記実施例についての更なる説明としては、下記のステップ301〜ステップ308を含む。
ステップ301において、セントラルプロセッシングユニットCPUに、グラフ計算の実行をリードするための実行エンジンを配置する。
ステップ302において、グラフィックスプロセッシングユニットGPUで実行される、グラフ計算におけるパラメータ処理またはフィードバックを行うためのインターフェース関数を配置する。
ステップ301とステップ302の実行順番は、前後を問わない。
ステップ303において、グラフ計算を実行する時に、実行エンジンは収集方向事前判断インターフェース関数gather_edgeを呼び出すことにより、入辺パラメータを取得する。
ステップ304において、実行エンジンはデータベースにアクセスすることにより、ノードターゲットノードの入辺隣接インデックスを取得する。
実行エンジンは、収集方向事前判断インターフェース関数gather_edgeを呼び出すことによりフィードバックされた入辺パラメータを受信した時に、データベースアクセスインターフェースを介してデータベースにアクセスし、データベースから現在ノードの入辺隣接インデックスを呼び出す。
ステップ305において、実行エンジンは入辺隣接インデックスによってノードターゲットノードのプリセットパラメータの収束を行い、ノードターゲットノードの更新データを得る。
現在ノードが複数の入辺を有する場合に、現在ノードの入辺の相手側ノードのプリセットパラメータをそれぞれ取得する。プリセットパラメータは、例えば、重みパラメータである。全ての入辺の相手側ノードのプリセットパラメータを累計してノードターゲットノードのプリセットパラメータの収束を完成させる。
選択的に、ステップ305は、下記の1)〜3)により実施することができる。
1)実行エンジンは、入辺隣接インデックスによって各入辺を取得する。
2)実行エンジンは、集合インターフェース関数gatherを呼び出すことにより、各入辺の相手側ノードのプリセットパラメータを取得する。
集合インターフェース関数gatherは、実行エンジンに入辺の相手側ノードのプリセットパラメータをフィードバックするために用いられる。ノードターゲットノードが複数の入辺を有する場合に、集合インターフェース関数gatherを数回呼び出すことにより、各入辺の相手側ノードのプリセットパラメータを順次取得する。プリセットパラメータは、重みパラメータであってもよい。
3)実行エンジンは、グラフィックスプロセッシングユニットGPUにおける累積インターフェース関数sumを呼び出して入辺の相手側ノードのプリセットパラメータを累積し、ノードターゲットノードの更新データを得る。
並列処理プロセスにおいて、GPUに複数の並列したストリームプロセッサがあるが、この場合、GPUでストリームプロセッサによりそれに処理される現在ノードのプリセットパラメータを累積することができる。この場合、実行エンジンは、グラフィックスプロセッシングユニットGPUにおける累積インターフェース関数sumを呼び出すことにより、並列して複数のノードのプリセットパラメータを累積することを実現し、各々のノードターゲットノードの更新データをそれぞれ得る。
上記出願の実施例では、グラフィックスプロセッシングユニットGPUで累積sum計算を行うことができる。グラフィックスプロセッシングユニットGPUがsum計算を行うことにより、同時並行的な複数のノードのプリセットパラメータの計算を実現し、処理効率を大幅に向上させることができる。また、セントラルプロセッシングユニットCPUの負荷を低減し、累積sum計算が容易であり、GPUの負荷への影響が小さい。
ステップ306において、実行エンジンはデータ変更アプリケーションインターフェース関数applyを呼び出すことにより、ノードターゲットノードのプリセットパラメータを更新する。
ステップ307において、グラフィックスプロセッシングユニットGPUは複数の並列スレッドによってインターフェース関数を実行し、複数の並列したインターフェース関数は並列して複数のグラフノードを処理するために用いられ、複数の並列スレッドはインターフェース関数の実行結果を実行エンジンにフィードバックする。
ステップ308において、実行エンジンは実行結果に基づき、グラフ計算を完成させる。
上記出願の実施例では、CPUがデータベースにアクセスすることにより隣接リストを取得し、データベースインターフェースを用いてデータベースからデータを迅速に取得し、データクエリ効率を向上させることができる。
[実施例5]
図5は、本出願の第5の実施例により提供されるグラフ計算の処理装置400の構造模式図であり、当該装置は、グラフ計算の処理プロセス、特に、セントラルプロセッシングユニットCPUとグラフィックスプロセッシングユニットGPUを用いて共同でグラフ処理を行うプロセスに適用され、当該装置は、グラフ計算を実行する電子機器により実行可能であり、電子機器は、パソコン、サーバ、スマートフォン、タブレット型パソコンなどであってもよく、当該装置は、配置モジュール401と、実行エンジンモジュール402と、インターフェース呼び出しモジュール403と、を備え、配置モジュール401は、セントラルプロセッシングユニットCPUに、グラフ計算の実行をリードするための実行エンジンを配置し、グラフィックスプロセッシングユニットGPUで実行される、グラフ計算におけるパラメータ処理またはフィードバックを行うためのインターフェース関数を配置するために用いられ、実行エンジンモジュール402は、グラフ計算を実行する時に、グラフ計算インターフェースを介してインターフェース関数を呼び出すために用いられ、インターフェース呼び出しモジュール403は、グラフィックスプロセッシングユニットGPUが複数の並列スレッドによってインターフェース関数を実行することに用いられ、複数の並列したインターフェース関数は並列して複数のグラフノードを処理するために用いられ、複数の並列スレッドはインターフェース関数の実行結果を実行エンジンにフィードバックし、実行エンジンモジュール402は、さらに、実行結果に基づき、グラフ計算を完成させるために用いられる。
本出願の実施例により提供されるグラフ計算の処理装置は、配置モジュール401がセントラルプロセッシングユニットCPUに実行エンジンを配置し、グラフィックスプロセッシングユニットGPUに実行エンジンにより利用可能なインターフェース関数を配置することができ、グラフ計算を実行する時に、実行エンジンモジュール402がグラフ計算インターフェースを介してインターフェース関数を呼び出し、インターフェース呼び出しモジュール403がグラフィックスプロセッシングユニットGPUで複数の並列スレッドによってインターフェース関数を実行し、複数の並列したインターフェース関数が並列して複数のグラフノードを処理するために用いられ、複数の並列スレッドがインターフェース関数の実行結果を実行エンジンにフィードバックし、実行エンジンがインターフェース関数によってフィードバックされた実行結果に基づき、グラフ計算を完成させるようにすることができる。従来は、セントラルプロセッシングユニットCPUしか使えずグラフ処理を行うことで、計算資源が固定化され、並列処理効率が低下することに対して、本出願の実施例は、グラフィックスプロセッシングユニットGPUによる高い同時並行性を利用し、セントラルプロセッシングユニットCPUにおける実行エンジンによりグラフ計算フローをリードすることができ、グラフ計算フローにおいて実行エンジンは、グラフィックスプロセッシングユニットGPUで実行されるインターフェース関数を呼び出し、全グラフ処理を行う時に、グラフに含まれる複数のノードはグラフィックスプロセッシングユニットGPUで並列処理を行うことができ、さらに固定した計算資源において、高い同時並行性のノード並列処理を実現し、グラフ計算効率を向上させる。
上記実施例の一実現形態では、実行エンジンモジュール402は、実行エンジンが収集方向事前判断インターフェース関数gather_edgeを呼び出すことにより、入辺パラメータを取得し、実行エンジンが入辺パラメータに基づいてノードターゲットノードのプリセットパラメータの収束を行い、ノードターゲットノードの更新データを得て、実行エンジンがデータ変更アプリケーションインターフェース関数applyを呼び出すことにより、ノードターゲットノードのプリセットパラメータを更新するために用いられる。
上記出願の実施例では、グラフィックスプロセッシングユニットGPUで実行されるインターフェース関数を呼び出すことにより、複数のノードに対して同時並行的かつ迅速な処理を同時に行うことを実現し、処理効率を向上させることができる。
上記実施例の一実現形態では、実行エンジンモジュール402は、実行エンジンが発散方向事前判断インターフェース関数scatter_edgeを呼び出すことにより、ノードの出辺パラメータを取得し、実行エンジンが発散インターフェース関数scatterを呼び出すことにより、更新データを出辺の相手側ノードに更新するために用いられる。
上記出願の実施例では、PageRankシーン、LPAシーンなどのような、収束した後に発散することが必要なシーンに対して、ノードターゲットノードのプリセットパラメータの更新後に、ノードターゲットノードのプリセットパラメータをその出辺の相手側ノードに送信することにより、グラフにおけるノード情報を対称的なものとし、グラフ中の情報の正確性を向上させることができる。
上記実施例の一実現形態では、実行エンジンモジュール402は、実行エンジンがデータベースにアクセスすることにより、ノードターゲットノードの入辺隣接インデックスを取得し、実行エンジンが入辺隣接インデックスによってノードターゲットノードのプリセットパラメータの収束を行い、ノードターゲットノードの更新データを得るために用いられる。
上記出願の実施例では、CPUがデータベースにアクセスすることにより隣接リストを取得し、データベースインターフェースを用いてデータベースからデータを迅速に取得し、データクエリ効率を向上させることができる。
上記実施例の一実現形態では、実行エンジンモジュール402は、実行エンジンが入辺隣接インデックスによって各入辺を取得し、実行エンジンが集合インターフェース関数gatherを呼び出すことにより、各入辺の相手側ノードのプリセットパラメータを取得し、実行エンジンがグラフィックスプロセッシングユニットGPUにおける累積インターフェース関数sumを呼び出して入辺の相手側ノードのプリセットパラメータを累積し、ノードターゲットノードの更新データを得るために用いられる。
上記出願の実施例では、グラフィックスプロセッシングユニットGPUで累積sum計算を行うことができる。グラフィックスプロセッシングユニットGPUがsum計算を行うことにより、同時並行的な複数のノードのプリセットパラメータの計算を実現し、処理効率を大幅に向上させることができる。また、セントラルプロセッシングユニットCPUの負荷を低減し、累積sum計算が容易であり、GPUの負荷への影響が小さい。
上記実施例の一実現形態では、実行エンジンモジュール402は、実行エンジンがグラフィックスプロセッシングユニットGPUのメモリ空間のサイズによって処理対象のグラフデータをブロック化し、それぞれがグラフィックスプロセッシングユニットGPUのメモリ空間のサイズにマッチングする複数のノードブロックを取得し、実行エンジンがグラフ計算インターフェースを介してインターフェース関数を呼び出し、複数のノードブロックに対してグラフ計算を順次行うために用いられる。
上記出願の実施例では、セントラルプロセッシングユニットCPUのメモリとグラフィックスプロセッシングユニットGPUのメモリはサイズがマッチングしないことで、グラフィックスプロセッシングユニットGPUはメモリが小さいために全てのグラフデータを処理することができない、という問題を解決することができる。セントラルプロセッシングユニットCPUにおける実行エンジンは、ブロック化後のノードブロックがGPUのメモリのサイズにマッチングするように、グラフィックスプロセッシングユニットGPUのメモリのサイズによって処理対象のデータをブロック化し、グラフィックスプロセッシングユニットGPUは、ブロック化後のノードブロックを一括して処理し、全ての処理対象のデータのグラフ計算を実行して、信頼性を向上させることができる。
本出願の実施例によれば、本出願は、さらに、電子機器及び読み取り可能な記憶媒体を提供する。
図6に示すように、本出願の実施例によるグラフ計算の処理方法の電子機器のブロック図である。電子機器は、ラップトップコンピュータ、デスクトップコンピュータ、ワークステーション、パーソナルデジタルアシスタント、サーバ、ブレードサーバ、メインフレームコンピュータ、及び他の適切なコンピュータなど、様々な形態のデジタルコンピュータを表すことを目的とする。電子機器は、携帯情報端末、携帯電話、スマートフォン、ウェアラブルデバイス、及び他の類似するコンピューティングデバイスなど、様々な形態のモバイルデバイスを表すこともできる。本明細書で示されるコンポーネント、それらの接続と関係、及びそれらの機能は単なる例であり、本明細書で説明及び/または要求される本出願の実施を制限することを意図したものではない。
電子機器は、少なくとも1つのセントラルプロセッシングユニットCPU及びグラフィックスプロセッシングユニットGPUと、少なくとも1つのセントラルプロセッシングユニットCPUまたはグラフィックスプロセッシングユニットGPUと通信可能に接続されるメモリとを備え、ここで、メモリは、少なくとも1つのセントラルプロセッシングユニットCPUまたはグラフィックスプロセッシングユニットGPUにより実行可能な命令を記憶しており、命令は、少なくとも1つのプロセッサにより実行される。
図6に示すように、当該電子機器は、1つまたは複数のセントラルプロセッシングユニットCPU501及びグラフィックスプロセッシングユニットGPU502と、メモリ503と、各コンポーネントを接続するためのインターフェースであって高速インターフェース及び低速インターフェースを含むものとを備える。各コンポーネントは、異なるバスで相互に接続され、共通のマザーボードに取り付けるか、または必要に応じて他の方式で取り付けることができる。プロセッサは、電子機器内で実行される命令を処理することができ、当該命令は、外部入力/出力装置(例えば、インターフェースに結合されたディスプレイデバイスなど)にGUIのグラフィックス情報をディスプレイするためにメモリ内またはメモリ上に記憶されている命令を含む。他の実施形態では、必要に応じて、複数のプロセッサ及び/または複数のバスを、複数のメモリと一緒に使用することができる。同様に、複数の電子機器を接続することができ、各電子機器は、一部の必要な操作(例えば、サーバアレイ、ブレードサーバ群、またはマルチプロセッサシステムとする)を提供することができる。図6には、1つのセントラルプロセッシングユニットCPU501及び1つのグラフィックスプロセッシングユニットGPU502を例とする。
メモリ503は、本出願により提供される非一時的なコンピュータ読み取り可能な記憶媒体である。ただし、メモリには、少なくとも1つのプロセッサが本出願により提供されるグラフ計算の処理方法を実行するように、少なくとも1つのプロセッサにより実行可能な命令が記憶されている。本出願の非一時的なコンピュータ読み取り可能な記憶媒体は、コンピュータに本出願により提供されるグラフ計算の処理方法を実行させるためのコンピュータ命令を記憶する。
メモリ503は、非一時的なコンピュータ読み取り可能な記憶媒体として、本出願の実施例におけるグラフ計算の処理方法に対応するプログラム命令/モジュール(例えば、図6に示す配置モジュール401、実行エンジンモジュール402、及びインターフェース呼び出しモジュール403)のような、非一時的なソフトウェアプログラム、非一時的なコンピュータ実行可能なプログラム及びモジュールを記憶するために用いることができる。セントラルプロセッシングユニットCPU501またはグラフィックスプロセッシングユニットGPU502は、メモリ503に記憶されている非一時的なソフトウェアプログラム、命令及びモジュールを実行することにより、サーバの様々な機能アプリケーション及びデータ処理を実行し、すなわち、上記の方法の実施例におけるグラフ計算の処理方法を実現する。
メモリ503は、プログラムストレージエリアとデータストレージエリアとを備えてもよく、ここで、プログラムストレージエリアは、オペレーティングシステム、少なくとも1つの機能に必要なアプリケーションプログラムを記憶することができ、データストレージエリアは、グラフ計算の処理の電子機器の使用によって作成されたデータなどを記憶することができる。さらに、メモリ503は、高速ランダムアクセスメモリを備えてもよいし、少なくとも1つの磁気ディスクストレージデバイス、フラッシュメモリデバイス、または他の非一時的なソリッドステートストレージデバイスのような、非一時的なメモリを備えてもよい。いくつかの実施例では、メモリ503は、セントラルプロセッシングユニットプロセッサ501またはグラフィックスプロセッシングユニット502に対して遠隔に設置されたメモリを選択的に備え、これらの遠隔メモリは、ネットワークを介してグラフ計算の処理の電子機器に接続することができる。上記のネットワークの例は、インターネット、イントラネット、ローカルエリアネットワーク、移動体通信ネットワーク及びその組み合わせを含むが、これらに限定されない。
グラフ計算の処理方法の電子機器は、入力装置504と、出力装置505とをさらに備えてもよい。セントラルプロセッシングユニット501、グラフィックスプロセッシングユニット502、メモリ503、入力装置504、及び出力装置505は、バスまたは他の方式により接続することができ、図6では、バスを介して接続することを例とする。
入力装置504は、入力された数字または文字情報を受信し、グラフ計算の処理の電子機器のユーザ設定及び機能制御に関するキー信号入力を生成することができ、例えば、タッチスクリーン、キーパッド、マウス、トラックパッド、タッチパッド、ポインティングスティック、1つまたは複数のマウスボタン、トラックボール、ジョイスティックなどの入力装置が挙げられる。出力装置505は、ディスプレイデバイス、補助照明装置(例えば、LED)、及び触覚フィードバックデバイス(例えば、振動モータ)などを含むことができる。当該ディスプレイデバイスは、液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイ、及びプラズマディスプレイを含むことができるが、これらに限定されない。いくつかの実施形態で、ディスプレイデバイスは、タッチスクリーンであってもよい。
ここで説明されるシステムと技術の様々な実施形態は、デジタル電子回路システム、集積回路システム、特定用途向けASIC(特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、及び/またはそれらの組み合わせで実現することができる。これらの様々な実施形態は、1つまたは複数のコンピュータプログラムで実施されることを含んでもよく、当該1つまたは複数のコンピュータプログラムは、少なくとも1つのプログラマブルプロセッサを含むプログラム可能なシステムで実行及び/または解釈することができ、当該プログラマブルプロセッサは、専用または汎用のプログラマブルプロセッサであってもよく、ストレージシステム、少なくとも1つの入力装置、及び少なくとも1つの出力装置からデータ及び命令を受信し、データ及び命令を当該ストレージシステム、当該少なくとも1つの入力装置、及び当該少なくとも1つの出力装置に伝送することができる。
これらのコンピューティングプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、またはコードとも呼ばれる)は、プログラマブルプロセッサの機械命令を含み、高レベルのプロセス及び/または対象指向プログラミング言語、及び/またはアセンブリ/機械言語でこれらのコンピューティングプログラムを実施することができる。本明細書に使用されるような、「機械読み取り可能な媒体」及び「コンピュータ読み取り可能な媒体」という用語は、機械命令及び/またはデータをプログラマブルプロセッサに提供するための任意のコンピュータプログラム製品、機器、及び/または装置(例えば、磁気ディスク、光ディスク、メモリ、プログラマブルロジックデバイス(PLD))を指し、機械読み取り可能な信号である機械命令を受信する機械読み取り可能な媒体を含む。「機械読み取り可能な信号」という用語は、機械命令及び/またはデータをプログラマブルプロセッサに提供するための任意の信号を指す。
ユーザとのインタラクションを提供するために、ここで説明されているシステム及び技術をコンピュータ上で実施することができ、当該コンピュータは、ユーザに情報を表示するためのディスプレイ装置(例えば、CRT(陰極線管)またはLCD(液晶ディスプレイ)モニタ)と、キーボード及びポインティングデバイス(例えば、マウスまたはトラックボール)とを有し、ユーザは、当該キーボード及び当該ポインティングデバイスによって入力をコンピュータに提供することができる。他の種類の装置も、ユーザとのインタラクションを提供することができ、例えば、ユーザに提供されるフィードバックは、任意の形態のセンシングフィードバック(例えば、視覚フィードバック、聴覚フィードバック、または触覚フィードバック)であってもよく、任意の形態(音響入力と、音声入力と、触覚入力とを含む)でユーザからの入力を受信することができる。
ここで説明されるシステム及び技術は、バックエンドコンポーネントを含むコンピューティングシステム(例えば、データサーバとする)、またはミドルウェアコンポーネントを含むコンピューティングシステム(例えば、アプリケーションサーバ)、またはフロントエンドコンポーネントを含むコンピューティングシステム(例えば、グラフィカルユーザインターフェースまたはウェブブラウザを有するユーザコンピュータであり、ユーザは、当該グラフィカルユーザインターフェースまたは当該ウェブブラウザによってここで説明されるシステム及び技術の実施形態とインタラクションを行うことができる)、またはこのようなバックエンドコンポーネント、ミドルウェアコンポーネント、またはフロントエンドコンポーネントの任意の組み合わせを含むコンピューティングシステムで実施することができる。任意の形態または媒体のデジタルデータ通信(例えば、通信ネットワーク)によってシステムのコンポーネントを相互に接続することができる。通信ネットワークの例は、ローカルエリアネットワーク(LAN)と、ワイドエリアネットワーク(WAN)と、インターネットと、を含む。
コンピュータシステムは、クライアント側とサーバとを備えることができる。クライアント側とサーバは、一般に、互いに離れており、通常、通信ネットワークを介してインタラクションを行う。対応するコンピュータ上で実行され、かつ互いにクライアント側−サーバの関係を有するコンピュータプログラムによって、クライアント側とサーバとの関係を生成する。
本出願の実施例の技術案によれば、セントラルプロセッシングユニットCPUに実行エンジンを配置し、グラフィックスプロセッシングユニットGPUに実行エンジンにより利用可能なインターフェース関数を配置し、グラフ計算を実行する時に、セントラルプロセッシングユニットCPUにおける実行エンジンがグラフ計算インターフェースを介してインターフェース関数を呼び出し、グラフィックスプロセッシングユニットGPUが複数の並列スレッドによってインターフェース関数を実行し、複数の並列したインターフェース関数が並列して複数のグラフノードを処理するために用いられ、複数の並列スレッドがインターフェース関数の実行結果を実行エンジンにフィードバックし、実行エンジンがインターフェース関数によってフィードバックされた実行結果に基づき、グラフ計算を完成させるようにすることができる。従来は、セントラルプロセッシングユニットCPUしか使えずグラフ処理を行うことで、計算資源が固定化され、並列処理効率が低下することに対して、本出願の実施例は、グラフィックスプロセッシングユニットGPUによる高い同時並行性を利用し、セントラルプロセッシングユニットCPUにおける実行エンジンによりグラフ計算フローをリードすることができ、グラフ計算フローにおいて実行エンジンは、グラフィックスプロセッシングユニットGPUで実行されるインターフェース関数を呼び出し、全グラフ処理を行う時に、グラフに含まれる複数のノードはグラフィックスプロセッシングユニットGPUで並列処理を行うことができ、さらに固定した計算資源において、高い同時並行性のノード並列処理を実現し、グラフ計算効率を向上させる。
グラフィックスプロセッシングユニットGPUで実行されるインターフェース関数を呼び出すことにより、複数のノードに対して同時並行的かつ迅速な処理を同時に行うことを実現し、処理効率を向上させることができる。PageRankシーン、LPAシーンなどのような、収束した後に発散することが必要なシーンに対して、ノードターゲットノードのプリセットパラメータの更新後に、ノードターゲットノードのプリセットパラメータをその出辺の相手側ノードに送信することにより、グラフにおけるノード情報を対称的なものとし、グラフ中の情報の正確性を向上させることができる。
CPUがデータベースにアクセスすることにより隣接リストを取得し、データベースインターフェースを用いてデータベースからデータを迅速に取得し、データクエリ効率を向上させることができる。また、グラフィックスプロセッシングユニットGPUで累積sum計算を行うことができる。グラフィックスプロセッシングユニットGPUがsum計算を行うことにより、同時並行的な複数のノードのプリセットパラメータの計算を実現し、処理効率を大幅に向上させることができる。また、セントラルプロセッシングユニットCPUの負荷を低減し、累積sum計算が容易であり、GPUの負荷への影響が小さい。
また、セントラルプロセッシングユニットCPUのメモリとグラフィックスプロセッシングユニットGPUのメモリはサイズがマッチングしないことで、グラフィックスプロセッシングユニットGPUはメモリが小さいために全てのグラフデータを処理することができない、という問題を解決することができる。セントラルプロセッシングユニットCPUにおける実行エンジンは、ブロック化後のノードブロックがGPUのメモリのサイズにマッチングするように、グラフィックスプロセッシングユニットGPUのメモリのサイズによって処理対象のデータをブロック化し、グラフィックスプロセッシングユニットGPUは、ブロック化後のノードブロックを一括して処理し、全ての処理対象のデータのグラフ計算を実行して、信頼性を向上させることができる。
上記に示される様々な形態のフローを使用して、ステップを並べ替え、追加、または削除することができると理解すべきである。例えば、本出願に記載されている各ステップは、並列に実行されてもよいし、順次的に実行されてもよいし、異なる順序で実行されてもよいが、本出願で開示されている技術案の所望の結果を実現することができれば、本明細書では限定しない。
上記の具体的な実施形態は、本出願の保護範囲を制限するものではない。当業者は、設計要件と他の要因に基づいて、様々な修正、組み合わせ、サブコンビネーション、及び代替を行うことができると理解すべきである。本出願の精神と原則内で行われる任意の修正、同等の置換、及び改善などは、いずれも本出願の保護範囲内に含まれるべきである。

Claims (15)

  1. セントラルプロセッシングユニットCPUに、グラフ計算の実行をリードするための実行エンジンを配置するステップと、
    グラフィックスプロセッシングユニットGPUで実行される、グラフ計算におけるパラメータ処理またはフィードバックを行うためのインターフェース関数を配置するステップと、
    グラフ計算を実行する時に、前記実行エンジンが前記グラフ計算インターフェースを介してインターフェース関数を呼び出すステップと、
    前記グラフィックスプロセッシングユニットGPUが複数の並列スレッドによって前記インターフェース関数を実行するステップであって、複数の並列したインターフェース関数が並列して複数のグラフノードを処理するために用いられ、前記複数の並列スレッドが前記インターフェース関数の実行結果を前記実行エンジンにフィードバックするステップと、
    前記実行エンジンが前記実行結果に基づき、グラフ計算を完成させるステップと、
    を含むグラフ計算の処理方法。
  2. 前記実行エンジンが前記グラフ計算インターフェースを介してインターフェース関数を呼び出すステップが、
    実行エンジンが収集方向事前判断インターフェース関数gather_edgeを呼び出すことにより、入辺パラメータを取得するステップと、
    実行エンジンが前記入辺パラメータに基づいてノードターゲットノードのプリセットパラメータの収束を行い、前記ノードターゲットノードの更新データを得るステップと、
    実行エンジンがデータ変更アプリケーションインターフェース関数applyを呼び出すことにより、前記ノードターゲットノードのプリセットパラメータを更新するステップと、
    を含む請求項1に記載のグラフ計算の処理方法。
  3. 実行エンジンがデータ変更アプリケーションインターフェース関数を呼び出すことにより、前記ノードターゲットノードのプリセットパラメータを更新した後、
    実行エンジンが発散方向事前判断インターフェース関数scatter_edgeを呼び出すことにより、ノードの出辺パラメータを取得するステップと、
    実行エンジンが発散インターフェース関数scatterを呼び出すことにより、前記更新データを出辺の相手側ノードに更新するステップと、
    を含む請求項2に記載のグラフ計算の処理方法。
  4. 実行エンジンが前記入辺パラメータに基づいてノードターゲットノードのプリセットパラメータの収束を行い、前記ノードターゲットノードの更新データを得るステップが、
    実行エンジンがデータベースにアクセスすることにより、ノードターゲットノードの入辺隣接インデックスを取得するステップと、
    実行エンジンが前記入辺隣接インデックスによってノードターゲットノードのプリセットパラメータの収束を行い、前記ノードターゲットノードの更新データを得るステップと、
    を含む請求項2に記載のグラフ計算の処理方法。
  5. 実行エンジンが前記入辺隣接インデックスによってノードターゲットノードのプリセットパラメータの収束を行い、前記ノードターゲットノードの更新データを得るステップが、
    実行エンジンが前記入辺隣接インデックスによって各入辺を取得するステップと、
    実行エンジンが集合インターフェース関数gatherを呼び出すことにより、前記各入辺の相手側ノードのプリセットパラメータを取得するステップと、
    実行エンジンがグラフィックスプロセッシングユニットGPUにおける累積インターフェース関数sumを呼び出して前記入辺の相手側ノードのプリセットパラメータを累積し、前記ノードターゲットノードの更新データを得るステップと、
    を含む請求項4に記載のグラフ計算の処理方法。
  6. 前記実行エンジンが前記グラフ計算インターフェースを介してインターフェース関数を呼び出すステップが、
    前記実行エンジンがグラフィックスプロセッシングユニットGPUのメモリ空間のサイズによって処理対象のグラフデータをブロック化し、それぞれがグラフィックスプロセッシングユニットGPUのメモリ空間のサイズにマッチングする複数のノードブロックを取得するステップと、
    前記実行エンジンが前記グラフ計算インターフェースを介してインターフェース関数を呼び出し、前記複数のノードブロックに対してグラフ計算を順次行うステップと、
    を含む請求項1に記載のグラフ計算の処理方法。
  7. セントラルプロセッシングユニットCPUに、グラフ計算の実行をリードするための実行エンジンを配置し、グラフィックスプロセッシングユニットGPUで実行される、グラフ計算におけるパラメータ処理またはフィードバックを行うためのインターフェース関数を配置するための配置モジュールと、
    グラフ計算を実行する時に、前記グラフ計算インターフェースを介してインターフェース関数を呼び出すための実行エンジンモジュールと、
    前記グラフィックスプロセッシングユニットGPUが複数の並列スレッドによって前記インターフェース関数を実行するためのインターフェース呼び出しモジュールであって、複数の並列したインターフェース関数が並列して複数のグラフノードを処理するために用いられ、前記複数の並列スレッドが前記インターフェース関数の実行結果を前記実行エンジンにフィードバックするインターフェース呼び出しモジュールと、
    を備え、
    前記実行エンジンモジュールが、前記実行結果に基づき、グラフ計算を完成させるために用いられるグラフ計算の処理装置。
  8. 前記実行エンジンモジュールが、
    実行エンジンが収集方向事前判断インターフェース関数gather_edgeを呼び出すことにより、入辺パラメータを取得し、
    実行エンジンが前記入辺パラメータに基づいてノードターゲットノードのプリセットパラメータの収束を行い、前記ノードターゲットノードの更新データを得て、
    実行エンジンがデータ変更アプリケーションインターフェース関数applyを呼び出すことにより、前記ノードターゲットノードのプリセットパラメータを更新するために用いられる請求項7に記載のグラフ計算の処理装置。
  9. 前記実行エンジンモジュールが、
    実行エンジンが発散方向事前判断インターフェース関数scatter_edgeを呼び出すことにより、ノードの出辺パラメータを取得し、
    実行エンジンが発散インターフェース関数scatterを呼び出すことにより、前記更新データを出辺の相手側ノードに更新するために用いられる請求項8に記載のグラフ計算の処理装置。
  10. 前記実行エンジンモジュールが、
    実行エンジンがデータベースにアクセスすることにより、ノードターゲットノードの入辺隣接インデックスを取得し、
    実行エンジンが前記入辺隣接インデックスによってノードターゲットノードのプリセットパラメータの収束を行い、前記ノードターゲットノードの更新データを得るために用いられる請求項8に記載のグラフ計算の処理装置。
  11. 前記実行エンジンモジュールが、
    実行エンジンが前記入辺隣接インデックスによって各入辺を取得し、
    実行エンジンが集合インターフェース関数gatherを呼び出すことにより、前記各入辺の相手側ノードのプリセットパラメータを取得し、
    実行エンジンがグラフィックスプロセッシングユニットGPUにおける累積インターフェース関数sumを呼び出して前記入辺の相手側ノードのプリセットパラメータを累積し、前記ノードターゲットノードの更新データを得るために用いられる請求項10に記載のグラフ計算の処理装置。
  12. 前記実行エンジンモジュールが、
    前記実行エンジンがグラフィックスプロセッシングユニットGPUのメモリ空間のサイズによって処理対象のグラフデータをブロック化し、それぞれがグラフィックスプロセッシングユニットGPUのメモリ空間のサイズにマッチングする複数のノードブロックを取得し、
    前記実行エンジンが前記グラフ計算インターフェースを介してインターフェース関数を呼び出し、前記複数のノードブロックに対してグラフ計算を順次行うために用いられる請求項7に記載のグラフ計算の処理装置。
  13. 少なくとも1つのセントラルプロセッシングユニットCPU及びグラフィックスプロセッシングユニットGPUと、
    前記少なくとも1つのセントラルプロセッシングユニットCPUまたはグラフィックスプロセッシングユニットGPUと通信可能に接続されるメモリと、
    を備え、
    前記メモリが、前記少なくとも1つのセントラルプロセッシングユニットCPUまたはグラフィックスプロセッシングユニットGPUにより実行可能な命令を記憶しており、前記命令が、前記少なくとも1つのプロセッサにより実行される場合、前記少なくとも1つのセントラルプロセッシングユニットCPUまたはグラフィックスプロセッシングユニットGPUが請求項1から6のいずれか一項に記載の方法を実行可能な電子機器。
  14. コンピュータ命令が記憶されている非一時的なコンピュータ読み取り可能な記憶媒体であって、前記コンピュータ命令が、コンピュータに請求項1から6のいずれか一項に記載の方法を実行させるために用いられる非一時的なコンピュータ読み取り可能な記憶媒体。
  15. コンピュータ上で動作しているときに、請求項1から6のいずれか一項に記載の方法を前記コンピュータに実行させるコンピュータプログラム。
JP2021008619A 2020-01-22 2021-01-22 グラフ計算の処理方法、装置、電子機器及び記憶媒体 Active JP7316305B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202010074245.4A CN111292223B (zh) 2020-01-22 2020-01-22 图计算的处理方法、装置、电子设备及存储介质
CN202010074245.4 2020-01-22

Publications (2)

Publication Number Publication Date
JP2021118004A true JP2021118004A (ja) 2021-08-10
JP7316305B2 JP7316305B2 (ja) 2023-07-27

Family

ID=71030709

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021008619A Active JP7316305B2 (ja) 2020-01-22 2021-01-22 グラフ計算の処理方法、装置、電子機器及び記憶媒体

Country Status (5)

Country Link
US (1) US11941055B2 (ja)
EP (1) EP3855314A1 (ja)
JP (1) JP7316305B2 (ja)
KR (1) KR20210095083A (ja)
CN (1) CN111292223B (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111773690B (zh) * 2020-06-30 2021-11-09 完美世界(北京)软件科技发展有限公司 任务的处理方法和装置、存储介质、电子装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106126521A (zh) * 2016-06-06 2016-11-16 腾讯科技(深圳)有限公司 目标对象的社交账号挖掘方法及服务器
CN109345239A (zh) * 2018-09-10 2019-02-15 河海大学 一种层次重叠并行化社区发现方法
US10432639B1 (en) * 2017-05-04 2019-10-01 Amazon Technologies, Inc. Security management for graph analytics

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8286196B2 (en) * 2007-05-03 2012-10-09 Apple Inc. Parallel runtime execution on multiple processors
US8341611B2 (en) * 2007-04-11 2012-12-25 Apple Inc. Application interface on multiple processors
US8286198B2 (en) * 2008-06-06 2012-10-09 Apple Inc. Application programming interfaces for data parallel computing on multiple processors
CN102682138B (zh) * 2011-03-15 2015-03-11 深圳光启高等理工研究院 一种数据处理方法
FR2996037B1 (fr) * 2012-09-24 2015-05-29 Allegorithmic Moteur hybride pour processeur central et processeur graphique
CN103559016B (zh) * 2013-10-23 2016-09-07 江西理工大学 一种基于图形处理器并行计算的频繁子图挖掘方法
US9223551B1 (en) * 2014-07-22 2015-12-29 Here Global B.V. Rendergraph compilation method and use thereof for low-latency execution
CN104835110B (zh) * 2015-04-15 2017-12-22 华中科技大学 一种基于gpu的异步图数据处理系统
US10575007B2 (en) * 2016-04-12 2020-02-25 Microsoft Technology Licensing, Llc Efficient decoding and rendering of blocks in a graphics pipeline
US10325340B2 (en) * 2017-01-06 2019-06-18 Google Llc Executing computational graphs on graphics processing units
US10055808B1 (en) * 2017-01-23 2018-08-21 Kinetica Db, Inc. Distributed and parallelized visualization framework
US10657619B2 (en) * 2017-06-02 2020-05-19 Apple Inc. Task execution on a graphics processor using indirect argument buffers
US10540194B2 (en) * 2017-12-21 2020-01-21 International Business Machines Corporation Runtime GPU/CPU selection
US11270201B2 (en) * 2017-12-29 2022-03-08 Intel Corporation Communication optimizations for distributed machine learning
CN110275771B (zh) * 2018-03-15 2021-12-14 中国移动通信集团有限公司 一种业务处理方法、物联网计费基础设施系统及存储介质
US10628909B2 (en) * 2018-06-01 2020-04-21 Apple Inc. Graphics processing unit resource dependency viewer
GB2576572B (en) * 2018-08-24 2020-12-30 Advanced Risc Mach Ltd Processing of temporary-register-using instruction
CN109933429A (zh) * 2019-03-05 2019-06-25 北京达佳互联信息技术有限公司 数据处理方法、装置、电子设备及存储介质
AU2019449159A1 (en) * 2019-06-06 2022-02-03 Talleres Metalurgicos Crucianelli S.a CRUCIANELLI Agricultural tool unit for rapid conversion of a combination seed drill having a trailed or fine-grain seed dispenser to an on-demand supply system and vice versa
CN110659312B (zh) * 2019-08-01 2022-08-23 北京百度网讯科技有限公司 数据处理的方法、装置、设备和计算机存储介质
CN110517079B (zh) * 2019-08-23 2022-11-08 北京百度网讯科技有限公司 数据处理方法、装置、电子设备和存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106126521A (zh) * 2016-06-06 2016-11-16 腾讯科技(深圳)有限公司 目标对象的社交账号挖掘方法及服务器
US20180262883A1 (en) * 2016-06-06 2018-09-13 Tencent Technology (Shenzhen) Company Limited Method for mining social account of target object, server, and storage medium
JP2019500685A (ja) * 2016-06-06 2019-01-10 ▲騰▼▲訊▼科技(深▲セン▼)有限公司 ターゲットオブジェクトのソーシャルアカウントをマイニングするための方法、サーバ、および記憶媒体
US10432639B1 (en) * 2017-05-04 2019-10-01 Amazon Technologies, Inc. Security management for graph analytics
CN109345239A (zh) * 2018-09-10 2019-02-15 河海大学 一种层次重叠并行化社区发现方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
DIPANJAN SENGUPTA ET AL.: ""GraphReduce: Processing Large-Scale Graphs on Accelerator-Based Systems"", SC '15: PROCEEDINGS OF THE INTERNATIONAL CONFERENCE FOR HIGH PERFORMANCE COMPUTING,NETWORKING, STORA, JPN6021048351, 15 November 2015 (2015-11-15), pages 1 - 12, XP033050547, ISSN: 0004983469, DOI: 10.1145/2807591.2807655 *
SHUAI CHE: ""GasCL: A Vertex-Centric Graph Model for GPUs"", 2014 IEEE HIGH PERFORMANCE EXTREME COMPUTING CONFERENCE (HPEC), JPN6021048353, 9 September 2014 (2014-09-09), pages 1 - 6, XP032733456, ISSN: 0004983468, DOI: 10.1109/HPEC.2014.7040962 *

Also Published As

Publication number Publication date
US11941055B2 (en) 2024-03-26
KR20210095083A (ko) 2021-07-30
US20210224139A1 (en) 2021-07-22
JP7316305B2 (ja) 2023-07-27
CN111292223B (zh) 2023-07-25
CN111292223A (zh) 2020-06-16
EP3855314A1 (en) 2021-07-28

Similar Documents

Publication Publication Date Title
CN110806923B (zh) 一种区块链任务的并行处理方法、装置、电子设备和介质
US11445008B2 (en) Data processing methods, electronic devices, and storage media
EP3828701B1 (en) Mini app processing method, server, device and storage medium
CN111506401B (zh) 自动驾驶仿真任务调度方法、装置、电子设备及存储介质
CN111639027B (zh) 一种测试方法、装置及电子设备
JP2021174516A (ja) ナレッジグラフ構築方法、装置、電子機器、記憶媒体およびコンピュータプログラム
JP2021193606A (ja) 深層学習に基づく演算子の登録処理方法、装置及び電子機器
CN111783952A (zh) 配置方法、装置、系统、电子设备以及存储介质
CN111488492A (zh) 用于检索图数据库的方法和装置
CN112506854A (zh) 页面模板文件的存储和页面生成方法、装置、设备及介质
CN111782341A (zh) 用于管理集群的方法和装置
CN115454972A (zh) 一种数据处理方法、装置、设备及存储介质
EP3869377A1 (en) Method and apparatus for data processing based on smart contract, device and storage medium
CN111767442B (zh) 数据更新方法、装置、搜索服务器、终端及存储介质
JP2021118004A (ja) グラフ計算の処理方法、装置、電子機器及び記憶媒体
CN111767059B (zh) 深度学习模型的部署方法、装置、电子设备和存储介质
US20220309395A1 (en) Method and apparatus for adapting deep learning model, and electronic device
CN111506399B (zh) 任务迁移方法、装置、电子设备及存储介质
CN114721686A (zh) 配置数据更新方法、装置、电子设备和存储介质
CN114268558B (zh) 监控图的生成方法、装置、设备、介质
CN112148563B (zh) 信息生成方法、装置、设备以及存储介质
CN113568761B (zh) 数据处理方法、装置、设备及存储介质
CN111831319B (zh) 差异数据后验方法、装置、设备及存储介质
CN111782497B (zh) 测试方法、测试装置、电子设备和可读存储介质
CN111506420B (zh) 内存同步方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210122

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220304

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220726

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221026

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20230207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230606

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20230615

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230711

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230714

R150 Certificate of patent or registration of utility model

Ref document number: 7316305

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150