Skip to content

Commit f7ba34d

Browse files
committed
load balance
1 parent d4e7a68 commit f7ba34d

File tree

3 files changed

+15
-7
lines changed

3 files changed

+15
-7
lines changed

DESCRIPTION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ URL: http://r-pbd.org/
2525
BugReports: http://group.r-pbd.org/
2626
MailingList: Please send questions and comments regarding pbdR to
2727
28-
Packaged: 2013-07-06 20:13:52 UTC; snoweye
28+
Packaged: 2013-07-09 14:46:57 UTC; snoweye
2929
Author: Wei-Chen Chen [aut, cre],
3030
George Ostrouchov [aut]
3131
Maintainer: Wei-Chen Chen <[email protected]>

R/02_load_balance.r

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -82,20 +82,22 @@ load.balance <- function(X.spmd, bal.info = NULL, comm = .SPMD.CT$comm,
8282
stop("spmd.major = 1 or 2.")
8383
}
8484

85+
storage.mode(X.spmd) <- "double"
86+
8587
send.to <- as.integer(unique(bal.info$send$belong))
8688
if(length(send.to) > 0){
8789
if(spmd.major == 1){
8890
for(i in send.to){
8991
if(i != COMM.RANK){
9092
tmp <- matrix(X.spmd[bal.info$send$belong == i,], ncol = p)
91-
send(tmp, rank.dest = i, tag = COMM.RANK, comm = comm)
93+
spmd.isend.double(tmp, rank.dest = i, tag = COMM.RANK, comm = comm)
9294
}
9395
}
9496
} else{
9597
for(i in send.to){
9698
if(i != COMM.RANK){
9799
tmp <- matrix(X.spmd[, bal.info$send$belong == i], nrow = p)
98-
send(tmp, rank.dest = i, tag = COMM.RANK, comm = comm)
100+
spmd.isend.double(tmp, rank.dest = i, tag = COMM.RANK, comm = comm)
99101
}
100102
}
101103
}
@@ -107,8 +109,10 @@ load.balance <- function(X.spmd, bal.info = NULL, comm = .SPMD.CT$comm,
107109
if(spmd.major == 1){
108110
for(i in recv.from){
109111
if(i != COMM.RANK){
110-
tmp <- recv(rank.source = i, tag = i, comm = comm)
111-
dim(tmp) <- c(length(tmp) / p, p)
112+
total.row <- sum(bal.info$recv$org == i)
113+
tmp <- spmd.recv.double(double(total.row * p),
114+
rank.source = i, tag = i, comm = comm)
115+
dim(tmp) <- c(total.row, p)
112116
} else{
113117
tmp <- matrix(X.spmd[bal.info$send$belong == i,], ncol = p)
114118
}
@@ -117,8 +121,10 @@ load.balance <- function(X.spmd, bal.info = NULL, comm = .SPMD.CT$comm,
117121
} else{
118122
for(i in recv.from){
119123
if(i != COMM.RANK){
120-
tmp <- recv(rank.source = i, tag = i, comm = comm)
121-
dim(tmp) <- c(p, length(tmp) / p)
124+
total.column <- sum(bal.info$recv$org == i)
125+
tmp <- spmd.recv.double(double(total.column * p),
126+
rank.source = i, tag = i, comm = comm)
127+
dim(tmp) <- c(p, total.column)
122128
} else{
123129
tmp <- matrix(X.spmd[, bal.info$send$belong == i], nrow = p)
124130
}
@@ -137,6 +143,8 @@ load.balance <- function(X.spmd, bal.info = NULL, comm = .SPMD.CT$comm,
137143
}
138144
}
139145

146+
spmd.wait()
147+
140148
ret
141149
} # End of load.balance().
142150

inst/doc/pmclust-guide.pdf

0 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)