ΠΑΡΑΛΛΗΛΗ ΕΠΕΞΕΡΓΑΣΙΑ

Σχετικά έγγραφα
ΑΣΚΗΣΗ 3η Στοίχιση ακολουθιών βιολογικών µακροµορίων

Κεφάλαιο 5 ο : Αλγόριθµοι Σύγκρισης Ακολουθιών Βιολογικών εδοµένων

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΕΠΛ 450 ΥΠΟΛΟΓΙΣΤΙΚΗ ΒΙΟΛΟΓΙΑ. Παύλος Αντωνίου

LALING/PLALING :

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον

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

1. Δεν μπορεί να γίνει κλήση μίας διαδικασίας μέσα από μία συνάρτηση.

ΑΕΠΠ Ερωτήσεις θεωρίας

ΔΙΑΦΟΡΑ ΘΕΜΑΤΑ. Ως «γειτονικά» ορίζονται τα κελιά που συγγενεύουν οριζόντια, κάθετα και διαγώνια. Για παράδειγμα γειτονικά του Α[3,3] είναι τα:

ΠΡΟΣΟΜΟΙΩΣΗ ΠΑΝΕΛΛΑΔΙΚΩΝ ΕΞΕΤΑΣΕΩΝ Γʹ ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΕΠΠ ΤΡΙΤΗ 18 ΑΠΡΙΛΙΟΥ 2017 ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΕΠΤΑ (7)

ΣΕΤ ΑΣΚΗΣΕΩΝ 2. Προθεσµία: 25/11/12, 22:00

ΜΕΘΟΔΟΙ ΑΕΡΟΔΥΝΑΜΙΚΗΣ

Ksyla.gr Σύντομη περιγραφή λειτουργίας

Βιοπληροφορική. Ενότητα 7: Στοίχιση ακολουθιών ανά ζεύγη Τεχνικές Στοίχισης Ακολουθιών,(2/2) 2 ΔΩ. Τμήμα: Βιοτεχνολογίας Όνομα καθηγητή: Τ.

Να το ξαναγράψετε χρησιμοποιώντας αντί για την εντολή Για Τέλος_επανάληψης: α. την εντολή Όσο Τέλος_επανάληψης

Παράλληλη Επεξεργασία Εργαστηριακή Ασκηση Εαρινού Εξαµήνου 2008

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

Κ Ε Μη γράφετε στο πίσω μέρος της σελίδας

Αντικείμενα 2 ου εργαστηρίου

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ

«Μηχανή Αναζήτησης Αρχείων» Ημερομηνία Παράδοσης: 30/04/2015, 09:00 π.μ.

Ασκήσεις μελέτης της 4 ης διάλεξης. ), για οποιοδήποτε μονοπάτι n 1

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ «ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ»

1η Οµάδα Ασκήσεων. ΑΣΚΗΣΗ 1 (Θεωρία)

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος

Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα).

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΗΜΕΡΗΣΙΩΝ

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΑΣΚΗΣΗ 4η Αναζήτηση οµοιοτήτων σε βάσεις δεδοµένων ακολουθιών

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ

Στην εντολή while η επανάληψη συνεχίζεται όσο η λογική έκφραση έχει τιμή false.

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

Εισαγωγή στην επιστήμη των υπολογιστών. Λογισμικό Υπολογιστών Κεφάλαιο 8ο Αλγόριθμοι

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύ

ΣΥΝΟΛΟ ΣΕΛΙ ΩΝ: ΕΠΤΑ (7)

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. Εξετάσεις Προσομοίωσης 10/04/2018

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας

1. Δεν μπορεί να γίνει κλήση μίας διαδικασίας μέσα από μία συνάρτηση.

Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

Kεφάλαιο 11 Λίστες και Ανάλυση Δεδομένων Kεφάλαιο 12 Εργαλεία ανάλυσης πιθανοτήτων Kεφάλαιο 13 Ανάλυση δεδομένων...

ΘΕΜΑ Α. 1. Η δυαδική αναζήτηση χρησιμοποιείται μόνο σε ταξινομημένες συλλογές δεδομένων.

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΠΑΝΕΛΛΑΔΙΚΩΝ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ

