The recent shift to multi- and soon many- core architectures, has fundamentally changed the requirements for resource management and job placement; the now large amount of resource sharing along with the abundance of processing cores, make the legacy time-sharing models suboptimal. Recent research trends are exploring space sharing strategies through two distinct approaches: dynamic two-level scheduling, where the application estimates its resource requirements, and static intelligent placement based on offline profiling. This work touches on both, emphasizing on the former.
We have developed Palirria, a self-adapting work-stealing scheduling method for nested fork/join parallelism that periodically estimates the amount of utilizable workers and adapts accordingly. The estimation mechanism is optimized for accuracy with minimal overhead, by leveraging work-stealing semantics to infer worker future utilizability. By adapting to that estimation, resource usage is minimized without degrading performance. Palirria is built upon Deterministic Victim Selection (DVS), a variation to traditional random and semi-random work-stealing, which places tasks uniformly across all available workers and reduces the worst case latency for task discovery. Palirria allows the OS scheduler to provide applications with exactly the number of cores they can utilize or it can afford to not congest other applications, avoiding overcommiting and wasting resources as well as reducing the power budget.
Moreover, we've explored using hardware counter measurements for offline profiling of applications. We've carefully engineered two synthetic benchmarks that controllably stress the shared L3 cache; one exploits all kinds of beneficial locality, producing less than 1% miss ratio with any memory footprint, while the other hogs cache banks and memory buses with a constant 96% miss ratio. We score the cache usage patterns of target workloads by co-locating them with these stress benchmarks. Through the scores of two workloads we can offline estimate their individual slowdown due to cache interference if co-located with each other in a single socket.
Combining both aforementioned approaches we've experimented with online profiling of VMs. Each VM profiles its load, deciding on performance threats, eventually forwarding alerts to the IaaS management service. Through pro-active resource re-distribution, VM live migration, as well as better initial VM placement, such scheme provides the opportunity to get ahead of SLA violating situations in the private cloud.
Ο Γεώργιος Βαριστέας αποφοίτησε από τη Σχολή Εφαρμοσμένων Μαθηματικών και Φυσικών Επιστημών του Ε.Μ.Π. το 2008 με εξειδίκευση στη στατιστική και τα μαθηματικά πληροφορικής. Το 2010 απονεμήθηκε με μεταπτυχιακό τίτλο στην Ανάπτυξη Λογισμικού Κατανεμημένων Συστημάτων από το KTH, Στοκχόλμη Σουηδία. Την ίδια χρονιά ξεκίνησε διδακτορικές σπουδές στο ίδιο πανεπιστήμιο με πλήρη υποτροφία από -- και σε συνεργασία με -- την Microsoft Research Cambridge, στα πλαίσια του έργου Barrelfish OS. Το 2013 απονεμήθηκε με Licentiate τίτλο σπουδών. Έχει εργαστεί ως ειδικευόμενος ερευνητής στην IBM Research Haifa και Oracle Labs Cambridge, όπου ασχολήθηκε με την αυτόματη διαχείριση πόρων σε cloud IaaS και την συν-τοποθέτηση εργασιών σε κατανεμημένα clusters αντιστοίχως. Αυτή την περίοδο βρίσκεται στα τελευταία στάδια συγγραφής της διδακτορικής του διατριβής. Τα ερευνητικά του ενδιαφέροντα εστιάζουν στην διαπροσωπία μεταξύ εφαρμογής και λειτουργικού συστήματος για δυναμική κατανομή πόρων πολυπύρηνων αρχιτεκτονικών και κατανεμημένων συστημάτων.