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

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

Κατανεμημένος και Παράλληλος Προγραμματισμός

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

Κατανεμημένος και Παράλληλος Προγραμματισμός MPI. Γρήγορος οδηγός αναφοράς 1/4/2017

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

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

ΕΚΔΟΣΗ 1.1 ΜΑΙΟΣ, 2018 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΑΛΓΟΡΙΘΜΟΣ POLLING ΚΥΜΑΤΙΚΟΣ ΑΛΓΟΡΙΘΜΟΣ ΕΠΙΜΕΛΕΙΑ: Β. ΤΣΑΚΑΝΙΚΑΣ, Β.

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

ΕΚΔΟΣΗ 1.0 ΟΚΤΩΒΡΙΟΣ, 2017 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΕΙΣΑΓΩΓΗ ΣΤO MESSAGE PASSING INTERFACE - MPI ΕΠΙΜΕΛΕΙΑ: Β. ΤΣΑΚΑΝΙΚΑΣ, Β.

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

Γλώσσα Προγραμματισμού C

Κατανεμημένος και Παράλληλος Προγραμματισμός

Κατανεμημένος και. Ηλίας Κ. Σάββας Αναπληρωτής Καθηγητής Τμήμα Μηχανικών Πληροφορικής ΤΕ, ΤΕΙ Θεσσαλίας

ΕΚΔΟΣΗ 1.0 ΟΚΤΩΒΡΙΟΣ, 2017 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΤΟ ΠΡΩΤΟΚΟΛΛΟ TARRY ΕΠΙΜΕΛΕΙΑ: Β. ΤΣΑΚΑΝΙΚΑΣ, Β. ΤΑΜΠΑΚΑΣ

Γλώσσα Προγραμματισμού C. Προγραμματισμός HY: Γλώσσα Προγραμματισμού C. Γρήγορος Πίνακας Αναφοράς Σύνταξης. Εισήγηση #4. Επαναληπτικές δομές:

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

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

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

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

ΕΚΔΟΣΗ 1.1 ΜΑΙΟΣ, 2018 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΕΚΛΟΓΗ ΑΡΧΗΓΟΥ ΕΠΙΜΕΛΕΙΑ: Β. ΤΣΑΚΑΝΙΚΑΣ, Β. ΤΑΜΠΑΚΑΣ

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

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

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

ΕΚΔΟΣΗ 1.1 ΑΠΡΙΛΙΟΣ, 2018 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΤΟ ΠΡΩΤΟΚΟΛΛΟ ECHO ΕΠΙΜΕΛΕΙΑ: Β. ΤΣΑΚΑΝΙΚΑΣ, Β. ΤΑΜΠΑΚΑΣ

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

Ενότητα 4: «Εισαγωγή στον Προγραμματισμό. Τα πρώτα προγράμματα σε γλώσσα C»

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

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

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα

Εισαγωγή στον δομημένο προγραμματισμό

Γλώσσα Προγραμματισμού C

Τμ. Τεχνολογίας Πληροφορικής & Τηλεπικοινωνιών Α Εξεταστική Περίοδος, 25 Ιουνίου 2009 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ Ηλίας. Κ. Σάββας

Γλώσσα Προγραμματισμού C

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

Ε-85: Ειδικά Θέµατα Λογισµικού

ΕΚΔΟΣΗ 1.0 ΟΚΤΩΒΡΙΟΣ, 2017 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΡΟΛΟΓΙΑ ΕΠΙΜΕΛΕΙΑ: Β. ΤΣΑΚΑΝΙΚΑΣ, Β. ΤΑΜΠΑΚΑΣ

ΕΚΔΟΣΗ 1.0 ΟΚΤΩΒΡΙΟΣ, 2017 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΓΕΝΙΚΟΙ ΓΡΑΦΟΙ ΣΤΟ MPI ΕΠΙΜΕΛΕΙΑ: Β. ΤΣΑΚΑΝΙΚΑΣ, Β. ΤΑΜΠΑΚΑΣ

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

