Intel® oneAPI Threading Building Blocks
Ask questions and share information about adding parallelism to your applications when using this threading library.
2465 Discussions

How to use parallel_for on my own defining struct .

gaocheng073
Beginner
226 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
Valued Contributor III
226 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).
0 Kudos
gaocheng073
Beginner
226 Views
My problem has beensolved.Thank you very much!
0 Kudos
Reply