Η κατανάλωση ενέργειας των σύγχρονων υπολογιστικών συσκευών απότελεί ένα πολύ σημαντικό αντικείμενο έρευνας, ειδικά για τις περιπτώσεις φορητών συσκευών, οι οποίες λειτουργούν με τη βοήθεια μπαταριών και έχουν περιορισμένη ενέργεια για τη λειτουργία τους. Καθώς η χωρητικότητα μίας συγχρονής μπαταρίας είναι κατά πολύ μικρότερη από τη ζήτηση μίας συγχρονης συσκευής σε ενέργεια προκειμένου να αποδόσει τα μέγιστα, η χρονοδρομολόγηση εργασιών με στόχο τη βέλτιστη αξιοποίηση των διαθέσιμων ενεργειακών πόρων ενός σθστήματος μπορεί να αποδειχθεί ζωτικής σημασίας. Οι σύγχρονοι επεξεργαστές δίνουν την δυνατότητα στους προγραμματιστές να αλλάζουν δυναμικά την συχνότητα λειτουργίας του συστήματός τους, προσαρμόζοντάς το έτσι στις ανάγκες τους, γεγονός που έχει αναδείξει την Δυναμικά Αλλαγή Συχνότητας σαν μία δημοφιλή τεχνική και έχει οδηγήσει στην ανάπτυξη πολλών αλγορίθμων που την χρησιμοποιούν για αποφύγουν την σπατάλη ενέργειας.
Αν το λειτουργικό σύστημα ενός υπολογιστή είναι σε θέση να γνωρίζει τις ανάγκες σε ενέργεια για κάθε μία από τις προς εκτέλεση διεργασίες, τότε θα είναι σε θέση να χρονοδρομολογεί διεργασίες βασιζόμενο σε παράγοντες όπως η θερμοκρασία και η υπολοιπόμενη ενέργεια του συστήματος. Ωστόσο, η εκτίμηση και η μέτρηση της κατανάλωσης ενέργειας κάθε διεργασίας ξεχωριστά είναι ένα αρκετά δύσκολο και πολύπλοκο ζήτημα. Οι σύγχρονοι επεξεργαστές διαθέτουν μονάχα έναν μετρητή ενέργειας για όλους τους διαθέσιμους πυρήνες και δεν επυτρέπουν την μέτρηση της κατανάλωσης για κάθε έναν πυρήνα ξεχωριστά. Αυτό έχει σαν αποτέλεσμα η ακριβής εκτίμηση της κατανάλωσης ενέργειας μίας διεργασίας που τρέχει παράλληλα με άλλες μέσα στο συστημα να είναι μία αρκετά δυσκολη και πολύπλοκη υπόθεση.
Στα πλάισια αυτής της διπλωματικής αρχικά αναλύουμε την κατανάλωση ενςργειας του συστήματός μας και υπολογίζουμε ένα απλό μοντέλο ρυθμού κατανάλωσης. Έπειτα μελετάμε την σχέση μεταξύ του αριθμού των παράλληλων νημάτων που τρέχει μία εφαρμογή και της συνολικής ενέργειας για την ολοκλήρωση της, καθώς και τη σημαντικότητα της δυναμικής μεταβολής συχνοτήτων για τη δημιουργία ‘οικονομικών’ χρονοδρομολογήσεων. Ακόμη χρησιμοποιούμε το γινόμενο ενέργειας επί χρόνου ολοκλήρωσης μίας εφαρμογής σαν μετρική για να σκιαγραφήσουμε το ενεργειακό της προφίλ, και επιλέγουμε μία ομάδα εφαρμογών με διαφορετικά ενεργειακά χαρακτηριστικά για τα πειράματά μας. Τέλος μελετάμε υπάρχοντες αλγορίθμους χρονοδρομολόγισης και προτείνουμε ένα αλγόριθμο ο οποίος βασίζεται στην ταυτόχρονη δρομολόγηση διεργασιών ανάλογα με τις ανάγκες τους για διαμοιραζόμενους πόρους του συστήματος, για να μειώσουμε το ανταγωνισμό μεταξύ τους και κατ’επέκταση το χρόνο ολοκλήρωσης και το κόστος μίας δουλειάς στο σύστημά μας.
Energy consumption of modern computing devices is becoming an
increasingly important topic, especially for battery-powered mobile devices that run
on reserved power. As the progress in the field of battery capacity seems unable to
follow the increase in processors power needs for performance, power aware
scheduling problem has been a recent issue, as it could have a vital role on portable
devices running life. Recent commodity processors support multiple operating points
running under various supply voltage levels, giving programmers the ability to adjust
their system power consumption level according to their current needs.
Consequentially, the Dynamic Voltage-Frequency Scaling (DVFS) has become a
popular technique and several scheduling algorithms have been developed. Those
algorithms are aiming to propose ways to reduce power consumption by imposing
appropriate frequency and voltage levels to the system, in order to avoid unnecessary
energy expenses.
If the Operating System (OS) is aware of the power consumption on the
various processes within the system, it can schedule processes based on the constrains
derived by the thermal analysis and the remaining power of the system. In addition,
OS can balance the resource allocation of each process to remain within a given
power envelope. However, obtaining the processor and the system power
consumption is a non-trivial task. Existing power meters generally report only the
power consumption on the whole system and are unable to provide detailed
information for each processor individually. As a result it is very hard to expose a
task’s runtime power consumption, if multiple tasks are running in the system at the
same time. The estimation of the power consumption on the thread level for every
running process is a crucial requirement in designing power efficient schedulers.
In this work we analyze the power consumption of the target system, running
a Non-Uniform-Memory-Access (NUMA) processor, and formulate a single power
consumption model. Then, we examine the relationship between application’s
scalability and its power consumption by running our benchmark suite with different
thread counts. The importance of the frequency scaling (DVFS) techniques is
explored by measuring the performance of each benchmark on all the available
frequencies supported by the system. We use Energy Delay Product (EDP) and
Energy Delay Squared Product (!"!!) as metrics to evaluate our results and create
Pareto graphs to reflect our benchmark’s power profile. We choose a suite that
includes benchmarks with different characteristics regarding their needs in memory
and CPU and use them to compare different proposed scheduling policies. We attempt
to reduce the power consumption of the benchmark applications by applying the
previous results on them. A significant reduction on the power consumption is shown.
Finally, we examine techniques to reduce the cache and background memory conflicts
and propose a memory balancing power aware scheduling algorithm.