Già, in questo caso però credo che la cosa sia particolarmente semplice: dato che la matrice multidimensionale di fatto è "spalmata" e gestita come fosse una matrice monodimensionale, dovrebbe bastare spezzarla logicamente in più pezzi e richiamare la funzione che già esiste da thread separati (avendo cura ovviamente che i vari pezzi e i pezzi della matrice di output non si sovrappongano).