Hardware - разное

Элементы параллельного программирования


PARIX предоставляет специальные библиотечные функции для упрощения работы с процессами.

В рамках одного узла можно организовать несколько ветвей процесса (threads). Каждая ветвь выполняется параллельно. Все созданные ветви одного процесса имеют доступ к глобальным данным процесса. Говорят, что все ветви исполняются в рамках одного контекста. Каждая ветвь имеет свой собственный стек.

Понятие ветви является основным для модели программирования в симметричных мультипроцессорных системах (например Convex) и должно быть уже известно тем пользователям, кто создавал параллельные приложения для Convex.

Функция CreateThread создает новую ветвь процесса. Как обычно, стандартным методом синхронизации ветвей одного процесса является механизм семафоров.

Другим элементом параллельного программирования является создание нового контекста. В любой момент некоторая ветвь процесса может загрузить и запустить новый процесс (т.е. контекст), со своим собственным кодом, глобальными данными, и начальной ветвью. Породившая ветвь будет ожидать окончания выполнения запущенного контекста. Новый контекст создается функцией Execute.

Типичным приемом в параллельном программировании является следующий: на каждом процессоре запускается начальное приложение, которое определяет свое положение, и в зависимости от результата запускает тот или иной контекст.



Содержание раздела