Parallel and Distributed Association Mining: A Survey Cappellazzo Pietro 809652 Carminati Roberto 814930 Approfondimento per il corso di Calcolo Parallelo.

Slides:



Advertisements
Presentazioni simili
Scheduling (Schedulazione) Susanna Pelagatti – Università di Pisa
Advertisements

Gestione della Memoria
Linguaggi algoritmici
Data Bases Distribuiti Finalità Caratteristiche Struttura Mario Capurso
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
Data warehousing con SQL Server
Algoritmi e Strutture Dati
Scheduling in Linux (Kernel 2.6)
5-1 Protocolli ad accesso multiplo Crediti Parte delle slide seguenti sono adattate dalla versione originale di J.F Kurose and K.W. Ross (© All.
Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa Sistemi di Supporto alle Decisioni I Scelte di consumo Chiara Mocenni Corso di laurea.
Hash Tables Indirizzamento diretto Tabelle Hash Risoluzioni di collisioni Indirizzamento aperto.
Alberi binari di ricerca
Sistemi e Tecnologie della Comunicazione
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Ordinamenti ottimi.
Politecnico di Milano Algoritmi e Architetture per la Protezione dellInformazione Multichannel Adaptive Information Systems Paolo Maistri Dipartimento.
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 29/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Algoritmi Paralleli e Distribuiti a.a. 2008/09
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 05/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 10/03/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
Algoritmi e Strutture Dati (Mod. A)
Algoritmi e Strutture Dati
Disco magnetico (2) Ciascuna traccia è divisa in settori
Heap allocation e garbage collector di Oberon Algoritmo Quick Fit e garbage collector mark and sweep.
Tecniche e algoritmi di base per l’estrazione di conoscenza
Scheduling in GrADS Il progetto GrADS (Grid Application Development Software) ha lo scopo di semplificare lo sviluppo di unapplicazione Grid. Tra le funzionalità
Analisi dei gruppi – Cluster Analisys
Sistemi Operativi SCHEDULING DELLA CPU.
Sistemi Operativi GESTIONE DEI PROCESSI.
Chapter 14, Hastie , Tibshirani and Friedman
Intelligenza Artificiale
Progetto Di Uninfrastruttura Che Permetta La Modifica Di Dati Condivisi Distribuiti Su Più Nodi Reti di calcolatori L-S Gozzi Daniele
Distributed File System Service Dario Agostinone.
Metodo della moltiplicazione
Elementi di Informatica di base
U N INFRASTRUTTURA DI SUPPORTO PER SERVIZI DI FILE HOSTING Matteo Corvaro Matricola Corso di Reti di Calcolatori LS – Prof. A. Corradi A.A.
ACCESS Introduzione Una delle necessità più importanti in informatica è la gestione di grandi quantità di dati. I dati possono essere memorizzati.
Passo 3: calcolo del costo minimo
Towards Robust Indexing for Ranked Queries aa 09/10 Candeloro D. Orlando M. Pedone A. Gruppo 5.
Mining Frequent patterns without Candidate Generation
Reti di calcolatori LS Manni Tiziano  IT e nuovi scenari applicativi …  … portabilità dei dati …  … condivisione dati …  … disponibilità.
Migliorare le prestazioni delle cache
Implementazione di dizionari Problema del dizionario dinamico Scegliere una struttura dati in cui memorizzare dei record con un campo key e alcuni altri.
1 Gestione della Memoria. 2 Idealmente la memoria dovrebbe essere –grande –veloce –non volatile Gerarchia di memorie –Disco: capiente, lento, non volatile.
SCHEDA INFORMATIVA DI UNITÀ. Introduzione Applicazione della gerarchia di memoria –Memoria cache fra la CPU e la memoria centrale Il processore vedrà.
SCHEDA INFORMATIVA DI UNITÀ. Introduzione Applicazione della gerarchia di memoria –Memoria cache fra la CPU e la memoria centrale Il processore vedrà.
Gestione del processore (Scheduler)
Capitolo 9 Il problema della gestione di insiemi disgiunti (Union-find) Algoritmi e Strutture Dati.
Paola Disisto, Erika Griffini, Yris Noriega.  Insieme ordinato di operazioni non ambigue ed effettivamente computabili che, quando eseguito, produce.
Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Politecnico di Milano © 2001/02 - William Fornaciari Sintesi di reti a più.
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 07/04/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
MCSA Mobile Code System Architecture Infrastruttura a supporto della code mobility Pierfrancesco Felicioni Reti di Calcolatori L.S. 2005/2006.
1 Gestione della Memoria Capitolo Introduzione alla gestione della memoria 4.2 Swapping 4.3 Memoria virtuale 4.4 Implementazione 4.5 Algoritmi di.
Voronoi-Based K Nearest Neighbor Search for Spatial Network Databases1 GRUPPO 13: Relatore: Mengoli Dario Mengoli Dario Rovatti Fabrizio Tassoni Davide.
Sistemi basati su conoscenza Metodi di ricerca informata Prof. M.T. PAZIENZA a.a
1 Gestione della Memoria Capitolo Introduzione alla gestione della memoria 4.2 Swapping 4.3 Memoria virtuale 4.4 Implementazione 4.5 Algoritmi di.
Allineamento di sequenze
CURE: AN EFFICIENT CLUSTERING ALGORITHM FOR LARGE DATABASES GRUPPO 12 Filippo Bindi Massimiliano Ceccarini Andrea Giuliodori PRESENTAZIONE Sistemi Informativi.
A.A Roma Tre Università degli studi “Roma Tre” Facoltà di Ingegneria Corso di Laurea in Ingegneria Elettronica Servizi di localizzazione a livello.
Tipo Documento: unità didattica 3 Modulo 7 Compilatore: Supervisore: Data emissione: Release: Indice: A.Scheda informativa B.Introduzione C.Corpo D.Riepilogo.
GLI ALGORITMI DI ORDINAMENTO
Sistemi e Tecnologie Informatiche Complessità di calcolo.
Algoritmi e Strutture Dati HeapSort. Select Sort: intuizioni L’algoritmo Select-Sort  scandisce tutti gli elementi dell’array a partire dall’ultimo elemento.
Le basi di dati.
Cenni di Crittografia Luigi Vetrano TechnoLabs S.p.A. L’Aquila, Aprile 2011.
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi Simulazione di lettura e scrittura concorrente Tecnica dell’accelerated cascading Lezione.
DDBMS Distributed database system. DDB Una base di dati distribuita è una collezione di dati che appartengono logicamente allo stesso sistema informativo.
Algoritmi Avanzati a.a.2013/2014 Prof.ssa Rossella Petreschi Albero ricoprente di costo minimo Lezione n°12.
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi Algoritmi distribuiti Lezione n°9.
Lezione n. Parole chiave: Corso di Laurea: Insegnamento: Docente: A.A Salvatore Cuomo La ricorsione 15 Approccio ricorsivo, esercizi sulla.
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi Lezione n°9.
Transcript della presentazione:

Parallel and Distributed Association Mining: A Survey Cappellazzo Pietro Carminati Roberto Approfondimento per il corso di Calcolo Parallelo A.A Docente: Orlando Salvatore

OBBIETTIVO: estrarre informazioni utili da una grande mole di dati Una delle attività più importanti di questo processo è l ARM: associaton rule mining che consiste nellidentificare frequenze, collegamenti, correlazioni, causalità tra insieme di item in database transazionali. Introduzione: Cosè il Data Mining

Regole Associative Scopo dellARM: trovare tutte le regole che correlano la presenza di un insieme di articoli con quello di un altro insieme di articoli Dati: D un database di transazioni I un insieme di item distinti T una transazione ( T I ) Una regola associativa ha la forma A B dove: A I, B I, AB=ø

Regole Associative ESEMPIO: gli acquisti fatti da vari clienti sono memorizzati come transazione nel database di un negozio. Esempio di regola associativa: Diaper Beer

Misure associate alle regole Dato un database di transazioni e una regola associativa X Z, si definisce: Supporto: la probabilità che una transazione del database contenga sia X che Z: Sup (X Z ) = Probabilità(X Z ) Confidenza: la probabilità condizionale che una transazione che include X contenga anche Z: Conf (X Z ) = Probabilità(Z | X )

ESEMPIO: Dove σ(x) è il numero di transazioni nel database che contengono X. Misure associate alle regole

Frequent Itemset Un passo chiave dellassociation mining consiste nel trovare gli insiemi frequenti: Frequent Itemset: insieme di item che hanno supporto maggiore di una soglia prefissata: min_sup. Se {AB} è un frequent itemset allora sia A che B sono frequenti. Sia I un Itemset, se un sottoinsieme di I non è frequente allora neanche I lo è.

Ricercare i frequent itemset Lalgoritmo sequenziale più diffuso è Apriori basato sulle proprietà dei frequent itemset, in particolare: Ogni sottoinsieme di un itemset frequente deve essere frequente. Fasi Principali: 1. Ricerca di tutti i frequent itemset L i dove i indica la dimensione. 2. Generazione delle regole associative dai precedenti L i.

Algoritmo Apriori Processo iterativo partendo da candidati C k ottiene i relativi Frequent itemset L k : 1)GenStep: Generazione di candidati C k+1 da L k, facendo il join di L k con se stesso e prendendo solo gli itemset di lunghezza k+1, che contengono item distinti. 2)Per ogni transazione T del database si incrementa il contatore di tutti i candidati contenuti. 3)PruneStep: Vengono selezionati solo i candidati frequenti. In Output Apriori restituisce I frequent itemset F k trovati (singoli o a coppie, triple,...)

