We present a parallel software implementation for computing the singular va
lue decomposition (SVD) of general, banded or bidiagonal matrices. First, t
he matrix is reduced to bidiagonal form. This reduction can be rearranged i
n a way that allows heavy use of matrix-matrix operations. Then the singula
r values are computed in an iterative process. Finally the singular vectors
are computed independently. The methods are compared to the ScaLAPACK libr
ary with respect to accuracy, stability and performance on parallel compute
rs.