Skip to content
Back to formatted view

Raw Message

Message-ID: <VI1PR0801MB20960C4BB8BE5E0D8675106ACC8F0@VI1PR0801MB2096.eurprd08.prod.outlook.com>
Date: 2017-08-13T20:40:50Z
From: Jesús Para Fernández
Subject: [R-es] Paralelizar el cálculo de distancias

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]]