Παράλληλοι Υπολογισµοί

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Παράλληλοι Υπολογισµοί"

Transcript

1 Παράλληλοι Υπολογισµοί Τµήµα Πληροφορικής και Τηλεπικοινωνιών, ΕΚΠΑ 30 Μαρτίου 2009 (Τµήµα Πληροφορικής και Τηλεπικοινωνιών, ΕΚΠΑ) Παράλληλοι Υπολογισµοί 30 Μαρτίου / 66

2 Περιεχόµενα Βασικές έννοιες MPI Συναρτήσεις MPI Συναρτήσεις διαχείρισης περιβάλλοντος Συναρτήσεις σηµείου προς σηµείο επικοινωνίας Συναρτήσεις συλλογικής επικοινωνίας Τοπολογίες Παράλληλες επαναληπτικές Μέθοδοι Η µέθοδος R/B SOR Η µέθοδος R/B/G/O SOR Αριθµητικά αποτελέσµατα µεθόδου R/B SOR. Συναρτήσεις υλοποίησης µεθόδων µε χρήση οριζόντιας διαµέρισης. Συναρτήσεις διαχωρισµού σε strips και blocks Συναρτήσεις επικοινωνίας Συναρτήσεις υπολογισµού των κόµβων του πλέγµατος Η µέθοδος Jacobi Συνάρτηση υπολογισµού κριτηρίου διακοπής. (Τµήµα Πληροφορικής και Τηλεπικοινωνιών,) Παράλληλοι Υπολογισµοί 30 Μαρτίου / 66

3 Βασικές έννοιες MPI ιεργασία (process) Μια δραστηριότητα (activity), µια οντότητα (entity) ή ένα αφηρηµένο αντικείµενο (abstract object), που καταλαµβάνει ή απασχολεί τους πόρους (resources), της µηχανής. MPI Αποτελεί µια ϐιβλιοθήκη. Μια διεργασία MPI αποτελείται από ένα πρόγραµµα σε C το οποίο επικοινωνεί µε άλλες διεργασίες χρησιµοποιώντας MPI συναρτήσεις. Χειριστής (handle) Το MPI υποστηρίζει εσωτερικές δοµές δεδοµένων που έχουν σχέση µε τις επικοινωνίες και καθορίζονται από τον χρήστη µέσω των χειριστών. Οι χειριστές επιστρέφουν στον χρήστη από κάποιες MPI κλήσεις και µπορούν να χρησιµοποιηθούν από άλλες MPI κλήσεις. (Τµήµα Πληροφορικής και Τηλεπικοινωνιών,) Παράλληλοι Υπολογισµοί 30 Μαρτίου / 66

4 Βασικές έννοιες MPI Μεταδότης (communicator) Ο Μεταδότης είναι ένας χειριστής (handle), ο οποίος αντιπροσωπεύει µία οµάδα (group) διεργασιών που µπορούν να επικοινωνούν µεταξύ τους και οι οποίες δεν είναι απαραίτητο να ανήκουν όλες στο ίδιο πρόγραµµα MPI. Αρκεί να ανήκουν όλες στον ίδιο Μεταδότη. Βασικός Μεταδότης είναι ο MPI COMM WORLD. Ο µεταδότης αυτός δηµιουργείται αυτόµατα από το MPI και περιέχει όλες τις διεργασίες που δηµιουργούνται όταν αρχίζει η εκτέλεση του προγράµµατος. Μπορούµε να ορίσουµε επιπλέον Μεταδότες, οι οποίοι ϑα αποτελούνται από υποσύνολα των διαθέσιµων διεργασιών, προκειµένου να µπορούµε να οργανώσουµε τις διεργασίες σε διαφορετικές τοπολογίες. Παρατήρηση: Εκτός από τον Μεταδότη MPI COMM WORLD, µπορούµε να δηµιουργήσουµε και έναν δεύτερο, ο οποίος ϑα περιέχει τις διεργασίες οργανωµένες σύµφωνα µε τη δοµή ενός πίνακα δύο διαστάσεων. Για παράδειγµα, όταν έχουµε καρτεσιανή τοπολογία. (Τµήµα Πληροφορικής και Τηλεπικοινωνιών,) Παράλληλοι Υπολογισµοί 30 Μαρτίου / 66

5 Βασικές έννοιες MPI Σηµείο προς σηµείο επικοινωνία ( Point to Point Communication): Ενα µήνυµα αποστέλλεται από την διεργασία αποστολέα στην διεργασία παραλήπτη. Στην διεργασία αποστολέα, συµβαίνουν τα ακόλουθα γεγονότα το ένα µετά το άλλο. Τα δεδοµένα αντιγράφονται στον αποθηκευτικό χώρο του χρήστη (user buffer)από τον χρήστη Ο χρήστης καλεί µια από τις συναρτήσεις αποστολής του MPI Το σύστηµα αντιγράφει τα δεδοµένα από τον αποθηκευτικό χώρο του χρήστη στον αποθηκευτικό χώρο του συστήµατος (system buffer) Το σύστηµα στέλνει τα δεδοµένα από τον αποθηκευτικό χώρο του συστήµατος στην διεργασία προορισµού. (Τµήµα Πληροφορικής και Τηλεπικοινωνιών,) Παράλληλοι Υπολογισµοί 30 Μαρτίου / 66

6 ... Βασικές έννοιες MPI... Ο όρος αποθηκευτικός χώρος του χρήστη εννοεί µεγέθη µεταβλητών ή πινάκων που χρησιµοποιούνται από το σύστηµα. Στην διεργασία παραλήπτη, συµβαίνουν τα ακόλουθα γεγονότα το ένα µετά το άλλο. Ο χρήστης καλεί µια από τις συναρτήσεις λήψης του MPI Το σύστηµα λαµβάνει τα δεδοµένα από την πηγαία διεργασία και τα αντιγράφει στον αποθηκευτικό χώρο του συστήµατος Το σύστηµα αντιγράφει τα δεδοµένα από τον αποθηκευτικό χώρο του συστήµατος στον αποθηκευτικό χώρο του χρήστη. Ο χρήστης χρησιµοποιεί τα δεδοµένα που ϐρίσκονται στον αποθηκευτικό χώρο του χρήστη. (Τµήµα Πληροφορικής και Τηλεπικοινωνιών,) Παράλληλοι Υπολογισµοί 30 Μαρτίου / 66

7 ... Βασικές έννοιες MPI... Σχήµα: Κίνηση δεδοµένων σε µια σηµείο προς σηµείο επικοινωνία (Τµήµα Πληροφορικής και Τηλεπικοινωνιών,) Παράλληλοι Υπολογισµοί 30 Μαρτίου / 66

8 Βασικές έννοιες MPI Αναστέλλουσα ή εµποδιστική επικοινωνία ( Blocking Communication) Είναι οι συναρτήσεις οι οποίες αναστέλλουν την εκτέλεση της διεργασίας που τις καλεί. Αυτό σηµαίνει ότι µια διεργασία που την καλεί ϑα περιµένει µέχρι να ληφθεί κάποιο µήνυµα.τέτοιες συναρτήσεις είναι οι MPI Send, MPI Recv. Μη Αναστέλλουσα ή µη εµποδιστική επικοινωνία ( Non Blocking Communication) Είναι οι συναρτήσεις οι οποίες επιτρέπουν στην καλούσα διεργασία να συνεχίσει την εκτέλεσή της.τέτοιες συναρτήσεις είναι οι MPI ISend, MPI IRecv. Συλλογική επικοινωνία ( Collective Communication) Η κλήση αφορά όλες τις διεργασίες µιας οµάδας.για παράδειγµα, αποστολή του ίδιου µηνύµατος σε όλες τις διεργασίες µιας οµάδας (Broadcast). (Τµήµα Πληροφορικής και Τηλεπικοινωνιών,) Παράλληλοι Υπολογισµοί 30 Μαρτίου / 66

9 ...Συναρτήσεις MPI... Συναρτήσεις ιαχείρησης περιβάλλοντος : MPI Init και MPI Finalize. Η σύνταξη τους είναι η εξής: Για την αρχικοποίηση του MPI int MPI Init(int argc, char argv); argc: Ο αριθµός των παραµέτρων που δίνονται στη γραµµή εντολών όταν εκτελείται το πρόγραµµα. argv: Πίνακας χαρακτήρων ο οποίος περιέχει αυτές τις παραµέτρους. Για τον τερµατισµό του MPI. int MPI Finalize(void); (Τµήµα Πληροφορικής και Τηλεπικοινωνιών,) Παράλληλοι Υπολογισµοί 30 Μαρτίου / 66

10 ...Συναρτήσεις MPI... MPI Comm size. Προσδιορισµός πλήθους διεργασιών που υπάρχουν σε ένα µεταδότη. int MPI Comm size (int MPI Comm comm, int size); size: Αριθµός διεργασιών που περιέχονται στον Μεταδότη comm = MPI COMM WORLD. (Τµήµα Πληροφορικής και Τηλεπικοινωνιών,) Παράλληλοι Υπολογισµοί 30 Μαρτίου / 66

11 ...Συναρτήσεις MPI... MPI Comm rank. Προσδιορισµός της τάξης µιας διεργασίας σε ένα Μεταδότη. int MPI Comm rank (MPI Comm comm, int rank); comm = MPI COMM WORLD Ο Μεταδότης στον οποίο ανήκουν όλες οι διεργασίες. rank: Στην παράµετρο αυτή επιστρέφεται η τάξη της διεργασίας η οποία κάνει την κλήση, δηλ., δηλώνει τον αριθµό που αντιστοιχεί σε κάθε διεργασία. (Τµήµα Πληροφορικής και Τηλεπικοινωνιών,) Παράλληλοι Υπολογισµοί 30 Μαρτίου / 66

12 ...Συναρτήσεις MPI... MPI Get processor name ήλωση ονόµατος επεξεργαστή στον οποίο εκτελείτε µια διεργασία. int MPI Get processor name (char processor name, int namelen); processor name : Η ενδιάµεση µνήµη στην οποία επιστρέφεται ένα string µε το όνοµα του επεξεργαστή. Πρέπει να έχει µέγεθος τουλάχιστον, όσο είναι η τιµή της σταθεράς MPI MAX PROCESSOR NAME. namelen : Το µήκος του string σε χαρακτήρες. (Τµήµα Πληροφορικής και Τηλεπικοινωνιών,) Παράλληλοι Υπολογισµοί 30 Μαρτίου / 66

13 ...Συναρτήσεις MPI... MPI Comm free Απελευθερώνει τους πόρους του συστήµατος που σχετίζονται µε τον µεταδότη comm. int MPI Comm free (MPI Comm comm); MPI Wtime(). Αποτελεί κλήση συστήµατος για τον υπολογισµό της ώρας σε κλάσµατα δευτερολέπτου. Η σύνταξη της είναι η εξής: double MPI Wtime (void). (Τµήµα Πληροφορικής και Τηλεπικοινωνιών,) Παράλληλοι Υπολογισµοί 30 Μαρτίου / 66

14 ...Συναρτήσεις MPI... Παράδειγµα /* ήλωση µεταβλητών*/ /*Συνάρτηση αρχικοποίησης MPI*/ MPI Init(&argc, &argv); /*Εύρεση τάξης διεργασίας σε ένα µεταδότη*/ MPI Comm rank(mpi COMM WORLD, &my rank) /*Εύρεση αριθµού διεργασιών που υπάρχουν σε ένα µεταδότη*/ MPI Comm size(mpi COMM WORLD, &size) /*Εύρεση ονόµατος επεξεργαστή στον οποίο εκτελείτε µια διεργασία*/ MPI Get processor name(proc name, &namelen) /*Εντολές*/ /*Συνάρτηση τερµατισµού */ MPI Finalize(); (Τµήµα Πληροφορικής και Τηλεπικοινωνιών,) Παράλληλοι Υπολογισµοί 30 Μαρτίου / 66

