Wizualizacja struktur macierzy procesorowych w standardzie SVG



Podobne dokumenty
Modelowanie reprogramowalnych układów prądowych pracujących w logice. wielowartościowej.

Model reprogramowalnego prądowego układu działającego w logice wielowartościowej

Politechnika Koszalińska, Wydział Elektroniki

Extensible Markup Language (XML) Wrocław, Java - technologie zaawansowane

KARTA KURSU. Przetwarzanie dokumentów XML i zaawansowane techniki WWW

Słowem wstępu. Część rodziny języków XSL. Standard: W3C XSLT razem XPath 1.0 XSLT Trwają prace nad XSLT 3.0

INŻYNIERIA OPROGRAMOWANIA

SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD

Obliczenia równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

Zastosowanie języka SVG w szkole średniej technicznej

Programowanie równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia

GML w praktyce geodezyjnej

Numeryczna algebra liniowa

Wprowadzenie do programowania

Spis treści 1. Wstęp 2. Ćwiczenia laboratoryjne LPM

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

Otwarte protokoły wymiany informacji w systemach ITS

Zaawansowane aplikacje WWW - laboratorium

Zagadnienia egzaminacyjne INFORMATYKA. stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

Technologie informacyjne - wykład 12 -

Wprowadzenie. Organizacja pracy i środowisko programistyczne. Mirosław Ochodek

Wprowadzenie do arkuszy stylistycznych XSL i transformacji XSLT

Programowanie sterowników przemysłowych / Jerzy Kasprzyk. wyd. 2 1 dodr. (PWN). Warszawa, Spis treści

Programowanie obiektowe

Zagadnienia egzaminacyjne INFORMATYKA. Stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

JavaFX. Technologie Biznesu Elektronicznego. Wydział Informatyki i Zarządzania Politechnika Wrocławska

Plan dzisiejszego wykładu. Narzędzia informatyczne w językoznawstwie. XML - Definicja. Zalety XML

SCENARIUSZ LEKCJI. Streszczenie. Czas realizacji. Podstawa programowa

Projekt i implementacja narzędzia do analizy modeli spójności F R Y D E R Y K R A C Z Y K K O N R A D S Z A Ł K O W S K I

Język programowania PASCAL

Rok akademicki: 2013/2014 Kod: ZZIP IN-s Punkty ECTS: 2. Kierunek: Zarządzanie i Inżynieria Produkcji Specjalność: Informatyka w zarządzaniu

Automatyzacja procesu implementacji układów cyfrowych w technologii prądowych układów FPGA

Informatyka I stopień (I stopień / II stopień) Ogólnoakademicki (ogólno akademicki / praktyczny)

Język opisu sprzętu VHDL

Wykorzystanie standardów serii ISO oraz OGC dla potrzeb budowy infrastruktury danych przestrzennych

NIEZAWODNE ROZWIĄZANIA SYSTEMÓW AUTOMATYKI. asix. Aktualizacja pakietu asix 4 do wersji 5 lub 6. Pomoc techniczna

Dotacje na innowacje. Inwestujemy w waszą przyszłość.

Wprowadzenie do technologii XML

The Binder Consulting

Zadania badawcze prowadzone przez Zakład Technik Programowania:

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX)

Algorytmy i Struktury Danych

Lista zadań nr 1. Zagadnienia stosowanie sieci Petriego (ang. Petri net) jako narzędzia do modelowania algorytmów sterowania procesami

Teraz bajty. Informatyka dla szkół ponadpodstawowych. Zakres rozszerzony. Część 1.

Java w 21 dni / Rogers Cadenhead. Gliwice, cop Spis treści. O autorze 11. Wprowadzenie 13 TYDZIEŃ I JĘZYK JAVA

KARTA KURSU. Grafika komputerowa

Komunikacja i wymiana danych

Język XSLT. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz

INŻYNIERIA OPROGRAMOWANIA

10. Translacja sterowana składnią i YACC

Zagadnienia programowania obiektowego

6. Algorytmy ochrony przed zagłodzeniem dla systemów Linux i Windows NT.

INFORMATYKA TECHNICZNA Badanie możliwości wykorzystania języka AutoLISP i środowiska VisualLISP w systemie CAx

PROGRAM NAUCZANIA DLA ZAWODU TECHNIK INFORMATYK, O STRUKTURZE PRZEDMIOTOWEJ

