Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Все вместе.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
2.43 Mб
Скачать

Приложение в. Динамическая экспоненциальная балансировка загрузки. Gpss-программ

* * * * * * * * * * * * * * * * * * * * **

* Z=1024 (8*64 + 4*64 + 2*64 + 64 + 64) *

* Единица модельного времени mkc *

* Вычислительная сложность 1e7 *

* Время обработки 0 - 1e5mks *

* Число процессоров N=64 *

* * * * * * * * * * * * * * * * * * * * *

* "Параллельная" модель *

* * * * * * * * * * * * * * * * * * * * *

1 fnproc_par function rn2,c2; время обработки в "параллельной" модели

2 0,0/1,100001

3 fnproc_posl function rn3,c2; время обработки в "последов-ой" модели

4 0,0/1,100001

5 fnwork function p5,d5

6 1,8/2,4/3,2/4,1/5,1

7 us variable p4/p3; расчет коэффициента ускорения

8 tabl_s table v$us,42,0.25,60

9 proc_par storage 64; число процессоров в "параллельной" модели N=64

10 proc_posl storage 1;число процессоров в "последовательной" модели N=1

11 generate 1e8,100; транзакт-задача (1024 узла)

12 split 4,,5; k=4+1 - количество групп

13 assign 1,fn$fnwork; первый параметр - количество подгрупп в группе

14 split 63; z=63+1 - количество узлов в подгруппе

14 queue qhost1_par; очередь на host-процессоре

15 seize host

16 depart qhost1_par

17 advance 5,3; обработка на host-процессоре

18 release host

19 queue qproc_par

20 enter proc_par; обработка процессором

21 depart qproc_par

22 proc2 advance fn$fnproc_par; цикл для обработки группы

23 loop 1,proc2; число итераций определено в 1-ом параметре транзакта

24 leave proc_par

25 queue qhost2_par; заключительная обработка на host-процессоре

26 seize host

27 depart qhost2_par

28 advance 5,3

29 release host

30 assemble 320; объединение транзактов, относящихся к одной задаче

31 assign 3,m1; фиксация времени прохождения транзакта по модели

* * * * * * * * * * * * * * * * * * * *

* "последовательная" модель *

* * * * * * * * * * * * * * * * * * * *

31 mark 2

32 split 1023; 1024 узла (одна задача)

33 queue qhost1_posl

34 seize host

35 depart qhost1_posl

36 advance 5,3

37 release host

38 queue qproc_posl

39 enter proc_posl; обработка процессором

40 depart qproc_posl

41 advance fn$fnproc_posl

42 leave proc_posl

43 queue qhost2

44 seize host

45 depart qhost2

46 advance 5,3

47 release host

48 assemble 1024

49 assign 4,mp2; фиксация времени прохождения транзакта по модели

50 tabulate tabl_s; расчет коэффициента ускорения

51 terminate 1

69