-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Global-local grid indexing #84
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just wanted to point out a few places so that everyone can take a quick look
@@ -38,15 +38,14 @@ module m_tdsops | |||
end interface tdsops_t | |||
|
|||
type :: dirps_t |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We may want to move dirps_t
to domain.f90
file instead, what do you think?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think better to leave this for now because #85 will make some changes here.
src/tdsops.f90
Outdated
!! This class contains the preprocessed tridiagonal solvers for operating | ||
!! in each coordinate direction. | ||
class(tdsops_t), allocatable :: der1st, der1st_sym, der2nd, der2nd_sym, & | ||
stagder_v2p, stagder_p2v, interpl_v2p, interpl_p2v | ||
integer :: nrank, nproc, pnext, pprev, n, n_blocks, dir |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The nrank
and nproc
here meant to be the directional nrank
and directional nproc
, but I see that it might be confusing. Maybe its better renaming them nrank_dir
, nproc_dir
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think the suggested change is good
tests/omp/test_omp_transeq.f90
Outdated
xdirps%nproc = nproc | ||
ydirps%nproc = nproc | ||
zdirps%nproc = nproc | ||
|
||
call set_pprev_pnext( & | ||
xdirps%pprev, xdirps%pnext, & | ||
ydirps%pprev, ydirps%pnext, & | ||
zdirps%pprev, zdirps%pnext, & | ||
xdirps%nproc, ydirps%nproc, zdirps%nproc, nrank & | ||
) | ||
ydirps%nproc = 1 | ||
zdirps%nproc = 1 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For example, I see that the global nproc
obtained from MPI is assigned to all local nproc
s here, but actually nproc = xdirps%nproc*ydirps%nproc*zdirps%nproc
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Would this be better done by init_dirps
and init_globs
? I've outlined these in the PETSc branch, based on this code, but we could cherry pick and ensure there's a single correct implementation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, I think its better. Right now we repeat this in the tests but should move all this to an initialisation function ideally. #85 is probably a better place to work this out though, its already simplifying relevant bits.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, I think its better. Right now we repeat this in the tests but should move all this to an initialisation function ideally. #85 is probably a better place to work this out though, its already simplifying relevant bits.
@JamieJQuinn, |
Merging so that #85 can be rebased and I can continue with cuFFTMp implementation. |
Implements support for inidivudal ranks in a 3D decomposition setting to figure out their location in the global grid.