carea tiparelor de interes pentru o forma de reprezentare particulara sau pentru un set de astfel de...

65

Transcript of carea tiparelor de interes pentru o forma de reprezentare particulara sau pentru un set de astfel de...

��������������� �������������� ������������

� ������������ ������� ������

�����

� �!"��#��$�"� % ��&��'! �(���)%�

�#$ %#%*��"%�$%*�"���$ ���(���

)����#�*�*��

����+����+����,������� ��-�

�������������������� � �����

����� ��������.�/� 0�

-��/+���+����+�1����2����#��

Cuprins

Cuprins i

1 Introducere 1

1.1 Motivatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.2 Structura tezei . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.3 Diseminarea rezultatelor . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2 Data mining 10

2.1 Reguli de asociere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.1.1 Algoritmi secventiali utilizati ın determinarea

regulilor de asociere . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.1.2 Metode de paralelizare ale algoritmilor secventiali . . . . . . . . . 11

2.1.3 Discutii asupra tehnicilor existente de extragere a regulilor de asociere 13

2.2 Reguli de clasificare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.2.1 Algoritmi secventiali utilizati ın determinarea

regulilor de clasificare . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.3 Segmentarea datelor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.3.1 Notiuni teoretice fundamentale . . . . . . . . . . . . . . . . . . . . 15

2.3.2 Algoritmi secventiali utilizati ın segmentarea datelor . . . . . . . . 15

2.3.3 Metode de paralelizare ale algoritmilor secventiali . . . . . . . . . 16

2.3.4 Discutii asupra tehnicilor existente de segmentare

a datelor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.4 Concluzii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3 Noi algoritmi si modele de paralelizare pentru determinarea tiparelor

frecvente 18

3.1 Algoritmul Apriori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

3.1.1 Algoritmul secvential de baza . . . . . . . . . . . . . . . . . . . . . 18

3.1.2 Modificari aduse algoritmului HPA . . . . . . . . . . . . . . . . . . 21

3.1.3 Rezultate si discutii . . . . . . . . . . . . . . . . . . . . . . . . . . 23

3.2 Algoritmul Fast Itemset Miner . . . . . . . . . . . . . . . . . . . . . . . . 24

3.2.1 Algoritmul secvential de baza . . . . . . . . . . . . . . . . . . . . . 24

3.2.2 Algoritmul paralel - modelul simplu . . . . . . . . . . . . . . . . . 26

3.2.3 Algoritmul paralel - modelul generalizat . . . . . . . . . . . . . . . 28

3.2.4 Rezultate si discutii . . . . . . . . . . . . . . . . . . . . . . . . . . 30

i

ii CUPRINS

4 Topologii de comunicare eficiente pentru problema segmentarii datelor 32

4.1 Algoritmul Parallel K-Means . . . . . . . . . . . . . . . . . . . . . . . . . 32

4.2 Modificarea comunicatiilor pentru algoritmul paralel standard . . . . . . . 33

4.2.1 Topologia de tip hipercub . . . . . . . . . . . . . . . . . . . . . . . 34

4.2.2 Partitionarea datelor pe topologia de tip hipercub . . . . . . . . . 34

4.2.3 Tiparul comunicational utilizat ın determinarea centroizilor . . . . 37

4.3 Rezultate si discutii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

5 Sisteme Grid 41

6 Integrarea aplicatiilor MPI sub forma serviciilor Grid 45

6.1 Justificarea abordarii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

6.1.1 Model generic pentru serviciile Grid destinate

problemei descoperirii de cunostinte . . . . . . . . . . . . . . . . . 45

6.2 Arhitectura serviciului Grid propus . . . . . . . . . . . . . . . . . . . . . . 46

6.2.1 Modelul Fabrica/Instanta . . . . . . . . . . . . . . . . . . . . . . . 46

6.2.2 Integrarea modulelor MPI ın serviciul Grid . . . . . . . . . . . . . 47

6.3 Consideratii asupra aplicatiilor client . . . . . . . . . . . . . . . . . . . . . 48

6.4 Rezultate importante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

7 Concluzii, contributii si directii viitoare de cercetare 51

7.1 Concluzii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

7.2 Contributii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

7.3 Directii viitoare de cercetare . . . . . . . . . . . . . . . . . . . . . . . . . . 55

Bibliografie 57

Capitolul 1

Introducere

1.1 Motivatie

Un numar din ce ın ce mai mare de domenii stiintifice sau economice se confrunta cu

o crestere impresionanta a volumului de date acumulat. Aceasta stare de fapt este

ıncurajata si de dezvoltarea rapida a tehnicii de calcul si a dispozitivelor si mediilor de

stocare. Extragerea informatiilor relevante din aceste baze de date reprezinta ın contin-

uare un proces laborios, necesitand resurse costisitoare si, uneori, greu accesibile. Toto-

data, timpul necesar pentru obtinerea informatiilor necesare pentru diferite decizii sau

operatii ce trebuie efectuate asupra datelor tinta este din ce ın ce mai mare, implicand

deseori resurse aditionale, ın ciuda cresterii puterii de calcul si a scaderii costurilor echipa-

mentelor de calcul de mare performanta [Two 05, Adamo 00]. Mai mult, datele stocate

pot ıngloba informatii utile ce sunt adeseori ascunse unei analize directe din partea unor

eventuali operatori umani.

In scopul reducerii acestor costuri, precum si pentru micsorarea timpilor necesari, sunt

dezvoltate noi metode pentru analiza detaliata a datelor, metode al caror rezultat este

reprezentat de o restructurare automata/semiautomata a datelor [Adamo 00]. Astfel,

prin dezvoltarea acestor metode avansate de analiza se ıncearca regasirea acelor informatii

suplimentare care pot evidentia moduri noi de grupare a datelor stocate sau relatii noi

ıntre aceste date. Aceste tehnici de analiza sunt cunoscute sub denumirea de tehnici de

descoperire a cunostintelor ın baze de date. Descoperirea de cunostinte ın baze de date

este descrisa ca fiind un proces ce se desfasoara ın mai multe etape si are drept scop

detectarea automata a unor tipare si identificarea unor relatii noi ıntre datele stocate

[Two 05]. Semnificatia rezultatelor obtinute este strict corelata cu domeniul pentru care

se aplica aceste noi tehnici: informatiile noi pot fi utile ın realizarea unor predictii asupra

unor noi ınregistrari de acelasi tip sau pot reprezenta pur si simplu o noua descriere sau

o noua perspectiva asupra datelor existente.

Cu alte cuvinte, descoperirea de cunostinte ınseamna extragerea si interpretarea

informatiilor de interes - netriviale, implicite, necunoscute anterior si potential utile -

sau descoperirea de tipare ın datele stocate sub diferite forme. Procesul ın sine include

urmatoarele etape [Two 05]:

1. ıntelegerea domeniului de aplicatie, a cunostintelor anterioare, precum si a scopu-

1

rilor ce se doresc a fi atinse prin analiza;

2. crearea unui set tinta de date, fapt ce implica selectarea unui set de date, con-

centrarea asupra unui subset de variabile sau modele de date asupra carora sa se

execute procesul de descoperire a cunostintelor;

3. curatarea datelor si preprocesarea acestora: colectarea informatiilor necesare pen-

tru modelarea sau recunoasterea zgomotelor, ınlaturarea acestor zgomote si a datelor

ce nu furnizeaza informatii relevante, generarea de strategii pentru tratarea cam-

purilor de date lipsa sau incomplete;

4. reducerea seturilor de date ce vor fi analizate prin transformarea unui set de

atribute, prin extrapolarea unor valori de interes sau pur si simplu prin restrangerea

setului complet de atribute/caracteristici catre un set minimal de strict interes;

5. alegerea unei metode de extragere a informatiilor, ın functie de telul dorit (ex-

tragerea regulilor de clasificare a datelor, extragerea regulilor de asociere sau analiza

diferitelor secvente ıntalnite ın baza de date);

6. alegerea unui algoritm adecvat: selectarea metodelor de analiza ın functie de even-

tuale constrangeri impuse de particularitatile datelor analizate sau adoptarea unui

model valabil, adecvat domeniului tinta;

7. aplicarea metodelor de analiza si extragerea efectiva a informatiilor noi: identifi-

carea tiparelor de interes pentru o forma de reprezentare particulara sau pentru

un set de astfel de reprezentari, precum reguli sau arbori de clasificare, reduceri,

clusterizari, asocieri, seturi frecvente, s.a.m.d.;

8. validarea si interpretarea rezultatelor extrase;

9. consolidarea informatiilor descoperite.

Etapele descrise anterior sunt sintetizate ın Figura 1.1.

Figura 1.1: Procesul de descoperire de cunostinte (adaptare dupa [Fayyad 96])

2

In mod uzual, procesul de descoperire de cunostinte ın volume mari de date este con-

stituit din urmatoarele metode/modele de analiza (ın engleza: data mining) [Fayyad 96]:

• identificarea gruparilor de date - clusterizare: task descriptiv ce are drept scop

identificarea unui numar finit de categorii (grupuri/clustere) ce descriu mai bine

datele existente pe baza similaritatilor dintre aceste date;

• identificarea regulilor de clasificare: task predictiv ce are drept scop determinarea/

,,ınvatarea”, pe baza datelor existente, a unei functii de mapare (clasificator) cu

rol ın determinarea claselor de apartenenta pentru datele noi ce vor fi analizate;

• regresia: task predictiv ce are drept scop determinarea unei functii de mapare

a valorilor atributelor de interes peste numere reale pentru a prezice un anumit

comportament;

• identificarea tiparelor frecvente si a regulilor de asociere: task descriptiv ce are

drept scop determinarea subseturilor ce apar ımpreuna ıntr-un anumit set de valori

sau determinarea unor relatii (ın mod uzual, relatii de co-existenta) ın cadrul acelui

set de valori;

• analiza secventelor : task descriptiv ce are drept scop determinarea acelor secvente

ce apar ımpreuna ın cadrul unui anumit volum de date. Spre deosebire de deter-

minarea tiparelor frecvente, ın cadrul analizei secventelor entitatile ce pot constitui

o secventa nu sunt ın mod necesar omogene (nu au aceeasi semnificatie). In plus,

o secventa frecventa nu este conditionata de o limita de tip suport minim.

Aplicarea corecta a etapelor descrise anterior, precum si indentificarea corespunza-

toare a metodelor de analiza ce vor fi utilizate si obtinerea unor rezultate de interes nu

este posibila daca nu sunt bine ıntelese limitarile descoperirii de cunostinte. Tehnicile

si modelele utilizate ın descoperirea de cunostinte nu sunt general valabile. Nu ofera

rezultate ,,pe tava”, indiferent de natura domeniului pentru care sunt aplicate. In foarte

mult cazuri, rezultatele obtinute nu sunt valabile fara o eventuala certificare din partea

unui grup de potentiali experti umani pe domeniul de interes abordat. Mai mult, un

set particular de rezultate obtinute pentru un anumit caz nu este general valabil pentru

domeniul din care face parte cazul respectiv. Practic, se poate afirma ca provocarile ın

domeniu deriva si din caracteristicile intrinseci ale procesului ın sine: trebuie cunoscut

ce se cauta si trebuie cunoscute datele ın care se cauta, altfel rezultatele obtinute pot fi

irelevante.

Rezumand cele expuse pana acum, se poate afirma ca domeniul descoperirii de cu-

nostinte ın volume mari de date este un domeniu deosebit de complex, cu un pronuntat

caracter interdisciplinar. Provocarile ridicate de metodele de analiza caracteristice nu

pot fi surmontate fara colaborarea specialistilor din diverse arii de cercetare. Mai mult,

aceste metode de analiza trebuie sa gestioneze un volum din ce ın ce mai mare de date

achizitionate. Astfel, pentru o buna parte dintre algoritmii ce adreseaza problemele

specifice descoperirii de cunostinte trebuie dezvoltate modele de paralelizare si/sau de

distribuire eficiente. Acest fapt implica existenta unor echipamente si a unei infrastruc-

turi hardware si software adecvate, fara a conditiona accesul eventualilor experti ce nu

activeaza ın domeniul IT. O posibila solutie pentru depasirea acestor impedimente este

reprezentata de sistemele Grid. Un exemplu edificator ın acest sens este reprezentat de

3

proiectul Data Mining Grid1. Scopul proiectului este de a expune un framework coe-

rent pentru dezvoltarea si expunerea de aplicatii de descoperire de cunostinte ın cadrul

sistemelor Grid.

Termenul de sistem Grid a fost utilizat pentru prima data la mijlocul anilor ’90 pen-

tru a sintetiza specificatiile unei arhitecturi avansate de calcul distribuit. Ian Foster,

considerat de multi personalitatea numarul unu ın domeniul sistemelor Grid, subliniaza

ın [Foster 01] faptul ca modalitatea anterioara de definire este mult prea sumara pen-

tru a ıncapsula conceptele unui astfel de sistem. Potrivit lui Foster, problemele reale

adresate de Grid-uri sunt reprezentate de partajarea resurselor si rezolvarea problemelor

ın cadrul unui mediu dinamic multi-institutional [Foster 01]. Conceptul de resursa ın

cadrul unui sistem Grid ınglobea-za semnificatii diverse. Astfel, o resursa Grid poate

ınsemna un calculator sau un cluster de calculatoare, un produs software, un set de date

sau mecanismul de acces al unui set de date.

Partajarea resurselor capata ın acest context un plus semnificativ de complexitate fata

de cazul unei partajari uzuale de fisiere. Foster subliniaza faptul ca partajarea resurselor

este realizata ıntr-o maniera colaborativa, ın mod necesar bine controlata [Foster 01].

Pentru fiecare resursa exista unul sau mai multi furnizori si unul sau mai multi utilizatori.

Pentru fiecare dintre cele doua roluri exista un set de reguli ce definesc ın mod clar,

neambiguu, modalitatile acceptate prin intermediul carora se pot accesa resursele oferite,

drepturile de acces asupra acelor resure, mecanismele de utilizare, etc.. In acest context,

se defineste conceptul de Organizatie Virtuala (OV ): grup de indivizi si/sau institutii ce

stabilesc un set comun de reguli pentru partajarea resurselor disponibile.

Sistemele Grid reprezinta sisteme de calcul paralel si distribuit care permit partajarea,

selectia si agregarea resurselor distribuite de-a lungul mai multor domenii administrative

bazate pe disponibilitatea, performanta, capacitatea, costul si cererile utilizatorilor ser-

viciilor de calitate [Craus 05]. Practic, aceste sisteme de calcul de mare performanta sunt

destinate rularii proceselor de mare complexitate. Analizand schema unui proces de des-

coperisre de cunostinte (Figura 1.1), se poate afirma cu certitudine ca sistemele Grid pot

furniza suportul necesar pentru oricare dintre etapele implicate. Un sistem Grid ofera

mecanismele necesare stocarii unui volum mare de informatii, precum si mecanismele de

acces consecvent la acele date. Prin intermediul sistemelor de calcul paralel/distribuit

ınglobate, Grid-urile pot rula cu usurinta modulele de preprocesare a datelor sau orice

algoritm de analiza dorit de catre expertii umani.

Pe de alta parte, viziunea care a condus la dezvoltarea conceptului de sistem Grid

este de a oferi suportul hardware si software necesar colaborarii expertilor din diverse

domenii de cercetare. Asa cum aminteau si Bote-Lorenzo et al. ın [Bote-Lorenzo 03], un

sistem Grid este caracterizat de acces transparent si universal. Acest lucru implica faptul

ca un eventual cercetator fara pregatire profunda ın domeniul calculatoarelor ar trebui sa

fie capabil sa utilizeze diferitele resurse expuse de un sistem Grid ca si cum ar utiliza un

browser instalat pe calculatorul personal. Aceasta consecinta este deosebit de importanta

pentru domeniul descoperirii de cunostinte, ıntrucat oricat de bine automatiza ar fi o

anumita metoda de analiza implicata ın acest proces, rezultatele oferite nu sunt valabile

fara o eventuala re-evaluare din partea unui expert uman. Utilizand un sistem Grid,

acest expert uman se poate concentra pe obtinerea si interpretarea rezultatelor dorite,

accesul la resursele necesare fiind transparent.

1Pentru mai multe detalii: http://www.datamininggrid.org/

4

Aceasta lucrare ısi propune investigarea ambelor domenii prezentate: domeniul des-

coperirii de cunostinte ın volume mari de date si domeniul sistemelor Grid. Pentru

primul dintre acestea, cercetarile cuprinse ın aceasta lucrare sunt axate pe nucleul acestui

proces: algoritmii de analiza a seturilor de date preprocesate. In acest context, se pune

accentul pe determinarea tiparelor frecvente si a regulilor de asociere si pe problemele

legate de identificarea gruparilor similare de date (data clustering). Alegerea este bazata

pe popularitatea celor doua metode de analiza. Pentru ambele componente exista ın

prezent un numar considerabil de algoritmi secventiali si paraleli. Fiecare dintre acestia

exploateaza diversele particularitati ale datelor de lucru sau ale codificarii acestor date

ın vederea obtinerii rapide a unor rezultate de interes coerente.

Pentru problema determinarii tiparelor frecvente si a regulilor de asociere sunt ana-

lizati initial doi algoritmi fundamentali: algoritmul Apriori [Agrawal 94] si algoritmul

FP-Growth [Han 00]. Ambii algoritmi (descrisi pe larg ın subcapitolul 2.1.1) utilizeaza

structuri arborescente si considera ca obiectele de lucru sunt codificate prin index nu-

meric. Cu toate ca ambii algoritmi obtin performante bune din punctul de vedere al

timpului de raspuns oferit, este utila investigarea unor noi modaliati de codificare a

bazei de date tinta. In acest context, este prezentata o noua modalitate de codificare

binara a seturilor de date supuse analizei. Sunt analizate avantajele si dezavantajele

aduse de o astfel de codificare atat pentru cazul secvential, cat si pentru unul dintre

cele mai cunoscute modele de paralelizare ale algoritmului Apriori - Hash Partitioned

Apriori (HPA) [Shintani 96]. Este, de asemenea, analizat un nou model algoritmic pen-

tru determinarea tiparelor frecvente. Acest nou model este axat, similar algoritmului

Apriori, pe generarea si validarea unor seturi candidate. Deosebirea fundamentala fata

de Apriori este aceea ca noii candidati nu sunt generati ıntr-o maniera strict marginita.

Astfel, principiul noului algoritm este de a grupa itemii frecventi/itemseturile frecvente

ın intervale si de a obtine noile itemseturi candidate prin reuniuni de itemseturi frecvente

cu nucleul comun, ce apartin de intervale diferite.

Pentru problema identificarii gruparilor similare de date, ın lucrarea de fata accentul

cade pe analiza algoritmului K-Means Clustering si a uneia dintre cele mai des utilizate

metode de paralelizare ale algoritmului - Parallel K-Means - PKM. Rezultatele cecetarilor

efectuate pentru acest algoritm sunt menite sa evidentieze importanta utilizarii unor

topologii de comunicatie adecvate pentru a obtine implementari eficiente ale paralelizarii

ın discutie. Pentru o parte dintre algoritmii analizti, lucrarea a avut ın vedere abordari

paralele bazate pe implementarea LAM/MPI2 a standardului MPI (Message Passing

Interface).

Partea a doua a acestei lucrari este dedicata sistemelor Grid. Cercetarile efectuate

ın cadrul acestui domeniu vizeaza posibilitatile de expunere a aplicatiilor dezvoltate uti-

lizand standardul MPI sub forma servicii Grid. Primul considerent care trebuie avut ın

vedere ın justificarea acestei alegeri este legat de evolutia sistemelor Grid. Inca de la

ınceputul anilor 2000, Foster utilizeaza notiunea de ,,serviciu” pentru a defini conceptul

de OV [Foster 01]:

...examples of VOs: the application service providers, storage service providers,

cycle providers, and consultants engaged by a car manufacturer to perform

scenario evaluation during planning for a new factory...

2Pentru mai multe detalii http://www.lam-mpi.org/

5

In anul 2002, Foster et al. definesc un prim set de specificatii pentru sistemele Grid

orientate pe servicii [Foster 02c]. Aceste specificatii au devenit standardul de facto ın

cadrul sistemelor Grid bazate pe arhitecturi orientate pe servicii - standard cunoscut ın

prezent sunt numele de Open Grid Services Architecture (OGSA). Unul dintre primele

middleware-uri ce a implementat acest standard este Globus Toolkit (ıncepand cu ver-

siunea 3.0)3. Cu toate ca ın versiunile curente acest middleware asigura suport pentru

aplicatiile Grid dezvoltate utilizand diferite implementari ale standardului MPI (MPICH-

G2, LAM/MPI - prin job-managerul implicit, OpenMPI), experimentele au evidentiat

faptul ca acest suport nu este bine stabilizat pentru expunerea acestui tip de aplicatii

sub forma serviciilor Grid. Avand ın vedere aceasta observatie, este propus un model de

expunere a aplicatiilor paralele dezvoltate utilizand LAM/MPI sub forma unui serviciu

Grid. Acest model este prezentat pe larg ın capitolul 6, implementarea fiind expusa de

Grid-ul GRAI dezvoltat ın cadrul proiectului de cercetare 74 CEEX-II03/31.07.2006.

Un al doilea motiv pentru alegerea acestei directii de cercetare este derivat din mo-

delul propus de Foster et al. pentru abordarea problemelor legate de descoperirea de

cunostinte ın cadrul sistemelor Grid [Foster 02b]. Practic, considerand natura complexa

a procesului amintit anterior, Foster et al. justifica faptul ca metodele de analiza speci-

fice ar trebui implementate sub forma de servicii Grid. Acest fapt atrage dupa sine o

ımbinare mai facila a metodelor de analiza pentru aplicatiile complexe. Modelul descris

ın [Foster 02b] este prezentat ın subcapitolul 6.1.1 si reprezinta puntea de legatura ıntre

cele doua domenii de cercetare abordate.

1.2 Structura tezei

Lucrarea de fata este structurata pe doua parti. Prima parte, intitulata ALGORITMI

PARALELI PENTRU APLICATII DATA MINING, este dedi-cata domeniului

descoperirii de cunostinte ın volume mari de date si cuprinde trei capitole.

In capitolul 2 este analizat stadiul actual al cercetarilor din cadrul acestui domeniu.

Sunt prezentate fundamentele teoretice care stau la baza determinarii tiparelor frecvente

si a regulilor de asociere, a determinarii regulilor de clasificare si, respectiv, a metodelor de

clusterizare. Pentru fiecare dintre aceste metode sunt analizati atat algoritmii secventiali

importanti, cat si metode eficiente de paralelizare ale acestora. In centrul atentiei se afla

algoritmii de identificare a tiparelor frecvente ın volume mari de date si cei utilizati ın

