В соответствии с 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 служат для синхронизации процессов, обращающихся к разделяемым данным.