Entendido Benilton. Muito obrigado.

Apenas mais uma dúvida:

Se fosse pra eu reescrever para que fosse executado de forma sequencial, por meio de "for", a seguinte instrução:

m3<-matrix(unlist(mclapply(1:nrow(grid), g)), nc=ncol(m2), byrow=TRUE) 

como ficaria? 
Pois via lapply, apenas retirando-se o mc do mclapply já funcionaria.


Segue código completo:

grid <- expand.grid(1:ncol(m2), 1:nrow(m1)) 

## versao 2 
g <- function(idx){ 
aux = 0 
X = m1[grid[idx, 2], ] 
Y = m2[, grid[idx, 1]] 
for (i in 1:length(X)) 
aux = aux + X[i]*Y[i] 
aux 

m3<-matrix(unlist(mclapply(1:nrow(grid), g, mc.cores=2)), nc=ncol(m2), byrow=TRUE) 

Obrigado, Junior.