[R-es] Paralelizar el cálculo de distancias
Jesús Para Fernández
j.para.fernandez en hotmail.com
Dom Ago 13 22:40:50 CEST 2017
Buenas,
Quiero ver si he paralelizado correctamente el proceso. Tengo dos dataframes, A y B y quiero calcular la distancia euclídea de todas las filas de A sobre todas las filas de B. Para ello he hecho lo siguiente
#cargo las librerias
library(foreach)
library(doParallel)
#establezco el numero de clusters, en mi caso 4, ya que el procesador tiene 4 nucleos
cl<-makeCluster(4)
registerDoParallel(cl)
#Creo los dataframes
A<-as.data.frame(matrix(rnorm(50,10,2),ncol=5,nrow=10))
B<-as.data.frame(matrix(rnorm(50,10,2),ncol=5,nrow=10))
#calculo las distancias
foreach(j in 1:nrow(B),.combine="cbind") %:%
foreach(i in 1:nrow(A),.combine="c") %dopar% {
sqrt(sum((A[i,]-B[j,])^2))
}
¿Cómo lo veis?
Un saludo
Jesús
[[alternative HTML version deleted]]
Más información sobre la lista de distribución R-help-es