clusterizarea datelor. In cazul determinarii tiparelor frecvente sunt analizati doi dintre

cei mai importanti algoritmi ın domeniu: Apriori si FP-Growth. In ambele cazuri sunt

supuse atentiei atat modelele secventiale cat si cele paralele. In cazul tehnicilor de

clusterizare, analiza este focalizata ın jurul algoritmului K-Means Clustering. Alegerea

este justificata de popularitatea acestui algoritm ın cadrul domeniilor ce necesita astfel

de analize de date. Subcapitolul de concluzii aferent evidentiaza un set suplimentar de

motive ce justifica alegerea temei de cercetare.

Capitolul 3 prezinta modificarile propuse pentru optimizarea algoritmului secvential

Apriori (subcapitolul 3.1). Aceste modificari vizeaza codarea binara a itemitor si, respec-

tiv, a seturilor de itemi. In continuare sunt discutate modalitatile prin care sunt modifi-

cate structurile de date caracteristice algoritmului ın discutie. In subcapitolul urmator

este prezentata o propunere de modificare a algoritmului HPA, propunere care se refera

3Pentru mai multe detalii http://www.globus.org/

6

la implementarile MPI ale HPA. Aceasta vizeaza unul dintre puncte slabe ale modelu-

lui de paralelizare amintit anterior: nivelul ridicat al comunicatiilor implicat de faza de

generare de candidati caracteristica algoritmului secvential de baza. Datorita codificarii

binare amintite anterior, se poate slabi conditia de generare a cheii de dispersie utilizata

ın identificarea seturilor de itemi. Astfel, cheia de dispersie poate fi aplicata asupra

setului generator al candidatului curent, fapt ce atrage dupa sine o reducere semnifica-

tiva a comunicatiilor amintite. In continuare, subcapitolul 3.2 prezinta un nou algoritm

pentru determinarea seturilor frecvente. Acest algoritm este bazat tot pe generarea de

candidati, similar algoritmului Apriori. Spre deosebire de Apriori, candidatii noi nu sunt

generati pe baza combinarii unor seturi frecvente de dimensiune k-1 (unde k reprezinta

lungimea seturilor corespunzatoare iteratiei curente), ci pe a ımparti itemii/itemseturile

frecvente ın intervale initial disjuncte si a genera candidatii noi din reuniuni de itemseturi

ce apartin de intervale diferite.

Capitolul 4 vizeaza ımbunatatirile aduse unor implementari MPI ale algoritmu-

lui Paralel K-Means. Cu toate ca paralelizarea existenta este eficienta, foarte multe

dintre implementarile curente nu tin cont de un factor deosebit de important pentru

paralelizarile bazate pe standardul MPI: topologia de comunicatie dintre noduri. O

topologie adecvata unui anumit algoritm poate reduce considerabil timpul suplimentar

implicat ın comunicatii. In acest sens, ın prima parte a subcapitolului este prezentata ın

detaliu o astfel de topologie, cu perfomante crescute pentru comunicatiile colective im-

plicate de PKM. Peste aceasta topologie sunt detaliate modul de partitionare a datelor si

modificarile aduse ın determinarea colectiva a datelor de lucru pentru o eventuala iteratie

ulterioara. Implementarea astfel modificata este comparata din punctul de vedere al tim-

pului de raspuns oferit cu o implementare ce utilizeaza bibliotecile puse la dispozitie de

implementarea LAM/MPI a standardului MPI.

Partea a doua a tezei, intitulata SOLUTII DE IMPLEMENTARE PENTRU

APLICATII DATA MINING IN SISTEME GRID, vizeaza cerce-tarile efectuate

pentru expunerea metodelor de analiza aferente procesului de descoperire de cunostinte

ın cadrul unui sistem Grid. Aceasta a doua parte cuprinde doua capitole.

Capitolul 5 descrie ın detaliu middleware-ul Globus Toolkit, versiunea 4. Sunt

prezentate arhitectura generala a middleware-ului, standardele pe care se bazeaza acesta

si suportul oferit pentru dezvoltarea serviciilor Grid. Sunt aduse ın discutie si cateva

dintre implementarile cele mai importante ale standardului MPI si este analizat suportul

oferit de GT 4 pentru acestea.

Capitolul 6 este dedicat solutiei propuse pentru integrarea aplicatiilor paralele dez-

voltate utilizand standardul mentionat sub forma de servicii Grid. Accentul se pune

pe aplicatiile dezvoltate utilizand implementarea LAM/MPI a standardului. Motivul

acestei alegeri se bazeaza pe faptul ca LAM/MPI versiunea 7.1.* este printre singurele

versiuni ce ofera suport complet pentru versiunea 2.0 a specificatiilor MPI. Este prezentat

modelul generic propus de Foster et al. pentru servicii Grid destinate analizei datelor.

Pornind de la acest model, a fost dezvoltat un serviciu capabil sa expuna diferite module

de analiza caracteristice data mining, module ce sunt implementate utilizand LAM/MPI.

Managerul de job-uri Grid utilizat este cel predefinit pentru versiunea curenta a toolkit-

ului ın discutie (Fork). Serviciul dezvoltat respecta arhitectura Fabrica/Instanta si poate

fi intergrat usor cu orice instalare standard a GT 4. In finalul capitolului este prezentate

un set de rezultate importante menite sa sublinieze necesitatea unui astfel de serviciu.

In capitolul 7 sunt prezentate sintetic rezultatele obtinute si sunt evidentiate contri-

7

butiile aduse pentru cele doua domenii abordate. Finalul capitolului contine propunerile

de cercetare ce deriva din rezultatele obtinute.

1.3 Diseminarea rezultatelor

Articolele stiintifice ce stau la baza acestei lucrari au fost publicate ın reviste (3), volume

de specialitate (3) sau prezentate la conferinte internationale (6) si sunt indexate ın baze

de date bibliografice recunoscute: Thomson ISI (3), IEEE (1).

A. Archip, M. Craus, and S. Arustei. Efficient Grid Service Design to In-

tegrate Parallel Applications. In Marten van Sinderen, editor, Proceedings of

2nd International Workshop on Architectures, Concepts and Technologies for

Service Oriented Computing held in conjunction with 3rd International Con-

ference on Software and Data Technologies, pages 7-16, Porto PORTUGAL,

2008. INSTICC Press. (ISI)

M. Craus & A. Archip. A generalized parallel algorithm for frequent item-

set mining. In ICCOMP’08: Proceedings of the 12th WSEAS international

conference on Computers, PTS 1-3, pages 520-523. World Scientific and En-

gineering Academy and Society (WSEAS), 2008. (ISI)

S. Arustei, M. Craus, and A. Archip. Towards a Generic Framework for

Deploying Applications as Grid Services. In Marten van Sinderen, editor,

Proceedings of 2nd International Workshop on Architectures, Concepts and

Technologies for Service Oriented Computing held in conjunction with 3rd

International Conference on Software and Data Technologies, pages 17-26,

Porto, Portugal, 2008. INSTICC Press. (ISI)

S. Arustei, A. Archip and C.M. Amarandei. Grid Based Visualization Using

Sort-Last Parallel Rendering. In H.N. Teodorescu and M. Craus, editors,

Scientific and Educational Grid Applications, pages 101-109, Iasi, Romania,

2008. Politehnium.

A.Archip, C.M. Amarandei, S. Arustei, and M. Craus. Optimizing Associa-

tion Rule Mining Algorithms Using C++ STL Templates. Buletinul Institu-

tului Politehnic din Iasi, Automatic Control and Computer Science Section,

LIII(LVII):123-132, 2007.

C.M. Amarandei, A. Archip, and S. Arustei. Performance Study for MySql

Database Access Within Parallel Applications. Buletinul Institutului Po-

litehnic din Iasi, Automatic Control and Computer Science Section, LII(LVI):

127 - 134, 2006.

A. Archip, S. Arustei, C.M. Amarandei and A. Rusan. On the design of

Higher Order Components to integrate MPI applications in Grid Services.

In H.N. Teodorescu and M. Craus, editors, Scientific and Educational Grid

Applications, pages 25-35, Iasi, Romania, 2008. Politehnium.

8

C.M. Amarandei, A. Rusan, A. Archip and S. Arustei. On the Development

of a GRID Infrastructure. In H.N. Teodorescu and M. Craus, editors, Sci-

entific and Educational Grid Applications, pages 13-23, Iasi, Romania, 2008.

Politehnium.

S. Caraiman, A. Archip, and V. Manta. A Grid Enabled Quantum Com-

puter Simulator. In SYNASC’09: Proceedings of the 11th International Sym-

posium on Symbolic and Numeric Algorithms for Scientific Computing, Ti-

misoara, Romania, 2009. IEEE Xplore.

S. Arustei, A. Archip, and C.M. Amarandei. Parallel RANSAC for Plane

Detection in Point Clouds. Buletinul Institutului Politehnic din Iasi, Auto-

matic Control and Computer Science Section, LIII(LVII):139-150, 2007.

M. Craus, H.N. Teodorescu, C. Croitoru, O. Brudaru, D. Arotaritei, M. Calin

& A. Archip. Academic Grid for Complex Applications - GRAI. In Proc.

of 16th International Conference on Control Systems and Computer Science.

POLITEHNICA University of Bucharest, May 22-25 2007.

M. Craus, H.N. Teodorescu, C. Croitoru, O. Brudaru, D. Arotaritei, M. Calin

& A. Archip. The Service Layer of the Academic Grid GRAI. In Proc. of

16th International Conference on Control Systems and Computer Science.

POLITEHNICA University of Bucharest, May 22-25 2007.

Lucrari acceptate spre publicare:

A. Archip, V. Manta & G. Danilet, Parallel K-Means Revisited: A Hy-

percube Approach, In Proceedings of the 10th International Symposium on

Automatic Control and Computer Science, October 2010.

I. Astratiei & A. Archip, A Case Study on Improving the Performance

of Text Classifiers, In Proceedings of the 10th International Symposium on

Automatic Control and Computer Science, October 2010.

O parte dintre cercetarile ce au condus la scrierea acestei teze au fost efectuate ın

cadrul proiectului de cercetare Grid academic pentru aplicatii complexe (GRAI ), contract

74 CEEX-II03/31.07.2006, Parteneri: UT Iasi (coordonator), UAIC Iasi, USAMV Iasi,

IIT Iasi, Director proiect: prof. dr. Mitica Craus, Perioada: 2006 - 2008.

9

Capitolul 2

Data mining

2.1 Reguli de asociere

Problema extragerii regulilor de asociere din baze de date poate fi formulata astfel: Dat

fiind un set de obiecte (itemi) I si un set de tranzactii D (sau colectii/multimi de itemi),

sa se identifice toate regulile de forma:

A⇒ B (2.1)

unde A si B reprezinta colectii disjuncte de obiecte [Agrawal 94, Zaki 99].

O observatie importanta este aceea ca regulile de asociere de forma (2.1) nu trebuie

interpretate ca fiind implicatii ın sensul ”existenta setului A implica existena setului B”.

Aceste reguli au semnificatia coexistentei seturilor A si B.

2.1.1 Algoritmi secventiali utilizati ın determinarea

regulilor de asociere

In prezent exista un numar considerabil de algoritmi secventiali propusi pentru extragerea

regulilor de asociere. Fiecare dintre acestia propune fie noi structuri de date pentru

generarea si testarea seturilor candidate (cazul algoritmilor ce extind Apriori, propus

ın [Agrawal 94]), fie reorganizeaza spatiul de cautare ın forme structurate, fie modifica

organizarea bazei de date propuse spre analiza (cum este cazul algoritmilor bazati pe

Eclat). O sinteza coerenta a algoritmilor dezvoltati pana ın anul 1999, este propusa de

Zaki ın [Zaki 99].

O prima diferenta apare ın modul ın care sunt cautate itemseturile frecvente ın baza

relatiilor de incluziune ce apar ıntre multimi. Astfel, algoritmii bazati pe Apriori, precum

si algoritmii anteriori Apriori (AIS si SETM), folosesc o asa numita cautare bottom-up.

Practic, ın cazul acestor algoritmi se porneste de la itemii frecventi si pe baza acestora

se genereaza apoi itemseturi frecvente de dimensiune din ce ın ce mai mare, pana la

determinarea totala sau partiala a itemseturilor maximale. Exista ınsa situatii cand este

preferata o abordare top-down, pentru indentificarea itemseturilor maximale. In acest

sens au fost dezvoltati algoritmi de cautare hibrizi - cum ar fi, spre exemplu, MaxEclat

si, respectiv, MaxClique. Acest tip de algoritmi identifica, ıntr-o prima etapa, o multime

de itemseturi frecvente de dimensiune variabila. In etapele urmatoare, aceste itemseturi

10

sunt fie combinate pentru obtinerea unor itemseturi maximale, fie sunt sparte pentru

obtinerea subseturilor frecvente incluse.

O alta deosebire importanta, evidentiata de Zaki ın [Zaki 99], este legata de modul ın

care sunt generate seturile candidate si, respectiv, identificate apoi itemseturile frecvente.

Astfel, algoritmii bazati pe Apriori sau pe FP-Growth realizeaza o cautare completa a

spatiului solutiilor, identificand ın final toate itemseturile frecvente si, respectiv, toate

regulile de asociere posibile. Exista, ınsa, cazuri ın care nu este necesara identificarea

tuturor tiparelor frecvente. De asemenea, situatia propusa spre analiza poate impune

regasirea numai a itemseturilor maximale.

Un alt aspect deosebit de important ın diferentierea algoritmilor existenti este orga-

nizarea bazei de date tinta. Majoritatea algoritmilor - Apriori si derivati, FP-Growth,

DHP, SEAR, etc. - sunt orientati pe analiza bazelor de date cu organizare orizontala:

ınregistrarile sunt memorate ın forma [identificator tranzactie (TID), lista itemi inclusi ın

tranzactie]. Exista o grupa de algoritmi - Eclat si derivati, si, respectiv, Clique si derivati

- care sunt orientati pe analiza bazelor de date cu organizare verticala: ınregistrarile sunt

memorate sub forma [item, lista identificatori tranzactii ce includ itemul (TID)].

Unul dintre principalii algoritmi de extragere a regulilor de asociere, folosit si ın

prezent, este algoritmul Apriori, propus ın [Agrawal 94]. Principiul de baza al algo-

ritmului este de a calcula seturile frecvente de itemi de dimensiune k prin combinari

ale seturilor de dimensiune k − 1, pentru k cel putin egal cu 2. In plus, ın partea de

generare a seturilor candidate de dimensiune k, se impune urmatoarea constrangere:

un set candidat de dimensiune k nu poate fi obtinut decat prin combinarea a 2 seturi

frecvente de dimensiune k−1 ce au primele k−2 elemente comune. In plus, se impune si

conditia ca orice subset de dimensiune k−1 inclus ın k-itemsetul candidat sa fie frecvent

[Agrawal 94, Adamo 00, Tan 05].

Zaki nota faptul ca algoritmul propus de Agrawal et al. ın [Agrawal 94] obtine o

complexitate timp liniar marginita fata de dimensiunea listei de tranzactii [Zaki 99].

Un al doilea algoritm deosebit de important pentru problema regasirii tiparelor frec-

vente este reprezentat de algorimul FP-Growth [Han 00]. Acesta este, ın prezent, unul

dintre cei mai rapizi algoritmi folositi ın extragerea tiparelor frecvent. Algoritmul este

bazat pe o reprezentare de tip arbore prefix (arbore FP) a tranzactiilor ınregistrate ın

baza de date tinta, modalitate de reprezentare care reduce considerabil memoria folosita

pentru stocarea tranzactiilor [Han 00]. Ideea de baza a algoritmului este bazata pe o

schema de eliminare recursive [Han 00, Grahne 05]

2.1.2 Metode de paralelizare ale algoritmilor secventiali

In aceasta sectiune sunt prezentate cateva dintre cele mai cunoscute paralelizari pentru

algoritmii prezentati anterior.

Paralelizari ale algoritmului Apriori

Tehnicile de paralelizare ale algoritmului Apriori pot fi ımpartite ın 4 categorii, ın

functie de tinta paralelizarii [Shintani 96, Zaki 99, Kumar 03]:

• distribuirea candidatilor - paralelizari de tip ,,candidate distribution”: generarea

candidatilor este distribuita ıntre nodurile de procesare. Partile bazei de date sunt

memorate pe fiecare procesor ın parte. Multimea de candidati este comunicata

11

celorlalte procesoare printr-un proces de tip gather/broadcast. O observatie impor-

tanta este cea a lui Zaki, care sustine ca acest tip de paralelizare este una extrem

de ineficienta, datorita comunicatiilor excesive [Zaki 99];

• distribuirea calculului suportului minim - paralelizari de tip ,,count distribution”:

ın acest caz, baza de date este partitionata ın subseturi disjuncte ıntre proce-

soare. Fiecare procesor cunoaste integral arborele hash al itemilor si, respectiv,

al candidatilor. Suportul este incrementat local, pentru fiecare candidat ın parte.

Urmeaza apoi o etapa de comunicare, pentru calcularea suportului global. Un astfel

de algoritm este Non Partitioned Apriori, propus ın [Shintani 96];

• distribuirea datelor - paralelizari de tip ,,data distribution”: acest model propune o

generare disjuncta a itemseturilor candidate. Totusi, acest model implica, din nou,

comunicatii excesive, de aceasta data pentru transmiterea candidatilor ıntre proce-

soare si calculul suportului global. Un exemplu de algoritm este Simple Partitioned

Apriori [Shintani 96];

• paralelizari hibride: modelul algoritmic propus ın acest caz este reprezentat de

Hash Partitioned Apriori (HPA) [Shintani 96] si va fi expus pe larg ın contin-

uare.

Algoritmul HPA are la baza, dupa cum indica si numele sau, algoritmul Apriori, fiind

una dintre cele mai eficiente paralelizari ale algoritmului mentionat.

Cum am amintit anterior, ideea algoritmului Apriori este aceea de a genera seturi

candidate de itemi de dimensiune k pe baza seturilor frecvente de itemi de dimensiune

k − 1. Fiecare set de itemi candidat este apoi testat pentru a se determina daca este un

set frecvent de itemi sau nu. Acest pas se repeta pana ın momentul ın care nu mai sunt

gasite seturi frecvente de itemi sau pana cand se ajunge ın imposibilitatea generarii de

seturi candidate.

Algoritmul HPA partitioneaza itemseturile canditate si baza de date ıntre procesoare,

folosind o functia hash caracteristica algoritmului secvential de baza. Se elimina astfel

broadcastul inutil al datelor tranzactionate si se obtin reduceri semnificative din punct

de vedere al timpului consumat ın calculul suportului pentru un set dat [Shintani 96].

Paralelizari ale algoritmului FP-Growth

Una dintre cele mai interesante paralelizari ale algoritmului FP-Growth este propusa

de Zaiane si este prezentata ın continuare [Zaiane 01] . Modelul algoritmic poarta numele

de Multiple Local Frequent Pattern Trees (MLFPT ) si este constituit din doua faze.

Prima dintre acestea consta ın construirea unor arbori FP locali, ın timp ce etapa a doua

consta ın explorarea acestor arbori si construirea seturilor frecvente de itemi.

Pentru construirea arborilor MLP (Multiple Local Pattern), initial se scaneaza baza

de date pentru a se identifica seturile de itemi frecventi de dimensiune 1 (sau, cu alte cu-

vinte, itemii frecventi). In acest scop, baza de date tinta este ımpartita ıntre procesoare

ın mod aproximativ egal. Fiecare procesor va calcula suportul partial al itemilor regasiti

ın subsetul de tranzactii ce i-a fost repartizat din baza de date initiala. Aceasta etapa se

ıncheie cu o operatie colectiva de reducere pentru a determina suportul global al fiecarui

item ın parte. Urmeaza un pas computational de eliminare a itemilor nefrecventi si de

sortare a itemilor frecventi ın ordinea descrescatoare a suportului calculat. Similar algo-

ritmului secvential, tranzactiile sunt de asemenea sortate descrescator relativ la suportul

12

itemilor inclusi si sunt eliminati din tranzactii itemii nefrecventi. Urmeaza o etapa de

calcul, cu scopul de a construi arborii FP locali. Trebuie facuta observatia ca acesti

arbori locali vor avea radacina un element null. Fiecare procesor va scana din nou setul

de tranzactii ce i-a fost asignat pentru determinarea arborilor FP locali. Pasii urmati ın

acest caz sunt similari (la nivel local) cu cei ai algoritmului FP-Growth secvential.

Se construieste apoi baza de tipare conditionale: o lista care contine toti itemii ce

apar ınaintea itemului studiat si pana la radacina (ıntr-o parcurgere bottom-up). Prin

combinarea acestor baze de tipare conditionate se identifica pentru fiecare item ın parte

un sir ce contine toti ceilalti itemi cu care itemul curent poate forma seturi frecvente,

precum si suportul pentru fiecare set ın parte. Se obtin, astfel, arbori FP-conditionali.

Pe baza acestora din urma se determina tiparele frecvente. Aceasta ultima etapa este

una intensiv comunicationala. Pentru fiecare itemset ın parte sunt necesare operatii

de comunictie colective pentru determinarea suportului global pe baza arborilor FP-

conditionali.

2.1.3 Discutii asupra tehnicilor existente de extragere a regulilor de asociere

In subcapitolele anterioare au fost prezentati doi dintre cei mai importanti algoritmi

utilizati ın determinarea regulilor de asociere (Apriori si FP-Growth) si doua dintre cele

mai cunoscute metode de paralelizare pentru algoritmii ın discutie. Cu toate ca ambii

algoritmi sunt eficienti, exista un set de dezavantaje ce ar putea fi eliminate.

Astfel, cu toate ca obtine timpi de raspuns performanti prin reducerea semnificativa

a scanarilor bazei de date tinta (doar doua scanari ale bazei de tranzactii), algorit-

mul FP-Growth implica existenta unor sturcturi de date complexe. Acest fapt atrage

dupa sine o complexitate mult crescuta pentru modelele paralele. Implementarile mod-

elului MLFPT realizate pentru sisteme de calcul paralel bazate pe principiul memoriei

partajate se pot dovedi ineficiente datorita sincronizarilor implicate de construirea arbo-

rilor FP-conditionali. Pe de alta parte, daca sistemul de calcul paralel este unul bazat pe

memorie distribuita si comunicare de mesaje, atunci detereminarea tiparelor frecvente pe

baza arborilor FP-locali implica un necesar crescut de comunicatii ce pot cauza scaderea

performantelor.

Legat de primul algoritm, Apriori, se pot observa rapid doua dezavantaje majore ale

algoritmului. In primul rand, algoritmul interogheaza la fiecare iteratie baza de date tinta,