Α2. Να γράψετε στο τετράδιο απαντήσεών σας το κατάλληλο τμήμα κώδικα, κάνοντας τις απαραίτητες αλλαγές σύμφωνα με την εκάστοτε εκφώνηση:

ΤΙΤΛΟΣ ΑΝΑΦΟΡΑΣ: ΕΦΑΡΜΟΓΗ ΚΑΙ ΑΠΟΤΕΛΕΣΜΑΤΑ ΣΕ ΕΠΙΛΕΓΜΕΝΕΣ ΠΕΡΙΤΠΩΣΕΙΣ

Περιεχόμενα ΓΕΩΠΥΛΗ ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΚΕΝΤΡΙΚΟ SITE

Ερώτημα 1. Μας δίνεται μια συλλογή από k ακολοθίες, k >=2 και αναζητούμε το πρότυπο Ρ, μεγέθους n.

Άσκηση 3 (ανακοινώθηκε στις 24 Απριλίου 2017, προθεσμία παράδοσης: 2 Ιουνίου 2017, 12 τα μεσάνυχτα).

Προγραµµατισµός Ι ΕΡΓΑΣΤΗΡΙΟ 5 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

Οδηγός αναζήτησης στο Google και στο Google Scholar

ΑΣΥΜΠΤΩΤΙΚΗ ΑΝΑΛΥΣΗ & ΠΡΟΣΘΕΣΗ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

Εισαγωγή στις Αρχές της επιστήμης των ΗΥ

ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ

Ταξινόμηση με συγχώνευση Merge Sort

ΣΕΤ ΑΣΚΗΣΕΩΝ 3. Προθεσµία: 18/12/12, 22:00

Φάσμα προπαρασκευή για Α.Ε.Ι. & Τ.Ε.Ι.

Σειρά Προβλημάτων 1 Λύσεις

Σκοπός. Εργαστήριο 6 Εντολές Επανάληψης

Φροντιστήρια Επίγνωση Προτεινόμενα Θέματα Πανελλαδικών ΑΕΠΠ 2015

ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ. ii) Πόσες φορές θα εκτελεστεί η εντολή ΔΙΑΒΑΣΕ Α[μ,λ] στον αλγόριθμο της προηγούμενης ερώτησης; α) 35 β) 12 γ) 20

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΝΕΟ ΚΑΙ ΠΑΛΑΙΟ ΣΥΣΤΗΜΑ

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας

Ακαδημαϊκό Έτος , Χειμερινό Εξάμηνο Μάθημα: Εργαστήριο «Πληροφορική Υγείας» ΕΙΣΑΓΩΓΗ ΣΤΗΝ ACCESS

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΝΕΟ ΚΑΙ ΠΑΛΑΙΟ ΣΥΣΤΗΜΑ

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

Κεφάλαιο 14: Συμβουλές προς έναν νέο προγραμματιστή

ΤΕΙ ΛΑΜΙΑΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑ ΥΠΟΛΟΓΙΣΤΩΝ

ΕΚΦΩΝΗΣΕΙΣ ΘΕΜΑ Α. β. Οι πληροφορίες είναι δεδομένα τα οποία δεν έχουν υποστεί επεξεργασία.

ΔΟΚΙΜΑΣΤΙΚΟ ΤΕΣΤ Γ' ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΤΕΤΑΡΤΗ 26 ΑΠΡΙΛΙΟΥ 2017 ΑΕΠΠ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ: ΤΕΣΣΕΡΕΙΣ (4)

ΥΣ02 Τεχνητή Νοημοσύνη Χειμερινό Εξάμηνο

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΤΑΞΗΣ ΗΜΕΡΗΣΙΩΝ & Δ ΤΑΞΗΣ ΕΣΠΕΡΙΝΩΝ ΥΠΟΛΕΙΠΟΜΕΝΕΣ ΠΑΝΕΛΛΑΔΙΚΕΣ ΕΞΕΤΑΣΕΙΣ HMEΡΗΣΙΩΝ ΚΑΙ ΕΣΠΕΡΙΝΩΝ ΕΠΑΓΓΕΛΜΑΤΙΚΩΝ ΛΥΚΕΙΩΝ