15 ... Συναρτήσεις MPI... Συναρτήσεις σηµείου προς σηµείο επικοινωνίας Στην σηµείο προς σηµείο επικοινωνία πάντα εµπλέκονται ακριβώς δύο διεργασίες. Η µια διεργασία στέλνει ένα µήνυµα στην άλλη. Αυτό τις διακρίνει σε σχέση µε άλλες συναρτήσεις επικοινωνίας του MPI, όπως οι συλλογικές επικοινωνίες. Σχήµα: Στην σηµείο προς σηµείο επικοινωνία µία διεργασία στέλνει µήνυµα σε µια άλλη συγκεκριµένη διεργασία. (Τµήµα Πληροφορικής και Τηλεπικοινωνιών,) Παράλληλοι Υπολογισµοί 30 Μαρτίου / 66

16 ... Συναρτήσεις MPI... MPI Send Η συνάρτηση αυτή στέλνει ένα µήνυµα αναστέλλοντας την εκτέλεση της διεργασίας αποστολέα. int MPI Send(void buf, int count, MPI Datatype datatype, int dest, int tag, MPI Comm comm) όπου buf : Η διεύθυνση αρχής της ενδιάµεσης µνήµης όπου ϐρίσκεται το προς αποστολή µήνυµα. count : Το πλήθος των προς αποστολή στοιχείων (µέγεθος της ενδιάµεσης µνήµης). datatype : Τύπος δεδοµένων που αποστέλλονται (MPI INT για ακέραιο, MPI CHAR για χαρακτήρα, MPI DOUBLE για αριθµό διπλής ακρίβειας, κ.λ.π.). dest : Είναι η διεργασία προορισµού για το µήνυµα. Καθορίζεται από την τάξη της διεργασίας προορισµού µέσα στην οµάδα που σχετίζεται µε τον Μεταδότη comm tag : Είναι µια ετικέτα που χρησιµοποιείται από τον αποστολέα για να διακρίνει διαφορετικούς τύπους µηνυµάτων. Η ετικέτα αυτή χρησιµοποιείται από τον προγραµµατιστή για τον απόλυτο καθορισµό των µηνυµάτων. Μπορεί να επιλεγεί οποιοσδήποτε ακέραιος αριθµός µεταξύ 0 και comm : Είναι ο Μεταδότης στον οποίο ϐρίσκονται οι διεργασίες αποστολής και λήψης. Μόνο οι διεργασίες που ϐρίσκονται στον ίδιο µεταδότη µπορούν να επικοινωνήσουν. (Τµήµα Πληροφορικής και Τηλεπικοινωνιών,) Παράλληλοι Υπολογισµοί 30 Μαρτίου / 66

17 ... Συναρτήσεις MPI... Σχήµα: MPI Send.Η διεργασία αποστολέας ελπίζει ότι η άλλη διεργασία ϑα παραλάβει το µήνυµα. (Τµήµα Πληροφορικής και Τηλεπικοινωνιών,) Παράλληλοι Υπολογισµοί 30 Μαρτίου / 66

18 ... Συναρτήσεις MPI... MPI Recv Η συνάρτηση αυτή λαµβάνει ένα µήνυµα αναστέλλοντας την εκτέλεση της διεργασίας-παραλήπτη. int MPI Recv(void buf, int count, MPI Datatype datatype, int source, int tag, MPI Comm comm, MPI Status status) όπου buf count datatype source tag comm status : Η διεύθυνση αρχής της ενδιάµεσης µνήµης στην οποίο ϑα αποθηκευθεί το µήνυµα. : Το µέγιστο πλήθος στοιχείων που ϑα ληφθούν. : Ο τύπος των δεδοµένων που ϑα ληφθούν σε κάθε στοιχείο. : Η τάξη της διεργασίας-αποστολέα. : Ο τύπος του µηνύµατος. : Ο µεταδότης στον οποίο ανήκει η διεργασία αποστολέας. : Επιστρέφει πληροφορίες σχετικά µε το αποτέλεσµα του receive. (Τµήµα Πληροφορικής και Τηλεπικοινωνιών,) Παράλληλοι Υπολογισµοί 30 Μαρτίου / 66

19 ... Συναρτήσεις MPI... MPI Status status. Η συνάρτηση MPI Status χρησιµοποιείται για να δηλώσει την µεταβλητή status η οποία χρησιµοποιείται για να λάβει πληροφορίες σχετικές µε το µέγεθος, το tag και την πηγαία διεργασία του µηνύµατος που λαµβάνεται. (Τµήµα Πληροφορικής και Τηλεπικοινωνιών,) Παράλληλοι Υπολογισµοί 30 Μαρτίου / 66

20 ... Συναρτήσεις MPI... Παράδειγµα... Πρόγραµµα κατά το οποίο όλοι οι επεξεργαστές εκτός του 0 τυπώνουν το µήνυµα hello ενώ ο επεξεργαστής 0 λαµβάνει το µήνυµα. #include < stdio.h > #include mpi.h int main(argc, argv) int argc; char argv[]; { int myrank; / Rank of process / int numprocs; / Number of processes / int source; / Rank of sender / int dest; / Rank of receiver / char message[100]; / Storage for the message / MPI Status status; / Return status for receive / MPI Init(&argc, &argv); MPI Comm size(mpi COMM WORLD, &numprocs); MPI Comm rank(mpi COMM WORLD, &myrank); (Τµήµα Πληροφορικής και Τηλεπικοινωνιών,) Παράλληλοι Υπολογισµοί 30 Μαρτίου / 66

21 ... Συναρτήσεις MPI......Παράδειγµα if (myrank! = 0) / My rank is not 0, so I must send greeting / {sprintf(message, Greetings from process %d!, myrank); dest = 0; / Use strlen(message) + 1 to include 0 / MPI Send(message, strlen(message) + 1, MPI CHAR, dest, 15, MPI COMM WORLD); } else { / My rank is 0, so I must receive the greetings / for(source = 1; source < numprocs; source + +) {MPI Recv(message, 100, MPI CHAR, source, 15, MPI COMM WORLD, &status); printf( %s, message); } } MPI Finalize(); } (Τµήµα Πληροφορικής και Τηλεπικοινωνιών,) Παράλληλοι Υπολογισµοί 30 Μαρτίου / 66

22 ... Συναρτήσεις MPI... Συναρτήσεις συλλογικής επικοινωνίας. MPI Bcast Αποστέλλει το ίδιο µήνυµα από τη διεργασία-ϱίζα σε όλες τις υπόλοιπες διεργασίες. int MPI Bcast(void buffer, int count, MPI Datatype datatype, int root, MPI Comm comm) όπου buffer : Η διεύθυνση της ενδιάµεσης µνήµης που περιέχει το προς αποστολή µήνυµα. count : Ο αριθµός των στοιχείων που υπάρχουν στην ενδιάµεση µνήµη. datatype : Ο τύπος δεδοµένων της ενδιάµεσης µνήµης. root : Η τάξη της διεργασίας-ϱίζας. comm : Ο Μεταδότης της συλλογικής επικοινωνίας. (comm = MPI COMM WORLD) (Τµήµα Πληροφορικής και Τηλεπικοινωνιών,) Παράλληλοι Υπολογισµοί 30 Μαρτίου / 66

23 Σχήµα: MPI Bcast. Η διεργασία 0 στέλνει τον αριθµό στις διεργασίες 1 και 2. (Τµήµα Πληροφορικής και Τηλεπικοινωνιών,) Παράλληλοι Υπολογισµοί 30 Μαρτίου / 66

24 ... Συναρτήσεις MPI... MPI Barrier. Χρησιµοποιείται για να συγχρονίσει όλες τις διεργασίες οι οποίες συµµετέχουν σε µια συλλογική επικοινωνία. int MPI Barrier (MPI Comm comm), όπου comm(= MPI COMM WORLD) είναι ο Μεταδότης της συλλογικής επικοινωνίας. (Τµήµα Πληροφορικής και Τηλεπικοινωνιών,) Παράλληλοι Υπολογισµοί 30 Μαρτίου / 66

25 ... Συναρτήσεις MPI... MPI Reduce Η συνάρτηση MPI Reduce επιτρέπει µια ή περισσότερες λειτουργίες ϱύθµισης στις τιµές που υποβλήθηκαν από όλες τις διεργασίες στον Μεταδότη. int MPI Reduce(void sendbuf, void recvbuf, int count, MPI Datatype datatype, MPI Op op, int root, MPI Comm comm) όπου, sendbuf : Η διεύθυνση αρχής της ενδιάµεσης µνήµης αποστολής recvbuf : Η διεύθυνση αρχής της ενδιάµεσης µνήµης λήψης count : Το πλήθος των στοιχείων που υπάρχουν στην ενδιάµεση µνήµη αποστολής. datatype : Ο τύπος δεδοµένων της ενδιάµεσης µνήµης. op : Ο τελεστής ϱύθµισης root : Η τάξη της διεργασίας-ϱίζας. comm : Ο Μεταδότης στον οποίο ανήκουν οι διεργασίες. Παρατήρηση: Η συνάρτηση MPI Reduce καλείται από όλες τις διεργασίες χρησιµοποιώντας τα ίδια ορίσµατα για τις παραµέτρους count, datatype, op και root. Αν µια ακολουθία στοιχείων εκχωρήθηκε σε µια διεργασία, τότε η λειτουργία ϱύθµισης πρόκειται να εκτελεστεί στοιχείο προς στοιχείο, σε κάθε είσοδο της ακολουθίας. (Τµήµα Πληροφορικής και Τηλεπικοινωνιών,) Παράλληλοι Υπολογισµοί 30 Μαρτίου / 66

26 ... Συναρτήσεις MPI... Σχήµα: MPI Reduce για απλές µεταβλητές. (Τµήµα Πληροφορικής και Τηλεπικοινωνιών,) Παράλληλοι Υπολογισµοί 30 Μαρτίου / 66

27 ... Συναρτήσεις MPI... Σχήµα: MPI Reduce για πίνακες. (Τµήµα Πληροφορικής και Τηλεπικοινωνιών,) Παράλληλοι Υπολογισµοί 30 Μαρτίου / 66

28 ...Συναρτήσεις MPI... Προκαθορισµένοι τελεστές MPI MAX Υπολογισµός του µέγιστου MPI MIN Υπολογισµός του ελάχιστου MPI SUM Υπολογισµός του αθροίσµατος MPI PROD Υπολογισµός του γινοµένου MPI LAND Υπολογισµός του λογικού AND MPI BAND Υπολογισµός του bitwise AND MPI LOR Υπολογισµός του λογικού OR MPI BOR Υπολογισµός του bitwise OR MPI LXOR Υπολογισµός του λογικού αποκλειστικού OR MPI BXOR Υπολογισµός του bitwise αποκλειστικού OR (Τµήµα Πληροφορικής και Τηλεπικοινωνιών,) Παράλληλοι Υπολογισµοί 30 Μαρτίου / 66

29 ... Συναρτήσεις MPI... Παράδειγµα... Πρόγραµµα που ϑα υπολογίζει το άθροισµα των τετραγώνων n 2 µε χρήση των συναρτήσεων MPI Bcast() και MPI Reduce(). #include < stdio.h > #include mpi.h main(int argc, char argv) { intmy rank, p, k, root, a1 local, a2 local, local num, endnum, local res, final res, namelen; charproc name[mpi MAX PROCESSOR NAME]; MPI Init(&argc, &argv); MPI Comm rank(mpi COMM WORLD, &my rank); MPI Comm size(mpi COMM WORLD, &p); MPI Get processor name(proc name, &namelen); (Τµήµα Πληροφορικής και Τηλεπικοινωνιών,) Παράλληλοι Υπολογισµοί 30 Μαρτίου / 66

30 ... Συναρτήσεις MPI......Παράδειγµα if(my rank == 0) { printf( Dose plithos arithmwn : ); scanf( %d, &endnum); } root = 0; MPI Bcast(&endnum, 1, MPI INT, root, MPI COMM WORLD); local res = 0; local num = endnum/p; a1 local = (my rank local num) + 1; a2 local = a1 local + local numffl1; for(k = a1 local; k <= a2 local; k + +) local res = local res + (k k); printf( Process %d on %s : local result = %d, my rank, proc name, local res); root = 0; MPI Reduce(&local res, &final res, 1, MPI INT, MPI SUM, root, MPI COMM WORLD); if(my rank == 0) { printf( Total result for N = %d is equal to : %d, endnum, final res); } MPI Finalize(); (Τµήµα Πληροφορικής και Τηλεπικοινωνιών,) Παράλληλοι Υπολογισµοί 30 Μαρτίου / 66