Algoritmo Apriori ESEMPIO: (min_sup=2)

Algoritmo Apriori Possibili soluzioni: Velocizzare la ricerca dei candidati memorizzandoli in Hash Tree Applico una funzione hash sul valore degli item. Nodi foglia contengono una lista di itemset. Funzione di subsetting per trovare i candidati contenuti in una transazione visitando lhash tree. ECCESSIVI ACCESSI AL DATABASE Problemi: Contare i candidati può essere problematico: Numero di candidati potrebbe essere enorme. Una transazione può contenere molti candidati.

Algoritmi Paralleli Ulteriori Problemi: Numero di transizioni in un dataset molto grande. Per valori piccoli di supporto minimo si ottengono molti candidati. Soluzione: Per migliorare le prestazioni si possono utilizzare varianti dellalgoritmo Apriori che sfruttano le computazioni in parallelo.

Benefici e obbiettivi degli algoritmi paralleli Benefici: Scalabilità in rapporto alla dimensione dei dati. Miglioramento del tempo di risposta del sistema. Obbiettivi: Minimizzare comunicazioni e sincronizzazioni. Bilanciamento del carico. Trovare la giusta decomposizione dei dati. Minimizzare laccesso I/O.

Algoritmi Paralleli La maggior parte degli algoritmi attuali (ARM parallel) sfruttano queste caratteristiche: Bilanciamento del carico statico Avviene in modo statico perché si partiziona allinizio il database fra i nodi disponibili. Memoria distribuita Per la scalabilità del sistema, altrimenti limitata dal bus. Data Parallelism/Task Parallelism/Hybrid Parallelism

