@@ -353,7 +353,6 @@ class GluonSubstrate : public galois::runtime::GlobalObject {
353
353
net.sendTagged (x, galois::runtime::evilPhase, std::move (b));
354
354
}
355
355
356
- std::vector<std::vector<size_t >> delta_masters (numHosts);
357
356
// receive the mirror nodes
358
357
for (unsigned x = 0 ; x < numHosts; ++x) {
359
358
if (x == id)
@@ -363,35 +362,21 @@ class GluonSubstrate : public galois::runtime::GlobalObject {
363
362
do {
364
363
p = net.recieveTagged (galois::runtime::evilPhase);
365
364
} while (!p);
366
-
367
- galois::runtime::gDeserialize (p->second , delta_masters[x] );
368
- for (size_t i = 0 ; i < delta_masters[x] .size (); ++i) {
369
- (*masterNodes)[x ].push_back (delta_masters[x] [i]);
365
+ std::vector< size_t > delta_masters;
366
+ galois::runtime::gDeserialize (p->second , delta_masters);
367
+ for (size_t i = 0 ; i < delta_masters.size (); ++i) {
368
+ (*masterNodes)[p-> first ].push_back (delta_masters[i]);
370
369
}
371
370
}
372
371
incrementEvilPhase ();
373
372
}
374
373
375
374
void addDeltaMirrors (std::vector<std::vector<size_t >>& delta_mirrors) {
376
- for (size_t i = 0 ; i < delta_mirrors.size (); ++i) {
377
- for (size_t j = 0 ; j < delta_mirrors[i].size (); ++j)
378
- std::cout << " mirror " << delta_mirrors[i][j] << " host " << id
379
- << " i " << i << " \n " ;
380
- }
381
- std::vector<uint32_t > curr_mirrors_sizes (numHosts);
382
375
std::vector<uint32_t > curr_masters_sizes (numHosts);
383
376
for (uint32_t h = 0 ; h < numHosts; ++h) {
384
- curr_mirrors_sizes[h] = (*mirrorNodes)[h].size ();
385
377
curr_masters_sizes[h] = (*masterNodes)[h].size ();
386
378
}
387
379
exchangeDeltaMirrors (delta_mirrors);
388
- for (unsigned x = 0 ; x < numHosts; ++x) {
389
- if (x == id)
390
- continue ;
391
- for (size_t i = 0 ; i < delta_mirrors[x].size (); ++i) {
392
- (*mirrorNodes)[x].push_back (delta_mirrors[x][i]);
393
- }
394
- }
395
380
396
381
// convert the global ids stored in the master/mirror nodes arrays to local
397
382
// ids
@@ -406,9 +391,9 @@ class GluonSubstrate : public galois::runtime::GlobalObject {
406
391
}
407
392
408
393
for (uint32_t h = 0 ; h < mirrorNodes->size (); ++h) {
394
+ size_t start = (*mirrorNodes)[h].size () - delta_mirrors[h].size ();
409
395
galois::do_all (
410
- galois::iterate (size_t {curr_mirrors_sizes[h]},
411
- (*mirrorNodes)[h].size ()),
396
+ galois::iterate (start, (*mirrorNodes)[h].size ()),
412
397
[&](size_t n) {
413
398
(*mirrorNodes)[h][n] = userGraph.getLID ((*mirrorNodes)[h][n]);
414
399
},
0 commit comments