Simplify code
This commit is contained in:
17
src/dump.cpp
17
src/dump.cpp
@ -937,9 +937,6 @@ void Dump::balance()
|
|||||||
|
|
||||||
proc_new_offsets[0] = 0;
|
proc_new_offsets[0] = 0;
|
||||||
|
|
||||||
bigint start = proc_new_offsets[me];
|
|
||||||
bigint end = proc_new_offsets[me+1];
|
|
||||||
|
|
||||||
// reset buf size to largest of any post-balance nme values
|
// reset buf size to largest of any post-balance nme values
|
||||||
// this insures proc 0 can receive everyone's info
|
// this insures proc 0 can receive everyone's info
|
||||||
|
|
||||||
@ -956,18 +953,18 @@ void Dump::balance()
|
|||||||
|
|
||||||
int nswap = 0;
|
int nswap = 0;
|
||||||
MPI_Request *request = new MPI_Request[nprocs];
|
MPI_Request *request = new MPI_Request[nprocs];
|
||||||
int procstart = start;
|
int procstart = 0;
|
||||||
int iproc = me;
|
int iproc = me;
|
||||||
int iproc_prev;
|
int iproc_prev;
|
||||||
|
|
||||||
for (bigint i = start; i < end; i++) {
|
for (int i = 0; i < nme_balance; i++) {
|
||||||
|
|
||||||
// find which proc this atom belongs to
|
// find which proc this atom belongs to
|
||||||
|
|
||||||
while (i < proc_offsets[iproc]) iproc--;
|
while (proc_new_offsets[me] + i < proc_offsets[iproc]) iproc--;
|
||||||
while (i > proc_offsets[iproc+1]-1) iproc++;
|
while (proc_new_offsets[me] + i > proc_offsets[iproc+1]-1) iproc++;
|
||||||
|
|
||||||
if (i != start && (iproc != iproc_prev || i == end-1)) {
|
if (i != 0 && (iproc != iproc_prev || i == nme_balance - 1)) {
|
||||||
|
|
||||||
// finished with proc
|
// finished with proc
|
||||||
|
|
||||||
@ -980,7 +977,7 @@ void Dump::balance()
|
|||||||
// post receive for this proc
|
// post receive for this proc
|
||||||
|
|
||||||
if (iproc_prev != me)
|
if (iproc_prev != me)
|
||||||
MPI_Irecv(&buf_balance[(procstart - start)*size_one],procnrecv*size_one,MPI_DOUBLE,
|
MPI_Irecv(&buf_balance[procstart*size_one],procnrecv*size_one,MPI_DOUBLE,
|
||||||
procrecv,0,world,&request[nswap++]);
|
procrecv,0,world,&request[nswap++]);
|
||||||
|
|
||||||
procstart = i;
|
procstart = i;
|
||||||
@ -1018,7 +1015,7 @@ void Dump::balance()
|
|||||||
|
|
||||||
// sending to self, copy buffers
|
// sending to self, copy buffers
|
||||||
|
|
||||||
int offset_me = proc_offsets[me] - start;
|
int offset_me = proc_offsets[me] - proc_new_offsets[me];
|
||||||
memcpy(&buf_balance[(offset_me + procstart)*size_one],&buf[procstart*size_one],procnsend*size_one*sizeof(double));
|
memcpy(&buf_balance[(offset_me + procstart)*size_one],&buf[procstart*size_one],procnsend*size_one*sizeof(double));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user