この種のネストされたループがあります:これを最適な形で並列化する方法を知りたいです:
2回目と3回目
for
、5回目と6回目for
の同時走行for
シリアルの最初と 4 番目
24 コアがあり、16 スレッド間でアウターを分割し、それらの残りを使用してインナーfor
を実行する場合、たとえば、for
1 つのスレッドだけでなく 8 スレッドで 2 番目を実行する場合、どうすればよいですか?
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();
}
}
}