Angelos kaltsikis

19
Παράλληλη υλοποίηση του αλγορίθμου MCL με χρήση πόρων του Cloud Επιβλέπων καθηγητής : Περικλής Α Μήτκας Άγγελος Καλτσίκης 1 16/03/2017

Transcript of Angelos kaltsikis

Page 1: Angelos kaltsikis

1

Παράλληλη υλοποίηση του αλγορίθμου MCL με χρήση πόρων του Cloud

Επιβλέπων καθηγητής : Περικλής Α Μήτκας Άγγελος Καλτσίκης

16/03/2017

Page 2: Angelos kaltsikis

2Δομή παρουσίασης

Στόχος της διπλωματικής Θεωρητικό υπόβαθρο Μεθοδολογία και πολυπλοκότητα προγράμματος Αποτελέσματα Συμπεράσματα Μελλοντικές επεκτάσεις

19 Διαφάνειες

16/03/2017

Page 3: Angelos kaltsikis

3Στόχος της εργασίας

Ανάπτυξη ενός προγράμματος που θα υλοποιεί τον Markov Cluster Algorithm (MCL) σε κατανεμημένο περιβάλλον. Cloud vs. Grid?

Cloud επειδή επιτρέπει εύκολη προσαρμογή των υπολογιστικών πόρων

Το πρόγραμμα: θα εκτελεί την ομαδοποίηση των στοιχείων σε οσοδήποτε μεγάλο όγκο δεδομένων θα παρέχει αποτελέσματα σε κατανοητή και βολική μορφή για το χρήστη θα έχει φιλική διεπαφή θα μειώσει το συνολικό χρόνο εκτέλεσης της ομαδοποίησης μεγάλων σετ δεδομένων

16/03/2017

Page 4: Angelos kaltsikis

4Θεωρητικό Υπόβαθρο

Τι είναι το clustering (ομαδοποίηση); Clustering είναι η μέθοδος με την οποία τα αντικείμενα ενός συνόλου

δεδομένων οργανώνονται σε ομάδες ανάλογα με το βαθμό ομοιότητας τους

Γιατί η ομαδοποίηση πρωτεϊνών είναι σημαντική για τη Βιοπληροφορική; Πρωτεΐνες με άγνωστη λειτουργία συσχετίζονται με πρωτεΐνες με

γνωστές ιδιότητες και λειτουργία Γιατί πρέπει το πρόγραμμα να εκτελείται σε κατανεμημένο

περιβάλλον; Η Βιοπληροφορική είναι πλέον ένα Big Data Domain Ρυθμοί αύξησης των δεδομένων >> Ρυθμοί αύξησης της υπολογιστικής

ισχύος 16/03/2017

Page 5: Angelos kaltsikis

5Δυνατότητες MPI/OpenMP Apache

HadoopApache Spark

CUDA

Ανεξάρτητο από ειδικό Hardware

✔ ✔ ✔ ✘

Υποστήριξη Big Data

✔ ✔ ✔ ✘

Αξιοποίηση Μεγέθους

Σύγχρονων Σκληρών Δίσκων

✔ ✔ ✔ ✘

Αξιοποίηση Ταχύτητας

Σύγχρονων Μνημών RAM

✔ ✘ ✔ ✔

Διανεμημένο Σύστημα

Αποθήκευσης Αρχείων

✘ ✔ ✔ (HDFS) ✘

Απόδοση(το 1 είναι το πιο

γρήγορο σύστημα)

2 4 3 1

Έλεγχός Υποδομής σε Διανεμημένα

Συστήματα

✘ ✔ ✔ ✘

Αντιμετώπιση σφαλμάτων

(σε κόμβους ή αντιγραφή δεδομένων)

✘ ✔ ✔ ✘

Distributed Computing Frameworks

APACHE SPARK IT IS!

16/03/2017

Page 6: Angelos kaltsikis

6Markov Cluster Algorithm (MCL)

16/03/2017

Page 7: Angelos kaltsikis

7Regularized MCL

16/03/2017

Page 8: Angelos kaltsikis

8Περιγραφή υλοποιήσεων