Επικοινωνία. Message-Passing Interface (MPI) Βασικές Κλήσεις για Sockets. Μοντέλο Μεταβίβασης Μηνυµάτων. Μοντέλα Παράλληλου Υπολογισµού

(Κεφάλαιο 2.7 και 12) Αρχεία στην C. (Διάλεξη 15)

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

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

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

Γλώσσα Προγραμματισμού C

ΗΥ486 - Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο Δεύτερη Προγραμματιστική Εργασία

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

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

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

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

Προγραµµατισµός Ι Εργαστήριο 13ο Ακαδ. Έτος ΕΡΓΑΣΤΗΡΙΟ 13 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

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

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

ΤΕΙ Θεσσαλίας, Τμήμα Μηχανικών Πληροφορικής ΤΕ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΥ ΕΡΓΑΣΤΗΡΙΟ 9. ΑΣΚΗΣΕΙΣ (με ενδεικτική λύση)

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

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

Παράλληλη Επεξεργασία

Προγραµµατισµός Ι Εργαστήριο 13ο Ακαδ. Έτος ΕΡΓΑΣΤΗΡΙΟ 13 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών. Οδηγίες εργαστηρίου. Συστήματα Παράλληλης Επεξεργασίας 9 ο Εξάμηνο

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

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

ΣΕΤ ΑΣΚΗΣΕΩΝ 2. Προθεσμία: Τετάρτη 23/11/2016, 21:00

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

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 8 Ασκήσεις Πινάκων Ταξινόμηση Αναζήτηση. Γιώργος Λαμπρινίδης

Message Passing Interface (MPI)

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

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

ΠΙ Ν Α Κ Ε Σ (arrays)

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

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

Ι Αρχεία δεδομένων, μέρος δεύτερο: δυαδικά αρχεία ΙΙ Δομές δεδομένων (struct)

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ II. Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact:

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

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

Κεφάλαιο : Εισαγωγή στην C: (Διαλέξεις 3-4)

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

Κεφάλαιο Αλφαριθμητικές Σειρές Χαρακτήρων (Strings) (Διάλεξη 20) 1) Strings στη C

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

Υπολογισμός - Συλλογή Δεδομένων - Πίνακες

Προγραμματισμός Υπολογιστών με C++

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

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Π : Εγχειρίδια χρήσης της υπηρεσίας για τα κύρια υποστηριζόμενα Λειτουργικά

Δομημένος Προγραμματισμός

H ΓΛΩΣΣΑ C. Μάθηµα 1: Το Πρώτο µας Πρόγραµµα σε C. ηµήτρης Ψούνης

Message Passing Interface (MPI)

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

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

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

Πίνακες. 1 Πίνακες. 30 Μαρτίου 2014

Προγραµµατισµός µε ανταλλαγή µηνυµάτων Ι. Εισαγωγή στο MPI. Εφαρµογές Ανεξάρτητου Παραλληλισµού.

Βασικές Αρχές Προγραμματισμού

Επιμερισμός δεδομένων

(Κεφάλαιο 2.7 και 12) Αρχεία στην C. ( ιάλεξη 13) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

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

Προγραµµατισµός Ι Εργαστήριο 6ο Ακαδ. Έτος ΕΡΓΑΣΤΗΡΙΟ 6 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

Α Β Γ static; printf("%c\n", putchar( A +1)+2); B DB BD. int i = 0; while (++i); printf("*");

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

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

Ανάπτυξη και Σχεδίαση Λογισμικού

Transcript:

