**Πολυεπεξεργασία** είναι η χρήση δύο ή περισσότερων κεντρικών μονάδων επεξεργασίας (CPU) σε ένα ενιαίο σύστημα υπολογιστή. Ο όρος αναφέρεται επίσης η ικανότητα ενός συστήματος να υποστηρίξει περισσότερους από έναν επεξεργαστές και τη δυνατότητα να αναθέτει καθήκοντα μεταξύ τους. Υπάρχουν πολλές παραλλαγές του βασικού αυτού θέματος, καθώς και ο ορισμός της "πολυ" μπορεί να ποικίλει ανάλογα με το πλαίσιο, ως επί το πλείστον σε συνάρτηση με το πώς ορίζονται οι επεξεργαστές (πολλαπλούς πυρήνες σε ένα τσιπ, πολλές μάρκες σε ένα πακέτο, πολλά πακέτα σε μία κεντρική μονάδα επεξεργασίας, κλπ.).

Συμμετρία Επεξεργαστών
----------------------

Σε ένα σύστημα πολυεπεξεργασίας όλοι οι επεξεργαστές μπορεί να είναι ίσοι, ή ορισμένοι μπορεί να προορίζονται για ειδικούς σκοπούς. Ένας συνδυασμός υλικών και λειτουργικών στοιχείων σχεδιασμού του συστήματος του λογισμικού καθορίζει τη συμμετρία (ή την έλλειψη αυτών) σε ένα δεδομένο σύστημα. Για παράδειγμα μπορούν να απαιτείται μόνο μία ΚΜΕ για να ικανοποιεί τα αιτήματα διακοπών (interrupts) του υλικού, ενώ όλες οι άλλες εργασίες του συστήματος μπορεί να κατανέμονται εξίσου μεταξύ των επεξεργαστών ή η την εκτέλεση κώδικα λειτουργίας του πυρήνα (kernel) μπορεί να περιοριστεί σε μόνο έναν επεξεργαστή (είτε σε ειδικό επεξεργαστή, ή μόνο έναν επεξεργαστή την κάθε φορά), ενώ τα αιτήματα των χρηστών μπορεί να εκτελεστούν σε οποιοδήποτε συνδυασμό των επεξεργαστών. Τα συστήματα πολυεπεξεργασίας είναι συχνά πιο εύκολο να σχεδιαστούν σε περίπτωση επιβολής τέτοιων περιορισμών, αλλά τείνουν να είναι λιγότερο αποτελεσματικά από ότι τα συστήματα στα οποία όπου επεξεργαστές χρησιμοποιούνται ισομερώς.

Τα συστήματα που αντιμετωπίζουν όλες τις κεντρικές μονάδες επεξεργασίας εξίσου καλούνται συστήματα συμμετρικής πολυεπεξεργασίας (symmetric multiprocessing, SMP). Σε συστήματα όπου όλες οι κεντρικές μονάδες επεξεργασίας δεν είναι ίσες, οι πόροι του συστήματος μπορεί να χωριστεί σε διάφορους τρόπους, συμπεριλαμβανομένων της ασύμμετρης πολυεπεξεργασίας μη-ομοιόμορφης πρόσβασης μνήμης (non-uniform memory access, NUMA) και της συγκεντρωτικής πολυεπεξεργασίας (clustered multiprocessing).

Συμπληρωματικός ορισμός
-----------------------

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

Δείτε επίσης
------------

* Συμμετρική πολυεπεξεργασία

Παραπομπές
----------

1. ↑  *Λεξικό πληροφορικής*. Εκδόσεις Πελεκάνος.

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

| π • σ • ε
Θέματα παράλληλου προγραμματισμού |
| --- |
|  |
| Επισκόπηση | 
Υπολογιστικό νέφος · Υπολογιστική συστάδα · Κατανεμημένος προγραμματισμός · Υπολογιστικό πλέγμα |
|  |
| Παραλληλισμός (επίπεδα) | 
Bit · Εντολής · Δεδομένων · Εργασιών |
|  |
| Νήματα υλικού | 
Υπερνημάτωση |
|  |
| Θεωρία | 
Νόμος του Άμνταλ · Νόμος του Γκούσταφσον · Κλιμακωσιμότητα · Μετρική Καρπ-Φλατ · Επιβράδυνση παραλληλισμού · Επιτάχυνση παραλληλισμού |
|  |
| Θεμέλια στοιχεία | 
Διεργασία · Νήμα · PRAM · Πράσινα νήματα |
|  |
| Συγχρονισμός | 
Πολυεπεξεργασία · Multithreading · Memory coherency · Cache coherency · Barrier · Synchronization · Application checkpointing |
|  |
| Προγραμματισμός | 
Μοντέλα (Έμμεσος παραλληλισμός · Ρητός παραλληλισμός · Ταυτοχρονισμός) · Ταξινομία του Φλυν (SISD • SIMD • MISD • MIMD (SPMD)) |
|  |
| Υλικό υπολογιστών | 
Πολυπεξεργασία (Συμμετρική · Ασυμμετρική) · Μνήμη (NUMA · COMA · κατανεμημένη · κοινή · κατανεμημένη κοινή) · SMT
MPP · Υπερβαθμωτός επεξεργαστής · Διανυσματικός επεξεργαστής · Υπερυπολογιστής · *Beowulf* |
|  |
| Βιβλιοθήκες και API | 
Νήματα POSIX · OpenMP · PVM · MPI · UPC · Intel Threading Building Blocks · Boost.Thread · Global Arrays · Charm++ · Cilk · Co-array Fortran · CUDA |

 |