dr inż. Piotr Odya dr inż. Piotr Suchomski

Wykład Ćwiczenia Laboratorium Projekt Seminarium

Tworzenie programów równoległych cd. Krzysztof Banaś Obliczenia równoległe 1

METODY REPREZENTACJI INFORMACJI

Spis treści Informacje podstawowe Predykaty Przykłady Źródła RDF. Marek Prząda. PWSZ w Tarnowie. Tarnów, 6 lutego 2009

Tworzenie języków specyfikacji dla zagadnień numerycznych

Katedra Mikroelektroniki i Technik Informatycznych

Część I Rozpoczęcie pracy z usługami Reporting Services

Sterowniki Programowalne (SP)

Model semistrukturalny

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. ĆWICZENIE Nr 8 (3h) Implementacja pamięci ROM w FPGA

Podstawy programowania. Wprowadzenie

DSL w środowisku Eclipse. Grzegorz Białek Architekt techniczny, Sygnity S.A.

Mechatronika i inteligentne systemy produkcyjne. Modelowanie systemów mechatronicznych Platformy przetwarzania danych

Podstawy programowania

Opis podstawowych modułów

Elektrotechnika II Stopień (I stopień / II stopień) Ogólno akademicki (ogólno akademicki / praktyczny)

XPath XML Path Language. XPath. XSLT część 1. XPath data model. Wyrażenia XPath. Location paths. Osie (axes)

Tom 6 Opis oprogramowania

Zakres egzaminu dyplomowego (magisterskiego) na kierunku INFORMATYKA

Macierzowe algorytmy równoległe

Analiza ilościowa w przetwarzaniu równoległym

Podstawy i języki programowania

