-
Notifications
You must be signed in to change notification settings - Fork 50
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
Add Splines of order 4 to 7 and support for all heFFTe MPI communication backends #799
base: master
Are you sure you want to change the base?
Conversation
Thanks for the improvements! Do you mind splitting into two PRs? I think I'll want someone else to at least co-review the spline details, but the FFT should be quick to merge |
@@ -97,13 +95,21 @@ struct is_matching_array< | |||
: public std::true_type | |||
{ | |||
}; | |||
enum class FFTCommPattern : unsigned int |
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.
@sr7cb hey Sanil, what kind of communication options would we expect to interface with in fftx? Trying to make sure our interface is generic enough
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.
Unfortunately I don't have enough familiarity with our MPI backend to provide a concrete answer. Please go ahead with your process and we can update/revisit down the road.
@@ -39,7 +39,8 @@ void calculateFFT( bool use_default, bool use_params, | |||
Experimental::FastFourierTransformParams params; | |||
|
|||
// Set MPI communication | |||
params.setAllToAll( true ); | |||
params.setAlltoAll( Cabana::Grid::Experimental::FFTCommPattern::alltoallv ); | |||
params.setAlltoAll( true ); |
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.
Do we need to set with both?
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.
You are right, only one is needed. I will remove the boolean variation. Its behavior and usage is commented at the example example/grid_tutorial/10_fft_heffte/heffte_fast_fourier_transform_example.cpp for backward compatibility
Hi @streeve Sam! We also thank you for maintaining Cabana! I don't mind splitting the PRs. Should I leave this one for the FFT and create a new one for the Splines? I had a look into the actions, and I think I have already addressed it with fixes that I can commit once the PRs are at the places. |
Yes, that sounds great! |
This commits add BSplines of order 4 to 7 following the polynomial definitions on deserno1998*
This also extends the available backends available in heFFTe using a enum class to pick the chosen reshape/communication pattern.
This changes were done in cooperation with @rhalver