Σειρά Προβλημάτων 4 Λύσεις

ΕΚΦΩΝΗΣΗ ΥΠΟΧΡΕΩΤΙΚΗΣ ΕΡΓΑΣΙΑΣ σε UML

Δομές Δεδομένων. Ενότητα 11: Τεχνικές Κατακερματισμού. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής.

ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ. ii) Πόσες φορές θα εκτελεστεί η εντολή ΔΙΑΒΑΣΕ Α[μ,λ] στον αλγόριθμο της προηγούμενης ερώτησης; α) 35 β) 12 γ) 20

Περιεχόμενα. Μέρος 1: Βασικές έννοιες Πληροφορικής και επικοινωνιών Μέρος 2: Χρήση υπολογιστή και διαχείριση αρχείων Πρόλογος...

ΕΘΝΙΚΟ ΤΥΠΟΓΡΑΦΕΙΟ ΟΔΗΓΟΣ ΧΡΗΣΗΣ ΕΦΑΡΜΟΓΗΣ

ΣΥΣΤΗΜΑΤΑ ΠΑΡΑΛΛΗΛΗΣ ΕΠΕΞΕΡΓΑΣΙΑΣ 9o εξάμηνο ΗΜΜΥ, ακαδημαϊκό έτος

ΤΕΛΟΣ 1ΗΣ ΑΠΟ 5 ΣΕΛΙ ΕΣ

Παρουσίαση 1 ης Άσκησης:

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Δ ΕΣΠΕΡΙΝΩΝ

Δομές Δεδομένων & Αλγόριθμοι

Α2. Να γράψετε στο τετράδιο σας τον αριθμό 1-4 κάθε πρότασης και δίπλα το γράμμα που δίνει τη σωστή επιλογή.

Φροντιστήριο 10 Λύσεις

Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής

ΣΕΤ ΑΣΚΗΣΕΩΝ 3. Προθεσµία: Πέµπτη 17/12/2015, 22:00

Άσκηση 3 (ανακοινώθηκε στις 14 Μαΐου 2018, προθεσμία παράδοσης: 8 Ιουνίου 2018, 12 τα μεσάνυχτα).

Εισαγωγή στους αλγορίθμους Βιοπληροφορικής. Στοίχιση αλληλουχιών

Εργαστήρια Αριθμητικής Ανάλυσης Ι. 7 ο Εργαστήριο. Διανύσματα-Πίνακες 2 ο Μέρος

ΤΕΛΟΣ 1ΗΣ ΑΠΟ 5 ΣΕΛΙΔΕΣ

Προγραµµατισµός Ι ΕΡΓΑΣΤΗΡΙΟ 5 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

Αυτόματο Κλείσιμο Ισολογισμού

ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

Εργαστήριο 6 ο 7 ο / Ερωτήματα Ι

O n+2 = O n+1 + N n+1 = α n+1 N n+2 = O n+1. α n+2 = O n+2 + N n+2 = (O n+1 + N n+1 ) + (O n + N n ) = α n+1 + α n

Transcript:

ΠΑΡΑΛΛΗΛΗ ΕΠΕΞΕΡΓΑΣΙΑ ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 211/212 Εισαγωγή Η ανακάλυψη πως τα νουκλεϊκά οξέα αποτελούνται από ακολουθίες συγκεκριμένων νουκλεοτιδίων, καθώς επίσης πως οι πρωτεΐνες αποτελούνται από ακολουθίες συγκεκριμένων αμινοξέων, αποτέλεσε τεράστια επιτυχία στον τομέα της βιολογίας. Γρήγορα έγινε σαφές πως συγκρίνοντας τις ακολουθίες αυτές μεταξύ διαφορετικών όντων μπορούσαμε να εξάγουμε πληροφορίες για το κατά πόσο τα όντα αυτά συγγενεύουν μεταξύ τους. Όσο περισσότερο μοιάζουν οι συγκεκριμένες ακολουθίες, τόσο πιο πιθανό είναι τα όντα αυτά να έχουν εξελιχθεί από κάποιον κοινό πρόγονο. Τα 4 βασικά συστατικά στοιχεία ενός νουκλεϊκού οξέος συμβολίζονται με τα γράμματα A, C, G και T (για Adenine, Cytosine, Guanine και Thymine αντίστοιχα). Ένα νουκλεϊκό οξύ αποτελείται λοιπόν από μία σειρά από αυτές τις βάσεις. Ας υποθέσουμε πως έχουμε τις παρακάτω 2 ακολουθίες: X: C G G G T A T C C A A Y: C C C T A G G T C C C A Το ερώτημα είναι αν θα μπορούσε η μια από αυτές να προκύψει από την άλλη. Για παράδειγμα, αν (για τον οποιοδήποτε λόγο) η βάση G στην ακολουθία X είχε αντικατασταθεί από την βάση C στην ακολουθία Y, τότε οι δύο αυτές ακολουθίες θα έμοιαζαν πολύ περισσότερο. Επιπλέον όμως, η ακολουθία Y είναι πιο μεγάλη. Μήπως λοιπόν προστέθηκε και μια βάση ακόμα κατά την διαδικασία της εξέλιξης; Σκοπός της ευθυγράμμισης τέτοιων ακολουθιών (sequence alignment) είναι να πετύχουμε το καλύτερο δυνατό ταίριασμα της μιας ακολουθίας με την άλλη. Η ευθυγράμμιση πρέπει να ακολουθεί τους παρακάτω κανόνες: Όλα τα σύμβολα των δύο ακολουθιών πρέπει να υπάρχουν στην ευθυγράμμιση και μάλιστα με την ίδια σειρά με την οποία εμφανίζονται στις ακολουθίες. Κάθε σύμβολο μιας ακολουθίας πρέπει να ευθυγραμμιστεί με ένα μόνο σύμβολο της άλλης ακολουθίας. Ένα σύμβολο μπορεί να ευθυγραμμιστεί με ένα κενό ( - ). Δύο κενά δεν επιτρέπεται να είναι ευθυγραμμισμένα. Ένα παράδειγμα ευθυγράμμισης των παραπάνω ακολουθιών θα ήταν το εξής: X: C G G G T A - - T - C C A A Y: C C C - T A G G T C C C - A Παρατηρήστε ότι οι παραπάνω κανόνες δεν απαιτούν ένα σύμβολο να είναι οπωσδήποτε ευθυγραμμισμένο με το κενό ή με το ίδιο ακριβώς σύμβολο. Στο παραπάνω παράδειγμα έχουμε χρωματίσει με πράσινο τις ευθυγραμμίσεις όπου αυτό ισχύει. Με κόκκινο έχουμε χρωματίσει τις ευθυγραμμίσεις όπου ένα σύμβολο έχει ευθυγραμμιστεί με άλλο σύμβολο.

Όπως γίνεται κατανοητό, υπάρχουν πολλές ευθυγραμμίσεις που θα μπορούσαμε να έχουμε για τις συγκεκριμένες ακολουθίες. Εκτός από την παραπάνω ευθυγράμμιση, 2 επιπλέον παραδείγματα θα μπορούσαν να είναι τα εξής: X: C G G G T A - - - T C C A A Y: C C - - C T A G G T C C C A X: C - G G G T A - - T C C A A Y: C C - - C T A G G T C C C A Εύλογα λοιπόν γεννιέται το ερώτημα ποια είναι η καλύτερη δυνατή ευθυγράμμιση δύο ακολουθιών. Η απάντηση δεν είναι εύκολη, καθώς συνήθως οι ακολουθίες αυτές για πραγματικούς ζωντανούς οργανισμούς αποτελούνται από τουλάχιστον δεκάδες χιλιάδες σύμβολα η καθεμία. Η εύρεση της βέλτιστης ακολουθίας «στο χαρτί» είναι κατά συνέπεια αδύνατη. Όπως σωστά φανταστήκατε, η αξιοποίηση της υπολογιστικής ισχύος των σύγχρονων υπολογιστών δίνει την λύση. Ο Αλγόριθμος Smith-Waterman Για να λύσουμε το παραπάνω πρόβλημα χρειαζόμαστε φυσικά τον κατάλληλο αλγόριθμο. Ο πλέον χρησιμοποιούμενος αλγόριθμος προτάθηκε το 1981 από τους Temple F. Smith και Michael S. Waterman και είναι γνωστός με το όνομα Smith-Waterman [1]. Βασικό στοιχείο στον συγκεκριμένο αλγόριθμο είναι η δημιουργία ενός πίνακα H, γνωστού ως «πίνακα βαθμολόγησης» (scoring matrix). Ουσιαστικά, στον πίνακα αυτό αποθηκεύουμε βαθμολογία για κάθε πιθανή ευθυγράμμιση δύο ακολουθιών. Αν υποθέσουμε πως οι δύο ακολουθίες X, Y έχουν μήκος m και n αντίστοιχα, τότε ο πίνακας H έχει διαστάσεις (m+1) (n+1) και κατασκευάζεται βάσει των παρακάτω κανόνων: H(i, ) =, i m (Στοιχεία πρώτης στήλης είναι ) H(, j) =, j n (Στοιχεία πρώτης γραμμής είναι ) if X i = Y j then w(x i, Y j ) = w(match) if X i Y j then w(x i, Y j ) = w(mismatch) H(i 1, j 1) + w X i, Y j Match/Mismatch 1 i m H(i, j) = max H(i 1, j) + w(x i, ) Deletion 1 j n H(i, j 1) + w, Y j Insertion Κατά συνέπεια, ο πίνακας H κατασκευάζεται αναδρομικά. Κάθε κελί χρειάζεται τους 3 γείτονες που «προηγούνται» από αυτό για να υπολογιστεί. Η συνάρτηση w() επιστρέφει έναν αριθμό, ο οποίος βαθμολογεί το ταίριασμα δύο συμβόλων στις δύο ακολουθίες. Ας πάρουμε για παράδειγμα τον κλάδο H(i 1, j 1) + w(x i, Y j ). Ο όρος H(i 1, j 1) αντιστοιχεί στην βαθμολογία της ακολουθίας που έχει ήδη υπολογιστεί. Η συνάρτηση w() θα επιστρέψει έναν αριθμό, ανάλογα με το πως το σύμβολο X i ταιριάζει με το σύμβολο Y j. Αν τα σύμβολα είναι ίδια συνήθως επιστρέφεται ένας θετικός αριθμός. Αυτό όμως δεν σημαίνει απαραίτητα ότι ο αριθμός αυτός είναι ίδιος για τα 4 βασικά συστατικά στοιχεία ενός νουκλεϊκού οξέος. Έτσι, αν και οι δύο ακολουθίες έχουν το σύμβολο C στις συγκεκριμένες θέσεις, τότε μπορεί να επιστρέφεται π.χ. ο αριθμός 12, ενώ αν έχουν το G τότε μπορεί να επιστρέφεται ο αριθμός 5. Αυτό συμβαίνει γιατί η ταύτιση για συγκεκριμένα σύμβολα μπορεί να θεωρηθεί πιο σημαντική από την ταύτιση για άλλα σύμβολα. Αν οι δύο ακολουθίες δεν ταιριάζουν στην

συγκεκριμένη θέση, τότε συνήθως επιστρέφεται ένας αρνητικός αριθμός, μειώνοντας έτσι την συνολική βαθμολογία. Αντίστοιχα, για τους δύο τελευταίους κλάδους βαθμολογείται η ταύτιση των συμβολοσειρών όταν προσθέσουμε το κενό σύμβολο σε μία από τις δύο ακολουθίες. Το ποιούς ακριβώς αριθμούς θα επιστρέφει η συνάρτηση w() δεν το καθορίζει ο αλγόριθμος Smith-Waterman. Είναι στην ευχέρεια του καθένα να τους καθορίσει ανάλογα με τις ανάγκες της εφαρμογής. Ο αλγόριθμος αυτός ακολουθεί το μοντέλο του «κυματομέτωπου» (wave front). Αυτό αποτελεί πολύ σημαντικό στοιχείο για την παραλληλοποίηση του αλγόριθμου. Θα πρέπει να βεβαιώνεστε πως κατά τους υπολογισμούς κάθε κελιού έχουν υπολογιστεί ήδη τα κελιά που χρειάζονται. Με λίγα λόγια, στον συγκεκριμένο αλγόριθμο υπάρχουν «εξαρτήσεις δεδομένων». Σχηματικά, ο αλγόριθμος θα ακολουθούσε τα εξής βήματα (για έναν μικρό πίνακα): Σε κάθε βήμα εκτέλεσης μπορούν να υπολογιστούν τα στοιχεία του πίνακα H που έχουν χρωματιστεί γκρι. Βεβαίως οι υπολογισμοί θα συνεχίζονταν για 3 ακόμα βήματα, μέχρι και το τελευταίο στοιχείο του πίνακα. Το τελευταίο βήμα του αλγόριθμου είναι να βρεθεί η καλύτερη ακολουθία. Προφανώς, αυτή θα έχει την μεγαλύτερη βαθμολογία. Κατά συνέπεια, θα πρέπει να αναζητηθεί η μέγιστη βαμολογία στον πίνακα H και στην συνέχεια να ακολουθήσουμε ανάποδα την διαδρομή από την οποία προέκυψε η μέγιστη βαθμολογία (back tracking). Με αυτόν τον τρόπο ολοκληρώνεται η εύρεση της βέλτιστης ευθυγράμμισης. Αναφορές [1] Temple F. Smith and Michael S. Waterman. "Identification of Common Molecular Subsequences". Journal of Molecular Biology 147: 195 197, 1981.

Ζητούμενα της άσκησης Στα πλαίσια της άσκησης θα σας δοθεί μια απλοποιημένη έκδοση του αλγόριθμου Smith- Waterman γραμμένη σε C++. Σκοπός σας θα είναι να παραλληλοποιήσετε το πρόγραμμα και να δημιουργήσετε δύο διαφορετικές παράλληλες εκδόσεις: 1) Μια με χρήση POSIX Threads 2) Μια με χρήση OpenMP Είσαστε ελεύθεροι να παραλληλοποιήσετε τον κώδικα με καθένα από τα παραπάνω πρότυπα με όποιον τρόπο θέλετε. Ωστόσο, θεωρείται αυτονόητο πως η υλοποίηση θα πρέπει να είναι σωστή (να δίνει πάντα τα ίδια αποτελέσματα με την ακολουθιακή έκδοση του προγράμματος) και πως στην αναφορά που θα παραδώσετε θα πρέπει να αιτιολογήσετε γιατί παραλληλοποιήσατε με τον συγκεκριμένο τρόπο την εφαρμογή. Όπου χρειάζεται, οι υλοποιήσεις σας θα πρέπει να είναι παραμετροποιημένες ως προς το πλήθος των νημάτων. Μπορείτε να προσθέσετε μια επιπλέον παράμετρο γραμμής εντολών στο πρόγραμμα που να δηλώνει με πόσα θα εκτελεστεί κάθε φορά το πρόγραμμα. Για να μεταγλωττίσετε το πρόγραμμα που σας δίνεται θα πρέπει να εκτελέσετε την εντολή: g++ O o SmithWaterman SmithWaterman.cpp Η εντολή αυτή θα μεταγλωττίσει το πρόγραμμα χωρίς βελτιστοποιήσεις (-O) και θα παράξει ένα εκτελέσιμο αρχείο με το όνομα SmithWaterman. Για να το τρέξετε, χρησιμοποιήστε την εντολή:./smithwaterman.33 1.33 SequenceAFile SequenceBFile 1 Τα αρχεία SequenceAFile και SequenceBFile είναι απλά αρχεία κειμένου που περιέχουν τις ακολουθίες των συμβόλων που θέλουμε να ευθυγραμμίσουμε. Στον παρακάτω πίνακα αναφέρονται 6 αρχεία με ακολουθίες συμβόλων που θα σας δωθούν. Όταν θα δοκιμάζετε το πρόγραμμα σας να συγκρίνετε τις ακολουθίες που βρίσκονται στην ίδια σειρά του πίνακα. Ακολουθία Α LITMUS28i.gbk.txt M13KE.gbk.txt Adenovirus-C.txt Ακολουθία Β LITMUS28i-mal.gbk.txt M13KO7.gbk.txt Enterobacteria-phage-T7.txt Τα τελικά αποτελέσματα που θα συμπεριλάβετε στην αναφορά θα πρέπει να αφορούν τις ακολουθίες της τελευταίας σειράς του πίνακα. Οι πρώτες δύο σειρές περιλαμβάνουν μικρότερες ακολουθίες που μπορείτε να χρησιμοποιήσετε όσο αναπτύσσετε τα προγράμματα σας για να ελέγχετε ότι λειτουργούν σωστά. Αφού παραλληλοποιήσετε το πρόγραμμα θα προβλέψετε ώστε να δίνετε άλλη μια παράμετρο κατά την εκτέλεση του προγράμματος, π.χ., η εντολή:./smithwaterman.33 1.33 SequenceAFile SequenceBFile 1 4 θα σημαίνει πως το πρόγραμμα θα εκτελεστεί με 4, ενώ η εντολή:

./SmithWaterman.33 1.33 SequenceAFile SequenceBFile 1 8 πως θα εκτελεστεί με 8. Ένας ακόμη σκοπός της εργασίας είναι να σας φέρει σε επαφή και με άλλα εργαλεία ανάπτυξης. Για τον λόγο αυτό, θα χρησιμοποιήσετε και έναν δεύτερο compiler. Συγκεκριμένα, θα χρησιμοποιήσετε τους compilers της Intel, οι οποίοι διανέμονται δωρεάν για ακαδημαϊκή χρήση. Θα πρέπει επομένως να μεταβείτε στην διεύθυνση: http://software.intel.com/en-us/articles/non-commercial-software-development και να επιλέξετε το Accept (αφορά αποδοχή ότι θα χρησιμοποιήσετε τα συγκεκριμένα προϊόντα μόνο για μη εμπορικούς σκοπούς). Στην επόμενη σελίδα που θα εμφανιστεί επιλέγετε το Intel C++ Composer XE 211 for Linux. Συμπληρώνετε τα απαραίτητα στοιχεία και στην συνέχεια κατεβάζετε το πρόγραμμα και το εγκαθιστάτε. Η αντίστοιχη εντολή για να μεταγλωττίσετε το πρόγραμμα με τον compiler της Intel είναι η icpc. Οι υπόλοιπες παράμετροι είναι ίδιες με αυτές του g++. Συγκεντρωτικά, θα πρέπει στην αναφορά σας να παραθέσετε μετρήσεις και να σχολιάσετε τις παρακάτω περιπτώσεις: 1) Πρόγραμμα με POSIX Threads και με OpenMP. 2) Μεταγλώττιση και εκτέλεση προγράμματος με χρήση gcc και icpc. 3) Μεταγλώττιση και εκτέλεση προγράμματος χωρίς βελτιστοποιήσεις (-O) και με μέγιστες βελτιστοποιήσεις (-O3). 4) Εκτέλεση κάθε περίπτωσης με 1, 2 και 4 τουλάχιστον. Αν το σύστημα σας διαθέτει περισσότερα, ακόμα καλύτερα! Για κάθε έναν από τους παραπάνω συνδυασμούς συμπεριλάβετε στην αναφορά σας πίνακες με τους χρόνους εκτέλεσης του βασικού αλγόριθμου (υπάρχει έτοιμο στον κώδικα που σας δίνετε) και διαγράμματα της χρονοβελτίωσης. Συγκεντρωτικά, όλες οι περιπτώσεις που θα πρέπει να συμπεριλάβετε φαίνονται στο παρακάτω σχήμα: Σειριακό πρόγραμμα (Δίνεται) POSIX Threads OpenMP g++ icpc g++ icpc -O -O3 -O -O3 -O -O3 -O -O3

Διαδικαστικά Η εργασία θα πρέπει να γίνει σε ομάδες των 3 ή 4 ατόμων ακριβώς. Δεν θα γίνει δεκτή ομάδα με λιγότερα ή περισσότερα άτομα για κανέναν λόγο. Αν δεν συμπληρώσετε ομάδα 3 ή 4 ατόμων, τότε θα προστεθούν άτομα στην ομάδα σας από εμάς. Ένα άτομο από κάθε ομάδα θα αναλάβει να δηλώσει την ομάδα του μέχρι την Τετάρτη, 11/4/212 και ώρα 23:59:59. Το άτομο αυτό θα είναι επίσης υπεύθυνο για όλη την επικοινωνία της ομάδας μαζί μας, καθ όλη την διάρκεια του εξαμήνου και μέχρι την παράδοση της άσκησης. Η ομάδα θα δηλωθεί μέσω e-mail στην διεύθυνση iev@hpclab.ceid.upatras.gr. Για την ευκολότερη ταξινόμηση από την μεριά μας και την δυνατότητα αυτόματης προώθησης, το e-mail θα πρέπει να έχει τον εξής τίτλο (χωρίς κενά στο τμήμα [ParPro11-12]): [ParPro11-12] Δήλωση ομάδας Το περιεχόμενο του e-mail θα πρέπει να είναι ο Α.Μ. και το ονοματεπώνυμο των τριών μελών της ομάδας. Κάθε επικοινωνία μαζί μας θα πρέπει να απευθύνεται στην προαναφερθείσα διεύθυνση e-mail και ο τίτλος να ξεκινάει με [ParPro11-12]. Παραδοτέα Η άσκηση θα πρέπει να παραδοθεί μέχρι την Παρασκευή, 1/6/212 και ώρα 23:59:59. Τα παραδοτέα σας θα αποτελούνται από δύο τμήματα: 1) Μια γραπτή αναφορά, την οποία θα παραδώσετε στις κυρίες Ελένη Μιχαλά και Φωτεινή Γαριδάκη στο Εργαστήριο Πληροφοριακών Συστημάτων Υψηλών Επιδόσεων, το οποίο βρίσκεται στο Κτίριο Β, στον δεύτερο όροφο (στο γραφείο του κ. Παπαθεοδώρου). Στην αναφορά δεν θα πρέπει να περιλαμβάνεται επεξήγηση του ακολουθιακού αλγόριθμου Smith-Waterman (ο οποίος σας δώθηκε εδώ). Επικεντρωθείτε στην επεξήγηση της παραλληλοποίησης που κάνατε με κάθε πρότυπο, στις μετρήσεις σας και στα διαγράμματα που θα προσθέσετε. Σχολιάστε τις διαφορές που βλέπετε για την χρήση διαφορετικών compilers και τις επιπτώσεις της χρήσης βελτιστοποιήσεων στον χρόνο εκτέλεσης της εφαρμογής και (κυρίως) στην χρονοβελτίωση. 2) Η αναφορά σας σε ηλεκτρονική μορφή και ο κώδικας της άσκησης, τα οποία θα παραδωθούν μέσω e-mail στην διεύθυνση iev@hpclab.ceid.upatras.gr. Ο τίτλος θα πρέπει να έχει την μορφή: [ParPro11-12] Παράδοση Άσκησης-Ομάδα XX Ο αριθμός της ομάδας σας θα σας γνωστοποιηθεί μετά την ολοκλήρωση των δηλώσεων των ομάδων και θα πρέπει να αντικαταστήσετε τα XX στον παραπάνω τίτλο με τον αριθμό της ομάδας. Η άσκηση θα μετρήσει στην τελική βαθμολογία ως εξής: 1) 3% για όσους την παραδώσουν τον Ιούνιο. Το υπόλοιπο 7% θα είναι η τελική εξέταση. 2) 2% για όσους την παραδώσουν τον Σεπτέμβριο (ακριβής ημερομηνία θα ανακοινωθεί στο μέλλον). Το υπόλοιπο 8% θα είναι η τελική εξέταση.