NetNado
  Найти на сайте:

Учащимся

Учителям



Отчет по лабораторной работе №1 по дисциплине «Параллельное программирование»

Министерство образования Российской Федерации





Санкт-Петербургский государственный электротехнический университет


Кафедра МО ЭВМ



Отчет по лабораторной работе №1

по дисциплине «Параллельное программирование»
«Исследование структуры параллельного вычислителя»


Выполнил: Листов О.В.

Группа: 4395

Проверил: Красюк В.И.

Санкт-Петербург


2009

Цель

Цель данной лабораторной работы состоит в доказательстве того, что структура используемого параллельного вычислителя является матричной.
Задачи

Необходимо изучить основные свойства параллельного вычислителя под управлением PARIX и разработать программу для доказательства предположения о матричной структуре.
Краткие сведения о PARIX

Технологические и архитектурные решения, используемые фирмой Parsytec, позволяют строить гибкие, эффективные параллельные системы, обеспечивающие как высокую концентрацию процессоров, так и тесную связь между ними. Кластерные системы допускают блочное наращивание числа узлов сети, формирование различных топологий вычислительной сети.

Программы для кластерных систем можно реализовать как с помощью системы программирования INMOS toolset, так и средствами операционной системы PARIX фирмы Parsytec. Пакет INMOS toolset обеспечивает более гибкое программирование, чем ОС PARIX (которая реализована с помощью этого пакета), однако значительно более сложное. В PARIX программист не должен задавать ни отображение сети процессов программы на сеть транспьютеров, ни их топологии. Эффективность выполнения программ, имеющая место наряду с простотой программирования, была достигнута благодаря следующим свойствам PARIX:

  • сеть процессоров имеет фиксированную регулярную топологию,

  • исполняемые программы реализуют SPMD модель (одна и та же программа, параметризованная относительно идентификатора процессора, выполняет на всех процессорах),

  • набор высокоуровневых коммуникационных операций использует микроядро ОС, работающее на всех процессорах и обеспечивающее маршрутизацию сообщений.

 
Уровни программного обеспечения PARIX
Выполнение задания
В среде PARIX создается структура данных для каждого процессора, которая доступна из кода программы. Эта структура содержит следующие константы:

PC_nProcs

количество процессоров в сети

PC_DimX

размерность по оси X

PC_DimY

размерность по оси Y

PC_DimZ

размерность по оси Z

PC_MyX

X координата процессора

PC_MyY

Y координата процессора

PC_MyZ

Z координата процессора

PC_MyID

уникальный номер (идентификатор) процессора


Создадим программу, которая будет выводить идентификатор процессора, на котором она выполняется и его координаты, а так же идентификаторы всех его соседей:
downNeigh = (myY-1)*dimX + myX;

upNeigh = (myY+1)*dimX + myX;

leftNeigh = myY*dimX + (myX-1);

rightNeigh = myY*dimX + (myX+1);

#include

#include

#include

#include

#include

#include
int main (void)

{

int myID = GET_ROOT()->ProcRoot->MyProcID;

int myX = GET_ROOT()->ProcRoot->MyX;

int myY = GET_ROOT()->ProcRoot->MyY;

int dimX = GET_ROOT()->ProcRoot->DimX;

int dimY = GET_ROOT()->ProcRoot->DimY;

int upNeigh = 0;

int leftNeigh = 0;

int rightNeigh = 0;

int downNeigh = 0;

if (myY>0) {

downNeigh = (myY-1)*dimX + myX;

}

if (myY<(dimY-1))) {

upNeigh = (myY+1)*dimX + myX;

}

if (myX>0) {

leftNeigh = myY*dimX + (myX-1);

}

if (myX<(dimX-1)) {

rightNeigh = myY*dimX + (myX+1);

}

printf ("ID = %d MyX = %d MyY = %d\n Neighbours:\nup = %d\n down = %d\n left = %d\n right = %d\n", myID, myX, myY , up, down , left, right);

return 0;

}
Результаты запуска программы


Размерность процессорной решетки

