Parallel algorithms for the transitive closure and the connected component problems

Parallel programs are presented that determine the transitive closure of a matrix using n<supscrpt>3</supscrpt> processors and connected components of an undirected graph using n<supscrpt>2</supscrpt> processors. In both cases, the desired results are obtained in time 0(log<supscrpt>2</supscrpt>n). It is assumed that the processors have access to common memory. Simultaneous access to the same location is permitted for fetch, but not store, instructions. The problem of determining the connected components of a graph using a parallel computer has recently appeared in the literature [1,2]. The result in [1] is based on finding the transitive closure of a matrix in time 0(log<supscrpt>2</supscrpt>n) which can be done using 0(n<supscrpt>3</supscrpt>) processors. We show that n<supscrpt>2</supscrpt> processors are sufficient to solve the connected component problem in time 0(log<supscrpt>2</supscrpt>n). We present algorithm CLOSURE that will find the transitive closure of Boolean matrix M [n by n] using n<supscrpt>3</supscrpt> processors [numbered P(0,0,0) through P(n−1 ,n−1, n−1)] each of which has local memory and each of which can access common array A [n by n].