1) естественный параллелизм независимых задач(поток не связных между собой задач, решение которых не зависит от решения другой задачи);
2) параллелизм объектов или данных (по одной и той же или почти одной и той же программе должна обрабатываться некоторая совокупность данных, поступающая в систему одновременно, это задачи векторной алгебры)
3) параллелизм независимых ветвей(выделяют отдельные независимые части программы, которые могут выполняться параллельно при наличии нескольких обрабатывающих устройств. критерии, позволяющие выделить независимые ветви:
- отсутствуют функции связей(входные данные любой ветви не являются выходными данными другой ветви)
- отсутствуют связи по использованию одних и тех же областей памяти(ветви программы производят запись информации во взаимно не пересекаемые области памяти)
- независимость по управлению(условие выполнение ветви не зависит от результатов или признаков, полученных при выполнении другой ветви)
- программная независимость – ветви должны выполняться по разным блокам программы).
это наиболее явная форма программного параллелизма м.б. представлена в виде ярусно –параллельной формы.
вершины графа x1…х8 ветви программы
Каждый ярус обрабатывается независимыми ветвями, отвечающими ранее выделенным критериям. Независимые ветви могут выполняться одновременно. Дуги обозначают входные и выходные данные и промежуточные результаты, связывающие между собой различные ярусы.