inclusiv ın faza de generare a k-itemseturilor candidat [Agrawal 94]. In al doilea rand,

functia cheie a algoritmului introduce timpi de calcul suplimentari. Dupa determinarea

celor doua seturilor de dimensiune k − 1 ce vor genera k-itemsetul candidat, trebuie

verificat daca toate (k − 1)-itemseturile incluse ın noul candidat sunt (k − 1)-itemseturi

frecvente. Ordinul de complexitate al functiei de generare este O(rk12· rk· k).

In cazul general, algoritmii existenti utilizati ın extragerea regulilor de asociere pot

fi optimizati doar din punctul de vedere al raspunsului timp. Considerand o astfel de

abordare, Agrawal propune (propunere reluata apoi ın [Adamo 00]) un al doilea algoritm,

AprioriTid [Agrawal 94]. Fata de varianta de baza, algoritmul AprioriTid memoreaza,

pentru fiecare k-itemset frecvent, si un set de identificatori ai tranzactiilor pe baza carora

a fost calculat suportul itemului ın discutie. Totusi, nici aceasta abordare nu obtine un

plus de performante considerabil.

Un alt aspect negativ legat de algoritmii utilizati ın determinarea regulilor de asociere

este ca, ın afara de algoritmul Apriori nu au fost exploatate alte mecanisme de gene-

13

rare a candidatilor ce ar putea reduce considerabil multimea de seturi parcurse. O alta

observatie importanta este ca, desi autorii din [Tan 05] introduc ın mod demonstrativ

codificarea binara a itemseturilor, nu se regasesc publicate nici un set de rezultate care

sa ofere detalii legate de performantele acestei codificari.

2.2 Reguli de clasificare

Formal, extragerea regulilor de clasificare poate fi rezumata la urmatoarea definitie

[Freitas 00, Tan 05]:

Definitia 2.1 (Regula de clasificare). Extragerea regulilor de clasificare dintr-un set

de date reprezinta generarea, pe baza cunostintelor acumulate, a unui set de constrangeri

pentru a sorta datele ulterioare.

2.2.1 Algoritmi secventiali utilizati ın determinarea

regulilor de clasificare

Asa cum am amintit ın capitolul introductiv, prin extragerea unui set de reguli de clasi-

ficare dintr-un set de date tinta se ıncearca identificarea unei functii capabile sa mapeze

corect un set de atribute de intrare pe un set de etichete predefinite, numite clase. In

cazul general, aceasta operatie este compusa din doua etape distincte [Tan 05]:

• prima dintre acestea implica ınvatarea regulilor de clasificare pe baza unui model

predefinit, construit, ın mod uzual, pe baza experientei beneficiarilor finali [Two 05];

• a doua etapa implica aplicarea acestui model de clasificare pe un set de date de test,

pentru a se masura acuratetea modelului. In cazul ın care modelul de clasificare

obtinut este unul satisfacator, atunci se poate trece la aplicarea sa pe bazele de

date de interes. Daca, dimpotriva, acuratetea modelului lasa de dorit, atunci se

ıncearca crearea unui nou set de test, pentru reınvatarea regulilor de clasificare,

eventual prin adaugarea de noi constrangeri.

O alta grupare posibila este legata de specificarea exacta sau nu a claselor rezultat.

Din acest punct de vedere se pot distinge doua clase de algoritmi: algoritmi statici -

clasele si constrangerile pentru fiecare clasa ın parte sunt specificate de la inceput -

si, respectiv, algoritmi dinamici - se ıncearca determinarea automata a claselor si a

numarului acestora.

2.3 Segmentarea datelor

Definitia 2.2 (Clusterizarea datelor). Clusterizarea datelor (sau segmentarea da-

telor) ınseamna, ın sens larg, regasirea unei structuri ıntr-o colectie de date nemarcate/

nestructurate.

Conceptual, procesul de clusterizare/partitionare a datelor poate fi privit ca fiind

organizarea unui set de obiecte (date) ın grupuri ale caror membri sunt similari dupa un

anumit set de restrictii impuse.

In prezent, un numar din ce ın ce mai mare de aplicatii utilizeaza metode de clusteri-

zare pentru a obtine rezultate superioare. Exemplele cele mai uzuale includ clusterizarea

14

documentelor [Li 05] si sistemele de regasire a informatiilor [Grossman 04]. Un studiu

recent a indicat o crestere a acuratetii de clasificare a algoritmului k-nn (k-nearest neigh-

bor) ın cazul ın care setul de antrenament corespunzator a fost generat pe baza unei

clusterizari a documentelor incluse de acest set de antrenament [Astratiei 10]. O prob-

lema comuna care apare ın cazul acestor aplicatii este legata de volumul mare de date

care trebuie procesate. Algoritmii de clusterizare sunt ın general de tipul lazy learner si

trebuie utilizate metode eficiente de paralelizare pentru a obtine timpi de raspuns si o

scalabilitate rezonabile.

2.3.1 Notiuni teoretice fundamentale

Conform definitiei de mai sus (Definitia 2.2, adaptare dupa [Han 06]), clusterizarea

reprezinta o tehnica descriptiva de data mining care urmareste divizarea unui set de

obiecte date ın grupuri distincte. Procesul de ımpartire a setului dat de date este real-

izat pe baza similaritatii intrinseci a itemilor, tinand cont de atributele interesante.

Definitia 2.3 (Similaritate). In mod uzual, similaritatea este definita ca fiind o met-

rica/distanta peste un set de atribute.

Rezultatele clusterizarii ar trebui sa ofere o reprezentare mai buna a setului de date

de intrare, tinand cont de metrica de similaritate (obiectele apartinand aceluiasi grup au

aceleasi caracteristici, ın timp ce doua obiecte apartinand de grupuri diferite ar trebui

sa fie semnificativ diferite). Metodele de clusterizare sunt considerate ın general ca fiind

o forma de ınvatare nesupervizata [Han 06, Berkhin 02]. Din acest punct de vedere,

[Berkhin 02] subliniaza ca rezultatele reprezinta un model ascuns care furnizeaza o noua

reprezentare a datelor existente.

2.3.2 Algoritmi secventiali utilizati ın segmentarea datelor

Unul dintre cei mai des utilizati algoritmi de segmentare, algoritmul K-Means Cluster-

ing (KMC), a fost introdus de catre MacQueen ın anul 1967 [MacQueen 67]. In prezent,

KMC este unul dintre cele mai vechi, si conform [Joshi 03], si unul dintre cei mai populari,

algoritmi de clusterizare. Motivul acestei popularitati este dat de simplitatea ın imple-

mentare, de scalabilitate si de viteza de convergenta. De asemenea, daca se utilizeaza o

metrica adecvata, algoritmul poate fi adaptat pentru o varietate mare de tipuri de date.

Algoritmul KMC reprezinta o metoda de partitionare care are ca scop divizarea setului

de date de intrare de dimunsiune n ın k partitii. Obiectele apartinand unei partitii tre-

buie sa fie asemanatoare ıntre ele, ın timp ce obiectele care apartin unor partitii diferite

trebuie sa difere. M. Joshi ın [Joshi 03], citand [Dhillon 00], prezinta urmatoarele etape

generice pentru algoritmul KMC:

1. initializarea - se selecteaza un set de k itemi din setul de date de intrare pentru a

fi centroizii initiali;

2. calcularea distantelor - pentru fiecare item din setul de date, se calculeaza distanta

pana la centroizii selectati; itemul este distribuit celui mai apropiat centroid;

3. recalcularea centroizilor - pentru fiecare cluster, se recalculeaza centroidul ca fiind

media itemilor atribuiti;

15

4. conditia de convergenta - se repeta etapa 2 si 3 pana la atingerea convergentei.

Din punct de vedere logic, conditia de convergenta pentru etapa 4 poate fi una dintre

urmatoarele variante: atunci cand nu se mai redistribuie nici un item ıntre doua clustere

sau atunci cand coordonatele centroizilor nu s-au modificat ın etapa 3. Din punct de

vedere matematic, convergenta este reprezentata de eroarea patratica calculata conform

relatiei (2.2). In acest caz etapa 4 poate fi definita ca fiind valoarea minima pentru relatia

(2.2) [Han 06] (ın capitolul 8):

E =∑

k

xi∈C(k)

‖xi −mk‖2. (2.2)

Este important de mentionat ca algoritmul KMC este o abordare de tip greedy pentru

metodele de partitionare (datorita modului de alegere a centroizilor ıntre etape). Pentru

diferite variante de alegere a centroizilor initiali, eroarea patratica minima calculata

conform (2.2) poate varia. Daca luam ın considerare k - numarul de clustere, n - numarul

de itemi care trebuie clusterizati si t - numarul de iteratii necesare pentru a atinge

convergenta, algoritmul KMC are o complexitate de timp de ordinul O(nkt) [Han 06]

(capitolul 8). In mod normal, ıntre n, k si t exista urmatoarea relatie (a se vedea

[Han 06] capitolul 8 pentru mai multe detalii):

k ≪ n

t≪ n.(2.3)

Daca luam ın considerare relatia (2.3), se poate observa usor ca numarul total de

itemi n este factorul cu cea mai mare influenta asupra timpului de raspuns pentru orice

implementare KMC.

2.3.3 Metode de paralelizare ale algoritmilor secventiali

Au fost realizate diferite ıncercari de a optimiza paralelizarea algoritmului KMC. Unul

dintre cele mai cunoscute si utilizate modele este Parallel K-Means (prescurtat PKM )

[Dhillon 00, Joshi 03, Stoffle 99]. Cel mai mare consumator de timp este pasul de calcu-

lare a distantelor. Aceasta etapa ın sine presupune O(nk) pasi pentru a calcula distantele

ıntre fiecare item din setul de date (compus din n itemi) si fiecare dintre cei k cen-

trozii. Modelul paralel pentru PKM ımparte ıntregul set de date de intrare ıntre procese

[Dhillon 00, Joshi 03, Stoffle 99]. Considerand p procese, fiecare va primi (n/p) elemente

din setul de intrare. Divizarea itemilor va reduce fazele locale de calculare a distantelor

la complexitatea de timp data de relatia:

O(n· k

p). (2.4)

2.3.4 Discutii asupra tehnicilor existente de segmentare

a datelor

Modelul PKM se bazeaza pe o paradigma de tipul SIMD (Single Instruction Multiple

Data). O prima observatie importanta este faptul ca acest model nu este aplicabil doar

unei metode specifice de implementare. In functie de diferitele cerinte, algoritmul PKM

16

poate fi implementat utilizand fie paralelism la nivel de thread-uri/memorie partajata

sau paralelism la nivel de proces/ memorie distribuita. Totusi, diversi autori sustin faptul

ca ultima metoda ar trebui aleasa, ın special atunci cand avem de-a face cu volume mari

de date [Dhillon 00, Joshi 03, Stoffle 99] (acesta ar fi si cazul aplicarii metodelor bazate

pe KMC ın domeniul clusterizarii documentelor text [Han 06]).

Daca avem ın vedere implementarea efectiva a PKM utilizand o schema de distributie

a memoriei, standardul Message Passing Interface (MPI pe scurt) este considerat cea mai

buna abordare [Joshi 03]. Aceasta alegere este bazata pe o serie de argumente, cum ar

fi [Joshi 03]:

• MPI este un standard pentru calculul paralel bazat pe momorie distribuia si trans-

mitere de mesaje (ın prezent, urmeaza sa fie lansata versiunea 3 a specificatiilor);

• este portabil (cu conditia ca aplicatiile sa fie recompilate ıntre diferitele platforme

de operare), este heterogen si ofera un suport adecvat pentru diferite topologii de

comunicare;

• paralelismul este explicit, programatorului fiindu-i oferita libertate ın implementare;

• o mare varietate de implementari sunt disponibile (exemplele cele mai rapide sunt

MPICH-G2, IntelMPI, LAM/MPI, OpenMPI) pentru toate limbajele de progra-

mare (cum ar fi C/C++ sau FORTRAN).

O deficienta importanta legata de acesata abordare este reprezentata de faptul ca nu

se pune accent pe topologiile de comunicatie ce pot fi manipulate prin intermediul MPI.

Capitolul 4 reia ın detaliu aceasta problema.

2.4 Concluzii

In cadrul acestui capitol au fost evidentiati algoritmii clasici destinati problemei des-

coperirii reguilor de asociere, a regulilor de clasificare, precum si cei destinati seg-

mentarii/clusterizarii datelor. Se observa ın acest fel faptul ca, desi ultimii algoritmi

clasici pentru extragerea de cunostinte din baze de date sunt de data relativ recenta

- 2001 sau 2003, exista putine cercetari legate de ımbunatatirea timpului de raspuns.

Se mai poate observa totodata si faptul ca pentru algoritmii adusi ın discutie nu sunt

epuizate toate posibilitatile de ımbunatatire a performantelor. Parte dintre aceste posi-

bilitati vor fi investigate ın continuare.

17

Capitolul 3

Noi algoritmi si modele de paralelizare

pentru determinarea tiparelor frecvente

3.1 Algoritmul Apriori

In cadrul subcapitolului 2.1 au fost evidentiate un set de dezavantaje ale algoritmu-

lui Apriori. Astfel, algoritmul propus de Agrawal este puternic dependent de metoda

de generare a candidatilor [Agrawal 94]. Aceasta metoda implica un consum de timp

substantial pentru o generare eficienta de candidati. Mai mult, generarea candidatilor

implica un consum suplimentar substantial de memorie.

Cu toate ca HPA reprezinta un model de paralelizare eficient pentru algoritmul

Apriori (implementarile eficiente partitioneaza atat determinarea candidatilor, cat si

tranzactiile bazei de date tinta), exista un set de dezavantaje ale modelului:

• partitionarea candidatilor este realizata ın baza unei chei de dispersie caracteristica

algoritmului secvential de baza. Aceasta cheie nu este, de cele mai multe ori,

determinata astfel ıncat sa realizeze o buna echilibrare a ıncarcarii nodurilor de

lucru.

• considerand ca functia de calcul a cheii de dispersie se aplica la nivel de set de

itemi, acest lucru poate conduce la o crestere substantiala a comunicatiilor pentru

determinarea completa a tuturor seturilor candidate.

• pentru a rezolva orice dezechilibru ce poate aparea ın timpul rularii sau pentru a

determina conditia de oprire, modelul implica existenta unui nod coordonator.

3.1.1 Algoritmul secvential de baza

Considerand observatiile anterioare, o prima modificare propusa pentru algoritmul Apri-

ori vizeaza modul de reprezentare al itemilor/itemseturilor de lucru.

Reprezentarea itemilor

O prima modificare efectuata vizeaza modul de reprezentare al itemilor. Un prim aspect

important este legat de consumul de memorie. Implementarile uzuale ale algoritmului

18

Apriori codeaza itemii fie printr-un caracter alfa-numeric (se poate face, ın acest caz,

distinctie ıntre litere mari si litere mici pentru a mari capacitatea de reprezentare a

metodei), fie printr-un index numeric atribuit itemului (ın general, o valoare ıntreaga

cuprinsa ıntre 0 si nr max− 1, unde nr max reprezinta numarul total de itemi).

Autorul a introdus ın [Archip 07] o metoda de codare binara a itemilor si, respectiv, a

itemset-urilor, similara cu [Tan 05]. Itemii sunt codificti prin intermediul valorilor binare

de 0/1. Considerand o numerotare a itemilor ın intervalul [0, n− 1], un item de index x

este reprezentat de bitul de pe pozitia 2x ıntr-un sir de n biti. Reprezentarea tranzactiilor

si, respectiv, a itemset-urilor este redata ın Tabelul 3.1. Au fost considerati un set de 5

itemi (A, B, C, D, E - itemul A este reprezentat binar prin bitul de pozitie 0, itemul E

prin bitul corespunzator pozitiei 4).

Tabelul 3.1: Reprezentarea binara a tranzactiilor/itemseturilor

Itemset/Tranzactie Reprezentare binara{A, B, C} 00111{A, C, E} 10101{B, D} 01010{C, D, E} 11100{A, B, C, D, E} 11111

In Tabelul 3.1 se poate observa si un aparent dezavantaj al acestei reprezentari:

seturile de itemi/tranzactii au dimensiune fixa, indiferent de numarul de itemi inclusi.

Se poate usor observa ca, ın cazul reprezentarii itemilor prin index numeric (din

punctul de vedere al tipului de data utilizat, ar fi necesari cel putin 2 octeti pentru

reprezentarea unui singur item) consumul de memorie ar fi mult mai mare. Din acest

motiv nu se mai fac comparatii ıntre reprezentarea prin index numeric si reprezentarea

binara propusa ın [Archip 07].

O observatie importanta asupra algoritmului Apriori - observatie care ısi mentine

valabilitatea si pentru algoritmii derivati din Apriori - este aceea ca trateaza tranzactiile

la nivel de multime de itemi. Practic, pentru acesti algoritmi, determinarea suportului

se reduce la problema incluziunii unei submultimi ıntr-o multime data. Din acest punct

de vedere reprezentarea binara ofera din nou un avantaj foarte important: se poate

determina, ın timp constant daca setul curent de itemi este sau nu inclus ın tranzactia

curenta.

Generarea candidatilor

Modelul clasic pentru generarea candidatilor a fost propus ın [Agrawal 94] si are la baza

urmatorul principiu: seturile candidate de itemi de dimensiune k se pot obtine numai

prin combinarea seturilor frecvente de itemi de dimensiune k− 1 ce au primii k− 2 itemi

comuni [Adamo 00].

Dupa cum a fost amintit si ın partea introductiva, functia are la baza principiul

Apriori, conform caruia daca un set de itemi este frecvent, atunci toate subseturile de

itemi ce apartin de acest set sunt seturi frecvente [Tan 05]. Literatura de specialitate

considera aceasta functie ca realizand o eliminare optima a seturilor ce nu pot fi frecvente,

seturi pentru care nu se va mai determina suportul ın cadrul tranzactiilor, ıntrucat aceste

19

seturi contin cel putin un subset nefrecvent [Zaki 99, Adamo 00, Tan 05]. Functia este

totusi una consumatoare de timp si este considerata un dezavantaj major al algoritmului

Apriori.

Unul dintre avantajele utilizarii reprezentarii binare a seturilor de itemi si, respectiv,

a tranzactiilor este cel al vitezei cu care sunt realizate operatiile logice peste multimi de

biti. Aceste operatii binare elementare pot fi mapa rapid orice operatie ar fi necesara ın

lucrul cu multimi de itemi.

Remarcabil ın acest sens este si faptul ca aceste operatii binare elementare nu depind

direct, din punctul de vedere al vitezei de executie, de dimensiunea d a multimilor asupra

carora sunt aplicate, daca d este mai mica decat o anumita valoare maxima specifica

fiecarui procesor ın parte.

Pornind de la aceste considerente, se poate demonstra usor ca determinarea oricaror

itemi necomuni ıntre oricare 2 seturi de itemi se realizeaza ın timp constant. Particu-

larizand, se poate arata ca utilizand o reprezentare binara a seturilor de itemi se poate

identifica setul de dimensiune 2 format din itemii necomuni printr-o singura operatie.

Metoda particulara de generare a candidatilor implementata este bazata pe obser-

vatiile anterioare. Nu se ıncearca, precum ın cazul clasic [Tan 05], generarea tuturor

subseturilor de dimensiune k − 1 ale candidatului curent (de dimensiune k), ci se deter-

mina direct setul format din cei 2 itemi necomuni pentru perechea curenta. Daca acest

set este frecvent, atunci candidatul obtinut va fi adaugat la lista de candidati valizi, iar

daca acest set este nefrecvent, atunci candidatul va fi ignorat. Algoritmul 3.1 prezinta

pseudocodul dezvoltat pentru a implementa aceasta metoda de generare a candidatilor.

Algoritmul 3.1 Generarea candidatilor pentru codificarea binara a itemseturilor

Require: Lk−1

1: for all (set1, set2) in Lk−1 × Lk−1 such that set1.parent == set2.parent do2: test set.code = set1.code ∧ set2.code;3: if isFrequent(test set) then4: candidate.code = set1.code | set2.code5: candidate.parent = min(set1, set2)6: add candidate to candidateList7: end if8: end for

In Algoritmul 3.1 au fost utilizate urmatoarele notatii:

• set1, set2 - variabile generice pentru reprezentarea binara a unui set de itemi;

• set1.parent, set2.parent - notatii folosite pentru a desemna primii k−2 biti comuni

pentru cele 2 seturi frecvente ce pot genera un candidat;

• set1.code, set2.code - codul binar al celor 2 seturi.

Dupa cum se poate usor observa din pseudocodul anterior, singurul test facut asupra

unui candidat este legat de itemii necomuni si anume setul de dimensiune 2 format de

acestia. Desi acest lucru nu conduce la o eliminare optima a candidatilor ce contin

subseturi nefrecvente, functia compenseaza prin scaderea timpilor de raspuns.

20

3.1.2 Modificari aduse algoritmului HPA

Modificarile aduse algoritmului secvential Apriori pot fi utilizate si pentru a solutiona

parte dintre dezavantajele modelului de paralelizare HPA. O prima observatie impor-

tanta este aceea ca modalitatea de reprezentare a itemseturilor si a tranzactiilor prin

intermediul unei codificari binare elimina dependeta algoritmului de un eventual arbore

de dispersie. Acest fapt reprezinta o slabire importanta a conditiilor de generare a cheilor

de dispersie pentru ca aceste chei nu vor mai avea rol de identificator unic al unei anumite

combinatii de itemi.

Un alt punct nevralgic pentru HPA este reprezentat de partitionarea candidatilor

determinati pentru determinarea suportului. In mod uzual, aceasta etapa este una in-

tensiv comunicationala. Mai mult, este posibil ca un set generator sa fie repartizat unui

nod de procesare, ın timp ce perechea sa este repartizata altui nod de calcul. Aceasta

situatie implica din nou comunicatii.

Particularitati ale functiei de dispersie

Considerand observatiile anterioare, functia de dispersie utilizata a fost una de tipmodulo-

bitonic. Cheile hash sunt ın acest caz valori ın clasa de resturimodulo n, unde n reprezinta

numarul total de procesoare implicate ın analiza. Seturile de itemi sunt ımpartite ın or-

dine ıntre procesoare astfel ıncat pentru fiecare item/set de itemi ın parte cheia hash

variaza dupa o alternanta bitona [Archip 07]. In Tabelul 3.2 este prezentat un exemplu

pentru un numar de 10 itemi cu etichete de la 0 la 9 si un total de 3 noduri de procesoare.

Tabelul 3.2: Distribuirea itemilor intiali ıntre procesoare

Eticheta item 0 1 2 3 4 5 6 7 8 9Cheie Hash 0 1 2 2 1 0 0 1 2 2

