Χριστίνα Γ. Σκαρπαθιωτάκη (UoP) Αγγελική Χ. Σπηλιωτοπούλου (UoP) Επιβλέπων: Νεκτάριος Χ. Μπενέκος (CERN & UIUC) Τετάρτη, 13 Νοεμβρίου 2013 1
Διάρθρωση Παρουσίασης (1/3) Θέματα πρακτικής άσκησης στο CERN: Διαχείριση ΚΜΕ και Μνήμης κυρίως για το χαμηλότερο επίπεδο του συστήματος ελέγχου μιονίων. Modularization στο υψηλότερο επίπεδο του κώδικα ελέγχου. Βελτιστοποίηση χρήσης της Μνήμης. 2
Φασματόμετρο Μιονίων σχηματίζει το εξωτερικό τμήμα του ανιχνευτή ATLAS ανιχνεύει φορτισμένα σωματίδια καταμετρά την ορμή (P = mu) των σωματιδίων Το σύστημα μιονίων ATLAS απαρτίζεται από 4 διαφορετικές τεχνολογίες, κάθε μία εκ των οποίων αντιστοιχεί και σε ένα διαφορετικό θάλαμο: Θάλαμοι Επιφάνειας Αντίστασης (Resistive Plate Chambers) Θάλαμοι Ψιλού Ανοίγματος (Thin Gap Chambers) χρησιμοποιούνται για πυροδότηση της λειτουργίας του ανιχνευτή Ελεγχόμενες Λυχνίες Μετακίνησης (Monitored Drift Tubes) Καθοδικοί Θάλαμοι Αφαίρεσης (Cathode Strip Chambers) χρησιμοποιούνται για ακριβή μέτρηση της τροχιάς των μιονίων Διάταξη του ανιχνευτή ATLAS 3
Κύκλος Καταγραφής Δεδομένων για Φυσική Ανάλυση ανιχνευτής φίλτρο γεγονότος (επιλογή & ανασύσταση) ακατέργαστα δεδομένα ανασύσταση γεγονότος σύνοψη δεδομένων γεγονότων επεξεργασία δεδομένων για φυσική ανάλυση επεξεργασμένα δεδομένα ανάλυση αντικειμένων (ανάλογα με την κατηγοριοποίησή τους σε φυσικό επίπεδο) προσομοίωση γεγονότος Πηγή: Νεκτάριος Μπενέκος, CERN & UIUC διαδραστική φυσική ανάλυση 4
Ποιότητα των δεδομένων Οι ανιχνευτές στοιχειωδών σωματιδίων αποτελούν πολύ σύνθετα όργανα. Συχνά προβλήματα που προκύπτουν είναι: θόρυβος στους ανιχνευτές τμήματα στον ανιχνευτή που δεν λειτουργούν Τα προβλήματα αυτά έχουν επιπτώσεις σε: ανασύσταση φυσικών αντικειμένων φυσική ανάλυση Γεγονότα που έχουν συλλεχθεί ή παραχθεί υπό δυσλειτουργικές συνθήκες: είτε αποκλείονται από περαιτέρω ανάλυση είτε υφίστανται περαιτέρω ανάλυση, δεδομένου ότι κατά την προσομοίωση, το γεγονός μοντελοποιείται κατάλληλα Υπάρχει ανάγκη για ενδελεχή έλεγχο του συστήματος, προκειμένου να διαπιστωθεί ότι τα δεδομένα που συλλέγονται είναι κατάλληλα για φυσική ανάλυση. Τα ιστογράμματα που προκύπτουν ελέγχονται από πληθώρα ανθρώπων. Η ποιότητα των δεδομένων αποτελεί σημαντικό παράγοντα για ανάκτηση σωστών φυσικών αποτελεσμάτων. Μία «νεκρή» περιοχή στο θερμιδόμετρο του ανιχνευτή ATLAS. Πηγή: Νεκτάριος Μπενέκος, CERN & UIUC
Πείραμα Φυσικής Υψηλών Ενεργειών: Ακατέργαστα Δεδομένα απόκριση ανιχνευτή σε ψηφιακή μορφή αποθήκευση δεδομένων σε ακολουθία από bytes προσδιορισμός μορφής δεδομένων από ηλεκτρονικά εμπρόσθιου τμήματος (front-end electronics) και ανάκτηση δεδομένων (data acquisition) συχνότητα καταγραφής γεγονότος: μέχρι & τα 200 Hz (μέχρι και τα 450 Hz το 2012) χωρητικότητα γεγονότος: μπορεί να καταλαμβάνει μέχρι και 1.6 MB Πηγή: Νεκτάριος Μπενέκος, CERN & UIUC Διεύθυνση μνήμης: αντιστοιχεί σε ένα συγκεκριμένο στοιχείο του ανιχνευτή Περιεχόμενα διεύθυνσης μνήμης: η τιμή που κατέγραψαν τα ηλεκτρονικά για τη συγκεκριμένη διεύθυνση μνήμης
Offline επεξεργασία Μοντέλο καταγραφής γεγονότος (ΜΚΓ) (1/3) Εκτέλεση LHC με συνεχή & ταχεία ροή δεδομένων. βαθμονόμηση Βάση Δεδομένων φυσική επεξεργασία ροής δεδομένων 12 ώρες 48 ώρες 24 48 ώρες ταχεία ακατέργαστη ροή δεδομένων Αποδοχή δεδομένων βάσει ποιότητας ακατέργαστη φυσική ροή δεδομένων ESD TAG ESD TAG AOD, HIST, DPD Πηγή: Νεκτάριος Μπενέκος, CERN & UIUC AOD, HIST, DPD
Δεδομένα Offline επεξεργασία ΜΚΓ (2/3) E S D A O D 10 Terabytes/year TAG 1 Terabyte/year R A W 100 Terabytes/year Tier1 1Peta Byte/year (1PB/s πριν γίνει ελάττωση) Tier0 ακολουθιακά με τυχαία σειρά Χρήστες
Offline επεξεργασία ΜΚΓ (3/3) Τύπος δεδομένων Ακρωνύμιο Μέγεθος/Γεγονός (ΚΒ) Σημειώσεις Ροή από bytes RAW 640 συμπίεση στο Tier0 Event Summary Data ESD 1100 χρήση για βαθμονόμηση και ανάλυση των δεδομένων Analysis Object Data AOD 161 χρήση για φυσική ανάλυση Derived Physics Data DPD 100 1. αξιολόγηση επίδοσης ανιχνευτή 2. φυσική ανάλυση Ιστόγραμμα HIST - απεικόνιση ποιότητας δεδομένων Tag ( ετικέτα ) TAG 10 επιλογή γεγονότος 9
10
Ζητήματα στον Κώδικα Ελέγχου Μιονίων Απλά για αποθήκευση ιστογραμμάτων! Χρήση ΚΜΕ Πηγή: Rocco Mandrysch, CERN Χρήση Μνήμης 11
Επιπρόσθετα ζητήματα στον υπάρχοντα κώδικα πλεονασμός στον υπάρχοντα κώδικα τεράστιος κώδικας, όχι δομημένος σε μικρότερα τμήματα αποθαρρυντικός κώδικας για νέους προγραμματιστές 12
Διαχείριση ΚΜΕ και Μνήμης Η ιδέα πίσω από την υλοποίηση Μείωση της χρήσης της ΚΜΕ και της μνήμης στο πακέτο λογισμικού MdtRawMonManager Valgrind: εργαλείο που χρησιμοποιείται για να ανιχνεύσει και να αποσφαλματώσει διαρροές μνήμης 13
Κατηγοριοποίηση Διαρροών Μνήμης (Memory Leaks) Conditional jump or move (άλμα ή κίνηση υπό συνθήκη): οφείλεται σε μη αρχικοποιημένες τιμές ούτε η τιμή, ούτε η εκχωρηθείσα μνήμη έχουν αρχικοποιηθεί. Uninitialized value (μη αρχικοποιημένη τιμή): δημιουργείται λόγω κατανομής χώρου στη στοίβα ούτε τα πεδία του κατασκευαστή, ούτε η αντίστοιχη μνήμη που εκχωρείται έχουν αρχικοποιηθεί. Invalid read of size 4 (Άκυρη ανάγνωση μεγέθους 4 bytes) ανίχνευση λανθασμένης ανάγνωσης (δεδομένων). Possibly lost bytes in specific blocks (Ενδεχομένως χαμένα bytes σε συγκεκριμένα τμήματα της μνήμης) κατά τη διάρκεια εκτέλεσης του προγράμματος διάφορα αντικείμενα αποτυγχάνουν να επαληθευτούν από το API. 14
Διάρθρωση Παρουσίασης (2/3) Θέματα πρακτικής άσκησης στο CERN: Διαχείριση ΚΜΕ και Μνήμης κυρίως για το χαμηλότερο επίπεδο του συστήματος ελέγχου μιονίων. Modularization στο υψηλότερο επίπεδο του κώδικα ελέγχου. Βελτιστοποίηση χρήσης της Μνήμης. 15
Modularization στο υψηλότερο επίπεδο Η ιδέα πίσω από την υλοποίηση: του κώδικα ελέγχου Διαχωρισμός κώδικα για καλύτερη διαχείριση του πακέτου MuonTrkPhysMonitoring. Πλεονεκτήματα του modularization: πιο αποτελεσματική διαχείριση Μνήμης και ΚΜΕ βελτίωση λειτουργικότητας και επαναχρησιμοποίησης κώδικα ακριβέστερη ανίχνευση και εντοπισμός λογικών λαθών ενθαρρυντική τεκμηρίωση κώδικα καλύτερη δόμηση του προγράμματος Προτεινόμενη κατάτμηση κώδικα στο πακέτο MTPM Πηγή: Austin Basye, CERN &UIUC 16
Υλοποίηση (ένα ενδεικτικό παράδειγμα) Ο πηγαίος κώδικας που παρουσιάζεται παραπάνω, αναφέρεται σε ένα συγκεκριμένο τύπο ιστογράμματος. Κάθε τύπος ιστογράμματος υλοποιείται με τη χρήση των ακόλουθων τριών συναρτήσεων: bookhistogram(), fillhistogram(), prochistogram(). 17
Αναπαράσταση του modularization που έγινε στο πακέτο MuonTrkPhysMonitoring ΠΡΙΝ ΜΕΤΑ Πηγή: Austin Basye, CERN &UIUC 18
Επιπρόσθετες Βελτιώσεις Οι παραπάνω προτάσεις στοχεύουν στη μείωση του πλεονάζοντα κώδικα. Έτσι, παρέχεται καλύτερη συντήρηση και διαχείριση του προγράμματος. Για να επιτύχουμε κάτι τέτοιο, θα μπορούσαμε να χρησιμοποιήσουμε εργαλεία όπως: μία νέα δομή enumerator, η οποία να καλείται Sector ένα διδιάστατο διάνυσμα (2D vector) για αποθήκευση ιστογραμμάτων ένα βρόχο for για διάσχιση κάθε ιστογράμματος 19
Προτεινόμενες τροποποιήσεις κατά την 1 η αναστολή λειτουργίας του πειράματος ATLAS Προσδοκώμενες αλλαγές στο framework του κώδικα Μείωση λογικών λαθών. Βελτίωση αναγνωσιμότητας στον κώδικα. Ευκολότερη εφαρμογή καλών πρακτικών που χειρίζονται δύσκολα ζητήματα. Εισαγωγή μιας Διεπαφής Αφαιρετικών Ιστογραμμάτων (Abstract Histogram Interface ). Αυτή η διεπαφή θα μπορούσε να χρησιμοποιηθεί προκειμένου να συνδέσει υλοποιήσεις μέσα στο πακέτο AthenaMonitoring, όπως π.χ. τα ιστογράμματα native ROOT και light weight. Αναθεώρηση του κώδικα Muon DQA για βελτιστοποίηση λειτουργικότητας. Προτάσεις για καλύτερη χρήση της Μνήμης και της ΚΜΕ. 20
Διάρθρωση Παρουσίασης (3/3) Θέματα πρακτικής άσκησης στο CERN: Διαχείριση ΚΜΕ και Μνήμης κυρίως για το χαμηλότερο επίπεδο του συστήματος ελέγχου μιονίων. Modularization στο υψηλότερο επίπεδο του κώδικα ελέγχου. Βελτιστοποίηση χρήσης της Μνήμης. 21
Βελτιστοποίηση χρήσης της Μνήμης Η ιδέα πίσω από την υλοποίηση: Μείωση της υπερβολικής χρήσης της ΚΜΕ και της Μνήμης που προκαλούνται από το πακέτο MuonRawDataMonitoring. Το κύριο αίτιο του προβλήματος: η αντιστοίχιση που προκύπτει, μέσω του ακόλουθου map: <hardware_name, hit_occupancy> Hardware_name => αλφαριθμητικό 7 χαρακτήρων που αναπαριστά την ονομασία ενός συγκεκριμένου θαλάμου μέσα στον ανιχνευτή Hit_occupancy => καταγεγραμμένος αριθμός σωματιδίων που εξήλθε από τον ανιχνευτή μετά τη σύγκρουση Το τμήμα του κώδικα που εντοπίστηκε το πρόβλημα: map< string, float >::iterator iter_hitsperchamber = hitsperchamber_map.find(hardware_name); 22
Προτεινόμενες Λύσεις & Απορρίψεις + γρηγορότερη και αποτελεσματικότερη αναζήτηση - πλεονασμός στον κώδικα - μη καθολική σύμβαση - ανάγκη για εισαγωγή νέου μοντέλου δεδομένων + γρηγορότερη και αποτελεσματικότερη αναζήτηση - μη αποδεκτός τύπος δεδομένων για ένα map<> - η υλοποίηση της λύσης δεν διατίθεται ακόμα (ανάγκη για νέες δομές δεδομένων, όπως operators, templates, κτλ. ) + γρήγορη γραμμική αναζήτηση - αργή τυχαία αναζήτηση, καθώς κάθε στοιχείο στο ή μετά το σημείο εισαγωγής, πρέπει να μετακινηθεί, ώστε να μπορέσει να εισαχθεί το νέο στοιχείο - ανάγκη για εισαγωγή νέας δομής δεδομένων που να συσχετίζει το hashid με το hit_occupancy + επαρκώς γρήγορη αναζήτηση + εφικτή υλοποίηση - υπερβολική δέσμευση Μνήμης για μικρές αριθμητικές τιμές - διαφορετικές εντολές προ επεξεργαστή για 32-, 64- bit συστήματα, γεγονός που οδηγεί σε απώλεια συμβατότητας 23
Μία ακόμη ιδέα Πλεονεκτήματα: + γρηγορότερη και πιο αποτελεσματική αναζήτηση ενός συγκεκριμένου στοιχείου Αυτή η δομή δεδομένων συσχετίζει κάθε identifier με τη δική του hit_occupancy. Μειονεκτήματα: -νέα δήλωση και υλοποίηση δομών δεδομένων όπως: templates operators classes constructors destructors κτλ. 24
Μερικές επιπρόσθετες προτάσεις Containers Υλοποίηση Χρονική Πολυπλοκότητα Hash_map - Λειτουργίες Βέλτιστη Περίπτωση Χειρότερη Περίπτωση εισαγωγή O(1) O(n) Hash_multimap - αναζήτηση O(1) O(n) διαγραφή O(1) O(n) Η υλοποίηση των παραπάνω κλάσεων δεν υπάρχει ακόμα στη standard βιβλιοθήκη προτύπων (STL) της C++. 25
Επίλογος Προτάσεις για περαιτέρω ενέργειες εντοπισμού και διόρθωσης προβλημάτων κατά την 1 η περίοδο αναστολής της λειτουργίας του πειράματος ATLAS. Προτεινόμενες αλλαγές για βελτιστοποίηση χρήσης ΚΜΕ και Μνήμης. Προτάσεις για αναθεώρηση του κώδικα που αφορά το τμήμα Muon Offline DQA. Ενδελεχείς διαγνωστικοί έλεγχοι πρέπει να διεξαχθούν μέσα στο πακέτο MuonTrkPhysMonitoring, ο κώδικας του οποίου έχει κατατμηθεί και η νέα έκδοσή του έχει ανέβει στο SVN. Απαραίτητες τροποποιήσεις, συμβατές με το μοντέλο δεδομένων ATLAS DQ, οι οποίες είναι έτοιμες προς υλοποίηση. 26
Η πρακτική άσκηση στο CERN υποστηρίχθηκε ιδιαίτερα από τους κ. Εμμανουήλ Τσεσμελή, κ. Νεκτάριο Μπενέκο και κα. Θεοδώρα Παπαδοπούλου, καθώς επίσης και από τον κ. Andrea Dell Acqua. Ειλικρινά, θα θέλαμε ακόμη να ευχαριστήσουμε το τμήμα μας, Τμήμα Πληροφορικής και Τηλεπικοινωνιών του Πανεπιστημίου Πελοποννήσου, καθώς και το ΕΜΠ, για τη βοήθεια και την υποστήριξη που μας πρόσφεραν. 27
28
29