MCL Η υλοποίηση του αλγορίθμου έγινε σε SCALA με τη χρήση του API και των δομών δεδομένων

του Apache Spark Εισήχθη μια απλοϊκή (naïve) συνάρτηση για την εκμετάλλευση του αραιού χαρακτήρα

πινάκων στο διανεμημένο πολλαπλασιασμό πινάκων R-MCL

Η υλοποίηση του αλγορίθμου έγινε σε Python με τη χρήση του API του Apache Spark Για την υλοποίηση του αλγορίθμου χρησιμοποιήθηκαν οι εξής βιβλιοθήκες:

1. SciPy2. Pandas3. NetworkX

16/03/2017

Page 9: Angelos kaltsikis

9 Χρησιμοποιώντας το Apache Spark στο μέγιστο

• Αλλαγή σειράς πράξεων• Έλεγχος σύγκλισης μετά την 5η επανάληψη• Αλλαγή Blocksize και Partitionsize

Στο κύριο επαναληπτικό κομμάτι του αυθεντικού MCL τα βήματα είναι:EXPAND → INFLATΙΟΝ → NORMALIZATION → PRUNING → NORMALIZATION

Προτεινόμενο κύριο επαναληπτικό κομμάτι του τροποποιημένου MCL:EXPAND → PRUNING → INFLATION → NORMALIZATION 16/03/2017

Page 10: Angelos kaltsikis

10Πολυπλοκότητα

• Ο MCL χωρίς τροποποιήσεις απαιτεί:

• Υλοποίηση MCL σε SCALA για την παρούσα διπλωματική εργασία:

• Υλοποίηση R-MCL σε Python για την παρούσα διπλωματική εργασία:

ΌπουΠίνακας εισόδου διαστάσεων NxNΝ: αριθμός γραμμών πίνακα εισόδου

a: πυκνότητα πίνακα που προκύπτει σε κάθε επανάληψη

t: πυκνότητα πίνακα που προκύπτει σε κάθε επανάληψηs: πυκνότητα αρχικού στοχαστικού πίνακα

Πυκνότητα Πί 𝜈𝛼𝜅𝛼=𝛼𝜌𝜄𝜃𝜇ό 𝜍𝜇𝜂𝜇𝜂𝛿𝜀𝜈𝜄𝜅ώ𝜈𝜎𝜏𝜊𝜄𝜒 𝜀 ί𝜔𝜈

(𝛼𝜌𝜄𝜃𝜇 ό𝜍𝛾𝜌𝛼𝜇𝜇ώ𝜈∗𝛼𝜌𝜄𝜃𝜇 ό𝜍 𝜎𝜏𝜂𝜆ώ𝜈 )(Η Πυκνότητα στην περίπτωση μας παίρνει τιμές <<1)

16/03/2017

Page 11: Angelos kaltsikis

11Περιγραφή Datasets και αποτελεσμάτων clustering του MCL με SCALA MCL

2ο Dataset:

1ο Dataset:

3ο Dataset:

Πειράματα με πραγματικά δεδομένα

SampleData 3ο Dataset 2ο DatasetΟμάδες Αυθεντικού MCL (OG)

2,248 25,354 57,570

Ομάδες SCALA MCL (MOD) 2,394 27,959 65,703

SampleData:Αριθμός cluster που προκύπτουν σε διάφορα datasets από τον αυθεντικό MCL και τον MCL SCALA

16/03/2017

Normal File Size: 722.9KBNNZ: 16,466Matrix Dimensions: 3,7752

Normal File Size: 8.3GBNNZ: 142,298,957Matrix Dimensions: 1,908,1422

Normal File Size: 1.7GBNNZ: 29,425,239Matrix Dimensions: 357,8742

Normal File Size: 948.8MBNNZ: 16,424,393Matrix Dimensions: 186,1902

Page 12: Angelos kaltsikis

12 Επαλήθευση αποτελεσμάτων clustering του MCL SCALA  SampleData 3ο Dataset 2ο Dataset

Αριθμός ίδιων cluster αναμεσά στις δυο υλοποιήσεις

2,120 23,380 51,477

Αριθμός στοιχείων που περιέχουν τα ίδια cluster

