Abstract
The need for speeding up data analytics increases inevitably due to the need for extracting valuable information from social media, data generated by smart devices with sensors, patterns of people’s communications over the web, items viewed and bought by global-scale customers, cloud applications, etc., all of which take part in the “Big Data.” Such kind of interaction data is very well represented as sparse graphs to enable the graph analytics, which requires efficient underlying kernels. The breadth-first search (BFS)-based traversal is a commonly used kernel in graph algorithms such as the betweenness centrality algorithm for centrality analysis. In this work, we focus on parallel BFS operations and propose hypergraph-based combinatorial models that aim at reducing cache misses and hence exploiting data locality during the parallel BFS operations. Our models are based on finding new vertex visit orders so that locality in accessing the data associated with vertices is exploited. Experiments on graphs arising in a wide range of applications show that our proposed models achieve on average 9% performance improvement in the CPU-based Ligra data analytics framework.
Keywords
1. Introduction
Centrality analysis is widely used for modeling various entities (such as virus infection spread, package delivery, and telecommunications) (Borgatti, 2005), identifying influencers in legitimate or criminal organizations (Morselli and Roy, 2008), spreading reach in a social network (Wu et al., 2012), root cause analysis (Milroy et al., 2019), intelligent transportation systems (Puzis et al., 2013), bibliometric analysis (Aliyev et al., 2019), and for extracting valuable information from various kinds of data such as hyperlink network (Nam et al., 2014), friendship network (Catanese et al., 2012), online sales data (Ding et al., 2018), and user interaction graphs (Ediger et al., 2010). Efficiently analyzing such data using graph theoretical algorithms constitutes an important class of problems in “Big Data” research. Many research efforts are made towards consolidating “Big Data” applications with the underlying high performance computing (HPC) platforms. For this purpose, plenty of graph analytics frameworks such as GraphMat (Sundaram et al., 2015), Ligra (Shun and Blelloch, 2013), and Gunrock (Wang et al., 2016) with novel data structures and parallelism strategies are proposed to become closer to the limits of the underlying hardware.
One of the principal optimizations in HPC is reducing data movement via exploiting data locality on multicore CPUs (Borkar and Chien, 2011; Unat et al., 2017; Akbudak and Aykanat, 2017; Zhang et al., 2018). In this work, we propose hypergraph-based models for finding a vertex visit order that enhances the data locality via decreasing cache misses during kernel graph operations. We focus on betweenness centrality (BC), which uses the breadth-first search (BFS)-based traversal algorithm as the kernel operation. Our proposed methods can also be applied to many other graph theoretical algorithms, which inherit the computation pattern of accessing neighbors of vertices during the execution of the algorithm. We validate the proposed methods on a wide range of graph data from various applications using the state-of-the-art graph processing framework Ligra (Shun and Blelloch 2013) for multicore CPUs.
The rest of the paper is organized as follows: Section 2 presents the related work on graph analytics frameworks and methods for exploiting data locality. Section 3 summarizes the novel contributions of this work. The background information about the BFS and BC algorithms are given in Section 4. Implementations of these two algorithms in Ligra and the data locality characteristics of the kernel operations in them are presented in Section 5. The proposed reordering methods are presented in Section 6. Section 7 presents an experimental analysis of the proposed and existing reordering methods. The paper is concluded and the future work is mentioned in Section 8.
2. Related work
2.1. Graph analytics on various architectures
There are several tools for graph processing on GPUs such as MapGraph, CuShua, and Gunrock. MapGraph (Fu et al., 2014) is a programming framework that provides a vertex-centric abstraction for graph algorithms. CuSha (Khorasani et al., 2014) is a vertex-centric framework based on novel data structures (G-Shards and concatenated windows) instead of the compressed sparse row (CSR) format commonly used for sparse matrices. Gunrock (Wang et al., 2016, 2017) provides frontier-centric framework for expressing graph algorithms. The frontiers in Gunrock can be either vertices or edges.
Galois, GraphChi, Grace, Ligra, GraphMat, and GraphIt are among the frameworks which target only shared-memory CPU architectures. Galois (Kulkarni et al., 2007, 2009; Nguyen et al., 2013a) is a C++ framework that provides a domain-specific language (DSL) for easily implementing graph operations in parallel. GraphChi (Kyrola et al., 2012) is an out-of-core framework based on parallel sliding windows method to process large graphs. Grace (Prabhakaran et al., 2012) combines several optimizations depending on the graph structure. One of the proposed optimizations in Grace to exploit data locality is a simple graph partitioning algorithm based on grouping adjacent vertices greedily to find a vertex reordering. Ligra (Shun and Blelloch, 2013) adopts the hybrid BFS approach proposed in Beamer et al. (2012) and provides BC, graph radii estimation, connected components (CC), PageRank, and single-source shortest paths (SSSP) algorithms. In the GraphMat (Sundaram et al., 2015) framework, graph algorithms are represented as sparse matrix operations such as sparse matrix-vector multiplication (SpMV). GraphIt (Zhang et al., 2018) is another framework providing a DSL for high performance graph operations.
For the distributed-memory systems, there are plenty of tools such as, Neo4j (2007), Combinatorial BLAS (Buluç and Gilbert, 2011), Apache Giraph (2012), GraphX (Xin et al., 2013), Parallel Boost Graph Library (PBGL) (Gregor and Lumsdaine, 2005), Pegasus (Kang et al., 2009, 2011) Pregel (Malewicz et al., 2010), Knowledge Discovery Toolbox (Lugowski et al., 2012), distributed GraphLab (Low et al., 2012), PowerGraph (Gonzalez et al. 2012), PowerGraph’s optimized version PowerLyra (Chen et al., 2015), and GraphPad (Anderson et al., 2016). Neo4j, Giraph, GraphX, and Pegasus use the MapReduce framework. GraphPad and Combinatorial BLAS use the Scalable Universal Matrix Multiplication Algorithm (SUMMA) (Van De Geijn and Watts, 1997) for the distributed sparse matrix-matrix multiplication (SpGEMM) operation. For the PowerGraph framework, methods for efficient processing of graphs with highly skewed power-law degree distributions are proposed in Li et al. (2018). In Buluc and Madduri (2013), hypergraph partitioning is used to minimize the total communication volume during distributed-memory BFS operations.
Except Grace (Prabhakaran et al., 2012), the above-mentioned works do not consider the structure of the underlying graph for exploiting data locality. In this work, we propose reordering methods that aim at finding a better vertex visit order for exploiting data locality during graph operations.
2.2. Data locality
Beamer et al. (2015b) compare performances of PageRank, BC, SSSP, and CC algorithms provided by Galois, Ligra, and GAP Benchmark Suit (Beamer et al., 2015a) in terms of various metrics such as utilized memory bandwidth, cache misses, and branch misprediction rates. It is mainly concluded that graph algorithms do not fully utilize the memory bandwidth of the system so decreasing memory access will improve the applications’ performance. Another conclusion in Beamer et al. (2015b) is the importance of exploiting intra-socket locality to decrease NUMA effects.
Gorder (2016) proposed in Wei et al. (2016) aims at exploiting data locality in CPU caches. The effectiveness of Gorder is tested on kernels such as depth-first search (DFS), BFS, CC, SSSP, PageRank, and graph diameter. Gorder is also commonly used (e.g., Lakhotia et al., 2017; Balaji and Lucia, 2018; Faldu et al., 2019; Lee et al., 2019; Wang et al., 2019; Faldu et al., 2020) to exploit locality. Arai et al. (2016) propose a parallel hierarchical bottom-up vertex matching algorithm named Rabbit (2016) to exploit locality through reordering tightly connected vertices in a graph nearby. Lakhotia et al. (2017) propose an ordering method similar to Gorder with a sorted list data structure instead of the max heap in the Gorder algorithm. Lakhotia et al. (2020) propose a method that assigns the vertices according to their indices into fixed-size bins and performs bin-wise updates instead of single-vertex updates during graph operations to decrease data movement. Barik et al. (2020) investigate the performance relation between locality-enhancing reordering methods and metrics defined on the graphs.
For PageRank computations, Beamer et al. (2017) propose to store blocks of contributions (propagations) to vertex weights in separate bins in the first phase and to accumulate these contributions in bins for updating vertex weights in the second phase. Since the output vertex weights are accessed in a blocked manner in the accumulation phase, spatial locality is exploited. Zhang et al. (2017) propose a block-based PageRank algorithm and reordering high out-degree vertices consecutively so that hot vertices reside in higher cache levels in order to exploit data locality. Balaji and Lucia, 2018 study graph reordering methods and compares them in terms of amortization of methods’ overheads.
Faldu et al. (2019) use Ligra to show effectiveness of their proposed reordering algorithm Degree-Based Grouping (DBG) (DBG, 2019). In DBG, there are a fixed number of bins for degree ranges. Vertices are assigned to these bins according to their degrees. Hence, each bin contains vertices with close degrees. The structure of the graph is not considered. Lee et al. (2019) propose Neighborhood Ordering (Norder) for disk-based systems. Norder starts from the node with the highest in-degree and reorders vertices according to a BFS traversal with a limited distance from the currently active node. Faldu et al. (2020) propose a cache management framework that protects frequently used high-degree vertices thrashed from the cache to provide temporal locality in accessing such vertices.
The methods proposed in this work use hypergraph models, which encapsulate the relation among multiple vertices, whereas the above-mentioned works consider either only degrees without the graph topology or only relations between vertex pairs. The superiority of modeling power of hypergraphs over graphs (Catalyurek and Aykanat, 1999) leads to better performance modeling of graph-based applications on today’s highly parallel CPUs with deep cache hierarchies.
3. Contributions
This work is the first step toward showing the applicability of hypergraphs to model irregular graph-based operations (e.g., BFS) for exploiting data locality in the deep cache hierarchy of a multicore CPU system. We first present the data locality characteristics of kernel graph operations. Then we propose two hypergraph-based models that enhance the data locality. As an empirical contribution, a wide set of graphs arising in various applications is tested on the Ligra framework to validate the effectiveness of the proposed hypergraph models and the reordering methods. These contributions are not limited to the BFS algorithm and the Ligra framework. Any other graph algorithms and graph analytics frameworks that have irregular accesses due to the graph structure will benefit from the proposed reordering methods depending on their locality characteristics.
4. Background
4.1. Breadth-first search (BFS)
Let G = (V, E) denote a directed unweighted graph, where V is the set of vertices and E is the set of directed edges. The text-book implementation of BFS is presented in Algorithm 1. The BFS algorithm starts traversing a given graph G from a given source vertex s ∈ V and explores direct neighbors of this vertex (lines 8–11). The set of active vertices that currently explore other vertices is called frontier, which is denoted as F. After all vertices in the current frontier are processed, the vertices in the next frontier, F next , become active and start exploring. The BFS algorithm computes and returns a tree rooted at s (line 13).
The BFS-based graph traversal is an important kernel operation (Mattson et al., 2013; Murphy et al., 2010) in Big Data analytics. Several graph analytics algorithms such as finding shortest paths (Cherkassky et al., 1996), k-hop reachability (Cheng et al., 2012), and BC (Brandes, 2001; Bader and Madduri, 2006; Madduri et al., 2009) iteratively use this kernel operation. According to the requirements of the top-level application, one or more arrays associated with vertices can be irregularly accessed at lines 9 and 10 of Algorithm 1 depending on the graph structure. This type of accesses might cause performance bottleneck due to lack of data locality.
4.2. Betweenness centrality (BC)
The BC algorithm (Freeman, 1977) is used to find vertices bridging one part of a graph to another. In other words, BC finds the number of shortest paths passing over a vertex. The centrality rankings of vertices relate to the power of controlling the communication in the network represented by the graph.
5. Data locality in graph computations
We select Ligra (Shun and Blelloch, 2013; Ligra, 2014) as a sample framework in this work since it is widely accepted as a state-of-the-art tool in many graph analytics works (Balaji and Lucia, 2018; Nguyen et al., 2013b; Wang et al., 2016, 2017, 2019; Zhang et al., 2017, 2018). In this section, we focus on the kernel operations in parallel BFS and BC implementations in Ligra and their performance characteristics in terms of data locality. The discussions in this section about data locality are also valid for other frameworks (Galois, Boost Graph Library, etc.) based on traversing vertices/edges according to neighborhood information.
Ligra provides both pull- and push-based schemes as also discussed in Besta et al. (2017). In the push-based scheme, out-neighbors of vertices are directly updated using writes, whereas in the pull-based scheme, in-neighbors are read. Another optimization technique in Ligra is that the framework selects the best edge mapping strategy (either sparse or dense) according to the active frontier. In Ligra, push-based scheme is used for sparse edge mapping and pull-based scheme is used for dense edge mapping. It is reported in Shun and Blelloch (2013) that the push-based scheme for dense edge mapping is more efficient for only PageRank and Bellman-Ford algorithms so the push-based scheme for dense edge mapping is omitted in the following discussions and analysis.
Algorithm 2 presents the mapping procedures provided by the Ligra framework for implementing efficient parallel graph algorithms. V
Both spatial and temporal localities are feasible at line 3 of V
Only spatial locality is feasible and inherently exploited in checking condition at line 4 of E The above-mentioned locality characteristics of the mapping functions rely on accessing arrays directly associated with vertices, that is, each associated array has the same index as the vertices have. Ligra uses the BC algorithm proposed by Brandes (2001). For the sake of completeness, we present the BFS and BC implementations in Ligra as Algorithms 3 and 4, respectively. Algorithm 4 presents the betweenness centrality computation from a single root vertex s. This algorithm is repeated for randomly selected vertices to compute approximate centrality rankings of all vertices. As seen in Algorithms 3 and 4, V S
6. Hypergraph-based reordering methods
We propose hypergraph models to encapsulate the temporal locality characteristic of E Vertices in the current frontier (colored in gray) explore unvisited vertices (colored in white) during an E
Let Hin = (X, N) be a hypergraph (Berge, 1984), where X is the set of vertices and N is the set of nets connecting vertices in X. In the proposed hypergraph model Hin, there exists a vertex x
i
∈ X for each vertex v
i
∈ V. During the execution of E The Hin model for clustering the vertices that access same out-neighbor vertices and its two-way partitioning. Hin represents the access pattern during the exploration of neighbor vertices as shown in Figure 1.
We also propose a dual hypergraph model Hout which has a vertex x
i
∈ X for each vertex v
i
∈ V and a net n
u
∈ N connected to pins (n
u
) = {x
j
∈ X: v
j
∈ Aout(u), u ∈ V} ∪ {x
u
}. A net in Hout represents the multiway relation between a vertex and its out-neighbors in G. Nets and vertices in Hout are assigned unit weights. Figure 3 displays the hypergraph model Hout for the E The Hout model for clustering the vertices that are accessed by same in-neighbor vertices and its two-way partitioning. Hout represents the access pattern during the exploration of neighbor vertices as shown in Figure 1.
Temporal and spatial localities can be achieved by clustering vertices in X that share common nets in N and reordering these vertices closely. The clustering of vertices in Hin aims at increasing temporal reuse of elements of arrays associated with the vertices within each frontier. If vertices connected by common nets are partitioned into smaller groups, spatial locality will be exploited by Hout. As a different point of view, in Hin, vertices that have common children are clustered so that locality in accessing these children is exploited. In Hout, vertices that have common parents are clustered so that locality in accessing these vertices is exploited.
A K-way partition The partitioning of Hin/Hout is decoded as a partial vertex ordering that exploits data locality during exploration of neighbor vertices during the E
Π(X) is also decoded as a partition
A brief insight on how the proposed models achieve locality can be given as follows: A net n u in Hin decodes the access to vertex v u by its in-neighbors. Given a partition of Hin, an internal net n u connected to the vertices in pins (n u ) corresponds to possible reuse of v u ∈ V while accessed by its in-neighbor vertices in {v j : x j ∈ pins (n u )\x u }. A cut net n u connected to the vertices in pins (n u ) corresponds to at most |parts (n u )| cache misses while accessing v u ∈ V by its in-neighbor vertices in {v j : x j ∈ pins (n u )\x u }. For example, in Figure 2, the internal net n4 represents the accesses to vertex v4 ∈ G by vertices v1 and v3 in the current frontier. Since x1 and x3 are in the same part, v1 and v3 have a higher possibility of being stored and hence processed closely as seen in Figure 4. As a result, an extra cache miss while accessing v4 will be avoided and the array elements corresponding to v4 will be reused. The cut net n7 represents the accesses to v7 by vertices v2 and v3. Since x2 and x3 are in separate parts, accessing v7 twice will probably cause one extra cache miss while accessed by v2 and v3.
A net n u in Hout decodes the access to out-neighbors of v u when v u starts exploring. Given a partition of Hout, an internal net n u connected to the vertices in pins (n u ) corresponds to possible reuse of cache lines containing out-neighbor vertices in {v j : x j ∈ pins (n u )\x u }. A cut net n u connected to the vertices in pins (n u ) corresponds to at most |parts (n u )| cache misses while accessing out-neighbor vertices in {v j : x j ∈ pins (n u )\x u }. For example, in Figure 3, the internal net n1 represents the accesses to vertices v4, v8 ∈ G in the current frontier. Since x4 and x8 are in the same part, v4 and v8 have higher possibility of being stored in the same cache line and reused as seen in Figure 4. As a result, an extra cache miss while processing v1 will be avoided. The cut net n2 represents the accesses to vertices v5, v6, v7, and v9. Since x7 is in a separate part, at least one extra cache miss will occur while accessing v7 and the cache line containing v5, v6, and v9 is expected to be reused.
The K value impacts the quality of clustering in terms of data locality. Temporal locality can be achieved by using relatively smaller K values. However, increasing the chance of spatial locality may require large enough K values so that the vertices in a part are clustered within a cache line. This fact can also be observed in Figure 4. Partitions on the vertices of the two hypergraph models Hin and Hout may be the same and achieve the common goal of exploiting both types of data locality.
7. Experiments
7.1. Data set
The properties of graphs and K values used in partitioning.
In Table 1, “Avg,” “Max,” “Std,” and “CV” columns, respectively, show the average, the maximum, the standard deviation, and the coefficient of variation of number of edges per vertex. “Max”, “Std,” and “CV” columns with “in” superscript denote the statistics for incoming edges, whereas columns with “out” superscript denote the statistics for outgoing edges. Max and Std values give insight when one graph is considered, whereas CV can be used for comparison of different graphs since CV is defined as the ratio of Std to Avg. The higher Std and CV values indicate higher amount of irregularity in the structure of the graphs (e.g., wiki-Talk), whereas the lower Max, Std, and CV values indicate a regular structure (e.g., amazon0302).
The last column of Table 1 shows the number of parts K used in partitioning for the proposed methods. The number of parts for each graph is calculated with respect to the L1 cache size of the system and the number of edges of the graph. K is set to 2000 as its maximum value to limit the partitioning time for large graphs.
7.2. System setup for experiments
Experiments are performed on a system with dual Intel Xeon E5-2680 v4 CPUs clocked at 2.4 GHz. Each CPU has 14 cores sharing 35 MB 20-way set associative L3 cache. Each core has 32 KB 8-way set associative L1 data and 256 KB 8-way set associative L2 cache. The system runs Ubuntu 16.04. All codes are compiled with GCC 5.4 using -O3 and -march=native flags for optimizing their performances.
7.3. Preprocessing framework
The multilevel hypergraph partitioner PaToH (Catalyurek and Aykanat, 1999) is used for partitioning the proposed hypergraph models Hin and Hout of each graph in the experimental data set. For each proposed method, PaToH is run three times with different seeds because it uses randomized algorithms. Among these three partitionings, the best-performing instance is selected for reporting. The proposed methods mainly aim at clustering vertices with similar connectivity and they do not depend on the part weights. Hence, the final imbalance ratio parameter of PaToH is set to 10%, which corresponds to a rather loose constraint on the weights of vertex parts.
The multilevel hypergraph partitioning framework in PaToH has coarsening, initial partitioning, and refinement phases. For the coarsening phase, Heavy Connectivity Clustering (PATOH_CRS_HCC) is used. This method tries to assign a vertex to the cluster with the maximum number of shared nets among the vertex and the cluster. PaToH is used with the set of parameters suggested for shorter partitioning times and acceptable partitioning quality. The connectivity-1 metric is used since the cost of extra cache misses is related to the number of parts that a net connects as described in Section 6.
7.4. Graph analytics framework
Ligra (Shun and Blelloch, 2013) is selected for graph analytics. OpenMP is used for enabling parallelism inside Ligra. The number of source vertices is set to 10% of the vertices in each graph, and the same set of randomly selected source vertices is used for all experiments involving a specific graph. The reported times are averaged over five runs of a centrality computation after a warm-up run. Arithmetic average is used throughout the paper. The number of threads employed by Ligra is set to the total number of hyperthreads, which is equal to twice number of physical cores on the system since shorter times are observed when hyperthreading is used.
7.5. Baseline methods
Gorder (2016), DBG (2019), the Reverse Cuthill-McKee (RCM) algorithm proposed by Cuthill and McKee (1969), nested dissection ordering (METIS ND) and graph partitioning (METIS GP) developed by Karypis and Kumar (1998), and the Rabbit (2016) ordering are used as the baseline methods for reordering the original graphs. RCM and METIS are commonly used for enhancing locality in graph applications (Wei et al. 2016; Barik et al. 2020). Gorder is used with the default value of 5 for the window size. DBG integrated into the Ligra framework is used with the default parameters. RCM in the Boost Library v1.58 is used for an efficient C++ implementation. The number of parts is set to 32 for METIS GP, and default parameters are used for METIS as suggested in Barik et al. (2020).
7.6. Performance analysis of kernel operations
For original ordering, BC time breakdown into kernel operations (i.e., V
In Table 2, any E
7.7. Performance impact of reordering methods
The performance effect of reordering methods in terms of run time of the centrality algorithm in Ligra. Run times are normalized w.r.t. the original (unordered) case. A lower value means shorter run time. The best results are shown in boldface. As seen in the table, on the overall average, the proposed methods respectively achieve 9% and 4% shorter centrality computation times w.r.t. the unordered case and the best existing method METIS GP.
The comparison of the first two columns of Table 3 confirms the superiority of DBG over Gorder. DBG, RCM, and METIS ND are considerably less performant than METIS GP, Rabbit, and the proposed methods. Regarding the overall average performance, the inferior performance of RCM and METIS ND can be attributed to the very loose relation between their optimization objectives and exploiting locality. RCM tries to minimize the bandwidth of the adjacency matrix, and METIS ND tries to find vertex separators between two parts of a graph. METIS GP and Rabbit achieve comparable performance. Rabbit has more best-performing instances, whereas METIS GP is slightly better than Rabbit in the overall average. When the hypergraph-based methods are compared against Rabbit and METIS GP, the proposed methods perform considerably better in the overall average and have significantly more best-performing instances. The proposed methods achieve up to 35% performance improvement with respect to the original order and 9% improvement on the overall average. Rabbit and METIS GP utilize vertex matching based on only two-way edge connectivity for finding clusters and coarsen the input graph. The proposed hypergraph-based methods are capable of modeling multi-way locality relations between vertices and hence perform better than the graph-based methods. These results confirm the importance of exploiting locality in accessing data structures during the execution of irregular graph applications.
Table 3 verifies the validity of the proposed methods for graphs with symmetricity values varying from 14% to 100%. For example, the proposed methods achieve 12% improvement for the analytics graph, which is an undirected graph. The proposed methods achieve 12% improvement for amazon0601, which has the highest symmetricity value of 56%, and 6% improvement for wiki-Talk, which has the lowest symmetricity value of 14%.
Table 3 also shows the success of the proposed methods on both regular and highly irregular graphs. The proposed methods achieve 6% improvement for germany_osm, which is a very regular graph with a CV value of zero. In case of irregular graphs, the proposed methods achieve 4% improvement for wiki-talk-temporal, which has the highest CV value of 61.4 and 6% improvement for wiki-Talk, which has the second-highest CV value of 47.6.
7.8. Reordering overhead
The reordering overhead of the existing and proposed methods. For each graph, the preprocessing time of each method is divided by the time of a single centrality computation L
7.9. Performance impact in end-to-end graph analytics application
The performance effect of reordering methods in terms of net speedup of the centrality algorithm in Ligra. The reordering times of the methods are included. The BC times for the original (unordered) graphs are used to obtain the speedup values. A larger value means a larger speedup so the larger the better. The best results are shown in boldface. As seen in the table, on the overall average, the proposed methods achieve 1.10x speedup for the application time including the reordering overhead w.r.t. the unordered case.
7.10. Another graph analytics algorithm: PageRank
The performance effect of reordering methods in terms of run time of the PageRank algorithm in Ligra. Run times are normalized w.r.t. the original (unordered) case. A lower value means shorter run time. The best results are shown in boldface. As seen in the table, the proposed methods achieve the best performance for 10 out of 17 graphs, and 2% faster than the best baseline method METIS GP on the overall average.
The performance gap between the proposed and the existing methods is less for the PageRank algorithm w.r.t. the BC algorithm when averages in Tables 3 and 6 are compared. This may be attributed to the fact that the BC algorithm randomly accesses four arrays associated with the vertices, as explained in Section 5. In contrast, the PageRank algorithm accesses only one array, which stores the scores. In conclusion, the superiority of the proposed methods is expected to be more significant as the total size of the storage associated with each vertex increases.
8. Conclusion and future work
We present the data locality characteristic of a common graph kernel operation, that is, breadth-first search (BFS) algorithm. Then, we propose hypergraph-based reordering methods for exploiting data locality in graph-based data analytics on CPUs with deep cache hierarchies. The proposed methods aim at clustering vertices that are accessed together so that the data elements associated with vertices that are accessed closely in time by the graph analytics framework remain in higher levels of the system’s memory hierarchy. The experiments on a system with Intel CPUs empirically verify the validity of the proposed methods on graphs arising in a wide range of applications.
An immediate follow-up work is exploiting locality during processing of large graphs requiring hundreds of giga bytes of memory within a node. Processing such large graphs necessitate novel parallel partitioning and clustering methods to hierarchically divide the graph into chunks to have better locality both within a chunk and among chunks close in the hierarchy. Such parallel methods will also significantly decrease the preprocessing overhead.
The achieved improvements on a single node also open up the path to distributed-memory frameworks. One future research direction is using a novel method to decrease inter-node communication and using the proposed methods to exploit data locality within a node. Graph analytics on GPUs is also important since there are many GPU-based frameworks. Hence, a future extension of this work will be exploiting data locality via decreasing the random accesses to vertices in order to efficiently utilize the resources of GPUs.
Footnotes
Declaration of conflicting interests
The author(s) declared no potential conflicts of interest with respect to the research, authorship, and/or publication of this article.
Funding
The author(s) received no financial support for the research, authorship, and/or publication of this article.
Author biography
Kadir Akbudak received a BS degree from Hacettepe University and MS and PhD degrees from Bilkent University, all in computer science. He received a TUBITAK scholarship during his graduate studies and awards of computing resources on Europe's large-scale Tier-0 parallel systems. He was a postdoctoral researcher in the Department of Computer Science at Bilkent University, Turkey. He actively took place in four European Commission-funded PRACE projects. Dr. Akbudak led the development of the Hierarchical Computations on Manycore Architectures (HiCMA) software toolkit as a postdoctoral researcher in the Extreme Computing Research Center at KAUST, Saudi Arabia. Then, he contributed to the Software for Linear Algebra Targeting Exascale (SLATE) project, funded by the US Department of Energy (DOE), as a research scientist in the Innovative Computing Laboratory at the University of Tennessee, Knoxville, TN, USA. Dr. Akbudak's research interests include machine learning, big data analytics, combinatorial scientific computing, performance optimizations for multicore architectures and hardware accelerators.
