home   contents  previous      next        up

Параллельное программирование в ОС PARIX

В соответствии с SPMD моделью выполнения программ во все транспьютеры ОС PARIX загружает одну и ту же программу. Однако средства, предоставляемые ОС, позволяют реализовывать программы, поведение которых зависит от исполняющего ее процессора, от его положения в сети. Можно создавать программы универсальные по отношению к количеству имеющихся в их распоряжении процессоров. Для этого в языке Си имеются следующие константы (естественно, некоторые их них имеют разные значения для разных процессоров):

PC_nProcs количество процессоров в сети
PC_DimX размерность по оси X
PC_DimY размерность по оси Y
PC_DimZ размерность по оси Z
PC_MyX X координата процессора
PC_MyY Y координата процессора
PC_MyZ Z координата процессора
PC_MyID уникальный номер (идентификатор) процессора

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

Язык Си ОС PARIX, как пакет INMOS toolset, реализует такие понятия параллельного программирования, как Сопроцесс, Семафор и Канал.

Объекты типа Thread_t сохраняют информацию о сопроцессах, создаваемых задачей и выполняющихся одновременно с ней. Понятие канала реализуется с помощью типа LinkCB_t и пакета подпрограмм для работы с объектами этого типа. Переменные типа Semaphore_t служат для синхронизации процессов, обращающихся к разделяемым данным.


home   contents  previous      next        up