31 ... Συναρτήσεις MPI... MPI Allreduce Η συνάρτηση είναι παρόµοια µε την MPI Reduce µε τη διαφορά ότι συνδυάζει τιµές από όλες τις διεργασίες και στέλνει το αποτέλεσµα πίσω σε όλες τις διεργασίες (συµπεριλαµβανοµένου του εαυτού της). int MPI Allreduce(void sendbuf, void recvbuf, int count, MPI Datatype datatype, MPI Op op, MPI Comm comm) όπου sendbuf : Η διεύθυνση αρχής της ενδιάµεσης µνήµης αποστολής. recvbuf : Η διεύθυνση αρχής της ενδιάµεσης µνήµης λήψης. count : Το πλήθος των στοιχείων που υπάρχουν στην ενδιάµεση µνήµη αποστολής. datatype : Ο τύπος δεδοµένων της ενδιάµεσης µνήµης. op : Ο τελεστής ϱύθµισης comm : Ο Μεταδότης στον οποίο ανήκουν οι διεργασίες. (Τµήµα Πληροφορικής και Τηλεπικοινωνιών,) Παράλληλοι Υπολογισµοί 30 Μαρτίου / 66

32 ... Συναρτήσεις MPI... Σχήµα: MPI Allreduce. (Τµήµα Πληροφορικής και Τηλεπικοινωνιών,) Παράλληλοι Υπολογισµοί 30 Μαρτίου / 66

33 Τοπολογίες Τοπολογία του υπολογιστή ή τοπολογία του δικτύου διασύνδεσης: Η περιγραφή του τρόπου µε την οποία συνδέονται οι διεργασίες σε έναν παράλληλο υπολογιστή. Εικονική τοπολογία (virtual topology) Στα περισσότερα παράλληλα προγράµµατα, κάθε διεργασία επικοινωνεί άµεσα µόνο µε κάποιες άλλες διεργασίες. Ο τρόπος αυτής της επικοινωνίας µεταξύ των διεργασιών καλείται εικονική τοπολογία. Ο κύριος σκοπός της δηµιουργίας εικονικών τοπολογιών είναι η απλούστευση του κώδικα. (Τµήµα Πληροφορικής και Τηλεπικοινωνιών,) Παράλληλοι Υπολογισµοί 30 Μαρτίου / 66

34 ... Τοπολογίες... Είδη εικονικών τοπολογιών Καρτεσιανές εικονικές τοπολογίες Κάθε διεργασία είναι συνδεδεµένη µε τους γείτονές της σε µία διάταξη εικονικού πλέγµατος (µε ή χωρίς εξωτερικές συνδέσεις). Η τάξη κάθε διεργασίας εξαρτάται από τη ϑέση της στο πλέγµα και υπάρχει η έννοια των συντεταγµένων µιας διεργασίας. Εικονικές τοπολογίες γραφηµάτων Κάθε διεργασία µπορεί να είναι συνδεδεµένη µε οποιεσδήποτε άλλες διεργασίες. Η αρίθµηση των διεργασιών είναι αυθαίρετη, και ϕυσικά, δεν υπάρχει η έννοια των συντεταγµένων µιας διεργασίας. (Τµήµα Πληροφορικής και Τηλεπικοινωνιών,) Παράλληλοι Υπολογισµοί 30 Μαρτίου / 66

35 ... Τοπολογίες... Συναρτήσεις καρτεσιανής τοπολογίας MPI Cart create Η συνάρτηση αυτή δηµιουργεί µια καρτεσιανή διάσπαση των διεργασιών επιστρέφοντας ένα δείκτη σε ένα νέο µεταδότη που περιέχει πληροφορίες για την καρτεσιανή τοπολογία των διεργασιών. int MPI Cart create (MPI Comm old commn, int ndims, int dims, int periods, int reorder, MPI Comm new comm) όπου old comm : Υπάρχων µεταδότης. Εξ ορισµού είναι ο MPI COMM WORLD. Αποτελεί µεταβλητή εισόδου. ndims : Περιέχει το πλήθος των διαστάσεων του πλέγµατος για την εικονική τοπολογία. dims : Πίνακας µεγέθους ndims ο οποίος δείχνει το πλήθος των διεργασιών σε κάθε διάσταση, δηλ., το µήκος κάθε διάστασης. Π.χ. η είσοδος j δηλώνει τον αριθµό των διεργασιών στην διάσταση j. periods : Πίνακας µεγέθους ndims ο οποίος προσδιορίζει την κατάσταση περιοδικότητας σε κάθε διάσταση και περιέχει ένα στοιχείο για κάθε διάσταση της τοπολογίας. reorder : Επιτρέπει την αναδιάταξη των διεργασιών. new comm : Νέος µεταδότης για την καρτεσιανή τοπολογία. Αποτελεί µεταβλητή εξόδου. (Τµήµα Πληροφορικής και Τηλεπικοινωνιών,) Παράλληλοι Υπολογισµοί 30 Μαρτίου / 66

36 ... Τοπολογίες... MPI Cart shift Κάθε διεργασία, χρειάζεται να στείλει και να λάβει δεδοµένα από τους γείτονες της. Σε µια µονοδιάστατη διάσπαση, υπάρχουν γείτονες πάνω και κάτω. Εποµένως αυτό που χρειάζεται είναι η εύρεση των γειτόνων. int MPI Cart shift(mpi Comm comm, int direction, int disp, int rank source, int rank dest) όπου comm : Ο µεταδότης της Καρτεσιανής τοπολογίας direction : ηλώνει την κατεύθυνση µετακίνησης. Παίρνει τιµές µεταξύ 0 και ndims 1. disp : Είναι ο αριθµός των συντεταγµένων διεργασίας στην κατεύθυνση στην οποία έχουµε µετακίνηση. Ο αριθµός αυτός µπορεί να είναι ϑετικός ή αρνητικός. Αν είναι ϑετικός έχουµε κατακόρυφη µετακίνηση ενώ αν είναι αρνητικός έχουµε οριζόντια µετακίνηση. rank source : ηλώνει την τάξη της διεργασίας αποστολέα (πηγής) µετά την µετακίνηση rank dest : ηλώνει την τάξη της διεργασίας παραλήπτη (προορισµού) µετά την µετακίνηση. (Τµήµα Πληροφορικής και Τηλεπικοινωνιών,) Παράλληλοι Υπολογισµοί 30 Μαρτίου / 66

37 Παράδειγµα / Initialization / / Get a new communicator for a decomposition of the domain / ndims = 1; / number of dimentions / dims[0] = size; / number of processes / periods[0] = 0; / indicate whether the processes at the ends are connected / reorder = 1; / we allow to MPI to find a good way to assign the process to the elements of the decomposition / / MPI Cart create, creates a new communicator in the sixth argument from the communicator in the first argument / MPI Cart create(mpi COMM WORLD, ndims, dims, periods, reorder, &new comm); / Get my position in this communicator / MPI Comm rank(new comm, &rank); / Get my neighbors in this communicator / MPI Cart shift(new comm, 0, 1, &nbrbottom, &nbrtop); / Compute the actual decomposition / MPE DECOMP1D(nx, size, rank, &s, &e); / printf( I m process %d with neighbors %d and %d and s = %d, e = %d, rank, nbrbottom, nbrtop, s, e); / MPI Barrier(MPI COMM WORLD); (Τµήµα Πληροφορικής και Τηλεπικοινωνιών,) Παράλληλοι Υπολογισµοί 30 Μαρτίου / 66

38 Το πρόβληµα µοντέλο Εξίσωση Poisson > Ελλειπτική Μερική ιαφορική Εξίσωση (Μ Ε) 2 u x + 2 u + f(x, y) = 2 0 (1) y2 h = 1 n + 1, x i = ih, y j = jh, u i,j > u στο (x i, y j ) u i+1,j + u i 1,j + u i,j+1 + u i,j 1 4u i,j + h 2 f i,j = 0 (2) Σχήµα: Μόριο 5 σηµείων. (Τµήµα Πληροφορικής και Τηλεπικοινωνιών,) Παράλληλοι Υπολογισµοί 30 Μαρτίου / 66

39 ... Το πρόβληµα µοντέλο... SOR u (n+1) i,j = (1 ω)u (n) i,j + ω 4 (h2 f i,j + u (n+1) i 1,j + u (n+1) i,j 1 + u (n) i,j+1 + u(n) i+1,j ), για i, j = 1(1)n SSOR u (n+1/2) i,j = (1 ω)u (n) i,j + ω 4 (h2 f i,j + u (n+1/2) i 1,j + u (n+1/2) i,j 1 + u (n) i,j+1 + u(n) i+1,j ), για i, j = 1(1)n u (n+1) i,j = (1 ω)u (n+1/2) i,j + ω 4 (h2 f i,j + u (n+1/2) i 1,j + u (n+1/2) i,j 1 + u (n+1) i,j+1 + u (n+1) i+1,j ), για i, j = n( 1)1 (Τµήµα Πληροφορικής και Τηλεπικοινωνιών,) Παράλληλοι Υπολογισµοί 30 Μαρτίου / 66

