BMF: Block matrix approach to factorization of large scale data
  Matrix Factorization (MF) on large scale matrices is computationally as well
as memory intensive task. Alternative convergence techniques are needed when
the size of the input matrix is higher than the available memory on a Central
Processing Unit (CPU) and Graphical Processing Unit (GPU). While alternating
least squares (ALS) convergence on CPU could take forever, loading all the
required matrices on to GPU memory may not be possible when the dimensions are
significantly higher. Hence we introduce a novel technique that is based on
considering the entire data into a block matrix and relies on factorization at
a block level.
