dc.contributor.advisor |
Κοζύρης, Νεκτάριος |
el |
dc.contributor.author |
Παλαιολόγος, Ευστράτιος Π.
|
el |
dc.contributor.author |
Palaiologos, Eystratios P.
|
en |
dc.date.accessioned |
2014-07-14T09:36:02Z |
|
dc.date.available |
2014-07-14T09:36:02Z |
|
dc.date.copyright |
2014-03-21 |
- |
dc.date.issued |
2014-07-14 |
|
dc.date.submitted |
2014-03-21 |
- |
dc.identifier.uri |
https://dspace.lib.ntua.gr/xmlui/handle/123456789/38726 |
|
dc.identifier.uri |
http://dx.doi.org/10.26240/heal.ntua.7311 |
|
dc.description |
113 σ. |
el |
dc.description.abstract |
Μια διαδεδομένη τεχνική για την αξιοποίηση πολυεπεξεργαστικών συστημάτων είναι η δόμηση μιας εφαρμογής σε ανεξάρτητες εργασίες που μπορούν να εκτελούνται ταυτόχρονα, γνωστή ως multithreading. Τα περισσότερα εργαλεία παράλληλου προγραμματισμού φροντίζουν αυτές οι εργασίες να κατανέμονται και να εκτελούνται στους επεξεργαστές αυτόματα, χωρίς την παρέμβαση του προγραμματιστή. Αυτό κάνει τον παράλληλο προγραμματισμό αφενός πιο εύκολο, καθώς ο προγραμματιστής ασχολείται μόνο με τον τρόπο που θα δομήσει την εφαρμογή του σε ανεξάρτητες εργασίες, και αφετέρου πιο αποδοτικό, αφού οι εργασίες δρομολογούνται από ένα σύστημα που εγγυημένα δουλεύει σωστά και γρήγορα.
Στόχος αυτής της εργασίας είναι η μελέτη του τρόπου που μπορούμε να διαχειριστούμε παράλληλες εργασίες -πώς να τις δημιουργήσουμε, να τις τερματίσουμε και να τις συγχρονίσουμε μεταξύ τους- καθώς και το πώς μπορούν να δρομολογηθούν αυτές σε ένα πλήθος επεξεργαστών. Η μελέτη γίνεται σε εργαλεία παράλληλου προγραμματισμού που παρέχουν τέτοιες δυνατότητες, κυρίως τα Posix Threads και η Cilk. Κατόπιν, αναλύουμε δυο κύριες τεχνικές χρονοδρομολόγησης παράλληλων εργασιών, το work sharing και το work stealing. Μελετούμε αλγορίθμους που βασίζονται σε αυτές τις φιλοσοφίες και την επίδοση που έχουν βάσει θεωρητικών μοντέλων.
Τέλος, για εκπαιδευτικούς λόγους, εμπνεόμενοι από τα εργαλεία που εξετάστηκαν, υλοποιούμε σε γλώσσα C μια βιβλιοθήκη διαχείρισης tasks και ένα δρομολογητή. Ο δρομολογητής εκτελεί απλοποιημένες εκδοχές αλγορίθμων work sharing και work stealing |
el |
dc.description.abstract |
A common technique for exploiting SMP systems is the division of an application into independent tasks that can be performed simultaneously, known as multithreading. Most parallel programming tools ensure these tasks are distributed and executed on processors automatically, without intervention by the programmer. This makes parallel programming easier, as the programmer only deals with how to structure the application into independent tasks, and also more efficient, since the work initiated by a system is guaranteed to work correctly and quickly.
The aim of this work is the study of how we can manage parallel work - how to create, terminate and synchronize them - and how they can be scheduled to a set of processors. The study is using parallel programming tools that provide such capabilities, particularly the Posix Threads and Cilk. Then, we analyze two main techniques of scheduling parallel tasks, work sharing and work stealing. We study algorithms based on these philosophies and their performance based on theoretical models.
Finally, for educational purposes, inspired from the examined tools, we implement a library management tasks and a scheduler using C language. The scheduler performs simplified versions of work sharing and work stealing algorithms. |
en |
dc.description.statementofresponsibility |
Ευστράτιος Π. Παλαιολόγος |
el |
dc.language.iso |
el |
en |
dc.rights |
ETDFree-policy.xml |
en |
dc.subject |
Αλγόριθμοι δρομολόγησης |
el |
dc.subject |
Παράλληλος προγραμματισμός |
el |
dc.subject |
RTS |
el |
dc.subject |
Pthreads |
el |
dc.subject |
Cilk |
en |
dc.subject |
Multitasking |
en |
dc.subject |
Work sharing |
en |
dc.subject |
Work stealing |
en |
dc.subject |
Scheduling algorithms |
en |
dc.subject |
Parallel programming |
en |
dc.title |
Μελέτη αλγορίθμων εκτέλεσης και χρονοδρομολόγησης παράλληλων εργασιών |
el |
dc.title.alternative |
Study on algorithms for executing and scheduling parallel tasks |
en |
dc.type |
bachelorThesis |
el (en) |
dc.date.accepted |
2014-01-31 |
- |
dc.date.modified |
2014-03-21 |
- |
dc.contributor.advisorcommitteemember |
Σούντρης, Δημήτριος |
el |
dc.contributor.advisorcommitteemember |
Τσουμάκος, Δημήτριος |
el |
dc.contributor.committeemember |
Κοζύρης, Νεκτάριος |
el |
dc.contributor.committeemember |
Σούντρης, Δημήτριος |
el |
dc.contributor.committeemember |
Τσουμάκος, Δημήτριος |
el |
dc.contributor.department |
Εθνικό Μετσόβιο Πολυτεχνείο. Σχολή Ηλεκτρολόγων Μηχανικών & Μηχανικών Η/Υ. Τομέας Τεχνολογίας, Πληροφορικής και Υπολογιστών |
el |
dc.date.recordmanipulation.recordcreated |
2014-07-14 |
- |
dc.date.recordmanipulation.recordmodified |
2014-07-14 |
- |