我有这种嵌套循环:我想知道如何以最佳形式并行化它:
二、三
for
、五、六for
同时跑for
连续第一和第四
如果我有 24 个内核并且想在 16 个线程之间划分外部并使用其余的线程与它们一起执行内部for
,例如for
使用 8 个线程而不是一个线程执行第二个,我该怎么办?
void main()
{
//first_for
for(int y=0; y< height; y++)
{
//second_for
for(int x=0; x< width-1; x++)
{
func1();
}
//third_for
for(int x=0; x< width-1; x++)
{
func2();
}
}
//fourth_for
for(int x=0; x<width; x++)
{
//fifth_for
for(int y=0; y< height-1; y++)
{
func3();
}
//sixth_for
for(int y=0; y< height-1; y++)
{
func4();
}
}
}