Data parallelism vs Task parallelism Data Parallelism Il database è partizionato fra i processori disponibili. Task Parallelism I processori eseguono calcoli indipendenti. Hanno bisogno di accedere a tutto il database. Hybrid Parallelism Combina data e task parallelism.

Distributed Memory ARM Per accedere alle altre memorie presenti nel sistema è necessario utilizzare Message Passing Scalabilità a scapito della facilità di programmazione

Count Distribution (Data Parallelism) È una semplice parallelizzazione di Apriori dove: Il database viene partizionato in base ai P processori disponibili. Tutti i processori possiedono lintero hash tree dei candidati. Ogni processore così può aumentare i contatori in base alla sua partizione locale del database. Avviene la riduzione globale scambiando i contatori locali con tutti i processori.

Count Distribution - Algoritmo - Nel primo passo (K=1) P i dinamicamente genera il proprio candidate itemset C i 1,dai valori presenti nella partizione di database locale D i. Nei passi successivi (k>1) 1.Ogni processore P i genera il C k completo usando L k-1 (il frequent itemset precedentemente calcolato). 2.Ogni P i conta i candidati presenti in C k utilizzando la propria parte di Database. 3.Ogni P i scambia i contatori locali con tutti gli altri processori, in questo step viene forzata la sincronizzazione, si genera quindi il C k globale. 4.Ogni processore P i compie la fase di pruning e genera L k.

