Can partition the matrix so each thread will have roughly equal work, although this needs improving
Implement better partitions
Better partions of matrix
commit before branch
Work allocation range stored in struct
Merged testing with master