Lista zadań nr 5. Ścieżka projektowa Realizacja każdego z zadań odbywać się będzie zgodnie z poniższą ścieżką projektową (rys.

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Wykorzystano fragmenty wykładu Krystyny Dziubich GRAFIKA WEKTOROWA. Aplikacje i Usługi Internetowe KASK ETI Politechnika Gdańska.

Dokument Detaliczny Projektu

Ministerstwo Finansów

Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

5.14 JSP - Przykład z obiektami sesji Podsumowanie Słownik Zadanie... 86

Wykorzystywanie parsera DOM w programach Java i PL/SQL

Witryny i aplikacje internetowe - rozkład godzin dla technikum informatycznego

Informatyka I stopień (I stopień / II stopień) Ogólnoakademicki (ogólno akademicki / praktyczny)

Programowanie współbieżne Wykład 2. Iwona Kochańska

Wykład V. Rzut okiem na języki programowania. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl

Przygotowanie do nowoczesnego programowania po stronie przeglądarki. (HTML5, CSS3, JS, wzorce, architektura, narzędzia)

PRZEWODNIK PO PRZEDMIOCIE

Hurtownie danych - przegląd technologii

OpenLaszlo. OpenLaszlo

Transkrypt:

Przemysław Sołtan, Oleg Maslennikow, Piotr Ratuszniak Wydział Elektroniki Politechnika Koszalińska, Koszalin Wizualizacja struktur macierzy procesorowych w standardzie SVG STRESZCZENIE W niniejszej pracy omówiono sposób wizualizacji struktur macierzy procesorowych uzyskiwanych w procesie przekształceń grafu zależności informacyjnych (GZI). Zaprojektowana biblioteka wspomaga projektowanie algorytmów algebry liniowej i poddaje je procesowi odwzorowania do postaci grafu GZI. Kolejnym etapem jest wywołanie zaprojektowanych funkcji podziału grafu i generacja struktur macierzy procesorowych. Cały proces przechodzenia od algorytmu do struktury macierzy procesorowej jest wspierany poprzez wizualizację danych XML opisujących graf i struktury przy zastosowaniu transformacji XSLT i uzyskiwaniu wynikowych dokumentów w postaci opisu grafiki wektorowej SVG. WSTĘP Zwiększenie wydajności systemów z klasyczną architekturą typu SISD (ang. Single Instruction stream Single Data stream) jest możliwe tylko do pewnej granicy określonej prędkością rozpowszechniania sygnału elektrycznego, co wymusza zastosowanie innych mechanizmów przyspieszających pracę systemu. Radykalnym rozwiązaniem tego problemu jest realizacja systemu opartego o architektury równoległe. Jednym z możliwych rozwiązań jest model równoległej architektury z wirtualną topologią i jej praktyczna realizacja w oparciu o nowoczesne rekonfigurowalne (reprogramowalne) układy FPGA (ang. Field Programmable Gate Array). Wybierając taki model równoległego systemu, należy uwzględniać fakt, że zwiększenie częstotliwości pracy układu wymaga zmniejszenia długości wewnętrznych połączeń. Z tego względu przy projektowaniu równoległych architektur należy uwzględniać zasadę lokalności połączeń wewnętrznych. Do wspomagania procesu projektowania algorytmów (np. algebry liniowej) zaprojektowano system bazujący na przetwarzaniu danych i ich wizualizacji. Proces przetwarzania danych polega na otrzymaniu m-wymiarowych struktur macierzy procesorowych (MP) (ang. VLSI Array Processors) poprzez odwzorowanie projektowanego algorytmu do postaci grafu zależności informacyjnych (GZI), a następnie wykonaniu jego podziału na podstawie ustalonych kryteriów. Omówiony proces odwzorowania przedstawiono na rys. 1. Opis algorytmu for (int i=1; i<n;i++) { for (int j=1; j<n;j++) { Opis grafu GZI Odwzorowanie m-wymiarowej Odwzorowanie Odwzorowanie m-wymiarowej struktury m-wymiarowej struktury struktury Rys. 1. Proces odwzorowania projektowanego algorytmu na graf GZI i m-wymiarowe struktury Do opisu danych przekazywanych pomiędzy kolejnymi fazami wykorzystano język XML (ang. extensible Markup Language). Ponieważ forma danych w postaci graficznej jest bardziej zrozumiała dla człowieka spróbowano dokonać wizualizacji tych danych przy użyciu standardu SVG (Scalable Vector Graphics) przeznaczonego do opisu grafiki wektorowej. Standard został zainicjowany przez konsorcjum W3C w 1999 roku, a aktualna specyfikacja posiada status rekomendacji i z tego względu przeglądarki internetowe nie muszą go jeszcze interpretować. Obsługa standardu odbywa się poprzez dodatkowe moduły (ang. plug-ins), a

autorzy publikacji wykorzystywali w tym celu darmowe oprogramowanie Adobe SVG Viewer 3.0 [1]. Dokumenty SVG to nic innego jak dokumenty XML z określoną listą znaczników dokładnie opisanych w specyfikacji W3C [2]. WIZUALIZACJA GRAFU ZALEŻNOŚCI INFORMACYJNYCH GZI Pierwszym etapem projektowania jest opisanie badanego algorytmu i jego odwzorowanie w graf zależności informacyjnych (GZI). Podczas prac projektowych nad przedstawionym systemem zrezygnowano z realizacji analizatora leksykalnego i semantycznego kodu opisującego badany algorytm. Założono, że projektant będzie używał istniejących języków i narzędzi do programowania. W tym celu dla danego języka (w tym przypadku wybrano język JAVA) zaprojektowano dodatkową bibliotekę, której zadaniem jest generacja grafu GZI podczas uruchomienia programu z projektowanym algorytmem. Uzyskano w ten sposób zanurzenie algorytmu i biblioteki w standardowe środowisko projektowe (autorzy do tego celu wykorzystali platformę ECLIPSE) i korzystanie z możliwości wybranego narzędzia (edytora, kompilatora i deguggera). Poniżej przedstawiono przykładowy algorytm eliminacji Gaussa zrealizowany z wykorzystaniem autorskiej biblioteki jgen.core.gzi.user. Podczas jego tworzenia należy wykorzystywać specjalnie zaprojektowane klasy zawarte w bibliotece opisujące typy danych : GziMatrix i GziVector. Dokonano opakowania standardowych tablic języka JAVA, uzyskując klasy zawierające dodatkowy kod rejestrujący zachowanie algorytmu. Fragment pliku JAVA z kodem opisującym przykładowy algorytm import jgen.core.gzi.user.*; Gzi gzi = new Gzi(); gzi.setname("gauss"); //opcjonalna nazwa grafu gzi.setsize(3); //rozmiaru generowanego grafu int N = 4; GziMatrix a = new GziMatrix("a", 1, N, 1, N); GziMatrix m = new GziMatrix("m", 1, N, 1, N); for (int k1 = 1; k1 <= N - 1; k1++) { for (int k2 = k1 + 1; k2 <= N; k2++) { gzi.setnode(2, k1, k2, k1); m.set(k1,k2,a.get(k2,k1) / a.get(k1,k1)); for (int k2 = k1 + 1; k2 <= N; k2++) { for (int k3 = k1 + 1; k3 <= N; k3++) { gzi.setnode(1, k1, k2, k3); a.set(k2,k3,a.get(k2,k3) -m.get(k1,k2)/a.get(k1,k3)); gzi.stop(); //finalizacja tworzenia grafu gzi.exportgzi("workspace/gauss.xml"); gzi.gzi2svg3d("workspace/gauss.xml", "workspace/gauss.svg"); Rys. 2. Przykładowy graf zależności informacyjnych (GZI) Rejestracja węzłów grafu polega na wywoływaniu w algorytmie metod setnode(), a rejestracja łuków poprzez śledzenie wywołań dostępnych metod akcesji set() i get(). Dodatkowo można jednoznacznie określić węzły do których należy doprowadzić dane wejściowe oraz prognozować te węzły na których będzie dostępny wynik wykonania algorytmu. Umożliwia to zgromadzenie informacji o przewidywanej strukturze portów wejściowych i wyjściowych wynikowej macierzy procesorowej.

Na etapie projektowania algorytmu można dokonać wstępnego przekształcenia odwzorowania GZI na poziomie kodu algorytmu. Sposobem jest zmiana kolejności wykonywania operacji w algorytmie. Stosuje się tu zasady przemienności wykonywania operacji matematycznych. W wyniku takiego przekształcenia można uzyskać zmiany w przekazywaniu zmiennych pomiędzy wierzchołkami grafu, a nawet zmiany współrzędnych ich ulokowania. Wykonanie tak przygotowanego programu powoduje generację dokumentu XML zawierającego listę łuków i węzłów wraz z ich typami. Poniżej przedstawiono przykładową, uproszczoną strukturę dokumentu XML opisującego graf GZI oraz uproszczony fragment wygenerowanego dokument SVG, którego widok zaprezentowanego na rys. 2. Fragment pliku XML opisującego graf GZI <?xml version='1.0' encoding='utf-8'?> <gzi id='1' size='3' ver='2.37' name='gauss' xmlns:xsi='http://www.w3.org/2001/xmlschema-instance' xsi:nonamespaceschemalocation='graph.xsd'> <nodetypelist> 13 </nodetypelist> <nodelist> <node type='1' k1='1' k2='3' k3='2' id='7'/> < / nodelist> <edgelist> <edge from='2' to='7' id='6'/> <edge from='4' to='7' id='7'/> <edge from='7' to='8' id='8'/> <edge from='7' to='10' id='13'/> <edge from='7' to='13' id='18'/> 2 </edgelist> </gzi> 4 7 Fragment pliku SVG wizualizacji grafu <?xml version="1.0" encoding="utf-8"?> <svg height="460" width="400"> <defs> <marker /> <radialgradient /> <script language="javascript"> kod javascript </script> </defs> <path d="m 150 170 L 230 150" /> <path /> <path /> <path /> <path /> 8 <circle r="5" cx="150" cy="170"/> <circle r="5" cx="230" cy="150"/> <circle /> <circle /> 10 <circle /> <circle /> </svg> Aby być pewnym prawidłowej struktury dokumentów XML korzysta się z dodatkowego plik opisującego ich gramatykę zasad które określają o występowaniu określonych nazw znaczników, ich zagnieżdżaniu, nazwach atrybutów itd. Opis gramatyki zrealizowano przy pomocy dodatkowego pliku graph.xsd opisanego w standardzie XML Schema. Proces budowania dokumentu SVG na podstawie danych XML polega na transformacji określonych znaczników (np. <node> i <edge>) na ich graficzne odwzorowanie zgodne z SVG. Węzły grafu reprezentowane przez znacznik <node type= k1= k2= k3= > zostają odwzorowane na znacznik <circle cx= X cy= Y r= 5 >. Określa się współrzędne i promień koła oraz sposób jego wypełnienia, które jest różne dla różnych typów węzłów. Połączenia pomiędzy węzłami <edge from= to= > odwzorowuje się przy użyciu znacznika <path d= M X1 Y2 L Y1 Y2 marker-end= >. Określa się początek i koniec łuku oraz definiuje się użycie znacznika <marker>, przy pomocy którego uzyskuje się grot strzałki. Znając zasady odwzorowania grafu (z opisu XML do SVG) zaprojektowano styl XSLT (ang. extensible Stylesheet Language Transformations) przy pomocy którego dokonuje się transformacji i uzyskuje wizualizację w standardzie SVG. W dokumencie XML opisującego graf GZI od razu uwidacznia się podstawowa zaleta języka XML, w którym nazwy znaczników opisują obejmowaną zawartość. Jest to tekstowy format zrozumiały zarówno dla człowieka jaki i maszyny. O tym, czy dany dokument jest zgodny ze standardem XML informuje prolog zawarty w pierwszym wierszu każdego dokumentu XML: <?xml version='1.0'?>. Wynika z tego, że i dokumenty: XSLT, XML Schema i SVG to nic innego jak tekstowe dokumenty XML. W przypadku standardu SVG jest to jego kolejna zaleta w porównaniu z komercyjnym binarnym formatem SWF z pakietu FLASH Macromedia.

PRZEKSZTAŁCANIE GZI W STRUKTURĘ MACIERZY PROCESOROWEJ Otrzymany graf algorytmu w postaci listy węzłów oraz łączących je łuków może zostać poddany przekształceniu (transformacji) w strukturę przystosowaną do wymagań wynikowej architektury systemu [3]. W projekcie zaprojektowano szkielet (ang: framework) aplikacji przedstawiony na rys. 3, który korzystając z opracowanych formatów danych wejściowych opisu grafu w XML oraz dodatkowej biblioteki wspomagających JAMA (Java Matrix biblioteka wspomagająca operacje na macierzach w języku JAVA) realizuje odwzorowanie w postaci generacji dokumentu wynikowego XML zawierającego opis struktur MP. Opis grafu Dane o kryteriach podziału ENGINE Moduły reguł podziału grafu Jama = Java Matrix class (MathWorks) TEMPLATE ŚRODOWISKO GEN (Graph ENgine) Opis struktur po podziale Widok struktur (SVG) Rys. 3. Moduł podziału grafu na macierze procesorowe Zaproponowana architektura systemu pozwala na projektowanie własnych mechanizmów podziału grafu [5] poprzez moduły reguł podziału realizowane w postaci klas JAVA. Można zastosować homomorficzne przekształcenia grafu, łącząc kilka wierzchołków w jeden makrowierzchołek, np. poprzez wykonanie rzutu grafu na pewną hyperpłąszczyznę w celu eliminacji długich łuków. Innym sposobem przekształcenia jest podział grafu na podgrafy jedną z metod dekompozycji LSGR (lokalnie sekwencyjna globalnie równoległa) lub LRGS (lokalnie równoległa globalnie sekwencyjna) [4]. a) c) d) b) e) Rys. 4. Przykładowe architektury macierzy procesorowych: a-b) dla m=1 oraz c-e) dla m=2. Przedstawione na rys. 4 struktury są jedynie wybranymi z całego szeregu wygenerowanych wariantów. Każda z nich cechuje się określonymi parametrami pracy takimi jak: liczba elementów przetwarzających (LEP), stopień równomiernego obciążenia układu, czy też liczba kanałów łączących elementy przetwarzające.