Un aspect important al acestei functii hash, legat de implementarea practica ın mod

special, este acela ca timpul necesar calculului cheii hash curente trebuie sa fie ın clasa

de complexitate O(1). Algoritmul 3.2 reprezinta pseudocodul utilizat ın implementarile

de test [Archip 07].

Dupa cum se poate usor observa, indiferent ce valoare trebuie generata pentru cheia

curenta, functia propusa realizeaza cel mult 4 pasi: 2 teste si, respectiv, fie o operatie de

atribuire urmata de o operatie de incrementare/decrementare, fie 2 operatii de atribuire.

Mai mult, functia nu este conditionata sub nici o forma de numarul total de itemi, iar

viteza de generare a valorilor rezultat nu este influentata de numarul total de procesoare.

In plus, se poate demonstra usor, prin reducere la absurd, faptul ca indiferent de numarul

de procesoare si de numarul de itemi sau de seturi de itemi ale pasului curent se reali-

zeaza o foarte buna echilibrare a distributiei itemilor/seturilor de itemi ıntre nodurile de

procesare.

Fie k numarul total de itemi/seturi de itemi ai pasului curent si n numarul total de

procesoare (se considera k > n). Din Tabelul 3.2 si Algoritmul 3.2 se observa foarte

rapid ca toate cele n procesoare ar primi un numar de [k/n] itemi/seturi de itemi si doar

[k%n] procesoare ar primi un singur item/set de itemi ın plus fata de restul nodurilor.

21

Algoritmul 3.2 Functia Hash utilizata ın cadrul algoritmului HPA

1: static d = 02: if d = 0 then3: if last key < size− 1 then4: new key = last key ++5: else6: new key = last key7: d = 18: end if9: else

10: if 0 < last key then11: new key = last key −−12: else13: new key = last key14: d = 015: end if16: end if

Partitionarea itemset-urilor

Un alt punct slab al HPA este reprezentat de determinarea si de distribuirea candidatilor

ıntre procese ın vederea calcularii suportului pentru fiecare candidat ın parte. Aceste

doua etape sunt intensiv comunicationale si pot introduce timpi suplimentari considera-

bili.

O prima modificare adusa algoritmului HPA este de a aplica functia de calcul a cheii

de dispersie la nivelul setului parinte al candidatului curent.

Definitia 3.1 (Itemset parinte). Prin conventie, se numeste itemset parinte al unui

candidat de dimensiune k acel itemset care contine primii k-1 itemi din candidatul curent.

Algoritmul 3.3 prezinta modalitatea de generare a candidatilor conform cu modificarile

propuse.

Algoritmul 3.3 Generarea candidatilor - adaptare HPA

Require: Lidk−1 - multimea seturilor frecvente repartizate nodului id

1: for iter = 0 to iter < length(Lidk−1)− 1 do

2: hashKey := nextKey(set[iter])3: for all pairSet in Lid

k−1 such that set[iter].parent == pairSet.parent do4: candidate.code := set[iter].code ∧ pairSet.code5: if true == isFrequent(candidate) then6: candidate.code := set[iter].code | pairSet.code7: candidate.parent := set[iter]8: candidate.hashKey := hashKey9: end if

10: end for11: end for

In Algoritmul 3.3, functia nextKey noteaza o implementare a Algoritmului 3.2.

22

3.1.3 Rezultate si discutii

Testarea algoritmului secvential modificat

Pentru evaluarea modificarilor aduse din punctul de vedere al timpului de raspuns, au

fost realizate un set de 15 teste. Pentru toate cele 15 teste a fost considerata o baza

de date formata din tranzactii generate aleator, cu suport pentru maxim 32 de itemi.

Pentru evaluarea performantelor, au fost considerate seturi de 10, 15 si, respectiv 20 de

itemi, iar limita suportului minim a fost variata ıntre 1%, 5%, 10%, 20% si, respectiv,

35%. In toate cazurile, baza de date contine un numar de 1.000.000 tranzactii. Evaluarile

au urmarit ın principal comportamentul functiei de generare a candidatilor, dar si timpii

totali consumati de analiza.

Rezultatele timp obtinute pentru cazul ın care au fost considerati 10 itemi, iar limita

suportului a fost variata ıntre 1 si, respectiv, 35% evdentiaza obtinuta o scadere pentru

functia de generare a candidatilor. Daca ıntr-un un caz clasic, literatura de specialitate

[Adamo 00, Tan 05] considera metodele de generare a candidatilor ca fiind comparabile

ca rapuns timp cu metodele de selectie ale seturilor frecvente, pentru abordarea pro-

pusa timpii consumati de generarea candidatilor sunt mult inferiori timpilor implicati ın

determinarea seturilor frecvente.

Totusi, acest castig este unul minor pentru cazul secvential. Abordarea propusa

nu se preteaza cazului secvential deoarece renuntarea la structurile de tip ,,hash-tree”

caracteristice abordarilor bazate pe Apriori [Agrawal 94, Adamo 00, Tan 05] conduce

catre timpi de raspuns globali din ce ın ce mai mari. Rezultatele timp pentru aceeasi

baza de date (de 1.000.000 de tranzactii) pentru cazul ın care au fost considerati 15 itemi

de start. Suportul a fost variat si ın acest caz ıntr-o maniera identica testului anterior.

Se observa, ca si ın cazul anterior, un timp foarte mic pentru generarea candidatilor.

Comparand totusi timpii totali implicati se observa ca pentru o cresterea cu doar 5 itemi

a bazei de analizat, timpi cresc cu pana la un ordin de marime. Acest comportament

se datoreaza faptului ca o codificare binara a itemilor/seturilor de itemi atrage dupa

sine o complexitate de O(n· ck) pentru determinarea suportului seturilor candidate (n

reprezinta numarul total de tranzactii, ck reprezinta numarul total de candidati de di-

mensiune k). In foarte multe cazuri, factorul ck este comparabil din punct de vedere al

valorii cu factorul n. Literatura de specialitate sustine pentru aceasta etapa a algorit-

mului o complexitate timp pseudo-liniara ın raport cu dimensiunea bazei de date tinta

[Agrawal 94, Adamo 00, Tan 05].

Rezultatele prezentate nu recomanda, ın mod clar, aceasta abordare pentru modelul

secvential al algoritmului Apriori.

Testarea algoritmului HPA modificat

In vederea testarii modificarilor aduse algoritmului HPA, experimentele au fost conduse

ın aceeasi maniera ca si ın cazul clasic. Astfel a fost utilizata aceeasi baza de date de

1.000.000 de tranzactii, oferind suport pentru 10, 15 sau 20 itemi. Limita de suport

minim a fost variata ıntre 1%, 5%, 10%, 20% si, respectiv, 35%.

Implementarea de test include un set de particularitati importante. Codul algorit-

mului HPA a fost dezvoltat utilizand limbajul C++, suportul pentru paralelizare fiind

oferit de bibliotecile LAM/MPI. Pentru a elimina complet comunicatiile, baza de date

tinta a fost utlizata pentru a stoca si seturile frecvente determinate ın cadrul unei etape

23

k. Astfel, pentru etapa urmatoare, fiecare procesor de rang id selecteaza din baza de

itemseturi frecvente doa acele itemseturi a caror cheie de dispersie este egala cu valoarea

id. Acest lucru este posibil datorita faptului ca, ın urma modificarilor aduse, cheia de

dispersie identifica strict perechile ce pot forma candidati. Serverul suport pentru bazele

de date a fost MySQL, versiunea 4. Atat tabelele de tranzactii cat si tabele rezultat au

folosit suport InnoDB [Amarandei 06]. Este important de retinut ca un astfel de scenariu

poate fi aplicat ın cadrul sistemelor Grid, ın cazul ın care restrictiile impuse ın cadrul

unei organizatii virtuale nu permit migrarea datelor de analizat.

Din analiza rezultatelor obtinute se poate observa ca timpii de lucru pentru fiecare

procesor ın parte sunt timpi foarte apropiati ca valori. Aceste rezultate sustin conside-

ratiile teoretice asupra functiei hash proiectate si implementate si, ın plus, sustin modul

de aplicare al acesteia.

Se poate observa ca, spre deosebire de cazul secvential, unde renuntarea la arborele

hash atragea dupa sine pierderi semnificative ın ceea ce consta performanta timp, versi-

unea paralela a algoritmului mentine stabilitatea timpilor de raspuns. Mai mult, pentru

fiecare procesor ın parte, faptul ca timpul de raspuns este foarte apropiat de timpul

mediu de executie. Acest lucru subliniaza o foarte buna echilibrare a sarcinilor de lucru.

Aceasta echilibrare a fost obtinuta prin utilizarea functiei de dispersie prezentata ın Al-

goritmul 3.2 si prin aplicarea acestei chei la nivel de itemset parinte (conform Definitiei

3.1).

3.2 Algoritmul Fast Itemset Miner

In cadrul subcapitolului 3.1 a fost analizata o abordare noua pentru codarea itemilor

si, respectiv, a itemseturilor pentru algoritmul Apriori. Cu toate ca abordarile re-

cente ın domeniul identificarii tiparelor frecvente evita generarea seturilor candidate

[Tan 05, Han 00], este interesant de observat faptul ca ın literatura de specialitate nu

sunt prezentate alte propuneri pentru aceste abordari. In continuare, este descris un

model algoritmic nou destinat problemei ın discutie. Acest model algoritmic este bazat

tot pe generarea seturilor candidate, dar utilizeaza o euristica noua de generarea acestor

candidati.

Dupa cum este mentionat si ın capitolele anterioare, principiul de baza al algoritmului

Apriori este de a genera seturi candidate de dimensiune k pe baza seturilor frecvente de

dimensiune k−1 [Adamo 00, Zaki 99, Agrawal 94]. Practic, acest lucru implica, la fiecare

etapa, cresterea cu o unitate a dimensiunii seturilor supuse analizei. In cazul algoritmului

Apriori o unitate este echivalenta cu un item. Algoritmul nou, denumit Fast Itemset

Miner (prescurtat FIM ), are la baza cresterea cu o unitate a dimensiunii intervalului

de care apartin seturile candidate aferente unei etape [Craus 07c]. Spre deosebire de

algoritmul Apriori, ın cazul FIM o unitate este echivalenta fie cu un item, fie cu un

index de interval (multime de itemi/itemseturi frecvente) [Craus 08a].

3.2.1 Algoritmul secvential de baza

Ideea fundamentala a algoritmului FIM este de a determina, pas cu pas, itemseturile

frecvente prin a creste treptat intervalul de care apartin itemii individuali ce compun un

itemset candidat [Craus 07c]. Astfel, daca ın pasul k al agoritmului candidatii noi sunt

generati din itemi ce apartin intervalelor [i, i+k] (unde i ∈ {1, 2, ..., n−k}, n reprezentand

24

numarul total de itemi frecventi), ın pasul k+1 candidatii noi vor fi generati din generati

din itemi ce apartin intervalelor [i, i+ k + 1] (unde i ∈ {1, 2, ..., n− k − 1}).

In continuare vor fi utilizate notatiile date de setul de relatii (3.1).

Fi,j −multimea tuturor itemseturilor frecvente ce apartin de intervalul [i, j]

Ci,j −multimea tuturor itemseturilor candidate ce apartin de intervalul[i, j](3.1)

Sunt enuntate urmatoarele doua leme [Craus 07c].

Lema 3.1. Un itemset frecvent inclus ın multimea Fi,j care nu contine simultan itemii

i si j va apartine fie de multimea Fi,j−1, fie de multimea Fi+1,j.

Lema 3.2. Itemseturile frecvente noi ce apartin de multimea Fi,j contin simultan itemii

i si j.

Din Lema 3.2 rezulta ca itemseturile candidate ce apartin de multimea Ci,j vor fi

generate dupa relatia [Craus 07c]:

Ci,j = {X ∪ Y |(X ∈ Fi,j−1 ∧ i ∈ X) ∧ (Y ∈ Fi+1,j ∧ j ∈ X)}. (3.2)

Pseudocodul algoritmului FIM este prezentat ın Algoritmul 3.4 [Craus 07c].

Algoritmul 3.4 Algoritmul Fast Itemset Miner

Require: Fi,j = multimea itemseturilor frecvente din intervalul [i, j]Require: D = multimea de tranzactii, t ⊂ D1: for k = 1 to n− 1 do2: for all i, j : i ∈ 1, ..., n− k; j = i+ k do3: Fi,j ← Fi,j−1 ∪ Fi+1,j

4: Ci,j = {X ∪ Y |(X ∈ Fi,j−1 ∧ i ∈ X) ∧ (Y ∈ Fi+1,j ∧ j ∈ X)}5: for all tranzactiile t ⊂ D do6: Ct ← subset(Ci,j , t) {determinarea candidatilor din intervalul Ci,j inclusi ın

tranzactia t}7: for all candidatii c ∈ Ct do8: c.support++9: end for

10: end for11: Fi,j = Fi,j ∪ {c ∈ Ci,j |c.support ≥ minsupp}12: Fk ← Fk ∪ Fi,j

13: end for14: end for

Definitia 3.2 (Itemset nucleu). In contextul notatiilor (3.1) se numeste itemset nucleu

al unui itemset X ∈ Fi,j acel subset N ⊂ X, N 6= X de dimensiune maxima pentru care

este valabila relatia:

N ∩ {i} = N ∩ {j} = Φ. (3.3)

Lema 3.3. Un itemset nu poate fi frecvent daca itemsetul sau nucleu nu este la randul

lui frecvent.

25

Un rezultat direct al Lemei 3.3 este reprezentat de faptul ca un candidat valid (itemset

candidat ce ar putea satisface conditia de suport minim) trebuie sa fie generat pentru

analiza numai daca nucleul sau este frecvent. Mai mult, un itemset candidat este valid

daca toate subseturile sale, exceptand itemseturile care contin simultan itemii i si j, sunt

itemseturi frecvente.

Pentru simplificare, ın continuare vor fi utilizate urmatoarele notatii:

sufix(X) = X \ {i}

prefix(X) = X \ {j}.(3.4)

In relatia (3.4) i, j reprezinta primul si, respectiv, ultimul item al itemsetuluiX ∈ Fi,j .

Lema 3.4. Un itemset candidat T ∈ Ci,j este valid daca si numai daca se poate obtine

din reuniunea a doua itemseturi X ∈ Fi,j−1 si Y ∈ Fi+1,j care respecta simultan pro-

prietatile:

i ∈ X si j ∈ Y (3.5)

sufix(X) = prefix(Y ). (3.6)

Algoritmul 3.5 prezinta pseudocodul necesar generarii candidatilor ce apartin multimii

Ci,j .

Algoritmul 3.5 Algoritmul de generare a candidatilor specific FIM

Require: Fi,j−1, Fi+1,j

1: for all itemset X ∈ Fi,j−1 do2: for all itemset Y ∈ Fi+1,j do3: if sufix(X) = prefix(Y ) then4: candidat ← X ∪ Y5: adauga candidat ın Ci,j

6: end if7: end for8: end for

Un exemplu detaliat al principiului de functionare al algoritmului FIM este prezentat

ın [Craus 07c].

Considerand aceste observatii, Algoritmul 3.4 este modificat conform Algoritmului

3.6. Aceasta restrangere a multimii de tranzactii de scanat reprezinta un avantaj semni-

ficativ fata de algoritmul Apriori. Spre deosebire de algoritmul Apriori, algoritmul FIM

nu va scana complet multimea de tranzactii de analizat pentru nici o etapa de deter-

minare a tiparelor frecvente. In cadrul Algoritmului 3.6, Di reprezinta acel subset de

tranzactii t ∈ D ce contin itemul i.

3.2.2 Algoritmul paralel - modelul simplu

Avantajul major al acestei metode de paralelizare este ca tiparul comunicational este

cunoscut ınainte de rularea algoritmului [Craus 07c, Craus 08a, Craus 08b]. Un alt avan-

taj important consta ın faptul ca seturile de tranzactii pot fi distribuite procesoarelor

26

Algoritmul 3.6 Algoritmul Fast Itemset Miner - restrangerea setului de tranzactiiscanateRequire: Fi,j = multimea itemseturilor frecvente din intervalul [i, j]Require: D = multimea de tranzactii sortata descrescator relativ la suportul itemilor

frecventi, t ⊂ D1: for k = 1 to n− 1 do2: for all i, j : i ∈ 1, ..., n− k; j = i+ k do3: Fi,j ← Fi,j−1 ∪ Fi+1,j

4: Ci,j = {X ∪ Y |(X ∈ Fi,j−1 ∧ i ∈ X) ∧ (Y ∈ Fi+1,j ∧ j ∈ X)}5: for all tranzactiile t ⊂ Di do6: Ct ← subset(Ci,j , t) {determinarea candidatilor din intervalul Ci,j inclusi ın

tranzactia t}7: for all candidatii c ∈ Ct do8: c.support++9: end for

10: end for11: Fi,j = Fi,j ∪ {c ∈ Ci,j |c.support ≥ minsupp}12: Fk ← Fk ∪ Fi,j

13: end for14: end for

ınainte de ınceputul algoritmului. Acest lucru este posibil deoarece un procesor Pi tre-

buie sa calculeze Fi,j , j ∈ {i, ..., n} si prin urmare sunt necesare doar tranzactiile care

contin itemul frecvent i [Craus 08a, Craus 08b].

Algoritmul 3.7 prezinta pseudocodul aferent modelului de paralelizare descris anterior

[Craus 08a].

Algoritmul 3.7 Algoritmul FIM Paralel - modelul simplu

Require: Fi,i = {itemul frecvent i}Require: Di = multimea de tranzactii repartizata procesorului Pi (multimea de

tranzactii ce contine itemul i)1: for k = 1 to n− 1 do2: for all i : i ∈ 1, ..., n− k parallel do3: j = i+ k4: Fi,j ← Fi,j−1 ∪ Fi+1,j

5: Ci,j = {X ∪ Y |(X ∈ Fi,j−1 ∧ i ∈ X) ∧ (Y ∈ Fi+1,j ∧ j ∈ X)}6: for all tranzactiile t ⊂ Di do7: Ct ← subset(Ci,j , t) {determinarea candidatilor din intervalul Ci,j inclusi ın

tranzactia t}8: for all candidatii c ∈ Ct do9: c.support++

10: end for11: end for12: Fi,j = Fi,j ∪ {c ∈ Ci,j |c.support ≥ minsupp}13: end for14: end for

Se poate observa usor faptul ca si ın cazul Algoritmului 3.7 poate fi utilizat Algoritmul

3.5 pentru a genera candidatii corespunzatori fiecarei etape de calcul.

27

3.2.3 Algoritmul paralel - modelul generalizat

In cazul ın care numarul de procesoare (m) este mai mic decat numarul de itemi frecventi

(n), algoritmul paralel poate fi modificat si generalizat dupa cum urmeaza:

In prima etapa, fiecare procesor Pi, i ∈ {1, ...,m−1} calculeaza secvential itemseturile

frecvente din intervalul Ii = [(i− 1)· p+ 1, i· p], unde p = [ nm]. Procesorul Pm calculeaza

itemseturile frecvente din intervalul Im = [(m− 1)· p+1, n]. Pentru aceasta etapa poate

fi utilizat Algoritmul 3.6.

Pentru cea de-a doua faza, se aplica algoritmul paralel generalizat.

In continuare este utilizat urmatorul set de notatii:

FIi,Ij −multimea tuturor itemseturilor frecvente ce apartin de intervalul

Ii,j = Ii ∪ Ii+1 ∪ ... ∪ Ij

CIi,Ij −multimea tuturor itemseturilor candidate ce apartin de intervalul Ii,j .

(3.7)

In [Craus 08a] sunt enuntate si demonstrate urmatoarele 2 leme:

Lema 3.5. Un itemset frecvent apartinand de FIi,Ij , care nu contine simultan subseturi

de itemi din Ii si Ij, apartine fie de FIi,Ij−1, fie de FIi+1,Ij .

Lema 3.6. Noile itemseturi frecvente FIi,Ij contin simultan subseturi de itemi din Ii si

Ij.

Un rezultat important al Lemei 3.6 este faptul ca noii candidati apartinand interva-

lului Ii,j sunt obtinuti conform relatiei:

CIi,Ij = {X ∪ Y |(X ∈ FIi,Ij−1∧ Ii ∩X 6= Φ) ∧ (Y ∈ FIi+1,Ij ∧ Ij ∩ Y 6= Φ)}. (3.8)

Algoritmul 3.8 prezinta pseudocodul modelului generalizat prezentat anterior.

Algoritmul 3.8 Algoritmul FIM Paralel - modelul generalizat

Require: FIi,Ii = {multimea de itemseturi frecvente ce apartin intervalului Ii}Require: Di = multimea de tranzactii repartizata procesorului Pi (multimea de

tranzactii ce contine itemul i)1: for k = 1 to m− 1 do2: for all Ii : i ∈ 1, ..., n− k parallel do3: Ij = Ii+k

4: FIi,Ij ← FIi,Ij−1∪ FIi+1,Ij

5: CIi,Ij = {X ∪ Y |(X ∈ FIi,Ij−1∧ Ii ∩X 6= Φ) ∧ (Y ∈ FIi+1,Ij ∧ Ij ∩ Y 6= Φ)}

6: for all tranzactiile t ⊂ Di do7: Ct ← subset(CIi,Ij , t) {determinarea candidatilor din intervalul CIi,Ij inclusi

ın tranzactia t}8: for all candidatii c ∈ Ct do9: c.support++

10: end for11: end for12: FIi,Ij = FIi,Ij ∪ {c ∈ CIi,Ij |c.support ≥ minsupp}13: end for14: end for

28

Similar algoritmului paralel simplu, si ın cazul algoritmului generalizat tiparul comu-

nicational este cunoscut ınainte de ınceperea algoritmului. Presupunand m = 5 proce-

soare/nuclee de procesare, Figura 3.1 exemplifica un astfel de tipar de comunicatie.

Figura 3.1: Tiparul de comunicatie pentru algoritmul FIM paralel - modelul generalizat[Craus 08a]

Similar cazului anterior, baza de date poate fi ımpartita ıntre procesoare ınainte de

ınceperea algoritmului. In cazul generalizat, unui procesor Pi ıi vor fi repartizate acele

tranzactii ce cuprind itemseturile incluse ın intervalul Ii (ın Algoritmul 3.8 Di noteaza

submultimea de tranzactii t care include itemseturile ce apartin intervalului Ii).

Pentru generarea candidatilor (linia 5 din Algoritmul 3.8), este necesara adaptarea

Algoritmului 3.5. In acest sens, dat fiind setul X ∈ FIi,Ij , notatiile (3.4) devin:

sufixG(X) = X \ {k|k ∈ Ii}

prefixG(X) = X \ {k′|k′ ∈ Ij}.(3.9)

