Επικοινωνία. Message-Passing Interface (MPI) Βασικές Κλήσεις για Sockets. Μοντέλο Μεταβίβασης Μηνυµάτων. Μοντέλα Παράλληλου Υπολογισµού
|
|
- Ζένια Δασκαλόπουλος
- 7 χρόνια πριν
- Προβολές:
Transcript
1 Ε-85: Ειδικά Θέµατα Λογισµικού Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων Χειµερινό Εξάµηνο Επικοινωνία Πολλάκατανεµηµένα συστήµατα υλοποιούνται πάνω από ένα απλό µοντέλο µηνυµάτων επικοινωνίας, π.χ. Sockets «Εισαγωγή στο MPI» Παναγιώτης Χατζηδούκας (Π.Δ. 407/80) E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 1 E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 2 Κλήση Socket Bind Listen Accept Connect Send Receive Close Βασικές Κλήσεις για Sockets Λειτουργία ηµιουργία νέου άκρου επικοινωνίας Σύνδεση τοπικής διεύθυνσης σε ένα socket Ανακοίνωση προθυµίας για αποδοχή συνδέσεων Αναστολή εκτέλεσης έως ότου φτάσει µια αίτηση σύνδεσης Ενεργή προσπάθεια δηµιουργίας µιας σύνδεσης Αποστολή δεδοµένων µέσω µιας σύνδεσης Λήψη δεδοµένων µέσω µιας σύνδεσης Τερµατισµός της σύνδεσης Message-Passing Interface (MPI) Τα Sockets έχουν σχεδιαστεί για δικτυακή επικοινωνία (TCP) Υποστηρίζουν απλές λειτουργίες αποστολής / λήψης Το επίπεδο αφαίρεσης που παρέχουν δεν είναι κατάλληλο για άλλα πρωτόκολλα σε συστάδες σταθµών εργασίας ή µεγάλα παράλληλα συστήµατα Ανάγκη µιας διεπαφής µε πιο προχωρηµένες λειτουργίες Μεγάλος αριθµός µη συµβατών βιβλιοθηκών και πρωτοκόλλων Ανάγκη για ύπαρξη ενός προτύπου Message-passing interface (MPI) Ανεξάρτητο από το υλικό Σχεδιασµένο για παράλληλες εφαρµογές Βασική ιδέα: επικοινωνία µεταξύ οµάδων διεργασιών Κάθε σύνδεση χαρακτηρίζεται από ένα ζευγάρι (groupid, processid) E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 3 E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 4 Μοντέλα Παράλληλου Υπολογισµού Κοινή Μνήµη (Νήµατα) Posix Threads OpenMP: πρότυπο υψηλότερου επιπέδου Μεταβίβαση µηνυµάτων (MPI) Οι διεργασίες έχουν µόνο τοπική µνήµη αλλά µπορούν να επικοινωνήσουν µε άλλες µε ανταλλαγή µηνυµάτων Η µεταφορά δεδοµένων µεταξύ διεργασιών απαιτεί την εκτέλεση λειτουργιών και από τις δύο διεργασίες Το δίκτυο επικοινωνίας δεν αποτελεί τµήµα του µοντέλου υπολογισµού (υπερκύβος, πλέγµα, ) Λειτουργίες αποµακρυσµένης µνήµης Επικοινωνία µιας πλευράς ( One-sided ) MPI-2, IBM s LAPI Μια διεργασία µπορεί να προσπελάσει τη µνήµη µιας άλλης χωρίς τη συµµετοχή της τελευταίας Η προσπέλαση όµως γίνεται ρητά και χωρίς διαφάνεια Μοντέλο Μεταβίβασης Μηνυµάτων Ηµεταβίβαση µηνυµάτων χρησιµοποιείται για επικοινωνία µεταξύ διεργασιών µε διαφορετικά πεδία διευθύνσεων Η ανταλλαγή δεδοµένων γίνεται µε συνεργασία και ρητή αποστολή λήψη µεταξύ των διεργασιών. Οποιαδήποτε αλλαγή στη µνήµη της ληφθείσας διεργασίας πραγµατοποιείται µε σαφή συµµετοχή της τελευταίας Η διαδιεργασιακή επικοινωνία περιλαµβάνει Συγχρονισµό εκτέλεσης Μετακίνηση δεδοµένων µεταξύ των δύο πεδίων διευθύνσεων Συνδυάζονται επικοινωνία και συγχρονισµός, αντίθετα µε ότι συµβαίνει στην περίπτωση των λειτουργιών αποµακρυσµένης µνήµης E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 5 E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 6 1
2 Συνεργατικές Λειτουργίες Επικοινωνίας ιεργασία 0 ιεργασία 1 Send(data) Receive(data) Λειτουργίες Μίας Πλευράς Οιλειτουργίες µίας πλευράς µεταξύ διεργασιών περιλαµβάνουν αποµακρυσµένες εγγραφές και αναγνώσεις µνήµης Μόνο µια διεργασία χρειάζεται να συµµετέχει ρητά στην επικοινωνία Ένα πλεονέκτηµα είναι ότι η επικοινωνία και ο συγχρονισµός είναι διαχωρισµένα Οι λειτουργίες µιας πλευράς αποτελεί τµήµα του MPI-2. ιεργασία 0 ιεργασία 1 Put(data) (memory) (memory) Get(data) E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 7 E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 8 Τιείναι το MPI Προσδιορισµός µιας βιβλιοθήκη µεταβίβασης µηνυµάτων Επεκταµένο µοντέλο µεταβίβασης µηνυµάτων εν είναι γλώσσα προγραµµατισµού ή προδιαγραφές µεταγλωττιστή εν αποτελεί µια συγκεκριµένη υλοποίηση Υποστηρίζει παράλληλα και κατανεµηµένα συστήµατα και ετερογενή δίκτυα επικοινωνίας Έχει σχεδιαστεί για να παρέχει πρόσβαση σε υλικό παράλληλης επεξεργασίας σε χρήστες, συγγραφείς βιβλιοθηκών και σχεδιαστές εργαλείων Παρέχει έναν ευέλικτο, αποδοτικό και µεταφέρσιµο τρόπο για την ανάπτυξη παράλληλων προγραµµάτων ιευκολύνει την ανάπτυξη βιβλιοθηκών που µπορούν να αποτρέπουν την ανάγκη εκµάθησής του από τους απλούς χρήστες #include <stdio.h> Παράδειγµα 1 (σε C) int main( int argc, char *argv[] ) MPI_Init( &argc, &argv ); printf( "Hello, world!\n" ); return 0; E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 9 E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 10 program main use MPI integer ierr Παράδειγµα 1 (σε Fortran) call MPI_INIT( ierr ) print *, 'Hello, world!' call MPI_FINALIZE( ierr ) end Παρατηρήσεις Οι ρουτίνες σε C και Fortran είναι παρόµοιες Στην C: Το αρχείο mpi.h πρέπει να γίνει #include Οι ρουτίνες MPI επιστρέφουν κωδικούς λάθους ή την τιµή MPI_SUCCESS Στην Fortran: Το αρχείο mpif.h πρέπει να περιλαµβάνεται Όλες οι κλήσεις MPI είναι υπορουτίνες, µε χώρο για την τιµή επιστροφής σφάλµατος ως τελευταίο όρισµα Το MPI-2 ορίζει τις κλήσεις για C++ και Fortran-90 E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 11 E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 12 2
3 Εκτέλεση Προγραµµάτων Τοπρότυπο MPI-1 δεν καθορίζει τον τρόπο εκτέλεσης ενός προγράµµατος MPI Η εκκίνηση ενός προγράµµατος MPI εξαρτάται από την υλοποίηση και µπορεί να περιλαµβάνει διάφορες εντολές, ορίσµατα προγράµµατος και µεταβλητές περιβάλλοντος Η εντολή mpiexec <args> είναι τµήµα του MPI-2, χωρίς να αποτελεί όµως απαίτησή του Στο σύνολο των περιπτώσεων, η εκτέλεση ενός προγράµµατος MPI γίνεται µε τις εντολές mpiexecή mpirun Περιβάλλον Εκτέλεσης υο βασικά στοιχεία ενός παράλληλου προγράµµατος: Πόσες διεργασίες συµµετέχουν στον υπολογισµό; Ποια διεργασία είµαι; Το MPI παρέχει συναρτήσεις για τις παραπάνω ερωτήσεις: MPI_Comm_size: επιστρέφει τον αριθµό των διεργασιών MPI_Comm_rank: επιστρέφει το rank, έναν αριθµό µεταξύ 0 και size-1, που προσδιορίζει την τρέχουσα διεργασία E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 13 E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 14 #include <stdio.h> Παράδειγµα 2 (σε C) int main( int argc, char *argv[] ) int rank, size; MPI_Init( &argc, &argv ); MPI_Comm_rank( MPI_COMM_WORLD, &rank ); MPI_Comm_size( MPI_COMM_WORLD, &size ); Παράδειγµα 2 (σε Fortran) program main use MPI integer ierr, rank, size call MPI_INIT( ierr ) call MPI_COMM_RANK( MPI_COMM_WORLD, rank, ierr ) call MPI_COMM_SIZE( MPI_COMM_WORLD, size, ierr ) print *, 'I am ', rank, ' of ', size call MPI_FINALIZE( ierr ) end printf( "I am %d of %d\n", rank, size ); return 0; E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 15 E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 16 Αποστολή και Λήψη εδοµένων Πρέπεινα προσδιοριστούν κάποια στοιχεία που είναι απαραίτητα για την επικοινωνία: Περιγραφή δεδοµένων Προσδιορισµός διεργασιών Αναγνώριση λήψη µηνυµάτων από τον αποδέκτη Σηµασία ολοκλήρωσης αποστολής λήψης δεδοµένων ιεργασία 0 ιεργασία 1 Send(data) Receive(data) Μεταβίβαση Μηνυµάτων Μεταφορά δεδοµένων και συγχρονισµός Απαιτεί συνεργασία µεταξύ αποστολέα και παραλήπτη Η συνεργασία δεν είναι πάντοτε προφανής στον κώδικα ιεργασία 0 ιεργασία 1 Χρόνος Μπορώ να στείλω? Ναι E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 17 E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 18 3
4 Βασικές Έννοιες Οι διεργασίες οργανώνονται σε οµάδες (groups). Κάθε µήνυµα αποστέλλεται σε ένα περιβάλλον επικοινωνίας (context) και πρέπει να ληφθεί µέσα από το ίδιο περιβάλλον. Ο συνδυασµός group και context ορίζουν έναν communicator. Μια διεργασία αναγνωρίζεται από τον αριθµό της (rank) στο group που σχετίζεται µε έναν communicator. MPI_COMM_WORLD: Ο βασικός communicator του οποίου το group περιλαµβάνει όλες τις διεργασίες της εφαρµογής Περιγραφή εδοµένων Ταδεδοµένα ενός µηνύµατος που αποστέλλεται ή λαµβάνεται περιγράφονται µε τρία στοιχεία: (address, count, datatype) Ένας τύπος δεδοµένων (datatype) του MPI µπορεί να είναι: Προκαθορισµένος, σύµφωνα µε τους τύπους δεδοµένων της γλώσσας προγραµµατισµού (π.χ., MPI_INT, MPI_DOUBLE_PRECISION) Ένας πίνακας τύπων δεδοµένων του MPI Ένα υποσύνολο ενός πίνακα Μια αυθαίρετη δοµή από τύπους δεδοµένων Ο χρήστης µπορεί να ορίσει δικούς του τύπους δεδοµένων E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 19 E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 20 Τύποι εδοµένων MPI_CHAR (signed) char MPI_SHORT (signed) short int MPI_INT (signed) int MPI_LONG (signed) long int MPI_UNSIGNED_CHAR unsigned char MPI_UNSIGNED_SHORT unsigned short int MPI_UNSIGNED unsigned int MPI_UNSIGNED_LONG unsigned long int MPI_FLOAT float MPI_DOUBLE double MPI_LONG_DOUBLE long double Ετικέτες Μηνυµάτων Ταµηνύµατα αποστέλλονται µαζί µε µια κατάλληλη ετικέτα (ακέραιο αριθµό) που ορίζει ο χρήστης, διευκολύνοντας της διεργασία που θα λάβει το µήνυµα να προσδιορίσει το µήνυµα Τα µηνύµατα µπορούν εποµένως να επιλέγονται κατά την λήψη τους µε βάση την ετικέτα τους Η τιµή ετικέτας MPI_ANY_TAG επιτρέπει τη λήψη µηνυµάτων οποιασδήποτε ετικέτας E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 21 E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 22 Βασική Κλήση Αποστολής MPI_Send (addr, count, datatype, dest, tag, comm) Το µήνυµα περιγράφεται από τα (address, count, datatype). Η διεργασία αποδέκτης καθορίζεται από το όρισµα dest, που είναι ο αριθµός (rank) της διεργασίας αυτής στον communicator που ορίζεται από το όρισµα comm. Όταν η συνάρτηση επιστρέψει, τα δεδοµένα έχουν παραδοθεί στο σύστηµα και ο buffer του µηνύµατος (address) µπορεί να χρησιµοποιηθεί πάλι. Το µήνυµα µπορεί να µην έχει παραληφθεί από την διεργασία αποδέκτη. Η κλήση είναι blocking, προκαλεί αναστολή εκτέλεσης µέχρι να ολοκληρωθεί Βασική Κλήση Λήψης MPI_Recv(addr, count, datatype, source, tag, comm, &status) Περιµένει µέχρι το κατάλληλο µήνυµα (όσον αφορά τα ορίσµατα source & tag) παραληφθεί από το σύστηµα. Το όρισµα source είναι ο αριθµός (rank) της διεργασίας αποστολέας στον communicator που ορίζεται από το όρισµα comm Το όρισµα source µπορεί να είναι MPI_ANY_SOURCE. Το όρισµα status περιέχει επιπλέον πληροφορίες Επιτρέπεται η λήψη λιγότερων στοιχείων από count του τύπου datatype, µα περισσότερων αποτελεί σφάλµα Η κλήση είναι blocking, προκαλεί αναστολή εκτέλεσης µέχρι να ολοκληρωθεί E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 23 E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 24 4
5 Πληροφορίες Τοόρισµα status είναι µια δοµή δεδοµένων στο πρόγραµµα του χρήστη Παράδειγµα (σε C): int recvd_tag, recvd_from, recvd_count; MPI_Status status; MPI_Recv(..,MPI_ANY_SOURCE,MPI_ANY_TAG,..,&status); recvd_tag = status.mpi_tag; recvd_from = status.mpi_source; MPI_Get_count( &status, datatype, &recvd_count ); #include <stdio.h> Παράδειγµα 3 (1/2) int main(int argc, char *argv[]) int rank, size, i; int buffer[10]; MPI_Status status; MPI_Init(&argc, &argv); MPI_Comm_size(MPI_COMM_WORLD, &size); MPI_Comm_rank(MPI_COMM_WORLD, &rank); if (size < 2) printf("please run with two processes.\n"); fflush(stdout); return 0; E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 25 E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 26 Παράδειγµα 3 (2/2) if (rank == 0) for (i=0; i<10; i++) buffer[i] = i; MPI_Send(buffer, 10, MPI_INT, 1, 123, MPI_COMM_WORLD); if (rank == 1) for (i=0; i<10; i++) buffer[i] = - 1; MPI_Recv(buffer, 10, MPI_INT, 0, 123, MPI_COMM_WORLD, &status); for (i=0; i<10; i++) if (buffer[i]!= i) E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 27 printf("error: buffer[%d] #define BUFLEN 512 Παράδειγµα 4 (1/3) int main(int argc, char *argv[]) int i, myid, numprocs, next, rc; char buffer[buflen]; MPI_Status status; MPI_Init(&argc,&argv); MPI_Comm_size(MPI_COMM_WORLD,&numprocs); MPI_Comm_rank(MPI_COMM_WORLD,&myid); strcpy(buffer,"hello there"); next = (myid + 1) %numprocs; E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 28 Παράδειγµα 4 (2/3) if (myid == 0) printf("%d sending '%s' \n",myid,buffer); MPI_Send(buffer, strlen(buffer)+1, MPI_CHAR, next, 99, MPI_COMM_WORLD); printf("%d receiving \n",myid); MPI_Recv(buffer, BUFLEN, MPI_CHAR,MPI_ANY_SOURCE, 99, MPI_COMM_WORLD, &status); Παράδειγµα 4 (3/3) else /* myid!= 0 */ printf("%d receiving \n",myid); MPI_Recv(buffer, BUFLEN, MPI_CHAR, MPI_ANY_SOURCE, 99, MPI_COMM_WORLD, &status); printf("%d received '%s' \n", myid, buffer); MPI_Send(buffer, strlen(buffer)+1, MPI_CHAR, next, 99, MPI_COMM_WORLD); printf("%d sent '%s' \n", myid,buffer); printf("%d received '%s' \n",myid,buffer); MPI_Barrier(MPI_COMM_WORLD); E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 29 E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 30 5
6 Χρησιµότητα Τύπων εδοµένων Τα δεδοµένα χαρακτηρίζονται µε τον τύπο τους Εποµένως, µία υλοποίηση του MPI µπορεί να υποστηρίζει επικοινωνία µεταξύ διεργασιών σε υπολογιστές µε διαφορετικές αναπαραστάσεις µνήµης και µεγέθη βασικών τύπων (ανοµοιογενής επικοινωνία). Ο καθορισµό του τρόπου µε τον οποίο αποθηκεύονται τα δεδοµένα µιας εφαρµογής στη µνήµη µειώνει τις αντιγραφές τµηµάτων µνήµης µέσα στην υλοποίηση Επιτρέπει τη χρήση ειδικού υλικού (hardware) όταν είναι διαθέσιµο Βασικές Κλήσεις Οιπερισσότερες παράλληλες εφαρµογές µπορούν να γραφτούν χρησιµοποιώντας µόνο τις ακόλουθες έξι ρουτίνες: MPI_Init MPI_Finalize MPI_Comm_size MPI_Comm_rank MPI_Send MPI_Recv E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 31 E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 32 Κλήση MPI_Βsend MPI_Send MPI_Ssend MPI_Sendrecv MPI_Isend MPI_Issend MPI_Recv MPI_Irecv Κλήσεις Επικοινωνίας MPI Λειτουργία Τοποθέτησε ένα εξερχόµενο µήνυµα σε ένα τοπικό buffer αποστολής Στείλεένα µήνυµα και περίµενε µέχρι να αντιγραφεί σε έναν τοπικό ή αποµακρυσµένο buffer Στείλεένα µήνυµα και περίµενε µέχρι να ξεκινήσει η λήψη του Στείλε ένα µήνυµα και περίµενε για µια απάντηση Πέρναµια αναφορά στο εξερχόµενο µήνυµα και συνέχισε την εκτέλεση του προγράµµατος Πέρναµια αναφορά στο εξερχόµενο µήνυµα και περίµενε µέχρι να ξεκινήσει η λήψη του Παρέλαβε ένα µήνυµα, µπλοκάροντας αν δεν υπάρχει κάποιο Έλεγξεαν υπάρχει εισερχόµενο µήνυµα αλλά χωρίς µπλοκάρισµα E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 33 Συλλογικές Λειτουργίες στο MPI Οισυλλογικές λειτουργίες καλούνται από όλες τις διεργασίες σε έναν communicator Η κλήση MPI_Bcastκατανέµει δεδοµένα από µία διεργασία (τη ρίζα) σε όλες τις υπόλοιπες σε έναν communicator. Η κλήση MPI_Reduceσυνδυάζει δεδοµένα από όλες τις διεργασίες σε έναν communicator και επιστρέφει το αποτέλεσµα σε µια διεργασία. Σε πολλούς αριθµητικούς αλγορίθµους, το ζεύγος κλήσεων Send/Recvµπορεί να αντικατασταθεί µε το Bcast/Reduce, βελτιώνοντας την απλότητα και την απόδοση E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 34 Παράδειγµα Υπολογισµός π (1/2) #include <math.h> int main(int argc, char *argv[]) int done = 0, n, myid, numprocs, i, rc; double PI25DT = ; double mypi, pi, h, sum, x, a; MPI_Init(&argc,&argv); MPI_Comm_size(MPI_COMM_WORLD,&numprocs); MPI_Comm_rank(MPI_COMM_WORLD,&myid); while (!done) if (myid == 0) printf("enter the number of intervals:(0 quits)"); scanf("%d",&n); MPI_Bcast(&n, 1, MPI_INT, 0, MPI_COMM_WORLD); if (n == 0) break; E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 35 Παράδειγµα Υπολογισµός π (2/2) h = 1.0 / (double) n; sum = 0.0; for (i = myid + 1; i <= n; i += numprocs) x = h * ((double)i - 0.5); sum += 4.0 / (1.0 + x*x); mypi = h * sum; MPI_Reduce(&mypi, &pi, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD); if (myid == 0) printf("pi is approx %.16f, Error is %.16f\n", pi, fabs(pi - PI25DT)); return 0; E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 36 6
7 Εναλλακτικές Βασικές Κλήσεις Οιπερισσότερες παράλληλες εφαρµογές µπορούν να γραφτούν χρησιµοποιώντας µόνο τις ακόλουθες έξι ρουτίνες: MPI_Init MPI_Finalize MPI_Comm_size MPI_Comm_rank MPI_Bcast MPI_Reduce MPI και Αδιέξοδα Έστωη αποστολή ενός µεγάλου µηνύµατος από τη διεργασία 0 στη διεργασία 1 Αν δεν υπάρχει αρκετός χώρος αποθήκευσης στον προορισµό, η κλήση send πρέπει να περιµένει ώστε ο χρήστης να παρέχει κατάλληλο χώρο µνήµης (µέσω της receive) Έστω το ακόλουθο σενάριο ιεργασία 0 Send(1) Recv(1) ιεργασία 1 Send(0) Recv(0) Η κατάσταση καλείται «µη ασφαλής» επειδή εξαρτάται από τη διαθεσιµότητα των προσωρινών χώρων αποθήκευσης του συστήµατος (system buffers) E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 37 E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 38 Πιθανές Λύσεις Προσεκτική διάταξη των λειτουργιών: ιεργασία 0 Send(1) Recv(1) ιεργασία 1 Recv(0) Send(0) Χρήση λειτουργιών χωρίς αναστολή εκτέλεσης (nonblocking): ιεργασία 0 Isend(1) Irecv(1) Waitall ιεργασία 1 Isend(0) Irecv(0) Waitall Η βιβλιοθήκη MPICH H βιβλιοθήκη MPICH αποτελεί µια υψηλών επιδόσεων µεταφέρσιµη υλοποίηση του προτύπου MPI. ιαθέσιµη για µεγάλα υπολογιστικά συστήµατα, συστάδες υπολογιστών και ετερογενή δίκτυα Σε µια πληθώρα συστηµάτων, ο χρήστης πρέπει να κάνει τα ακόλουθα: configure [ρυθµίσεις βιβλιοθήκης] make [δηµιουργία βιβλιοθήκης] mpicc -o pi.exe pi.c [µεταγλώττιση προγράµµατος] mpd & [εκκίνηση MPI daemon] mpirun -np 10 pi.exe [εκτέλεση προγράµµατος] E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 39 E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 40 Βασικές Ιδιότητες του MPI-2 υναµική διαχείριση διεργασιών υναµική εκκίνηση διεργασιών υναµική δηµιουργία συνδέσεων Επικοινωνίες µίας πλευράς Put/get Κάποιες επιπλέον λειτουργίες Παράλληλο I/O Πλεονεκτήµατα Το MPI περιλαµβάνει ρητό παραλληλισµό που συνήθως παρέχει καλύτερη απόδοση. Περιλαµβάνει έναν µεγάλο αριθµό βελτιστοποιηµένων κλήσεων επικοινωνίας. Γενικά, υπάρχει επικάλυψη επικοινωνίας και υπολογισµών Προβλήµατα από την τοποθέτηση των δεδοµένων εµφανίζονται σπάνια. Ο συνδυασµός επικοινωνίας και συγχρονισµού µειώνει τις επιβαρύνσεις. E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 41 E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 42 7
8 Μειονεκτήµατα Ηπαραλληλοποίηση, ανάπτυξη και το debugging των εφαρµογών µπορεί να είναι αρκετά δύσκολο. Τα κόστη επικοινωνίας µπορεί να είναι σηµαντικές. Οι υπολογισµοί πρέπει να είναι σηµαντικοί σε µέγεθος ώστε να υπερκαλύπτουν τα κόστη επικοινωνίας. Οι καθολικές λειτουργίες µπορεί να είναι πολύ ακριβές. Απαιτούνται σηµαντικές αλλαγές στον αρχικό ακολουθιακό κώδικα. Είναι δύσκολο να επιτευχθεί δυναµική εξισορρόπηση φόρτου. E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 43 8
Ε-85: Ειδικά Θέµατα Λογισµικού
Ε-85: Ειδικά Θέµατα Λογισµικού Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων Χειµερινό Εξάµηνο 2009-10 «Εισαγωγή στο MPI» Παναγιώτης Χατζηδούκας (Π.Δ. 407/80) E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών
Διαβάστε περισσότεραΕισαγωγή. 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 Κλήση
Διαβάστε περισσότεραΣυστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα 2: OpenMPI Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής
Διαβάστε περισσότεραΣυστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα 2: OpenMPI Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής
Διαβάστε περισσότεραΚατανεμημένος και Παράλληλος Προγραμματισμός MPI. MPI Απλές εντολές 03/13/2016. Οδηγίες αποστολής / παραλαβής μηνυμάτων, Υπολογισμός του π (
Κατανεμημένος και Παράλληλος Προγραμματισμός Ηλίας Κ. Σάββας Αναπληρωτής Καθηγητής Τμήμα Μηχανικών Πληροφορικής ΤΕ, ΤΕΙ Θεσσαλίας Email: savvas@teilar.gr MPI Οδηγίες αποστολής / παραλαβής μηνυμάτων, Υπολογισμός
Διαβάστε περισσότεραύο μηχανισμοί απαιτούνται: 1. Μία μέθοδος για τη δημιουργία διεργασιών
Υπολογισμός με βάση το πέρασμα μηνυμάτων Προγραμματισμός με πέρασμα μηνυμάτων ύο μηχανισμοί απαιτούνται: 1. Μία μέθοδος για τη δημιουργία διεργασιών που θα εκτελούνται σε διαφορετικούς υπολογιστές. 2.
Διαβάστε περισσότεραΣυστήµατα Παράλληλης Επεξεργασίας. Message Passing Interface (MPI)
Message Passing Interface (MPI) Αρχιτεκτονική κοινής µνήµης Οι επεξεργαστές έχουν κοινή µνήµη Κάθε επεξεργαστής διαθέτει τοπική ιεραρχία κρυφών µνηµών Συνήθως η διασύνδεση γίνεται µέσω διαδρόµου µνήµης
Διαβάστε περισσότεραΠαράλληλα και Κατανεµηµένα Συστήµατα. Εισαγωγή
Παράλληλα και Κατανεµηµένα Συστήµατα 1 Εισαγωγή Στόχος της περιγραφής που ακολουθεί, αποτελεί η παρουσίαση του περιβάλλοντος διεπαφής ανταλλαγής µηνυµάτων (message passing interface) MPI δια της χρήσεως
Διαβάστε περισσότεραMessage Passing Interface (MPI)
Message Passing Interface (MPI) Συστήµατα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστηµάτων Αθήνα, εκέµβριος 2002 Τι είναι το MPI; Είναι πρότυπο, όχι συγκεκριµένη υλοποίηση Βιβλιοθήκη ανταλλαγής
Διαβάστε περισσότεραMessage Passing Interface (MPI)
Message Passing Interface (MPI) Συστήµατα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστηµάτων Αθήνα, Νοέµβριος 2003 24/11/2003 Message Passing Interface (MPI) 1 Παράλληλες αρχιτεκτονικές Αρχιτεκτονική
Διαβάστε περισσότεραΑρχιτεκτονική κοινής μνήμης
Αρχιτεκτονική κοινής μνήμης Οι επεξεργαστές έχουν κοινή μνήμη Κάθε επεξεργαστής διαθέτει τοπική ιεραρχία κρυφών μνημών Συνήθως η διασύνδεση γίνεται μέσω διαδρόμου μνήμης (memory bus) Αλλά και πιο εξελιγμένα
Διαβάστε περισσότεραMPI: Message Passing Interface
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων MPI: Message Passing Interface 9 ο Εξάμηνο Αρχιτεκτονική κοινής μνήμης Οι επεξεργαστές
Διαβάστε περισσότεραΣυστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα 5: MPI_Reduce Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής
Διαβάστε περισσότεραΣυστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας
Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:05 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων
Διαβάστε περισσότεραΥπολογιστικές Μέθοδοι Ανάλυσης και Σχεδιασµού Υπολογιστικό Εργαστήριο Μάθηµα 1 Εισαγωγή στο MPI http://ecourses.chemeng.ntua.gr/courses/computational_methods Αρχιτεκτονικές Παράλληλων Υπολογιστών Shared
Διαβάστε περισσότεραΚατανεμημένος και Παράλληλος Προγραμματισμός. Εισαγωγή στο MPI. Εγκατάσταση MPICH σε ένα ΗΥ 10/3/2017
Κατανεμημένος και Παράλληλος Προγραμματισμός Ηλίας Κ. Σάββας Καθηγητής Τμήμα Μηχανικών Πληροφορικής ΤΕ, ΤΕΙ Θεσσαλίας Email: savvas@teilar.gr Εισαγωγή στο MPI Εγκατάσταση του Message Passing Interface,
Διαβάστε περισσότεραΣυστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα 4: MPI_ANY_TAG,MPI_ANY_SOURCE,MPI_Bcast, MPI_Wtime, MPI_Wait, MPI_Test, MPI_Scatter Δρ. Μηνάς Δασυγένης
Διαβάστε περισσότεραΣυστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα 5: MPI_Reduce Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής
Διαβάστε περισσότεραMessage Passing Interface (MPI)
Message Passing Interface (MPI) Συστήµατα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστηµάτων Αθήνα, Οκτώβριος 2009 21/10/2009 Message Passing Interface (MPI) 1 Παράλληλες αρχιτεκτονικές Αρχιτεκτονική
Διαβάστε περισσότεραMPI: Message Passing Interface
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων MPI: Message Passing Interface 9ο Εξάμηνο Αρχιτεκτονική κοινής μνήμης Οι επεξεργαστές έχουν
Διαβάστε περισσότεραMessage Passing Interface (MPI)
Message Passing Interface (MPI) Συστήµατα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστηµάτων Αθήνα, Νοέµβριος 2004 22/11/2004 Message Passing Interface (MPI) 1 Παράλληλες αρχιτεκτονικές Αρχιτεκτονική
Διαβάστε περισσότεραΥπολογισμοί Μεταβίβασης Μηνυμάτων
Υπολογισμοί Μεταβίβασης Μηνυμάτων Κ.Γ. Μαργαρίτης προσαρμογή από το μάθημα του Barry Wilkinson ITCS 4145/5145 2006 Cluster Computing Univ. of North Carolina at Charlotte 2.1 2.2 Προγραμματισμός μεταβίβασης
Διαβάστε περισσότεραΕΚΔΟΣΗ 1.0 ΟΚΤΩΒΡΙΟΣ, 2017 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΕΙΣΑΓΩΓΗ ΣΤO MESSAGE PASSING INTERFACE - MPI ΕΠΙΜΕΛΕΙΑ: Β. ΤΣΑΚΑΝΙΚΑΣ, Β.
ΕΚΔΟΣΗ 1.0 ΟΚΤΩΒΡΙΟΣ, 2017 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΕΙΣΑΓΩΓΗ ΣΤO MESSAGE PASSING INTERFACE - MPI ΕΠΙΜΕΛΕΙΑ: Β. ΤΣΑΚΑΝΙΚΑΣ, Β. ΤΑΜΠΑΚΑΣ CONTENTS ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ... 2 Εισαγωγή...
Διαβάστε περισσότεραΠρογραµµατισµός µε ανταλλαγή µηνυµάτων Ι. Εισαγωγή στο MPI. Εφαρµογές Ανεξάρτητου Παραλληλισµού.
Προγραµµατισµός µε ανταλλαγή µηνυµάτων Ι. Εισαγωγή στο MPI. Εφαρµογές Ανεξάρτητου Παραλληλισµού. Λογισµικό & Προγραµµατισµός Συστηµάτων Υψηλής Επίδοσης Οµάδα Παράλληλων & Κατανεµηµένων Συστηµάτων http://pdsgroup.hpclab.ceid.upatras.gr/
Διαβάστε περισσότεραΠερίληψη. Υπερυπολογιστές. Υπολογιστικά προβλήµατα. TOP 500 (Ιούνιος 2007) TOP 500 (Ιούνιος 2009) Ε-85: Ειδικά Θέµατα Λογισµικού
Ε-85: Ειδικά Θέµατα Λογισµικού Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων Χειµερινό Εξάµηνο 2009-10 «Υπολογιστικά Συστήµατα Υψηλών Επιδόσεων και Εφαρµογές» Περίληψη Υπερυπολογιστές Πολυεπεξεργαστικά συστήµατα
Διαβάστε περισσότεραΠαράλληλος προγραµµατισµός
Το Message Passing Interface (MPI) και η υποστήριξή του στο EGEE Grid Vasileios Karakasis GRNET S.A., ICCS bkk@cslab.ece.ntua.gr Issues on Grid Technologies, Univ. of Patras, 2/3/2010 Σύνοψη παρουσίασης
Διαβάστε περισσότεραΣυστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα 1: OpenMPI Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής
Διαβάστε περισσότεραΕ-85: Ειδικά Θέµατα Λογισµικού
Ε-85: Ειδικά Θέµατα Λογισµικού Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων Χειµερινό Εξάµηνο 2009-10 «Υπολογιστικά Συστήµατα Υψηλών Επιδόσεων και Εφαρµογές» Παναγιώτης Χατζηδούκας (Π.Δ. 407/80) E-85: Ε.Θ.Λ:
Διαβάστε περισσότεραΚεφάλαιο VIΙΙ Β. Δημακόπουλος
Μεταβίβαση μηνυμάτων Κεφάλαιο VIΙΙ Β. Δημακόπουλος Προγραμματίζοντας με μεταβίβαση μηνυμάτων Δεν υπάρχουν κοινές μεταβλητές διεργασίες και μηνύματα Θεωρείται το πιο δύσκολο Μπορεί, όμως, να γίνει πιο αποδοτικό
Διαβάστε περισσότεραΣυστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα 3: MPI_Get_count, non blocking send/recv, εμφάνιση και αποφυγή αδιεξόδων Δρ. Μηνάς Δασυγένης mdasyg@ieee.org
Διαβάστε περισσότεραΑνταλλαγι Μθνυμάτων. Κϊςτασ Διαμαντάρασ Τμιμα Πλθροφορικισ ΤΕΙ Θεςςαλονίκθσ
Ανταλλαγι Μθνυμάτων Κϊςτασ Διαμαντάρασ Τμιμα Πλθροφορικισ ΤΕΙ Θεςςαλονίκθσ Στζλνω και λαμβάνω μθνφματα Θέματα: Προσ ποιόν ςτζλνονται τα δεδομζνα; Τι ςτζλνεται; Πϊσ ο δζκτθσ αναγνωρίηει τα δεδομζνα; 2 Πζραςμα
Διαβάστε περισσότεραΣυστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας
Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:04 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων
Διαβάστε περισσότεραΤο Message Passing Interface (MPI) και η υποστήριξή του στο EGEE Grid
Το Message Passing Interface (MPI) και η υποστήριξή του στο EGEE Grid Vangelis Koukis HG-01 01-GRNET and HG-06 06-EKT admin team vkoukis@cslab.ece.ntua.gr UoA, 2006/10/26 Πορεία μιας σειριακής εργασίας
Διαβάστε περισσότεραΕΚΔΟΣΗ 1.1 ΑΠΡΙΛΙΟΣ, 2018 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΤΟ ΠΡΩΤΟΚΟΛΛΟ ECHO ΕΠΙΜΕΛΕΙΑ: Β. ΤΣΑΚΑΝΙΚΑΣ, Β. ΤΑΜΠΑΚΑΣ
ΕΚΔΟΣΗ 1.1 ΑΠΡΙΛΙΟΣ, 2018 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΕΠΙΜΕΛΕΙΑ: Β. ΤΣΑΚΑΝΙΚΑΣ, Β. ΤΑΜΠΑΚΑΣ CONTENTS ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ... 2 Το πρωτόκολλο ECHO... 2 Εισαγωγή... 2 Το πρωτόκολλο
Διαβάστε περισσότεραΤο Message Passing Interface (MPI) και η υποστήριξή του στο EGEE Grid
Το Message Passing Interface (MPI) και η υποστήριξή του στο EGEE Grid Vangelis Koukis HG-01 01-GRNET and HG-06 06-EKT admin team vkoukis@cslab.ece.ntua.gr NOA, 2006/10/03 Πορεία μιας σειριακής εργασίας
Διαβάστε περισσότεραΣυστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα 4: MPI_ANY_TAG,MPI_ANY_SOURCE,MPI_Bcast, MPI_Wtime, MPI_Wait, MPI_Test, MPI_Scatter Δρ. Μηνάς Δασυγένης
Διαβάστε περισσότεραMPI: Message Passing Interface
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων MPI: Message Passing Interface 9 ο Εξάμηνο Αρχιτεκτονική κοινής μνήμης l l l Οι επεξεργαστές
Διαβάστε περισσότεραΣυστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα 1: OpenMPI Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής
Διαβάστε περισσότεραΕ-85: Ειδικά Θέµατα Λογισµικού
Ε-85: Ειδικά Θέµατα Λογισµικού Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων Χειµερινό Εξάµηνο 2009-10 «ιεργασίες και Νήµατα» Παναγιώτης Χατζηδούκας (Π.Δ. 407/80) E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων
Διαβάστε περισσότεραΚατανεμημένος και Παράλληλος Προγραμματισμός MPI. Γρήγορος οδηγός αναφοράς 1/4/2017
Κατανεμημένος και Παράλληλος Προγραμματισμός Ηλίας Κ. Σάββας Καθηγητής Τμήμα Μηχανικών Πληροφορικής ΤΕ, ΤΕΙ Θεσσαλίας Email: savvas@teilar.gr MPI Διαμοίραση (MPI_Scatter) και συλλογή δεδομένων (MPI_Gather)
Διαβάστε περισσότεραΤο Message Passing Interface (MPI) και η υποστήριξή του στο EGEE Grid. Vangelis Koukis 01-GRNET and HG EKT admin team
Το Message Passing Interface (MPI) και η υποστήριξή του στο EGEE Grid Vangelis Koukis HG-01 01-GRNET and HG-06 06-EKT admin team vkoukis@cslab.ece.ntua.gr Advanced Course on Grid Technologies, Univ. of
Διαβάστε περισσότεραΕΚΔΟΣΗ 1.0 ΟΚΤΩΒΡΙΟΣ, 2017 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΤΟ ΠΡΩΤΟΚΟΛΛΟ TARRY ΕΠΙΜΕΛΕΙΑ: Β. ΤΣΑΚΑΝΙΚΑΣ, Β. ΤΑΜΠΑΚΑΣ
ΕΚΔΟΣΗ 1.0 ΟΚΤΩΒΡΙΟΣ, 2017 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΤΟ ΠΡΩΤΟΚΟΛΛΟ TARRY ΕΠΙΜΕΛΕΙΑ: Β. ΤΣΑΚΑΝΙΚΑΣ, Β. ΤΑΜΠΑΚΑΣ CONTENTS ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ... 2 Το πρωτόκολλο TARRY... 2 Εισαγωγή...
Διαβάστε περισσότεραΕπιστημονικοί Υπολογισμοί - Μέρος ΙΙΙ: Παράλληλοι Υπολογισμοί
Επιστημονικοί Υπολογισμοί - Μέρος ΙΙΙ: Παράλληλοι Υπολογισμοί Χαρμανδάρης Βαγγέλης, Τμήμα Εφαρμοσμένων Μαθηματικών Πανεπιστήμιο Κρήτης, Εαρινό Εξάμηνο 2013/14 Κεφάλαιο 5: (B) Message Passing Interface
Διαβάστε περισσότεραΕΚΔΟΣΗ 1.1 ΜΑΙΟΣ, 2018 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΑΛΓΟΡΙΘΜΟΣ POLLING ΚΥΜΑΤΙΚΟΣ ΑΛΓΟΡΙΘΜΟΣ ΕΠΙΜΕΛΕΙΑ: Β. ΤΣΑΚΑΝΙΚΑΣ, Β.
ΕΚΔΟΣΗ 1.1 ΜΑΙΟΣ, 2018 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΕΠΙΜΕΛΕΙΑ: Β. ΤΣΑΚΑΝΙΚΑΣ, Β. ΤΑΜΠΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΑ ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ... 2 Ο αλγόριθμος Polling... 2 Ο Κυματικός Αλγόριθμος...
Διαβάστε περισσότεραΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Μεταβίβαση μηνυμάτων. Κεφάλαιο 5 (νέο βιβλίο) Κεφάλαιο 8 (παλιές σημειώσεις)
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Μεταβίβαση μηνυμάτων Κεφάλαιο 5 (νέο βιβλίο) Κεφάλαιο 8 (παλιές σημειώσεις) Προγραμματίζοντας με μεταβίβαση μηνυμάτων Δεν υπάρχουν κοινόχρηστες μεταβλητές διεργασίες και μηνύματα Θεωρείται
Διαβάστε περισσότεραNon-blocking Επικοινωνίεσ και Buffering. Κώςτασ Διαμαντάρασ ΤΕΙ Θεςςαλονίκθσ 2011
Non-blocking Επικοινωνίεσ και Buffering Κώςτασ Διαμαντάρασ ΤΕΙ Θεςςαλονίκθσ 2011 Η χριςθ buffer Ροφ πάνε τα δεδομζνα μετά το send? Διεργασία 1 Διεργασία 2 A Buffer Δίκτσο Buffer B 2 Κ. Διαμαντάρας ΤΕΙ
Διαβάστε περισσότεραΚατανεμημένος και Παράλληλος Προγραμματισμός. Εισαγωγή στο MPI. Εγκατάσταση MPICH σε ένα ΗΥ 6/3/2016
Κατανεμημένος και Παράλληλος Προγραμματισμός Ηλίας Κ. Σάββας Αναπληρωτής Καθηγητής Τμήμα Μηχανικών Πληροφορικής ΤΕ, ΤΕΙ Θεσσαλίας Email: savvas@teilar.gr Εισαγωγή στο MPI Εγκατάσταση του Message Passing
Διαβάστε περισσότεραEM 361: Παράλληλοι Υπολογισμοί
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ EM 361: Παράλληλοι Υπολογισμοί Ενότητα #5Β: Message Passing Interface (MPI) Διδάσκων: Χαρμανδάρης Ευάγγελος ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΩΝ ΜΑΘΗΜΑΤΙΚΩΝ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΚΩΝ
Διαβάστε περισσότεραMPI: Βαςικζσ Εντολζσ Επικοινωνίασ. Κώςτασ Διαμαντάρασ Τμιμα Πλθροφορικισ ΤΕΙ Θεςςαλονίκθσ 2011
MPI: Βαςικζσ Εντολζσ Επικοινωνίασ Κώςτασ Διαμαντάρασ Τμιμα Πλθροφορικισ ΤΕΙ Θεςςαλονίκθσ 2011 Εντολζσ Επικοινωνίασ ςθμείο προσ ςθμείο (point-to-point) MPI_Send, MPI_Recv MPI_Isend, MPI_Irecv 2 Κώςτασ Διαμαντάρασ
Διαβάστε περισσότεραΕπιμερισμός δεδομένων
Επιμερισμός δεδομένων Διαίρει και βασίλευε Κ.Γ. Μαργαρίτης προσαρμογή από το μάθημα του Barry Wilkinson ITCS 4145/5145 2006Cluster Computing Univ. of North Carolina at Charlotte Επιμερισμός δεδομένων Κατανομή
Διαβάστε περισσότεραΠρογραμματισμός με Μεταβίβαση Μηνυμάτων
5 Προγραμματισμός με Μεταβίβαση Μηνυμάτων Σε αυτό το κεφάλαιο του βιβλίου θα ασχοληθούμε με το προγραμματιστικό μοντέλο μεταβίβασης μηνυμάτων (message passing model), κατά πολλούς το πιο ευρέως χρησιμοποιούμενο
Διαβάστε περισσότεραΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ. Της φοιτήτριας Αριστέας Χρονοπούλου Αρ. Μητρώου: 01 / Επιβλέπων Καθηγητής Αθανάσιος Μάργαρης
ΑΛΕΞΑΝ ΡΕΙΟ Τ.Ε.Ι. ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΤΟ ΜΟΝΤΕΛΟ ΜΕΤΑΒΙΒΑΣΗΣ ΜΗΝΥΜΑΤΩΝ MESSAGE PASSING INTERFACE (MPI) Της φοιτήτριας Αριστέας Χρονοπούλου Αρ.
Διαβάστε περισσότεραΠ. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7
Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 ΠΕΡΙΕΧΟΜΕΝΟ ΤΟΥ ΜΑΘΗΜΑΤΟΣ Αρχές
Διαβάστε περισσότερα30/4/2012 Συστήματα κατανεμημένης μνήμης και ο προγραμματισμός τους (Ι) Β. Δημακόπουλος
Υ07 Παράλληλα Συστήματα 2011-12 30/4/2012 Συστήματα κατανεμημένης μνήμης και ο προγραμματισμός τους (Ι) Β. Δημακόπουλος multicomputers, MPPs, clusters Πολυεπεξεργαστές κατανεμημένης μνήμης Ανεξάρτητοι
Διαβάστε περισσότεραΑ. 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) ΟΝΟΜΑΤΕΠΩΝΥΜΟ:................................................................................ Α.Μ.:...............................................
Διαβάστε περισσότεραΔιάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος
Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Μεταβλητές,
Διαβάστε περισσότεραΠ. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7
Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 ❶ Προετοιµασία για το 1 ο Εργαστήριο
Διαβάστε περισσότεραΣυστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας
Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:03 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων
Διαβάστε περισσότεραΔομημένος Προγραμματισμός (ΤΛ1006)
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής
Διαβάστε περισσότεραΠ. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7
Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 Προηγούµενη ιάλεξη Εισαγωγικά
Διαβάστε περισσότεραΕΚΔΟΣΗ 1.1 ΜΑΙΟΣ, 2018 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΕΚΛΟΓΗ ΑΡΧΗΓΟΥ ΕΠΙΜΕΛΕΙΑ: Β. ΤΣΑΚΑΝΙΚΑΣ, Β. ΤΑΜΠΑΚΑΣ
ΕΚΔΟΣΗ 1.1 ΜΑΙΟΣ, 2018 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΕΚΛΟΓΗ ΑΡΧΗΓΟΥ ΕΠΙΜΕΛΕΙΑ: Β. ΤΣΑΚΑΝΙΚΑΣ, Β. ΤΑΜΠΑΚΑΣ CONTENTS ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ... 2 Εκλογή αρχηγού... 2 Εισαγωγή... 2 Ο Αλγόριθμος
Διαβάστε περισσότεραΤφποι δεδομζνων MPI. Κώςτασ Διαμαντάρασ Τμιμα Πλθροφορικισ ΤΕΙ Θεςςαλονίκθσ
Τφποι δεδομζνων MPI Κώςτασ Διαμαντάρασ Τμιμα Πλθροφορικισ ΤΕΙ Θεςςαλονίκθσ MPI datatypes Σκοπόσ MPI datatypes: θ ςυνεργαςία μεταξφ ετερογενών υπολογιςτών και αρχιτεκτονικών Η χριςθ μθ ςυνεχών κζςεων μνιμθσ.
Διαβάστε περισσότεραΠαράλληλη Επεξεργασία
Παράλληλη Επεξεργασία Φροντιστήριο: Εισαγωγή στο OpenMP Εργαστήριο Πληροφοριακών Συστημάτων Υψηλής Επίδοσης Parallel and Distributed Systems Group Τι είναι το OpenMP Πρότυπο Επέκταση στη C/C++ και τη Fortran
Διαβάστε περισσότεραΠρογραμματισμός Η/Υ (ΤΛ2007 )
Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2014-15
Διαβάστε περισσότεραΕΚΔΟΣΗ 1.0 ΟΚΤΩΒΡΙΟΣ, 2017 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΡΟΛΟΓΙΑ ΕΠΙΜΕΛΕΙΑ: Β. ΤΣΑΚΑΝΙΚΑΣ, Β. ΤΑΜΠΑΚΑΣ
ΕΚΔΟΣΗ 1.0 ΟΚΤΩΒΡΙΟΣ, 2017 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΕΠΙΜΕΛΕΙΑ: Β. ΤΣΑΚΑΝΙΚΑΣ, Β. ΤΑΜΠΑΚΑΣ CONTENTS ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ... 2 Κατανεμημένα Ρολόγια... 2 Εισαγωγή... 2 Φυσικά Ρολόγια...
Διαβάστε περισσότεραΕισαγωγή στον Προγραµµατισµό. Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011
Εισαγωγή στον Προγραµµατισµό Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011 Hello World /* Αρχείο hello.c * Εµφανίζει στην οθόνη το * µήνυµα hello world */ #include
Διαβάστε περισσότεραΚεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II. ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ
Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 12-1 Ανασκόπηση οµής Προγράµµατος µε Συναρτήσεις #include 1 void PrintMessage (); Πρότυπο ( ήλωση) Συνάρτησης (
Διαβάστε περισσότερα#include <stdlib.h> Α. [-128,127] Β. [-127,128] Γ. [-128,128]
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εξετάσεις Α Περιόδου 2017 (27/1/2017) ΟΝΟΜΑΤΕΠΩΝΥΜΟ:................................................................................ Α.Μ.:...............................................
Διαβάστε περισσότεραΕκφωνήσεις ασκήσεων εργαστηρίου 1
Τμήμα Μηχανικών Πληροφορικής Τ.Ε. Σχολή Τεχνολογικών Εφαρμογών Ακαδημαϊκό έτος 2016-2017 ΤΕΙ Ηπείρου - Άρτα Κατανεμημένα και Παράλληλα Συστήματα (εργαστήριο) Γκόγκος Χρήστος Εκφωνήσεις ασκήσεων εργαστηρίου
Διαβάστε περισσότεραΑνάπτυξη και Σχεδίαση Λογισμικού
Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Βασικά Στοιχεία Το αλφάβητο της C Οι βασικοί τύποι της C Δηλώσεις μεταβλητών Είσοδος/Έξοδος Βασικές εντολές της C Αλφάβητο
Διαβάστε περισσότεραProbleme de transmitere în modul standard. MPI - Message Passing Interface. Comunicarea punct la punct
MPI - Message Passing Interface MPI este un standard pentru comunicarea prin mesaje Elaborat de MPI Forum. Sisteme anterioare: de la IBM, Intel (NX/2) Express, ncube (Vertex), PARMACS, Zipcode, Chimp,
Διαβάστε περισσότεραΕισαγωγή στον Προγραμματισμό
Εισαγωγή στον Προγραμματισμό Πίνακες Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Πίνακες Πολλές φορές θέλουμε να κρατήσουμε στην μνήμη πολλά αντικείμενα
Διαβάστε περισσότεραΚεφάλαιο 2.6: Είσοδος / Έξοδος εδοµένων, Μορφοποίηση εδοµένων Εξόδου. ( ιάλεξη 7) ιδάσκων: ηµήτρης Ζεϊναλιπούρ
Κεφάλαιο 2.6: Είσοδος / Έξοδος εδοµένων, Μορφοποίηση εδοµένων Εξόδου ( ιάλεξη 7) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 1 Είσοδος/ Έξοδος Σε σχεδόν όλα τα προγράµµατα πρέπει να πάρουµε κάποια δεδοµένα και να δώσουµε
Διαβάστε περισσότεραΠρογραμματισμός Ι (ΗΥ120)
Προγραμματισμός Ι (ΗΥ120) Διάλεξη 9: Συναρτήσεις Ορισμός συναρτήσεων () { /* δήλωση μεταβλητών */ /* εντολές ελέγχου/επεξεργασίας */ o Μια συνάρτηση ορίζεται δίνοντας
Διαβάστε περισσότεραιεργασίες και νήµατα Προγραµµατισµός ΙΙΙ 1 lalis@inf.uth.gr
ιεργασίες και νήµατα Προγραµµατισµός ΙΙΙ 1 lalis@inf.uth.gr Η έννοια της διεργασίας ιεργασία (process) είναι ο µηχανισµός εκτέλεσης ενός προγράµµατος σε ένα λειτουργικό σύστηµα. Η διεργασία είναι µια ενεργή
Διαβάστε περισσότεραΠρογραμματισμός Η/Υ (ΤΛ2007 )
Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2015-16
Διαβάστε περισσότεραΠρογραμματισμός Ι (ΗΥ120)
Προγραμματισμός Ι (ΗΥ120) Διάλεξη 3: Είσοδος / Έξοδος, Βασικοί Τύποι, Δήλωση Μεταβλητών Ένα Ακόμα Παράδειγμα #include int main(int argc, char* argv[]) { } putchar('h'); putchar('e'); putchar('l');
Διαβάστε περισσότεραΠίνακες: μια σύντομη εισαγωγή. Πίνακες χαρακτήρων: τα "Αλφαριθμητικά"
Πίνακες: μια σύντομη εισαγωγή Πίνακες χαρακτήρων: τα "Αλφαριθμητικά" Πίνακες(Arrays): έννοιες και ορισμοί Ορισμός: Πίνακας (array) = σύνολο μεταβλητών του ιδίου τύπου (int, float, char,...) με ένα κοινό
Διαβάστε περισσότεραΔομημένος Προγραμματισμός (ΤΛ1006)
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής
Διαβάστε περισσότεραΚεφάλαιο , 3.2: Συναρτήσεις II. (Διάλεξη 12)
Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II (Διάλεξη 12) 12-1 Ανασκόπηση Δομής Προγράμματος με Συναρτήσεις 1 void PrintMessage (); Πρότυπο (Δήλωση) Συνάρτησης (Δηλώνουν τι επιπλέον συναρτήσεις θα χρησιμοποιήσουμε
Διαβάστε περισσότεραΚεφάλαιο 8.7. Πίνακες & Συναρτήσεις ( ιάλεξη 17) ιδάσκων: ηµήτρης Ζεϊναλιπούρ
Κεφάλαιο 8.7 Πίνακες & Συναρτήσεις ( ιάλεξη 17) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 17-1 Εισαγωγή Στις προηγούµενες διαλέξεις µάθαµε πώς να δηλώνουµε, αρχικοποιούµε και να επεξεργαζόµαστε πίνακες. Σήµερα θα µελετήσουµε
Διαβάστε περισσότεραΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΕΠΛ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΕΠΛ 032 2 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ Ενδιάμεση Εξέταση Ημερομηνία:08/03/10 Διάρκεια: 13:30 15:00 Διδάσκων: Παύλος Αντωνίου Ονοματεπώνυμο: Αριθμός Ταυτότητας: Η εξέταση
Διαβάστε περισσότεραΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ
ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κεφάλαιο 6 Επιμέλεια: Βασίλης Παλιουράς, Αναπληρωτής Καθηγητής Ευάγγελος Δερματάς, Αναπληρωτής Καθηγητής Σταύρος Νούσιας, Βοηθός Ερευνητή Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών
Διαβάστε περισσότεραΗ γλώσσα προγραμματισμού C
Η γλώσσα προγραμματισμού C Εισαγωγή στη C Λίγα λόγια για την C Γλώσσα προγραμματισμού υψηλού επιπέδου. Σχεδιάστηκε και υλοποιήθηκε από τον Dennis Richie στις αρχές της δεκαετίας του 1970 (Bell Labs). Η
Διαβάστε περισσότεραΜεθόδων Επίλυσης Προβλημάτων
ΕΠΛ 032.3: 3: Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων Αχιλλέας Αχιλλέως, Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου Email: achilleas@cs.ucy.ac.cy Κεφάλαιο 9 Συναρτήσεις Μέρος II Θέματα ιάλεξης Μη- ομημένος
Διαβάστε περισσότεραΠρογραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΧΗΜΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟ ΚΕΝΤΡΟ Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού Μάθημα 2ο Aντώνης Σπυρόπουλος v2_061015 Οροι που
Διαβάστε περισσότεραΜεθόδων Επίλυσης Προβλημάτων
ΕΠΛ 032.3: 3: Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων Αχιλλέας Αχιλλέως, Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου Email: achilleas@cs.ucy.ac.cy Κεφάλαιο 13 Πίνακες & Συναρτήσεις Εισαγωγή Στις προηγούμενες
Διαβάστε περισσότεραΠρογραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Προγραμματισμός Ι Δυναμική Διαχείριση Μνήμης Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2011-2012 Ανάγκη για Δυναμική Μνήμη Στατική Μνήμη Μέχρι τώρα χρησιμοποιούσαμε
Διαβάστε περισσότεραΑΣΚΗΣΗ 6: ΔΕΙΚΤΕΣ. Σκοπός της Άσκησης. 1. Εισαγωγικά στοιχεία για τους Δείκτες
Σκοπός της Άσκησης ΑΣΚΗΣΗ 6: ΔΕΙΚΤΕΣ Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η εξοικείωση με τη χρήση των δεικτών (pointers). Οι δείκτες δίνουν την δυνατότητα σε προγράμματα να προσομοιώνουν τη
Διαβάστε περισσότεραΠ. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7
Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 Προηγούµενη ιάλεξη Προτάσεις,
Διαβάστε περισσότεραΑντικειµενοστρεφής Προγραµµατισµός
16 η διάλεξη Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 Προηγούµενη ιάλεξη
Διαβάστε περισσότεραείκτες και Πίνακες (2)
είκτες και Πίνακες (2) Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: Πολυδιάστατοι πίνακες Πέρασµα παραµέτρων σε προγράµµατα C ΕΠΛ 132 Αρχές Προγραµµατισµού ΙΙ 1-1 Πίνακες εικτών Πίνακας δεικτών είναι
Διαβάστε περισσότεραΕΡΓΑΣΤΗΡΙΟ 1 ΕΙΣΑΓΩΓΗ ΣΤΗ C. Τµήµα Πληροφορικής και Τηλεπικοινωνιών
ΕΡΓΑΣΤΗΡΙΟ 1 ΕΙΣΑΓΩΓΗ ΣΤΗ C Τµήµα Πληροφορικής και Τηλεπικοινωνιών Περιεχόµενα Εισαγωγή Πρόγραµµα Φάσεις Υλοποίησης µε χρήση του εργαλείου DEV C + + οµή Προγράµµατος Η συνάρτηση main Μεταβλητές Τι είναι
Διαβάστε περισσότεραΕισαγωγή στον Προγραμματισμό (με. τη C)
Υποχρεωτικό Μάθημα 3 ου Εξαμήνου Χειμερινό Εξάμηνο Ακ. Έτους 20 Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Εισαγωγή στον Προγραμματισμό (με τη C) Διδάσκουσα: Φατούρου Παναγιώτα faturu [at] csd.uoc.gr
Διαβάστε περισσότεραΕισαγωγή στον Προγραµµατισµό. Διάλεξη 8 η : Συναρτήσεις Χειµερινό Εξάµηνο 2011
Εισαγωγή στον Προγραµµατισµό Διάλεξη 8 η : Συναρτήσεις Χειµερινό Εξάµηνο 2011 Συναρτήσεις (functions) Συνάρτηση (function) σύνολο εντολών που έχει οµαδοποιηθεί και τους έχει αποδοθεί ένα όνοµα Κλήση (calling)
Διαβάστε περισσότεραΑ Β Γ static; printf("%c\n", putchar( A +1)+2); B DB BD. int i = 0; while (++i); printf("*");
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εξετάσεις Α Περιόδου 2016 (1/2/2016) ΟΝΟΜΑΤΕΠΩΝΥΜΟ:................................................................................ Α.Μ.:...............................................
Διαβάστε περισσότεραΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ Μέρος 2ο ΝΙΚΟΛΑΟΣ ΣΤΕΡΓΙΟΥΛΑΣ ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ 1 ΣΦΑΛΜΑΤΑ ΜΕΤΑΓΛΩΤΤΙΣΗΣ Η γλώσσα C κάνει αυστηρή διάκριση μεταξύ πεζών
Διαβάστε περισσότεραΕνδεικτικές λύσεις και στατιστικά
Προγραμματισμός 1 Σύντομο Quiz 25/9/9 Ενδεικτικές λύσεις και στατιστικά Ερώτηση 1: Γράψτε παρακάτω συνάρτηση η οποία δέχεται ως παραμέτρους ένα string και ένα χαρακτήρα και επιστρέφει τον αριθμό των εμφανίσεων
Διαβάστε περισσότεραΠρογραμματισμό για ΗΜΥ
ΕΠΛ 034: Εισαγωγή στον Προγραμματισμό για ΗΜΥ Αχιλλέας Αχιλλέως, Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου Email: achilleas@cs.ucy.ac.cy Κεφάλαιο 3 Εισαγωγή στην C Θέματα ιάλεξης Σύνταξη και Σημασιολογία
Διαβάστε περισσότεραΠ. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7
Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 Προηγούµενη ιάλεξη Έννοια της
Διαβάστε περισσότερα