Jaroław JUNG 1, Rafał KIEŁBIK 2, Kamil RUDNICKI 2, Piotr POLANOWSKI 1 Politechnika Łódka, Katedra Fiyki Molekularnej (1), Politechnika Łódka, Katedra Mikroelektroniki i Technik Informatycnych (2) doi:10.15199/48.2017.11.34 Od algorytmu dynamicnej ciecy ieciowej do dedykowanego komputera równoległego II mayna mdll Strecenie. W artykule opiano łożenia projektowe, budowę i realiację mayny prenaconej do ymulacji jawik achodących w wielokładnikowych układach molekularnych. Predtawiony ytem elektronicny budowano pry użyciu programowalnych układów calonych FPGA (w j. ang. Field Programmable Gate Array). W maynie aimplementowano model dynamicnej ciecy ieciowej (ang. dynamic lattice liquid - DLL) i wykonano tety jej diałania. Abtract. The article decribe the aumption of deign, contruction and implementation of a machine intended to imulate the phenomena occurring in complex molecular ytem. Preented electronic ytem wa built with the Field Programmable Gate Array (FPGA). In the machine wa implemented a model of Dynamic Lattice Liquid (DLL) and the tet of the device operation wa performed. (From dynamic lattice liquid algorithm to dedicated parallel computer II mdll machine). Słowa klucowe: programowalne układy FPGA, topologia ieci połąceń, równoległe pretwaranie danych, ymulacje molekularne. Keyword: Field Programmable Gate Arra topology of the network connection, parallel data proceing, molecular imulation. Wtęp Robudowane ytemy obliceniowe takie jak klatry komputerowe lub uperkomputery bardo cęto używane ą do ymulacji jawik achodących w łożonych układach molekularnych [1,2,3]. Jednak możliwości jakie dają ymulacje komputerowe podlegają bardo itotnym ograniceniom. Jednym nich jet niewielki, w tounku do potreb, romiar pretreni ymulacyjnej. Dla mniejych ytemów ogranicenie to wynika e końconych aobów pamięci ora ilości jednoceśnie pracujących jednotek obliceniowych, a dla uperkomputerów umożliwiających badanie obiektów awierających dużą licbę elementów ogranicenie jet wiąane możliwością preprowadenia ymulacji w roądnym caie - to nacy nie prekracającym cau trwania od kilku do kilkunatu mieięcy ciągłej pracy ytemu. W pracy predtawiono budowę kalowalnej mayny mdll awierającej komórki operacyjne (KDLL) [4] umiecone w węłach powierchniowo centrowanej ieci pretrennej (w j. ang. face-centered cubic FCC) tworącej toru trójwymiarowy [5]. Urądenie prenacone jet do wykonywania ymulacji molekularnych wykorytaniem algorytmu dynamiki ciecy ieciowej (w j. ang. dynamic lattice liquid - DLL) [6,7]. mdll tanowi rowinięcie koncepcji mayny DLL budowanej wceśniej w Politechnice Łódkiej. W maynie DLL opianej w pracach [8,9,10], na 6 płytach PCB (w j. ang. Printed Circuit Board) umiecono po 3 układy FPGA (w j. ang. field-programmable gate array), w których najdowało ię po 12 komórek operacyjnych KDLL (Ry. 1B). Komórki KDLL aimplementowane w układach FPGA najdowały ię na wirtualnych płacynach w węłach ieci trójkątnej o licbie koordynacyjnej 6 (ry. 1A). Dla każdej aimplementowanej komórki KDLL pryporądkowano po 6 wyprowadeń ułożonych na płytach PCB, a pootałe połącenia (2 ray po 3 połącenia do komórek KDLL umieconych na ąiednich płacynach) realiowano a pomocą kabli (ry. 1A i ry. 1C). Wra układami terującymi pracą mayna DLL tanowiła amkniętą trukturę pretrenną. Zatoowane w maynie DLL rowiąanie topologicne poiadało jednak itotne wady: 1) mayna była niekalowana nie można było jej robudowywać o więką licbę komórek KDLL, 2) pryjęty ytem tranmiji danych pomiędy komórkami KDLL, e wględu na ograniconą licbę końcówek lutownicych w układach FPGA uniemożliwiał umiecenie więcej niż kilkunatu komórek KDLL w jednym układie FPGA, 3) koniecna była konfiguracja układów FPGA na try pooby. Wynikało to odmiennej topologii linii wejściowo-wyjściowych dla 3 ąiadujących e obą płacyn. Każda płacyn preunięta była wględem ąiedniej o 1/2 węła ieci trójkątnej (predtawienie płacyn P1, P2 i P3 na ryunkach 1A lub 1C). Na podtawie wykonanych badań nad mayną DLL i analiy jej pryłych atoowań wynuto try klucowe wnioki tanowiące podtawę do podjęcia diałań mających na celu budowanie nowego urądenia (o robocej nawie mdll). Wnioki były natępujące: 1) należy aprojektować kalowalną maynę mdll awierającą takie ame jak w maynie DLL komórki operacyjne KDLL umiecone w węłach ieci FCC w układie torua trójwymiarowego. 2) należy opracować ora tetować nowy ytem wymiany danych pomiędy ąiadującymi płytami PCB awierającymi układy FPGA, ponieważ w najnowych układach FPGA może być implementowanych co najmniej kilkadieiąt komórek operacyjnych KDLL. 3) W celu prawdenia nowego ytemu wymiany danych mayna mdll powinna awierać co najmniej jeden kalowalny moduł otocony 26 podobnymi modułami, płyty PCB muą być tak mocowane pretrennie, aby można było w pryłości wytworyć urądenie, które będie awierało co najmniej 1 milion komórek KDLL niebędnych do wykonania ymulacji dynamiki cątecek w łożonych ciecach molekularnych. Struktura pretrenna mayny mdll Prace nad budową mayny mdll ropocęto od analiy topologii ieci FCC ora ytemu wymiany danych pomiędy komórkami KDLL. Pryjęto, że płacyny będą precinać węły w inny poób niż to predtawiono na ryunku 1. Tym raem węły ieci FCC tanowiły co drugi węeł redukowanej ieci kubicnej ZSK, dla której odległość pomiędy węłami wynoiła ax/2, a ieć FCC była jakby anurona w ieci ZSK (ry. 2A). Z analiy fragmentu ieci FCC predtawionej na ryunku 2A wynika, że można wyróżnić dwa rodaje równoległych płacyn, uytuowanych wględem iebie napremiennie, na których najdują ię węły ieci FCC. Pierwa płacyna (naywana dalej płacyną protą) 162 PRZEGLĄD ELEKTROTECHNICZNY, ISSN 0033-2097, R. 93 NR 11/2017
ropięta jet na 5 węłach o wpółrędnych (i-1,j+1,k), (i+1,j+1,k), (i+1,j-1,k), (i-1,j-1,k) ora (i,j,k). Drugi rodaj płacyny (naywanej dalej płacyną obróconą) ropięty jet na 4 węłach o wpółrędnych (i,j+1,k-1), (i+1,j,k-1), (i,j-1,k-1) i (i-1,j,k-1) (taka ama płacyna awiera punkty (i,j+1,k+1), (i+1,j,k+1), (i,j-1,k+1) i (i- 1,j,k+1)). Na ryunkach 2B i 2C predtawiona jet różnica pomiędy płacynami protą i obróconą. nieparyta, to licba tych komórek wynoiła (/2)-1 lub (/2)+1. A P1 P2 P3 U 11 B U 12 U 13 C Ry. 1. Płacyny dla ieci FCC, w których umiecono komórki operacyjne KDLL w maynie DLL wra iecią połąceń. Płacyn w których najdowali ię najbliżi ąiedi komórki KDLL (A); węły ieci leżące w jednej płacyźnie, awarte w 3 układach calonych U 11, U 12 i U 13 (B); połącenia pomiędy komórkami KDLL (C). Kolorami onacono płacyny: P1 - ciemnoarą a kartką, P2 - carną w płacyźnie kartki i P3 - janoarą pred kartką (C) Z ryunków 2B i 2C wynika, że płacyna obrócona jet to płacyna prota preunięta o jeden węeł ieci redukowanej ZSK. W dalej cęści pracy płacyną protą będiemy naywali płacynę, w której pierwy punkt w lewym, górnym rogu (i=1 i j=1) awierać będie węeł ieci FCC. W preciwnym prypadku płacyna naywana będie płacyną obróconą. Komórkom KDLL w każdym układie FPGA, prypiano położenia w co drugim pośród węłów wirtualnej (aimplementowanej w układie FPGA) ieci ZSK (ry. 3). Dla parytej licby węłów ieci licba komórek awartych w układie logicnym wynoiła /2, a gdy licba ta byłą Ry. 2. Zredukowana ieć kubicna ZSK (A); płacyny prota (B); i obrócona (C). Indekami i,j,k onacono położenie węłów w ieci ZSK. W celu implementacji komórek operacyjnych KDLL w układach FPGA należało definiować topologię ieci ZSK wpianej do tych układów. Treba było też wynacyć licbę linii potrebnych do wymiany danych pomiędy ąiadującymi e obą układami FPGA w określonych kierunkach pretreni. W ależności od tego cy licby wiery i kolumn były paryte cy nieparyte, roróżniono 4 pary układów komplementarnych różniących ię pomiędy obą kierunkami komunikacji [9,11]. Układy te ułożone były napremiennie na płacyźnie i tanowiły pary nawane dalej komplementarnymi, w których układy onacone literą P naywane otały podtawowymi, a układy U naywane otały uupełniającymi. Na ryunku 3 predtawiono prykładowe romiecenie 3 fragmentów płacyn: dwóch protych i jednej obróconej objętych pre jeden układ FPGA awierający 30 komórek operacyjnych najdujących ię w węłach redukowanej ieci ZSK. Układ awiera =4 kolumn, =5 wiery i =3 płacyn. Na płacynach onaconych indekami k-1 ora k+1 najdują ię wartwy P 1 i P 3 układu FPGA, w których kierunki komunikacji ąiednimi komórkami w tych płacynach odpowiadają układowi podtawowemu dla parytego i nieparytego. PRZEGLĄD ELEKTROTECHNICZNY, ISSN 0033-2097, R. 93 NR 11/2017 163
W trecim wymiare (wdłuż oi ), podobnie jak dla dwóch wymiarów (w płacyźnie y), wytępują 4 możliwości wajemnego ułożenia płacyn (ależne od parytości i ), w których wytępują pary płacyn protych i obróconych. Dla każdej kombinacji par płacyn, napreciw iebie awe najdują ię komplementarne układy podtawowy i uupełniający (Tabela 1). W maynie mdll komórki operacyjne KDLL najdujące ię na ścianach ieci aimplementowanej w układie FPGA komunikują ię ąiadami w 18 kierunkach a pomocą ewnętrnych linii ygnałowych (Ry. 4). Ry. 3. Romiecenie 3 fragmentów płacyn: dwóch protych i jednej obróconej o wymiarach =4, =5 i =3, objętych pre układ FPGA (linie ciągłe) awierający 30 komórek operacyjnych najdujących ię w węłach redukowanej ieci ZSK Ry. 4. Kierunki wymiany danych dla jednego układu FPGA. Wtawka wynaca orientację oi wpółrędnych w pretreni 164 PRZEGLĄD ELEKTROTECHNICZNY, ISSN 0033-2097, R. 93 NR 11/2017
Tabela 1 nieparyte paryte nieparyte nieparyte Płacyna prota Płacyna obrócona układie FPGA i od parytości parametrów, i opiany jet równaniem: 2 2 2 1 k i y j x Θ 2 1 j k i y 2 1 i j x k 2 pry cym mienne podkreślone trałkami: kierowanymi: w lewo, w prawo lub w dwie trony odpowiadające licbom naturalnym, pryjmują wartości -1, 0 i 1 godnie poniżą definicją: nieparyte paryte (2) -1 1-1 1- ; ; 1 2 2 paryte paryte W wybranym kierunku licba tych linii, onacona ymbolem,, L X,Y,Z, wynoi: X, Y, Z,, (1) L i, j, k Π Θ gdie: X, Y, Z wynacają kierunki pretrenne i pryjmują wartości binarne (np. X=1 i X =0 dane wyyłane, albo X=0 i X =1 dane nie wyyłane w kierunku oi X), y i (mienne dwuwartościowe -1 albo 1) informują w którą tronę wdłuż kierunków X, Y i Z wyyłane/odbierane ą dane (patr wtawka widocna na ryunku 4), indeky i,j to numery wiera i kolumn a indek k to numer płacyn w której najduje ię układ FPGA (ry. 3), jet równe 1 gdy urądenie jet mayną protą (układ FPGA najduje ię w lewym górnym rogu pierwej płacyny dla i=1, j=1 ora k=1) lub jet równe -1 dla mayny obróconej (gdy lewy górny róg pierwej płacyny nie awiera układu logicnego).,, onacają licbę węłów ieci ZSK awartych w układie FPGA liconych w kierunkach oi y i (ry. 3). Seściowymiarow wierowy wektor definiuje kierunki w pretreni i dany jet worem: Π XY Z XY Z XYZ XY Z XYZ XYZ a eściowymiarow kolumnowy wektor, którego wyray ależą od licby węłów (,,) ieci ZSK awartych w Mayny DLL i mdll aprojektowano tak, że układy FPGA jednoceśnie odbierają i wyyłają dane do ąiadów i dlatego każdemu kierunkowi pryporądkowane ą dwie linie ygnałowe. Zatem licba wyprowadeń każdego układu calonego FPGA (licba końcówek lutownicych) potrebnych do połącenia komórek KDLA ąiednimi komórkami w innych układach FPGA na ąiednich płytach PCBM wynoi 2,, L X,Y,Z. Równanie (1) powala wynacyć licbę tych wyprowadeń. W tabeli 2 predtawiono wyniki obliceń dla 12 komórek aimplementowanych w jednym układie FPGA (=12, =2, =1) (tak jak to realiowano w maynie DLL opianej w pracach [8,9]) ora dla prypadku 100 aimplementowanych komórek w jednym układie. Z danych amieconych w tabeli 2 wynika, że licba wyprowadeń ora licba prewodów ygnałowych prypadających na jeden układ FPGA awierający 12 komórek umożliwia wykonanie mayny o topologii połąceń podobnej do mayny DLL [8,9]. Jeśli jednak licba aimplementowanych komórek oiągnie wartość 100 lub więcej, to wtedy nie będie możliwa budowa mayn w której komórki będą e obą połącone bepośrednio a pomocą linii ygnałowych. Jet to powodowane dwoma cynnikami: 1) licba potrebnych wyprowadeń byłaby więka niż licba dotępnych końcówek lutownicych w jednym układie calonym (np. dotępnych w układach FPGA bloków OSERDES i ISERDES, które powalają na tranmiję w tandardie LVDS (w j. ang. Low-Voltage Differential Signaling)), 2) licba prewodów roprowadonych pomiędy płytami byłaby byt wielka, aby mayna mogła diałać na adowalającym poiomie nieawodności. Ze woru (1) wynika, że licba linii komunikacyjnych ależy od licby węłów ZRK implementowanych w układach FPGA. Jednak, e wględu na kalowalność mayny mdll, licba prewodów potrebnych do preyłania ygnałów powinna być awe taka ama, nieależnie od licby komunikujących ię komórek KDLL aimplementowanych w układach FPGA. Uykano to popre kompenację danych i redukcję 18 kierunków PRZEGLĄD ELEKTROTECHNICZNY, ISSN 0033-2097, R. 93 NR 11/2017 165
wynaconych pre linie komunikacyjne (ry. 4) do 6 kierunków wynaconych liniami ieci kubicnej. Dane gromadono w pakiet a natępnie preyłano je do ąiednich układów FPGA ybkimi eregowymi łącami a pośrednictwem 6 dwukierunkowych kanałów komunikacyjnych (ry. 5). Scegółowy opi poobu gromadenia danych w pakiety ora ich wyyłania i odbierania cytelnik może naleźć w dokumencie [11]. Tabela 2 Kierunek wymiany danych X Y Z X Y Z X YZ XY Z X YZ X YZ Raem Zwrot kanałów komunikacyjnych Licba linii kierunkowych dla układu FPGA /2 = 12 /2 = 100 1, 1, x = 1 L 3,3,3 1 L 3,3,3 67 1, 1, x = -1 L 3,3,3 1 L 3,3,3 67 1 1,0,0 x,1, 1 1,0,0 x,1, y = 1 L 3,3,3 11 L 3,3,3 67 1, 1, y = -1 L 3,3,3 11 L 3,3,3 67 1 0,0,1 1 1 0,0,1 1 = 1 L 3,3,3 34 L 3,3,3 40 1 0,0,1 1 1 0,0,1 1 = -1 L 3,3,3 34 L 3,3,3 40 1, 1, 1, 1, x = 1, y = -1 L 3,3,3 0 L 3,3,3 4 1,1, 1,1, x = -1, y = 1 L 3,3,3 0 L 3,3,3 4 1 1,1,0 1,1, 1 1,1,0 1,1, x = 1, y = 1 L 3,3,3 1 L 3,3,3 4 1, 1, 1, 1, x = -1, y = -1 L 3,3,3 1 L 3,3,3 4 1, 1 1, 1 y = 1, = -1 L 3,3,3 6 L 3,3,3 3 1,1 1,1 y = -1, = 1 L 3,3,3 6 L 3,3,3 2 x,1, 1 x,1, 1 y = 1, = 1 L 3,3,3 6 L 3,3,3 2 1, 1 1, 1 y = -1, = -1 L 3,3,3 6 L 3,3,3 3 1, 1 1, 1 x = 1, = -1 L 3,3,3 1 L 3,3,3 3 1, 1 1, 1 x = -1, = 1 L 3,3,3 1 L 3,3,3 2 1, 1 1, 1 x = 1, = 1 L 3,3,3 1 L 3,3,3 2 1, 1 1, 1 x = -1, = -1 L 3,3,3 1 L 3,3,3 3 Końcówek lutownicych (np. tandard LVDS) Prewodów pomiędy panelami X, Y, Z 1 X, Y, Z L 3,3,3 228 2 5 L 3,3,3 774 1,2,1 2 12,5,8 X, Y,1 1 X, Y,1 L 3,3,3 96 2 5 L 3,3,3 248 1,2,1 2 12,5,8 Kolejnym agadnieniem było opracowanie odpowiedniej topologii ułożenia układów FPGA. W ymulacjach molekularnych obar pretrenny dotępny dla cątecek w maynie jet ogranicon a w więkości prypadków analiowane obiekty awierają wielką licbę cątecek i chcem aby granice układu najdowały ię w niekońconości. W recywitych układach budowanie ieci o niekońcenie wielkich romiarach nie jet możliwe i dlatego w maynach równoległych, w których wielka licba komórek operacyjnych ytemu (np. mikroproceorów) diała wpółbieżnie w caie, toowane ą n-wymiarowe peudoniekońcone ieci [1213,14]. W maynie DLL [8,9,10] komórki KDLL umiecono w węłach trójwymiarowego torua, który powtaje po połąceniu e obą krajnych elementów ieci (ry. 6). Jednak takie rowiąanie uniemożliwia budowanie mayny kalowalnej, ponieważ dokładanie kolejnych układów FPGA powoduje, że długość połąceń krajnych elementów ieci rośnie i dla dużych ytemów może ona prekracać kilka metrów. Połącenia te będą wtedy tanowić najwolniejy element całej mayny cyniąc ją byt wolną do wykonywania 166 PRZEGLĄD ELEKTROTECHNICZNY, ISSN 0033-2097, R. 93 NR 11/2017
ymulacji w obiektach awierających wielką licbę elementów (np. 1 mln lub więcej). Ry. 5. Zredukowane kanały komunikacyjne pomiędy układami FPGA W opiywanej maynie mdll kalowalność uykano dięki atoowaniu techniki naywanej w literature leap frog [5], która polega na napremiennym łąceniu układów calonych najdujących ię w węłach ieci torua trójwymiarowego. Na rynku itnieją obudowy w potaci metalowych af prytoowane do takiego łącenia e obą płyt PCB awierających układy calone lub mikroproceory. Jednak wykorytanie takich af do budowy mayny mdll naruałoby jej kontrukcję pretrenną, w której płyty PCB układami FPGA układami FPGA umocowane ą na płakich, pionowo uytuowanych panelach. Opracowano więc inny poób romiecenia układów FPGA, który nie mienia truktury pretrennej mayny i jednoceśnie wykorytuje ytem napremiennego łącenia układów calonych (cegóły tego rowiąania najdują ię w opiach patentowych [15, 16]). na panelach, na precięciu każdej kolumny (numerowanej indekem i) i każdego wiera (numerowanego indekem j) umiecono płyty PCB awierające po 4 układy FPGA prenieione węłów: i,j; i,2m-j+1; 2n-i+12m-j+1 i 2n-i+1,j wirtualnej ieci kubicnej. Węły tej ieci obejmują obary ajmowane pre węłów ZSK aimplementowanych w pocególnych układach FPGA. Obary te tanowią podieć pełnej ieci ZSK całego panelu o 2m wierach i 2n kolumnach [17]. Ctery układy FPGA należące do jednego panelu onacono, odpowiednio, indekami =1, =2, =3, =4. Dla tak definiowanej mayny formułowano ereg równań powalających opiać jej funkcjonalność i kontrukcję pretrenną. Najbardiej użytecny w praktyce okaał ię układ równań łużący do prelicania wirtualnych wpółrędnych pretrennych komórek operacyjnych aimplementowanych w układach FPGA na ich wpółrędne x,y, w recywitej ieci ZSK. Równanie łużące do wylicania wpółrędnych komórki operacyjnej KDLL, której położenie w układie FPGA wynacały indeky a,b,c, umieconej w poycji na płycie PCB onaconej indekami i,j najdującej ię na k-tym panelu ma natępującą potać: (3) x, x, y, gdie wartości wpółrędnych x, y, wynoą: x y 11 j 1 a 122m 1 21i 1 b 222n 1, k 1 k 1 c 1 31 32 Elementy maciery pq mogą pryjmować wartości 0,1 lub - 1 i wyrażone ą a pomocą woru: 11 21 31 12 22 32 2 2 3 1 4 2 2 1 2 2 Ry. 6. Sieć kubicna w ktałcie trójwymiarowego torua Założenia kontrukcyjne mayny mdll Maynę mdll budowano według natępujących ałożeń: w układach FPGA aimplementowano wirtualną redukowaną ieć kubicną ZSK o licbie węłów (pry cym =), a w co drugim węźle tej ieci umiecono komórki operacyjne KDLL, położenia komórek KDLL w ieci ZSK konfigurowanej w układach FPGA wynacono a pomocą indeków a, b, c (indek a=1 odpowiada wpółrędnej indek b=1 odpowiada wpółrędnej a indek c=1 odpowiada wpółrędnej ), urądenie kłada ię =3 paneli awierających n=3 wiery (liconych w kierunku oi y) i m=3 kolumn (liconych w kierunku oi x), numery paneli onacono indekem k, pry cym panel o numere k=1 tanowi płacynę protą, gdie podkreślone trałkami definiuje wór (2). Wielkość jet równa 0 gdy w węźle ieci ZSK nie ma komórki operacyjnej, a równa 1, gdy komórka ajmuje miejce w węźle. wyraża ię worem: A B CA B C I J ---------------- A B C k A B C I J k -------------------- ------------------------- -------------------------------- Zmienne A, B, C, I, J odpowiadają indekom a, b, c, i, j preliconym układu cyklicnymi warunkami bregowymi do układu otwartego (eścianu awierającego ieć punktów ZSK) i wynoą odpowiednio: PRZEGLĄD ELEKTROTECHNICZNY, ISSN 0033-2097, R. 93 NR 11/2017 167
11 A a 21 12 B b 22 1 J 11j 122m 1 1 I 21i 222n 1 1 C 31c 32 Wpółcynnik jet równy: 1 ------ i wynoi 0 gdy i ą nieparyte (niemożliwe jet wtedy pełnienie cyklicnych warunków bregowych). W pootałych prypadkach =1. Wór (3) umożliwia określenie pocątkowego położenia wytkich elementów ymulowanego układu ora śledenie trajektorii ich ruchu. Realiacja elektronicna Urądenie mdll wykonano w taki poób, aby można było prawdić opracowane koncepcje kalowalności mayny i poobu preyłania informacji pomiędy ąiadującymi komórkami operacyjnymi. Mayna mdll umocowanymi płytami PCB na talowej kratownicy i prewodami do preyłania danych widocna jet na ryunku 7. Składa ię ona 3 pionowych, równolegle do iebie ułożonych paneli, na których równomiernie romiecono po 9 płyt PCB. Płyta PCB umiejcowiona w centralnej cęści środkowego panelu otocona była podobnymi 26 płytami. Pry takiej kontrukcji pretrennej wymiana danych pomiędy układami FPGA należącymi do centralnej płyty i układami najdującymi ię na ąiednich płytach muiała ię odbywać tylko a pośrednictwem fiycnie amontowanych łąc ygnałowych. Powoliło to tetować opracowaną koncepcję eregowego preyłania danych. W 108 układach FPGA aimplementowano ieci ZSK awierające po 32 komórki KDLL co dało 3240 komórek KDLL w całej maynie. Wytkie układy ailane były a pośrednictwem pretwornic napięciowych, które chłodone były powietrem a pomocą wentylatorów. Płyta dodatkowym układem FPGA łużącym do koordynacji jednocenej pracy wytkich komórek (układ terujący mayny USDLL [4,8,9]) najdowała ię na bocnej ścianie urądenia (ry. 7B). Wymiana danych pomiędy pocególnymi modułami mayny odbywała ię na 3 pooby: 1) w celu minimaliacji cau trwania tranmiji, wynikającej jej eregowego charakteru, do wyyłania i odbierania danych pomiędy komórkami operacyjnymi atoowano tranmiję w tandardie LVDS ybkością do 800 Mb/. Do połącenia układów należących do różnych płyt PCB atoowano kable Ethernet. W każdym 6 kanałów komunikacyjnych najdowało ię 6 krętek, co powoliło wymieniać dane pomiędy komórkami prędkością 3,2 Gb/. 2) dla potreb ynchroniacji pracy mayn wymagającej komunikacji pomiędy komórkami operacyjnymi i układem terującym CKDLL, atoowano mechanim preyłania ygnałów a pośrednictwem połąconych eregowo płyt PCB. Do tego celu użyto dwóch kabli Ethernet, cyli 8 krętek, cego 5 krętek otało poświęconych na komunikację w kierunku do CKDLL, a 3 krętki otały prenacone na komunikację w kierunku od CKDLL. 3) do celów konfiguracji układów FPGA, inicjaliacji pracy mayny i akwiycji wyników ymulacji atoowano linie światłowodowe ora dotępne w układach Spartan 6 bloki MGT (w j. ang. Multi-GigabitTranceiver) wpierające tranmiję po tych liniach prędkością do 3,125 Gb/ w każdym kierunku. A B Ry. 7. Mayna mdll awierająca 27 płyt PCB umieconych na 3 panelach. Na djęciu onaconym literą B widocny jet układ terujący mayny USDLL Na każdej płyt PCB umiecono po 5 układów FPGA (o numere katalogowym XC6SLX75-FGG484-2), których jeden najdował ię w ich centralnym miejcu i łużył jako element arądający pracą pootałych cterech (djęcie na ry. 8). Ry. 8. Płyta PCB układami FPGA. Centralny układ łużył do ynchroniacji pracy pootałych 4, w których aimplementowano komórki KDLL. Układ ten otał wypoażony w pamięć konfiguracji EEPROM (w j. ang. Electrically Eraable Programmable Read-Only Memory). Jej awartość w momencie ałącenia ailania łużyła do konfigurowania układu centralnego w taki poób aby mógł on komunikować ię innymi 168 PRZEGLĄD ELEKTROTECHNICZNY, ISSN 0033-2097, R. 93 NR 11/2017
podobnymi najdującymi ię na ąiednich płytach. Utworono łańcuch eregowo połąconych układów centralnych, których pierwy był układem CKDLL. Dięki takiemu rowiąaniu poiomu komputera PC połąconego CKDLL, wykorytaniem protokołu JTAG, konfigurowano wytkie układy FPGA w maynie. Tety diałania mayny mdll Ważnym elementem weryfikującymi poprawność diałania mayny mdll było prawdenie mechanimów komunikacji pomiędy układami FPGA. Dokonano tego a pomocą dwóch tetów. Pierwy tet polegał na autoweryfikacji ąiadów, którymi każdy układów FPGA ię komunikuje. Każdy tranmiter dowolnego układu FPGA wyyłał unikalny identyfikator, jednonacnie określający położenie i kierunek nadawania tego tranmitera. Po tronie odbiorcej otrymane identyfikatory były porównywane wartościami ocekiwanymi a welkie odtęptwa były raportowane jako błędy połąceń. Drugi tet preprowadono analiując ruch wirtualnej kulki poruającej ię prypadkowo pomiędy komórkami KDLL najdującymi ię w węłach ieci FCC wewnątr trójwymiarowego torua. W caie tego tetu apamiętywana była licba odwiedin kulki w każdym węźle, a ocekiwanym wynikiem był równomierny rokład tychże odwiedin we wytkich węłach ieci. Jakość tego rokładu była oceniana popre ocenę rorutu licby odwiedin wylicanej według woru: nmax nmin (4) nmax gdie n max i n max to najwięka i najmnieja aoberwowana licba odwiedin w dowolnym węłów. Wyniki preprowadonych tetów predtawiono na ryunku 9. Wynika nich, że maleje wra e wrotem licby kroków algorytmu, co jednonacnie dowodi, że wytkie połącenia pomiędy węłami aimplementowanej ieci FCC były wykorytywane w takim amym topniu. Tet kulki był też nakomitym poobem weryfikacji atoowanego generatora licb peudoloowych. Zotał on preprowadony dla różnych erokości rejetru LFSR (w j. ang Local Feedback Shift Regiter), a otrymane wyniki otały dodatkowo porównane ymulacjami preprowadonymi a pomocą komputera PC atoowaniem tandardowej funkcji RAND. Otrymane etawienie wykaało, że generator 64-bitowym rejetrem LFSR jet równie kutecny co pootałe rowiąania. Wymaga on pry tym niemalże dwukrotnie mniejej ilości aobów prętowych niż jego 128-bitowy odpowiednik. Biorąc dodatkowo pod uwagę fakt, że każda komórka KDLL jet wypoażona w wój włany generator, atoowanie w finalnej werji generatora 64-bitowego powoliło mniejyć licbę modułów logicnych potrebnych dla uykania otrymanej implementacji. Innym tetem było prawdenie poprawności i wydajności realiacji algorytmu DLL. Ze wględu na brak odnieienia do innej, podobnej do mdll mayn decydowano ię na porównanie ybkości pomiędy realiacją określonej ymulacji a pomocą mdll i komputera PC. Do tego celu w komputere uruchamiano pecjalnie prygotowaną aplikację powalającą na emulację pracy mdll. Zatoowano komputer poiadający 2 GB pamięci operacyjnej i dwurdeniowy proceor Intel Pentium D 3.4 GH, pry cym referencyjna aplikacja wykorytywała tylko jeden rdeni proceora. Analia wydajności obliceniowej urądenia mdll wykaała, że jego prewaga nad typowym komputerem oobitym jet co najmniej 40-krotna. Ze wględu na eregową wymianę danych międy modułami, wykonanie jednego kroku ymulacji dla jednej cątecki ciecy wymagało średnio 2-krotnie więkej licby cykli egara ytemowego niż w prypadku referencyjnej implementacji ekwencyjnej uruchomionej na komputere klay PC. Cętotliwość egara ytemowego w wykonanym prototypie wynoiła aledwie 100 MH, cyli była 34 ray mnieja niż w użytym do tetów proceore, co w połąceniu 2-krotnie więką licbą cykli dało niemalże 70-krotnie dłuży ca wykonania jednego kroku ymulacji dla jednej cątecki. Należy jednak anacyć, że w preciwieńtwie do tandardowego proceora, w mdll można było wykonać jednocene ymulacje dla układu awierającego ponad 3 000 cątecek. Równie dobre wyglądało porównanie poboru mocy. Założenie, że typowy komputer oobity potrebuje 200 W by ailić płytę główną, proceor i pamięć operacyjną, w konfrontacji faktem, że makymalny pobór mocy wykonanego prototypu to 1000 W, doprowadiło do konkluji, że 40-krotne prypieenie obliceń okupione było w prypadku mdll jedynie 5-krotnym wrotem apotrebowania na energię elektrycną. Ry. 9 Rorut licby odwiedin węłów w funkcji licby kroków dla różnych metod generacji licb loowych Podumowanie Zaprojektowanie, wykonanie i tetowanie mayny mdll doprowadiło do opracowania takiej jej kontrukcji, w której komórki operacyjne (np. KDLL) najdowały ię w węłach ieci trójwymiarowego torua i jednoceśnie urądenie było kalowalne. Onacało to, że pryła robudowa tego urądenia o dodatkowe płyty PCB nie będie powodowała wydłużenia połąceń prewodowych pomiędy układami FPGA i nie powolni diałania mayny. Preprowadone tety potwierdiły poprawność pryjętych ałożeń kontrukcyjnych ora pokaał że użyciem mdll można efektywnie wykonywać ymulacje molekularne. Model mayny mdll poiadał też wad które nie wpływały na jej diałanie, ale należałoby je wyeliminować budując natępne urądenie. Jedną nich była koniecność napremiennego mocowania paneli, których jeden awierał płacynę protą, a drugi płacynę obróconą. Pomimo, że umarycna licba układów podtawowych i uupełniających na dwóch ąiednich płytach PCB, na ąiadujących e obą panelach była taka ama (4 układy podtawowe i 4 uupełniające), to jednak, ależnie od parytości licby węłów, i implementowanych w układie FPGA, na każdej płyt PCB licba tych układów mogła być inna (np. na jednej płycie najdowały ię 4 układy podtawowe, a na drugiej 4 uupełniające). Onacało to koniecność opracowania ośmiu różnych podbiorów plików konfiguracyjnych, a robudowa mayny wymagała amontowania co najmniej dwóch dodatkowych płyt PCB, po jednej na ąiadujących e obą panelach. Dodatkowo prewody prenacone do tranmiji ygnałów pomiędy komórkami najdującymi ię na różnych panelach, w kłopotliwy poób, muiały być preplatane co drugi panel. PRZEGLĄD ELEKTROTECHNICZNY, ISSN 0033-2097, R. 93 NR 11/2017 169
Pomimo pewnych niedociągnięć kontrukcyjnych mayna mdll tanowiła prototyp, który był już w wytarcającym topniu pretetowany do tego, aby atoowane w nim rowiąania technologicne można było użyć do budowy urądenia o licbie awierającej od 1 mln do 5 mln komórek KDLL. Takie urądenie nadawałaby ię już do prowadenia ymulacji układów wielocąteckowych niepotykaną dotąd ybkością. Podiękowanie Projekt realiowano w ramach grantu MNiSW, N515 336136 Nr 3361/B/T02/2009/36. Autory: dr hab. inż. Jaroław Jung, Katedra Fiyki Molekularnej ul. Żeromkiego 116, 90-924 Łódź, E-mail: jarolaw@p.lod.pl; dr inż. Rafal Kiełbik, Politechnika Łódka, Katedra Mikroelektroniki i Technik Informatycnych ul. Żeromkiego 116, 90-924 Łódź, E- mail: rkielbik@dmc.p.lod.pl; dr inż. Kamil Rudnicki, Brightelligence Ltd 2/3, 1 Garriochmill Way G20 6LL, Galgow, UK, E-mail: rudnicki.dll@gmail.com; dr hab. Piotr Polanowki Politechnika Łódka, Katedra Fiyki Molekularnej ul. Żeromkiego 116, 90-924 Łódź, E-mail: ppolanow@p.lod.pl LITERATURA [1] Fitch B. G., Rayhubky A., Elftheriou M., Ward T. J. C., Giampapa M. E., Pitman M. C., Pitera J.W., Swope W.C., Germain R. S, Blue Matter: Scalling of Nbody imulation to one atom per node, IBM J. Re & Dev, 52 (2008), 145 [2] Hu, Xiaohu, Hong L., Smith M. D., Neuiu T., Cheng X., Smith J. C., The Dynamic of Single Protein Molecule I Non- Equilibrium and Self-Similar over Thirteen Decade in Time, Nature Phyic 12(2016), no. 2, 171 174. [3] Chen W., De Schutter E., Parallel STEPS: Large Scale Stochatic Spatial Reaction-Diffuion Simulation with High Performance Computer, 11(2017), Frontier in Neuroinformatic, doi: 10.3389/fninf.2017.00013 [4] Polanowki P., Implementacja ieciowych modeli ciecy i polimerów w ymulacjach opartych na obliceniach równoległych, Roprawa doktorka, (2002), Politechnika Łódka [5] Jackon R. D., Hoane A. J. Jr., Modular Infinitely Extentable Three Dimenional Toru Packing Scheme for Parallel Proceing, (1998), US Patent no. US005715391A, http://www.google.ch/patent/us5715391 [6] Pakula T., Collective dynamic in imple upercooled and polymer liquid, Journal of Molecular Liquid, 86(2000), 109-121 [7] Polanowki P., Jeka J. K., Kryiak K., Matyjaewki K., Influence of intramolecular crolinking on gelation in living copolymeriation of monomer and divinyl cro-linker. Monte Carlo imulation tudie, Polymer, 79(2015), 171-178. [8] Polanowki P., Jung J., Kiełbik R., Napieralki A., Lichy K., Od algorytmu dynamicnej ciecy ieciowej do dedykowanego komputera równoległego, Pregląd Elektrotechnicn 84 (2008), n.11, 69-73 [9] Jung J., Od wybranych agadnień elektroniki organicnej do uniweralnej mayny prenaconej do analiy jawik achodących w gętych układach wielokładnikowych, Roprawa habilitacyjna, (2016), Politechnika Łódka [10] Jung J., Polanowki P., Kiełbik R., Special tate machine baed on Dynamic Lattice Liquid model, International Journal of Engineering Science and Innovative Technology (IJESIT), 3(2014), 360-367 [11] Jung J., Polanowki P., Kiełbik R., Hałagan K., Zatorki W., Ulańki J., Napieralki A., Pakuła T., A parallel machine with reduced number of connection between logical circuit, (2016), EP Patent Application no. EP3079073A1, 2016, http://www.google.com/patent/ep3079073a1?cl=un [12] Pachanek G.G., Pitiani N. P., Barry E. F., Drabentott T. L., Method and Apparatu for Manifold Array Proceing, (2000), US Patent no. US6167502A, http://www.google.tl/patent/us6167502 [13] Daniel H. W., Parallel Proceor, (1992), EP Patent no. EP0501524A2, http://www.google.com.na/patent/ep0501524a2?cl=un [14] Paint R. S., Thoron G., Galle M. B., Hybrid Hypercube/Toru Architecture, (2001), US Patent no. US6230252B1, http://www.google.ch/patent/us6230252 [15] Jung J., Polanowki P., Kiełbik R., Hałagan K., Zatorki W., Ulańki J., Napieralki A., Pakuła T., Panel układami elektronicnymi i etaw paneli, (2016), RP Patent no. P.405479 http://regerv.uprp.pl/regiter/application?number=p.405479 [16] Jung J., Polanowki P., Kiełbik R., Hałagan K., Zatorki W., Ulańki J., Napieralki A., Pakuła T., A panel with electronic circuit and a et of panel, (2016), EP Patent Application no. EP3079071A1 http://google.com/patent/ep3079071a1?cl=en [17] Jung J., Polanowki P., Kiełbik R., Hałagan K., Zatorki W., Ulańki J., Napieralki A., Pakuła T., A parallel machine having operational cell located at node of a face centered lattice, (2016), EP Patent Application no. EP3079072A1, http://www.google.com.na/patent/ep3079072a1?cl=en 170 PRZEGLĄD ELEKTROTECHNICZNY, ISSN 0033-2097, R. 93 NR 11/2017