Utilizand notatiile (3.9), Algoritmul 3.5 este modificat conform Algoritmului 3.9.

Algoritmul 3.9 Algoritmul de generare a candidatilor specific FIM - modelul generalizat

Require: FIi,Ij−1, FIi+1,Ij

1: for all itemset X ∈ FIi,Ij−1do

2: for all itemset Y ∈ FIi+1,Ij do3: if sufixG(X) = prefixG(Y ) then4: candidat ← X ∪ Y5: adauga candidat ın CIi,Ij

6: end if7: end for8: end for

29

Corectitudinea Algoritmului 3.9 este demonstrata de Lema 3.7.

Lema 3.7. Un itemset candidat T ∈ CIi,Ij este valid daca si numai daca se poate obtine

din reuniunea a doua itemseturi X ∈ FIi,Ij−1si Y ∈ FIi+1,Ij care respecta simultan

proprietatile:

X \ sufixG(X) ⊂ Ii (3.10)

Y \ prefixG(Y ) ⊂ Ij (3.11)

sufixG(X) = prefixG(Y ). (3.12)

3.2.4 Rezultate si discutii

Teste comparative: algoritmul FIM secvential vs. algoritmul Apriori secvential

Un prim set de teste au vizat compararea performantelor algoritmilor secventiali FIM si

Apriori. Pentru ambii algoritmi a fost utilizata codificarea binara a itemseturilor/tran-

zactiilor prezentata ın cadrul subcapitolului 3.1.1. Ambii algoritmi au fost rulati pentru

un set de date sintetic (T10I4D100K ) cu 100000 de tranzactii/1000 de itemi, variind

limita de suport minim. Tabelul 3.3 prezinta rezultatele obtinute pentru o limita de

suport minim de 500 de tranzactii. Pentru acest caz de test, ın urma preprocesarii au

rezultat un numar de 569 de itemi frecventi. Pentru algoritmul FIM a fost variat numarul

de intervale astfel ıncat sa poata fi testata atat versiunea simplificata a algoritmului, cat

si cea generalizata (pentru algoritmul FIM coloanele ,,numar intervale” si ,,numar itemi

frecventi pe interval” indica numarul de intervale ın care au fost ımpartiti itemii frecventi

si, respectiv, numarul maxim de itemi pe interval). Pentru fiecare interval ın parte,

pentru determinarea tuturor itemseturilor frecvente cuprinse ın intervalul respectiv a

fost utilizata versiunea simplificata a FIM (Algoritmul 3.4)

O prima observatie importanta este ca algoritmul FIM a obtinut timp mai mic decat

algoritmul Apriori, indiferent de numarul initial de intervale. Se poate observa, de aseme-

nea, faptul timpul de raspuns al algoritmului FIM este dependent de dimensiunea in-

tervalelor initiale. In Tabelul 3.3 se poate observa aceasta variatie ıntre un maxim de

2029.24 secunde (caz pentru care intervalele initiale erau formate dintr-un singur item)

si un minim de 517.19 secunde (caz pentru care itemii frecventi au fost ımpartiti ın 60

de intervale, cu un numar de maxim 10 itemi pe interval). Pentru acest ultim caz se

poate remarca faptul ca algoritmul FIM este de 5.501 ori mai rapid decat algoritmul

Apriori. Acest plus de performanta se datoreaza atat simplificarii metodei de generare a

candidatilor (specifica algoritmului FIM ), cat si reducerii semnificative a submultimilor

de tranzactii ce sunt scanate pentru determinarea suportului itemseturilor candidate.

30

Tabelul 3.3: FIM vs. Apriori - set de tranzactii T10I4D100K, limita de suport minim:500 tranzactii

Algoritmul Apriorinumar itemi frecventi Timp (s)

569 2845.20

Algoritmul FIMnumar intervale numar itemi frecventi pe interval Timp (s)

569 1 2029.24300 2 999.91200 3 730.19150 4 642.68100 6 539.5490 7 533.9080 8 524.4470 9 520.3460 10 517.1950 12 556.6740 15 581.9830 19 590.5720 29 634.8410 57 1025.861 569 2026.04

31

Capitolul 4

Topologii de comunicare eficiente

pentru problema segmentarii datelor

4.1 Algoritmul Parallel K-Means

Algoritmul KMC [MacQueen 67] este unul dintre cei mai des utilizati algoritmi pentru

problema clusterizarii datelor. Popularitatea acestui algoritm se bazeaza pe simplitatea

ın implementare, pe scalabilitatea oferita si pe viteza de convergenta [Joshi 03]. De

asemenea, daca se utilizeaza o metrica adecvata, algoritmul poate fi adaptat pentru o

varietate mare de tipuri de date [Joshi 03, Dhillon 00]. Unul dintre cei mai eficienti

algoritmi paraleli pentru KMC este reprezentat de Parallel K-Means (PKM ) [Joshi 03,

Dhillon 00, Stoffle 99]. In cadrul subcapitolului 2.3.3 am amintit faptul ca algoritmul

PKM a fost dezvoltat pornind de la premiza ca pasul cel mai consumator de timp este

cel destinat determinarii distantelor dintre obiectele de clusterizat si centroizii aferenti

unei etape. Mai mult, un numar considerabil de autori sustin ca implementarile eficiente

ale PKM utilizeaza standardul MPI [Joshi 03, Dhillon 00, Stoffle 99].

Diferitele implementari ale standardului MPI realizeaza operatia colectiva scatter prin

intermediul functiilor MPI Scatter sau MPI Scatterv1. Utilizarea acestor doua functii

pentru a diviza datele stocate de procesul radacina prezinta doua mari dezavantaje.

Primul se refera la faptul ca aceste doua functii nu asigura ıntotdeauna o distributie

egala a datelor. O apelare standard MPI Scatter nu poate fi realizata daca dimensiunea

datelor de intrare nu este divizibila cu numarul total de procese. MPI Scatterv poate

rezolva aceste probleme, dar presupune realizarea unei etape de calcul suplimentare, care

trebuie sa se desfasoare ınainte de comunicatia propriu-zisa, pentru a determina corect

numarul de elemente care trebuie trimise fiecarui procesor ın parte.

Al doilea dezavantaj important este faptul ca MPI Scatter sau MPI Scatterv implica

p − 1 operatii pentru procesul radacina pentru a distribui datele ıntre procese. Con-

siderand tu timpul necesar transmiterii unui mesaj de dimensiune unitate, k = n/p

dimensiunea ın unitati a mesajului de transmis unui nod de procesare si ts timpul nece-

sar stabilirii unei comunicatii ıntre oricare doua noduri, timpul total consumat de nodul

1Pentru mai multe detalii, consultati manualul implementarilor MPICH-G2, LAM/MPI, OpenMPI

32

radacina (acel nod care stocheaza initial datele de transmis) este dat de relatia (4.1)

[Grama 03].

T = (p− 1)· (ts + k· tu). (4.1)

Etapa de reducere inclusa de PKM trebuie de asemenea tratata cu atentie daca

se doreste o implementare eficienta. Manualele diferitelor implementari ale standar-

dului MPI nu ofera detalii specifice pentru implementarea functiilor MPI Reduce si

MPI Allreduce. Mai mult, ın functie de implementarea MPI utilizata, complexitatea

functiilor de reducere poate atinge pe cazurile nefavorabile ordinul O(p). Considerand

aceasta observatie, pe cazul cel mai nefavorabil operatiile de reducere implicate de PKM

se ıncadreaza ın clasa de complexitate data de relatia (4.2) (k noteaza numarul de clus-

tere ın care se doresc a fi grupate datele, p reprezinta numarul de procesoare implicat ın

grupul de lucru):

O(k· p). (4.2)

Considerand ca pasii de reducere trebuie aplicati pana cand nici un obiect nu se mai

deplaseaza ıntre clustere, notand cu t numarul de iteratii efectuate pana la atingerea

convergentei, atunci, pentru cazul cel mai nefavorabil, relatia (4.2) devine:

O(t· k· p). (4.3)

Rezultatele prezentate ın relatiile (2.4) si (4.3) implica faptul ca odata cu cresterea

numarului de procesoare se reduc etapele de calcul ale distantelor, dar, pentru imple-

mentari mai putin eficiente ale primitivelor de reducere, creste liniar, relativ la numarul

de procesoare, timpul necesar pentru determinarea noilor centroizi. Acest lucru va genera

o implementare MPI ineficienta a PKM din moment ce reducerea de timp efectiva ar fi

cu mult mai mica decat estimarea data de relatia (2.4). In plus, implementarile standar-

dului MPI realizeaza functionalitatea operatiei colective de MPI Allreduce ın doua etape

distincte: o prima operatie de reducere, ın urma careia nodul radacina va determina

rezultatul operatiei dorite, urmata de o comunicare de tip broadcast 1-la-toti, ın urma

careia nodul radacina distribuie rezultatul determinat anterior catre celelalte noduri de

lucru. In [Grama 03] este mentionat faptul ca, utilizand o topologie adecvata, cele doua

operatii distincte (operatia colectiva de reducere si operatia colectiva de broadcast) pot

fi cumulate ın cadrul unei singure operatii compuse.

Cu toate ca diversi autori recomanda utilizarea MPI pentru implementarea PKM

[Dhillon 00, Joshi 03, Stoffle 99], ın literatura nu sunt ıntalnite detalii legate de topologiile

de comunicatie utilizate ın implementarile PKM. Dezavantajele mentionate anterior de-

riva tocmai din aceste scapari. Mai mult, eficienta acestor implementari este conditionata

de versiunea MPI utilizata. In [Archip 10] este propusa si analizata o abordare eficienta

a algoritmului PKM, independenta de implementarea efectiva a standardului MPI.

4.2 Modificarea comunicatiilor pentru algoritmul paralel standard

In [Grama 03] sunt prezentate si analizate un set de topologii de comunicatie ce pot fi

implementate ın cadrul sistemelor de calcul paralel ce utilizeaza MPI. Dintre acestea,

topologia de tip hipercub (HC ) se remarca prin dimensiunea logaritmica a numarului de

etape implicate de operatiile colective ın raport cu numarul de procesoare [Grama 03].

33

In baza acestor concluzii, propunem utilizarea HC drept topologie suport pentru imple-

mentarea algoritmului PKM [Archip 10].

4.2.1 Topologia de tip hipercub

Topologia de tip HC presupune exitenta unui numar p = 2d de procesoare distribuite

astfel ıncat fiecare dintre acestea are exact d procesoare vencine. d se numeste dimensi-

unea HC, iar un HC de dimensiune d este denumit un d-HC. Mai mult, fiecare procesor

identificat de un id numeric are exact un procesor vecin pe fiecare dintre cele d dimensi-

uni.

4.2.2 Partitionarea datelor pe topologia de tip hipercub

Pentru a partitiona eficient un volum de date de analizat ıntre procesoarele unui HC,

am recurs la modificarea primitivei colective de baza unul-la-toti nepersonalizat pe HC

(primitiva numita si broadcast), conform propunerilor similare din [Grama 03]. Motivul

alegerii acestui algoritm este dat si de faptul ca procedura de transmitere unul-la-toti pe

HC necesita un numar de exact d pasi pentru finalizare [Grama 03].

Pentru a obtine o functionalitate a primitivei scatter utilizand primitiva unul-la-toti

pe HC, mesajul care urmeaza a fi transmis trebuie sa contina atat datele pentru proce-

sul tinta id (noua radacina pentru subcubul corespunzator), cat si toate datele pentru

procesele ce apartin aceluiasi subcub [Grama 03]. Prin urmare, ın fiecare faza ın care un

procesor are rol de transmitator, acesta trebuie sa trimita jumatate din datele sale catre

nodul pereche din subcubul corespunzator [Grama 03]. In abordarea propusa fiecare

nod transmitator va timite subcubului corespunzator jumatatea superioara a datelor

stocate/primite pentru partitionare [Archip 10].

Un aspect important pentru implementarile MPI eficiente ale primitivelor scatter

este legat de nodul cu rol de receptor. Acesta trebuie sa determine numarul maxim

de elemente ce va fi receptionat. Aceasta determinare trebuie sa fie realizata fara alte

comunicatii suplimentare si, de asemenea, fara sa interpuna etape de calcul complexe cu

etapele implicate de comunicatii. Considerand un HC si primitiva de comunicatie 1-la-

toti peste un HC prezentata ın [Grama 03], se pot determina usor etapele de receptie

pentru fiecare dintre procesoarele participante. Considerand identificatorul de etapa i,

n lungimea mesajului initial (dimensiunea datelor de intrare ce vor fi analizate) si d

dimensiunea HC -ului, numarul maxim de elemente r ce trebuie receptionat de fiecare

procesor ın parte ce compune un HC este dat de relatia [Archip 10]:

r =n

2d−i+ 1. (4.4)

Se remarca faptul ca formula de calcul (4.4) este extrem de simpla si de rapida ın

executie. Utilizand relatia (4.4), Algoritmul 4.1 [Archip 10] prezinta pseudocodul unei

primitive de tip scatter implementata pe un HC de dimendiune d (o abordare similara

este prezentata si ın [Grama 03]). Diferenta fata de abordarea clasica din [Grama 03] este

faptul ca Algoritmul 4.1, prin implementarea relatiei (4.4), nu necesita un calcul initial

pentru determinarea numarului de elemente care vor fi receptionat pe fiecare procesor ın

parte [Archip 10].

In Algoritmul 4.1 variabila n reprezinta lungimea vectorului original de intrare pentru

toate procesele. Dupa fiecare faza de receptie, fiecare proces utilizeaza variabila n pentru

34

Algoritmul 4.1 Primitiva scatter pe un d-HC

procedura HCScatter (vector, d, id)

1: mask := 2d − 12: for i := d− 1 pana la 0 do

3: mask := mask XOR 2i

4: if 0 = (id AND mask) then5: partner := id XOR 2i

6: if 0 = (id AND 2i) then7: s := n/2 {numarul de elemente de transmis}8: n := n− s9: trimite mesaj de la [vector + n] de lungime s la partner

10: else

11: n := n/2d−i + 112: receptioneaza ın vector mesaj de dimensiune maxima n de la partner13: n = numarul de elemente efectiv receptionate14: end if

15: end if

16: end for

a stoca numarul efectiv de elemente pe care trebuie sa-l divida ın urmatoarele etape. La

finalizarea procedurii, fiecare proces utilizeaza aceasta variabila pentru a stoca lungimea

partitiilor proprii din vectorul original.

Pentru a estima costul timp al procedurii prezentate ın Algoritmul 4.1 trebuie tinut

cont de urmatoarea observatie [Grama 03]: costul comunicatiei pentru nodul radacina

(procesorul care contine mesajul de trasnmis) nu poate fi mai mic de:

tminim = (p− 1)· k· tu, (4.5)

unde p, k, tu au aceeasi semnificatie ca ın cazul relatiei (4.1). Acest lucru este evident

deoarece, initial, radacina comunicatiei stocheaza tot volumul de date de dimensiune

n unitati ce trebuie partitionat. Fiecarui procesor din grupul de lucru trebuie sa-i fie

repartizat o subset din aceste date de dimensiune medie k = n/p unitati. Rezulta ca

volumul total de date ce trebuie transmis de nodul radacina are dimensiunea (p − 1)· k

unitati.

Dupa cum s-a mentionat anterior, orice operatie colectiva realizata pe un HC se

realizeaza ın exact d = log2P etape si are un caracter recursiv [Grama 03]. Acest lucru

implica faptul ca timpul total consumat de procesorul radacina ın cazul unei operatii de

tip scatter pe un HC este:

T = d· ts + tminim = d· ts + (p− 1)· k· tu, (4.6)

unde d = log(p). Comparand relatiile (4.1) cu (4.6) se poate estima o reducere de timp

de ((p− 1)− log(p))· ts pentru procesorul radacina al comunicatiei, daca primitva de tip

scatter este implementata pe un HC.

Un al doilea avantaj semnificativ al procedurii prezentate ın Algoritmul 4.1 este

reprezentat de faptul ca procesoarele sunt echilibrate din punctul de vedere al volu-

mului de date ce le este repartizat [Archip 10]. Acest echilibru este atins chiar daca

numarul total de elemente de analizat n nu este divizibil cu numarul de procesoare p

care participa la analiza. Lema 4.1 demonstreaza acest lucru [Archip 10].

35

Lema 4.1. Algoritmul 4.1 partitioneaza un volum de date de dimensiune n ıntre cele

p = 2d procesoare ale unui HC de dimensiune d astfel ıncat diferenta maxima ıntre

oricare doua procesoare din HC este de un singur element.

Demonstratie

Prin inductie matematica:

Pentru d = 1, HC este format din p = 2 procesoare.

Conform (4.4), pentru vectorii V0 si V1, ce rezulta ın urma pasului de divizare, au loc

urmatoarele relatii:

caz 1 - n este par:

numarul total de elemente ale V0:n2 .

numarul total de elemente ale V1:n2 .

caz 2 - n este impar:

numarul total de elemente ale V0: [n2 ] + 1.

numarul total de elemente ale V1: [n2 ].

Presupunem adevarata Lema 4.1 pentru cazul d = k, k natural, mai mare decat 1.

In acest caz, pentru vectorii V0, V1, ..., V2k , repartizati celor 2k subcuburi ın urma a k

divizari, are loc urmatoarea relatie:

|size(Vi)− size(Vj)| ≤ 1, ∀i, j ∈ {0, 1, ..., 2k}, i 6= j, (4.7)

unde prin size(V ) se noteaza dimensiunea vectorului V .

Demonstram Lema 4.1 pentru d = k + 1.

Se noteaza prin Vi0, Vi1, i ∈ {0, 1, ..., 2k} vectorii obtinuti prin divizarea vectorului

Vi, i ∈ {0, 1, ..., 2k}.

Fie doi vectori Vi, Vj (i, j ∈ {0, 1, ..., 2k}, i 6= j) ce respecta relatia (4.7).

Fie size(Vi) = q, size(Vj) = q + 1, unde q = 2· r, r este un numar natural nenul.

Atunci:

size(Vil) = [q

2] = r, ∀l ∈ {0, 1}, (4.8)

size(Vjm) = [q

2] + 1 = r + 1, daca m = 0 sau (4.9)

size(Vjm) = [q

2] = r, daca m = 1. (4.10)

Din relatiile (4.8, 4.9, 4.10) rezulta ca:

|size(Vil)− size(Vjm)| ≤ 1, ∀i, j ∈ {0, 1, ..., 2k}, i 6= j, ∀l,m ∈ {0, 1}. (4.11)

Cazul q = 2· r + 1 se demonstreaza similar. De asemenea, cazurile size(Vi) =

size(Vj) = q se demonstreaza similar, indiferent de natura lui q (par sau impar).

q.e.d

Algoritmul 4.1 descrie o metoda de divizare mult mai simpla si mai directa, aplicabila

pentru toate procesoarele din grupul de lucru, care obtine acelasi efect [Archip 10].

36

4.2.3 Tiparul comunicational utilizat ın determinarea centroizilor

Dupa cum a fost amintit anterior, ın cazurile unor implementari mai putin eficiente ale

standardului MPI este posibil ca functiile de tip MPI Allreduce (utilizate ın mod uzual

pentru implementarea primitivelor colective de reducere) sa atinga o complexitate liniara

relativ la numarul de procesoare p din grupul de lucru (relatia (4.3)). Un exemplu de

astfel de implementare este MPICH-G2, implementare care, desi a fost ıntrerupta din

dezvoltare, este ın prezent utilizata ın cadrul GT 4.

Pentru implementarile curente ale standardului MPI (este vorba despre implemetarile

LAM/MPI si OpenMPI), functaMPI Allreduce ruleaza ın doua etape: o etapa de calcul si

comunicatii, ın care un procesor radacina realizeaza operatia de reducere dorita, urmata

de o etapa de comunicatie, ın care procesorul radacina utilizeaza o primitiva de tip 1-

la-toti nepersonalizat pentru a transmite si celorlalte procesoare rezultatul determinat.

Implementarile ın discutie utilizeaza topologii de tip arbore ın implementarea etapelor

mentionate2. Cu toate ca aceasta abordare obtine o dependeta logaritmica a raspunsului

timp relativ la numarul de procesoare p implicat ın calcul, separarea ın etape a operatiilor

implicate poate atrage timpi suplimentari nedoriti [Grama 03].

Utilizand o topologie de tip HC, primitiva de tip all-reduce necesara poate fi imple-

mentata combinand cele doua etape mentionate anterior [Grama 03]. Astfel, primitiva

generica toti-la-toti prezentata ın [Grama 03] poate fi adapatata astfel ıncat sa imple-

menteze functionalitatile necesare unei primitive all-reduce. Pe baza observatiilor similare

din [Grama 03], Algoritmul 4.2 prezinta pseudocodul necesar implementarii primitivei

all-reduce utilizand o topologie de tip HC [Archip 10].

In Algoritmul 4.2 ⊕ reprezinta fie operatia necesara pentru calculul coordonatelor

noilor centroizi, fie o simpla operatie de adunare utilizata la determinarea valorii MSE.

Algoritmul 4.2 Primitiva all-reduce implementata pe un HC de dimensiune d

procedure CUBEReduce (input, output, d, id)

1: output := input2: for id := 0 to d− 1 do

3: partner id := id XOR 2i

4: trimite output catre partner id5: primeste input de la partner id6: output := ⊕(output, input)7: end for

Se poate observa cu usurinta faptul ca procedura din Algoritmul 4.2 necesita exact

d pasi pentru finalizare (unde d = log2P , unde p este numarul total de procesoare)

[Grama 03, Archip 10].

Avantajul utilizarii acestei abordari pentru operatiile de reducere este reprezentat de

faptul ca limiteaza timpul consumat de aceste operatii, independent de implementarile

standardului MPI utilizate [Archip 10]. Am demonstrat ca ın abordarile clasice, acesti

timpi pot atinge complexitatea O(t· k· p) (relatia (4.3)) pe cazurile cele mai nefavorabile.

Acest lucru se datoreaza faptului ca o singura operatie all-reduce poate atinge timpi de

complexitate O(p). In abordarea propusa o singura operatie de all-reduce necesita pentru

finalizare un timp de ordin O(log2 p) [Grama 03, Archip 10]. Prin urmare complexitatea

timp a unei singure etape de reducere este data de relatia:

2detalii sunt oferite de manualele implementarilor LAM/MPI si OpenMPI

37

O(k· log2 p). (4.12)

Daca PKM atinge convergenta dupa un numar de t etape, utilizand relatia (4.12),

complexitatea timp pentru toate etapele de reducere este data de:

O(k· t· log2 p). (4.13)

Utilizand modificarile propuse anterior, Algoritmul 4.3 descrie pseudocodul algorit-

