forked from UTulsa-Research/ag_gen
Fixing Allocation of Nodes
This commit is contained in:
parent
7013ef8e2c
commit
fd4ffdfd10
BIN
build/ag_gen
BIN
build/ag_gen
Binary file not shown.
@ -372,7 +372,7 @@ AGGenInstance &AGGen::generate(bool batch_process, int batch_size, int numThrd,
|
||||
if(world.size() <= num_tasks)
|
||||
alloc = 1;
|
||||
else
|
||||
alloc = ceil((world.size()-num_tasks)/2);
|
||||
alloc = 1 + ceil((world.size()-num_tasks)/2);
|
||||
|
||||
//Task 2 Node Allocating
|
||||
int reduc_factor = 0;
|
||||
@ -384,7 +384,12 @@ AGGenInstance &AGGen::generate(bool batch_process, int batch_size, int numThrd,
|
||||
|
||||
//Create Communicators
|
||||
boost::mpi::communicator tcomm = world.split(world.rank() > 0 && world.rank() <= alloc);
|
||||
boost::mpi::communicator ttwo_comm = world.split(world.rank() >= send_check(world, alloc) && world.rank() <= (2*two_alloc));
|
||||
boost::mpi::communicator ttwo_comm;
|
||||
if(world.size() == 2){
|
||||
ttwo_comm = world.split(world.rank() == send_check(world, alloc) && world.rank() <= (2*two_alloc));
|
||||
}
|
||||
else
|
||||
ttwo_comm = world.split(world.rank() >= send_check(world, alloc) && world.rank() <= (2*two_alloc));
|
||||
|
||||
while (!localFrontier.empty() || !unex_empty() || world.rank() > 0){//while starts
|
||||
|
||||
@ -448,7 +453,7 @@ AGGenInstance &AGGen::generate(bool batch_process, int batch_size, int numThrd,
|
||||
|
||||
//Execute Task 2
|
||||
//if(world.rank() == send_check(world, alloc) && world.rank() <= send_check(world, 2*two_alloc))
|
||||
//Edge case: 2 nodes
|
||||
//Edge case: 2 nodes: This prevents node 1 from accessing the execution of task 2
|
||||
if((world.size() == 2 && world.rank() == 0) || world.size() > 2)
|
||||
{
|
||||
if(world.rank() >= send_check(world, alloc) && world.rank() <= (2*two_alloc))
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user