Ostatnie kryterium jest o tyle ważne, że można na jego podstawie określić również te warianty architektur dla których nie istnieją kanały zwrotne (jest to związane z podziałem obliczeń w dziedzinie czasu). Wówczas elementy przetwarzające EP w których dokonano już operacji obliczeniowych nie są potrzebne do dalszego przetwarzania. Przy standardowej implementacji w układach FPGA taki blok będzie pracował w dalszych taktach pracy zaprojektowanego systemu w trybie jałowym. W takim przypadku można zastosować wielokontekstowe układy reprogramowalne FPGA posiadające pewną liczbą jednakowych bloków konfiguracyjnych, w których mogą być przechowywane różne jego konfiguracje (konteksty dla każdego elementu przetwarzającego EP) [4]. Zastosowanie standardu SVG do wizualizacji struktur wykorzystuje ten sam mechanizm, który opisano przy wizualizacji grafu GZI. Na podstawie danych wejściowych i zaprojektowanego nowego stylu XSLT dokonuje się transformacji uzyskując wyjściowy plik SVG. ŚRODOWISKO PROJEKTOWE Zaprezentowany projekt zrealizowano w języku JAVA. Wybór języka został podyktowany dostępem do darmowej platformy tego języka umożliwiającej realizację nawet bardzo zaawansowanych rozwiązań programistycznych. Aktualnie jednym z najważniejszych projektów otwartego oprogramowania opartego o język JAVA jest środowisko projektowe, a właściwie cała platform programistyczna o nazwie ECLIPSE. Projekt jest wspierany przez przemysł informatyczny (głównie przez firmę IBM) i wykorzystywany nie tylko do badań, ale jako efektywny system produkcyjny i to nie tylko w języku JAVA [6]. Na rys. 5. przedstawiono widok środowiska ECLIPSE z otwartym przykładowym projektem zawierającym opis algorytmu oraz wizualizację grafu i wybranej macierzy procesorowej. Rys. 5. Platforma ECLIPSE jako baza projektowa generacji i wizualizacji macierzy procesorowych. Podstawowym założeniem podczas tworzenia zaprezentowanego systemu była standaryzacja określonych mechanizmów: przechowywania (serializacji) i przekazywania danych przy użyciu języka XML, sprawdzania gramatyki poprawności dokumentów przy pomocy schematów XML

