Каков наилучший способ выполнения нескольких строк кода параллельно, если они не зависят друг от друга? (Я использую OpenMP)Параллелирование серии независимых последовательных строк кода
Псевдо код:
database->connect()
openfile("stuff.txt")
ping("stackoverflow.com")
x = 2;
y = a + b;
Единственный способ, которым я могу придумать это:
#pragma omp parallel for
for(i = 0; i < 5; i++)
switch (i) {
case 0: database->connect(); break;
...
Я не пробовал, но я помню, что вы не должны break
при использовании OpenMP
Были каждый из этих отдельных линий настолько медленно, что они должны быть распараллеливание? Подумайте об этом с точки зрения «pthread»; вы хотите запустить каждую строку как функцию в отдельном потоке? Для этого есть огромные накладные расходы. – chrisaycock
Я согласен с chrisaycock. Накладные расходы будут чрезвычайно высокими для небольшого количества работы, которую вы выполняете. Если вы действительно хотите попробовать, ознакомьтесь с директивой разделов OpenMP. – ejd
Гораздо больше гипотетического вопроса. – Mikhail