Мне нужно запустить от 64 до 256 сетевых тестов, каждый из которых занимает разное количество времени (большинство из них от 10 до 30 секунд).
Я просто использую систему ("целевой файл сетевого_кода") в debian. Это работает, но чертовски медленно, так как каждый вызов ожидает следующего, чтобы завершить sh.
на C ++ Я бы сделал что-то вроде
#pragma omp parallel for
for(int i = 0; i < 256;i++)
{
system("network_app");
}
, что по-прежнему невероятно глупо, но как минимум в 16 раз быстрее, чем делать это один за другим.
Как вы можете запустить X asyn c потоков в Python параллельно и дождаться завершения всех?
my_hosts = [...]
for host in my_hosts:
execute_in_parallel(system("network_app " + host + " > " + host + ".dump"))
wait_until_are_all_jobs_are_finished()