3,216 104,442 167,968

Αριθμός Singletons σε OG / MOD / κοινά σε OG & MOD

1,672/1,837/1,672

15,599/17,337/15,598

34,278/39,760/34,271

Αριθμός cluster που δεν είναι ίδια σε OG / MOD

128/274 1,974/4,579 6,093/14,226

Αριθμός cluster του OG που μπορούν να δημιουργηθούν με τον αριθμό singletons του MOD

48/165 99/1,739 233/5,489

Μέσος αριθμός singletons που συνδυάστηκαν και ο αριθμός των στοιχείων που απομένουν

3.4375/394 17.5656/80,009 23.5579/184,417

Αριθμός cluster του OG που μπορούν να αναδημιουργηθούν ακριβώς χρησιμοποιώντας cluster του MOD (OG/MOD)

36/54 547/1,330 1,494/4,003

Αριθμός των cluster του OG που δεν μπορούν να αναδημιουργηθούν ακριβώς με τα cluster του MOD και ο αριθμός των στοιχείων που περιέχουν αυτά.

44/55/249 1,328/1,510/66,090 4,366/4,734/155,397

Ποσοστό επιτυχίας σχεδιασμού των cluster του OG που δεν μπορούν να δημιουργηθούν ακριβώς με τα cluster που έχουν μείνει στο MOD

98.80% 84.90% 82.08%

Συνολικό ποσοστό στοιχείων που βρίσκονται στα σωστά cluster

99.92% 94.64% 92.22%

16/03/2017

Page 13: Angelos kaltsikis

13Αποτελέσματα

0200400600800

100012001400 1289

843653 713

825

3ο Dataset

Hardware Configurations

seco

nds 0

500

1000

1500

2000

25002166

13281019 1107 1247

2ο Dataset

12 CPU Cores - 2 Executors24 CPU Cores - 4 Executors30 CPU Cores - 5 Executors60 CPU Cores - 10 Executors32 CPU Cores - 4 Executors - Different Settings

Hardware Configurations

seco

nds

0100002000030000400005000060000700008000090000

10000012 CPU Cores -

2 Executors; 88357

30 CPU Cores - 5 Executors;

1537260 CPU Cores - 10 Executors;

8141

1ο Dataset

Hardware Configurations

seco

nds

Συνολικός χρόνος εκτέλεσης (seconds) του MCL SCALA για κάθε Hardware Configuration σε κάθε Dataset.

16/03/2017

Page 14: Angelos kaltsikis

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 271

10

100

10003ο Dataset

Iterations

seco

nds

0 1 2 3 4 5 6 7 8 9 1011121314151617181920212223242526271

10

100

1000

10000

2ο Dataset

12 CPU Cores - 2 Executors24 CPU Cores - 4 Executors30 CPU Cores - 5 Executors60 CPU Cores - 10 Executors32 CPU Cores - 4 Executors - Different Settings

Iterations

seco

nds

0 1 2 3 4 5 6 7 8 9 1011121314151617202125262728293031323310

100

1000

10000

100000

1ο Dataset

Iterations

seco

nds

14

Σύγκριση χρόνου εκτέλεσης κάθε επανάληψης του MCL SCALA για κάθε Hardware Configuration σε κάθε Dataset.

Λογαριθμική κλίμακα με βάση το 10 16/03/2017

Page 15: Angelos kaltsikis

15Σύγκριση μετρήσεων R-MCL Python, MCL SCALA και Original MCL

16/03/2017

Dataset R-MCL Python

MCL SCALA

Original MCL

2nd 48,121 65,703 57,5703rd 22,314 27,959 25,354

Dataset R-MCL Python MCL SCALA

2nd 307.23 653.94

3rd 609.75 1,019.75

Αριθμός cluster που προκύπτουν από κάθε αλγόριθμο

Χρόνος εκτέλεσης σε seconds του R-MCL & MCL SCALA

O R-MCL Python δημιουργεί τα λιγότερα cluster

O R-MCL Python είναι πιο γρήγορος από τον MCL SCALA

Σύμφωνα με θεωρία: O R-MCL δημιουργεί ποιοτικότερα cluster