mului PKM implementat utilizand o topologie de tip HC [Archip 10].

Algoritmul 4.3 Algoritmul PKM implementat utilizand o topologie de tip HC

Require: X vectorul de obiecte de clusterizatRequire: k numarul de clustere1: P := MPI Comm size()2: id := MPI Comm rank()3: MSE := maxim posibil4: length := HCScatter(X, log

2P, id)

5: if id = root then6: alege centroizii initiali {mj}

kj=1

7: end if

8: MPI Bcast({mj}kj=1, root)

9: repeat

10: OldMSE := MSE11: MSE∗ := 012: for j := 1 to k do

13: mj∗ := 0

14: nj∗ := 0

15: end for

16: for i := 1 to length do

17: for j := 1 to k do

18: calculeaza distanta Euclidiana dintre obiectul Xi si centroidul mj d2(Xi,mj)19: end for

20: determina cel mai apropiat centroid ml pentru obiectul Xi

21: ml∗ := ml

∗ +Xi

22: nl∗ := nl

∗ + 123: MSE∗ := MSE∗ + d2(Xi,ml)24: end for

25: for j := 1 to k do

26: CUBEReduce(nj∗, nj , log2 P, id)

27: CUBEReduce(mj∗,mj , log2 P, id)

28: nj := max(nj , 1)29: mj := mj/nj

30: end for

31: CUBEReduce(MSE∗,MSE, log2P, id)

32: until MSE < OldMSE

In Algoritmul 4.3, procedurile CUBEReduce si HCScatter sunt cele descrise ın

Algoritmii 4.2 si 4.1.

38

4.3 Rezultate si discutii

Pentru a testa comparativ abordarea generica a PKM si 4.3, acestia au fost implementati

utilizand C++ si LAM/MPI versiunea 7.1.2. Alegerea implementarii LAM/MPI a stan-

dardului MPI se bazeaza pe faptul ca aceasta furnizeaza o implementare relativ eficienta

a primitivei all-reduce prin intermediul functiei MPI Allreduce (comportamentul aces-

tei functii a fost de descris ın subcapitolul 4.2.3). Seturile de date test au constat ın

5000, 7500 si 10000 puncte generate aleator, avand 4 atribute (coordonatele pe axele

OX,OY ,OZ,OT ). Pentru fiecare dintre cele trei seturi, au fost considerate k = 2000

clustere tinta. Testele au fost realizate pe un sistem multicore cu 8 procesoare. Pentru

fiecare caz ın parte, algoritmii au fost rulati pentru 2, 4, si, respectiv, 8 procesoare.

O particularitate a cazurilor de teste descrise este legata de faptul ca pentru de-

terminarea noilor centroizi atat etapele de comunicatie, cat si gestiunea acestora devin

dominante ın raport cu etapele de calcul.

Pentru toate testele efectuate, Algoritmul 4.3 a obtinut timpi mai buni decat abor-

darea generica standard. Acest lucru se datoreaza faptului ca adoptand o topologie de

tip HC, toate procesoarele participa ın paralel atat ın etapele de comunicare, cat si ın cele

de calcul implicate de o primitiva de tip all-reduce (Algoritmul 4.2). Mai mult, la finalul

etapelor de calcul, toate procesoarele au determinat rezultatul aferent. In cazul functiei

MPI Allreduce (abordarea clasica), numai procesorul cu id = 0 a determinat rezultatul

dorit. Pentru ca si celelalte procesoare din grupul de lucru sa determine acelasi rezultat,

functia MPI Allreduce include un broadcast, fapt ce atrage dupa sine timpi suplimentari.

Din acest punct de vedere rezultatele timp obtinute prin implementarea Algoritmului 4.3

capata un plus de semnificatie. Toate comunicatiile implementate ın cadrul Algoritmului

4.3 au fost implementate prin intermediul functiilor MPI Send/MPI Recv. Prin contrast,

toate comunicatiile implicate de functia MPI Allreduce sunt realizate prin interactiune

directa cu thread-ul de control al mediului LAM/MPI si sunt mai rapide din punctul de

vedere al raspunsului timp. Cu toate acestea, per global, implementarea generica a PKM

obtine timpi de raspuns inferiori implementarii propuse (Algoritmul 4.3).

Un al doilea rezultat important ce se poate observa este legat de variatia timpului de

raspuns o data cu cresterea numarului de procesoare. Astfel, pentru primul set de teste

(5000 puncte /2000 centroizi), daca ın cazul rularii pe 4 procesoare diferenta de timp

este de ≈ 0.06 secunde, aceasta diferenta creste la ≈ 0.10 secunde ın favoarea abordarii

topologiei de tip HC pentru cazul cu 8 procesoare. Aceeasi variatie poate fi observata si

ın cazul celorlalte doua seturi de teste:

• o crestere a diferentei de timp de la ≈ 0.02 secunde la ≈ 0.10 secunde pentru cazul

al doilea de test;

• o crestere a diferentei de timp de la ≈ 0.04 secunde la ≈ 0.16 secunde pentru cazul

al treilea de test.

Se poate observa ca ın ultimile doua cazuri de test convergenta algoritmului PKM

a fost atinsa dupa t = 11 iteratii fata de t = 9 ın primul caz. Acest lucru indica un

comportament mai bun al abordarii propuse (Algoritmul 4.3) fata de cazul clasic.

Rezultatele prezentate au evidentiat faptul ca, prin utilizarea unei topologii de comu-

nicatie eficiente cum este si cazul HC, se pot ımbunatati ın continuare timpii de raspuns

ai unui model paralel dat. Semnificatia acestor rezultate este cu atat mai mare daca

luam ın considerare faptul ca pentru Algoritmul 4.3 am recurs la functiile de baza de tip

39

Send/Receive pentru implementarea comunicatiilor. Chiar daca aceste doua primitive

implica un timp mai mare de deschidere a conexiunilor dintre procesoare si, respectiv,

de transmisie efectiva a mesajelor, marginirea comunicatiilor indusa de topologia de tip

HC s-a dovedit a fi cu mult mai eficienta.

40

Capitolul 5

Sisteme Grid

Primele referiri ale Grid-urilor computationale dateaza din anul 1969. Intuind dezvoltarea

la scara globala a sistemelor de calcul, Len Kleinrock1 a afirmat urmatoarele:

Probabil vom vedea ın viitor o distribuire a utilitatilor de calcul, care, aseme-

nea utilitatilor electrice sau telefonice, vor servi locuintele private si sediile

firmelor dintr-o anume tara. (,,We will probably see the spread of computer

utilities, which, like present electric and telephone utilities, will service indi-

vidual homes and offices across the country.”)

O prima definitie a sistemelor Grid computationale este data de Ian Foster si Carl

Kesselman [Foster 98]: un Grid computational reprezinta o infrastructura hardware si

software care dispune de acces sigur, consecvent, universal si ieftin la resurse de cal-

cul de mare performanta. La foarte scurt timp, aceeasi autori completeaza notiunea de

sistem Grid prin reconsiderarea aspectelor care tin de componenta institutionala impli-

cata de acestea [Foster 01]. Intr-un articol ulterior, Ian Foster definste trei criterii care

caracterizeaza un Grid [Foster 02a]:

1. coordonarea resurselor : resursele sunt coordonate, dar nu sunt controlate ıntr-o

maniera centralizata - un sistem Grid integreaza resurse si utilizatori care apartin

de domenii diferite, controlate si administrate local;

2. utilizarea standardelor, a protocoalelor si a interfetelor deschise, general valabile:

ıntr-un sistem Grid trebuie sa existe protocoale si interfete pentru autentificare,

autorizare, descoperirea si accesul la resurse. Este foarte important ca aceste pro-

tocoale sa fie standardizate si ”vizibile”;

3. furnizarea de servicii netriviale: Conceptul de Grid presupune avantajele resurselor

de grup dar si participare activa la dezvoltarea acestor resurse. Din acest motiv,

ıntr-un sistem Grid exista doua categorii de participanti: consumatori si furnizori

de servicii. Pentru ca sistemul sa functioneze, serviciile trebuie sa fie de calitate;

altfel, consumatorii se orienteaza spre alte sisteme.

1profesor la UCLA’s Henry Samueli School of Engineering and Applied Science, membru al echipeide dezvoltare al ARPANET

41

In prezent, notiunile fundamentale care caracterizeaza un sistem Grid sunt cele de

Organizatie Virtuala (prescurtat OV ), servicii si de resurse Grid [Foster 01]. In acest

context, Grid-urile reprezinta o infrastructura care integreaza resurse distribuite geografic

(putere de calcul, retele de comunicattie, capacitate de stocare a datelor, informattie,

etc.) si mecanismele de partajare a acestor resurse ın scopul de a furniza o platforma

virtuala, colaborativa destinata calculului si gestiunii datelor. Analizand componentele

de tip serviciu Grid, Borja Sotomayor considera ın [Sotomayor 06] urmatoarele grupuri

de servicii ale unui sistem Grid:

• servicii pentru gestiunea OV - destinate managementului nodurilor care fac parte

din OV ;

• servicii pentru descoperirea si gestiunea resurselor Grid - destinate identificarii

resurselor puse la dispozitie si gestiunii acestora;

• servicii pentru gestiunea job-urilor - destinare managementului task-urilor utiliza-

tor ın cadrul sistemelor Grid;

• servicii pentru securitatea informatiilor, managementul datelor, etc.

In cadrul unui astfel de sistem, notiunea de calcul pe Grid (ın engleza: Grid Com-

puting) implica utilizarea de programe organizate pe componente, care necesita o putere

de calcul considerabila si accesul rapid asupra unor resurse variate. Astfel, calculul pe

Grid poate fi gandit ca o forma de calcul paralel pe un cluster de dimensiuni foarte mari

conectate pe principiul rolurilor egale (peer-to-peer) [Aflori 05].

Suportul GT4 pentru aplicatii MPI

GT4 ofera suport pentru aplicatii MPI prin intermediul pachetului MPICH-G2, im-

plementare ce ofera suport pentru versiunea 1.1 a standardului MPI si pentru un set re-

strans de operatii concurente asupra fisierelor. Utilizand aceasta implementare, aplicatiile

MPI pot rula ın cadrul GT4 pe mai multe calculatoare, aflate ın locatii diferite, folosind

aceleasi instructiuni si comenzi care ar fi utilizate pe un calculator paralel. MPICH-G2

extinde implementarea anterioara MPICH pentru utilizarea serviciilor furnizate de GT4

pentru autentificare, autorizare, alocare de resurse, initializarea executiei, operatii de

I/O precum si pentru crearea de procese, monitorizare si control. Diverse operatii critice

din punct de vedere al performantelor, inclusiv initializarea operatiilor colective, sunt

configurate pentru a exploata informatiile legate de topologia retelei [Karonis 03].

MPICH-G2 utilizeaza serviciile GT4 pentru a suporta executia transparenta si efi-

cienta a aplicatiilor ın medii neomogene de tip Grid, permitand ın acelasi timp si gestiunea

acestor aplicatii.

Inaintea lansarii ın executie a unei aplicatii MPICH-G2, utilizatorul apeleaza mo-

dulele GSI (comanda grid-proxy-init) pentru obtinerea unui certificat de autentificare

pentru diverse locatii, furnizandu-se ın acest fel o modalitate de autentificare unica. De

asemenea, utilizatorul poate apela modulele MDS pentru a selecta sistemele pe care va

rula aplicatia pe baza informatiilor legate de configuratie, disponibilitate si interconectare

[Karonis 03].

Odata autentificat, utilizatorul foloseste utilitarul standard mpirun pentru lansarea

aplicatiei. Implementarea MPICH-G2 a acestei comenzi utilizeaza RSL (Resource Spe-

cification Language) pentru descrierea necesarului de resurse fizice al aplicatiei MPI :

42

numarul de procesoare, memorie, timp de executie si parametrii precum localizarea

executabilelor, argumentele din linia de comanda si eventualele variabilele de mediu

[Karonis 03].

Pe baza informatiilor din scripturile RSL, MPICH-G2 apeleaza functiile oferite de

GT4 ın biblioteca DUROC (Dynamically Updated Request Online Coallocator) pentru a

planifica si a lansa ın executie aplicatia pe sistemele specificate de utilizator. La randul ei,

biblioteca DUROC, apeleaza GRAM (Grid Resource Allocation and Management) pen-

tru a starta si gestiona rularea aplicatiei pe fiecare sistem de calcul ın parte [Karonis 03].

GRAM poate utiliza, daca este cazul, GASS (Global Access and Secondary Storage)

pentru a porni executabilele aflate ın diferite locatii si indicate prin adrese URL ın cadrul

scriptului RSL. De asemenea, GASS este utilizat si dupa ce aplicatia a fost pornita pentru

redirectarea iesirilor standard si de eroare (stdout si stderr) catre terminalul utilizatoru-

lui, furnizand acces la fisiere indiferent de locatie, fapt ce ascunde aspectele legate de

distributia geografica. Dupa lansarea ın executie a aplicatiei, MPICH-G2 selecteaza cea

mai eficienta metoda de comunicatie posibila ıntre procese, folosind versiunea de MPI

instalata, utilizand Globus-IO (Globus communication) ımpreuna cu Globus DC (Data

Conversion) peste protocolul TCP ın cazul ın care nu sunt identificate alte mecanisme.

In cadrul acestui capitol au fost prezentate sistemele Grid, punandu-se cu precadere

accent pe middleware-ul GT4. Acest middleware, considerat standardul de facto pentru

sistemele Grid bazate pe SOA, ofera ın prezent un set de specificatii si framework-uri bine

ınchegate pentru construirea platformelor de tip Grid. Fiind un middleware destinat si

aplicatiilor paralele dezvoltate utilizand MPI, GT4 ofera suport pentru implemenatrea si

rularea acestora prin intermediul pachetului MPICH-G2. Cu toate ca pachetul MPICH-

G2 este bine integrat ın middleware-ul GT4 si este folosit de o gama larga de utilizatori

si dezvoltatori de aplicatii Grid, exista un set de dezavantaje care descalifica utilizarea

acestui pachet pentru aplicatii paralele complexe [Archip 08a, Archip 08b]. In continuare

sunt enumerate o parte dintre aceste neajunsuri:

• nu implementeaza decat standardul MPI-1.1 : nu exista suport pentru manipularea

dinamica a numarului nodurilor de procesare, fapt ce face imposibila gestiunea

eficienta a nodurilor de lucru;

• nu ofera decat suport partial pentru limbajul C++: ın timpul rularilor unor

aplicatii de test simpliste, a fost observata lansarea eronata ın executie a codurilor

C++, cu toate ca acestea fusesera compilate si link-editate corect. Aceste rulari

eronate au fost remarcate ın special ın cazul ın care codul C++ continea clase

container specializate, precum bitset, vector sau map;

• nu ofera nici o facilitate suplimentara pentru interactiunea directa ıntre aplicatia

MPI si celelalte servicii Grid;

• lansarea ın executie si gestiunea aplicatiilor MPI ce folosesc MPICH-G2 este ın

continuare realizata prin intremediul modulelor GRAM si DUROC, module ce sunt

mentinute ın actuala distributie GT4 doar din ratiuni de compatibilitate ınapoi cu

GT2.

Ultimul dezavantaj este considerat ca fiind cel mai important. Versiunea 4 a middle-

ware-ului Globus Toolkit realizeaza o migrare a modulelor de gestiune a resurselor catre o

43

abordare SOA. In acest sens a fost dezvoltat un nou modul de gestiune a resurselor - WS-

GRAM (prezentat ın cadrul acestui capitol). Pe langa ımbunatatirea vitezei de lansare

ın executie a aplicatiilor Grid, WS-GRAM aduce o serie de ımbunatatiri ın gestiunea

securitatii aplicatiilor Grid: lansarea ın executie se bazeaza pe implementarea unui modul

de impersonare a utilizatorilor autorizati similar comenzii Unix sudo, spre deosebire de

managerul anterior GRAM pentru care trebuiau setate drepturi speciale de super-user

(ın sistemele Unix/Linux utilizatorul root).

Mai mult, cu toate ca GT4 marcheaza practic migrarea catre sisteme Grid dezvoltate

conform principiilor SOA si cu toate ca se ofera suport complet, la nivel de API-uri si

framework-uri, pentru rularea aplicatiilor MPI din cadrul altor aplicatii Grid complexe

se remarca o slaba dezvoltare a integrarii acestor aplicatii MPI sub forma de servicii

Grid. Aceasta integrare ar oferi suport mai bun pentru procesele complexe precum cel

al descoperirii de cunostinte. Aplicatiile complexe de data mining, ce necesita aplicarea

succesiva a mai multor metode de analiza, pot fi mai usor dezvoltate daca se utilizeaza

compunere de servicii. Capitolul 6 prezinta o propunere menita sa faciliteze integrarea

aplicatiilor MPI sub forma de servicii Grid.

44

Capitolul 6

Integrarea aplicatiilor MPI sub forma

serviciilor Grid

6.1 Justificarea abordarii

Prezentat ın cadrul Capitolului 1, procesul de descoperire de cunostinte este un proces

complex ce se desfasoara ın mai multe etape (reprezentate schematic ın Figura 1.1).

Pentru etapele de analiza efectiva a datelor (etape numite ın mod generic data mining

se remarca o dezvoltare considerabila a algoritmilor paraleli. Sistemele Grid pot sustine

acest proces atat la nivel de etape computationale implicate, cat si la nivel de stocare a

volumului din ce ın ce mai mare de date achizitionate. In acest sens, Ian Foster et al.

propun ın [Foster 02b] un model generic de serviciu Grid, conform specificatiilor OGSA,

pentru a adresa problema descoperirii de cunostinte ın cadrul sistemelor Grid, model ce

poate fi implementat si ın GT4 1.

6.1.1 Model generic pentru serviciile Grid destinate

problemei descoperirii de cunostinte

Capitolele din prima parte a acestei lucrari au evidentiat faptul ca pentru majoritatea

algoritmilor dezvoltati pentru procesul de data mining exista modele de paralelizare. A

fost, de asemenea, evidentiat si faptul ca standardul MPI poate furniza un suport de

implementare adecvat pentru aceste modele. O observatie ın plus este aceea ca imple-

mentarea acestor modele ar trebui realizata ıntr-un limbaj nativ, ın special ın cazul ın

care viteza de rulare este un considerent important.

In cadrul capitolului anterior a fost semnalat un posibil dezavantaj al sistemelor

Grid bazate pe GT4 : middleware-ul ın discutie ofera suport complet pentru aplicatii

MPI prin intermediul MPICH-G2. Aceasta implementare a standardului MPI nu ofera

suport decat pentru versiunea 1.1, cu un set restrans de extensii ce vizeaza accesul

concurent asupra eventualelor fisiere de lucru. In cazul ın care aplicatiile de data mining

implementate ın MPI necesita facilitati avansate ale acestui standard (facilitati precum

gestiunea dinamica de procese - introdusa o data cu versiunea 2.0 a standardului MPI ),

1Modelul ın discutie a reprezentat punctul de start si ın cadrul proiectului Data Mining Grid :http://www.dataminingGrid.org/

45

MPICH-G2 nu poate oferi suport. Totodata a fost indicat faptul ca, desi GT4 ofera

suport extins pentru gestiunea job-urilor Grid din cadrul aplicatiilor Grid complexe

(acest support fiind expus prin includerea diferitelor API-uri ıncapsulate sub forma unor

pachete CoG - Commodity Grid), suportul oferit pentru gestiunea aceluiasi tip de job-uri

din cadrul serviciilor Grid este mai slab dezvoltat.

Subcapitolele urmatoare prezinta o propunere de integrare sub forma de servicii Grid

a aplicatiilor MPI utilizeaza alte implementari ale standardului MPI. Propunerea se

bazeaza pe un model generic prezentat ın [Dunnweber 05].

6.2 Arhitectura serviciului Grid propus

Rolul propunerii ın discutie este acela de a ascunde, pentru un utilizator final sau pentru

un dezvoltator de aplicatii Grid, interactiunea cu componentele implicate de WS-GRAM

pentru gestiunea job-urilor Grid destinate data mining. Din acest punct de vedere,

serviciul Grid propus ın [Archip 08b, Archip 08a] realizeaza o interfata ıntre utilizatorii

finali si serviciile Grid aferente WS-GRAM. Se poate spune ca serviciul Grid propus va

impersona un potential client ın interactiunea cu suita de servicii WS-GRAM.

Implementarea standardului MPI avuta ın vedere este LAM/MPI 2. Aceasta imple-

mentare MPI necesita pentru gestiunea aplicatiilor rularea unui fir de executie de control

(un thread daemon - lamd) ce trebuie sa ruleze pe calculatorul paralel/clusterul tinta.

Serviciul Grid propus va realiza si gestiunea acestuia.

6.2.1 Modelul Fabrica/Instanta

Conform cu observatiile prezentate ın [Foster 02b, Jacob 05, Sotomayor 06], servici-

ile Grid au un pronuntat caracter tranzitoriu. Serviciul Grid destinat ıncapsularii

aplicatiilor MPI are la baza o arhitectura de tip Serviciu fabrica/Serviciu Instanta (ın

englezaa Factory Service/Instance Service), conforma cu specificatiile OGSA (Figura 6.1)

[Archip 08b, Archip 08a].

A fost adoptat acest model ıntrucat respecta specificatiile arhitecturale impuse de

WSRF, specificatii fundamentale pentru sistemele Grid bazate pe SOA. Cele doua com-

ponente ale modelului (serviciul de tip Factory si serviciul de tip Instance) au fost denu-

mite AAFactoryService si, respectiv, AATestService. Avantajul major oferit de aceasta

abordare este acela ca un potential client autorizat poate lansa ın executie mai multe ana-

lize simultan [Archip 08b]. Resursa Grid atasata serviciului Grid ıncapsuleaza aplicatia

MPI ce ruleaza modulul de analiza dorit. Starea resursei Grid este reprezentata de

starea rularii curente a analizei specificate.

Practic, fiecare analiza noua va ınseamna crearea unei resurse noi si, din moment ce

resursele sunt independente, rularile nu se vor influenta reciproc. In plus, o resursa poate

lansa ın executie un job pe un cluster al Grid-ului, ın timp ce analizele ulterioare vor

fi trimise catre alte clustere accesibile si, din acest punct de vedere, se poate obtine o

gestiune eficienta a resurselor de calcul expuse de sistemul Grid [Archip 08b].

2alaturi de OpenMPI saun IntelMPI, acest implementare expune complet specificatiile 2.0 ale stan-dardului ın dicutie

46

Figura 6.1: Arhitectura Factory Service/Instance Service utilizata de serviciul Grid pro-pus pentru ıncapsularea aplicatiilor MPI (adaptare dupa [Sotomayor 06])

6.2.2 Integrarea modulelor MPI ın serviciul Grid

Considerand abordarea propusa (de a ıncapsula aplicatiile MPI ın resurse Grid atasate

serviciilor), trebuie abordata rularea efectiva a job-urilor de analiza de date din cadrul

resurselor Grid. Punctul de start ın rezolvarea acestei probleme a fost propunerea de

integrare prezentata ın [Dunnweber 05] .

Dunnweber et al. propun urmatoarea abordare: din moment ce nu se poate integra

codMPI direct ın serviciile Grid, atunci trebuie implementata o componenta de nivel mai

ınalt sub forma unui serviciu sau a unei aplicatii Grid, astfel ıncat aceasta componenta

sa gestioneze modulul MPI dorit.

In acest sens, pornind de la specificatiile descrise anterior, resursa Grid atasata ser-

viciului Grid este responsabila de gestiunea job-ului de analiza curent. In acest sens

resursa Grid include o referinta catre un obiect de tip Thread (limbajul de programare

adoptat pentru implementarea serviciului a fost limbajul Java) care va interactiona sub

forma de client cu serviciile aferente WS-GRAM pentru lansarea ın rulare si gestiunea

job-ului dorit [Archip 08b].

Pentru o gestiune corecta a job-urilor lansate, resursa Grid include un listener peste

un set de component Java legate (Java Bound Beans) destinate stocarii informatiilor de

stare transmise de modulele WS-GRAM. Fata de abordari similare se obtine avantajul

unei interactiuni mai rapide cu serviciul suport oferit de middleware-ul Globus - Man-

agedJobFactoryService - serviciul de tip Factory inclus ın WS-GRAM pentru rularea job-

urilor Grid [Archip 08b, Archip 08a]. In plus, resursa Grid atasata serviciului instanta

gestioneaza un set de fisiere de tip log, prin intermediul carora este salvata starea curenta

a modulului de analiza ce se afla ın rulare [Archip 08a]. Din acest punct de vedere, trebuie

remarcat faptul ca ın acest caz se ofera o posibilitate de analiza mai detaliata a job-ului

Grid, fata de cazul clasic cand modulul suport oferea doar status-uri de forma Job Active,

Job Pending sau Job Failed. Un alt plus major este acela ca fisierele log gestionate de

resursa permit o mai buna indentificare a eventualelor erori ce pot aparea ın cazul unei

rulari necorespunzatoare a modulului de analiza activ [Archip 08b, Archip 08a].

Un alt avantaj imediat este acela ca, ın caz de functionare eronata a container-

47

ului de servicii Grid suport, nu sunt pierdute informatiile privind starea analizei. In

cadrul testelor efectuate, s-a observat faptul ca ın cazul unei caderi a container-ului

Globus resursa Grid este distrusa si, ın acelasi timp, este distrusa si instanta curenta a

modulului de analiza aflat ın rulare. Fata de abordari similare, ın acest caz, la o repornire

a container-ului Globus job-ul distrus nu mai apare ca si resursa nealocata [Archip 08b].

Un potential client poate, ın acest caz, sa consulte fisierele log partiale pentru a identifica

ultima etapa a analizei dorite si poate reporni analiza ın cauza de la aceasta ultima etapa.

Principiul de functionare al celor doua componente ale serviciului Grid propus este

urmatorul [Archip 08b]:

1. clientul autorizat poate initia o cerere pentru o resursa noua de catre AAFacto-

ryService (cu semnificatia ınceperii unei noi analize) sau se poate conecta direct

pe o resursa deja existenta (prin intermediul serviciului instanta AATestService)

ın scopul consultarii stadiului actual al unei analize ın desfasurare sau ın scopul

consultarii unor rezultate ale unei analize deja ıncheiate;

2. ın cazul ın care clientul autorizat dorsste ınceperea unei analize noi, AAFactory-

Service va initializa o resursa noua, apoi ıntoarce clientului o referinta EPR (End-

pointReference - identificator unic atasat resurselor Grid). Aceasta referinta va fi

salvata pe statia de lucru a clientului, apoi acesta se va conecta, prin intermediul

serviciului de instantta AATestService la resursa nou creata;

3. prin intermediul AATestService se vor specifica setarile specifice analizei dorite si

modalitatea de jurnalizare a aplicatiei;

4. AATestService parcurge urmatorii pasi:

a) scrie fisierele de configurare ale clientului ın locatiile corespunzatoare rularii