Count Distribution Il database viene partizionato. Si effettua il conteggio (Parziale). Ci si scambiano i contatori. Si eseguono le fasi di pruning e join.

Count Distribution Miglioramenti rispetto alla soluzione sequenziale: Tempo per transazione invariato rispetto allalgoritmo sequenziale. Ogni processore lavora su N/p transazioni (N transazioni totali, p processori). Tempo totale diminuisce di un fattore pari a p. Problemi: Non vengono partizionati i candidati. Bassa scalabilità allaumentare degli items. Non si sfrutta efficacemente la memoria aggregata.

Data Distribution (Task Parallelism) Viene sfruttata tutta la memoria aggregata del sistema: Si partiziona sia il database che linsieme dei candidati in modalità round robin. Ogni processore deve poter accedere a tutto il database (sia partizione locale che partizioni remote) in tutte le iterazioni (Data Broadcast). Overhead di comunicazioni elevato

Data Distribution - Algoritmo - Nel primo passo (K=1)come in Count Distribution: P i dinamicamente genera il proprio candidate itemset C i 1,dai valori presenti nella partizione di database locale D i. Nei passi successivi (k>1) 1.Ogni processore P i genera il C k usando L k-1 (il frequent itemset precedentemente calcolato). Ogni processore P i manterrà solo N/P itemset che formano linsieme C k, questo sarà chiamato C i k. La scelta di quali itemset mantenere avviene in maniera roud robin. Lunione di tutti i C i k darà C k. 2.Ogni P i conta i candidati presenti in C i k utilizzando la propria parte di Database e quella ottenuta dagli altri. 3.Ogni P i calcolerà il propriol L i k usando il C i k locale. Lunione di tutti gli L i k darà L k. 4.Ogni processore P i scambia il proprio L i k con ogni altro processore per determinare L k globale e poter procedere con il prossimo passo. In questo step è richiesta la sincronizzazione di tutti i processori.

Data Distribution Ogni processo per effettuare il conteggio della propria partizione di canditati ha bisogno di leggere sia le informazioni locali che quelle remote. Al termine di ogni step è necessaria una sincronizzazione per determinare il frequent itemset globale.

Data Distribution MIGLIORAMENTI RISPETTO APRIORI SEQUENZIALE: Il numero dei candidati per processore viene ridotto di un fattore P. Numero medio dei nodi foglia in un hash tree locale viene ridotto in base al numero di processori. Riduzione del tempo di transazione di un fattore pari a P. MIGLIORAMENTO RISPETTO A COUNT DISTRIBUTION: Sfruttamento della memoria aggregata. Riduzione del tempo di transazione. PROBLEMI: Questo algoritmo soffre delloverhead di comunicazioni che genera e ha nella pratica prestazioni inferiori rispetto a Count Distribution.

Candidate Distribution (Task Parallelism) I precedenti algoritmi hanno bisogno di una sincronizzazione al termine di ogni iterazione, questo può comportare uno sbilanciamento del carico. Per evitare questo lalgoritmo Candidate Distribution, tramite un euristica basata sul supporto, partiziona candidati, in modo che il carico sia bilanciato. Contemporaneamente il database viene replicato selettivamente, ogni processore può quindi continuare a lavorare in modo indipendente.

Candidate Distribution Prima di iniziare lalgoritmo vero e proprio viene determinato un passo l, in modo euristico, dal quale tutti i processori lavoreranno in modo indipendente. Alla fine di ogni passo ogni processore invia i risultati ottenuti in modo asincrono. Se questi vengono ricevuti dagli altri in tempo vengono utilizzati, altrimenti saranno utilizzati nei passi successivi.

