[R-es] Paralelizar el cálculo de distancias

Jesús Para Fernández j.para.fernandez en hotmail.com
Dom Ago 13 23:39:24 CEST 2017


Cierto, fallo porque puse en el bucle foreach un in en lugar de un =.

Lo que busco es ver si he paralelizado bien el proceso o no.... ¿Como puedo saber si lo he paralelizado bien?

Gracias!!!
Jesús


________________________________
De: Jorge I Velez <jorgeivanvelez en gmail.com>
Enviado: domingo, 13 de agosto de 2017 22:51
Para: Jesús Para Fernández
Cc: r-help-es en r-project.org
Asunto: Re: [R-es] Paralelizar el cálculo de distancias

Buenas tardes, Jesús.

Inicialmente no me funcionó tu código.  Al hacer algunas correcciones

foreach(j = 1:nrow(B),.combine="cbind")%:%
foreach(i = 1:nrow(A),.combine="c") %dopar%{
sqrt(sum((A[i,]-B[j,])^2))
}

obtuve una matriz de 10x10.  Es eso lo que buscas?

Saludos,
Jorge.-


2017-08-13 15:40 GMT-05:00 Jesús Para Fernández <j.para.fernandez en hotmail.com<mailto:j.para.fernandez en hotmail.com>>:
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]]


_______________________________________________
R-help-es mailing list
R-help-es en r-project.org<mailto:R-help-es en r-project.org>
https://stat.ethz.ch/mailman/listinfo/r-help-es


	[[alternative HTML version deleted]]



Más información sobre la lista de distribución R-help-es