modulului de analiza solicitat (prin interactiune directa cu serviciulGridFTP);

b) apeleaza resursa Grid atasata si starteaza job-ul prin intermediul acesteia.

In acest moment, resursa Grid atasata va verifica existenta binarului MPI ce

realizeaza analiza ın cauza, va genera un script RSL (ın XML) corespunzator

analizei curente, apoi va porni job-ul dorit;

5. clientul poate monitoriza apoi starea jobului curent sau al altor job-uri trimise

anterior spre rulare.

O observtie importanta este aceea ca aceasta abordare respecta specificatiile si tiparul

de rulare propus ın [Foster 02b] pentru modulele de data mining.

Aplicatiile MPI de test au fost dezvoltate utilizand implementarea LAM/MPI a

standardului MPI. Trebuie mentionat, de asemenea, si faptul ca la prima instantiere a

unei resurse Grid, serviciul fabrica va verifica starea lamd-ului. In cazul ın care acesta

este oprit, serviciul fabrica ıl va starta. Pentru cazurile ın care eventualele rulari ale

aplicatiilor MPI se ıncheie cu erori sau cazurile ın care se doreste interogarea starii unei

rulari active, serviciul instanta va prelua gestiunea lamd-ului [Caraiman 09].

6.3 Consideratii asupra aplicatiilor client

Utilizarea corecta a modelului propus presupune parcurgerea unui set de pasi de conectare

obligatorii [Archip 08b].

48

Un client Grid autorizat trebuie sa parcurga urmatoarele etape pentru a putea utiliza

serviciul Grid propus:

1. clientul ısi verifica proxy-ul Grid si, ın cazul ın care acest proxy nu exista sau ın

cazul ın care acest proxy a expirat, este reponsabil de reinitializarea sa;

2. dupa setarea parametrilor de securitate corespunzatori, se acceseaza serviciul de tip

Factory pentru crearea unei noi resurse (semnificand ınceperea unei analize noi).

In cazul ın care se doreste accesarea unei resurse instantiate anterior, acest pas

poate fi omis;

3. clientul realizeaza conexiunea cu serviciul de tip Instance. Daca se doreste conectarea

unei resurse existente, atunci clientul va transmite catre acest serviciu un obiect de

tip EPR ce indica resursa Grid dorita. In cazul ınceperii unei noi analize, clien-

tul va transmite catre serviciul instanta obiectul de tip EPR obtinut din apelul

anterior catre serviciul fabrica;

4. pe baza setarilor primite de la client, serviciul instanta va seta corespunzator

parametri analizei, apoi va transmite resursei Grid gestionate un semnal de tip

Submit Job;

5. resursa Grid va seta corespunzator scripturile RSL corespunzatoare analizei dorite,

apoi va lansa ın executie modulul corespunzator;

6. ın cazul modificarii starii executiei pentru rularea curenta, resursa Grid va prelua

notificarile transmise de catre componentele corespunzatoare WS-GRAM ;

7. ın momentul finalizarii analizei, serviciul instanta va trimite un mesaj de tip Notify

client job finished catre client si va transfera eventualele fisiere rezultat catre locatia

indicata de acesta.

6.4 Rezultate importante

Rularea si testarea modelului propus

Dupa cum a fost amintit anterior, aplicatiile MPI au fost dezvoltate utilizand im-

plemenatrea LAM/MPI. Serviciul Grid propus are rolul de intermediar ıntre clientii

autorizati si componentele WS-GRAM utilizate ın gestiunea efectiva a job-urilor Grid.

Pentru a realiza acest lucru ın mod corect, modulele WS-GRAM incluse ın GT4 recurg

la utilizarea unui planificator de job-uri. In mod uzual, GT4 include urmatoarele planifi-

catoare: Fork, PBS, SGE si Condor. Pentru o testare completa a serviciului Grid propus

au fost testate toate cele patru planificatoare aminintite anterior. Au fost observate

urmatoarele rezultate:

• Fork3: a avut cel mai rapid timp pentru lansarea ın executie a aplicatiilor LAM/MPI.

• Condor : acest planificator nu a reusit sa identifice clustere capabile sa ruleze

aplicatii LAM/MPI.

3Planificatorul predefinit pentru GT4

http://www.globus.org/toolkit/docs/4.0/execution/wsgram/developer/internal-components.html

49

• SGE : acest manager a identificat cu succes clusterele pe care a fost startat lamd-ul,

dar lansarea efectiva ın executie a esuat, ıntrucat versiunea SGE testata nu poate

fi configurata sa lanseze ın executie aplicatii LAM/MPI ;

• PBS : acest planificator s-a comportat similar cu planificatorului SGE, cu exceptia

faptului ca a trimis job-ul ıntr-o stare de asteptare si a fost necesara terminarea

fortata a aplicatiei.

Utilizarea serviciului Grid propus ın cadrul Grid-ului GRAI 4

Serviciul Grid pentru gestiunea aplicatiilor LAM/MPI a fost dezvoltat integral ın

cadrul contractului de cerectare cu titlul ,,Grid academic pentru aplicatii complexe”. O

prezentare sumara a acestui contract a fost realizata ın [Craus 07a, Craus 07b].

Scopul initial al acestui serviciu a fost de a dezvolta servicii Grid de data mining ce

utilizeaza implementari MPI ale algoritmilor de tratati ın cadrul acestei teze (sunt avute

ın vedere aplicatiile LAM/MPI corespunzatoare algoritmilor Hash Partitioned Apriori

[Archip 07] si Paralel K-Means [Archip 10]). De asemenea, serviciul Grid dezvoltat poate

fi usor adaptat pentru a fi inclus ın cadrul unor abordari complexe, abordari care necesita

compunerea unui set de servicii. Un astfel de exemplu a fost prezentat ın [Arustei 08].

Caracterul general al abordarii (ın conditiile unor configurari adecvate, resursele Grid

ale serviciului ın discutie pot ıngloba o gama variata de aplicatii LAM/MPI [Archip 08b]),

recomanda aceasta propunere pentru ıncapsularea sub forma de servicii Grid a altor

aplicatii MPI, precum Parallel RANSAC (algoritm de detectie a structurilor planare ın

nori de puncte) [Arustei 07]. Un alt rezultat important obtinut prin utilizarea acestui

serviciu Grid a fost implementarea unui simulator cuantic paralel ın cadrul Grid-ului

GRAI [Caraiman 09].

4http://www.grai.tuiasi.ro/

50

Capitolul 7

Concluzii, contributii si directii viitoare

de cercetare

7.1 Concluzii

Domeniul descoperirii de cunostinte include o componenta deosebit de importanta: data

mining. Importanta si actualitatea acestei componente este recomandata de numarul din

ce ın ce mai mare de domenii ce recurg la utilizarea tehnicilor de analiza specifice (identifi-

carea regulilor de asociere, determinarea regulilor de clasificare, segmentarea/clusterizarea

seturilor de date, etc.) pentru a extrage informatii noi din seturile de date caracteristice

activitatilor desfasurate. Cateva exemple includ domeniul economic, domeniul regasirii

de informatii pe Web sau domeniul geneticii. Cu toate ca aceste domenii sunt diferite

fundamental din punctul de vedere al rezultatelor urmarite, expertii care recurg la uti-

lizarea acestor metode de explorare a datelor de lucru se confrunta cu doua probleme

importante: algoritmii implicati sunt intensiv computationali si volumul de date acu-

mulate este din ce ın ce mai mare. O consecinta directa este reprezentata de faptul ca

pentru algoritmii ce adreseaza problematica data mining trebuie dezvoltate modele efi-

ciente de paralelizare/distribuire. Implementarea acestor modele implica existenta unor

infrastructuri hardware/software dedicate, infrastructuri ce trebuie sa fie caracterizate

de o utilizare facila si de catre expertii ce nu activeza ın domeniul IT. In acest context,

conceptele ce stau la baza dezvoltarii sistemelor Grid pot reprezenta solutii atat pentru

rezolvarea problemelor implicate ın rularea unor aplicatii paralele/distribuite complexe,

cat si pentru furnizarea mecanismelor necesare stocarii unui volum imens de date.

In ceea ce priveste algoritmii implicati ın determinarea tiparelor frecvente si a regulilor

de asociere, o analiza pertinenta a acestora nu poate sa nu includa algoritmul Apriori.

Dezvoltat ın 1994 de catre Agrawal, acest algoritm se remarca prin rezultate rezonabile

din punct de vedere al timpului de raspuns oferit si prin simplitate ın implementare. Prin-

cipiul fundamental al acestui algoritm este de a restrange identificarea tiparelor frecvente

prin generarea de itemseturi candidate. Implementarile algoritmului Apriori se bazeaza

pe utilizarea unor structuri de tip arbore hash pentru reprezentarea itemseturilor si a

tranzactiilor sau pe utilizarea unor structuri de tip arbore prefix. In mod uzual, itemii din

care sunt alcatuite tranzactiile si pe baza carora sunt construite itemseturile sunt ın mod

uzual codificati prin valori numerice. Algoritmii paraleli dezvoltati pornind de la algorit-

51

mul Apriori se bazeaza fie pe divizarea componentei de generare a candidatilor aferenti

unei etape, fie pe divizarea pasilor implicati ın determinarea suportului pentru itemse-

turile candidate, fie pe o combinatia a celor doua. Din ultima categorie mentionata face

parte si algoritmul Hash Partitioned Apriori. Acesta utilizeaza cheia de dispersie carac-

teristica arborelui hash pentru a ımparti diviza ıntre procese atat generarea candidatilor

cat si determinarea suportului pentru acesti candidati. De observat este faptul ca ın

literatura ce trateaza acest algoritm nu exista studii cu privire la utilizarea unor alte

metode de codificare a itemilor si de reprezentare a tranzactiilor si a itemseturilor. In

acest context, prima parte a Capitolului 3 este dedicata investigarii unui model de cod-

ificare binara a datelor de lucru pentru algoritmul Apriori. Codificarea propusa a fost

testata atat pentru algoritmul secvential de baza, cat si pentru algoritmul Hash Parti-

tioned Apriori. Cu toate ca rezultatele testelor efectuate pentru cazul secvential infirma

valididatea unei astfel de abodari, testele efectuate pentru algoritmul paralel indica un

potential avantaj. Utilizarea unei codificari binare pentru reprezentarea itemseturilor

si a tranzactiilor slabeste mult conditiile de generare a cheii de dispersie caracteristica.

Astfel, prin utilizarea unei chei de dispersie modulo bitonic s-a obtinut o echilibrare buna

a sarcinilor de lucru repartizate ıntre procese pentru cazul algoritmului Hash Partitioned

Apriori.

S-a constatat ca algoritmii de data recenta destinati determinarii tiparelor frecvente

abandoneaza problema identificarii itemseturilor frecvente pe baza generarii de itemse-

turi candidat. Un exemplu ın acest sens este algoritmul FP-Growth. Acest algoritm

obtine o reducere substantiala a numarului de scanari ale bazei de tranzactii, fapt ce

conduce la obtinerea unor timpi de raspuns foarte buni. Din nou, se observa faptul ca ın

literatura de specialitate nu au fost investigate alte metode de generare a itemseturilor

candidat. In partea a doua a capitolului al 3-lea este propus un nou astfel de algoritm,

denumit Fast Itemset Miner. Acest algoritm este bazat pe faptul ca itemii supusi anal-

izei sunt divizati pe intervale initial disjuncte. Un interval este constituit din cel putin

un item frecvent. In cazul ın care un interval contine mai mult de un item frecvent,

atunci acesta include si toate itemseturile frecvente ce se pot forma din itemii frecventi

inclusi. Candidatii noi sunt generati prin reuniuni conditionate ale itemseturilor frecevnte

ce apartin de aceste intervale. Rezultatele experimentale obtinute indica doua avantaje

majore fata de algoritmul Apriori. Primul este legat de generarea candidatilor : modal-

itatea de generare propusa pentru algoritmul Fast Itemset Miner este mult simplificata

(si, implicit, mult mai putin consumatoare de timp) fata de algoritmul Apriori. O data ce

un candidat a fost generat, nu mai este necesara generarea subseturilor incluse de acesta

si verificarile suplimentare efectuate asupra acestor subseturi. Un al doilea avantaj ma-

jor este reprezentat de faptul ca algoritmul Fast Itemset Miner nu scaneaza niciodata

complet baza de tranzactii ın cadrul etapelor de determinare a suportului candidatilor.

Acest mod de lucru este posibil daca sunt respectate urmatoarele conditii. Multimea

de itemi trebuie sortata descrescator din punct de vedere al suportului fiecarui item

frecvent ın parte. Totodata, similar algoritmului FP-Growth, baza de tranzactii trebuie

sa includa numai combinatii formate din itemi frecventi, combinatii sortate descrescator

conform aceluiasi criteriu. In aceste conditii, determinarea suportului pentru candidatii

inclusi ıntr-un interval se rezuma la scanarea acelor tranzactii care contin cel mai frecvent

item inclus ın intervalul respectiv. Un alt avantaj important al algoritmului Fast Itemset

Miner este dat de faptul ca paralelizarea acestui algoritm este relativ facila. Modalitatile

de generare a candidatilor si de validare a itemseturilor frecvente caracteristice impun un

52

tipar comunicational predefinit, ce poate fi implementat atat prin utilizarea standardului

MPI, cat si prin utilizarea API-ului OpenMP. Mai mult, algoritmul Fast Itemset Miner

paralalel nu implica alterarea modului de determinare a itemseturilor frecvente (acest

caz este ıntalnit ın cadrul algoritmilor bazati pe FP-Growth - un exemplu ın acest sens

fiind algoritmul Multiple Local Frequent Pattern Trees).

Algoritmii data mining destinati problemei clusterizarii datelor au fost, de aseme-

nea, considerati ın cadrul cercetarilor ce au conturat aceasta lucrare. Aceasta clasa de

metode de analiza este recomandata atat de rezultatele directe oferite, cat si de faptul

ca aceleasi rezultate pot fi utilizate pentru diverse optimizari ın cadrul unui domeniu

de analiza complementar - domeniul determinarii regulilor de clasificare. Un exemplu

important ın acest context este dat de motoarele inteligente de cautare a informatiilor pe

Web (motoare de cautare precum Cuil1 sau Yippy2). Exemplul considerat evidentiaza

si una dintre problemele majore ce trebuie rezolvate de catre algoritmii destinati clus-

terizarii datelor. Astfel, aceasta clasa de algoritmi impune atat existenta unor metode de

paralelizare eficiente, cat si o utilizare adecvata a tehnologiilor de implemnetare a acestor

modele paralele pentru a face fata volumului din ce ın ce mai crescut de date (la ultima

accesare, motorul Cuil raporta un volum de 127 de miliarde de pagini indexate). Printre

algoritmiii utilizati ın clusterizarea datelor se numara si algoritmul K-Means Clustering.

Acest algoritm, fundamentat din punct de vedere teoretic ınca din anul 1967, se remarca

printr-o popularitate crescuta datorita simplitatii, scalabilitatii si vitezei de convergenta.

Este un algoritm adaptabil multor tipuri de date ın conditiile ın care metricile uti-

lizate sunt adecvate acestor tipuri de date. Printre cei mai cunoscuti algoritmi paraleli

bazti pe K-Means Clustering se numara si Parallel K-Means, algoritm analizat ın cadrul

capitolului 4. Acest algoritm a fost conceput initial pentru a fi implementat utilizand

standardul MPI si se bazeaza pe divizarea datelor de analizat ıntre procese. Modelul

de paralelizare ın discutie implica utilizarea operatiilor de tip all-reduce specificate de

standardul amintit. Acest fapt atrage dupa sine un potential dezavantaj al algoritmu-

lui Parallel K-Means : eficienta sa este conditionata puternic de eficienta implementarii

MPI utilizate. Abordarea propusa pentru depasirea acestui obstacol vizeaza un aspect

ce pare a fi omis din abordarile curente ale algoritmilor paraleli destinati clusterizarii

datelor : eficienta operatiilor colective de calcul este direct dependenta de topologia de

comunicatie dintre procese. Prin utilizarea topologiei de tip hipercub ın implementarea

primitivei all-reduce s-a obtinut o scadere a timpilor de rulare fata de abordarile clasice.

Un avantaj major al abordarii propuse este faptul ca topologia virtuala ın discutie poate

fi construita indiferent de implementarea standardului MPI utilizata. Eficienta abordarii

propuse nu este ın acest caz dependenta de eficienta implementarilor MPI utilizate.

Dupa cum s-a aratat ın capitolul 1, sistemele Grid ofera atat mecanismele necesare

rularii algoritmilor complecsi de data mining, cat si resursele destinate stocarii volumului

imens de date ce trebuie analizat prin intermediul acestor metode. Considerat de multi

cercetatori un standard pentru acest tip de ,,supercalculatoare” distribuite, middleware-

ul Globus Toolkit marcheaza ın acelasi timp migrarea sistemelor Grid catre arhitecturi

orientate pe servicii. Implementat initial pentru a deservi aplicatii computationale com-

plexe, Globus Toolkit ınglobeaza ın prezent si un set extins de framework-uri destinate

gestiunii datelor. Pe baza acestor caracteristici, Ian Foster (supranumit ,,parintele Grid-

urilor”) propune ınca de la ınceputul anilor 2000 un model de servicii Grid destinate

1http://www.cuil.com/2http://search.yippy.com/

53

domeniului data mining, model alcatuit din doua componente: un serviciu Grid dedicat

accesarii surselor de date si un serviciu Grid dedicat analizei concrete. In capitolul al

6-lea al acestei lucrari este propusa o abordare noua pentru serviciul Grid de analiza.

Aceasta abordare a fost dezvoltata de la premisa reutilizarii aplicatiilor paralele de data

mining (cazul particular rezolvat fiind cel al aplicatiilor LAM/MPI ), reutilizare moti-

vata de faptul ca aplicatiile de analiza existente sunt aplicatii al caror comportament a

fost deja testat si validat. Astfel, serviciul Grid de analiza este tratat ca si componenta

de nivel ınalt ce ıncapsuleaza setul de aplicatii ın discutie. Implementarea serviciului

utilizeaza framework-ul WSRF inclus ın Globus Toolkit 4 si este conforma specificatiilor

OGSA. Pentru rularea efectiva a aplicatiilor ıncapsulate a fost utilizat planificatorul im-

plicit al Globus Toolkit 4 - Fork. Utilizand aceasta abordare, au fost dezvoltate serviciile

de analiza a datelor pentru Grid-ul GRAI 3. Datorita caracterului generic al modelului