40 ... Το πρόβληµα µοντέλο... u (n+1/2) i,j = (1 τ)u (n) i,j + ω 4 (u(n+1/2) i 1,j + τ 4 (u(n) i+1,j + u (n) i,j+1 + τ 4 h2 f i,j, PSD + u (n+1/2) i,j 1 ) + τ ω 4 (u (n) i 1,j + u (n) i,j 1 )+ για i, j = 1(1)n u (n+1) i,j = u (n+1/2) i,j + ω 4 (u(n+1) i+1,j + u (n+1) i,j+1 ) ω 4 (u(n) i+1,j + u (n) i,j+1 ), για i, j = n( 1)1 Σχήµα: Φυσική διάταξη. (Τµήµα Πληροφορικής και Τηλεπικοινωνιών,) Παράλληλοι Υπολογισµοί 30 Μαρτίου / 66

41 Το πρόβληµα µοντέλο -Μέθοδος SOR SOR: Μέθοδος απόλυτα ακολουθιακή u (n+1) i,j = (1 ω)u (n) i,j + ω 4 (h2 f i,j + u (n+1) i 1,j + u (n+1) i,j 1 + u (n) i,j+1 + u(n) i+1,j ), για i, j = 1(1)n Σχήµα: L = D 1 C L (Τµήµα Πληροφορικής και Τηλεπικοινωνιών,) Παράλληλοι Υπολογισµοί 30 Μαρτίου / 66

42 Το πρόβληµα µοντέλο -Μέθοδος R/B SOR R/B SOR: Μέθοδος απόλυτα παραλληλοποιήσιµη Red points Black points u (n+1) i,j u (n+1) i,j = (1 ω)u (n) i,j + ω 4 (h2 f i,j + u (n) i 1,j + u (n) i,j 1 + u(n) i,j+1 + u(n) i+1,j ), = (1 ω)u (n) i,j + ω 4 (h2 f i,j + u (n+1) i 1,j + u (n+1) i,j 1 + u(n+1) i,j+1 + u (n+1) i+1,j ), για i, j = 1(1)n για i, j = 1(1)n Σχήµα: Red-Black διάταξη (Τµήµα Πληροφορικής και Τηλεπικοινωνιών,) Παράλληλοι Υπολογισµοί 30 Μαρτίου / 66

43 Επικοινωνία R/B SOR (Τµήµα Πληροφορικής και Τηλεπικοινωνιών,) Παράλληλοι Υπολογισµοί 30 Μαρτίου / 66

44 Αλγόριθµος R/B SOR Για n = 1, 2,, p Β1: Υπολογισµός του u (k+1) i,j στο Ω h,n χρησιµοποιώντας την u (k+1) i,j = (1 ω)u (k) i,j + ω 4 (h2 f i,j + u (k) i 1,j + u (k) i,j 1 + u(k) i,j+1 + u(k) i+1,j ), Β2: Στείλε το u (k+1) i,j του Ω 1 h,n από τον επεξεργαστή n στον n-1 για n = 2, 3,, p. Β3: Στείλε το u (k+1) i,j του Ω n h,n από τον επεξεργαστή n στον n+1 για n = 1, 2, 3,, p 1. Β4: Υπολογισµός του u (k+1) i,j στο Ω h,n χρησιµοποιώντας την u (k+1) i,j = (1 ω)u (k) i,j + ω 4 (h2 f i,j + u (k+1) i 1,j + u (k+1) i,j 1 + u(k+1) i,j+1 + u(k+1) i+1,j ), Β5: Στείλε το u (k+1) i,j του Ω 1 h,n από τον επεξεργαστή n στον n-1 για n = 2, 3,, p. Β6: Στείλε το u (k+1) i,j του Ω n h,n από τον επεξεργαστή n στον n+1 για n = 1, 2, 3,, p 1. (Τµήµα Πληροφορικής και Τηλεπικοινωνιών,) Παράλληλοι Υπολογισµοί 30 Μαρτίου / 66

45 ... Αλγόριθµος R/B SOR Σχήµα: Οριζόντια διαµέριση Συµπέρασµα Στην R/B SOR η σειρά των υπολογισµών τροποποιείται σε σχέση µε την κανονική SOR µέθοδο, το οποίο σηµαίνει ότι µπορεί το αποτέλεσµα να διαφοροποιείται σε ακρίβεια. (Τµήµα Πληροφορικής και Τηλεπικοινωνιών,) Παράλληλοι Υπολογισµοί 30 Μαρτίου / 66

46 ... Θεωρητικά αποτελέσµατα της R/B SOR Βασικές έννοιες Επιτάχυνση-Απόδοση t s Χρόνος αρχικοποίησης της επικοινωνίας t c Χρόνος υπολογισµού µιας πράξης t w Χρόνος υπολογισµού µιας λέξης T p = N M tc + 4(ts + Ntw) p S p = T1 T p = E p = Sp p = NMt c N M tc + 4(ts + Ntw) p NMt c NMt c + 4p(t s + Nt w) Συµπέρασµα Επειδή είναι S p 1, και επειδή ένα ϐήµα ενός παράλληλου αλγορίθµου χρησιµοποιώντας p επεξεργαστές χρειάζεται p ϐήµατα το πολύ όταν υλοποιηθεί σειριακά, ϑα ισχύει ότι T 1 pt p. Συνεπώς ϑα ισχύει ότι: 1 S p p και 0 E p 1. (Τµήµα Πληροφορικής και Τηλεπικοινωνιών,) Παράλληλοι Υπολογισµοί 30 Μαρτίου / 66

47 Θεωρητικά αποτελέσµατα της R/B SOR p T p S p E p (Τµήµα Πληροφορικής και Τηλεπικοινωνιών,) Παράλληλοι Υπολογισµοί 30 Μαρτίου / 66

48 Μέθοδος R/B/G/O SOR ιακριτοποίηση της εξίσωσης Poisson µε ϐάση τον τύπο των 9 σηµείων 20u i,j 4u i+1,j 4u i 1,j 4u i,j+1 4u i,j 1 u i+1,j 1 u i 1,j 1 u i 1,j+1 u i+1,j+1 = h 2 f i,j, στο Ω h Μόριο 9 σηµείων - Τεσσάρων χρωµάτων διάταξη για το µόριο των 9 σηµείων (Τµήµα Πληροφορικής και Τηλεπικοινωνιών,) Παράλληλοι Υπολογισµοί 30 Μαρτίου / 66

49 Μέθοδος R/B/G/O SOR Red points Black points Green points Orange points u (k+1) i,j u (k+2) i,j u (k+3) i,j u (k+4) i,j = (1 ω)u (k) i,j + ω 5 (u(k) i 1,j + u (k) i,j 1 + u(k) i,j+1 + u(k) i+1,j )+ + ω 20 (h2 f i,j + u (k) i 1,j+1 + u(k) i 1,j 1 + u(k) i+1,j+1 + u(k) i+1,j 1 ) = (1 ω)u (k) i,j + ω 5 (u(k+1) i 1,j + u (k) i,j 1 + u(k) i,j+1 + u(k) i+1,j )+ + ω 20 (h2 f i,j + u (k) i 1,j+1 + u(k) i 1,j 1 + u(k+1) i+1,j+1 + u(k+1) i+1,j 1 ) = (1 ω)u (k) i,j + ω 5 (u(k+2) i 1,j + u (k+1) i,j 1 + u(k+1) i,j+1 + u(k) i+1,j )+ + ω 20 (h2 f i,j + u (k) i 1,j+1 + u(k) i 1,j 1 + u(k+2) i+1,j+1 + u(k+2) i+1,j 1 ) = (1 ω)u (k) i,j + ω 5 (u(k+3) i 1,j + u (k+2) i,j 1 + u(k+2) i,j+1 + u(k+1) i+1,j )+ + ω 20 (h2 f i,j + u (k+1) i 1,j+1 + u(k+1) i 1,j 1 + u(k+3) i+1,j+1 + u(k+3) i+1,j 1 ) (Τµήµα Πληροφορικής και Τηλεπικοινωνιών,) Παράλληλοι Υπολογισµοί 30 Μαρτίου / 66

50 Θεωρητική µελέτη R/B/G/O SOR Σχήµα: Οριζόντια διαµέριση πεδίου Παράλληλοι χρόνοι T comp = N M p t c T comm = 8(t s + Nt w ) (Τµήµα Πληροφορικής και Τηλεπικοινωνιών,) Παράλληλοι Υπολογισµοί 30 Μαρτίου / 66

51 Σύγκριση R/B SOR - R/B/G/O SOR Σύγκριση χρόνων επικοινωνίας Ερώτηµα R/B SOR Tcomm = 4(t s + Nt w ) R/B/G/O SOR Tcomm = 8(t s + Nt w ) Υπάρχει µέθοδος µε την ίδια ταχύτητα σύγκλισης αλλά µε µικρότερη επικοινωνία (Τµήµα Πληροφορικής και Τηλεπικοινωνιών,) Παράλληλοι Υπολογισµοί 30 Μαρτίου / 66

52 Αριθµητικά αποτελέσµατα Αρχικές τιµές: u (0) = 1 Συνοριακές συνθήκες: u x = 0, at x = 0, x = 1 Ακριβής λύση: u = 0 h = 1/(n + 1) F(x, y) = 0 ω opt = 2/(1 + sin πh) Υπολογισµός σχετικού σφάλµατος µε ϐάση τον τύπο: όπου. 2 είναι η Ευκλείδεια νόρµα. u (k) u 2/ u (0) u 2 = h 1 h u(k) 2 (Τµήµα Πληροφορικής και Τηλεπικοινωνιών,) Παράλληλοι Υπολογισµοί 30 Μαρτίου / 66

53 ... Αριθµητικά αποτελέσµατα... Η επιτάχυνση δεν αυξάνει γραµµικά µε την αύξηση των επεξεργαστών, αλλά σταδιακά τείνει να γίνει γραµµική εξοµαλύνοντας την οποιαδήποτε κλήση > Νόµος του Amdahl: από ένα πλήθος επεξεργαστών και µετά η επιτάχυνση παραµένει η ίδια. Επειδή η επιτάχυνση δεν µας δίνει κάποια πληροφορία για το πόσο χρήσιµοι είναι οι επεξεργαστές στην ϐελτίωση αυτή, ϑα πρέπει να συσχετίσουµε το όφελος στην ταχύτητα µε το πόσοι επεξεργαστές χρειάζονται για να το επιτύχουµε. Αυτή η συσχέτιση γίνεται µε τον υπολογισµό της αποδοτικότητας. (Τµήµα Πληροφορικής και Τηλεπικοινωνιών,) Παράλληλοι Υπολογισµοί 30 Μαρτίου / 66

54 ... Αριθµητικά αποτελέσµατα... Συµπέρασµα Οσο µεγαλώνει το µέγεθος του προβλήµατος παράγεται µεγαλύτερη επιτάχυνση και αποδοτικότητα για τον ίδιο αριθµό επεξεργαστών, παρόλο που και η επιτάχυνση και η αποδοτικότητα συνεχίζονται να µειώνονται καθώς αυξάνει ο αριθµός των επεξεργαστών. (Τµήµα Πληροφορικής και Τηλεπικοινωνιών,) Παράλληλοι Υπολογισµοί 30 Μαρτίου / 66

55 Χρόνοι Εκτέλεσης της R/B SOR p T p T comp T comm T other (Τµήµα Πληροφορικής και Τηλεπικοινωνιών,) Παράλληλοι Υπολογισµοί 30 Μαρτίου / 66

56 Επαναλήψεις Επεξεργαστές Επαναλήψεις R/B SOR p N = 500 N = 1000 N = (Τµήµα Πληροφορικής και Τηλεπικοινωνιών,) Παράλληλοι Υπολογισµοί 30 Μαρτίου / 66

57 ιαχωρισµός σε Ϲώνες Συνάρτηση διαχωρισµού σε Ϲώνες και καθορισµός ορίων της κάθε διεργασίας void MPE-DECOMP1D(int n, int size, int rank,int *s, int *e) { intnlocal, deficit; /*υπολογισµός του πηλίκου*/ nlocal = n/size; /*υπολογισµός του αριθµού της πρώτης γραµµής σε κάθε Ϲώνη*/ s = 1 + rank nlocal; /*υπολογισµός του υπόλοιπου*/ deficit = n%size; s = s + min(rank, deficit); /*Αν rank >= deficit τότε η τιµή της τελευταίας γραµµής του πλέγµατος ϑα είναι εκτός συνόρων */ if(rank < deficit) nlocal = nlocal + 1; /*υπολογισµός του αριθµού της τελευταίας γραµµής σε κάθε Ϲώνη*/ e = s + nlocal 1; /*αν ο αριθµός που προκύπτει για την τελευταία γραµµή του πλέγµατος είναι µεγαλύτερος από το µέγεθος του πλέγµατος, τότε η τιµή του γίνεται ίση µε το µέγεθος του πλέγµατος, µε αποτέλεσµα στην τελευταία Ϲώνη να περιέχεται το υπόλοιπο των γραµµών του πλέγµατος*/ if( e > n rank == size 1) e = n; return; } (Τµήµα Πληροφορικής και Τηλεπικοινωνιών,) Παράλληλοι Υπολογισµοί 30 Μαρτίου / 66

58 ιαχωρισµός σε blocks Συνάρτηση επιστροφής της ϱίζας του αριθµού των επεξεργαστών που έχουµε προκειµένου να ορίσουµε το µέγεθος του block σε κάθε επεξεργαστή int pow 10(int number) { int i, value; value = 1; for(i = 1; i < 10; + + i) { if(i i == number) { value = i; i = 10; } } return value; } (Τµήµα Πληροφορικής και Τηλεπικοινωνιών,) Παράλληλοι Υπολογισµοί 30 Μαρτίου / 66

59 ιαχωρισµός σε blocks Ορισµός δυναµικού διδιάστατου πίνακα mxn µε τέτοιο τρόπο ώστε να καταχωρείται σε συνεχόµενο block µνήµης, το οποίο απαιτείται από τον MPI Type vector. ηλαδή, η συνάρτηση αυτή δηµιουργεί τα blocks. double matrix 2D(int m, int n) { int i; double a; a = new double [n]; a[0] = new double[m n]; for(i = 1; i < n; i + +) { a[i] = a[0] + i n; } return a; } (Τµήµα Πληροφορικής και Τηλεπικοινωνιών,) Παράλληλοι Υπολογισµοί 30 Μαρτίου / 66

60 ιαχωρισµός σε blocks Καταχωρεί τις συνοριακές τιµές κάθε block σε κάθε cpu... void bc(int m, int n, double u, int k, int p) { int i, val; val = pow 10(p); init array(m, n, u); if (p > 1) / An exoume pano apo mia cpu / { / An einai i process = 0 tote : i sinoriaki stili aristera einai miden i sinoriaki grammi kato einai miden / if (k == 0){ for (i = 0; i < n; i + +){ u[i][0] = 0.0; } for(i = 0; i < m; i + +){ u[0][i] = 0.0; } } / An i process einai megaliteri tou 0 kai mikroteri tis rizas tou epeksergasti, tote einai stin proti grammi, ara : i sinoriaki grammi kato einai miden / if (k > 0 && k < val){ for (i = 0; i < m; i + +){ u[0][i] = 0.0; } } (Τµήµα Πληροφορικής και Τηλεπικοινωνιών,) Παράλληλοι Υπολογισµοί 30 Μαρτίου / 66

61 ιαχωρισµός σε blocks... Καταχωρεί τις συνοριακές τιµές κάθε block σε κάθε cpu / An i process + 1 einai isi me tin riza tou arithmou ton cpu, tote einai stin proti grammi kai teleutaio block deksia, ara : i sinoriaki stili deksia einai miden i sinoriaki grammi kato einai miden alla exei kataxorithei idi. / if (k + 1 == val){ for (i = 0; i < m; i + +){ u[i][m 1] = 0.0; } } / An i process + 1 einai pollaplasio tis rizas tou arithmou ton cpu, tote einai sto teleutaio block deksia, ara : i sinoriaki stili deksia einai miden / if ((k + 1)%val == 0) { for (i = 0; i < m; i + +){ u[i][m 1] = 0.0; } } / An i process einai pollaplasio tis rizas tou arithmou ton cpu, tote einai sto proto aristero block, ara : i sinoriaki stili aristera einai miden / if (k%val == 0) { for (i = 0; i < n; i + +){ u[i][0] = 0.0; } } (Τµήµα Πληροφορικής και Τηλεπικοινωνιών,) Παράλληλοι Υπολογισµοί 30 Μαρτίου / 66

62 ιαχωρισµός σε blocks... Καταχωρεί τις συνοριακές τιµές κάθε block σε κάθε cpu / An i process einai megaliteri i isi me val (val 1), tote einai stin teleutaia grammi, ara : i sinoriaki grammi pano einai miden / if (k >= val (val 1)) { for (i = 0; i < m; i + +){ u[n 1][i] = 1.0; }}} / An exoume mia cpu, tote thetoume sinoriakes stiles miden, tin kato sinoriaki grammi miden kai tin pano isi me ena. / else if (p == 1) { for (i = 0; i < n; i + +){ u[i][0] = 0.0; u[i][n 1] = 0.0; } Κλήση τους στη main val = pow 10(p); //briskoume tin riza tou arithmou tonepeksergaston sub = (m 2)/val + 2; //briskoume poses grammes kai stiles exei kathe block m = stiles pinaka me tis sinoriakes v = matrix 2D(sub, sub); / dimiourgia pinaka sub x sub / (Τµήµα Πληροφορικής και Τηλεπικοινωνιών,) Παράλληλοι Υπολογισµοί 30 Μαρτίου / 66

63 Συνάρτηση για επικοινωνία έχοντας strips Σχήµα: Ονοµασία γραµµών σε κάθε Ϲώνη του πλέγµατος Αποστολή και λήψη µιας γραµµής µε χρήση ϕανταστικών γραµµών void exchng1 (double U0, int nx, int s, int e, MPI Comm new comm, int nbrbottom, int nbrtop, int rank) { MPI Status status; MPI Send(&U0[s][1], nx, MPI DOUBLE, nbrbottom, 1, new comm); MPI Recv(&U0[e + 1][1], nx, MPI DOUBLE, nbrtop, 1, new comm, &status); return; } (Τµήµα Πληροφορικής και Τηλεπικοινωνιών,) Παράλληλοι Υπολογισµοί 30 Μαρτίου / 66

64 Συνάρτηση υπολογισµού της µεθόδου jacobi Μόριο 5 σηµείων void sweep1d(double U0, double f, int nx, int s, int e, double U1, double h) { register int i, j; for (i = 1; i <= nx; i + +)/ den ypologizoume synoriakes times, diladi gia i = 0, i = nx + 1 / U1[s][i] = (h h f[s][i] + U0[s][i 1] + U0[s 1][i] + U0[s][i + 1] + U0[s + 1][i]); return; } (Τµήµα Πληροφορικής και Τηλεπικοινωνιών,) Παράλληλοι Υπολογισµοί 30 Μαρτίου / 66

65 Υπολογισµός Κριτηρίου διακοπής Κριτήριο διακοπής Σύγκλιση επιτυγχάνεται όταν όταν η διαφορά µεταξύ δύο διαδοχικών προσεγγιστικών λύσεων είναι µικρότερη από το 10 5, δηλ. όταν πληρείται το ακόλουθο κριτήριο: u (n+1) u (n) 2 = Σ N i=1 ( u (n+1) i u (n) ) 2 i < ɛ, ɛ = 10 5 Ο έλεγχος του κριτηρίου διακοπής πραγµατοποιείται λοιπόν για ɛ = 10 5 και περιλαµβάνει καθολική επικοινωνία, δηλ., επικοινωνία µε όλους τους επεξεργαστές. Ο τρόπος υλοποίησης για τον έλεγχο του κριτηρίου διακοπής γίνεται µε την κλήση της συνάρτησης MPI Allreduce η οποία συνδυάζει τιµές από όλες τις διεργασίες και στέλνει το αποτέλεσµα πίσω σε όλες τις διεργασίες (συµπεριλαµβανοµένου του εαυτού της. Κάθε επεξεργαστής P i υπολογίζει το και το στέλνει στον P 0, ο οποίος αφού λάβει όλα τα επιµέρους αποτελέσµατα, µε την κλήση της MPI Allreduce, υπολογίζει το τελικό αποτέλεσµα συνδυάζοντας αυτά τα οποία έλαβε, και το στέλνει σε όλους τους επεξεργαστές. (Τµήµα Πληροφορικής και Τηλεπικοινωνιών,) Παράλληλοι Υπολογισµοί 30 Μαρτίου / 66

66 Υπολογισµός Κριτηρίου διακοπής Συνάρτηση υπολογισµού Κριτηρίου διακοπής double diff(double U0, double U1, int nx int s, int e, double h) { double sum; register int i, j; sum = 0.0; for (j = s; j <= e; j + +) / j > grammi kathe strip / {for (i = 1; i <= nx; i + +) / i > stili kathe strip / {/ ipologismos tou athroismatos gia to kritirio diakopis / sum = sum + (U0[j][i] U1[j][i]) (U0[j][i] U1[j][i]); U0[j][i] = U1[j][i]; } } return sum; } (Τµήµα Πληροφορικής και Τηλεπικοινωνιών,) Παράλληλοι Υπολογισµοί 30 Μαρτίου / 66

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

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα 2: OpenMPI Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής

Διαβάστε περισσότερα

ύο μηχανισμοί απαιτούνται: 1. Μία μέθοδος για τη δημιουργία διεργασιών

ύο μηχανισμοί απαιτούνται: 1. Μία μέθοδος για τη δημιουργία διεργασιών Υπολογισμός με βάση το πέρασμα μηνυμάτων Προγραμματισμός με πέρασμα μηνυμάτων ύο μηχανισμοί απαιτούνται: 1. Μία μέθοδος για τη δημιουργία διεργασιών που θα εκτελούνται σε διαφορετικούς υπολογιστές. 2.

Διαβάστε περισσότερα

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

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα 5: MPI_Reduce Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής

Διαβάστε περισσότερα

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

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα 4: MPI_ANY_TAG,MPI_ANY_SOURCE,MPI_Bcast, MPI_Wtime, MPI_Wait, MPI_Test, MPI_Scatter Δρ. Μηνάς Δασυγένης

Διαβάστε περισσότερα

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

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα 2: OpenMPI Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής

Διαβάστε περισσότερα

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

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:05 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων

Διαβάστε περισσότερα

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

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα 5: MPI_Reduce Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής

Διαβάστε περισσότερα

Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II. ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II. ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 12-1 Ανασκόπηση οµής Προγράµµατος µε Συναρτήσεις #include 1 void PrintMessage (); Πρότυπο ( ήλωση) Συνάρτησης (

Διαβάστε περισσότερα

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

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα 4: MPI_ANY_TAG,MPI_ANY_SOURCE,MPI_Bcast, MPI_Wtime, MPI_Wait, MPI_Test, MPI_Scatter Δρ. Μηνάς Δασυγένης

Διαβάστε περισσότερα

Συναρτήσεις. Εισαγωγή

Συναρτήσεις. Εισαγωγή Συναρτήσεις Εισαγωγή Η χρήση συναρτήσεων στα προγράμματα της γλώσσας C είναι πολύ σημαντική καθώς μας επιτρέπει τη διάσπαση ενός προβλήματος σε μικρότερα υποπροβλήματα τα οποία μπορούμε να επιλύσουμε πιο

Διαβάστε περισσότερα

Μεθόδων Επίλυσης Προβλημάτων

Μεθόδων Επίλυσης Προβλημάτων ΕΠΛ 032.3: 3: Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων Αχιλλέας Αχιλλέως, Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου Email: achilleas@cs.ucy.ac.cy Κεφάλαιο 9 Συναρτήσεις Μέρος II Θέματα ιάλεξης Μη- ομημένος

Διαβάστε περισσότερα

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

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:04 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων

Διαβάστε περισσότερα

Κεφάλαιο , 3.2: Συναρτήσεις II. (Διάλεξη 12)

Κεφάλαιο , 3.2: Συναρτήσεις II. (Διάλεξη 12) Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II (Διάλεξη 12) 12-1 Ανασκόπηση Δομής Προγράμματος με Συναρτήσεις 1 void PrintMessage (); Πρότυπο (Δήλωση) Συνάρτησης (Δηλώνουν τι επιπλέον συναρτήσεις θα χρησιμοποιήσουμε

Διαβάστε περισσότερα

Κεφάλαιο 3.1, : Συναρτήσεις I. ( ιάλεξη 11) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Κεφάλαιο 3.1, : Συναρτήσεις I. ( ιάλεξη 11) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Κεφάλαιο 3.1,3.3-3.4: Συναρτήσεις I ( ιάλεξη 11) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 11-1 Μη- οµηµένος Προγραµµατισµός Το πρόγραµµα στα αριστερά δεν είναι Αρθρωτό (δεν έχει σωστή δοµή). Όλη η λειτουργικότητα

Διαβάστε περισσότερα

Προγραμματισμός Η/Υ Ι (Χρήση της C) 6 η Θεωρία ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ

Προγραμματισμός Η/Υ Ι (Χρήση της C) 6 η Θεωρία ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ Προγραμματισμός Η/Υ Ι (Χρήση της C) 6 η Θεωρία ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ Σκοπός του μαθήματος Σκοπός του παρόντος μαθήματος είναι να μάθετε να κάνετε εισαγωγή δεδομένων σε πίνακες και περαιτέρω επεξεργασία

Διαβάστε περισσότερα

Παράλληλα και Κατανεµηµένα Συστήµατα. Εισαγωγή

Παράλληλα και Κατανεµηµένα Συστήµατα. Εισαγωγή Παράλληλα και Κατανεµηµένα Συστήµατα 1 Εισαγωγή Στόχος της περιγραφής που ακολουθεί, αποτελεί η παρουσίαση του περιβάλλοντος διεπαφής ανταλλαγής µηνυµάτων (message passing interface) MPI δια της χρήσεως

Διαβάστε περισσότερα

Εργασία για το μεταπτυχιακό μάθημα Παράλληλοι υπολογισμοί από τον φοιτητή Μουζακίδη Αλέξανδρο AM M 853

Εργασία για το μεταπτυχιακό μάθημα Παράλληλοι υπολογισμοί από τον φοιτητή Μουζακίδη Αλέξανδρο AM M 853 Εργασία για το μεταπτυχιακό μάθημα Παράλληλοι υπολογισμοί από τον φοιτητή Μουζακίδη Αλέξανδρο AM M 853 Θέμα Παράλληλη Αριθμητική Επίλυση Μερικών Διαφορικών Εξισώσεων με τις μεθόδους Jacob και Jacob over

Διαβάστε περισσότερα

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Μάθημα 7ο Τμήμα Διοίκησης Επιχειρήσεων Παλαιό ΕΠΔΟ α εξάμηνο Β. Φερεντίνος Δείκτες (Pointers) (1) 142 Κάθε μεταβλητή, εκτός από την τιμή της, έχει και μία συγκεκριμένη διεύθυνση

Διαβάστε περισσότερα

Κατανεμημένος και Παράλληλος Προγραμματισμός MPI. MPI Απλές εντολές 03/13/2016. Οδηγίες αποστολής / παραλαβής μηνυμάτων, Υπολογισμός του π (

Κατανεμημένος και Παράλληλος Προγραμματισμός MPI. MPI Απλές εντολές 03/13/2016. Οδηγίες αποστολής / παραλαβής μηνυμάτων, Υπολογισμός του π ( Κατανεμημένος και Παράλληλος Προγραμματισμός Ηλίας Κ. Σάββας Αναπληρωτής Καθηγητής Τμήμα Μηχανικών Πληροφορικής ΤΕ, ΤΕΙ Θεσσαλίας Email: savvas@teilar.gr MPI Οδηγίες αποστολής / παραλαβής μηνυμάτων, Υπολογισμός

Διαβάστε περισσότερα

είκτες και Πίνακες (2)

είκτες και Πίνακες (2) είκτες και Πίνακες (2) Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: Πολυδιάστατοι πίνακες Πέρασµα παραµέτρων σε προγράµµατα C ΕΠΛ 132 Αρχές Προγραµµατισµού ΙΙ 1-1 Πίνακες εικτών Πίνακας δεικτών είναι

Διαβάστε περισσότερα

Η βασική συνάρτηση προγράμματος main()

Η βασική συνάρτηση προγράμματος main() Η βασική συνάρτηση προγράμματος main() HEADER FILES main(){ ΔΗΛΩΣΕΙΣ ΜΕΤΑΒΛΗΤΩΝ ΕΝΤΟΛΕΣ (σειριακές, επιλογής ή επανάληψης) ΕΠΙΣΤΡΕΦΟΜΕΝΟΣ ΤΥΠΟΣ (return 0;) Συναρτήσεις Η συνάρτηση είναι ένα υποπρόγραμμα

Διαβάστε περισσότερα

Αρχιτεκτονική κοινής μνήμης

Αρχιτεκτονική κοινής μνήμης Αρχιτεκτονική κοινής μνήμης Οι επεξεργαστές έχουν κοινή μνήμη Κάθε επεξεργαστής διαθέτει τοπική ιεραρχία κρυφών μνημών Συνήθως η διασύνδεση γίνεται μέσω διαδρόμου μνήμης (memory bus) Αλλά και πιο εξελιγμένα

Διαβάστε περισσότερα

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Λειτουργικά

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΕΠΛ 035: οµές εδοµένων και Αλγόριθµοι για Ηλεκτρολόγους Μηχανικούς και Μηχανικούς Υπολογιστών

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΕΠΛ 035: οµές εδοµένων και Αλγόριθµοι για Ηλεκτρολόγους Μηχανικούς και Μηχανικούς Υπολογιστών ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 35: οµές εδοµένων και Αλγόριθµοι για Ηλεκτρολόγους Μηχανικούς και Μηχανικούς Υπολογιστών Ακαδηµαϊκό έτος 21 211, Χειµερινό εξάµηνο Όλες οι ασκήσεις να δακτυλογραφηθούν

Διαβάστε περισσότερα

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C Εισαγωγή στην C Μορφή Προγράµµατος σε γλώσσα C Τµήµα Α Με την εντολή include συµπεριλαµβάνω στο πρόγραµµα τα πρότυπα των συναρτήσεων εισόδου/εξόδου της C.Το αρχείο κεφαλίδας stdio.h είναι ένας κατάλογος

Διαβάστε περισσότερα

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Έβδοµη ιάλεξη Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 Προηγούµενη ιάλεξη

Διαβάστε περισσότερα

Προγραμματισμός Η/Υ (ΤΛ2007 )

Προγραμματισμός Η/Υ (ΤΛ2007 ) Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2014-15

Διαβάστε περισσότερα

Εισαγωγή. E-03: Λειτουργικά Συστήµατα ΙΙ 6. Εαρινό Εξάµηνο SUN RPC. Κλήση Αποµακρυσµένων ιαδικασιών (RPC) Σύνδεση: Port Mapper.

Εισαγωγή. E-03: Λειτουργικά Συστήµατα ΙΙ 6. Εαρινό Εξάµηνο SUN RPC. Κλήση Αποµακρυσµένων ιαδικασιών (RPC) Σύνδεση: Port Mapper. Εισαγωγή Ε-03: Λειτουργικά Συστήµατα ΙΙ Εαρινό Εξάµηνο 2005-06 Sun RPC MPI «Sun RPC & MPI» ρ. Παναγιώτης Χατζηδούκας (Π..407/80) E-03: Λειτουργικά Συστήµατα ΙΙ 1 E-03: Λειτουργικά Συστήµατα ΙΙ 2 Κλήση

Διαβάστε περισσότερα

Υπολογιστικές Μέθοδοι Ανάλυσης και Σχεδιασµού Υπολογιστικό Εργαστήριο Μάθηµα 1 Εισαγωγή στο MPI http://ecourses.chemeng.ntua.gr/courses/computational_methods Αρχιτεκτονικές Παράλληλων Υπολογιστών Shared

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΟ 1 ΕΙΣΑΓΩΓΗ ΣΤΗ C. Τµήµα Πληροφορικής και Τηλεπικοινωνιών

ΕΡΓΑΣΤΗΡΙΟ 1 ΕΙΣΑΓΩΓΗ ΣΤΗ C. Τµήµα Πληροφορικής και Τηλεπικοινωνιών ΕΡΓΑΣΤΗΡΙΟ 1 ΕΙΣΑΓΩΓΗ ΣΤΗ C Τµήµα Πληροφορικής και Τηλεπικοινωνιών Περιεχόµενα Εισαγωγή Πρόγραµµα Φάσεις Υλοποίησης µε χρήση του εργαλείου DEV C + + οµή Προγράµµατος Η συνάρτηση main Μεταβλητές Τι είναι

Διαβάστε περισσότερα

Μεθόδων Επίλυσης Προβλημάτων

Μεθόδων Επίλυσης Προβλημάτων ΕΠΛ 032.3: 3: Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων Αχιλλέας Αχιλλέως, Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου Email: achilleas@cs.ucy.ac.cy Κεφάλαιο 9 Συναρτήσεις Μέρος I Θέματα ιάλεξης Μη- ομημένος

Διαβάστε περισσότερα

ΤΕΜ-101 Εισαγωγή στους Η/Υ Εξεταστική Ιανουαρίου 2011 Θέματα Β

ΤΕΜ-101 Εισαγωγή στους Η/Υ Εξεταστική Ιανουαρίου 2011 Θέματα Β ΤΕΜ-101 Εισαγωγή στους Η/Υ Εξεταστική Ιανουαρίου 2011 Θέματα Β 1. (10 μον.) Απαντήστε σωστό ή λάθος στις παρακάτω ερωτήσεις (αʹ) _2togo είναι έγκυρο όνομα μεταβλητής (βʹ) Αν p είναι δείκτης στο πρώτο στοιχείο

Διαβάστε περισσότερα

Προγραμματισμός Ι (ΗΥ120)

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 9: Συναρτήσεις Ορισμός συναρτήσεων () { /* δήλωση μεταβλητών */ /* εντολές ελέγχου/επεξεργασίας */ o Μια συνάρτηση ορίζεται δίνοντας

Διαβάστε περισσότερα

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 3 η : Επίλυση Προβληµάτων Χειµερινό Εξάµηνο 2011

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 3 η : Επίλυση Προβληµάτων Χειµερινό Εξάµηνο 2011 Εισαγωγή στον Προγραµµατισµό Διάλεξη 3 η : Επίλυση Προβληµάτων Χειµερινό Εξάµηνο 2011 Τελεστής σύντοµης ανάθεσης Τελεστής σύντοµης ανάθεσης (shorthand assignment operator) µεταβλητή = µεταβλητή τελεστής

Διαβάστε περισσότερα

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 Προηγούµενη ιάλεξη Εισαγωγικά

Διαβάστε περισσότερα

ΗΥ-150. Προγραµµατισµός. Εντολές Ελέγχου Ροής

ΗΥ-150. Προγραµµατισµός. Εντολές Ελέγχου Ροής ΗΥ-150 Εντολές Ελέγχου Ροής Σειριακή εκτέλεση εντολών Όλα τα προγράµµατα «γράφονται» χρησιµοποιώντας 3 είδη εντολών: Σειριακές εντολές (sequential built in C) Εντολές απόφασης (if, if/else, switch) Περιλαµβάνει

Διαβάστε περισσότερα

Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2)

Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2) Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Οργάνωση Προγράµµατος Header Files Μετάφραση και σύνδεση αρχείων προγράµµατος ΕΠΛ 132 Αρχές Προγραµµατισµού

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ C ΣΕΙΡΑ 2 η

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ C ΣΕΙΡΑ 2 η Δ.Π.Θ. - Πολυτεχνική Σχολή Τμήμα Μηχανικών Παραγωγής & Διοίκησης Ακαδ. έτος 2017-2018 Τομέας Συστημάτων Παραγωγής Εξάμηνο Β Αναπληρωτής Καθηγητής Στέφανος Δ. Κατσαβούνης ΜΑΘΗΜΑ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Διαβάστε περισσότερα

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων Δομημένος Προγραμματισμός Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 2 Ορισμός

Διαβάστε περισσότερα

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Πίνακες Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Πίνακες Πολλές φορές θέλουμε να κρατήσουμε στην μνήμη πολλά αντικείμενα

Διαβάστε περισσότερα

Υπολογισμοί Μεταβίβασης Μηνυμάτων

Υπολογισμοί Μεταβίβασης Μηνυμάτων Υπολογισμοί Μεταβίβασης Μηνυμάτων Κ.Γ. Μαργαρίτης προσαρμογή από το μάθημα του Barry Wilkinson ITCS 4145/5145 2006 Cluster Computing Univ. of North Carolina at Charlotte 2.1 2.2 Προγραμματισμός μεταβίβασης

Διαβάστε περισσότερα

Προγραμματισμό για ΗΜΥ

Προγραμματισμό για ΗΜΥ ΕΠΛ 034: Εισαγωγή στον Προγραμματισμό για ΗΜΥ Αχιλλέας Αχιλλέως, Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου Email: achilleas@cs.ucy.ac.cy Κεφάλαιο 5 Συναρτήσεις Θέματα ιάλεξης Χρησιμότητα Συναρτήσεων Σύνταξη

Διαβάστε περισσότερα

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Συναρτήσεις Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Συναρτήσεις Ως τώρα γράφαμε όλα τα προγράμματα μας μέσα στην main..1

Διαβάστε περισσότερα

1. ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C++

1. ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C++ Email: liliadis@fmenr.duth.gr 1. ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ C++ Τα προγράµµατα αποτελούνται από εντολές οι οποίες γράφονται σε έναν απλό επεξεργαστή που προσφέρει και το Περιβάλλον της Visual C++. Οι εντολές

Διαβάστε περισσότερα

Α. unsigned int Β. double. Γ. int. unsigned char x = 1; x = x + x ; x = x * x ; x = x ^ x ; printf("%u\n", x); Β. unsigned char

Α. unsigned int Β. double. Γ. int. unsigned char x = 1; x = x + x ; x = x * x ; x = x ^ x ; printf(%u\n, x); Β. unsigned char ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εξετάσεις Β Περιόδου 2015 (8/9/2015) ΟΝΟΜΑΤΕΠΩΝΥΜΟ:................................................................................ Α.Μ.:...............................................

Διαβάστε περισσότερα

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 ❶ Προετοιµασία για το 1 ο Εργαστήριο

Διαβάστε περισσότερα

ΑΣΚΗΣΗ 6: ΔΕΙΚΤΕΣ. Σκοπός της Άσκησης. 1. Εισαγωγικά στοιχεία για τους Δείκτες

ΑΣΚΗΣΗ 6: ΔΕΙΚΤΕΣ. Σκοπός της Άσκησης. 1. Εισαγωγικά στοιχεία για τους Δείκτες Σκοπός της Άσκησης ΑΣΚΗΣΗ 6: ΔΕΙΚΤΕΣ Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η εξοικείωση με τη χρήση των δεικτών (pointers). Οι δείκτες δίνουν την δυνατότητα σε προγράμματα να προσομοιώνουν τη

Διαβάστε περισσότερα

Κεφάλαιο 3.1, : Συναρτήσεις I. (Διάλεξη 11)

Κεφάλαιο 3.1, : Συναρτήσεις I. (Διάλεξη 11) Κεφάλαιο 3.1,3.3-3.4: Συναρτήσεις I (Διάλεξη 11) 11-1 Μη-Δομημένος Προγραμματισμός Το πρόγραμμα στα αριστερά δεν είναι Αρθρωτό (δεν έχει σωστή δομή). Όλη η λειτουργικότητα ορίζεται μέσα στην main. Το αποτέλεσμα

Διαβάστε περισσότερα

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

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:03 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Διαμόρφωση Ελέγχου Ροής Προγράμματος Δομημένος Προγραμματισμός Ο πιο απλός και συνηθισμένος

Διαβάστε περισσότερα

Ηβασικήσυνάρτηση προγράμματος main()

Ηβασικήσυνάρτηση προγράμματος main() Ηβασικήσυνάρτηση προγράμματος main() HEADER FILES main(){ ΔΗΛΩΣΕΙΣ ΜΕΤΑΒΛΗΤΩΝ ΕΝΤΟΛΕΣ (σειριακές, επιλογής ή επανάληψης) ΕΠΙΣΤΡΕΦΟΜΕΝΟΣ ΤΥΠΟΣ (return 0;) Συναρτήσεις Ησυνάρτησηείναι ένα υποπρόγραμμα που

Διαβάστε περισσότερα

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

Εισαγωγή στον Προγραµµατισµό. Πανεπιστήµιο Θεσσαλίας Τµήµα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ Εισαγωγή στον Προγραµµατισµό Πανεπιστήµιο Θεσσαλίας Τµήµα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ Συναρτήσεις 19.11.16 Β. Ντουφεξή 2 Προβλήματα: Οσο μεγαλώνουν τα προγράμματα, γίνονται πιο πολύπλοκα.

Διαβάστε περισσότερα

Προγραµµατιστικές Τεχνικές

Προγραµµατιστικές Τεχνικές Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόµων Τοπογράφων Μηχανικών Προγραµµατιστικές Τεχνικές Βασίλειος Βεσκούκης ρ. Ηλεκτρολόγος Μηχανικός & Μηχανικός Υπολογιστών ΕΜΠ v.vescoukis@cs.ntua.gr Ρωµύλος Κορακίτης

Διαβάστε περισσότερα

Κατανεμημένος και Παράλληλος Προγραμματισμός. Εισαγωγή στο MPI. Εγκατάσταση MPICH σε ένα ΗΥ 10/3/2017

Κατανεμημένος και Παράλληλος Προγραμματισμός. Εισαγωγή στο MPI. Εγκατάσταση MPICH σε ένα ΗΥ 10/3/2017 Κατανεμημένος και Παράλληλος Προγραμματισμός Ηλίας Κ. Σάββας Καθηγητής Τμήμα Μηχανικών Πληροφορικής ΤΕ, ΤΕΙ Θεσσαλίας Email: savvas@teilar.gr Εισαγωγή στο MPI Εγκατάσταση του Message Passing Interface,

Διαβάστε περισσότερα

Προγραμματισμός Η/Υ (ΤΛ2007 )

Προγραμματισμός Η/Υ (ΤΛ2007 ) Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2015-16

Διαβάστε περισσότερα

Η γλώσσα προγραμματισμού C

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Εισαγωγή στη C Λίγα λόγια για την C Γλώσσα προγραμματισμού υψηλού επιπέδου. Σχεδιάστηκε και υλοποιήθηκε από τον Dennis Richie στις αρχές της δεκαετίας του 1970 (Bell Labs). Η

Διαβάστε περισσότερα

Αντικειµενοστρεφής Προγραµµατισµός

Αντικειµενοστρεφής Προγραµµατισµός 16 η διάλεξη Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 Προηγούµενη ιάλεξη

Διαβάστε περισσότερα

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ Διάλεξη 4: Δείκτες και Πίνακες Στην ενότητα αυτή θα μελετηθούν τα εξής θέματα: Πίνακες Δεικτών, Παραδείγματα, Πολυδιάστατοι πίνακες Πέρασμα παραμέτρων σε προγράμματα C Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες:

Διαβάστε περισσότερα

Μεθόδων Επίλυσης Προβλημάτων

Μεθόδων Επίλυσης Προβλημάτων ΕΠΛ 032.3: 3: Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων Αχιλλέας Αχιλλέως, Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου Email: achilleas@cs.ucy.ac.cy Κεφάλαιο 13 Πίνακες & Συναρτήσεις Εισαγωγή Στις προηγούμενες

Διαβάστε περισσότερα

Συναρτήσεις. Κατασκευαστικά Τεµάχια για τη ηµιουργία Αρθρωτών Προγραµµάτων

Συναρτήσεις. Κατασκευαστικά Τεµάχια για τη ηµιουργία Αρθρωτών Προγραµµάτων Συναρτήσεις Κατασκευαστικά Τεµάχια για τη ηµιουργία Αρθρωτών Προγραµµάτων ιεπαφή Συναρτήσεων (Πρωτότυπα Συναρτήσεων function prototypes): εδοµένα εισόδου (παράµετροι parameters): πέρασµα δια τιµής ή µέσω

Διαβάστε περισσότερα

Εργαστήριο ΔΙΕΡΓΑΣΙΕΣ - ΔΙΑΧΕΙΡΙΣΗ

Εργαστήριο ΔΙΕΡΓΑΣΙΕΣ - ΔΙΑΧΕΙΡΙΣΗ Εργαστήριο ΔΙΕΡΓΑΣΙΕΣ - ΔΙΑΧΕΙΡΙΣΗ Εισαγωγή Σκοπός τόσο αυτού του εργαστηρίου, όσο και των εργαστηρίων που ακολουθούν, είναι να γνωρίσουμε τους τρόπους δημιουργίας και διαχείρισης των διεργασιών (processes)

Διαβάστε περισσότερα

C Programming EPL032 Maria Stavrinou Ioannou Εισαγωγή στη Γλώσσα C

C Programming EPL032 Maria Stavrinou Ioannou Εισαγωγή στη Γλώσσα C Εισαγωγή στη Γλώσσα C Η C είναι µια δοµηµένη (structured ) γλώσσα ηλαδή ένα C πρόγραµµα αποτελείται από υποπρογράµµατα τα οποία ονοµάζονται συναρτήσεις ( functions ), όπου η κάθε συνάρτηση εκτελεί µια

Διαβάστε περισσότερα

Προγραμματισμός Ι (HY120)

Προγραμματισμός Ι (HY120) Προγραμματισμός Ι (HY120) #6 εκτέλεση σε επανάληψη 1 Σπύρος Λάλης Εκτέλεση σε επανάληψη: while while () lexpr body true false Όσο η λογική συνθήκη επανάληψης lexpr αποτιμάται σε μια τιμή

Διαβάστε περισσότερα

ΘΕΜΑΤΑ ΕΞΕΤΑΣΗΣ ΚΑΙ ΑΠΑΝΤΗΣΕΙΣ

ΘΕΜΑΤΑ ΕΞΕΤΑΣΗΣ ΚΑΙ ΑΠΑΝΤΗΣΕΙΣ ΘΕΜΑΤΑ ΕΞΕΤΑΣΗΣ ΚΑΙ ΑΠΑΝΤΗΣΕΙΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΕΞΕΤΑΣΤΙΚΗ ΠΕΡΙΟ ΟΣ: ΣΕΠΤΕΜΒΡΙΟΥ 6 Ι ΑΣΚΩΝ: Ε. ΚΟΦΙ ΗΣ Όλα τα ερωτήµατα είναι ισοδύναµα. Καλή επιτυχία! ΘΕΜΑ ο a) Βρείτε την αναπαράσταση

Διαβάστε περισσότερα

Κεφάλαιο 8.7. Πίνακες & Συναρτήσεις ( ιάλεξη 17) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Κεφάλαιο 8.7. Πίνακες & Συναρτήσεις ( ιάλεξη 17) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Κεφάλαιο 8.7 Πίνακες & Συναρτήσεις ( ιάλεξη 17) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 17-1 Εισαγωγή Στις προηγούµενες διαλέξεις µάθαµε πώς να δηλώνουµε, αρχικοποιούµε και να επεξεργαζόµαστε πίνακες. Σήµερα θα µελετήσουµε

Διαβάστε περισσότερα

Αριθµητική Ανάλυση 1 εκεµβρίου / 43

Αριθµητική Ανάλυση 1 εκεµβρίου / 43 Αριθµητική Ανάλυση 1 εκεµβρίου 2014 Αριθµητική Ανάλυση 1 εκεµβρίου 2014 1 / 43 Κεφ.5. Αριθµητικός Υπολογισµός Ιδιοτιµών και Ιδιοδιανυσµάτων ίνεται ένας πίνακας A C n n και Ϲητούνται να προσδιορισθούν οι

Διαβάστε περισσότερα

lab13grades 449 PASS 451 PASS PASS FAIL 1900 FAIL Page 1

lab13grades 449 PASS 451 PASS PASS FAIL 1900 FAIL Page 1 ΑΕΜ ΒΑΘΜΟΣ 449 PASS 451 PASS 476-1733 PASS 1779-1899 FAIL 1900 FAIL Page 1 1901 PASS 1904 PASS 1908 PASS 1909 PASS 1910 - Page 2 1911 PASS 1914 Οριακό PASS 1915 PASS 1926 PASS Page 3 1927 PASS 1928 Οριακό

Διαβάστε περισσότερα

Εκφωνήσεις ασκήσεων εργαστηρίου 1

Εκφωνήσεις ασκήσεων εργαστηρίου 1 Τμήμα Μηχανικών Πληροφορικής Τ.Ε. Σχολή Τεχνολογικών Εφαρμογών Ακαδημαϊκό έτος 2016-2017 ΤΕΙ Ηπείρου - Άρτα Κατανεμημένα και Παράλληλα Συστήματα (εργαστήριο) Γκόγκος Χρήστος Εκφωνήσεις ασκήσεων εργαστηρίου

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΕΠΛ 035: οµές εδοµένων και Αλγόριθµοι για Ηλεκτρολόγους Μηχανικούς και Μηχανικούς Υπολογιστών

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΕΠΛ 035: οµές εδοµένων και Αλγόριθµοι για Ηλεκτρολόγους Μηχανικούς και Μηχανικούς Υπολογιστών ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 035: οµές εδοµένων και Αλγόριθµοι για Ηλεκτρολόγους Μηχανικούς και Μηχανικούς Υπολογιστών Ακαδηµαϊκό έτος 2010 2011, Χειµερινό εξάµηνο Ασκήσεις Επανάληψης Ενδιάµεσης

Διαβάστε περισσότερα

ΠΛΗ111. Ανοιξη Μάθηµα 1 ο Ανασκόπηση της Γλώσσας Προγραµµατισµού C. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

ΠΛΗ111. Ανοιξη Μάθηµα 1 ο Ανασκόπηση της Γλώσσας Προγραµµατισµού C. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης ΠΛΗ111 οµηµένος Προγραµµατισµός Ανοιξη 2005 Μάθηµα 1 ο Ανασκόπηση της Γλώσσας Προγραµµατισµού C Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης Ανασκόπηση της C είκτες Πίνακες

Διαβάστε περισσότερα

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 «Προγραμματισμός Η/Υ» - Τετράδιο Εργαστηρίου #4 2 Γενικά Στο Τετράδιο #4 του Εργαστηρίου θα αναφερθούμε σε θέματα διαχείρισης πινάκων

Διαβάστε περισσότερα

Δομημένος Προγραμματισμός (ΤΛ1006)

Δομημένος Προγραμματισμός (ΤΛ1006) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής

Διαβάστε περισσότερα

Message Passing Interface (MPI)

Message Passing Interface (MPI) Message Passing Interface (MPI) Συστήµατα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστηµάτων Αθήνα, εκέµβριος 2002 Τι είναι το MPI; Είναι πρότυπο, όχι συγκεκριµένη υλοποίηση Βιβλιοθήκη ανταλλαγής

Διαβάστε περισσότερα

Παρουσίαση 3ης Άσκησης

Παρουσίαση 3ης Άσκησης Παρουσίαση 3ης Άσκησης Παράλληλος προγραμματισμός για αρχιτεκτονικές κατανεμημένης μνήμης με MPI Συστήματα Παράλληλης Επεξεργασίας 9ο Εξάμηνο, ΣΗΜΜΥ Εργ. Υπολογιστικών Συστημάτων Σχολή ΗΜΜΥ, Ε.Μ.Π. Νοέμβριος

Διαβάστε περισσότερα

Κεφάλαιο ΙV: Δείκτες και πίνακες. 4.1 Δείκτες.

Κεφάλαιο ΙV: Δείκτες και πίνακες. 4.1 Δείκτες. Κεφάλαιο ΙV: Δείκτες και πίνακες. 4.1 Δείκτες. Η C, όπως έχουμε αναφέρει, είναι μια γλώσσα προγραμματισμού υψηλού επιπέδου η οποία αναπτύχθηκε για πρώτη φορά το 1972 από τον Dennis Ritchie στα AT&T Bell

Διαβάστε περισσότερα

Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: ΕΠΛ 131 Αρχές Προγραµµατισµού I 4-2

Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: ΕΠΛ 131 Αρχές Προγραµµατισµού I 4-2 Είσοδος / Έξοδος Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Συνάρτηση εξόδου printf Συνάρτηση εισόδου scanf Βιβλίο µαθήµατος: Chapter 2,, Sec. 3 & 6 ΕΠΛ 131 Αρχές Προγραµµατισµού I 4-1 Είσοδος

Διαβάστε περισσότερα

ιεργασίες και νήµατα Προγραµµατισµός ΙΙΙ 1 lalis@inf.uth.gr

ιεργασίες και νήµατα Προγραµµατισµός ΙΙΙ 1 lalis@inf.uth.gr ιεργασίες και νήµατα Προγραµµατισµός ΙΙΙ 1 lalis@inf.uth.gr Η έννοια της διεργασίας ιεργασία (process) είναι ο µηχανισµός εκτέλεσης ενός προγράµµατος σε ένα λειτουργικό σύστηµα. Η διεργασία είναι µια ενεργή

Διαβάστε περισσότερα

Εισαγωγή στον Προγραμματισμό με C++

Εισαγωγή στον Προγραμματισμό με C++ ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Εισαγωγή στον Προγραμματισμό με C++ Ενότητα # 6: Συναρτήσεις Κωνσταντίνος Κουκουλέτσος Τμήμα Αυτοματισμού Άδειες Χρήσης Το παρόν

Διαβάστε περισσότερα

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων Δομημένος Προγραμματισμός Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 2 Νέο Πρόγραμμα

Διαβάστε περισσότερα

Επεξεργασία Αρχείων Κειµένου

Επεξεργασία Αρχείων Κειµένου Επεξεργασία Αρχείων Κειµένου Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Αρχεία Κειµένου Γενικά Συναρτήσεις Επεξεργασίας Αρχείων Κειµένου ΕΠΛ 132 Αρχές Προγραµµατισµού ΙΙ 1 Αρχεία Γενικά

Διαβάστε περισσότερα

Προγραμματισμός I (Θ)

Προγραμματισμός I (Θ) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κεντρικής Μακεδονίας - Σέρρες Τμήμα Μηχανικών Πληροφορικής Προγραμματισμός I (Θ) Δρ. Δημήτρης Βαρσάμης Επίκουρος Καθηγητής Οκτώβριος 2017 Δρ. Δημήτρης Βαρσάμης Οκτώβριος

Διαβάστε περισσότερα

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι Εισαγωγή Στον Προγραµµατισµό «C» Πίνακες Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Πίνακες στη C Ένας πίνακας στη C είναι

Διαβάστε περισσότερα

Περίληψη Φροντιστηρίου. Κατανεμημένα Συστήματα Ι. Το περιβάλλον DAP - Χαρακτηριστικά. Το περιβάλλον DAP Τι είναι.

Περίληψη Φροντιστηρίου. Κατανεμημένα Συστήματα Ι. Το περιβάλλον DAP - Χαρακτηριστικά. Το περιβάλλον DAP Τι είναι. Κατανεμημένα Συστήματα Ι 1 Περίληψη Φροντιστηρίου 2 Το Περιβάλλον DAP Φροντιστήριο Ένα παράδειγμα υλοποίησης στο DAP Δευτέρα 14 Νοεμβρίου 2005 Γιάννης Κρομμύδας Το περιβάλλον DAP Τι είναι Το περιβάλλον

Διαβάστε περισσότερα

Εισαγωγή στις Συναρτήσεις

Εισαγωγή στις Συναρτήσεις Εισαγωγή στις Συναρτήσεις Η φιλοσοφία σχεδίασης της C βασίζεται στη χρήση των συναρτήσεων. Έχουμε ήδη δει και χρησιμοποιήσει πολλές συναρτήσεις που έχει το σύστημα, όπως είναι οι printf(), scanf(),αλλά

Διαβάστε περισσότερα

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Έλεγχος Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Σχεσιακοί Τελεστές και Ισότητας Ένα πρόγραμμα εκτός από αριθμητικές πράξεις

Διαβάστε περισσότερα

"ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ" (ΕΜ102), ΕΡΓΑΣΙΑ 1η

ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ (ΕΜ102), ΕΡΓΑΣΙΑ 1η "ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ" (ΕΜ102), ΕΡΓΑΣΙΑ 1η Σε αυτήν την εργασία καλείστε να κατασκευάσετε τον πηγαίο κώδικα γλώσσας C για το εκτελέσιµο αρχείο µε ό- νοµα ATM, που όταν εκτελείται σε κονσόλα προσοµοιώνει

Διαβάστε περισσότερα

3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις

3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις 3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις 5 Απριλίου 01 1 Πίνακες Είδαμε ότι δηλώνοντας μία μεταβλητή κάποιου συγκεκριμένου τύπου δεσμεύουμε μνήμη κατάλληλη για να αποθηκευτεί μία οντότητα

Διαβάστε περισσότερα

Β. Εισαγωγή στον Προγραμματισμό Η/Υ με την JavaScript

Β. Εισαγωγή στον Προγραμματισμό Η/Υ με την JavaScript Β. Εισαγωγή στον Προγραμματισμό Η/Υ με την JavaScript Β.1 Τύποι Δεδομένων Όλες οι γλώσσες προγραμματισμού (πρέπει να) υποστηρίζουν πέντε (5) πρωταρχικούς τύπους δεδομένων: char (character) int (integer)

Διαβάστε περισσότερα

ΑΣΚΗΣΗ 2: ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΣΤΗ C

ΑΣΚΗΣΗ 2: ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΣΤΗ C Σκοπός της Άσκησης ΑΣΚΗΣΗ 2: ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΣΤΗ C Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η ανάλυση των βασικών χαρακτηριστικών της Γλώσσας Προγραµµατισµού C: τη δοµή των προγραµµάτων της,

Διαβάστε περισσότερα

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Δυναμική Διαχείριση Μνήμης Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2011-2012 Ανάγκη για Δυναμική Μνήμη Στατική Μνήμη Μέχρι τώρα χρησιμοποιούσαμε

Διαβάστε περισσότερα

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Διεργασίες και Νήματα Εργαστηριακές Ασκήσεις

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Διεργασίες και Νήματα Εργαστηριακές Ασκήσεις ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Διεργασίες και Νήματα Εργαστηριακές Ασκήσεις Υλικό από: Modern Operating Systems Laboratory Exercises, Shrivakan Mishra Σύνθεση Κ.Γ. Μαργαρίτης, Τμήμα Εφαρμοσμένης Πληροφορικής, Πανεπιστήμιο

Διαβάστε περισσότερα

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 Προηγούµενη ιάλεξη Προτάσεις,

Διαβάστε περισσότερα

Πίνακες: μια σύντομη εισαγωγή. Πίνακες χαρακτήρων: τα "Αλφαριθμητικά"

Πίνακες: μια σύντομη εισαγωγή. Πίνακες χαρακτήρων: τα Αλφαριθμητικά Πίνακες: μια σύντομη εισαγωγή Πίνακες χαρακτήρων: τα "Αλφαριθμητικά" Πίνακες(Arrays): έννοιες και ορισμοί Ορισμός: Πίνακας (array) = σύνολο μεταβλητών του ιδίου τύπου (int, float, char,...) με ένα κοινό

Διαβάστε περισσότερα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΝΑΠΤΥΞΗ ΚΑΙ ΣΧΕΔΙΑΣΗ ΛΟΓΙΣΜΙΚΟΥ Η γλώσσα προγραμματισμού C ΕΡΓΑΣΤΗΡΙΟ 2: Εκφράσεις, πίνακες και βρόχοι 14 Απριλίου 2016 Το σημερινό εργαστήριο

Διαβάστε περισσότερα

Κλάσεις και Αντικείµενα

Κλάσεις και Αντικείµενα Κλάσεις και Αντικείµενα Γρηγόρης Τσουµάκας Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης Κλάσεις και Αντικείµενα 2 Τα αντικείµενα σε µια αντικειµενοστρεφή γλώσσα προγραµµατισµού, µοντελοποιούν

Διαβάστε περισσότερα

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Μεταβλητές,

Διαβάστε περισσότερα

Η βασική λειτουργία σε όλες αυτές τις συναρτήσεις είναι η εκτύπωση γραµµών.

Η βασική λειτουργία σε όλες αυτές τις συναρτήσεις είναι η εκτύπωση γραµµών. draw_tric(4, $ ); $$$$ $$$ $$ $ draw_trid(5, a ); aaaaa aaaa aaa aa a Άρθρωση Η βασική λειτουργία σε όλες αυτές τις συναρτήσεις είναι η εκτύπωση γραµµών. /* Συνάρτηση για την εκτύπωση γραµµής δεδοµένου

Διαβάστε περισσότερα

Επανάληψη. Εντολές while, for, do-while

Επανάληψη. Εντολές while, for, do-while Επανάληψη Εντολές while, for, do-while Απροσδιόριστη Επανάληψη ή Επανάληψη υπό συνθήκη (while, do-while) Απαριθµητή Επανάληψη (for) Εντολή while while (συνθήκη) εντολή C? ναι όχι S Σηµασιολογία Εάν από

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΟ 1 - ΣΗΜΕΙΩΣΕΙΣ

ΕΡΓΑΣΤΗΡΙΟ 1 - ΣΗΜΕΙΩΣΕΙΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2017-2018 ΧΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ ΜΑΘΗΜΑ: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Εισαγωγή ΕΡΓΑΣΤΗΡΙΟ 1 - ΣΗΜΕΙΩΣΕΙΣ Ένα πρόγραμμα σε C περιλαμβάνει μια ή περισσότερες συναρτήσεις

Διαβάστε περισσότερα

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ IΙ Λύβας Χρήστος chrislibas@ssl-unipi.gr Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος >_ ΣΥΝΑΡΤΗΣΕΙΣ ΣΤΗ C (1/3) +- Στη C χρησιμοποιούμε συχνα τις συναρτήσεις (functions),

Διαβάστε περισσότερα