Louvain Partition Demo - 2024.2 English - XD160

Vitis Libraries

Document ID
XD160
Release Date
2024-11-29
Version
2024.2 English

Terms and Conditions.

To get scalability for graph size and high-level concurrency for multi-compute units on multi boards, louvainPartition API with two partition methods is provided with no communication between subgraphs processing.

  • Linear louvain partition method, simply dived vertexes linearly, and saves the connection edges between subgraphs to ghost edges. So it is faster in low bandwidth graph but results more ghost edges.
  • BFS louvain partition method, dived vertexes by BFS method, and saves the connection edges between subgraphs to ghost edges. Its performance of modularity result keeps the same level between high and low bandwidth input graph.

Linear partition achieve on the high bandwidth and low bandwidth graph is shown in the following figure. Linear partition is not suitable for High bandwidth graph.

Figure 1 Linear partition achieve on the high bandwidth and low bandwidth graph

In this demo, two methods can be switched by corresponding commands. The comparison of input and output is shown in the following table.

Table 1 input and output comparison for different partition algorithms
  Linear paritition BFS partition
input graph *.mtx, *.txt … *.mtx, *.txt …
input commend -create_alveo_partitions -create_alveo_BFS_partitions
output project name.par.proj name.par.proj
output header file *.par.src, *.par.parlv *.par.src, *.par.parlv *.bfs.adj
output subgraph name_000.par … name_000.par …