Comments (3)
I believe the issue is, that the input pointer when executing the transforms needs to point to the local data.
So changing
transform.backward(signal.data(), SPFFT_PU_HOST);
to
transform.backward(signal.data() + 2 * (xyIndicesGlobal.size() / commSize) * dimZ, SPFFT_PU_HOST);
should give you the correct result in this example.
from spfft.
Hello,
Thank you for reply. You are right. The problem is in backward
function input data. I focused too much on MPI, indexing atc. so I missed input data distribution.
I am just not sure about your computation of pointer shift . In this example for 2 * (xyIndicesGlobal.size() / commSize) * dimZ
gives 8 for each rank. I think that correct computation in data shift for rank is for this case offset * xyIndicesGlobal.size() * 2
.
Thank you very much for your help. I really appreciate it.
from spfft.
I'm glad I could help.
You are right, my suggested change is not entirely correct, since the MPI rank is missing and I assumed a different distribution of excess elements. I think the correct shift for your example might actually be offset * dimZ * 2
, because the Z dimension is not split for the input signal. Only the output is split in Z, so essentially the output is transposed.
I'll close this issue for now, but feel free to reopen or create a new issue if you have further questions.
from spfft.
Related Issues (12)
- benchmark results in GFlops HOT 2
- error: array must be initialized with a brace-enclosed initializer HOT 4
- Provide SOVERSION for the shared library HOT 2
- Build/install process does not seem to use CMAKE_INSTALL_LIBDIR HOT 2
- Using SpFFT inside of an OpenMP region HOT 4
- CMake can't find MLKSequential HOT 2
- Always linked against fftw3f even when single precision is not requested HOT 2
- installation of CMake modules/ into different directory leads to configuration error with SIRIUS HOT 1
- Building SpFFT with Intel 18.0.5 fails HOT 2
- SpFFT fails to find MPI with Cray wrappers on Alps HOT 2
- `device_synchronize()` always ON on AMD HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from spfft.