Κατανεμημένος και Παράλληλος Προγραμματισμός Ηλίας Κ. Σάββας Καθηγητής Τμήμα Μηχανικών Πληροφορικής ΤΕ, ΤΕΙ Θεσσαλίας Email: savvas@teilar.gr Εισαγωγή στο MPI Εγκατάσταση του Message Passing Interface, To πρώτο πρόγραμμα με MPI Αναζήτηση στοιχείου σε πίνακα: Σειριακό πρόγραμμα, Παράλληλο πρόγραμμα, Συγκρίσεις (απόδοση παράλληλου προγράμματος) Εισαγωγή στο MPI, #1 2 Εγκατάσταση MPICH σε ένα ΗΥ Ψευδοπαράλληλο σύστημα Όλες οι λειτουργίες ενός παράλληλου υπολογιστικού συστήματος (cluster) σε ένα υπολογιστή Εισαγωγή στο MPI, #1 3 1

Βήμα 1: download Κατέβασμα του συμπιεσμένου αρχείου απο https://www.mpich.org/downloads/ Αποσυμπίεση του αρχείου: Αποσυμπίεση: tar -xzf mpich2_version.tar.gz H αποσυμίεση θα γίνει σε ένα νέο φάκελο με όνομα ίδιο με το όνομα του αρχείου, πχ: mpich2_version tar = αποσυμπίεση x = αποσυμπίεση αρχείων εάν προέρχοναται απο gzip ή bzip2 συμπίεση z = φιλτράρισμα των αρχείων απο το gzip για αποσυμπίεση f = αποσυμπίεση αρχείων που ακολουθούν ονομαστικά Εισαγωγή στο MPI, #1 4 Βήμα 2: configure (1)./configure: H διαταγή εκτελεί ένα πρόγραμμα (script) το οποίο ελέγχει εάν το σύστημά μας περιέχει όλο τα απαραίτητο λογισμικό για να μεταγλωττίσει κάποιο πρόγραμμα/πακέτο προγραμμάτων, καθώς επίσης και ότι λογισμικό απαιτείται για να εκτελέσει το πρόγραμμα (μετά την μεταγλώττιση)./: τρέχων κατάλογος Εισαγωγή στο MPI, #1 5 Βήμα 2: configure (2) Μετακίνηση στο κατάλογο που αποσυμπιέστηκε το mpich-3.2: cd mpich-3.2 pwd και ls για επιβεβαίωση Configure./configure ή./configure disable -fortran (για να μην εγκαταστήσει βιβλιοθήκες για Fortran) CONFIGURATION COMPLETED Εισαγωγή στο MPI, #1 6 2

Βήμα 3: make / install make: μεταγλώττιση προγράμματος/πακέτων (θα χρειαστεί χρόνο...) make sudo = εκτέλεση κάποιας διαταγής που απαιτεί δικαιώματα super user (θα ζητηθεί το αντίστοιχο password) sudo make install: εγκατάσταση το προγράμματος mpiexec --version: επιβεβαίωση και έκδοση mpi Version 3.2 κλπ Εισαγωγή στο MPI, #1 7 To πρώτο πρόγραμμα: hello1.c #include "mpi.h" #include <stdio.h> int main( int argc, char *argv[] ) { MPI_Init( &argc, &argv ); printf( "Hello, world!\n" ); MPI_Finalize(); return 0; Εισαγωγή στο MPI, #1 8 Μεταγλώττιση και εκτέλεση (1) mpicc hello1.c -o hello1.out mpiexec./hello1.out Hello, world! mpicc = o μεταγλωττιστής της C mpic++ = o μεταγλωττιστής της C++ mpiexec (mpirun) = εκτέλεση προγράμματος Εισαγωγή στο MPI, #1 9 3

Καλύτερο πρόγραμμα (με χρήση της mpi): hello2.c #include "mpi.h" #include <stdio.h> 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 ); printf( "I am %d of %d\n", rank, size ); MPI_Finalize(); return 0; Εισαγωγή στο MPI, #1 10 Μεταγλώττιση και εκτέλεση (2) mpicc hello2.c -o hello2 mpiexec -np 5./hello2 Hello from 0 process of 5 Hello from 3 process of 5 Hello from 2 process of 5 Hello from 1 process of 5 Hello from 4 process of 5 Εισαγωγή στο MPI, #1 11 MPI Απλές εντολές (1) #include mpi.h : ενσωμάτωση στο πρόγραμμα του header file της MPI. Περιέχει όλες τις συναρτήσεις οι οποίες μας επιτρέπουν να χρησιμοποιήσουμε παραλληλία στο πρόγραμμα MPI_Init( &argc, &argv ): αρχικοποίηση της MPI MPI_Finalize(): τερματισμός της MPI Εισαγωγή στο MPI, #1 12 4