Page 16: Angelos kaltsikis

16

HWC1 HWC2 HWC3 HWC4 HWC5Matrix-100000-0.0001

0.107497

0.14015556

0.14676667 0.354884

0.1543694

Matrix-100000-0.001

0.608685

0.68491111

0.68464667 0.879939

0.6558222

Matrix-1000000-0.00001 1.206065

1.10570833

0.9896833 1.385358

1.7456638

3rd Dataset 0.255652

0.27865833

0.25902333 0.518509

0.2727083

2nd Dataset 0.42959

0.43897778

0.4042033 0.805035

0.4122027

1st Dataset17.52414

-6.09756

5.920316

-

Συνολικό κόστος ($) για την ομαδοποίηση κάθε Dataset για κάθε Hardware Configuration

Τα Hardware Configurations (HWC) αντιστοιχούν στους παρακάτω υπολογιστικούς πόρους:1. 20 CPU πυρήνες – 48 GB RAM – 480 GB SSD2. 36 CPU πυρήνες – 80 GB RAM – 800 GB SSD3. 44 CPU πυρήνες – 96 GB RAM – 960 GB SSD4. 84 CPU πυρήνες – 176 GB RAM – 1.76 TB SSD5. 40 CPU πυρήνες – 80 GB RAM – 800 GB SSD

HWC1

HWC2

HWC3

HWC4

HWC5

Cost ($) Per Hour

0.714 1.19 1.428 2.618 1.19

Κόστος ενοικίασης ($) κάθε Hardware Configuration ανά ώρα

Τα resources ενοικιάστηκαν από την

16/03/2017

Γιατί όχι ; Κομβόι με μνήμη RAM ≤ 8GB Πολύ αργοί υπολογιστικοί

πυρήνες

Page 17: Angelos kaltsikis

17Συμπεράσματα

Η προσφορά αυτής της διπλωματικής είναι η Distributed computing και horizontally scalable υλοποίηση του αλγορίθμου MCL

Το πρόγραμμα λειτουργεί για οσοδήποτε μεγάλο γράφο εισόδου

Ο χρόνος εκτέλεσης του προγράμματος επηρεάζεται από το μέγεθος του γράφου εισόδου και από τους διαθέσιμους υπολογιστικούς πόρους

Πιο φθηνή λύση ανά ώρα ≠ πιο συμφέρουσα λύση

16/03/2017

Page 18: Angelos kaltsikis

18Μελλοντικές Επεκτάσεις

¤ Εγγενής υποστήριξη διανεμημένου πολλαπλασιασμού πινάκων από το Apache Spark που να εκμεταλλεύεται τις ιδιότητες των αραιών πινάκων

► Καλύτερη εκμετάλλευση της τοπικότητας των δεδομένων στις συναρτήσεων Normalize, Pruning και Inflation

► Αυτόματη ρύθμιση των παραμέτρων εισόδου μέσω τεχνικής βελτιστοποίησης υπερπαραμέτρων με τη χρήση είτε γενετικών αλγορίθμων είτε Particle Swarm Optimization αλγορίθμων

► Αυτόματη ρύθμιση των διαθέσιμων υπολογιστικών πόρων ανάλογα με το εκάστοτε πρόβλημα

► Δυναμική αλλαγή των διαθέσιμων υπολογιστικών πόρων ανάλογα με το ποσό απαιτητικό είναι το σημείο του προγράμματος που εκτελείται

Ανανέωση της υλοποίησης για τη σωστή λειτουργία σε Spark 2.x 16/03/2017

Page 19: Angelos kaltsikis

Τέλος

Ευχαριστώ θερμά:

τον καθηγητή Περικλή Α. Μήτκα τον μεταδιδακτορικό ερευνητή Φώτη Ε. Ψωμόπουλο τον υποψήφιο διδάκτορα Αθανάσιο Κιντσάκη τον Ohad Raviv και Joan André τους καθηγητές Ανδρέα Συμεωνίδη και Αναστάσιο Ντελόπουλο Εσάς για την προσοχή σας

Ερωτήσεις;

16/03/2017