  Graphs can be used to represent a wide variety of data belonging to different
domains. Graphs can capture the relationship among data in an efficient way,
and have been widely used. In recent times, with the advent of Big Data, there
has been a need to store and compute on large data sets efficiently. However,
considering the size of the data sets in question, finding optimal methods to
store and process the data has been a challenge. Therefore, in this paper, we
study different graph compression techniques and propose novel algorithms to do
the same. Specifically, given a graph G = (V, E), where V is the set of
vertices and E is the set of edges, and |V| = n, we propose techniques to
compress the adjacency matrix representation of the graph. Our algorithms are
based on finding patterns within the adjacency matrix data, and replacing the
common patterns with specific markers. All the techniques proposed here are
lossless compression of graphs. Based on the experimental results, it is
observed that our proposed techniques achieve almost 70% compression as
compared to adjacency matrix representation. The results show that large graphs
can be efficiently stored in smaller memory and exploit the parallel processing
power of compute nodes as well as efficiently transfer data between resources.
