Results」です。Graphs」という実世界の大規模グラフの性質に応じて、グラフを効率的に処理するための技法を提案した論文を簡単に紹介します。大規模グラフの性質グラフはオブジェクト間の関係性を表現するために広く使われているデータ構造です。表記されることが多くあります。ソーシャルネットワークなどの実世界のグラフは急速にサイズが拡大しています。様々なグラフエンジンが開発されてきました。プログラマにとって馴染みのあるグラフアルゴリズムと言えば、グラフ上の2点間の最短パスを求めるダイクストラのアルゴリズムが挙げられるかもしれません。実世界の多くの大規模グラフはべき乗分布に従います。べき乗分布に従う大規模グラフでは、ハブノードと呼ばれる非常に少ないノードが非常に高い次数を有しており、その他の多くのノードが低い次数を有しているという特徴があります。概ねべき乗分布に従っていることがわかります。大規模グラフ処理の課題グラフエンジンは、特定のグラフアルゴリズムのみを実行対象とはせず、様々なグラフアルゴリズムを処理することを目的とした汎用のソフトウェアフレームワークです。グラフエンジンは大きく以下の2ステップでグラフアルゴリズムを反復的に実行します。べき乗分布に従う大規模グラフに対して、既存のグラフエンジンでグラフアルゴリズムを実行すると以下の2つの現象が起きることを論文内で指摘しています。前半の反復で多くのノードは処理され後半の反復では少数のノードのみが処理されるある反復ではハブノードと非ハブノードが一緒に処理される上記2つの現象は、既存のグラフエンジンで性能低下を引き起こす可能性があります。よる線形スキャンの場合、前半の反復で多くのノードは処理されるため、後半はインジケータが疎になり非効率となります。グラフエンジンが採用している場合、ハブノードと非ハブノードを処理するスレッド間で処理完了までの時間に差が生まれ、大きな待機時間が発生してしまう問題があります。全体のアーキテクチャは以下です。大きく以下の4つのレイヤで構成されています。オブジェクトはエッジを有するノードを指します。ストレージ空間を管理。グラフデータはブロック単位に分割され格納される。メインメモリ空間を管理。構成され、これらは常にメモリ上にロードされる。グラフデータのブロックとオブジェクトの位置を管理。ストレージ内のオブジェクトとブロックを示す役割を持ち、常にメモリ上にロードされる。ノードやエッジの中間的な計算結果を保持する。本論文では、べき乗分布に従う大規模グラフの性質に応じて、グラフを効率的に処理するための技法が提案されています。Indicatorべき乗分布に従う大規模グラフに対して、既存のグラフエンジンでグラフアルゴリズムを実行すると、前半の反復で多くのノードは処理され後半の反復では少数のノードのみが処理されるという特徴がありました。この場合、疎なフラットインジケータの線形スキャンは非効率となります。複数のビットベクトルで構成され、上位レベルのビットベクトルが下位レベルのビットベクトルのスキャン範囲を決定します。高さの2つのパラメータがあり、範囲長が決まると高さも決定される関係にあります。