Я хочу запустить функцию 96 раз параллельно.Функция запускает сервер симулятора робота в указанном порту.
В этой программе я запускаю 24 потока 4 раза.Однако, с барьером, программа должна ждать завершения 24 потоков, чтобы продолжить.
Зная, что потоки имеют разное время выполнения.Когда требуется огромное время, это замедляет время выполнения.
Есть ли какой-либо другой способ заставить все 96 потоков (или серверов-роботов) выполняться одновременно, с учетом динамического разделения портов?
int id=0;
for(int i=0; i<4; i++)
{
#pragma omp parallel
{
#pragma omp sections
{
#pragma omp section
{
function(id, 11369);// id of the robot, port
}
#pragma omp section
{
function(id+1, 11370);
}
//...
//...
//...
#pragma omp section
{
function(id+23, 11393);
}
}
#pragma omp barrier
#pragma omp single
{
id=id+24;
}
}
}