Candidate Distribution - Algoritmo - Nei passi iniziali (K<l)viene utilizzato Count oppure Data Distribution. Nel passo (k=l) 1.L k-1 viene partizionato fra tutti gli N processori in modo che siano well balanced. 2.P i genera C i k utilizzando solamente la propria parte di L k-1. 3.Ogni P i determinerà quindi il conteggio globale per C i k.Per fare questo contemporaneamente al conteggio il database D i sarà ridistribuito. 4.Ogni processore P i scambia il prorio L i k con ogni altro processore in modo asincrono, necessari per poter formare linsieme C i k+1.

Candidate Distribution - Algoritmo - Nei passi successivi (k>l) 1.Ogni processore P i colleziona tutti i frequent itemset ricevuti dagli altri e li utilizza nella fase di prunig (non è necessario attendere tutti i risultati). Questa fase determina anche il bilanciamento del carico: ai processori che hanno inviato prima i risultati vengono affidati più candidati. 2.Ogni P i determinerà quindi C i k utilizzando L i k-1 locale. 3.Ogni P i a questo punto effettuerà il conteggio utilizzando il proprio D i e determinerà L i k locale, inviandolo in modo asincrono a tutti i processori. PROBLEMI: La ridistribuzione del database è un operazione molto costosa, questo fa sì che le prestazioni siano peggiori di quelle date da Count Distribution..

Confronto delle prestazioni fra Count/Data/Candidate Distribution D: Numero medio di transazioni. I: Dimensione media del frequent itemset. T: Lunghezza media delle transazioni. Response Time

Approcci simili Sono state implementati, indipendentemente dagli algoritmi presentati, alcuni algoritmi molto simili di cui diamo solo una breve introduzione: Non Partitioned Apriori (NPA) Essenzialmente uguale a Count Distribution. Unica differenza la riduzione finale avviene su un processore master. Simply Partitioned Apriori (SPA) Corrisponde esattamente a Data Distribution. Hash Partitioned Apriori (HPA) Simile a Candidate Distribution. Differenza il database non viene replicato selettivamente, ad ogni passo i candidati C vengono generati e inviati ai processori secondo una funzione hash. E difficile che ogni processore riceva un numero uguale di candidati, inoltre il volume di comunicazione è molto maggiore di DD.

Ottimizzazioni Consideriamo ora alcune varianti dellalgoritmo Data Distribution visto in precedenza, che ne ottimizzano la scalabilità e ne riducono le comunicazioni: Data Distribution Intelligent Data Distribution Hybrid Distribution Count Distribution

Intelligent Data Distribution Lidea è quella di ridurre le comunicazioni eseguite da Data Distribution (All to All broadcast): Ogni processore invia dati a quello di destra e riceve da quello di sinistra (Ring Based all-to-all broadcast). Partizionamento intelligente dei candidati basato sul prefisso degli itemset (primo elemento). Ogni processore ha una bitmap (bitmask) che tiene traccia dei candidati locali. Pruning iniziale grazie alla bitmask. Una transazione viene analizzata solo se contiene item rilevanti (con un certo prefisso). Ogni processore ha un fattore P di candidati.

Intelligent Data Distribution

Miglioramenti rispetto a DD : Ridotto il lavoro ridondante. Se numero totale dei candidati è sotto una certa soglia (= sta in memoria) si comporta come Count Distribution. Buon bilanciamento del carico.

Hybrid Distribution Combina Count Distribution e Intelligent Data Distribution Processori vengono partizionati in gruppi (superprocessore). La Count Distribution è usata dai superprocessori. LIntelligent Data Distribution è invece utilizzata allinterno dei superprocessori (tra i processori). Inoltre il numero di superprocessori è modificato dinamicamente ad ogni passo.

Hybrid Distribution

Vantaggi: Le comunicazioni sono ridotte di 1/G (dove G è il numero di superprocessori). Load balancing specialmente nelle ultime iterazioni. Prestazioni simili a IDD, ma molto più scalabile.

