FAM-Graph is a semi-external graph processing system designed for the disaggregated FAM (Fabric Attached Memory) architecture.
FAM-Graph uses cmake
mkdir build
cd build
cmake ..
make
It is important to increase the amount of memory that you are allowed to pin, using ulimit.
FAM-Graph uses the RDMA connection manager which in turn uses IPoIB to bootstrap QP connections. We have configured our client interface with:
sudo ifconfig ib0 192.168.12.1 netmask 255.255.255.0 up
And our server with:
sudo ifconfig ib0 192.168.12.3 netmask 255.255.255.0 up
The following examples use the input MOLIERE_2016 (from the next section). Here are the commands run on both the client and server.
Run on a directed or symmetric directed graph.
Server Command
./main -m server -e /mnt/graph1/fam-graph/MOLIERE.adj -t 10
Client Command
./main -m client -k bfs -i /mnt/graphs/fam-graph/MOLIERE.idx -t 10 --start-vertex 1
Run on a directed graph.
Server Command
./main -m server -e /mnt/graph1/fam-graph/twitter7.adj -t 10
Client Command
./main -m client -k pagerank_delta -i /mnt/graphs/fam-graph/twitter7.idx -t 10
Run on a symmetric directed graph.
Server Command
./main -m server -e /mnt/graph1/fam-graph/MOLIERE.adj -t 10
Client Command
./main -m client -k CC -i /mnt/graphs/fam-graph/MOLIERE.idx -t 10
Run on a symmetric directed graph.
Server Command
./main -m server -e /mnt/graph1/fam-graph/MOLIERE.adj -t 10
Client Command
./main -m client -k kcore --kcore-k 200 -i /mnt/graphs/fam-graph/MOLIERE.idx -t 10
Run on a symmetric directed graph.
Server Command
./main -m server -e /mnt/graph1/fam-graph/MOLIERE.adj -t 10
Client Command
./main -m client -k MIS -i /mnt/graphs/fam-graph/MOLIERE.idx -t 10
The inputs used in the FAM-Graph paper are from https://law.di.unimi.it/ and https://sparse.tamu.edu/. The exact inputs used are: