bugfix in allreduce

This commit is contained in:
tqchen 2014-11-23 11:31:34 -08:00
parent 115424826b
commit 69b2f31098
2 changed files with 11 additions and 4 deletions

View File

@ -258,8 +258,10 @@ class SyncManager {
size_t nfinished = size_down_in;
// can pass message down to childs
for (int i = 0; i < nlink; ++i) {
if (i != parent_index && selecter.CheckWrite(links[i].sock)) {
links[i].WriteFromArray(sendrecvbuf, size_down_in);
if (i != parent_index) {
if (selecter.CheckWrite(links[i].sock)) {
links[i].WriteFromArray(sendrecvbuf, size_down_in);
}
nfinished = std::min(links[i].size_write, nfinished);
}
}
@ -319,8 +321,10 @@ class SyncManager {
size_t nfinished = total_size;
// send data to all out-link
for (int i = 0; i < nlink; ++i) {
if (i != in_link && selecter.CheckWrite(links[i].sock)) {
links[i].WriteFromArray(sendrecvbuf_, size_in);
if (i != in_link) {
if (selecter.CheckWrite(links[i].sock)) {
links[i].WriteFromArray(sendrecvbuf_, size_in);
}
nfinished = std::min(nfinished, links[i].size_write);
}
}

View File

@ -113,8 +113,11 @@ int main(int argc, char *argv[]) {
std::string name = sync::GetProcessorName();
printf("[%d] start at %s\n", rank, name.c_str());
TestMax(n);
printf("[%d] TestMax pass\n", rank);
TestSum(n);
printf("[%d] TestSum pass\n", rank);
TestReducer(n);
printf("[%d] TestReducer pass\n", rank);
sync::Finalize();
printf("[%d] all check pass\n", rank);
return 0;