If type == "O"
then the communication consists of an allreduce,
quadratic on the number of columns.
If type == "I"
then the communication conists of an allgather.
If type == "F"
then the communication is an allreduce, quadratic on
the number of columns.
If type == "M"
then the communication consists of an allgather.
If type == "2"
then the communication consists of the same as that of
an svd()
call: an allreduce, quadratic on the number of columns.