@article {105, title = {Improving execution unit occupancy on SMT-based processors through hardware-aware thread scheduling}, journal = {Future Generation Computer Systems}, volume = {30}, year = {2014}, month = {January}, pages = {229 - 241}, abstract = {Modern processor architectures are increasingly complex and heterogeneous, often requiring software solutions tailored to the specific hardware characteristics of each processor model. In this article, we address this problem by targeting two processors featuring Simultaneous MultiThreading (SMT) to improve the occupancy of their internal execution units through a sustained stream of instructions coming from more than one thread. We target the AMD Bulldozer and IBM POWER7 processors as case studies for specific hardware-oriented performance optimizations that increase the variety of instructions sent to each core to maximize the occupancy of all its execution units. WorkOver, presented in this article, improves thread scheduling by increasing the performance of floating point-intensive workloads on Linux-based operating systems. WorkOver is a user-space monitoring tool that automatically identifies FPU-intensive threads and schedules them in a more efficient way without requiring any patches or modifications at the kernel level. Our measurements using standard benchmark suites show that speedups of up to 20\% can be achieved by simply allowing WorkOver to monitor applications and schedule their threads, without any modification of the workload.}, keywords = {multicores, Overseer}, issn = {0167739X}, doi = {10.1016/j.future.2013.06.015}, author = {Achille Peternier and Danilo Ansaloni and Daniele Bonetta and Cesare Pautasso and Walter Binder} } @conference {overseer:2011:pppj, title = {Overseer: low-level hardware monitoring and management for Java}, booktitle = {9th International Conference on Principles and Practice of Programming in Java (PPPJ {\textquoteright}11)}, year = {2011}, pages = {143{\textendash}146}, publisher = {ACM}, organization = {ACM}, address = {New York, NY, USA}, abstract = {The high-level and portable nature of the Java platform allows applications to be written once and executed on all the supported systems. However, such a feature comes at the cost of hardware abstraction, making it more difficult or even impossible to access several low-level functionalities. Overseer is a Java framework that makes it possible on Linux systems by simplifying access to real-time measurement of low-level data such as Hardware Performance Counters (HPCs), IPMI sensors, and Java VM internal events. Overseer supports functionalities such as HPC-management, process/thread affinity settings, hardware topology identification, as well as power-consumption and temperature monitoring. In this paper we describe Overseer and how to use it to extend Java applications with functionalities not provided by the default runtime. A public release of Overseer is available.}, keywords = {hardware performance counters, Java, monitoring, Overseer}, isbn = {978-1-4503-0935-6}, doi = {http://doi.acm.org/10.1145/2093157.2093179}, author = {Achille Peternier and Daniele Bonetta and Walter Binder and Cesare Pautasso} }