Confronto delle prestazioni fra CD DD IDD HD - Scalabilità -

Confronto delle prestazioni fra CD IDD HD – Aumento dei dati-

Confronto delle prestazioni fra CD IDD HD

Altre Soluzioni PDM Formulazione parallela basata su hashing dellalgoritmo DHP (Direct Hashing and Pruning), una forma di Apriori che utilizza una tecnica di hashing per filtrare itemset e che riduce ad ogni passo il size del db delle transazioni (più efficiente nel generare candidati). Fast Distributed Mining (FDM) Ottimizzato per lambiente distribuito (comunicazioni molto più lente). Si basa su Count Distribution. Propone nuove tecniche per ridurre il numero di candidati MINORI COMUNICAZIONI. Fast Parallel Mining Versione parallela di FDM.

Shared Memory ARM Questi algoritmi non hanno avuto una grande attenzione nella letteratura ARM, ma ultimamente con lavvento di multiprocessori desktop stanno diventando sempre più importanti. Processori condividono la memoria di sistema, gli accessi sono diretti e omogenei Facilità di programmazione a scapito della scalabilità limitata dal Bus

CCPD e PCCD CCPD (Common Candidate Partitioned Database): Basato su Apriori usa un approccio di tipo Data Parallel. Il Database viene diviso in parti di dimensioni uguali su ogni processore. Viene parallelizzata la fase di generazione dellhash tree contenente i candidati, che viene condiviso (utilizzando dei lock). PCCD (Partitioned Candidate Common Database): Simile a CCPD ma con approccio Task parallel. Lalbero dei candidati viene costruito in modo separato da ogni processore. Ogni processore per ottenere il supporto del proprio insieme di candidati deve scansionare lintero DBgravi problemi di overhead.

ALTA DIMENSIONALITÁ I metodi visti possono trattare poche migliaia di item o di dimensioni ridotte perché non può essere ridotta la complessità quadratica della seconda iterazione (conteggio della frequenza di 2-itemset). Possibili soluzioni: metodo che enumera solo pattern massimali, utilizzo di pruning hash-based. DIMENSIONE DEL DATABASE Possono essere trattati dati solo nellordine di decine di GB. Impossibile trovare tutti gli itemset frequenti in un solo passo. I candidati non possono stare in memoria. Possibile soluzione: tecniche di parallel-join. DISTRIBUZIONE LOGICA E FISICA DEI DATI La maggior parte degli algoritmi trattano partizionamento orizzontale dei database distribuiti (ogni sito ha diverse transazioni) e non verticale (ogni sito ha diversi item). Problemi Aperti

ASIMMETRIA DEI DATI La maggior parte degli algoritmi ha bisogno di asimmetria dei dati. È necessaria simmetria per applicare il pruning globale. BILANCIAMENTO DEL CARICO DINAMICO Tutti gli algoritmi esistenti utilizzano bilanciamento statico, basato su iniziale scomposizione dei dati. Assumono un ambiente dedicato e omogeneo poco reale. SCOPERTE DELLE REGOLE ASSOCIATIVE Ci si concentra sulla scoperta di (pochi) itemset frequenti. Assunzione errata: in realtà possono essere milioni. Necessario prestare attenzione al processo di generazione delle regole. GENERALIZZAZIONE DI REGOLE ASSOCIATIVE Quantitative association mining. Multiple-level mining. Problemi Aperti

Bibliografia M.J. Zaki. Parallel and Distributed Association Mining: A survey. IEEE Concurrency, Vol. 7, no. 4, 1999.Parallel and Distributed Association Mining: A survey E. Han, G. Karypis, and V. Kumar. Scalable Parallel Data Mining for Association Rules. IEEE Transactions on Knowledge and Data Engineering Vol. 12, n. 3, 2000.Scalable Parallel Data Mining for Association Rules. R. Agrawal and J. Shafer. Parallel mining of association rules. IEEE Trans. on Knowledge and Data Engg., 8(6): , December Parallel mining of association rules. S. Orlando Association mining slide per il corso Data Minig. Università Ca Foscari Venezia.