propus, acesta a fost utilizat si pentru implementarea sub forma de serviciu Grid a unui

simulator cuantic paralel.

7.2 Contributii

Sintetizand cele prezentate ın subcapitolul 7.1, contributiile principale aduse ın cadrul

acestei lucrari vizeaza urmatoarele domenii:

1. Data mining :

a) Model de codificare a itemilor/itemseturilor pentru abordarile ba-

zate pe algoritmul Apriori: a fost abordata problema codificarii binare

a tranzactiilor si a itemseturilor pentru algoritmul Apriori. Cu toate ca

aceasta codificare nu este eficienta pentru versiunea secventiala a algorit-

mului Apriori, slabeste restrictiile de generare a cheilor de dispersie carac-

teristice algoritmului. Modificarile aduse acestor chei de dispersie pot con-

duce la obtinerea unor rezultate favorabile din punct de vedere al echilibrarii

nodurilor de lucru ın cazul algoritmului paralel Hash Partitioned Apriori

[Archip 07, Amarandei 06].

b) Algoritmul Fast Itemset Miner reprezinta un algoritm nou pentru prob-

lema identificari itemseturilor frecvente [Craus 07c] pentru care au fost aduse

contributii referitoare la generarea itemseturilor candidat si pentru care a fost

dezvoltat un model de paralelizare generalizat [Craus 08b]. Contributiile refer-

itoare la generarea itemseturilor candidat vizeaza simplificarea determinarii

acestora. Pe baza proprietatii de recurenta Apriori, au fost enuntate si demon-

strate lemele 3.4 si 3.7. Au fost eliminate astfel operatiile suplimentare de

validare a unui itemset candidat, fapt ce conduce la un castig considerabil

din punct de vedere al timpului consumant de aceasta etapa. Rezultatele

teoretice ale acestor leme stau la baza metodelor dezvoltate pentru generarea

itemseturilor candidat.

c) Modificari aduse algoritmului Parallel K-Means: a fost abordata prob-

lema topologiilor de comunincatie utilizate pentru implementarile MPI ale

acestui algoritm. Contributiile constau ın adaptarea primitivelor de comu-

nicatie 1-la-toti personalizat si all-reduce peste o topologie de tip hipercub

3http://www.grai.tuiasi.ro/

54

si marginirea corespunzatoare a etapelor de comunicatii colective implicate

de algoritmul Parallel K-Means, independent de implementarea standardului

MPI utilizata [Archip 10].

2. Sisteme Grid

a) Servicii Grid pentru gestiunea aplicatiilor MPI: a fost propus un servi-

ciu Grid capabil sa ıncapsuleze aplicatii MPI dezvoltate utilizand LAM/MPI.

Serviciul Grid a fost dezvoltat pentru middleware-ul GT4 si respecta specifi-

catiile OGSA si WSRF. Serviciul ın discutie joaca rol de componenta de nivel

ınalt, destinata ıncapsularii aplicatiilor LAM/MPI. Un avantaj al abordarii

propuse este acela de a ıngloba si mecanismele de gestiune specifice thread-ului

de control al LAM/MPI. Pentru lansarea si gestionarea aplicatiilor LAM/MPI

a fost utilizat planificatorul predefinit pentru GT4 (planificatorul Fork), fapt

atrage dupa sine un alt potential avantaj al abordarii propuse: nu sunt nece-

sare configurari suplimentare pentru site-urile unui sistem Grid ce ofera astfel

de servicii utilizatorilor autorizati [Archip 08b, Archip 08a].

O parte dintre cercetarile ce au condus la scrierea acestei teze au fost efectuate ın

cadrul proiectului de cercetare Grid academic pentru aplicatii complexe (GRAI).

7.3 Directii viitoare de cercetare

Dupa cum s-a aratat ın Capitolul 3 al acestei teze, algoritmul FIM prezinta cateva

avantaje majore pentru problema determinarii tiparelor frecvente: simplifica generarea

candidatilor, aceasta devenind astfel si mai putin consumatoare de timp, determinarea

suportului candidatilor nu implica scanarea completa a bazei de date si, nu ın ultimul

rand, paralelizarea algoritmului poate fi realizata facil atat pentru modelul de progra-

mare de tip message-passing cat si shared memory. Aceste aspecte sunt ıncurajatoare

pentru continuarea dezvoltarii algoritmului FIM vizand, ın primul rand, testarea com-

pleta a acestuia. Testele efectuate pana ın prezent au vizat ın principal reprezentarea

prin codificare binara a itemseturilor si a tranzactiilor. Se impune ın acest sens un

set de teste ce vor viza alte metode de reprezentare a componentelor ın discutie. Ast-

fel, reprezentarile de tip arbore prefix vor fi printre primele studiate. Analiza acestui

algoritm din punct de vedere al consumului de momorie relativ la variatia limitei de

suport minim (variatie ce determina implicit si variatia numarului de itemseturi candi-

dat/frecvente) este de asemenea importanta pentru a determina daca acest algoritm este

sau nu unul viabil pentru problema determinarii itemseturilor frecvente pentru seturi de

mari dimensiuni. Algoritmul propus este dependent de preprocesarea tranzactiilor origi-

nale ın vederea determinarii itemilor frecventi, sortarea descrescatoare a acestora relativ

la suportul fiecaruia si reorganizarea bazei de tranzactii de analizat. Realizarea eficienta

a acestor operatii de preprocesare poate fi determinanta ın validarea acestui algoritm.

Multe dintre abordarile algoritmilor paraleli destinati data mining nu considera pro-

blematica topologiei de comunicare dintre procese. Unul dintre rezultatele importante

conturate ın cadrul lucrarii de fata indica faptul ca utilizarea unei topologii adecvate

poate contribui la obtinerea unor perfomante crescute. Particularitatile diferitilor algo-

ritmi paraleli dezvolati pentru data mining pot impune astfel diverse topologii virtuale

55

particulare ce pot contribui la obtinerea unei scalabilitati crescute sau la reducerea timpi-

lor de raspuns. Studiul acestor aspecte este de asemenea considerat pentru cercetarile

viitoare.

O provocare reala ın domeniul data mining este reprezentata de automatizarea me-

todelor de analiza specifice. Ar fi de dorit, de exemplu, ca un algoritm de clusterizare sa

identifice automat sau semiautomat si numarul de clustere, fara interventia unui even-

tual expert. Identificarea unor seturi de antrenament adecvate poate contribui mult la

cresterea performantelor unor algoritmi de clasificare. In acest scop se remarca ın ultima

perioada o crestere a abordarilor ce combina diverse metode de clusterizare a datelor cu

algoritmi de clasificare ın vederea cresterii preciziei celor din urma. Un exemplu ın acest

sens provine din domeniul regasirii informatiilor pe Web. Volumul imens de pagini si

documente Web existente la ora actuala face aproape imposibila generarea unui set de

date de antrenament pentru clasificatorii uzuali. S-a observat totusi ca utilizarea tehni-

cilor de clusterizare pentru a obtine o descriere suplimentara asupra datelor de clasificat

poate contribui la generarea unor seturi de antrenament coerente, fapt ce poate conduce

la cresterea acuratetii clasificatorilor uzuali. In acelasi context pot fi investigate si alte

metode de analiza descriptive pentru a identifica setul de atribute dominante sau setul de

valori dominate ce pot caracteriza mai bine clasele rezultat ale unui eventual clasificator.

Pentru abordarea acestei probleme pot fi utilizate, spre exemplu, metodele de identificare

a tiparelor frecvente.

Sistemele Grid au evoluat catre arhitecturi orientate pe servicii. Implementarile

curente ale serviciilor Grid extind serviciile Web de tip SOAP/XML. Pentru a putea

adapta acest tip de servicii specificului sistemelor Grid au fost dezvoltate mecanisme

prin intermediul carora starea unui serviciu este mentinuta extern, fara a afecta car-

acterul tranzitoriu al serviciului. Un serviciu Grid reprezinta astfel asocierea dintre o

interfata de tip serviciu si o resursa Grid. Din acest punct de vedere se poate spune

ca interactiunea cu un serviciu Grid ınseamna ın fapt gestiunea unui set de resurse si a

tranzitiilor acestor resurse ıntre diferitele stari posibile. Considerand aceasta observatie,

se poate spune ca serviciile Grid au un comportament apropiat serviciilor REST (REpre-

sentational State Transfer). Serviciile REST sunt prin definitie fara stare, au un caracter

tranzitoriu si sunt axate pe gestiunea resurselor asupra carora opereaza. Operatiile ce pot

fi realizate asupra acestor resurse sunt creare, citire, modificare sau stergere. Acest tip de

servicii este restrictionat la utilizarea protocolului HTTP si fiecare dintre operatiile am-

intite anterior este implementata prin metodele HTTP corespunzatoare: POST, GET,

PUT si, respectiv, DELETE. O abordare REST pentru preluarea starii unei resurse

Grid, de exemplu, ar fi mult simplificata fata de metodele actuale. Astfel, ,,citirea” unei

resurse Grid poate implica un apel de metoda HTTP GET, caz ın care identificatorul

asociat resursei poate fi un parametru de tip cale sau un parametru de tip query al cererii

HTTP. Diferentierea operatiilor ce pot fi realizate asupra unei resurse Grid la nivel de

metoda HTTP poate constitui un avantaj ın implementarea si monitorizarea politicilor

de securitate ale unui sistem Grid, componenta legata de securitate fiind una dintre com-

ponentele fundamentale ale acestui tip de sisteme de calcul distribuit. In plus, serviciile

REST nu implica aceeasi ıncarcare a container-ului de servicii necesar unui sistem Grid.

Explorarea posibilitatilor de dezvoltare a serviciilor Grid pe baza serviciilor REST va

constitui o directie importanta de cercetare.

56

Bibliografie

[Adamo 00] Jean-Marc Adamo. Data mining for association rules and sequential pat-

terns: Sequential and parallel algorithms. Springer-Verlag, New York,

2000. [citat la p. 1, 11, 13, 19, 20, 23, 24]

[Aflori 05] Cristian Aflori, Mitica Craus, Ioan Sova, Cristian Butincu, Florin Leon

& Cristian Mihai Amarandei. Grid - tehnologii ıi aplicatii. Politehnium,

2005. [citat la p. 42]

[Agrawal 94] Rakesh Agrawal & Ramakrishnan Srikanta. Fast Algorithms for Mining

Association Rules. In Proceedings of the 20th VLDB Conference, 1994.

[citat la p. 5, 10, 11, 13, 18, 19, 23, 24]

[Amarandei 06] C.M. Amarandei, A. Archip & S. (Caraiman) Arustei. Performance

Study for MySQL Database Access within Parallel Applications. Bulet-

inul Institutului Politehnic din Iasi, Automatic Control and Computer

Science Section, vol. LII(LVI), no. 1-4, pages 127–134, 2006. [citat la p. 24,

54]

[Archip 07] A. Archip, C.M. Amarandei, S. (Caraiman) Arustei & M. Craus. Opti-

mizing Association Rule Mining Algorithms using C++ STL Templates.

Buletinul Institutului Politehnic din Iasi, Automatic Control and Com-

puter Science Section, vol. LIII(LVII), no. 1-4, pages 123–132, 2007.

[citat la p. 19, 21, 50, 54]

[Archip 08a] A. Archip, S. (Caraiman) Arustei, C.M. Amarandei & A. Rusan. On

the design of Higher Order Components to integrate MPI applications

in Grid Services. In H.N. Teodorescu & M. Craus, editeurs, Scientific

and Educational Grid Applications, pages 25–35, Iasi, Romania, 2008.

Politehnium. [citat la p. 43, 46, 47, 55]

[Archip 08b] A. Archip, M. Craus & S. Arustei. Efficient grid service design to

integrate parallel applications. In Marten van Sinderen, editeur, Pro-

ceedings of 2nd International Workshop on Architectures, Concepts and

Technologies for Service Oriented Computing held in conjunction with

3rd International Conference on Software and Data Technologies, 5-8

JUL, 2008 Porto PORTUGAL, pages 7–16, Setubal, Portugal, 2008.

INSTICC Press. [citat la p. 43, 46, 47, 48, 50, 55]

57

[Archip 10] A. Archip, V. Manta & G. Danilet. Parallel K-Means Revisited: A

Hypercube Approach. In Proceedings of the 10th International Sympo-

sium on Automatic Control and Computer Science, october 2010. to be

published. [citat la p. 33, 34, 35, 36, 37, 38, 50, 55]

[Arustei 07] S. (Caraiman) Arustei, A. Archip & C.M. Amarandei. Parallel

RANSAC for Plane Detection in Point Clouds. Buletinul Institutului

Politehnic din Iasi, Automatic Control and Computer Science Section,

vol. LIII(LVII), no. 1-4, pages 139–150, 2007. [citat la p. 50]

[Arustei 08] S. Arustei, M. Craus & A. Archip. Towards a generic framework

for deploying applications as grid services. In Marten van Sinderen,

editeur, Proceedings of 2nd International Workshop on Architectures,

Concepts and Technologies for Service Oriented Computing held in con-

junction with 3rd International Conference on Software and Data Tech-

nologies, 5-8 JUL, 2008 Porto PORTUGAL, pages 17–26, Setubal, Por-

tugal, 2008. INSTICC Press. [citat la p. 50]

[Astratiei 10] I. Astratiei & A. Archip. A Case Study on Improving the Performance

of Text Classifiers. In Proceedings of the 10th International Sympo-

sium on Automatic Control and Computer Science, october 2010. to be

published. [citat la p. 15]

[Berkhin 02] Pavel Berkhin. Survey of Clustering Data Mining Techniques. Disponi-

bil online:

http://www.ee.ucr.edu/˜barth/EE242/clustering survey.pdf, 2002.

[citat la p. 15]

[Bote-Lorenzo 03] Miguel L. Bote-Lorenzo, Yannis A. Dimitriadis & Eduardo Gmez-

snchez. Grid Characteristics and Uses: A Grid Definition. In Across

Grids 2003, LNCS 2970, pages 291 – 298, 2003. [citat la p. 4]

[Caraiman 09] S. Caraiman, A. Archip & V. Manta. A Grid Enabled Quantum Com-

puter Simulator. In Proceedings of the 11th International Symposium on

Symbolic and Numeric Algorithms for Scientific Computing (SYNASC

2009). IEEE Computer Society, 2009. [citat la p. 48, 50]

[Craus 05] Mitica Craus, Cristian Butincu, Cristian Alfori, Ioan Sova, Florin Leon

& Augustin-Ionut Gavrila. Regasirea informatiilor pe web. Editura

Politehnium Iasi, 2005. [citat la p. 4]

[Craus 07a] M. Craus, H.N. Teodorescu, C. Croitoru, O. Brudaru, D. Arotaritei,

M. Calin & A. Archip. Academic Grid for Complex Applications -

GRAI. In Proc. of 16th International Conference on Control Systems

and Computer Science. POLITEHNICA University of Bucharest, May

22-25 2007. [citat la p. 50]

[Craus 07b] M. Craus, H.N. Teodorescu, C. Croitoru, O. Brudaru, D. Arotaritei,

M. Calin & A. Archip. The Service Layer of the Academic Grid

GRAI. In Proc. of 16th International Conference on Control Systems

and Computer Science. POLITEHNICA University of Bucharest, May

22-25 2007. [citat la p. 50]

58

[Craus 07c] Mitica Craus. A New Algorithm for Association Rule Discovery. In

Proceedings of the 9th International Symposium on Automatic Control

and Computer Science, 2007. [citat la p. 24, 25, 26, 54]

[Craus 08a] M. Craus & A. Archip. A generalized parallel algorithm for frequent

itemset mining. In ICCOMP’08: Proceedings of the 12th WSEAS in-

ternational conference on Computers, pages 520–523. World Scientific

and Engineering Academy and Society (WSEAS), 2008. [citat la p. 24, 26,

27, 28, 29]

[Craus 08b] Mitica Craus. A new parallel algorithm for the frequent itemset mining

problem. In Proceedings of the 7th International Symposium on Parallel

and Distributed Computing (ISPDC 2008), 2008. [citat la p. 26, 27, 54]

[Dhillon 00] Inderjit Dhillon & Dharmendra Modha. A Data-Clustering Algorithm

On Distributed Memory Multiprocessors. In In Large-Scale Parallel Data

Mining, Lecture Notes in Artificial Intelligence, pages 245 – 260, 2000.

[citat la p. 15, 16, 17, 32, 33]

[Dunnweber 05] J. Dunnweber, A. Benoit, M. Cole, S. Gorlatch, G. R. Joubert, W. E.

Nagel, F. J. Peters, O. Plata, P. Tirado & E. Zapata. Integrating MPI-

Skeletons with Web services. In In Proceedings of the International

Conference on Parallel Computing, Malaga, 2005. [citat la p. 46, 47]

[Fayyad 96] Usama Fayyad, Gregory Piatetsky-shapiro & Padhraic Smyth. From

Data Mining to Knowledge Discovery in Databases. AI Magazine,

vol. 17, pages 37 – 54, 1996. [citat la p. 2, 3]

[Foster 98] Ian Foster & Carl Kesselman. The grid: Blueprint for a new computing

infrastructure. Morgan Kaufmann Inc., San Francisco, California, 1998.

[citat la p. 41]

[Foster 01] Ian Foster, Carl Kesselman & Steven Tuecke. The Anatomy of the

Grid: Enabling Scalable Virtual Organizations. INTERNATIONAL

JOURNAL OF SUPERCOMPUTER APPLICATIONS, vol. 15, 2001.

[citat la p. 4, 5, 41, 42]

[Foster 02a] Ian Foster. What is the grid? - a three point checklist. GRIDToday,

vol. 6, 2002. [citat la p. 41]

[Foster 02b] Ian Foster, Carl Kesselman, J. Nick & Steven Tuecke. Grid Services for

Distributed System Integration. IEEE Computer, vol. 35, no. 6, pages

37 – 46, June 2002. [citat la p. 6, 45, 46, 48]

[Foster 02c] Ian Foster, Carl Kesselman, Jeffrey M. Nick & Steven Tuecke. The

physiology of the grid: An open grid services architecture for distributed

systems integration. 2002. [citat la p. 6]

[Freitas 00] Alex A. Freitas. Understanding the crucial differences between classi-

fication and discovery of association rules: a position paper. SIGKDD

Explor. Newsl., vol. 2, no. 1, pages 65 – 69, 2000. [citat la p. 14]

59

[Grahne 05] Gsta Grahne & Jianfei Zhu. Fast algorithms for frequent itemset min-

ing using FP-trees. IEEE TRANSACTIONS ON KNOWLEDGE AND

DATA ENGINEERING, vol. 17, no. 10, pages 1347 – 1362, 2005.

[citat la p. 11]

[Grama 03] Ananth Grama, Anshul Gupta, George Karypis & Vipin Kumar. Intro-

duction to parallel computing. Addison Wesley, second edition, 2003.

[citat la p. 33, 34, 35, 37]

[Grossman 04] David A. Grossman & Ophir Frieder. Information retrieval - algorithms

and heuristics. The Information Retrieval Series. Springer, second edi-

tion, 2004. [citat la p. 15]

[Han 00] Jiawei Han, Jian Pei & Yiwen Yin. Mining frequent patterns with-

out candidate generation. In SIGMOD 00: Proceedings of the 2000

ACM SIGMOD international conference on Management of data, 2000.

[citat la p. 5, 11, 24]

[Han 06] Jiawei Han & Micheline Kamber. Data mining - concepts and tech-

niques. Morgan Kaufman Publications, 2006. [citat la p. 15, 16, 17]

[Jacob 05] Bart Jacob, Michael Brown, Kentaro Fukui & Nihar Trivedi. Introduc-

tion to grid computing. IBM Redbooks. IBM Corp, first edition, 2005.

[citat la p. 46]

[Joshi 03] Manasi N. Joshi. Parallel K - Means Algorithm on Distributed Memory

Multiprocessors. Rapport technique, Computer Science Department,

University of Minnesota, Twin Cities, 2003. [citat la p. 15, 16, 17, 32, 33]

[Karonis 03] Nicholas T. Karonis, Brian Toonen & Ian Foster. MPICH-G2: a Grid-

enabled implementation of the Message Passing Interface. J. Parallel

Distrib. Comput., vol. 63, no. 5, pages 551 – 563, 2003. [citat la p. 42, 43]

[Kumar 03] Vipin Kumar. High Performance Data Mining. In In Proceedings of

the 17th International Parallel and Distributed Processing Symposium.

IEEE Computer Society, 2003. [citat la p. 11]

[Li 05] Yanjun Li & Soon M. Chung. Text document clustering based on fre-

quent word sequences. In CIKM ’05: Proceedings of the 14th ACM

international conference on Information and knowledge management,

pages 293 – 294. ACM, 2005. [citat la p. 15]

[MacQueen 67] J. B. MacQueen. Some Methods for Classification and Analysis of Mul-

tiVariate Observations. In L. M. Le Cam & J. Neyman, editeurs, Proc.

of the fifth Berkeley Symposium on Mathematical Statistics and Prob-

ability, volume 1, pages 281 – 297. University of California Press, 1967.

[citat la p. 15, 32]

[Shintani 96] Takahiko Shintani & Masaru Kitsuregawa. Hash Based Parallel Algo-

rithms for Mining Association Rules. In Proceedings of the 4th Inter-

national Conference on Parallel and Distributed Information Systems,

1996. [citat la p. 5, 11, 12]

60

[Sotomayor 06] Borja Sotomayor & Lisa Childers. Globus toolkit 4: Programming

java services. Morgan Kaufmann, San Francisco, California, 2006.

[citat la p. 42, 46, 47]

[Stoffle 99] K. Stoffle & A. Belkonience. Parallel k-Means clustering for large

datasets. Proceedings of EuroPar, 1999. [citat la p. 16, 17, 32, 33]

[Tan 05] Pang-Ning Tan, Michael Steinbach & Vipin Kumar. Introduction to

data mining. Addison - Wesley, first edition, 2005. [citat la p. 11, 14, 19, 20,

23, 24]

[Two 05] Two Crows Corporation. Introduction to Data Mining

and Knowledge Discovery, third edition, 2005. Online:

http://www.twocrows.com/intro-dm.pdf. [citat la p. 1, 14]

[Zaiane 01] Osmar R. Zaiane, Mohammad El-hajj & Paul Lu. Fast Parallel Associ-

ation Rule Mining without Candidacy Generation. In In ICDM, pages

665 – 668, 2001. [citat la p. 12]

[Zaki 99] Mohammed J. Zaki. Parallel and Distributed Association Mining: A

Survey. IEEE Concurrency, vol. 7, no. 4, pages 14 – 25, 1999. [citat la p. 10,

11, 12, 20, 24]

61