Solving Block Bidiagonal Systems on Distributed Memory Computers