Schema oraz transformacji dokumentów XML przy użyciu styli XSLT w wyniku której uzyskuje się dokumenty zgodne z XML takie jak SVG. ŚRODOWISKO PROJEKTOWE JAVA (PLATFORMA ECLIPSE) Moduł Gzi Moduł GziDecomp Moduł GziVhdl SYMULATOR VHDL ActiveHdl Opis algorytmu (JAVA) Opis grafu zależności informacyjnych GZI Opis struktury macierzy procesorowej Opis struktury macierzy procesorowej (VHDL) Transformacja XSL XML+XSL SVG PARSER SAX Transformacja XSL XML+XSL SVG Widok grafu zależności informacyjnych GZI (SVG) Opis struktury macierzy procesorowej (SVG) Adobe SVG Viewer + Przeglądarka WWW Rys. 6. Schemat blokowy elementów składowych projektu jgen. Dokonując transformacji można również otrzymywać dokumenty tekstowe o innej strukturze jak np. opis struktury MP w VHDL - języku opisu sprzętu wysokiego poziomu (ang. Very high level Hardware Description Language). Zadanie to realizuje dodatkowy moduł GziVhdl przedstawiony na rys. 6 schematu blokowego zaprojektowanego środowiska (jgen). WNIOSKI W pracy przedstawiono mechanizm wizualizacji macierzy procesorowych przy użyciu szeroko akceptowalnych i darmowych standardów opartych o XML i język JAVA. Skupiono się głównie na wizualizacji z pominięciem opisu procedur podziału, które omówiono w publikacjach [3] i [4]. Podział projektu na moduły komunikujące się formatem XML umożliwia separację projektu budowania grafu GZI od bibliotek przekształceń macierzy procesorowych MP. Ponadto specyfikacja XSLT ułatwia transformację danych i ich wizualizację w postaci formatu grafiki wektorowej SVG będącego otwartym standardem wspieranym przez konsorcjum W3C. BIBLIOGRAFIA [1] Adobe SVG Viewer 3.0 www.adobe.com/svg [2] Scalable Vector Graphics (SVG) 1.1 Specification W3C Recommendation 14 January 2003 http://www.w3.org/tr/2003/rec-svg11-20030114/ [3] O. Maslennikow, P. Sołtan. Środowisko wspomagania projektowania reprogramowalnych systemów czasu rzeczywistego. Prace II Konferencji Krajowej Elektroniki, KKE 2003, Kołobrzeg, 2003, pp.381-386. [4] R. Wyrzykowski, Ju. S. Kanevski, O.V. Maslennikov, A New Orthogonal Version of the Gauss-Jordan Algorithm and Its Parallel Implementation. Proc. 5-th Int. Euromicro Workshop Parallel and Distributed Processing - PDP 97, IEEE Computer Society Press, London, 1997, pp. 445-452. [5] O. Maslennikow, Realizacja architektur macierzy procesorowych w dynamicznie reprogramowalnych układach FPGA. Prace VII Konferencji Krajowej Reprogramowalne układy cyfrowe, RUC 2004, Szczecin, 2004, pp. 225-232. [6] Eclipse Platform - www.eclipse.org