1, the matrix is big, and can be partitioned to several blocks;
2, started several threads to handle each block of matrix;
3, integrated all block matrices together."
You should be using PETSc+MPI to handle this distribution for you. Threading will not get around any memory limits for a single process that your system may have.