MARIA KOSICKA MICHAŁ MORAWSKI METODY IMPLEMENTACJI SPLOTU NA TABLICY SYSTOLICZNEJ KOMPUTERA RÓWNOLEGŁEGO SYSTOLA 24 *) STRESZCZENIE W artykule przedstawioo i porówao dwie metody implemetacji dyskretego splotu a tablicy systoliczej komputera rówoległego SYSTOLA 24: przy wykorzystaiu liiowej tablicy systoliczej (jedego wiersza tablicy ortogoalej) oraz przy wykorzystaiu kwadratowej tablicy ortogoalej. Stwierdzoo, że obie metody są rówie dokłade. Poadto porówao wyiki obliczeń z otrzymaymi za pomocą programu Matlab.. HISTORIA I POJĘCIE SPLOTU Wiek XIX w matematyce to czas badań, porządkowaia i krystalizowaia się pojęć i metod matematyki współczesej tak, jak rozumiemy je dzisiaj [, ]. W owym czasie pojawiło się rówież pojecie splotu będące operacją całkową * ) Artykuł jest rozszerzoą i uzupełioą postacią referatu prezetowaego a XXIV Koferecji IC-SPETO 2 Gliwice-Ustroń 23-26.5.2. mgr iż. MARIA KOSICKA, mgr iż. MICHAŁ MORAWSKI Zakład Badań Podstawowych Elektrotechiki Istytut Elektrotechiki PRACE INSTYTUTU ELEKTROTECHNIKI, zeszyt 29, 2
64 M. Kosicka, M. Morawski wykoywaą a dwóch fukcjach. Pojęcie to zae było już a początku XIX wieku, ale zbadaie jego właściwości jest główie zasługą włoskiego matematyka Vita Volterry (86...94), który zajmował się w sposób ogóly badaiem złożeń dwóch fukcji dwóch zmieych, atomiast podstawowe zaczeie splotu zrozumiał dopiero matematyk iemiecki Herma Weyl (855...955). Splot (ag. covolutio) jest matematyczą operacją całkową wykoywaą a dwóch fukcjach tej samej zmieej, p.: x() t i ht (): gdzie: gdzie: () yt () = x( τ) ht ( τ)dτ = h() t x(), t y() t fukcja będąca wyikiem splotu, τ wielkość pomocicza, zak ozacza splot. Operacja splotu ma swój odpowiedik dyskrety zapisyway w postaci: (2) ( ) = ( ) ( ) y x k h k k= czas dyskrety, k wielkość pomocicza. Splot [9] ma ciekawą właściwość wykorzystywaą przy aalizie układów automatyczej regulacji oraz przy przetwarzaiu sygałów; trasformata (Fouriera lub Laplace a) splotu jest rówa iloczyowi trasformat splataych fukcji, przy czym zależość ta jest prawdziwa zarówo dla sygałów ciągłych jak i dyskretych, p. dla trasformaty Fouriera fukcji ciągłych: F[ xt ( ) ht ( )] = Fxt [ ( )] Fht [ ( )] (3) Trasformata Fouriera fukcji czasu jest fukcją częstotliwości. Moża zatem powiedzieć, że zgodie ze wzorem (3) splot w dziedziie czasu jest rówoważy możeiu w dziedziie częstotliwości lub też ogólie: splot w jedej dziedziie jest rówoważy możeiu w drugiej dziedziie [9].
Metody implemetacji splotu a tablicy systoliczej komputera rówoległego... 65 Operacja splotu zajduje zastosowaie przy dokoywaiu filtracji sygału poprzez splataie sygału orygialego będącego pewym ciągiem liczb z drugim ciągiem liczb zwaym współczyikami filtru, wagami lub odpowiedzią impulsową. W praktyce mamy do czyieia z dwoma skończoymi ciągami określoymi w dziedziie czasu. Wzór (2) ulega zatem modyfikacji i przybiera postać: Q (4) y ( ) = xkh ( ) ( k), k= gdzie: { h } h( ) =, = K P ciąg współczyików filtru, przy czym h ( ), { x x ( ) { y } y( ) dla {.. P} ( ) h =, =, = K Q filtroway ciąg wejściowy, =, = K N ciąg wyjściowy. W ogólym przypadku N = P+ Q [9], gdzie P, Q, N długości odpowiedio: ciągu współczyików filtru, filtrowaego ciągu wejściowego, ciągu wyjściowego. 2. OBLICZANIE SPLOTU ZA POMOCĄ TABLICY SYSTOLICZNEJ W pracach [4, 7] opisao budowę, sposób działaia i zastosowaie komputera rówoległego SYSTOLA 24. Jako jedo z zastosowań tablicy systoliczej wymieioo obliczaie splotu. Poiżej pokazao dwa sposoby wykoaia omawiaej operacji. 2.. Obliczaie splotu przy wykorzystaiu liiowej tablicy systoliczej (jedego wiersza tablicy ortogoalej) W opisywaej metodzie korzysta się wprost ze wzoru (4) będącego sumą iloczyów. W procesie obliczaia bierze udział tylko pierwszy rząd procesorów tablicy systoliczej, a w każdym procesorze 6 rejestrów (dla liczb stałoprzeci-
66 M. Kosicka, M. Morawski R R 2 R 3 Rys.. Umowe ustawieie rejestrów w procesorze. kowych) lub 3 (dla liczb całkowitych). Dla uproszczeia przy omawiaiu metody uwzględioo tylko 3 rejestry zwae umowie: R, R 2 i R 3 (rys.). W demostrowaym przykładzie założoo P=4, Q=32, ograiczoo się do N=32. W poiższym opisie stosowae są geograficze opisy kieruków typowe dla opisu prostokątej tablicy systoliczej zgode z typową orietacją mapy. W pierwszym etapie obliczeń wprowadza się h rozpoczyając do tablicy systoliczej od stroy zachodiej elemety ciągu { } od ostatiego (rys.2). Dae te są zapisywae w rejestrach R 2 pierwszych P procesorów i pozostają tam do końca obliczeń. x (3),, x(), x( ), x( 2) h () h () h (2) h(3) y(), y(),, y(3) y( 2) y( ) Rys.2. Wprowadzaie elemetów ciągu { x po wprowadzeiu elemetów ciągu { h }. Wartości x( 2) = x ( ) =. Elemety y ( 2) i y ( ) są odrzucae. x(3),..., x(3), x(2), x() x() h() y() y() = x() h() h () h (2) h(3) y() y() y(2), y(3),..., y(3) Rys.3. Pierwszy takt wprowadzeie pierwszego elemetu ciągu wejściowego { x : x (), obliczaie pierwszego elemetu ciągu wyjściowego { y : y () w pierwszym procesorze. Aby obliczyć pierwszy elemet ciągu { y } (rys.3, 4) ależy: wprowadzić z zachodu wartość x () do rejestru R pierwszego procesora,
Metody implemetacji splotu a tablicy systoliczej komputera rówoległego... 67 załadować zawartość rejestru R pierwszego procesora jako pierwszy czyik możeia, pomożyć przez zawartość rejestru R 2 i zmagazyować w rejestrze R 3 pierwszego procesora, wyprowadzić wyik y () a zachód. Obliczaie drugiego elemetu ciągu { y } (rys.4, 5, 6) przebiega astępująco: wprowadzić x () z zachodu do rejestru R pierwszego procesora, a wartość x () przesuąć a wschód z rejestru R drugiego procesora do rejestru R trzeciego procesora. załadować zawartość rejestru R pierwszego procesora jako pierwszy czyik możeia, pomożyć przez zawartość rejestru R 2 tego samego procesora i dodać do zawartości rejestru R 3, wyprowadzić wyik y () a zachód, jedocześie w procesorze trzecim rozpoczya się tworzeie trzeciego elemetu ciągu { y }: y (2). x(3),..., x(3), x(2), x() y() h() x() h () h (2) h(3) y() y(3), y(4),..., y(3) y() = x() h() y(2) Rys.4 Drugi takt przesuiecie x() a wschód, wyprowadzeie y () a zachód, początek obliczaia drugiego elemetu ciągu { y : y () w drugim procesorze. x(3),..., x(3), x(2), x() x () x() h () h () h (2) h(3) y () y (2) y(3), y(4),..., y(3) y() = x() h ()+ y(2) = x() h(2) x() h() Rys.5. Trzeci takt przesuiecie x() a wschód, wprowadzeie x () do pierwszego procesora, przesuięcie y () a zachód, sumowaie w pierwszym procesorze, początek obliczaia trzeciego elemetu ciągu { y : y (2) w trzecim procesorze.
68 M. Kosicka, M. Morawski Każdy kolejy elemet ciągu wyjściowego { y } jest obliczay w te sam sposób (rys. 6, 7, 8). Rośie jedyie liczba operacji. Na rysuku 2...8 uwidoczioo cztery z 32 procesorów pierwszego rzędu tablicy systoliczej. Należy za- x, jak uważyć, że podczas wykoywaia obliczeń zarówo elemety ciągu { } i elemety ciągu { y } zajdują się w co drugim procesorze. x(3),..., x(4), x(3), x(2) x() x() h () h () h (2) h(3) y () y (2) y (3) y(4), y(5),..., y(3) y(2) = x() h (2)+ y(3) = x() h(3) x() h() Rys.6. Czwarty takt przesuiecie x() i x () a wschód, wyprowadzeie y (), przesuięcie y (2) a zachód, sumowaie w drugim procesorze, początek obliczaia czwartego elemetu ciągu { y : y (3) w czwartym procesorze. x(3),..., x(5), x(4), x(3) x(2) x() h () h () h (2) h(3) y (2) y (3) y(4), y(5),..., y(3) y(2) = x() h(2)+ x() h()+ x(2) h() y(3) = x() h(3)+ x() h(2) Rys.7. Piąty takt przesuięcie x () a wschód, wprowadzeie x (2) do pierwszego procesora, przesuięcie y (2) i y(3) a zachód, sumowaie w pierwszym i trzecim procesorze. x(3),..., x(5), x(4), x(3) y(2) x(2) x() h () h() h (2) h(3) y (3) y(4) y(5), y(6),..., y(3) y(3) = x() h(3)+ x() h(2)+ x(2) h() y(4) = x() h(3) Rys.8. Szósty takt wyprowadzeie y (2), przesuięcie x () i x (2) a wschód, przesuiecie y (3) i y (4) a zachód, sumowaie w drugim procesorze, początek obliczaia piątego elemetu ciągu { y : y (4) w czwartym procesorze.
Metody implemetacji splotu a tablicy systoliczej komputera rówoległego... 69 2.2. Obliczaie splotu przy wykorzystaiu kwadratowej, ortogoalej tablicy systoliczej Splot jest operacją symetryczą, zatem wzór (4) moża przedstawić w róworzędej postaci: P (5) y ( ) = hk ( ) x ( k) k= i sprowadzić obliczeia do możeia trójkątej macierzy Toeplitza przez wektor [8]. Operacja możeia macierzy przez wektor została dokładie opisaa w pracy [5]. Dla prezetowaego przykładu wzór (5) przyjmie postać: y() h() L x() y() h() h() L x() y(2) h(2) h() h() L x(2) y(3) = h(3) h(2) h() h() L x(3), y(4) h(3) h(2) h() h() L x(4) M M M M M M O M M M M y(3) h(3) h(2) h() h() x (3) gdzie trójkąta macierz Toeplitza została utworzoa z ciągu { h }. Oczywiście moża rówież utworzyć macierz Toeplitza z ciągu { x } i możyć ją przez wektor h ( ). (6) Wprowadzeie daych do tablicy astąpi w sposób pokazay a rys.9 [4, 5]. PRACE INSTYTUTU ELEKTROTECHNIKI, zeszyt 29,2
7 M. Kosicka, M. Morawski Wprowadzaie elemetów ciągu { h od półocy Wprowadzaie elemetów ciągu { } od zachodu x x (28) x (29) x (3) x (3) h() h() h() h(2) h() h() h(3) h() h(2) h(2) h() h() h() h() h(2) h() h(3) h() h(2) h() h() x (3) x (2) x () x () Tablica systolicza 32 32 procesory Rys. 9 Wprowadzaie daych do tablicy systoliczej przy obliczaiu splotu metodą możeia trójkątej macierzy Toeplitza przez wektor..5.4.3.2 x ( ). 2 3 Rys. Filtroway ciąg dyskrety { x o przebiegu losowym.
Metody implemetacji splotu a tablicy systoliczej komputera rówoległego... 7.8.6.4.2 -.2 -.4 h s ( ) -.6-2 3 4 Rys.. Czteroelemetowy doloprzepustowy filtr skalujący Daubechies { h s} stosoway do dekompozycji sygałów..8 h w ( ).6.4.2 -.2 -.4 -.6-2 3 4 Rys.2. Czteroelemetowy góroprzepustowy filtr falkowy Daubechies { h w } stosoway do dekompozycji sygałów..8.6 h s ( ) * x( ).8.6 hw ( ) * x( ).4.4.2.2 -.2 -.2 -.4 2 3 -.4 2 3 Rys.3. Splot { y } ={ h } { x }. s Rys.4. Splot { y } ={ h } { x }. w 5 x -5 Δ s 4 3 2 ( ) 5 x -5 Δ w 4 3 2 ( ) 2 3 2 3 Rys. 5. Rys. 6. Różice w wyikach obliczeń splotu przeprowadzoych a tablicy systoliczej oraz za pomocą programu Matlab.
72 M. Kosicka, M. Morawski Na rysukach...6 pokazao przykładowe wyiki obliczeń splotu wykoae a tablicy systoliczej dla sygału o przebiegu losowym (rys.). Jako filtry przyjęto dwa filtry Daubechies [2, 3, 6]: filtr doloprzepustowy-skalujący (rys.) i filtr góroprzepustowy-falkowy (rys.2) o parametrach: [,294,224,8365,483] [, 483,8365, 224,294] h s=, h = w obliczoych za pomocą fukcji wfilters programu Matlab/Toolbox/Wavelet. Operacja splotu pozwala a zalezieie współczyików rozkładu sygału a odpowiedie fukcje skalujące (rys.3) i falki Daubechies (rys.4) [, 3, 6]. Jako wyiki wzorcowe przyjęto obliczeia splotu wykoae za pomocą fukcji cov programu Matlab. Stwierdzoo, że różice w wyikach obliczeń (rys.5, 6) wykoaych a tablicy systoliczej i za pomocą programu Matlab są pomijalie małe i ie przekraczają,5 % tych ostatich wartości. 3. WNIOSKI Porówując obliczeia wykoae a tablicy systolicze za pomocą obu metod stwierdzoo, że dają oe tę samą dokładość. Wydaje się jedak, że metoda druga jest bardziej przejrzysta. Dla prezetowaego przykładu czas obliczeń pierwszej metody wyosi 765 pulsacji, podczas gdy czas obliczeń drugiej tylko 495 pulsacji. Trzeba sobie jedak zdawać sprawę z faktu, że ze wzrostem długości ciągu { x } czas obliczeń pierwszej metody rośie liiowo, podczas gdy w przypadku drugiej metody z kwadratem liczby elemetów ciągu. Poadto druga metoda wymaga od komputera gospodarza utworzeia z wektora odpowiediej macierzy. Warto zwrócić uwagę a to, że jeżeli rozwiązyway problem wymaga obliczaia wielu splotów jedocześie, to pierwsza zaprezetowaa w iiejszym artykule metoda pozwala, przy wykorzystaiu tablicy systoliczej SYSTOLA 24, a obliczeie do 32 splotów jedocześie przy dokładie takiej samej liczbie pulsacji. W takim przypadku, awet dla małej liczby elemetów ciągu { x } metoda pierwsza jest zacząco bardziej efektywa. Przedstawioe metody ie są jedyymi metodami obliczaia splotu a tablicy systoliczej, jedakże wydaje się, że mają oe ajprostszą realizację a komputerze SYSTOLA 24, tz. są ajlepiej dostosowae do architektury tego
Metody implemetacji splotu a tablicy systoliczej komputera rówoległego... 73 komputera. W pracy [8] pokazao ie klasycze metody obliczaia splotu i każda z ich może być zaimplemetowaa. Jedakże implemetacja metod, w których przesuwae są zarówo elemety ciągu { x } jak i { h }, ze względu a kostrukcję tej kokretej tablicy ie będą efektywe. Splot rzadko obliczay jest jako samodziela operacja, zwykle staowi część iego problemu. Dobór kokretego algorytmu powiie być zatem dokoyway z uwzględieiem postaci daych w tym problemie występujących oraz ich liczby. LITERATURA. Bourbaki N.: Elemety historii matematyki. PWN, Warszawa, 98. 2. Białasiewicz J.T.: Falki i aproksymacje. WNT, Warszawa, 2. 3. Burrus C.S., Gopiath R.A., Guo H.: Itroductio to wavelets ad wavelets trasform. Pretice Hall, New Jersey, 998. 4. Kosicka M.: Komputer rówoległy ISATEC SYSTOLA 24 budowa i zastosowaie. Prace Istytutu Elektrotechiki, z.98, 998. 5. Kosicka M.: Obliczaie trasformaty falkowej przy pomocy komputera rówoległego SYSTOLA 24. Prace Istytutu Elektrotechiki, z.22, 999. 6. Kosicka M.: Falkowa dekompozycja sygału za pomocą komputera rówoległego SYSTOLA 24. Prace Istytutu Elektrotechiki, z.26, 2. 7. Lipowska-Nadolska E., Morawski M.: Tablice systolicze. Problemy wybrae. Akademicka Oficya Wydawicza PLJ, Warszawa, 999. 8. Lipowska-Nadolska E.: Ujęcie systolicze form macierzowych w przetwarzaiu sygałów. Prace Istytutu Elektrotechiki, z.66, 99. 9. Lyos R.G.: Wprowadzeie do cyfrowego przetwarzaia sygałów. WKiŁ, Warszawa, 999.. Sękowski T.: Człowiek i matematyka. Polska Oficya Wydawicza BGW, Warszawa, 996. Rękopis dostarczoo, dia Opiiował: prof. dr hab. iż. Krysty Pawluk
74 M. Kosicka, M. Morawski IMPLEMENTATION OF THE DIGITAL CONVOLUTION USING THE SYSTOLIC PARALLEL COMPUTER SYSTOLA 24 M. KOSICKA, M. MORAWSKI SUMMARY The paper presets ad compares two methods of the implemetatio of discrete covolutio usig the systolic parallel computer SYSTOLA 24. Both liear array (oe row of the orthogoal array) ad orthogoal array approach is preseted. Implemetatio of these methods precisely described. Either precisio or the time of executio are discussed ad compared to the results obtaied whe usig a Matlab program.