Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Angelos kaltsikis

129 views

Published on

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

Published in: Education
  • Be the first to comment

  • Be the first to like this

Angelos kaltsikis

  1. 1. Παράλληλη υλοποίηση του αλγορίθμου MCL με χρήση πόρων του Cloud Επιβλέπων καθηγητής : Περικλής Α ΜήτκαςΆγγελος Καλτσίκης 1 16/03/2017
  2. 2. Δομή παρουσίασης  Στόχος της διπλωματικής  Θεωρητικό υπόβαθρο  Μεθοδολογία και πολυπλοκότητα προγράμματος  Αποτελέσματα  Συμπεράσματα  Μελλοντικές επεκτάσεις 19 Διαφάνειες 2 16/03/2017
  3. 3. Στόχος της εργασίας Ανάπτυξη ενός προγράμματος που θα υλοποιεί τον Markov Cluster Algorithm (MCL) σε κατανεμημένο περιβάλλον.  Cloud vs. Grid?  Cloud επειδή επιτρέπει εύκολη προσαρμογή των υπολογιστικών πόρων  Το πρόγραμμα:  θα εκτελεί την ομαδοποίηση των στοιχείων σε οσοδήποτε μεγάλο όγκο δεδομένων  θα παρέχει αποτελέσματα σε κατανοητή και βολική μορφή για το χρήστη  θα έχει φιλική διεπαφή  θα μειώσει το συνολικό χρόνο εκτέλεσης της ομαδοποίησης μεγάλων σετ δεδομένων 3 16/03/2017
  4. 4. Θεωρητικό Υπόβαθρο  Τι είναι το clustering (ομαδοποίηση);  Clustering είναι η μέθοδος με την οποία τα αντικείμενα ενός συνόλου δεδομένων οργανώνονται σε ομάδες ανάλογα με το βαθμό ομοιότητας τους  Γιατί η ομαδοποίηση πρωτεϊνών είναι σημαντική για τη Βιοπληροφορική;  Πρωτεΐνες με άγνωστη λειτουργία συσχετίζονται με πρωτεΐνες με γνωστές ιδιότητες και λειτουργία  Γιατί πρέπει το πρόγραμμα να εκτελείται σε κατανεμημένο περιβάλλον;  Η Βιοπληροφορική είναι πλέον ένα Big Data Domain  Ρυθμοί αύξησης των δεδομένων >> Ρυθμοί αύξησης της υπολογιστικής ισχύος 4 16/03/2017
  5. 5. 5 Δυνατότητες MPI/OpenMP Apache Hadoop Apache Spark CUDA Ανεξάρτητο από ειδικό Hardware ✔ ✔ ✔ ✘ Υποστήριξη Big Data ✔ ✔ ✔ ✘ Αξιοποίηση Μεγέθους Σύγχρονων Σκληρών Δίσκων ✔ ✔ ✔ ✘ Αξιοποίηση Ταχύτητας Σύγχρονων Μνημών RAM ✔ ✘ ✔ ✔ Διανεμημένο Σύστημα Αποθήκευσης Αρχείων ✘ ✔ ✔ (HDFS) ✘ Απόδοση (το 1 είναι το πιο γρήγορο γρήγορο σύστημα) 2 4 3 1 Έλεγχός Υποδομής σε Διανεμημένα Συστήματα ✘ ✔ ✔ ✘ Αντιμετώπιση σφαλμάτων ✘ ✔ ✔ ✘ Distributed Computing Frameworks APACHE SPARK IT IS! 16/03/2017
  6. 6. Markov Cluster Algorithm (MCL) 6 16/03/2017
  7. 7. Regularized MCL 7 16/03/2017
  8. 8. Περιγραφή υλοποιήσεων  MCL  Η υλοποίηση του αλγορίθμου έγινε σε SCALA με τη χρήση του API και των δομών δεδομένων του Apache Spark  Εισήχθη μια απλοϊκή (naïve) συνάρτηση για την εκμετάλλευση του αραιού χαρακτήρα πινάκων στο διανεμημένο πολλαπλασιασμό πινάκων  R-MCL  Η υλοποίηση του αλγορίθμου έγινε σε Python με τη χρήση του API του Apache Spark  Για την υλοποίηση του αλγορίθμου χρησιμοποιήθηκαν οι εξής βιβλιοθήκες: 1. SciPy 2. Pandas 3. NetworkX 8 16/03/2017
  9. 9. 9 Χρησιμοποιώντας το Apache Spark στο μέγιστο • Αλλαγή σειράς πράξεων • Έλεγχος σύγκλισης μετά την 5η επανάληψη • Αλλαγή Blocksize και Partitionsize Στο κύριο επαναληπτικό κομμάτι του αυθεντικού MCL τα βήματα είναι: EXPAND → INFLATΙΟΝ → NORMALIZATION → PRUNING → NORMALIZATION Προτεινόμενο κύριο επαναληπτικό κομμάτι του τροποποιημένου MCL: EXPAND → PRUNING → INFLATION → NORMALIZATION 16/03/2017
  10. 10. 10 Πολυπλοκότητα • Ο MCL χωρίς τροποποιήσεις απαιτεί: 𝑶 𝑵 𝟑 • Υλοποίηση MCL σε SCALA για την παρούσα διπλωματική εργασία: 𝑶 𝒂 𝟐 ∗ 𝑵 𝟑 • Υλοποίηση R-MCL σε Python για την παρούσα διπλωματική εργασία: 𝑶 𝒕 ∗ 𝒔 ∗ 𝑵 𝟑 Όπου Πίνακας εισόδου διαστάσεων NxN Ν: αριθμός γραμμών πίνακα εισόδου a: πυκνότητα πίνακα που προκύπτει σε κάθε επανάληψη t: πυκνότητα πίνακα που προκύπτει σε κάθε επανάληψη s: πυκνότητα αρχικού στοχαστικού πίνακα Πυκνότητα Πί𝜈𝛼𝜅𝛼 = 𝛼𝜌𝜄𝜃𝜇ό𝜍 𝜇𝜂 𝜇𝜂𝛿𝜀𝜈𝜄𝜅ώ𝜈 𝜎𝜏𝜊𝜄𝜒𝜀ί𝜔𝜈 𝛼𝜌𝜄𝜃𝜇ό𝜍 𝛾𝜌𝛼𝜇𝜇ώ𝜈 ∗ 𝛼𝜌𝜄𝜃𝜇ό𝜍 𝜎𝜏𝜂𝜆ώ𝜈 (Η Πυκνότητα στην περίπτωση μας παίρνει τιμές <<1) 16/03/2017
  11. 11. 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.9KB NNZ: 16,466 Matrix Dimensions: 3,7752 Normal File Size: 8.3GB NNZ: 142,298,957 Matrix Dimensions: 1,908,1422 Normal File Size: 1.7GB NNZ: 29,425,239 Matrix Dimensions: 357,8742 Normal File Size: 948.8MB NNZ: 16,424,393 Matrix Dimensions: 186,1902
  12. 12. 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
  13. 13. Αποτελέσματα 13 1289 843 653 713 825 0 500 1000 1500 seconds Hardware Configurations 3ο Dataset 2166 1328 1019 1107 1247 0 1000 2000 3000 seconds Hardware Configurations 2ο Dataset 12 CPU Cores - 2 Executors 24 CPU Cores - 4 Executors 30 CPU Cores - 5 Executors 60 CPU Cores - 10 Executors 32 CPU Cores - 4 Executors - Different Settings 12 CPU Cores - 2 Executors, 88357 30 CPU Cores - 5 Executors, 15372 60 CPU Cores - 10 Executors, 8141 0 20000 40000 60000 80000 100000 seconds Hardware Configurations 1ο Dataset Συνολικός χρόνος εκτέλεσης (seconds) του MCL SCALA για κάθε Hardware Configuration σε κάθε Dataset. 16/03/2017
  14. 14. 1 10 100 1000 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 27 seconds Iterations 3ο Dataset 1 10 100 1000 10000 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 27 seconds Iterations 2ο Dataset 12 CPU Cores - 2 Executors 24 CPU Cores - 4 Executors 30 CPU Cores - 5 Executors 60 CPU Cores - 10 Executors 1 10 100 1000 10000 100000 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 20 21 25 26 27 28 29 30 31 32 33 seconds Iterations 1ο Dataset 14 Σύγκριση χρόνου εκτέλεσης κάθε επανάληψης του MCL SCALA για κάθε Hardware Configuration σε κάθε Dataset. Λογαριθμική κλίμακα με βάση το 10 16/03/2017
  15. 15. Σύγκριση μετρήσεων R-MCL Python, MCL SCALA και Original MCL 16/03/2017 15 Dataset R-MCL Python MCL SCALA Original MCL 2nd 48,121 65,703 57,570 3rd 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
  16. 16. 16 HWC1 HWC2 HWC3 HWC4 HWC5 Matrix- 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 Dataset 17.52414 - 6.09756 5.920316 -  Συνολικό κόστος ($) για την ομαδοποίηση κάθε Dataset γ κάθε Hardware Configuration Τα Hardware Configurations (HWC) αντιστοιχούν στους παρακάτω υπολογιστικούς πόρους: 1. 20 CPU πυρήνες – 48 GB RAM – 480 GB SSD 2. 36 CPU πυρήνες – 80 GB RAM – 800 GB SSD 3. 44 CPU πυρήνες – 96 GB RAM – 960 GB SSD 4. 84 CPU πυρήνες – 176 GB RAM – 1.76 TB SSD 5. 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  Πολύ αργοί υπολογιστικοί πυρήνες
  17. 17. Συμπεράσματα 17  Η προσφορά αυτής της διπλωματικής είναι η Distributed computing και horizontally scalable υλοποίηση του αλγορίθμου MCL  Το πρόγραμμα λειτουργεί για οσοδήποτε μεγάλο γράφο εισόδου  Ο χρόνος εκτέλεσης του προγράμματος επηρεάζεται από το μέγεθος του γράφου εισόδου και από τους διαθέσιμους υπολογιστικούς πόρους  Πιο φθηνή λύση ανά ώρα ≠ πιο συμφέρουσα λύση 16/03/2017
  18. 18. Μελλοντικές Επεκτάσεις 18 ¤ Εγγενής υποστήριξη διανεμημένου πολλαπλασιασμού πινάκων από το Apache Spark που να εκμεταλλεύεται τις ιδιότητες των αραιών πινάκων ► Καλύτερη εκμετάλλευση της τοπικότητας των δεδομένων στις συναρτήσεων Normalize, Pruning και Inflation ► Αυτόματη ρύθμιση των παραμέτρων εισόδου μέσω τεχνικής βελτιστοποίησης υπερπαραμέτρων με τη χρήση είτε γενετικών αλγορίθμων είτε Particle Swarm Optimization αλγορίθμων ► Αυτόματη ρύθμιση των διαθέσιμων υπολογιστικών πόρων ανάλογα με το εκάστοτε πρόβλημα ► Δυναμική αλλαγή των διαθέσιμων υπολογιστικών πόρων ανάλογα με το ποσό απαιτητικό είναι το σημείο του προγράμματος που εκτελείται  Ανανέωση της υλοποίησης για τη σωστή λειτουργία σε Spark 2.x 16/03/2017
  19. 19. Τέλος  Ευχαριστώ θερμά:  τον καθηγητή Περικλή Α. Μήτκα  τον μεταδιδακτορικό ερευνητή Φώτη Ε. Ψωμόπουλο  τον υποψήφιο διδάκτορα Αθανάσιο Κιντσάκη  τον Ohad Raviv και Joan André  τους καθηγητές Ανδρέα Συμεωνίδη και Αναστάσιο Ντελόπουλο  Εσάς για την προσοχή σας  Ερωτήσεις; 16/03/2017

×