MPI Απλές εντολές (2) MPI_Comm_rank( MPI_COMM_WORLD, &rank ): αποδίδει στην ακέραια μεταβλητή rank τον αριθμό της τρέχουσας διεργασίας ή υπολογιστικού κόμβου (node) της υπολογιστικής συστοιχίες (computational clusters) MPI_Comm_size( MPI_COMM_WORLD, &size ): αποδίδει στην ακέραια μεταβλητή size το συνολικό πλήθος των ενεργών διεργασιών ή υπολογιστικών κόμβων (nodes) της υπολογιστικής συστοιχίες (computational clusters) Εισαγωγή στο MPI, #1 13 Ασκήσεις Πράξης # 01 Έστω ότι έχουμε ένα σύνολο S αποτελούμενο από Ν ακέραιους αριθμούς (αποθηκευμένοι σε ένα αρχείο κειμένου) και P διαθέσιμους υπολογιστικούς πόρους. Επίσης, έστω ακέραιος αριθμός X. Το ζητούμενο είναι εάν ο X υπάρχει στο S και εάν ναι πόσες φορές υπάρχει. Εισαγωγή στο MPI, #1 14 Σειριακός αλγόριθμος Counter 0 Για i 1 μέχρι Ν Εάν S[i] = X τότε Counter Counter + 1 Πολυπλοκότητα = O(N) Τέλος (εάν) Τέλος (Για) Εάν Counter = 0 τότε Ο Χ δεν υπάρχει στο S Αλλιώς Ο Χ εμφανίζεται Counter φορές στο S Τέλος (εάν) Εισαγωγή στο MPI, #1 15 5

Πρόγραμμα (1 από 3) #include "mpi.h" #include <stdio.h> #include <stdlib.h> #include <time.h> int main( int argc, char *argv[] ) { int *P, N, i; /* Pinakαs - megethos - deiktis */ int x, f=0; /* stoixeio poy anazitoyme, poses fores vrethike */ double ta, tt; /* gia metrisi xronou */ MPI_Init( &argc, &argv ); printf("\nmegethos pinaka:"); scanf("%d", &N); Εισαγωγή στο MPI, #1 16 Πρόγραμμα (2 από 3) /* Dimioyrgia pinaka */ P = malloc( N * sizeof( int ) ); if ( P == NULL ) { printf("\n\npoly megalos pinakas..."); printf("\n\nto programma termatizei...\n\n"); return -1; //srand(time(null)); for (i=0; i<n; i++) P[i] = rand() % 10000; printf("\neisagofi stoixiou pros anazitisi (0-->9999):"); scanf("%d", &x); Εισαγωγή στο MPI, #1 17 Πρόγραμμα (3 από 3) ta = MPI_Wtime(); /* arxi metrisis xronou */ /* anazitisi */ for (i=0; i<n; i++) if (P[i] == x ) f++; tt = MPI_Wtime(); /* telos metrisis xronou */ printf("\n\nto %d yparxei ston pinaka %d fores", x, f); printf("\n\nxronos ektelesis: %.16f\n\n", tt-ta); MPI_Finalize(); return 0; Εισαγωγή στο MPI, #1 18 6

Ερωτήσεις; Τέλος της # 02 διάλεξης Χρησιμοποιείστε το email για όποιες επιπλέον απορίες / ερωτήσεις: savvas@teilar.gr Σημειώσεις μαθήματος (και όχι μόνο): https://e-class.teilar.gr/courses/cs386/ Εισαγωγή στον παράλληλο προγραμματισμό 19 7