Intel® oneAPI Threading Building Blocks
Ask questions and share information about adding parallelism to your applications when using this threading library.
Announcements
Welcome to the Intel Community. If you get an answer you like, please mark it as an Accepted Solution to help others. Thank you!
2401 Discussions

How to use parallel_for on my own defining struct .

gaocheng073
Beginner
78 Views
Hi ,professors,
When i use parallel_for on my defining struct ,It can not work.
The part of my code is :

struct Result //This is my defining struct.
{
int Path;
double Amp;
double Phase;
};

void apfft(Result* T); //This is my defining function.
Result FFTResult; // This is my defining array.
for(int i=0;i{
FFTResult.Path=i;
FFTResult.Amp=0;
FFTResult.Phase=0;
apfft(&FFTResult);
}
The following is my parallel code , but it does not work.
class ParaFFT
{
void operator()(const blocked_range&range)const
{
for(int i=range.begin();i!=range.end();++i)
{
FFTResult.Path=i;
FFTResult.Amp=0;
FFTResult.Phase=0;
apfft(&FFTResult);
}
}
};
parallel_for(blocked_range(0,L-1,1),FFTResult);
I try it many days,but i found i can not translate my own defining struct .
Please help me or instruct me . Many thanks.

0 Kudos
2 Replies
RafSchietekat
Black Belt
78 Views
"parallel_for(blocked_range(0,L-1,1),FFTResult);"
The second parameter in a blocked_range constructor is exclusive (please check if this is what you meant), the second parameter in parallel_for should be a Body (FFTResult won't do what you want).
gaocheng073
Beginner
78 Views
My problem has beensolved.Thank you very much!
Reply