ВУЗ:
Составители:
33
6) анализировать получаемые от "рабочих" сообщения, в том числе сигнал "конец ра-
боты";
7) решать задачу верхнего уровня (устанавливать событие "найдена цепочка");
8) Завершать обработку последовательности, для чего учитывать количество посту-
пивших сигналов "конец работы". Когда их число станет равным числу занятых "ра-
бочих" (это число в принципе может быть меньше общего числа "рабочих"), перехо-
дить к обработке следующей последовательности (см. п. 1).
Для "рабочего" процессора:
1) читать очередной символ и осуществлять переходы в алгоритме;
2) если обрабатываемый блок закончился, и нет итерации, передать "управляющему"
сигнал завершения обработки блока, иначе запросить блок следующий в обрабаты-
ваемой последовательности за предыдущим.
3) если возникло состояние алгоритма "цепочка найдена", то передать сообщение
"управляющему" об обнаружении цепочки (возможен вариант алгоритма, когда ин-
формация о найденных цепочках будет храниться у "рабочего" до завершения обра-
ботки всех блоков, а затем пакетом передаваться "управляющему");
Этот алгоритм можно усовершенствовать. При большом количестве цепочек-образов и
достаточном количестве "рабочих" возможно разделение алгоритма работы "управляю-
щего" процессора на алгоритмы двух процессоров: "управляющего" и "анализатора". На
"управляющего" будут возлагаться функции загрузки блоков последовательности, а на
"анализатор" - прием сообщений от "рабочих" и их обработка. По окончании обработки
всех последовательностей "управляющий" получает от "анализатора" результаты. Добав-
ление "анализатора" в мультипроцессорную систему целесообразно в том случае, когда
объем оперативной памяти, как общей так и процессоров мал по сравнению с длинами
обрабатываемых последовательностей. В этом случае "управляющий" процессор будет
тратить много времени на распределение блоков между рабочими процессорами. Архи-
тектура такой системы приведена на рис. 3.14.
В предлагаемой мультипроцессорной системе при начале обработки очередной последо-
вательности каждый "рабочий" должен обратиться к "управляющему" с требованием дан-
ных. "Управляющий" распределяет имеющиеся блоки по "рабочим". Каждый "рабочий",
обработав полученный блок, обращается к "управляющему» с запросом на получение
следующего. Если у "управляющего" есть необработанные блоки, он передает очередной
6) анализировать получаемые от "рабочих" сообщения, в том числе сигнал "конец ра- боты"; 7) решать задачу верхнего уровня (устанавливать событие "найдена цепочка"); 8) Завершать обработку последовательности, для чего учитывать количество посту- пивших сигналов "конец работы". Когда их число станет равным числу занятых "ра- бочих" (это число в принципе может быть меньше общего числа "рабочих"), перехо- дить к обработке следующей последовательности (см. п. 1). Для "рабочего" процессора: 1) читать очередной символ и осуществлять переходы в алгоритме; 2) если обрабатываемый блок закончился, и нет итерации, передать "управляющему" сигнал завершения обработки блока, иначе запросить блок следующий в обрабаты- ваемой последовательности за предыдущим. 3) если возникло состояние алгоритма "цепочка найдена", то передать сообщение "управляющему" об обнаружении цепочки (возможен вариант алгоритма, когда ин- формация о найденных цепочках будет храниться у "рабочего" до завершения обра- ботки всех блоков, а затем пакетом передаваться "управляющему"); Этот алгоритм можно усовершенствовать. При большом количестве цепочек-образов и достаточном количестве "рабочих" возможно разделение алгоритма работы "управляю- щего" процессора на алгоритмы двух процессоров: "управляющего" и "анализатора". На "управляющего" будут возлагаться функции загрузки блоков последовательности, а на "анализатор" - прием сообщений от "рабочих" и их обработка. По окончании обработки всех последовательностей "управляющий" получает от "анализатора" результаты. Добав- ление "анализатора" в мультипроцессорную систему целесообразно в том случае, когда объем оперативной памяти, как общей так и процессоров мал по сравнению с длинами обрабатываемых последовательностей. В этом случае "управляющий" процессор будет тратить много времени на распределение блоков между рабочими процессорами. Архи- тектура такой системы приведена на рис. 3.14. В предлагаемой мультипроцессорной системе при начале обработки очередной последо- вательности каждый "рабочий" должен обратиться к "управляющему" с требованием дан- ных. "Управляющий" распределяет имеющиеся блоки по "рабочим". Каждый "рабочий", обработав полученный блок, обращается к "управляющему» с запросом на получение следующего. Если у "управляющего" есть необработанные блоки, он передает очередной 33
Страницы
- « первая
- ‹ предыдущая
- …
- 31
- 32
- 33
- 34
- 35
- …
- следующая ›
- последняя »