wejsciowych stanowiacych kombinacje co naj- mniej danych o wagach niezerowych obej- mujacych KOSZT, ENERGIA, SSO, SOD, BP, GUP, WIB, oraz modelu matematycznego, którym jest model programowania liniowego calkowitoliczbowego; d) wypracowanie co epo- ke przez modul AIL regul alokacji i relokacji plików; e) przekazanie co epoke przez modul AIL regul wypracowanych w etapie d) do modulu zarzadzajacego DMFS; f) alokacje i relokacje plików przez modul zarzadzajacy DMFS w opar- ciu o reguly wypracowane w etapie d) przez algorytmy modulu AIL. PL 439828 A1 2/52System oraz wspomagany komputerowo sposób zarzadzania pamiecia masowa Przedmiotem wynalazku jest system oraz wspomagany komputerowo sposób zarzadzania pamiycia masO\\a. Ze stanu techniki znanych jest wiele roz\\ iazaó. dotyczacych przetwarzania danych, zarzadzania systemami oraz optymalizacji dzialania systemów. Na przyklad zgloszenie US2O2 I O 11860 A I uja,vnia system przctwarzani:i. danych obejmujacy urzadzenie hosta skonfiguro,vanc do wybicrani:i. trybu szybkosci przepustowosci pamieci w oparciu o model sieci lub wielkosc partii, albo oba te czynniki. moc obliczeniowa i moc pamieci akceleratora dopasown\.ana zgodnie z wyborem trybu szybkosci: oraz urzadzenie do przechowywania danych zawierajace akcelerator skonfigurowany do zmiany stmktury macierzy elementów przetwarza1acych (PE) poprzez sterowanie sciezkami transmi~ii pierwszych danych wejsciowych i drugich dan\'ch wejsciowych. które sa wprowadzane do macierzy PE w oparciu o tryb pn,:dkosCJ szerokosci pasma pamieci, w którym moc pamieci \V calkowitym budzecie mocy jGst zwiyksza.na od wartosci poczatkmvej mocy pamiQci, jesli \\ ybrany jest tryb pierwszej pn;dkosci. a moc obliczeniowa ,v ealko,vitym budzecie mocy jest zwi9kszana od wartosci poczatkowej mocy obliczeniowej, jesli tnb drugiej pr9dkosci jest zaznaczona. Zgloszenie EP3729279 A I dotvczy sposobu organizmvania danych ,, urzadzeniu zunifikmvancj pami9ci maja.c~m zunifikowany nosnik pami9ci i jedna lub wi9ccj jednostek przetwarzajacych. Ujawniony sposób obejmuje kolejno: konfigurowanie piernszego modulu pamieci zunifikowanego nosnika pamieci w celu komunikov,ania sie z jedna lub wieksza liczba jednostek przehvarzajacych i zavvierajacych pierwszy zbiór komórek identyfikowanych przez unikalny identyfikator komórki pamieci. które sa skonfigurowane do przechowywania danych: konfigurowanie dmgiego modulu pamieci zunifikowanego nosnika pan1ieci w celu komunikowania sie z jedna lub wieksza liczba jednostek przetwarzajacych i zaV\1erania drugiego zbioru komórek pami9ci, które sa. skonfiguro\V a.i1e Jo przcchov\y\\ania unikalny idcnt: fikator komórki; oraz konfiguro,\anic jcdnostki przct\\ arzania jcdnej lub \v iykszcj liczby jednostek przetwarzania w celu: odbicrania picnvszych danych \\Cjsciowych z jedncj z pierwszych wiciu komórek pamiyci, odbierania dmgich danych wejsciowych z jednej z dmgich wiciu komórek pamieci i generowania danych wyjsciowych na podstawie na pierwszych i drugich danych wejsciowych. Zgloszenie US2017277628 Al dotyczy urzadzenia obliczeniowego do zarzadzania pamiecia sieci neuronowej, które zawiera pamiec zawierajaca dane o lacznosci zwiazane z pierwszym neuronem sieci neuronowej, przy czym pierwszy neuron jest zwiazany z wieloma neuronami wejsciowymi i wieloma neuronami wyjsciowymi, przy czym dane o lacznosci zawieraja sekwencje bitowa wskazujaca, które z wielu polaczen sieciowych do wielu neuronów wyjsciowych mialo wage niezerowa i które z wielu PL 439828 A1 3/52polaczen sieciowych do wielu neuronów W)j sciowych ma wage zerowa; modul przetwarzania pakietóv. do odebrania pakietów danych z drugiego neuronu oraz do ustalenia, ze pakiet danych wskazuj..: skok z drugi0go neuronu jako w0jsci0 do pi0nvszego n0uronu: modul okreslania lacznosci do odczytu pamii/ci ,v celu uzyskania dosti/PU do danych o lacznosci zwiazanych z piernszym neuronem sieci neuronowej w odpowiedzi na ustalenie, ze pakiet danych wskazuje skok z drugi0go neuronu jako wejscie do pierwszego neuronu: oraz modul okreslania wagi do (i) okreslania, dla kazdego z wiciu polaczc11 sieciowych do "iclu neuronów w:jsciowych, które maja niezerowa wagy, adresu pamieci. pod którym przechmvywana jest odpowiednia niezerowa ,vaga oraz (ii) dostepu . dla kazdego z wielu polacze11 sieciowych do ,vielu neuronów w,jsciowych. które maja niezerowa wage. odpowiednia niezerowa \\age z lokalizacji pamieci odpowiadajacej odpowiadaiacemu adresowi pamieci. Przy czym modul przetwarzania pakietów przetwarza pakiet danych w oparciu o wage wielu polaczen sieciowych do wielu neuronów wyjsciowych, które maja niezerowa wage, oraz w którym wagi wielu polacze11 sieciowych do wielu neuronóv- wyjsciowych maja zerowa wage nie sa bezposrednio przecho,Yywane ,, pamiyci. Zgloszenie EP3557485 Aldotyczy sposobu uzyskiwania dosti/PU do danych i ich przetwarzania przez urzadzenie akceleratora, który obejmuje kolejno: pobieranie co najmniej czc;sci danych vvejsciowych do przetworzenia przez urzadzenie akceleratora; segmentowanie danych wejsciowych na wicie sasiednich plytek wejsciowych, przy czym pl:tki wejscio\\c maja z góry okreslony rozmiar; przechowywanie co najmniej jednej z wielu sasiednich plytek wejscimvych w buforze danvch urzadzenia akceleratora: dostep do elementów danych co najmniej jednego z wielu sasiednich pl:tek wejsciowych przechowywanych w buforze danvch poprzez umieszczenie okna wejsciowego nad elementami danych przechowywanymi w buforze danych. w celu wygenerowania wielu obszarów ,vejsciowych. przy czym okno wejsciowe jest regulowane zgodnie z zestawem parametrów, i w którym Josl(ip Jo ekmenlóv. realiLujacym bufor danych: oraL seb,encyjnc prLetwarzanie co najmniej jednego L ,,iclu obsLarów wej scim, ych w celu co najmni..:j CZi/Scimv..:go przetwarzania co najmniej jednego z wielu sasiednich plytek wejsciowych przez urzadzeni0 przyspieszajace. Ponadto zgloszenie ujawnia system obejmujacy host przetwarzania; co najmniej jedna pamicc: aparat akcclcratormvy do przchvarzania danych ,vejsciowych oraz polaczenie laczace host przetwarzania, co najmniej jedna pan1iec i urzadzenie, przy czym urzadzenie jest skonfigurowane do pobierania danych wejsciowych z co najmniej jednej pamieci za posrednictwem polaczenia. Przy czym, wspomniany aparat akceleratorowy zawiera interfejs skonfigurowany do laczenia urzadzenia z polaczeniem oraz co najmniej jeden modul przetwarzania skonfigurowany do przetwarzania danych wejsciowych, przy czym urzadzenie akceleratora jest skonfigurowane do pobierania co najmniej niektórych danych wejsciowych za posrednictwem interfejsu i przetwarzania danych wejsciowych, przy uzyciu co najmniej jednego moduhl przetwarzania. PL 439828 A1 4/52Natomiast zgloszenie US2O21049459 Al ujawnia systemy i metody wydajnego wykonywania w czasie rzeczywistym widu procesów uczenia maszyno,,ego. W jednym przykladzie wykonania platforma obliczeniowa z wieloma elementami obliczeniowymi oJbiera wiele strumieni czym kazdy taki strumie1i. jest powiazany z \\fasnym odpowiednim proc0sem ucz0nia maszynowego. Kazdy proces ucz0nia maszyno\\0go wykorzystuje swój strnmie11 danych jako dane \\0jsciowe do trenmvania ,v czasie rzeczywistym odpmviedniego modelu matematycznego. Kazdy z procesóvv ma szczyty i spadki wymagan przetwarzania. System ponownie przydziela w czasie rzeczywistym elementv obliczeniowe z procesów o nizszym zapotrzebo,vaniu na przetv.·arzanie do procesów o ,vvzs7:vm zapotrzebo,vaniu na przetwarzanie. tym samym obslugujac wszystkie liczne procesy w locie. zapobiegaja.c tym samym przestojom systemu. oraz zmniejszenie ogólnych zasobów obliczeniowych wymaganych przez system. Przy czym. ujawniony sposób efektyv.nego ,vykonywania wielu procesów uczenia maszynowego, obeJmuje nastepuja.ce etapy: odbieranie na platformie obliczeniowej zaw ieraja.cej wiele elementów obliczeniov.ych wielu strnmieni zestawów danych; ciagle uczem0, za pomoca wielu elcmcntÓ\\ obliczeniowych, ,, iclu modeli matematycznych z wykorzystani0m odpowiednio wielu strumieni dzialajacych jako dan0 w0jscio,,e, \v którym wspommanc ciagle uczemc jest wykonywane odpowiednio jako wicie proccsÓ\\ uczCLua maszynowego w polaczeniu z wieloma elementami obliczeniowymi, przy czym wicie modeli matematycznych obejmuje picrw~zy model matematyczny i drngi model matematyczny, przy czym wiele elementów obliczenio\\ych obejmuje jeden lub wiecej pierwszych elementów obliczeniowych przydzielonych do ciaglego uczenia sie piern·szego modelu matematycznego i jeden lub wiecej drngich elementów obliczeniowych przydzielonych do ciaglego trenowanie dmgiego modelu matematycznego; wykrycie na platfom1ie obliczeniowej podczas wykonywania wielu procesów uczema masz: nowego sLanu Lynu.:zasowego, w którym ciagle uczerm; drugiego modelu matl:matye,:nego po,:ostajl: w tyk za odpowil:dnim strumienil:m wielu stnunil:ni zbiorów dameh \V wyniku tymczasowego stanu obliczeniowego zwiazanego z Jrugim modelem matematycznym i oJpowicJnim strumieniem; oraz co najmniej tymczasowe ponowne przydzielenie co najmniej jeJnego z co najmniej jednego pierwszego elementu obliczeniowego z uczenia ciaglego pierwszego modelu matematycznego do uczenia ciqglcgo drngiego modelu matematycznego na podstawie, przynajmniej czc;scio\\o, "Ykr:iego stanu tymczaso\\cgo i wykorzystanie ponownie przydzielonego co najmniej jednego pierwszego elementu obliczeniowego jest nizsze niz wykorzystanie co najmniej jednego drugiego elementu obliczeniowego, zwiekszajac w ten sposób wydajnosc wspomnianego ciaglego szkolenia, które pozostaje w tyle za odpowiednim strumieniem, umozliwiajac w ten sposób platformie obliczeniowej radzenie sobie ze stanem tymczasowym. Celem wynalazku jest zapewnienie systemu oraz sposobu optymalizacji i zwiekszenia efektywnosci systemów pamieci masowej. PL 439828 A1 /52Istota wynalazku jest system zarzadzania pamiecia masowa oparty o s1ec1 neuronowe, charakteryzujacy sie tym, ze zawiera: a) modul akceleracyjny AIL z wbudowanymi algorytmami sztucznej inteligencji w postaci sieci neuronowej skonfigurowany do wiclokryterialnej zmiany regul alokacji i relokacji na podsta\,ie danych wejsciowych stanowiacych dane o operacjach na plikach otrzymane z modulu DMFS i obejmujace co najmniej kombinacj9 mst9pujacych danych o \Yagach niezerowych KOSZT, E"\JERGIA. SSO, SOD, BP, GUP, WIR przy czym reguly alokacji i relokacji sa wypracowywane co epoke na podstawie trenm,ania " czasie rzeczywistym sieci neuronmvej na podstawie ,,zorców pochodzacych z matematycznego modelu. generowanych na podstawie wspomnianych danych wejsciowych: orn7 b) modul zarzadzajacy DMFS skonfigurowany do zbierania infom1acji dotyczacych operacji na plikach i przekazywania ich do komponentu AlL oraz do wybierania trybu alokacji i relokacji plików w oparciu o reguly wypracowane przez algorytmy modulu AIL. Korzystnie siec neuronowa stano\\ i siec neuron o\, a typu perceptron wie Im, arst\\ owy. Korzystnie perceptron wielowarstwowy sklada sie z warstw_\ wejsciowej, 1-3 warstw ukrytych oraz warst,,y VV_\j scio,, ej. Korzystnie modul akcelerac::iny AIL jest wyposazony w karte akceleracyjna bazujaca na ukladzie GPGPLJ. Kolejna istota wynalazku jest ,,spomagan: komputerowo sposób zarzadzania panm,:c1a masowa znamienny tym, ze obejmuje: a) zbieranie co cpok9 przez modul zarzadzajacy DMFS informacji dotyczacych operacji na plikach obejmujacych co najmniej KOSZT ENERGIA, SSO, SOD, BP, GUP, WTB: h) przekazywanie co epoke przez DMFS danych zebram·ch w etapie a) wraz z ich konfiguracja do modu lu akceleracyjnego A TT : c) trenowanie w czasie rzeczywistym algorytmów sztucznej inteligene:ii w postaci sieci neuronowej wbudowanej w modu! AIL. z wykorzystaniem danych wejsciowych stanowiacych kombinacje co najmnieJ danych o wagach niezerowych obejmujacych KOSZT, ENERGIA, SSO, SOD, BP, GUP, WIB, oraz modelu matematycznego, którym jest model progran1owania liniowego calkowitoliczbowego; d) wypracowanie co epoke przez modul AIL regul alokacji i relokacji plików; e) przekazanie co epoke przez modul AIL re gul wypracowanych w etapie d) do modulu zarzadzajacego DMFS; f) alokacje i relokacje plików przez modul zarzadzajacy DMFS w oparciu o reguly wypracowane w etapie d) przez algorytmy modulu AIL. PL 439828 A1 6/52Korzystnie siec neuronowa zastoso,,ana w sposobie wedlug wynalazku stanowi siec neuronowa typu perceptron wielowarstwowy. Korzystnie perceptron ,, iclo\'varstwov. y sklada siy z warstw:- \vcjsc10wej, 1-3 warstw ukrytych oraz warst\,y w:j sciowcj. Przy czym, w rozumieniu niniejszego wynalazku stosuje si9 nastypujacc definicje pojyc: SYSTEM system zarzadzania pamic;cia masowa. MACIERZ urzadzenie do skladowania plików " SYSTEMIE (pamic;c masowa), " którego sklad wchodzi zestaw nosników. AIL - (Artificial Intelligence Layer) - komponent SYSTEMU. wykorzystujacy metody optymalizacji. sztucznej inteligencji i uczenia maszvnmyego do zarzadzania rozmieszczaniem plików na nosnikach. DMFS - (Data Management File Sy~tem) - komponent SYSTEMU odpowiadajacy za operacje na nosnikach. AIDTOOL - narzedzie w ramach komponentu DMFS do zarzadzania konfiguracja SYSTEMU. REGULY ALOKACJI wielowariantowa regula o alokacji pliku t\'vorzonego w MACIERZY. REGULY RELOKACJI \\iclowariantowa regula o relokacji pliku istniejacego w MACIERZY. REGULY DOMYSLNE - reguly okreslone w konfiguracji SYSTEMU przez jego administratora za pomoca narn;:dzia AIDTOOL, które sa uzy,\anc do alokacji plików bezposrednio po uruchomieniu SYSTEMU oraz wtedy, gdy komponent DlVTFS nic mógl wykorzystac RFGUlY ALOKACJT lub REGULY RELOKACJI EPOKA - okres (niekoniecznie stalej dlugosci). po któffm komponent ATL udostepnia wypracowane .,co EPOKE" REGULY ALOKACJI i REGULY RELOKACJI. PARAMETRY PLIKU - dane o pliku w postaci ustalonego zestav.u trójek (nazwa_parametru. typ_parametru, wartosc_parametru), które zapisywane sa na nosniku wraz z danymi, tworzacymi zawartosc pliku. PARAMETRY NOSNIKA - dane o nosniku w postaci ustalonego zestawu trójek (nazwa_parametru, typ_parametru, wartosc_parametru), które przechowywane sa w SYSTEMIE. KRYTERIA - lista kryteriów, którymi kieruje sie AIL, podczas opracowywania regul alokacji i relokacji dla wielokryterialnej optymalizacji rozkladu plików na macierzy. PL 439828 A1 7/52TABELA PLIKÓW - lista danych o plikach o rozmiarze p, zawierajaca parametry (statyczne i dynamiczne) tych plików, do których w okreslonym okresie czasu SYSTEM mial dostep. Na podstawie TABELI PLIKÓW komponent , \.IL wypracowuje REGULY ALOKACJI i REGULY RELOK.A.CJI. AIL moze ,, dowolnym momencie skorzystac z TABELI PLIKÓ\V za posrcdnict,,cm odpowiednich funkcji komponentu DMFS. TABELA NOSNIKÓ\V - lista nosnikó,, w MACIERzy z~rn1cra;Jaca parametry (statyczne i wyliczane) tych nosników. Na podstawie TABELI NOSNIKÓW komponent AIL wypracowuje REGULY ALOKACJI i REGULY RELOKACJI. All moze w dowolnvm momencie skorzvstac z TABELI NOSNIKÓW za posrednictwem odpowiednich funkcji komponentu DMFS. TA BELA W AG - lista wag okreslajaca stopien uwzglednienia kryterium przy maksymalizacji lacznej korzysci wzgledem wszystkich kryteriów lacznie Suma wag musi wvnosic l (jeden). a kryterium, które ma byc pominiete. ma przypisana wage O (zero). Wynalazek dostarcza nm,tepujacych korzysci: • Algorytmy sztucznej inteligencji modulu AIL pozwalaja na automatyczna, inteligentna alokacjy i rclokacjy danych zgodnie z ustalonymi kryteriami np. szybkosc dostypu, bezpiecze11st,vo, koszt skladowania, poprzez \vyznaczanic \vzorca za pomoca optymalizacji wiclokrytcrialncj; • System i sposób wedlug wynalazku zapewniaja optymalizacjy rozkladu danych i przez to zwic;;kszcnic cfck1ywnosci systemów pamic;;ci masowej; • Zaadoptowanie i zintegrowanie algoryimów decyzyjnych z akceleracja sprzc;;towa pozwala na wyeliminowanie opóznien charak'iery·stycznych dla bibliotek urnchamianych tylko w srodmvisku opartym o standardowe procesory: • Rozwiazanie wedlug wynalazku zapewnia zbieranie infom1acji o stanie i uz,ikowaniu pamieci masowej do nauki w1elokryierialnie optymalnego rozkladu danych (np. koszt wydajnosc. bezpieczenstwo) wykorzystujac automatyczne próbkowanie i analize kluczowych paran1etrów (takich jak: stan danvch cyfrowvch w trakcie ich pelnego cyklu zycia. stan nosników w czasie, operaqe relokacji danych c,fro\\ych) oraz automatyczne uczenie sie sposobu uzytkowania pamieci masowej; • Rozwiazanie wedlug wynalazku zapewnia automatyczna. optyn1alna. alokacje i relokacje przechowywanych danych cyfrowych; • Rozwiazanie wedlug wynalazku umozliwia przesuniecie kluczowych operacji zwiazanych z zarzadzaniem danymi cyfrowymi oraz powiazanych z nimi informacjami ze strony uzytkownika na obszar algorytmów sztucznej inteligencji. PL 439828 A1 8/52\Vynalazek przedstawiono v, przykladach wykonania na rysunku, na którym fig. l przedstawia schemat systemu wedlug wynalazku; fig. 2 przedstawia schemat dzialania algorytmów decyz)jnych w sysh.anic i sposobie \v1.;dlug wynalazku: fig 3 przedstawia schemat sieci neuronowej wykorzystanej w systemie oraz sposobie V\ cdlug wynalazku. Przyklad 1 System zarzadzania pami9cia maso,va oparty o sieci neuronowe "~cdlug wynalazku przcdsta,viono na fig. 1. Operacje na systemie plikóv, w jadrze systemu operacyjnego sa przckaz:wane poprzez biblioteke libFuse do oprogramowania DMFS znajdujacego sie ,v przestrzeni uzytkownika, który to okresla ostateczna decyzje "ykonania operacji na systemie plików zapamietujac przy tym istotne informacje dotyczace tych operacji i decyzJi. przekazuje je nastepnie do moduh1 sztucznej inteligencji All. podejmujacej decyzje o ewentualneJ zmianie polozenia plików w systemie plików zwracajac je w celu wykonania do oprogramowania D.YlFS. Glównym zalozeniem dla dziala.ma Systemu wedlug wynalazku _jest wielokryterialna optymalizacja rozkladu plikóv\ na macicrzy, przy kryt1.:riach takich jak: • minimalizacja kosztu nosnikóv\, • minimalizacja zuzycia energii przez nosniki, • maksymalizacja sredniej szybkosci odczytu plików z nosników, • maksymalizacja sredniej szybkosci zapisu plikóv\ na nosniki, • minimalizacja sn.:dnicgo opóznienia dostypu do plików na nosnikach, • maksymalizacja bczpicczc1istv\a plików przechowywanych na nosnikach, • maksymalizacja gystosci upakowania danych na nosnikach, • minimalizacja vvibracji spov\ odowanych praca nosnikóv\. Szczcgólm\y zakres krytcrió,v przedstawiono w Tabeli 1: sposób ich W\liczania przez System wedlug w, nalazku Tabela 1. Kr:tcria optymalizacji rozkladu plików na macierzy Nazwa Sposób wyliczenia Typ kryterium/akronim KOSZT Koszt przestrzeni zajetej przez AIL. real KOSZT KOSZT== I;=l KOSZ½ X (LiEm(j)SWPi/PA/Lj), gdzie: PL 439828 A1 9/52mU) - zbiór identyfikatorów tych plików. o których infonnacje zawarte sa w TABELI PUKÓW. które to pliki umieszczone sa nosniku j. mtnimulizuwuc; ZUZYCIE ENERGII L4czm.: zuzycil: energii przez nosniki ponaJ lryb spocz: nku. real ENERGIA " ( ) ZEO- ZEZ ENERGIA== L POD~z L wo1 + po{ L wz1 J=l I iEm(j) I iEm(j) mmimalizowoc SREDNTA SZYBKOSC Srednia szybkosc odczytu danych z plików. real ODCZYTU sso := Lj=l LiEm(i) WOZ DANYCH Lj=l rotcz LiEm(j) woi I sso maksymolizuwac SREDNIA SZYBKOSC Srednia sz: bkosc zapisu danych do plików. real ZAPISU DANYCH SSOZ:= Lj=lLiEm(j) WZt ssz }: 11 1 }: wz j-1 POZ iEm(j) i 'J maksymalizowac SREDNIE real OPÓZNIENIE A DOSTEPU SOD:= Lj=l (LiEm(j) LOOi + LiEm(j) LZAPt) ' SOD gdzie PL 439828 A1 /52BEZPIECZENSTWO PLIKÓW BP GESTOSC UPAKOWANIA CUP WIBRACJE NOSNIKÓW WIB A == f (o osi ( L Looi + L LZAPi)) j=1 iEm(j) iEm(j) m1nimalizo1vac Wspólczynnik bczpicczc11stwa plików. In_ (100 - SZj) LiEm(j) SW Pt BP:=-- 1 --- 1 -------- n maksymolizowac Srednia gestosc upakowania danych na nosnikach. maksymolizm1 1oc L~=l (LLEm(j)SWP1 /GABJ) GUP:= n Sredni poziom wibracji nosników. Ln- WJ Bi LiEm(i)(WOi + WZi) W!B := ---'-1_-_1 _________ _ n m1nima!izowuc real real real Modul akceleracyjny AIL z wbudowanymi algorytmami sztucmej inteligencji w postaci s1ec1 neuronowej (np. perceptron wielowarstwowy) jest skonfigurowany do wielokryterialnej zmiany regul alokacji i relokacji na podstawie danych wejsciowych stanowiacych dane o operacjach na plikach otrzymane z modulu DMFS i obejmujace co najmniej kombinacje nastepujacych danych o wagach niezerowych KOSZT, ENERGIA, SSO, SOD, BP, GUP, WIB. Przy czym reguly alokacji i relokacji sa wypracowywane co epoke na podstawie trenowania w czasie rzeczywistym matematycznego modelu programowania liniowego calkowitoliczbowego na podstawie wspomnianych danych PL 439828 A1 11/52wejsciowych. Ponadto w tym przykladzie w,konania modul AlL jest wyposazony w karte akceleracyjna bazL\jaca na ukladzie GPGPL. Natomim,t modul zarzadzajacy DMFS skonfigurov.any do zbierania informacji dotyczacych operacji na plikach i przekazywania ich do komponentu AIL oraz do wybierania trybu alokacji i relokacji plikÓ\\ ,, oparciu o reguly wypracowane przez algorytmy modulu AIL. \V tym przykladzie wykonania modul zarzadzajacy DMFS (Data Management Filc System) jest warstwa systemu plikó", pozwalajq.cq. na odseparowanie rzeczywistego systemu plików od klientów korzystajacych z pamieci masoweJ uz)ikmrników, aplikacji, bazy danych, itp. System plików DMFS rozmieszcza dane na urzadzeniach pamieci róznych typów wraz z mozliwoscia relokacji danych pomiedzy nimi, przy uwzglednieniu iz relokacja danych bedzie transparentna dla klientów. Dodatkowo, za pomoca narzedzia AlDTOOL (stanm,iacego sub-komponent DMFS l sa w nim zapisywane i przekazywane do modulu AlL dane dotyczace plików, nosników, wag kryteriów i regul domyslnych. Przez DMFS sa zbierane ró,,niez dane o operacjach na plikach \v Systemie \V postaci tabeli plików, odczytywanej nastc;;pnie przez modul AIL. Systcm plikó\v Dl\.IFS jcst paramctryzowan) za posrednictwem nam;dzia AIDTOOL, wyszczcgólniajq.c konfiguracje;; wydajnosci oraz bezpiccze1istwa plikÓ\\ poprzez nadawanie im dodatkowych cech, profilowanie systemu poprzez regulacje;; wag oraz okreslanie wstc;;pncgo rozkladu plikó,, na wskazane nosniki poprzez definiowanie regul (Regul Administratora) Charakteryst,ke modulu DMFS oraz modulu A.TL przedstawiono ponizej MODUL DMFS Modul DMFS sklada sie z nastepu1a.eych elementów: • Narzedzia AIDTOOL • Komponent Ctx • Komponent Fs. Alloc • Filesystem DMFS • Metadane • Komponent Recfg • Komponent Reloc • Komponent Aip Narzedzie AIDTOOL DMFS w trakcie swojej pracy zbiera informacje dotyczace operacji na plikach, takie jak czestotliwosc i wielkosc odczytu/zapisu oraz aktualny rozmiaru pliku wraz z iloscia zmian. Informacje te wraz z PL 439828 A1 12/52konfigura~ia wprowadzona za posrednictwem narzedzia AIDTOOL. przekazy,,ane sa do modulu sztucznej inteligencji AIL, któ1y na tej podsta\'vic: \vypraco,,u_je wlasne decyzje dotyczace rozkladu plikó,, na nosnikach wchodzacych w sklad macierzy DMFS. D..:cyz_j0 AIL sa nast9pnie przekazyw a110 do Dl\IFS i sa podsta,,a do relokacji plih.ów oraz do alokacji nowych plików, co j0st równoznaczne z zastapieniem regul tworzonych za posrednictwem AIDTOOL. Komponent Ctx Komponent Ctx stanowi glówny konfigurac.1i DMFS t,rnrzacy kontekst systemu. Jest umcknniany wraz ze startem DMFS. Tnicjalizacja Ctx rozpoczyna sie od wywolania metody 'ctx(Ctx * pSelf)" .która w pienv-szej kolejnosci inicjalizuje blokade rwlock (mutex r/,~) a nastepnie wywoluje operacje 'DmfsCfglnit()'. która rozpoczrna tworzenie instan~ji klas przecho,Yt~iacych konfiguracje Dmfs (Diagramie 3. 4). Zadaniem blokady rwlock jest blokowanie im1ych watków korzystajacych z kontekstu systemu w przypadku rekonfiguracji online. Poprawne zak01i.czenie 'ctx()" zwraca wartosc zero (O). W kazdym przypadku po,,stania bh;du, inicjalizacja zostaje przcmana a informacja o bh;dzi..: ( zwracana jest do komponentu ,,ywolujacego Ct:--.:.. Usuwanie instancji Ctx odbywa si-;; poprzez wywolanie '_ctx()' a proces przebiega w odwrotny sposób jak inicjalizacja a ewentualne blQdy sa pomijane. Wywolanie 'dmfsCfglnit()' umchamia inicjalizacje poszczególnych komponentów przechowujacych informacje dotyczace: • Cfg - konfiguracji systemowej I 2 I • Drives - konfiguracji nosników 111121 • Ru les - regul tworzenia plików 111121 • Filemask- dodatkowej parametryzaqi plików 111121 • Weights -wag L2Jl5J Poprawne zakonczenie 'dmfsCfglnit()' zwraca wartosc zero (O). W kazdym przypadku powstania bledu, inicjalizacja zostaje przerwana a informacja o bledzie ( zostaje zwrócona. Inicjalizacja komponentów dziedziczacych po abstrakcyjnej klasie BaseCfg rozpoczyna sie od otwarcia i rozpoczecia odczytywania pliku z wartosciami parametrów. Do odczytu sekwencyjnego linia po linii, BaseCfg uzywa komponentu klasowego GetFile z galezi narzedzi Tools: PL 439828 A1 13/52• BaseCfg przesyla do Tools: :Getfile komende 'fOpen(pName. ppF)' • Tools::GetFile zwraca do BaseCfg infonnac_1e o statusie • Tools::GetFile przesyla do BaseCfg komende 'CfgFileCB(pOb. p_line)'. która jest wskaznikiem na Callback podanym podczas wyv. olania [Open Kazda linia zav. icrajaca \varlosci paramclrów .wslajc zapisana do listy parairwlrów • BaseCfg przesyla do List komend1r 'addToEndList(pData, size, ppList)' w celu dodania bufora danych konfiguracyjnych Po zak011czeniu czytania pliku, deskryptor zost~je zamkniyty oraz inicjalizacja zostaje zako11czona. \V kazdym przypadku powslania bl1rdu (,vyl„1czajac zamkniycic pliku), inicjalizacja zoslajc przerwana a odpowiednia informacja o blc;;clzic zostaje zwrócona (patrz: AIDTOOL blc;;dy). Rekon figuracja DMFS rozpoczyna sie od przesiania do Ctx przez Aidtool komendy 'recfg()', która w pienvszej kolejnosci wywoluje operacje ·Przypisz nm,a konfiguracje do zmiennej tymczasov,ej". umozliwiajac w ten sposób t"·orzenie nowego kontekstu systemu w tle. Ctx \V)WOluje operacje ·omfsCtglnif. która uruchamia proces tworzenia obiektów kolejnych klas dziedziczacych po komponencie · BaseCfg · zapisywanych w zmiennej tymczasowej. W przypadku powstania bledu. zostaje on zv. rócony do komponentu Aidtool ( · DmfsCfglnit · zv. raca do Ctx informacjt; o blt;dzie, Ctx z,vraca do Aidtool informacje o bledzie, zmodyfiko\\ana w zaleznosci od typu komponentu, v. którym pm,stal blad). Wiycej informacji na temat typów blydów, znajduje siy w niniejszym opracowaniu ,v sekcji ,Typy blydó,, ". Wiycej informacji na temat 'DmfsCfglnit' znajduje si1r niniejszym opracowaniu w sekcji ,Jnicjalizacja komponentów konfiguracyjnych". \N przypadku gdy operacja 'DmfsCfglnit' zakoi'1czyla sic; sukcesem, Ctx wykonuje 'Oczekuj na zablokmnnie rn lock (nrntex r/w) do zapisll', w przypaclkll którego niepowodzenie okreslone czasem '.lO sek (w wersji prototypowej jest to wartosc wprowadzona do kodu) zwraca hlad 'ATDTOOL_ERR_LOCK'. oznaczajacy brak mozliwosci zalozenia blokady. co skutku_1e niewykonaniem rekonfiguraC:ii i zakonczeniem procesu. W przypadku zalozeniu blokady do zapisu (mutex r/w). Ctx v.ywoluje operacje 'Zapisz nowa konfiguracje', która w miejsce jej aktualnej wersji wprowadza nowa, nastepnie Ctx aktualizuje wskaznik nowej wersji konfiguracji dla z.a.rejestrowanych komponentów poprzez 'Wskaz nowa wersje kontekstu dla zarejestrowanych komponentów' (w wersji prototypowej inne komponenty korzystaja z tej wartosci w celu sprawdzenia poprawnosci kontekstu na jakim pracuja). Dalej Ctx zwalnia blokade do zapisu 'Zwolnij blokade rwlock (mutex r/w) do zapisu' oraz usuwa poprzedni kontekst, zwalniajac pamiec ('Usun poprzednia konfiguracje'). PL 439828 A1 14/52Na ko1icu procesu rekonfiguracji Ctx zwraca do Aidtool informacje 'O', oznaczajaca poprawne jej wykonanie. Wyrejestrowanie nie jest W)magane w teJ V1ersji DMFS poniewaz zaden zarejestroV1any kompon..:nt ni..: ko1iczy zycia w trakcie dzialania DMFS. Komponent Fs, Alloc Kompon..:nt Fs odpowi..:dzialny jest w DMFS za komunikacjy z FUSE. Operacje uzytkownika na plikach i katalogach przekazywane sa przez FCSE do Fs, kióry to wspólpracujac gló"nie z komponentem Alloc obsluguja system plików DMFS Filesystem DMFS System plików DMFS \\ ogólnym op1s1e wykorzystuje wiele dostepnych nosników w sposób transparentny dla uzytkownika, to jest w taki sposób by uz:-,ikownik korzystal z ich przestrzeni jako z jednej calosci. Istota rozwiazania jest mozliwosc dobom nosników w celu wielokr:ierialnej optymalizacji dzialania macierzy DMFS. Metadane System plików DMFS wykorzystuje atr:buty plikóv. (xattr) \\ celu przechowywania wymaganych dla zrealizowania swoich zada11 danych. Nazwy tych atrybutów nic moga byc dostypne dla uzytkownika. Fs sprawdza zarezerwowane atrybuty X w FilcTab. Fs obsluguje zarezerwowane atr:huty X. Zarczcrn owanc atrybutów X (naz"')') uniemozliwiaja modyfikacje; atrybutów X uzywanych przez DMFS. Dodatkowo umozli"iaja urnchamianie dodatkowych funkcjonalnosci DMFS z poziomu systemu plików uzytko"nika Fs resetuje sie w Alloc. Fs wyszukuje plik lub katalog w Alloc. W obecnvm rozwiazaniu funkCJonalnosc ta jest identyczna jak ,,yszukiwanie katalogów z tym ze wvszuku1e równiez pliki. Fs wykonuje operacje na pliku lub katalogu. Fs informuje o zmianie pojemnosci nosnika w Dri,es. FUSE tworzy nowy plik Fs. Fs resetuJe sie w Alloc. Ze wzgledu na wymagame wskazu.1ace na minimalizacje opóznienia dotyczacego ruchu na plikach obiekt Alloc tworzony jest dla watku a nie dla pojedynczej operacji na pliku (wiele operacji na pliku dla jednego watku Alloc) dlatego tez musi zostac „zresetowany" czyli wyczyszczony jego stan z poprzedniej operacji. FileTab zapisuje dane nosnika. Alloc sprawdza aktualnosc kontekstu systemu. Alloc rozpoczyna tworzenie nowego pliku. Alloc wlacza obsluge dlugich nazw plików. Alloc poszukuje odpowiedniej maski dla pliku. Alloc wysyla zapytanie do AIL. Alloc sprawdza reguly Administratora. Alloc sprawdza reguly domyslne. Reguly domyslne polegaja na znalezieniu nosnika o jak najwiekszej dostepnej pojemnosci. Fs PL 439828 A1 /52poszukuje lokaliza~ji dla nowego pliku w Alloc Alloc zwraca nosnik dla nowego pliku do Fs. Fs tworzy nowy plik na wskazanym nosniku. \V przypadku bledu Fs ponawia poszukiwanie lokaliza~ji dla nowego pliku przez komponent Alloc. Fs tworzy nov,y plik \V FilcTab. Sformulowanie "tworzy 110\\ y plik" jest umO\\lle poniewaz komponent Filc Tab implementuje swoje rozwiazanie dla takiej funkcjonalnosci. W \\ersji prototypowej Dl\1FS FilcTab tworzy nowy \\pis w Tabeli Plików lub usuwa najstarszy plik jezeli Tabela Plików jest przepelniona. FilcTab genemje ID nowego pliku. FileTab tworzy stmktun; dla nowego pliku. Utworzona. stmktun; wypelnia wartosciami domyslnymi. FileTab tworzy deskryptor pliku. FileTab poszukuje miejsca " Tabeli Plików. Pliki " trakcie relokacji nie moga byc usuniete z Tabeli Plików FileTah sprawciza kontekst systemll. FileTah ciociaje strnkture do Tabeli Plików FileTab przesuwa strukture na szczyt Tabeli Plików. Ta operacja umozliwia sortowanie plikó\v wgledem najczestszego ich uzy\rnnia. File Tab zapisuje wymagane parametry w atrybutach X. File Tab zwraca uclrn yt do pliku do Fs. Uchwyt do pliku to numer pozycji w Tabdi PlikÓ\\ oraz ut,,orzone ID pliku. Fs zapisuje uchwyt do struktury\\ Tabdi Plików. Komponent FUSE umozli\\ia przechmvywanic jednej wartosci danychjak.o uchwyt. Fs resetuje sic; ,v A.Hoc. Fs wyszukuje plik w A.Hoc. Fs wykonuje operacje; na pliku. Fs aktualizuje informacje o plikll w FilcTab. Operacje na pliku ( odczyt zapis) wykonywane przez Uzyikmrnika przedstawione sa. na przykladzie zapisu do plikll. gdzie Fs pobiera deskryptor pliku z FileTah. FileTah zwraca dwa deskryptory, jeden dla pliku. na którym obecnie pracuje system oraz drugi w przypadku gdy trwa relokacja \\Skazuja.cy na plik docelowy. FileTab odczytuje deskryptor pliku na podstawie uchwytu. J-iileTah sprawdza czy pozycja zawarta w uchwycie nalezy do odpo,Yiedniego ID pliku. Zaklada sie ze nie bedzie mozliwosci zeby plik znajdo,rnl sie pod inna pozvc_1a niz ta zapisana w uchwycie poniewaz tylko jeden system (czyli DMFS) zarzadza plikami. Moze zaistniec sytuacja ze pliku nie bedzie " Tabeli Plików wtedy zostaje on zaladowany z nosnika. Istnieje jcszczc mozliwosc taka, zc odczytany plik ni-: bc;dzic utworzony prLeL DMFS wtcdy powinny byc db niego stworzom; nowe atrybuty. Fs zapisujc dane do pliku. W przypadku gdy plik jest rclokmvany zapis dotyczy obydwu zwróconych przcz FilcTab deskryptorów z uzyciem systemowej blokady danych, na których wykonywana jest operacja. Fs aktualizuje informacje o pliku w FileTab. Fs informuje o zmianie pojemnosci nosnika. FUSE tworzy nowy katalog Fs. Fs pobiera identyfikator dla nowego katalogu w FilcTab. Fs resetuje sie w Alloc. Fs poszukuje lokalizacji dla nowego katalogu w Alloc. Obecnie na wszystkich nosnikach tworzony jest ten katalog. Komponent Alloc moze przerwac operacje w razie bledu. Fs tworzy nowy katalog na wskazanym nosniku. Nieutworzenie katalogu na nosniku na którym ma sie znalezc plik nie jest bledem krytycznym. Fs aktualizuje informacje o katalogu w FileTab. FileTab zap1suJe wymagane parametry w atrybutach X. Fs informuje o zmianie pojemnosci nosnika w Drives. PL 439828 A1 16/52FUSE usuwa katalog poprzez Fs. Fs resetuje sie w Alloc. Fs wyszukuje katalog w Alloc. Alloc przeszukuje aktualny nosnik. Alloc przesuw a wskaznik nosnika. Fs usuwa katalog na \\ skazanym nosniku. Operacja jest powtarzana az do koó.ca listy nosników. Komponent Rccfg ReCfg jest odpowiedzialny za proce~ rckonfiguracji DMFS online czyli podczas pracy Macierzy. Rckonfiguracj9 rozpoczyna przeslanie komunikatu recfg z AIDTOOL. DMFS inicjalizuje ReCfg. ReCfg oczeku.1e na sygnal od AIDTOOL. Na obecna clmil9 jedynym sygnalem od AIDTOOL jest sygnal rekonfiguracji. W wersji prototypowej komunikacja z AIDTOOL odhnx.a sie za posrednictwem "Named Pipe". ReCfg odczytuje sygnal od AIDTOOL. Sygnalem do relokacji jest wartosc jeden w pierwszvm ba1cie przesylanych danych. W przypadku rozwiniecia komunikacji z AlDTOOL do DMFS nalezy okreslic inne wartosci pierwszego bajta danych. Mechanizm odczytu sygnalu od AIDTOOL musi blokowac inne odczyty do czasu zakonczenia obslugi sygnalu. ReCfg uruchamia rekonfiguracje w Ctx. Ctx alokuje pamiec dla nowej konfiguracji. Ctx odczytujc konfiguracj-; Weights. Ctx odczytuje konfiguracj-; Rulcs. Ctx odczytuje konfiguracj-; Filcmask. Ctx odczytuje konfiguracj-; Drivcs. Ctx odczytuje konfiguracj-; Cfg. Ctx sprawdza limit wielkosci Tabeli Plików. Ctx wysyla sygnal do zarejestrm\anych komponentów. ·wicie komponentów korzysta z aktualnego kontekstu systcmu(konfiguracji), który to zmieni si9 po rekonfiguracji. Kazdy z komponentów musi odrebnie implementmrnc fakt zmiany kontekstu podczas pracy SYstemu. ZdecYdowano sie na forme rejestraC]i komponentów· dla poinfonnowania o zmiarne kontekstu podczas pracv systemu (inne to np. suma kontrolna CRC wersjonowanie konfiguracji) poniewaz wyklucza mozliwosc przypadkowego powtórzenia sie podobnej \\artosci. Przypadek pm,tórzenia wartosci przy CRC lub wersjonowaniu ma male prawdopodobie1istwo powstania jednak w systemach embedded nalezy wykluczac mozliwie kazda a\varie, która moze spowodO\\aC bledna praca systemu. Na k011eu Ctx usuwa poprzednia konfiguraej 9. Komponent Reloc Reloc odpowiada za relokacje plików pomiedzy nosnikami wchodzacymi w sklad Macierzy. Relokowanie pliku jest inicjalizowane poprzez Kolejke relokacji pochodzaca z modulu sztucmej inteligencji lub poprzez potrzebe przesuniecia pliku z nadmiernie zajetego nosnika. Ponizszy opis przedstawia przykladowy proces inicjalizacji komponentu Reloc oraz proces relokacji na podstawie kolejki Relokacji. DMFS inicjalizuje Reloc. Reloc rejestruje sie w Ctx. Reloc inicjalizuje Logger. Reloc inicjalizuje AilThread. AilThread oczekuje na sygnal od AIL. W przypadku prototypu, komunikacja z AIL PL 439828 A1 17/52odbywa sie za posrednictwem pliku ,\ymiany danych. Sygnal wykonywany jest poprzez usuniecie pliku wymiany danych przez AIL. Ai!Thread konv.ertuje Kolejke Relokacji. W wersji prototypowej Kolejka Relokacji jest plikiem v. ymiany danych w formacje który nic posiada wymaganych paramdrÓ\\ w zwiazku z tym \\}maga konwersji \V pi,.mvszcj kokjnosci nazwa pliku \\ymiany danych zostaje zmieniona na plik o nazwie "/tmp/rcloctmp".Umicjscowicnic pliku w katalogu "/tmp" powoduje, ze po umchomicniu maszyny plik zostanie systcmo\\ o usunic;ty podczas inicjalizacji systemu operac:jncgo. Ai!Thrcad odczytuje Kolcjke Relokacji. Ai!Thrcad sprawdza czy istnieja. pliki do relokacji. AilThread pohiera informacje o pliku do relokacji. AilThread aktualizuje Liste Relokacji. Lista relokacji jest obszarem w pamieci w któ~111 kolejkowane sa zadania relokacji Istnieje po to by zadania relokacji mogly hyc tworzone przez wiele róznych komponentów-relokacja zagniezdzona. Lista relokacji umozliwia równiez wielowatkowe relokowanie plików Ai!Thread odcz:tuje Liste Relokacji. Ai!Thread pobiera pierwszy plik do relokacji. Pliki do Relokacji pobierane sa z list Relokacji. Ai!Thread inicjalizuje RelocProc. Ai!Thread uruchamia relokacje w RelocProc. RelocProc sprawdza pojemnosc docclo,\ ego nosnika. RelocProc inicjalizujc plik do relokacji ,v I_Reloc Plik zdatny do relokacji musi znajdowac si9 \V Tabeli Plików oraz spelniac wymagane wanmki kwalifikuja.ce go do relokacji RelocProc sprawdza czy nic zmienil si9 kontekst systemu. V{ przypadku zmiany kontekstu systemu najprawdopodobniej zmieni sic; ró,vnicz charaktc~'styka macierzy. Dlatego tez nalezy zaprzestac rclokacj na podstawie obecnej Kolejki Relokacji. RelocProc sprawdza czy docelowy nosnik istnieje. RelocProc tworzy docelowy plik. I Reloc sprawdza czv plik nie jest usuniety. I Reloc sprawdza czy plik nie ma zgloszonego bledu. I_ Reloc sprawdza czy plik nie jest juz relokowany. I_ Reloc sprawdza czy nie posiada atrybutu X. wyklucza1acego relokacje I_ Reloc kopiuje sciezke do pliku. I_ Reloc spra\\dza czy sciezka do pliku jest poprawna. I_ Reloc kopiuje deskryptor pliku. I_ Reloc ustawia flage relokacji. RdocProc wylacza akLualiLacjy daty. RclocProc oucLytuj..: slalysl) ky pliku zróulow..:go. RelocProc sprawuza czy nic posiaua uowia.zai1. \V przypadkLt dowia.zai1 nalc,i.aloby stworzyc mechanizm umozliwiaja.cy mechanizm przeniesienia dowia.zai1 na plik docelowy.Na tym etapie wymaganie to nic jest konieczne. RelocProc odczytuje statystyk.:; pliku docelowego. RclocProc porównuje czy nosnik docelowy nic jest nosnikiem zródlowym. RclocProc alokuje pamic;c w pliku docclm,)111. RclocProc rozpoczyna relokacje. RelocProc inicjalizuje RelocFileThread. RelocFileThread sprawdza statystyke pliku zródlowego. RelocFileThread informuje o rozpoczeciu relokacji w I_ Reloc. I_Reloc sprawdza flage relokacji. I_ Reloc sprawdza czy plik nie jest juz relokowany. I_ Reloc ustawia deskryptor pliku docelowego. RelocFileThread rozpoczyna kopiowanie danych. Kopiowanie rozpoczyna sie od konca pliku. Operacje nadpisywanie i dopisywanie danych przez uzytkownika w relokowanym pliku wykonywane sa na pliku zródlowym i docelowym. Operacje które anuluja relokacje. RelocFileThread zaklada blokade odczytu na pliku zródlowym. RelocFileThread zaklada blokade zapisu na pliku docelowym. RelocFileThread kopiuje dane z pliku zródlowego. RelocFileThread odblokowuje plik PL 439828 A1 18/52zródlowy. RelocfileThread kopiuje dane do pliku docelowego. RelocfileThread odblokowuje plik docelowy. RelocFileThread ustawia parametry pliku docelowego. RelocFileThread kopiuje czasy pliku. RelocFilcThread kopiuje atrybuty X. RelocFilcThread przenosi plik docelowy z katalogu tymczasom;go. RclocFilcTlm;ad informuje o zakoó.czeniu relokacji \\ I_Rcloc. Od tego momentu rozpoczyna sic; sekcja krytyczna trwajaca az do usunic;cia pliku zródlowego. Jednym z problemów jest fakt, iz przez pe,,icn moment na macierzy bc;da istnialy dwa takie same pliki na róznych nosnikach, ale zamiana deskryptorów w Tablicy Plików rozwiazuje ten problem. T_Reloc ustawia offset deskryptora. T_Reloc zamyka deskryptor pliku zródlm, ego. I Reloc ustawia deskryptor docelowy na zródlowy. I_ Reloc ustawia docelowy nosnik dla pliku. I_ Reloc zernje flage relokacji RelocFileThread usuwa plik zródlowv. A ilThread powtarza operacje Po zakonczeniu wylacza Reloc oraz usuwa w AilThread. Komponent Aip Komponent Aip jest scisle zwiazany z zadaniami dotyczacymi modulu sztucznej inteligencji AIL jak: • Allocate_file - odpytanie modulu sztucznej inteligencji alokacje nowego pliku • Realocate_file - odp_\ tanie modulu sztucznej inteligencji relokacje istniejacego pliku • Inicjalizacja komponentu Ail odpo\\iadajacego za przygotowanie pliku z informacjami o ruchu na plikach i innych aktualnych parametrach Zadania Allocate_filc, Rclocate_filc odpowiadaja za odpytywanie modulu sztucznej inteligencji o miejsce alokacji lub relokacji plików. W \\Crsji prototypowej DMFS wymagaja doko11czcnia implementacji Rclocatc filc jest blizniaczo podobnym technicznie roz,,iazanicm do Allocatc_filc DMFS utwórz plik z parametrami pliku DMFS files allocnte_file.py Pobierz plik z parametrami pliku DMFS files. allocate_file.py Wczytaj pliki binarne files. allocate_file.py Zapisz liste nosników dla pliku DMFS files allocate_file py Przetwarzaj . DI\IFS Pobierz liste nosników dla pliku DMFS files. U ser Utwórz nowy plik DMFS. DMFS Utwórz nowy plik. DMFS Urnchom skrypt sh allocate_filepy. Dzialanie realizuje rozwiazanie zaproponowane przez dostawców modulu sztucznej inteligencji w wvkorzystaniem odn;bnych watków. MODULAIL Komponent Ail odpowiada za przygotowanie pliku z informacjami o ruchu na plikach i innych aktualnych parametrach dla modulu sztucznej inteligencji AIL. Aip inicjalizuje Ail. Ail rejestruje sie w Ctx. Ail oczekuje na sygnal od modulu sztucznej inteligencji. W przypadku prototypu, komunikacja z AIL odbyvva sie za posrednictwem pliku wymiany danych. Komunikat wykonywany jest poprzez usuniecie pliku wymiany danych przez modul sztucmej PL 439828 A1 19/52inteligen~ji. Ail tworzy Tabele Plików w FileTab. Ail tworzy Tabele Wag w Weights. Ail tworzy Tabele NosnikóV1 ,, Drives. DMFS inicjalizuje Aip. A.il odpowiada na sygnal od modulu AIL . Nastypnie wraca do oczekiwania na sygnal od All. Komponent FilcTab zbiera informacje o ruchu na plikach. \,\\wolywanie funkcjonalnosci FilcTab dotyczy komunik;.1cji z innymi komponentem Fs i opisane jest \\ lasnie w nim. Ponizszy diagram przedstawia natomiast Filc Tab w przebiegu pelnego procesu ot,varcia pliku oraz operacji na pliku. Algorytmy decyzyjne modulu A.TL Zaimplemento,vane na karcie akcelerac)jnej algorytmy wypracmrnjacego reguly alokacji i realokacji plikóv, ,v macierzy naleza do klasy metod nadaznych. tj. metod które na podstawie biezacego stanu systemu (macierzy pamieci) wypracowujac decyzje co do pracy systemu na pewien okres w przód. Efektywnosc algof)tmów decyz:-'.inych. rozumiana jako \\zrost efektvwnosci mac1erzv pam1ec1 dzialaiacego wraz z algorytman1i decyz:,jnymi. w stosunku do efektywnosci mac1erzv pam1ec1 dzialajacej bez tego komponentu. jest W) padkowa VI ielu elementó,,. Kluczowymi elementami sa: zakres informacji dostypn~ eh dla wypracov. ania decyzji (regul alokacji i realokacji plików), czas wypracowania decyzji oraz dlugosc okresu, na który wypracmvana dGcyzja ma zastosmvanie. Zakres informacji wykorzystywanych przez algorytmy modulu AIL do wypracowania decyzji (regul alokacji i relokacji plików) Mozliwa liczba plików w strnmicniu wyklucza mozliwosc opcrmvania na \\szystkich plikach. co z kolei wyklucza mozliwosc ustalanie biezacego stanu macierzy pamieci i wypracowania decyzji z wvkorzystaniem pelnej infonnacji o strnmieniu plików Dla efektywnej pracv algof)tmów decyzyJnych 1 macierzy pamieci. stan biezacy oraz prognoza stanu ustalana Jest i wypracowywana jedynie na wyselekc.1onowanym. reprezentatywnym podzbiorze plików. Poniewaz kazdy z plików w systemie jest opisany wektorem parametrów niosacych istotne, róznicujace pliki infomiacje. efektywne operowanie nawet na tak1ch podzbiorach ró\\niez nie jest mozliwe i dlatego w tym przykladzie ,,ykonania zastosowano agregacj-,; informacji niesionej przGz wysclekcjonowany podzbiór plikó,, w modelu,, iclowymiaro\\ej kostki. Kazdy bok kostki reprezentuje pewien parametr. Dlugosc boku kostki to zakres zmiennosci parametru. Zakresy zmiennosci parametrów dzielone sa na odcinki, co prowadzi do podzialu wielowymiarowej kostki na mniejsze kostki (dla wygody nazywamy je kategoriami). Pliki o parametrach mieszcz.acych sie w zakresach danej kategorii sa do tej kategorii przypisywane i sa dalej reprezentowane przez wartosci parametrów przypisane kategoriom (w najprostszym przypadku wartosc srednia dolnego i górnego zakres parametru danej kategorii). W ten sposób powstaje agregat strumienia informacji. Kostka moze byc parametryzowana na wiele sposobów: poprzez ilosc wymiarów kostki, zakresy zmiennosci parametrów, skale zmiennosci parametrów w zakresie (równomierna, potegowa, ekspotencjalna). PL 439828 A1 /52Wypracowanie decyzji Wypracowania wzorca optymalnego przydzialu plików do nosników pamit;ci na agregacie strumienia plikó,\ mozna dokonac jedynie prz:- odpowiednim stopniu agregacji informacji o strumieniu plikÓ\\. Problem przypisywania plików bez pelnej informacji do nosników rozwiazano za pomoca uczenia maszynowego. Na agregacie strumienia plikó\\ \\yuczono klasyfikator jak przydzielac do nosnikó,v pliki nic niosace pclncj inf01macji. \V tym celu zastosm,ano standardm,c podejscie uczenia maszynowego: na wejscie klasyfikatora podawano parametry plików nalezacych do podzbiom plików, który zostal uzyty do wytworzenia agregatu. Etykietami obiektów (tu: plików) ,,ymaganych przy nauczaniu z nadzorem, byly wyniki optymalizacji, a wiec kazdy plik z podzbiorn plikó" mial przypisany nosnik wskazany przez optvmalizator Klasyfikacja byla poprawna. jezeli plik zostal zaklasyfikowany do tej samej kategorii. Proces uczenia klasyfikatora oparty jest na obserwacji tzw. funkcji kosztu. Uczenie ko11czy sie, gdy nie nastepuj-:: istotna popra"'a wartosci tej funk'-'.ii. Problem przypisywania plików z pelna informacja do nosników roz,,iazano, posilkujac sie agregatem. Dla darn..:go pliku, na podstavvie jego parametrów okresla si(i. do jah.;j kategorii nakzy ten plik. Znajac v\ yniki optymalizacji (przypisanie kategorii plików do nosnikóv\ ), przypisanie nosnika do pliku jest natychmiastowe. Majac opt_\111alny przydzial katcg01ii plikó,v do nosnikó,v, wypracowany na etapie optymalizacji, przydzial plików bez pelnej informacji do kategorii, wypracowany na etapie uczenia maszynowego w fom1ie klasyfikatora, oraz przydzial plikóv, do nosnikó,v oparty na agregacie, mozna bylo utworzyc reguly przydzialu dowolnego pliku do najwlasciwszego, w sensie przyjetych kryteriów pracy macierzy pamieci. nosnika. Algor:tmy decyzyjne wykorzystuJa. bezposrednio techniki agregacji danych i sztuczne sieci neuronowe. Rozwiazanie hybr:dowe, polegajace na polaczenie tych dwóch elementów z metodami optymalizacji, dla uzyskania konkretnych funkcjonalnosci w rozwazanym zastosowaniu. jest rozw1azamcm nowatorskim. Schcmat ideowy dZJalania algorytmów decyzyjnych v\ systcmic i sposobie ,, c Dane wejsciowe modulu AIL Informacje wejsciowe dla AIL pobierane od DMFS zawarte sa w: • tabeli plików (Tabela 2), • tabeli nosników (Tabela 3), • zestawie wag kryteriów (Tabela 4). Tabela 2. Parametry plików wymagane do pracy modulu AIL PL 439828 A1 21/52Nazwa Znaczenie Typ Uwagi parametru/akronim IDENTYFIKATOR identyfikator pliku. integer O Niezmienny. ID CL-\G Ciag identy fikatorÓv\ Lista Identyfikatory katalogóv, ,, sciezce IDENTYfIKATORÓW katalogów. intcgcr O dostypu do pliku, np. [34 56 67 89], I-CA. TA.LOGÓW gdzie 34 oznacza katalog stojacy CIDK naj"yzcJ w hierarchii. a 89 - naJ111ZCJ. TDENTYFTKA TOR Jdcntvfikator nosnika. intcgcr o 0 - nosnik nic jest okreslony dla NOSNIKA luh 0:= 0 nowych plików. IDN ROZSZERZENIE Roz~zcrzcnic pliku. tekst Ciag znakó,Y od ostatniej kropki wystepuj a.cej w naz"·1e pliku do EX ostatniego znaku (wlacznie) nazwy pliku, np. ,,.doc·', ,,. ·,_ TYP DANYCH Faktyczny typ danych tekst lub Np.: PDF, JPEG. 0 - typ danych zawartych w pliku. me jc;st okreslam dla no,,ych TD .. :- 0 ., plików. WLASCICIEL Identyfikator wlasciciela pliku. intcgcr O UID (mer ID). IW DEZPIECZENSTWO Parametr okreslajacy pozadany intcgcr 0 - Administrator nic podal ladnej stopic11 ochrony pliku (im [0;100] lub wartosci. BP wiyksza wartosc, tym pozadany -1:= 0 stopien ochrony wiekszy). UPRAWNIENIA Tablica uprawnien zapisana na Intcgcr O 4 bajtach w postaci int. UP SZYFROWANIE Flaga oznaczajaca, czy plik ma Liczba o, byc szyfrowany. lub 1 PL 439828 A1 22/52SzP lNTENSYWNOSC ODCZYTU IO INTENS'r '\\ 'N OSC ZAPISU IZ PLIK TYLKO ODCZYTU PTO PLIK PODLEGAJACY RELOKACJI HOLD DO NIE Parametr przewidywana okreslajacy integer 0 - Administrator nie podal zadnej intens,w nosc LO; 100 J lub wartosci. o Paramdr przcwid_nvana oh.rcslajac) intcgcr 0 - Administrator nic podal zadnej intcnsn\11osc [O; 100] lub \\ artosci. zapisu Flaga okreslajaca c,:y plik jest Liczba o. tylko do odczytu. lub 1 Flaga okreslajaca CZ\ plik Liczba o. podlega relokacji. lub 1 CZAS OSTATNIEJ Czas ostatniej relokacji pliku. data_czas lub O:= 0 Wartosc przekazywana w RELOKACJI COR CZAS OSTATNIEGO Czas ostatniego dostypu do DOSTI;PU CUP pliku lub O:= 0 strukturze time_t. 0 - plik nie byl relokowany. Wa1tosc przekaz: v, ana w :-trukturzc timc_t. 0 - pliku. HISTORIA WIELKOSCI PLIKU Ilistoria zmian wielkosci pliku tablica h h jest maksymalna przcchow_'\\ana HWP w formie listy par: (czas par operacji zmieniajacej wielkosc (data_czas, pliku, wielkosc pliku). real) liczba par (pojemnosc) na nosniku. Dla nowych plików na liscie umieszczana jest para (data_czas, O). HISTORIA OPERACJI Historia opcracJI odczytów tablica h Dla nowych plików na liscie par umieszczana jest para (data_czas, PL 439828 A1 23/52ODCZYTU pliku. (data_czas. O). real) HOO lub lista pusta [] IIISTORIA OPERACJI Ilistoria opcracJI zapisóv\ do tablica h Dla now,ch plikó,, na liscie ZAPISU pliku. par umieszczana jest para (data_czas, (data_czas. O). HOZ real) luh lista pusta 11 Parametry wyliczane przez AIL SREDNIA Srednia wielkosc pliku w real WIELKOSC: PLIKU epoce. SWP LICZBA OPERACJI Liczba operacji odczytu z pliku integer ODCZYTU PUKU w epoce. LOO WOLUMEN Wielkosc danych odczytanych real ooczyTóW PLIKU z pliku w epoce. wo LICZBA OPERACJI Liczba operacji zapisu pliku w integer ZAPISU PLIKU epoce. LZAP WOLUMEN Wielkosc danych zapisanych do real ZAPISÓW PLIKU pliku w epoce. wz PL 439828 A1 24/52Tabela 3. parametry nosników, wymagane do pracy AlL Nazwa Znaczenie Typ parametru/akronim IDENTYHKATOR Idcntvfikator nosnika. intcgcr lub tekst ID POJEMNOSC AIL Pojemnosc przestrzeni do dyspozycji AIL. liczba PA.IL PRZESTRZEN Slopic11 zaj-;tosci pojemnosci ATL przez wszystkie pliki na liczba ZAJETA ATL nosniku. ZPAIL KOSZT Koszt nabycia przestrzeni do dyspozycji ATL. integer KOSZT OPOZNIENIE Sredni czas oczekiwania przed rozpoczeciem kazdej integer DOSTEPU operacji odczytu/zapisu. ODS PREDKOSC Srednia szybkosc odczytu. liczba ODCZYTU PODCZ PREDKOSC Srcdnia szybkosc zapisu. liczba ZAPISU POZ ZUZYCIE ENERGII Pobór moc) przy odczycie danych ponad pobór V\ trybie real - ODCZYT spoczynku. ZEO ZUZYCIE ENERGII Pobór mocy przy zapisie danych ponad pobór w trybie real - ZAPIS spoczynku. ZEZ SZYFROWANIE Okresla, czy nosnik wykonuje szyfrowanie na poziomie Boolean PL 439828 A1 /52SzN sprzetowym. BEZPIECZENSTWO Okresla poZJom bezpieczenstwa nosnika. integer BN GABARYTY Gabaryly nosnika. real GAB Intcrprclacj(i Lego paramelru okresla wzor obliczania kryterium GESTOSC CPAKOW ANIA WIBRACJE Okresla poziom \vibracJi nosnika. real WIB Interpretacje,· tego parametru okresla nzór obliczania kr-tcrium WIBRACJE NOSNIKÓW. ZUZYCIE Stopien zuzycia nosnika. intcg:cr sz [0;100] Tabela 4. Opis wag kryteriow "ymaganych do pracy A IL Nazwa Znaczenie Typ Zakres KOSZT Koszt przestrzeni zajetej przez liczba Min= OJ)O; AlL Max= 1.00 ENERGIA Laczne zuzyc1e energn przez liczba Min= 0.00; nosniki ponad tryb spoczynku Max= 1.00 sso Srednia szybkosc odczytu danych liczba Min= 0.00; z plików. Max= l.00 ssz Srednia szybkosc zapisu danych liczba Min= 0.00; do plików. Max= 1.00 Srednie opóznienie dostepu do liczba Min= 0.00; PL 439828 A1 26/52SOD plików Max= 1.00 GUP Srednia gestosc upakowania liczba Min= 0.00; danych na nosnikach. Max= 1.00 WIE Srcdni poLiom \\ibracji nosnikó,,. liczba Min= 0.00; Max= 1.00 Dzialanie AIL Na podstawie historii wartosci parametrów kazdego pliku ujc,;tcgo w TABELI PLIKÓW (Tabela 2), A IL bedzie obliczal wartosci tzw. parmnetró,, wyliczanych pliku (parametry wyliczane sa na podstawie parametrów: HWP. HOO. HOZ) Parametry wyliczane plików zidentyfikowano dla potrzeb wypracowywania przez AIL regul alokacji i relokac_1i. Dla potrzeb wypraco\\ywania tychze reguL komponent ten uwzgledrna takze inne parametry plikó,Y. W tym przykladzie wykonania na postawie infom1acji wejscimYych: parametry plików, parametry nosników oraz zestaw wag kryteriów (Tabele 2-4), modul AIL tworzy reguly, aktualizowane co cpok9, które rekomenduja. alokacje i rclokacj9 plików na nosnikach. Dlugosc 1:poki moze byc zmienna i jest powiazana z aktywnoscia. smnego Systemu. B9dzie skraca.na ,v sytuacji, gdy zesta\\ plikó\', wymagany do uruchomienia AIL (sprawdzany w funkcji Continuc_ \York) zostal wygcnerowany odpowiednio szybko - w przcci\'vnym ,vypadku, bcdzic wydluzana. Reguly pozwalaja na wskazanie nosników (wskazanie ID nosnikó,Y) na podsta"ic przedstawionych parametró"· pliku. l\fodul ATL podejmuje wi9c (wielowariantowe) decyzje o rozmieszczeniu plików na nosnikach W tym przykladzie wykonania w systemie wedlug wynalazku zastosowano sztucma siec neuronowa typu perceptron wielowarstwowy (ang. MultiLayer Perceptron - MLP; Micheli-Tzanakou, E., (red.), 2000, "Supervised and Unsupervised Pattern Recognition: Feature Extraction and Computational Intelligence - Feature Extraction and Computational Intelligence", CRC Press, Boca Ratan), w której przeplyw sygnalów jest jednokierunkowy - od warstwy wejsciowej, poprzez warstwe ukryta, do warstwy wyjsciowej. Sygnalami wejsciowymi sa parametry plików, a sygnalami wyjsciowymi sa identyfikatory nosników. Zbiór uczacy perceptronu jest wynikiem dzialania Bloku Optymalizacji. Siec MLP tworzona jest wraz z kazdym wywolaniem komponentu AIL, tak wiec jej struktura ulega zmianie z wywolania na wywolanie tegoz komponentu. Domyslnie stosowana jest jedna warstwa PL 439828 A1 27/52ukryta. ale rozwiazanie wedlug wynalazku przewidaje zastosowanie wiekszej ich liczby. Minimalna liczba warstw ukrytych to L maksymalna warstwa liczb ukrytych to 3. Schemat uzytego w rozwiazaniu perceptronu wiclowarstwov,c:go przedstawiono na fig. 3. Dane wyjsciowe modulu AIL Dane: w:,jsci0\\0 modulu AIL sa jc:dnoczdnic danymi \\ejsc10wyn11 modulu Dl\IFS. l\Iodul AIL przekazuje do systemu plikó,, DMFS reguly: a. alokacji w postaci: • tabeli zawierajacej listy plikó,, (ID pliku) i regul relokacji dla kazdego z nich w postaci identyfikatora nosnika. na który ma byc plik przeniesiony: oraz h. relokacji w postaci: • pliku binarnego. zawierajacego wytrenowana siec neuronowa (perceptronowa) typu MLP (Multi-Layered Perceptron). • pliku binarnego. zawierajacego koder etykiet. wykorzystany do kodo\\ania etykiet przy uczeniu sieci MLP, • pliku binarnego. zawierajacego koder zmiennych nominalnych. wykorzystany do kodowania etykiet przy uczeniu sieci MLP. Algorytm A_R, tworzacy reguly alokacji/relokacji przez AIL W Systemie zaimpkmentowana jest KOLEJKA RELOKACJI, która obsluguje DMFS poprzez swój komponent skladm\y o roboczej 11az,\ie RELOKATOR. Algorytm A_R stanowi watek, który moze byc uakt:,wniany okrcsmvo. Na poczatku kazdej epoki A.IL wykonuje Algorytm A_ R. Przy picrnszym urnchomicniu algorytmu algor:,tm nic 111:1 dostc;pu do fadnych inforn1:1cji histor:,·cznych. Algor:,tm A_R korzyst:i z mstepujacych funkcji: • Continue_ W ork, • Sleep_ATL, • Build_Category _Set, • Select_Files, • Solve_ Optimization_Problem, • Make_Allocation_Rules, • Rcallocatc_Filc, • Enqueue, • Save_Category_Set, • lnform_DMFS . PL 439828 A1 28/52Algorytm A_ R korzysta z nastepujacych zmiennych globalnych: • TABELA PLIKÓW, • TABELA NOSNIKÓW, • KOLEJKA RELOKACJI, • WAGI, • HISTORYCZNE KATEGORIE, • TABELA ZDAT'\JYCH PLIKÓW. Pi-:rvvszc czt-:ry zmi-:nnc to struktury danych implcmcntmrnnc po stroni-: DMFS (do których dost(ip ma AIL), a kolejne trzy - zmienne, utworzone na potrzeby Algorytmu A_R. Przykladowy pseudokod Algorytmu A_R Begin TABELA PLIKÓW:= DMFS.Gct Filc Tablc(ó): I I uzyskaj dostc;p do " szystki eh zapisów w TABELI PLIKÓW // Wybierz tylko te pliki, dla których zgromadzono dostatecznie duza ilosc danych TABELA ZDATNYCH PLIKÓW:= Select_Files(PARAMETRY WYBORU): ifContinue_Work(PARAMETRY KO'JTYNUACJI) == false then Sleep_AlL(EL, true); li AIL zasypia na k\\ant czasu EL (domyslna dlugosc epoki) lub pochodna. tego kwantu ustalona wewnatrz procedury Sleep_ AlL: else // AIL kontynuuje prac9, gdyz w TABELI PLIKÓW zebrano dostatecznie wiele informacji wymaganych do opracowania r-:gul alokacji/relokacji lnfonn_ Dl\IFS(SYGNAL:ALOKACJA _W_ TOKU): // Poinformuj Dl\IFS, ze ustalani-: regul alokacji jest w toku W AGI := DMFS.Gct_ Wcights(); // pobierz wagi kf)icriów // Zbuduj zestaw kategorii plików o zadanych parametrach (parametry dyskretyzacji etc.) na podstawie aktualnych danych o plikach oraz na podstawie historycznych kategorii plików C_SET := Build_Category_Set(PARAMETRY BUDOWY KATEGORII); // Rozwiaz problem optymalizacY.iny przydzialu kategorii plików (uwzgledniajac wagi kryteriów) do nosników ROZWIAZANIE:= Solve_Optimization_Problem(C_SET); // Na podstawie otrzymanego ROZWIAZANIA oraz innych danych, dostepnych podczas pracy tego algorytmu, opracuj struktury danych okreslajace reguly alokacji/relokacji PL 439828 A1 29/52Make_Allocation_Rules( ); . 1 / ustalone dzmlanie funkcji: AIL.Allocate_File, AIL.Reallocate_Flle li Relokuj pliki KANDYDACI DO RELOKACJI := Zbiór tych plików z tabeli ROZWIAZANIE, dla któnch IDN < IDNOP for cach fin KANDYDACI DO RELOKACJI do RELOKUJ := Rcallocatc_Filc(f.TD); // podejmij dccyzj9 dla pliku f if RELOKUJ nic jest listq. pustq. then Enqueue(RELOKUJ): // wstaw decyzje do KOLEJKI RELOKACJI done Save_Category_Set(C_SET): // Uaktualnij historie AlL'a lnfom1_DMFS(SYGNAL:ALOKACJA_GOTOWA): // Poinfom1uj DMFS. fi End alokacji/relokacji sa dostepne Sleep_AIL(EL false); ze reguly Po kazdym ,,ykonaniu Algorytmu A_R Dl\IFS korzysta z uaktualnionych regul alokacji/relokacji, dostQpnych poprzez ,vywolania funkcji AIL.Allocatc_Filc/AIL.Rcallocatc_Filc, implementowanych w interfejsie AIL-DMFS. Reguly relokacji dla plików z tabeli KANDYDACI DO RELOKACJI. w postaci w}11ików dzialania funkcji Reallocate_File. umieszczone sa w KOLEJCE RELOKACJI. która stale obsluguje RELOKATOR (w sposób zalezny od obciazenia Svstemu). Bloki modulu AIL Od stronv funkcjonalnej i algontmicznej modul AIL sklada sie z trzech bloków: • bloku agregacji, • bloku wyznaczania wzorca, • bloku regul. Blok agregacji (kategoryzacja), BA W tym bloku, na podstawie charakterystyk plików zawartych w TABELI ZDATNYCH PLIKÓW, pliki sa agregowane w kategorie. Ma to na celu zmniejszenie rozmiaru danych przekazywanych do kolejnego bloku - bloku wyznaczania wzorca. PL 439828 A1 /52Mozliwe do zastosowania w tym bloku mechanizmy agregaCJl to wszystkie metody sztucznej inteligencji, okreslane terminem klasteryzacja. Zastosowano metode kategoryzacji polegajacej na alokacji plików wcjsciowych do elcmentÓ\\ \\iclowymiaro,\ej tablicy (hiperkostka) o wymiarze liczby rozpatrywanych parametrów \\ yliczanych plikó,\. Zaróm10 \\)'miar tablicy jak i podzial zakn.:su wartosci paramctró,v dla kazdego pojedynczego wymiaru sa parametrami, które moga podlegac strojeniu. Zaleta przyjc;tcj metody jest to, ze prz:jc;ty w niej model strnktury danych jest intuicyjny i interpretm,alny. poz,, alajacy zatem na jego adaptacje i dostrajanie wedlug wiedzy eksperckiej. W szczególnosci obslugiwana jest svtuacja. w której ze wzgledu na charakter danych (brak operacji zapisu na plikach dla duzej liczby elementów w TARFLA ZDATNYCH PLIKÓW) poczatkowo zakladana liczba kategorii w hiperkostce nie jest mozliwa do utworzenia. W takiej S:iuacji liczba kategorii adaptowana jest,, sposób automatyczny do rodzaju danych przekazanych do AIL. Druga zaleta przyjetej metody jest jej skalo\\alnosc. tzn. mozliwosc jej efektywnej pracy na zbiorach plików o w iclkicj licznosci. Czas dzialania funkcji\\ bloku agregacji jest liniowo zakzny od rozmiaru TABELI ZDATNYCH PLIKÓW. \Vyniki testów moga wskazac na celowosc znuany metody kategoryzacji dla uzyskania lepszej charakterystyki pracy systemu" aspekcie cfd.iywnosci dzialania AIL wzglc;dem nakladu obliczct'i. Proces generowania zestawu kategorii plików (hipcrkostki) sklada sic; z etapó,, wykony,vanych sekwencyjnie realizowanych w kolejnych metodach opisanYch ponizej: Funkcja Binary_APl(String wej, String data_dir): Funkcja. w której realizowane sa kolejno dwie operac.1e. Po pierwsze. pobierane sa mformaqe o plikach ,, fonnacie binarnym zapisywane nastepme do pliku Tabela_plikow.txt W dalszej czesci funkcji z pliku binarnego pobierane sa infonnacje dotyczace dostepnych podczas optymalizacji dyskó\\. Informacje te zapisywane sa do pliku disks.csv znajdujacego sie,, katalogu "data_d1r" podanymjako parametr funkcji. INPUT: - String wcj - nazwa pliku binarnego. z którego pobierane sa. da.111.:; - String data_dir - katalog z danymi, do którego zapisywane sa informacje pobrane z pliku binarnego: dane dotyczace plików (zapisywane w pliku Tabela_plikow.txt" oraz dane dotyczace dysków). OUTPUT - na wyjsciu funkcji nie jest zwracana zadna informacja. Przy czym po zakonczeniu dzialania funkcji na podstawie pliku binarnego z danymi zródlowymi budowany jest plik " Tabela_plikow.txt". Funkcja Read_ Wszystkie_Pliki(): PL 439828 A1 31/52lNPUT - void; OUTPUT - tablica Stringl] TABLICA PLIKO\\' zawierajaca \\szystkie opisy plików (wlacznie z tymi, dla których historia jest zbyt krótka, z0by wyliczyc parametry wyliczane). Funkcja String[] Sclcct_Zdat11c_Pliki(String[] TABLICA_PLIKOW) INPUT - parametr TABLICA _PLIKOW, który zawierajacy opisy plików przekazane do AIL. OUTPUT - tablica zdatnych plików. Funkcja Sct_TTNT(int[] par_, String[] TABLTCA_ZDATNYCH_PLIKOW): TNPUT: intrl par_ infomiacja o tym, na ile interwalów dzielony bedzie kazdy z zakresów parametró" wyliczanych. Dostepnych jest 5 parametrów. wiec wielkosc tej tablicy. to zawsze 5. Domyslnie ustalony jest podzial kazdego parametm na 5 czesci (wartosc moze zostac zmieniona i ustalana jest jako parametr). Dmgi parametr. to tablica zdatnych plików. z której pobierane sa parametry wyliczane wszystkich plików Kazdy z paran1etrów znajduje sie w osobnej tablicy. która nastepnie jest sorto\\aI1a. Tablica double I I SWP przechO\\ uje wartosci paraI11etru \\ yliczaI1ego SWP. Opcjonalnie mozli\\e jest \\ykorz:-staI1ie funkcji set_TINT_from_filc( ... ), w której na podstawie zmiennych "par_" oraz "ilc_intcnvalow" budowana jest tablica TINT, prz) CZ\111 wartosci przedzialów odczytywane sa z pliku Intcrvalstxt. OUTPUT - tablica TINT obicktó,\ klas, Par intenal opisujaca wszystkie ,vyliczone przedzialy. Klasa ma dwa pola publiczne String: dol i gora, które wskazuja odpowiednio dolna i górna granicQ internalu. Do parametrów przygotowane sa gettery i settery oraz funkcja Get_interyal(), która zwraca interwal w postaci "I"+ dol+":''+ gora +"I" Funkcja void Create_ Vocahularies(Par_intervall 111 TINT) INPUT: funkcja przyjmuje tablice 2D obiektów klasy Par_interyaJ. na podstawie której budowane sa. wszystkie slowniki. OUTPUT - Funkcja me me zwraca, ale po jej wywolaniu zostaje utworzonych 6 slowników globalnych. Funkcja do budowy wszystkich slowników. Slowniki beda. stosowane przy odwolywaniu sie do poszczególnych kategorii. Zakladainy, ze mamy 3 mozliwosci adresowania kategorii: • indeks globalny; • indeksy parainetrów; • interwaly parainetrów. PL 439828 A1 32/52PrzykladO\\O zakladajac. ze dostepnych jest 3125 kategorii ( 5 parametró,Y, kazdy dzielony na 5 inten,alóv.. co daje 5* 5*5':s:,5 mozliv. ych kategorii), to: - indeks globalny wskazuje konkrdny num0r kategorii. Kat0goria opisywana jest przez klas9 TCcll, a wszystki0 kategorie trzymane sa w tablicy jcdno,\ymiaro,wj o wielkosci 3125 (lub inn0j, \V zaleznosci, od liczby intcrnaló\\ dla paramctrÓ\\ - to mozna zmieniac). - indeksy parametrów: danych jest 5 parametrów wyliczanych, kazdy podzielony (przykladowo) na 5 intcrnaló,v. l\fozna zatem odwolywac sic do btegorii opisanej pi9cioma indeksami (pi9ciu kolejnych parametró,v). Przykladowo: 4 3 O O O oznacza kategorie, gdzie dla piern szego parametrn (S\:VP) pod uwage brany jest intenval ostatni (indeksowanie od zera). dla drngiego parametm internal czwarty. a dla pozostalych trzech - intenvaly pienvsze. Ten sposób adresO\vania przedstawiony jest jako String. - interwaly parametrów - podobnie. jak wyzej. ale zamiast indeksów wskaz}wane sa konkretne zakresy interwalów dla kazdego z parametrów wyliczanych. PrzykladO\rn adresowanie moze byc nastepujace: L20.072:39.688J L1201.0:2394.0J L0.0:2.968] [238.0:357.0J Ll00.226:lNfJ Zbud0\vanychj0st laczni0 6 slownikóv\ (struktura mapy): - przedzial_indeksy_przc parametrów; Przyklad: - podajac interwaly parametrów otrzymywane sa indeksy r20.072:39.6ss1 r361s.o:4799.0J rs.972:11.9651 r4n.o:TNFl ro.o:2s.16s1 --- 133 40 - przedzial_indeks - poda_1ac internaly przedzialów otrzymywany jest indeks globalny kategorii: Przvklad: 159.509:79.9271 13615.0:4799.01 I 2.968:5.9641 1478.0:INFI 125.165:50.171 --- 1168 - indeksy_przedzialow_przedzial - podajac indeksy parametrów otrzymywane sa interwaly parametrów; Przyklad: 4 1123 --- r79.927:INF1 rI201.0:2394.0l r2.968:5.9641 r238.0:357.0l PS.718:100.2261 - indeksy_przedzialow_indeks - podajac indeksy parametrów otrzymywany jest indeks globalny kategorii; PL 439828 A1 33/52Przvklad: 3 4 4 3 2 --- 1748 - indcks_przcdzial - podaiac ind0ks globalny kategorii otrzymyv\aLlC sa interwaly parmn0trów; P1-z\klad: 707 --- [39.688:59.509] [1201.0:2394.0] [8.972:11.965] [0.0:117.0] [25.165:50.17] - indcks_indcksy _przcdzialow - podajac indeks globalny kategorii otrzymywane sa indeksy paramctróvv: Przvklad: 303 --- 3 O 2 2 O Zarówno przy indeksach parametrów. jak i przy interwalach parametrów dostepny jest zestaw tylu elementów. ile danych jest kategorii. W samej funkcji wykorzystywane sa dwie metody pomocnicze do generowania zestawów: - Stringi I generate_przedzialy(Par_intervalJ 111 ~ets) - funkcja z tablicy Par_interval buduje wszystkie dopuszczalne przedzialy i zwraca ,v formie tablicy la1icuchów: - String[] gcncratc_indcksy(Par_intcrval[][] scts ·1 - jak v, yzcj, ale zvvraca indeks,· przcdzialóv\ \\ formie tablic, laiicuchóv,. Finalnie, na podst:mic OUTPUT z tych dvvóch powyzszych fonkcji budowane sa sovvniki. Funkcja void Initializc_Catcgory_sct(int ilc_katcgorii) INPUT Infonnacja o tym. ile kateg01ii ma zostac zbudowanych, czyli dlugosc tablicy obiektóvv TCell. OUTPUT Funkcja zwraca rnid. ale budowana jest tablica obiektóvv klasy TCelL Funkcja wywolyvvana przed przydzieleniem plików do poszczególnych kategorii Tablica kategorii sklada sie z obiektów, wiec w tej funkcji tworzona jest tablica pustych obiektów. Klasa TCell: Obiekty klasy TCell przechowuja pelna informacje o jednej kategorii. Posiadaja nastepujace pola: - private String klucz - zestaw interwalów przedzialów opisujacych dana kategorie, np. [39.688:59.509] [1201.0:2394.0] [8.972:11.965] [0.0:117.0] [25.165:50.17]; - private String indeksy - zestaw indeksów przedzialów parametrów, np. 1 2 3 1 O; PL 439828 A1 34/52- private int index - globalny indeks kategorii. - public ArrayList lista_parametrow_wyliczanych - do tej tablicy dynamicznej dodawane sa parametry wyliczan..: wszystkich plików, któn.; wpadly do danej kategorii: - public ArrayList full_file_description - do tej tablicy dynamicznej dodawane sa pelne opisy plików z TABLICA_ZDATNYCH_PLIKOW, dla których parametry \Yyliczane wpadly do przedzialu tej kategorii; - public int NofFilcs - laczna liczba plików w tcJ kategorii. Konstrnktor klasy public TCell(int indeks_globalny) W konstrnktorze inicjalizowane sa pola: this.lista_parametrow_wyliczanych = new AnayList<() - pusta tablica dynamiczna this.full_file_description = new ArrayList<() - pusta tablica dynamiczna this.klucz Category_set.indeks_przedzial.get(indeks_globalny) przedzialy parametrów wyznaczone na podstawie slov.nika. Mamy juz informacje o przedzialach wszystkich plikÓ\\, zatem mozemy korzystac z..; slo,,nika W) znaczajacego na podstawie ind..:ksu globaln..:go przedzialy parametrÓ\\; this.indeksy = Category_sct.inucks_indeksy_przedzialow.gct(indeks_globalny) - jw. ale tym razem dla indeksów przcdzialÓ\'. this index= indcks_gloh;ilny; Gettery: public String Get_indeksy()_puhlic String Get_kl11C1(), puhlic int Get_index(). puhlic void Add_p;irameters(douhlerl trih) - zestaw parametrów wyliczanych pliku dodajemy do naszeJ tablicy d~11am1cznej przez funkCJe Add_parameters. Jej parametrem jest tablica pieciu elementów (kolejne parametry wvliczane pliku przydzielonego do tej kategorii). Dla uproszczenia doublelJ, ale w srodku sa tez inty. Dalej dostepnych jest zestaw metod: public double Get_sumSWP() public double Get_sumLOO() public double Get_sumWO() public double Get_sumWZ() PL 439828 A1 /52public double Get_sumZAP() wyznaczajacych sumy poszczególnych parametrów wyliczanych dla plików z danej kategorii. Budo\\ a zcsta\\ u kategorii plików (funkcja Build _ Catcgol) _ Set) zostala opisana,, dalszej ca;sci opraco,, ania. Dla celów badawczych progwmy w tym bloku zostaly zrcalizo,, anc w j(izyku Java. Blok wyznaczania wzorca (optymalizacja), BWW \V systemie wedlug wynalazku, ze wzgl9du n:i a pnon mcznanc, zmienne w czasie nat9zcnic strnmicnia obslugiwanych plików, zmienne" czasie charaktcl)·styki plikó", a takze zmienne w czasie charakterystyki nosnikó"· pamieci opt:malny wzorzec (w cz:isie) rozkladu plikó" pomiedzy nosniki. obowiazujacy na pewien okres w przód. nalezy wypracm\aC na podstawie biezacego stanu sytemu. W tym celu charakterystyki pewnego podzbiorn plików (TABELA ZDATNYCH PLIKÓW). kiero"ane sa do modulu AIL celem wvpracowania regul alokacji (przydzial do nosnika pan1ieci pliku pojawiajacego sie w systemie pan1ieci po raz pienvszy) i relokacji (przemieszczanie plików pomiedzy nosnikami). Na tym podzbiorze plikó\\ \\ ypraco\\any jest wzorzec optymalnego rozkladu plików porniydzy nosniki. Zadaniem bloku optymalizacji jest \\ypracm,anie takiego ,,zorca. W tym bloku zastosowano mechanizmy wypracowania optymalnego wzorca metodami optymalizacji dokladnej, \V których, w zaleznosci od rozmiaru i zlozonosci zadania optymalizac:jnego mozli,,e jest uzyskania wzorca optymalnego lub, o ile obliczenia optymalizacyjne nic moga byc prowadzone odpowiednio dlugo, tylko suboptymalncgo Blok regul (uczenie mas-:J'l10We). ,nvw Wypracowanie w bloku BWW wzorca (optymalnego lub suboptymalnego) rozkladu plików pomiedzy nosniki po2"ala na zastosowanie metod uczenia maszvnmvego do wypracmvania regul alokac_1i i relokacji plików w systemie. Podstawa. do uczenia maszynowego iest zalozenie. ze charaktervstvki plików rozpatrvwanvch przez AIL sa. reprezentaty,vne dla wszystkich plików w svstemie macierzy nosników. Innymi slowy, gdyby popula'-'.Ja plików \V systemie miala te same statystyczne wlasnosci co zbiór plików rozpatrywanych przez modul All, to ,, ypracowane przez All metodami uczenia maszynowego reguly bylyby statystycznie optynlalne. W tym bloku wypracowywany jest mechanizm (automat) przydzialu plików do nosników najbardziej zgodny z wypracowanym w bloku BWW wzorcem. Jest to istota uczenia maszynowego. Tak wypracowany mechanizm jest nastepnie stosowany do calej populacji plików w systemie do biezacej alokacji i relokacji plików. PL 439828 A1 36/52Dla uczenia maszynowego wykorzystano siec neuronowa.. Wykorzystano architekture sieci typu perceptron wielowarstwowy. Funkcje modulu AIL Funkcja AIL.Allocatc_Filc (Par~un-:try pliku BP, IO, IZ, CIOK, EX, ID, SzP, IW, UP, PTO) Regula alokacji (hierarchiczna lista nosników). Funkcja uzywa ut,vorzonych ,, funkcji Makc_Allocation_Rulcs i zapisanych przez nia. do plikó,v obiektó,v binarnych: kodera zmiennych nominalnych (KODER_KATEGOR), kodera etykiet (KODER_ETYKTETY) oraz perceptronu wielowarstwo\\ego (MLP) Obiekty te musza. byc \\czytane do pamieci. aby mozna bylo wyznaczyc regule alokacji. Wvznaczenie reguly alokacji odbywa sie wedlug nastept~ia.eych krokó,v. l. Kodowanie CIOK. Poniewaz CIOK Jest lista. zmiem1ej dlugosci, dla potrzeb klasyfikacji parametr ten zamieniany jest na MAX_KAT_GLEB ( O) parametrÓ\\ SCIDK 1 •... SCIDK:.-iAx_KAT_GLEB· Jezeli rozmiar(C:IDK) < MAX KAT_GLEB, to parametry SCIDKI, SCIDKro,rniar/CIDKi przyjmuja. \\a1tosci odpowi.:dnich elcmentó,, z listy CIDK, a parametry SCIDKrozrniar1CWK1+l , .. , , SCIDKMAX_KAI_GLEB przrimuja. ,vartosc 'O', Jezeli dlugosc CIDK 2' MAX_KAT_GLEE, to SCIDK 1=CIDK1, ... SCIDK\1Ax_KA1_GLEE= CIDK\1Ax_KA1_GLEE· 1 Podzial parametrów. Parametry plików dzielone sa na dwa typy: p::uametry ciagle (BP .IO, IZ); parametry nominalne (SCIDK 1 •...• SCIDK1vi1.x_K.n_GLEE• EX. TD. SzP. IW. UP. PTO). 3. Kodowanie parametrów. Parametry nominalne kodowane sa koderem KODER_ KATEGOR. Ohiekt do rm:poznania (wektor X) tworza: parametry ciagle. zakodowane parametn 1 nominalne. 4. Klasyfikacja. PREDYKCJA MLP.predict(X). PREDYKCJA jest wektorem prawdopodobiei1stw, którego \\ spólrzedna i okresla pra,,dopodobie1istwo przynaleznosci opisanego parametrami \\ejscio,\ymi pliku do klasy i. Koder KODER_ETYKlETY pozwala jednoznacznie stwierdzic, jaki identyfikator nosnika odpo,,iada wspólm,:dncj i. . Szeregowanie identyfikatorów nosników. Na pom,lawic wektora PREDYKCJA tworzona jest uszercgO\\illla nierosnaco lista nosnikó,, (LN), a szcrego\\anic odbywa siit na podstawie prawdopodobie11stw przynaleznosci klasyfikowanego obiektu do klas. 6. Korekta ze wzgledu na koniecznosc szyfrowania. Z listy LN usuwane sa te nosniki, które nic zapewniaja szyfrowania sprz9towcgo. Po tej operacji lista LN jest regula alokacji. Funkcja AIL.Reallocate_File (ID istniejacego pliku) -+ Regula relokacji Zachowanie tej funkcji zalezy od dostepnosci parametrów wyliczanych pliku o zadanym ID. PL 439828 A1 37/52Jezeli nie sa znane paran1etry wyliczane pliku, to funkcja ta wykorzystuje funkcje AIL.Allocate_File. Wyznaczenie reguly relokacji odby\\a sie\\ tedy nastepujaco. 1. Odczytanie wartosci parametró,\ BP, IO, IZ, CIDK, EX, TD, SzP, IW, UP, PTO pliku o zadanym ID. 2. Regula relokacji = AILAllocatc_Filc(BP, IO, IZ, CIDK, EX, TD, SzP, IW, UP, PTO). Jezeli sa znane parametry ,,yliczanc pliku (W), to dzialanie funkcji jest nastc;;pujacc. 1. Na podstawie zestawu kategorii C_SET (wynik funkcji Build_Catcgory_Sct()) oraz W. ustal komórke (kategorie plików) KOM. do której nalezy plik o zadanym ID. 2. Na podstawie ROZWIAZANIA ustal identyfikator nosnika IDNKOM dla komórki KOM. bedacy jednoczesnie identyfikatorem docelowego nosnika dla pliku o zadanym ID. Umiesc lDNKOM na liscie REGULA. 3. Ustalenie mniej preferowanych nosników. Lstal liste SASlEDZI_KOM wszystkich sasiednich komórek komórki KOM. Dla kazdej komórki K z listy SASIEDZI_KOM oblicz jej centrum C(K) w przcstrn.;ni parametrów okrcslajacych wymiary zestawu kategorii: dystans DYST(K) wektora parametrów W do C(K). Niech IDN(K) oznacza identyfikator nosnika przypisany do komórki K. Dodaj IDN(K) do listy REGULA dla wszystkich spotkanych nosników. W zaleznosci od tego. do ilu z sasiednich komórek jest przypisany nosnik TDN(K) i jakie te komórki maja dystanse DYST(K), ustal kolejnosc identyfikatorów nosników na liscie REGULA tak zeby na poczatku listy byl nosnik najbardziej preferowany. a na k011cu - najmniej. Jezeli plik o zadanym ID wymaga szyfrowania. usun identyfikatory nosników. które nie sa szyfrowane. Regula alokacji := REGULA. Funkcja AIL.Reallocate_File() jest wywolywana przez DFMS dla plików. które znajduja sie na nosnikach macierzy. a nie sa dostepne \\ tabeli TABELA ZDATNYCH PLIKÓW (za relokacje podzbioru plikó,v tej tabeli odpowiada wewnetrzna funkcja Algorytmu A R o nazwie Rcallocatc_Filc()). Umozliwia to zastosowanie przez Dl\IFS regul relokacji podczas przegladania plikó,, na macierzy, klórc spelniaja zadane przez Adminislralora ,varunki (np. nic bylo do nich zada1i dostc;;pu w ciagu ostatnich trzech micsic;;cy). Wewnetrzne funkcje Funkcja Select_Files CEL: Wybór plików z TABELI PLIKÓW, spelniajacych narzucone warunki. INPUT: PRMW - parametr okreslajace warunki wyboru. OUTPUT: Podzbiór TABELI PLIKÓW. PL 439828 A1 38/52OPIS DZIALANIA: Na podstawie TABELI PLIKÓW oraz PRMW, funkcja ustala liste plików, dla których zgromadzono wystarczajaca ilosc danych, przechowywanych w tablicach HWP, HOO i HOZ. Argument V\ ej sciO\\ y PRMW j0st argument0m zlozonym, a jego skladowe to, co naJmmeJ PRl\IW.minHWP, PRl\IW.minHOO, PRMW.minHOZ. Skladm\0 k oznaczaja, odpowi0dnio, minimalna dlugosc tablic HWP oraz jedna z dwóch: HOO lub HOZ, jakie musza charakteryzowac dany plik, aby mógl byc on wybrany z TABELI PLIKÓW. Funkcja ta poz,rnli wyszczególnic tylko te pliki, które ze wzglydu na rozbudowana historiy poszczególnych parametró,v, zawieraja dostateczny dla potrzeh kategoryzacji plikó,v ladunek informacyjny. Funkcja Build_Category_Set CEL: W,znaczenie kategoni plików na podstawie TABELI ZDATNYCH PLIKÓW. HISTORYCZNYCH KATEGORII oraz zadanych parametró,v. INPUT: PRMH - parametr okreslaja.cy charakterystyke wyniko\\ych kategorii plikó,Y OUTPUT: Kategorie plików. OPIS DZIALANIA: Do budowy hipcrkostki stosowana jest klasa pomocmcza Par_intcrval, przcchmrnjaca informacji.i o podziale kazdego z paramctróv, \\yliczanych na zakresy. Liczba zakrcsÓ\\ jest parametrem 1 moze byc dowolnie modyfikowana. Po ustaleniu liczby zakrcsó,v wyznaczane jest minimum i maksimum kazdego z parametrów ,vyliczanych Nastypnic przedzial dzielony jest na pewna ustalona liczby przedzialów Podzial nastQpuje w taki sposób, ze do kazdego z utworzonych przedzialów nalezy tyle samo plików. Procedura powtarzana jest dla kazdego z parametrów wyliczanych. W syiuacji. kiedy dwa lub wiecej przedzialów sa równe. nastepuje zmniejszenie liczby przedzialów. na jakie podzielony zostanie dany parametr. Pierwszy element hiperkostki odpowiada syiuacji. kiedv dla kazdego z parametrów wyliczanych rozwazany jest jego pierwszy zakres. Ostatni element hiperkostki to sytuacja, kiedy analizowany jest ostatni zakres. Zatem, przykladmvo, przy pieciu parametrach i podziale kazdego parametru na 5 zakresów liczba komórek (kategorii) hiperkoslki wynosi 5"5=3125. Kolejnym etapem jest budowa slowników, umozliwiajacych odwolanie su; do poszczególnych elementów hipcrkostki Lacznic budowanych jest G slo\,ników umozliwiajacych uowolnc rzutowanie zakresów przedzialów na numery przedzialów hiperkostki (i odwrotnie), a takze na rzutowanie zakresów przedzialów na indeks globalny komórek hiperkostki (np., dla hiperkostki zbudowanej z 3125 komórek, kazda z komórek ma swój unikalny indeks globalny, bc;daey liczba ze zbioru liczb {0,1, ... ,3124}). Ostatni etap dzialania funkcji to analiza wszystkich plików znajdujacych sie w strukturze TABELA_ZDATNYCH_PLIKOW i ich przypisanie do odpowiedniej komórki hiperkostki. Przypisanie odbywa sie poprzez sprawdzenie wartosci wszystkich pieciu parametrów wyliczanych PL 439828 A1 39/52pliku. To sprawdzenie pozwala okreslic, w jakich interwalach znajduja sie wartosci tych parametrÓ\\, a tym samym umozliwia umiejscowienie pliku w odpo,\iedniej komórce hiperkostki. W:-jscioV\a struktura bloku agregacji zaV\iera infonnacje o V\szystkich kategoriach, ich licznosciach oraz parametrach plikÓ\\ przypisanych do danej kategorii. Dodatko\\O istnieje mozli\\OSC sprawdzenia bezposredniego sasiedztwa kazdej z kategorii w hiperkostce, co jest wykorzystywane przy ustalaniu regul relokacji. Rezultat wykonania funkcji Build_Catcgory_Sctjest podstawmvy1n argumentem wejsciowym funkcji Solve_Optimization_Prohlem. Funkcja Solve_Optimization_Problem CEL: Wyznaczenie opt)'lnalnego przydzialu kategorii plików do nosników. INPUT: Kategorie plików: dla kazdej kategorii. dla kazdego parametru wyliczanego plików. suma wartosci parametru po wszystkich plikach w kategorii Ponizej oznaczamy te sume tak samo jak odpov. iedni parametr plików, czyli np. WOi to wielkosc odczytu kategorii i. OUTPUT: Optymalny przydzial kategorii plikÓ\\ do nosników (X), czyli dla kazdej kategorii, ID przydzielonego nosnika. OPIS DZIALANIA: Funkcja ta ma za zadanie wyznaczyc taki przydzial kategorii plików do nosników, który jest optymalny wzglcdcm \\azonej \\agami agregacji wszystkich kryteriów. Kazda kategoria jest interpretowana jako jeden zbiorczy plik, reprezentujacy wszystkie pliki ,v kategorii. Formulowanie modelu matematvcznego Uzywany model matematyczny to model programowania liniov,ego calkowitoliczbowego (binarnego). gdzie wszystkie kryteria przeksztalcone sa w forme minimalizacji: m n minimalizuj fk(X) := L L cjx 11 , k E 1, K i= l J =l n L xii = l, i E m j=1 m SP· MP· L SWPixiJ::;; PAIL 1 , j E 1, n i=1 (1) (2) (3) • Przestrzen rozwiazan to zbiór macierzy binarnych X= (xiJ)mxn' XiJ E {0,1}, z ograniczeniami (2), gdzie m - liczba kategorii plików, n - liczba nosników. Interpretacja: XiJ = l, wtedy i tylko wtedy, gdy kategoria i jest przydzielona do nosnikaj. Ograniczenia (2) gwarantuja ze kazda kategoria jest przydzielona do jednego nosnika. PL 439828 A1 40/52• Zbior rozwiqzari dopuszczalnych to zbiór elementów przestrzeni spelniajacych dodatkowe ograniczenia (3) na nieprzekraczanie pojemnosci poszczególnych nosników. MP = I?=i PAI L 1 /IP! 1 SW Pi to „multiplikator przestrzeni". 0 interpretacja (np„ w przypadku SP=0.5): Jezeli reguiy alokac;f;realokacfi na pod1tawie danego przydzialu kategorii beda wstusmrnne du zbioru plików, kturyeh eaikowity rozmiar stunuw i 50% calkuwltef JJrzesrrzeni, lu zaden z nu!,ników nie bedzie JJrZeJJeiniuny. Ct.:lcm lego ogranicLcnia jest zapobieganie sytuacji, kiedy \\ szystkie pliki byda prL) dzielone do jednego/kilku najkpszych nosników szybko wyczerpujac przestrzci1. Jezeli SP jest blisko l, to ZW\Za si..; zbiór dopuszczalnych rozwiazaó co moze pogorszyc jakosc optymalnego rozwiazania. Jezeli SP jest blisko O, to zbyt wicie plików b..;dzic przydzielone do najlepszych nosnikó,,. Parametr SP jest ustalony empirycznie na poziomic 0.5. • Kazda funkcja celu ft, kod 1 do K reprezentuje jedno kryterium jakosci dzialania macierzy. W naszym przypadku K=8. Wspólcz:,nniki c;J sa wyprmvadzone z formul odpowiednich kryteriów (rozdzial Blad! !\ie mozna odnalezc zródla odwolania.) po ich przeksztalceniu w forme liniowych funk~i i minimalizacji .i ak ponizej. k=l (KOSZT): cb = SWP1 • KOSZTJIPAJL 1 k woi k=3 (SSO): ciJ = Poucz. I k=4 (SSZ): et = wz; POZj k=6 (BP): Cif= SWPt(lOO - SZi)/m Formulowanie problemu optymalizacji Przy danych wagach kryteriów w1, ••. , WK, do odnalezienia optymalnego przydzialu kategorii na nosniki rozwiazujemy nastepujacy problem optymalizacji, który jest skalaryzacja (Kaliszewski I. (2015) On Variant Selection Mechanisms in Interactive MCDA-Engineering versus Reverse PL 439828 A1 41/52Engineering. Journal of .\1ulti-Criteria Decision Analysis, vol. 23, pp. 40-48) modelu przedstawionego powyze_i: minimalizuj mlxwkak(fk(X) - zZ) + p I wkadk(X) k przy ograniczeniach (2). (3). gdzie: (4) • ak to multiplikatory, sluzace do sprowadzenia wszystkich funkcji celów do takiej samej skali: (Jk = 1/(zrad - zZ) jezeli zrad z;, oraz (Jk = O jezeli zrad = zZ (funkcja celu jest zdegenerowana, czyli ma taka sama wartosc dla wszystkich roz"iazm1 Pareto-optymalnych). o zdegenerowane funkcje calu sa wykluczane ze skalaryzowanej funkcji celu, jednak dla kazdej zdegenerowanej funkcji celu kdodajemy ograniczenie fk(X) ~ znad do modelu; • zZ to wektor idealny. skladajacy sie z optymalnych ,,artosci kazdej funkcji celu minimalizowanej niezaleznie: • zfad to wektor nadir, skladajacy sie z najgorszych (maksymalnych) wartosci kazdej funkcji celu na zhiorze Pareto; • r to bardzo maly" spólczynnik. np. 10-1. Do linearyzacji funkcji celu (4) uzY'Yamy nastepujacego przeksztalcenia. • Kazda fimkcje celu k reprezentujemy poprzez odpm,iednia zmienna fikcyjna g,. dodajac linio".e ograniczenie Bk 2 fk(X). • Wprowadzamy ieszcze Jedna zmienna fikcy1na t i laczvmy Ja z kazda ze zmiennych Pk dla niezdegenerowanych funkcji celu k poprzez ograniczenie t 2 wkak(.qk - z,J; • Dla kazdej zdegenerowanej funkcji celu k dodajemy do modelu ograniczenie g k s znad. • Zamieniamy nieliniowa funkcje celu (4) przez liniowa funkcje celu: minimalizuj t + p I wka,dk(X) k Rozwiazywanie problemu optymalizacji Najpierw oceniane sa wektory z" i z nad . W tym celu zaimplementowane sa dwie metody. (5) PL 439828 A1 42/52l) Regular - powszechna (Miettinen K. (1999J Nonlinear Multiobjective Optimization. Boston: Kluwer Ac:aclemic.: Publisher.1·; ruzdziaL L+.) metoda na podstawie rozwiazyv,ania K problemów minimalizacji poszczególnych funkc_ji celów i budowania maci..:rzy payoff fost obliczcnim\o kosztowna bo wymaga rozwiazy\\ania K problemów o zlozonosci porównywalnej z glównym problemem. 2) Naivc - bardzo szybka ale niedokladna metoda. Dla kazdej funkcji celu k oceniamy wartosci zZ i zrad \\ nastypujacy sposób. O • • " k,min nad " k,max • cemamy zk = L,t c 1 . zk = L,t c 1 Po odnalezieniu z i z 11 ac1_ obliczamy multiplikatory CTk· sprawdzamy które z funkcji celu sa. zdegenerowane. i rozwiazujemy problem skalaryzowany (5)(5 )(5) przy ograniczeniach (2 l, (3) sformulowany powyzej. Rezultat \\ykonania funkcji Solve_Optimization Problem jest argumentem \\ejscio,vym funkcji Makc_Allocation_Rulcs. Funkcja Make_Allocation_Rules CEL Wypracowanie r..:gul alokacji. TNPUT: 0. OUTPUT: ó. OPTS D7TAl.ANTA· N:1 podst:1wic wyników dzi:1lania funkcji Build_Catcgory_Sct Sohe_Optimization_Prohlem. funkcja ta zbuduje mechanizm który dla kazdego nmvotworzonego pliku okresli regule alokacji Dla kazdego nosnika wskazana zostanie wartosc okreslajaca stopie11 przekonania o tym. ze novrntworzony plik po,,inien zostac powiazany z konkretnym nosnikiem. W miare spadku wartosci stopnia przynaleznosci. kolejne nosniki beda znaidowaly sie na kolejnych pozycjach listy. Tabela ROZWIAZANIE zawiera nastepujace parametry plików: ID, BP , IO, IZ, CIDK, EX, TD, SzP, IW, UP, PTO, IDNOP (IDNOP jest identyfikatorem nosnika przypisanym do pliki w wyniku optymalizacji). Parametry te dziela sie na nastepujace rodzaje: a) parametry ciagle: BP, IO, IZ; b) parametry nominalne: ClDK, EX, TD, SzP, lW, UP, PTO; c) etykieta (identyfikator nosnika przypisany do pliku po optymalizacji): IDNOP. PL 439828 A1 43/52Dzialanie funkcji realizowane jest w nastypujacych krokach: l. Kodowanie CIOK. Poniewaz ClDK jest lista zmiennej dlugosci, dla potrzeb uczenia maszynowego parametr ten zamieniany jest na MAX_KAT_GLEB ( O) paramctró,v SCIDK 1, ... ,SCIDKsiAx_MJ_GLH· Jezeli rozmiar(CIDK) < MAX_KAT_GLEB, to param..::try SCIDK 1, ... ,SCIDKru,rniancwK przyjmuja ,,artosci odpo\\icdnich elementów z listy CIDK, a parametry SCIDKru,rniancwK,+J, .. ,SCIDKttAX_~\T_GLEB prz:jmuja ,vartosc 'O'. Jezeli dlugosc CIOK MAX_KAT_GlEB, to SCIDK 1=CIDK 1 , SCIDKM/1.x K1.r_<,tr:B= CIDKM 1.x_K\T rn.EB· 2. Podzial parametrów. Parametry plikó\\· dzielone sa na cztery typy: a) identyfikator plik.-u: ID; b) parametry ciagle: BP .10. lZ: e) parametry nominalne: SC1DK 1 .... ,SClDKMAX_KAT_GLEB• EX. TD. SzP. lW. UP. PTO; d) etykieta kategorii: lDNOP. 3. Kodowanie parametrów. W procesie nauczania sieci neuronowej, JeJ wejscie (X) tworza parametry ciagle oraz zakodowane parametry nominalne. Parametry nominalne kodowane sa koderem KODER_KATEGOR typu 'One-HOT'. Wyjscie (Y) tworzy parametr IDNOP, zakodmvany koderem KODER_ETYKIETY typu 'LabclBinarizcr'. Oba kodery, jako obiekty binarne. zapisywane sa do plików. odpowiednio, PLIK_KODER_KATEGOR, PLIK KODER ETYKIETY. Beda one wykorzystywane w funkcjach AIL.Allocate File AIL.Reallocate File. 4. Budowa perceptrona wielowarstwowego. Budowany jest perceptron wielowarstwowy MLP (sztuczna siec neuronowa). zawieraja.cv LICZBA WARSTW WEW 2' I warstw ukntvch. Liczba neuronów w kazdej warstwie ukrytej dobierana jest metodami heurystycznymi. Opracowano trzy heurystyki. W jedne.1 z nich uzaleznia sie te hczbe nie tylko od liczby neuronów warstw \\ ej sciowej i \V)j sciov\ ej, ale takze od liczby elementÓ\\ vv zbiorze treningowym. . Uczenie sieci MLP z nadzorem. Zakodowane dane o plikach (X) oraz zakodowane etykiety kategorii (Y) dzielone sa na dane treningowe (X_ TRENING, Y _ TRENING) oraz na dane testowe (X_TEST, Y_TEST). Frakcja danych testowych wynosi FRAKCJA_TEST (domyslnie 25%). Liczba epok w procesie uczenia wynosi MAX_LICZBA_EPOK (domyslnie 1000), ale proces uczenia monitorowany jest za pomoca tzw. mechanizmu „callback". Za pomoca tego mechanizmu przechwytywana jest takze najlepsza, w sensie dokladnosci PL 439828 A1 44/52przewidywania dla danych testowych, wersja MLP. Jest ona zapisywana jako obiekt binarny do pliku PLIK l\AJLEPSZY MLP i bedzie "'ykorzysty,,ana w funkcjach AIL.Allocate_File i AIL.Rcallorntc_Filc. Funkcja Rcallocatc_Filc CEL: Przygotowani..: r..:guly rdokacji dla pliku z tabeli KANDYDACI DO RELOKACJI. TNPUT: ID pliku. OUTPUT: Regula relokacji lub lista pusta. OPIS DZIALANIA: Na podstawie taheli KANDYDACI DO RELOKAC.TT ustalana jest dla zadanego pliku regula relokacji. Jezeli SzP == true, a wskazany w taheli KANDYDACI DO RELOKAC.11 nosnik dla zadanego pliku (parametr ID\IOP) nie jest nosnikiem szyfrowanym. to wybierany jest w sposób losowy jeden z dostepnych nosników szyfro,rnnych. Jezeli identyfikator wybranego tak nosnika jest rózny od identyfikatora nosnika. na którym aktualnie znajduje sie plik. to ten pieruszy umieszczany jest na liscie, tworzacej regule relokacji. W przeci\\n~m wypadku regula relokacji jest lista pusta, co oznacza, z..: plik ni..: ma byc relokowany. Regula relokacji v\ypracowana przez t9 funkcj9 jest lista co najwyzej 1-elcmc:ntowa, w odróznieniu od regul relokacji wypracowywanych przez funkc j c; AIL.Rc:allocate _File. Funkcja Enqueue CEL: wstawienie do KOLEJKI RELOKACJI reguly relokacji db. pliku INPUT: R regula relokacji dla pliku. OUTPUT: 0. OPIS DZIALANIA: Wstawienie do KOLEJKI RELOKACJI reguly relokacji R. Funkcja Save_ Category _Set CEL: Zachowanie aktualnej kategorii plików w archiwum HISTORYCZNE KATEGORIE. INPUT: Aktualne kategorie plików. OUTPUT: 0. OPIS DZIALANIA: Zarchiwizowanie aktualnej kategorii plików w archiwum HISTORYCZNE KATEGORIE. Zaklada sie, ze kolejne kategorie plików beda przechowywane w archiwum. Zaklada sie równiez, ze archiwum miesci ograniczona liczbe kolejnych kategorii. Zarchiwizowane kategorie plików, charakteryzuja dynamike Systemu. Karty akceleracyjne PL 439828 A1 45/52Karty akceleracyjne okreslane sa jako plyty elektroniczne. wyposazone w uklady obliczeniowe, komunikujace sie z docelO\\ ym komputerem poprzez zlacze Peripheral Component lnterconnect Express (PCfo). Obecnie na rynku istni..;ja d\\ic t..;chnologie, które dominuja w domeni..: kart akceleracyjnych: General Purposc Graphical Proccssing Unit (GPGPU) oraz Field Programmablc Gate Array (FPGA). Picnvszc z nich, GPGPU, sa b.rt::uni z ukladami o stalej architekturze WC\\nc;trzncj charakteryzujacej sic; duza iloscia jednolitych rdzeni realizujacych obliczenia w trybie Single Tnstmction Multiple Data (STMD). Bc;dac na1populamicjsza rodzina ukladów akcelcrac:jnych posiadaja najszersze wsparcie od strony pakietów oprogramowania. co spra,via ze ich uzycie jest relatywnie latwe Omgie z nich. uklady rekonfigurowalne FPGA. charakteryzuja sie mozliwoscia definiowania architektury obliczeniowej przez uzytkownika. dzieki czemu mozliwe jest osiagniecie wiekszej wydajnosci obliczen \\ stosunku do stalych architektur. Brak stalej architektury wprowadza jednak odejscie od klasycznych metod rozwijania oprogramowania, przez co otrzymanie dzialajacego rozwiazania kosztLue znaczni-: wiecej czasu i wysilku. \V tym przykladzi..; \vykonania w systemie vv..:dlug \\ynalazku do przyspi..:sz..:nia obliczd1 zwiazanych z si..:cia ncuronm\a ,v module A.IL stosowane sa karty akcelcrac~jne wylonione zostaly bazujace na ukladzie GPGPU, najpopubrnic_jszym rozwiazaniu w dziedzinie sieci ncuronmvYch. Pakiet,· oprogramowania posiadaja najcz9scicj ,vbudowana. obslugc; tego typu ukladó,v co ulatwia ich uzycie. Przeprowadzone badania oraz analiza rozwiazm1 1 wymagan dotyczacych implementacji modulu A.IL pozwolily wyznaczyc platfonne Nvidia AGX oraz biblioteke Tensorflow jako te. które w najlepszy sposób spelniaja stawiane zadania. Bedac niezalezna platforma. NVidia AGX odciaza system glówny od wszystkich oblicze11 zwiazanych z modulem A.IL. Dotyczy to nie tylko same.1 s1ec1 neuronowe.1 przetwarzanej na ukladzie GPU ale równiez operacji przygotowujacych dane. które moga byc realizowane na zintegrowanym procesorze ARM. Takie rozwiazanie zapewnia bardzo duza elastycznosc dziyki t..:mu, ze na procesorze A~\1 uruchomiony _jest system opcracy_jny Linux. Joslarczajac) \\SzysLkich 1m.:chanizmov\ Jo komunikacji L syslcm..:m glównym. Do impkmcnlacji modulu na karcie akceleracyjnej w:korzystano platformy Knas dostc;pna L poLiomu jc;Lyka Python, która \VC\\ nytrznie wykorzystuje zoptymalizowane elementy napisa.11...: w jyzyku C. ·wszystkie roz\\·azane platfonny sprzytowe "spieraja jyzyk P)ihon i C, wic;c mozliwa jest kompilacja programu napisanego w tychjc;zykach bezposrednio do postaci ,vykonywalncj na kartach akceleratorowych. Przyklad 2. Praca systemu wedlug wynalazku z wykorzystaniem regul domyslnych. Po uruchomieniu systemu Administrator Systemu wprowadza parametry statyczne nosników i plików z wykorzystaniem narzedzia Aidtool. Do wartosci tych parametrów ma dostep komponent AIL za pomoca odpowiedniego interfejsu. Nastepnie Administrator wprowadza reguly domyslne. W dalszej kolejnosci Administrator wprowadza wagi kryteriów. W przypadku pominiecia tego kroku przez PL 439828 A1 46/52Administratora obowia,zuja wagi domyslne. Reguly donnslne sa, uzywane do alokacji plików bezposrednio po uruchomieniu systemu. Nastypnic, co cpok1r, modul zarzadzajacy DMFS zbiera informacje dotyczace operacji na plikach obejmujacych co najmnicj KOSZT, ENERGIA, SSO, SOD, BP, GUP, \VIB oraz przekazuje je wraz z ich konfiguracja do modulu akcclcracy:jncgo AIL, w którym nast9pujc trenowanie w czasie rzeczy,vistym alg011imó,, sztucznej inteligencji " postaci sieci neuronowej neuronowa typu perceptron wielowarstwowy wbudowanej ,, modul AIL z wykorzystaniem danych wejsciowych stano"iacych kombinacje co najmniej danych o wagach niezerowych obejmujacych KOSZT, ENERGIA. SSO. SOD. BP. GUP. WIB. oraz modelu matematycznego. którym jest model programo"ania liniowego calkowitoliczbowego Co epoke modul AIL wypracowuje reguly alokacji i relokacji plików. które nastepnie przekazuje do modulu zarza.dzaja.cego DMFS. który w oparciu o wspomniane reguly co epoke przeprowadza alokacje i relokacje plików. Przy czym, jezeli infonnacje o operacJach na plikach nie pozwalaja na wyt,,orzenie innych regul niz te wypracowane w poprzedniej epoce. obowiazuja reguly ,vypracmrnne ,v poprzedniej epoce. Ponadto Administrator ma mozliwosc zmiany wag kryteriów. W takim wypadku AIL uz.rie nowych wag w pierwszej epoce nast<;pt~jaccj po epoce. w której zmieniono wagi. PL 439828 A1 47/52Zastrzezenia patentowe 1. System zarzadzania pamiycia masowa oparty o sii..:ci ni..:uronowi..:, znamienny tym, ze zawiera: a) modul akcelcrae_')jny AIL z wbudowanymi algorytmami sztucznej inteligencji \\ postaci sieci neuronowej skonfigurowany do wiclokrytcrialncj zmiany regul alokacji i relokacji na podstawie danych wejsciowych stanowiacych dane o operacjach na plikach otrzymane z modulu DMFS i obejmujace co najmniej kombinacje nastepujacych danych o wagach niezerowych KOSZT. ENERGIA. SSO. SOD. BP. GUP. WIB. przy czym reguly alokacji i relokacji sa wypracowywane co epoke na podsta\Yie trenowania\\ czasie rzeczywistvrn sieci neuronowej na podstawie wzorców pochodza,cych z matematycznego modelu, generowanych na podstawie wspomnianych danych wejsciowych: oraz b) modul zarzadzajacy DMFS skonfiguro\\any do zbierania informacji dotyczacych operacji na plikach i przekazywania ich do komponentu AIL oraz do wybierania trybu alokacji i relokacji plików w oparciu o reguly \vypracO\vane przez algorytmy modulu AlL. 2. System wedlug zastrz. I. znamienny tym, ze siec neuronowa stanowi siec neuronowa typu perceptron wielowarstwowy. 3. System \\cdlug zastrz. 2, znamienny tym, ze perceptron wiclo,,arst,vowy sklada SlQ z warstwy wejsciowej, 1-3 warstw ukrytych oraz warstwy W}jsciO\Ycj. 4. System wedlug dowolnego z poprzednich zastrz. od l do 3. znamienny tym, ze modul akcelerac:--jny AIL jest wyposazony"' karte akceleracyjna bazujaca na ukladzie GPGPU. . \Vspomagany komputerowo sposób zarzadzania pamic;cia masowa znamienny tym, ze obejmuje: a) zbieranie co epoke przez modul zarzadzajacy DMFS informacji dotyczacych operacji na plikach obejmujacych co najmniej KOSZT. ENERGIA. SSO. SOD. BP. GUP. WIB; h) przekazywanie co epoke przez DMFS dam·ch zebranvch w etapie a) wraz z ich konfigurac.1a do modulu akceleracyjnego AIL; c) trenowanie w czasie rzeczywistym algorytmó\\ sztucznej inteligen'-'.ii ,, postaci sieci ni..:uronow-.:j \\budO\\aI1cj ,v modul AIL, z wykorzystani-.:111 danych wcjscio\,ych stanowiacych kombinacje co najmniej danych o wagach niezerowych obejmujacych KOSZT, ENERGIA, SSO, SOD, BP, GUP, WIB, oraz modelu matematycznego, którym jest model programowania liniowego calkowitoliczbowego; d) wypracowanie co epoke przez modul AIL regul alokacji i relokacji plików; e) przekazanie co epoke przez modul AIL regul wypracowanych w etapie d) do modulu zarzadzajacego DMFS; f) alokacje i relokacje plików przez modul zarzadzajacy DMFS w oparem o reguly wypracowane w etapie d) przez algorytmy modulu AIL. PL 439828 A1 48/526. Sposób wedlug zastrz. 5, znamienny tym, ze siec neuronowa stanowi siec neuronowa typu perceptron wielowarstwowy. 7. Sposób v\edlug zastrz. 6, znamienny tym, ze perceptron wiclowarst,vowy sklada siy z warstwy wejsciowej, 1-3 warstw ukrytych oraz \\arstwy wyjscim\ej. PL 439828 A1 49/52System plików Jadro systemu System plików Biblioteka systemowa libFuse Przestrzen uzytkownika Agregacja informacji na wydzielonym, reprezentatywnym podzbiorze plików All Fig. l Wypracowanie wzorca (optymalizacja) Strumien plików q Podzbiór uczacy strumienia plików „ Agregat podzbioru plików / Optymalny wzorzec przydzialu plików do nosników -i. Reguly ..... Fig. 2 DMFS Wypracowanie regul alokacji i relokacji (uczenie maszynowe) PL 439828 A1 50/52Warstwa Warstwa warstwa ukryta wyjsciowa wejsciowa ~ 01 ::, 11 ~ 02 ~ 12 ~: I"') c· ~ 03 ]3 ro I "O Cl cl 3 ro .... '< "O ==:., =--- O, In Om ~ Fig. 3 PL 439828 A1 51/52al. Niepodleglosci 188/192 00-950 Warszawa, skr. poczt. 203 URZAD PATENTOvVY RZECZYPOSPOLITEJ POLSKI EJ tel.: (+48) 22 579 05 55 I fax: (+48) 22 579 00 01 e-mail: kontakt@uprp.gov.pl I www.uprp.gov.pl SPRAWOZDANIE O STANIE TECHNIKI ZGLOSZENIA NR P.439828 Klasyfikacja zgloszenia: G06F 17 /40 (2006.01), G06N 3/02 (2006.01) Poszukiwania prowadzone w klasach: G06F 17, G06N 3 Bazy komputerowe, w których prowadzono poszukiwania: Epodoc, Espacenet, Google Scholar bazy danych UPRP Kategoria Dokumenty - z podana identyfikacja Odniesienie dokumentu do zastrz. A US2012323832 A1 (SNOOK JAlv1ES A [US]; HUTSON DONALD B [US]; 1-7 KRICHlv1AR JEFFREY L [US]; NEUROSCIENCES RES FOUND [US]) 2012-12-20 A US2015324684A1 (IBM[US])2015-1H2 1-7 A US2015242745 A 1 (OUALCOMlv1 INC [US]) 2015-08-27 1-7 A US2012075319 A 1 (DALL Y WILLIAM JAMES [US]) 2012-03-29 1-7 A US2015248353 A 1 (RAMBUS INC [US]) 2015-09-03 1-7 A EP3035204 A 1 (INTEL CORP [US]) 2016-06-22 1-7 D Dalszy ciag wykazu dokumentów na nastepnej stronie A - dokument okresl8jacy ogólny stan techniki. który nie jest uwafany za posiadajacy szczególne rnaczenie, E - dokument stanowiacy wczesniejsze zgloszenie luh patent, ale opublikowany w lub po dacie zgloszenia, L - dokument, który moze podcb\\'aC w watpliwosc 1.astrzegane pierwszenstwof-wa]. lub przytoczony w celu ustalenia daty publikacji innego cytowanego dokumentu lub z innego szczególnego powodu, O - dokument odnoszacy sie do ujawnienia ustnego przez zastosowanie, wystawienie lub ujawnienie w inny sposób, P - dokument opublikowany przed data zgloszenia, ale pózniej niz zastrzegana data pierwszehstwa, T - dokument pózniejszy, opublikowany po dacie zgloszenia lub w dacie pierwszer'istwa i niebedacy w kontlikcie ze zgloszeniem. ale cytowany w celu zrozumienia zasad lub teorii lezacych u podstaw wynalazku, X - dokument o szczególnym znaczeniu; zastrzegany ½ynalazek nie moze byc uwazany za nm\y lub nie moze byc uwazany za posiadajacy poziom wynalazczy, jezeli ten dokument brany jest pod uwage samodzielnie, Y - dokument o szczególnym znaczeniu; zastrzegany wynalazek nie moze byc uwazany za posiadajacy poziom wynalazczy, jezeli ten dolrnment wstanie polaczony z jednym lub kilkoma tego typu dokumentarni, a takie polaczenie bedzie oczywiste dla znawcy, & dokument nalezacy do tej samej rodziny patentuwej. Sprawozdanie wykonali-a: mgr inz, Arkadiusz Kwapisz ekspert koordynator data 14.06.2022r, /-podpisano kwalifikowanym podpisem elektronicznym-/ Pismo wvdane w fonnie dokumentu elektroniczne1rn Uwagi do zgloszenia Sprawozdanie zostalo wykonane w odniesieniu do wersji zastrzezen patentowych z dnia 14.12.2021r. PL 439828 A1 52/52 PL