ID

MyX

MyY

MyZ

DimX

DimY

DimZ

N_procs

next

prev

up

low

1*1

0

0

0

0

1

1

1

1

-

-

-

-

1*2

0

0

0

0

1

2

1

2

-

-

1

-

1

0

1

0

1

2

1

2

-

-

-

0

2*1

0

0

0

0

2

1

1

2

1

-

-

-

1

1

0

0

2

1

1

2

-

0

-

-

1*3

0

0

0

0

1

3

1

3

-

-

1

-

2

0

2

0

1

3

1

3

-

-

-

1

1

0

1

0

1

3

1

3

-

-

2

0

3*1

0

0

0

0

3

1

1

3

1

-

-

-

2

2

0

0

3

1

1

3

-

1

-

-

1

1

0

0

3

1

1

3

2

0

-

-

1*4

0

0

0

0

1

4

1

4

-

-

1

-

1

0

1

0

1

4

1

4

-

-

2

0

3

0

3

0

1

4

1

4

-

-

-

2

2

0

2

0

1

4

1

4

-

-

3

1

4*1

0

0

0

0

4

1

1

4

1

-

-

-

1

1

0

0

4

1

1

4

2

0

-

-

3

3

0

0

4

1

1

4

-

2

-

-

2

2

0

0

4

1

1

4

3

1

-

-

2*2

0

0

0

0

2

2

1

4

1

-

2

-

1

1

0

0

2

2

1

4

-

0

3

-

2

0

1

0

2

2

1

4

3

-

-

0

3

1

1

0

2

2

1

4

-

2

-

1

2*4

0

0

0

0

2

4

1

8

1

-

2

-

1

1

0

0

2

4

1

8

-

0

3

-

2

0

1

0

2

4

1

8

3

-

4

0

3

1

1

0

2

4

1

8

-

2

5

1

7

1

3

0

2

4

1

8

-

6

-

5

6

0

3

0

2

4

1

8

7

-

-

4

5

1

2

0

2

4

1

8

-

4

7

3

4

0

2

0

2

4

1

8

5

-

6

2

4*2

0

0

0

0

4

2

1

8

1

-

4

-

4

0

1

0

4

2

1

8

5

-

-

0

1

1

0

0

4

2

1

8

2

0

5

-

5

1

1

0

4

2

1

8

6

4

-

1

3

3

0

0

4

2

1

8

-

2

7

-

7

3

1

0

4

2

1

8

-

6

-

3

6

2

1

0

4

2

1

8

7

5

-

2

2

2

0

0

4

2

1

8

3

1

6

-

3*3

0

0

0

0

3

3

1

9

1

-

3

-

6

0

2

0

3

3

1

9

7

-

-

3

2

2

0

0

3

3

1

9

-

1

5

-

1

1

0

0

3

3

1

9

2

0

4

-

3

0

1

0

3

3

1

9

4

-

6

0

8

2

2

0

3

3

1

9

-

7

-

5

7

1

2

0

3

3

1

9

8

6

-

4

5

2

1

0

3

3

1

9

-

4

8

2

4

1

1

0

3

3

1

9

5

3

7

1


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


12

13

14

15

8

9

10

11

4

5

6

7

0

1

2

3


Рассмотрим схемы расположения процессоров в зависимости от параметров запуска
Для процессоров 0, 1
Вариант 1:

Размерность 2х1:

0

1

Размерность 3х1:

0

1

2

Размерность 4х1:

0

1

2

3


Размерность 2х2:

2

3

0

1

Размерность 2х4:

6

7

4

5

2

3

0

1


Вариант 2:

Размерность 1х2:

1

0

Размерность 1х3:

2

1

0

Размерность 1х4:

3

2

1

0



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

В данной лабораторной работе были изучены основы PARIX. Мы познакомились с атрибутами процессоров и структурой параллельного вычислителя. На основе знания о неизменности структуры вычислителя и используя доступные данные среды PARIX, удалось доказать, что структура вычислителя является матричной.

страница 1


скачать

Другие похожие работы: