Thread coloring: a scheduler proposal from user to hardware threads

The appearance of simultaneous multithreading (SMT) processors, offering instruction-level parallelism and increasing hardware resources utilization, permits the execution of various instructions streams at the same time. A particular case is the Intel SMT implementation (Hyper-Threading Technology) where a processor can execute two instructions streams independently. Due to hardware resources sharing in a Hyper-Threading processor, both instruction streams can contend for the same execution resources depending on the instruction execution units utilization.As other works in this area have demonstrated, we have observed that the system throughput can be improved when the execution resources used by each thread are contemplated in their scheduling. Starting from the evaluation results, we propose a Thread Coloring philosophy that designs a way to manage information about resources utilization (hardware and software resources) per each thread. This policy permits the scheduler to select threads that will perform better with less resource contention, besides including OS upper layers in the resource management. The proposed Thread Coloring scheme establishes the bases of processor and OS cooperation, sharing resources utilization information and providing a form of controlling logical processor thread assignment taking into account possible resource contention.

[1]  Donald Yeung,et al.  Transparent threads: resource sharing in SMT processors for high single-thread performance , 2002, Proceedings.International Conference on Parallel Architectures and Compilation Techniques.

[2]  Evangelos P. Markatos,et al.  First-class user-level threads , 1991, SOSP '91.

[3]  Susan J. Eggers,et al.  Mini-threads: increasing TLP on small-scale SMT processors , 2003, The Ninth International Symposium on High-Performance Computer Architecture, 2003. HPCA-9 2003. Proceedings..

[4]  Aaron Greenhouse,et al.  The code of many colors: relating threads to code and shared state , 2002, PASTE '02.

[5]  Alex Settle,et al.  Architectural Support for Enhanced SMT Job Scheduling , 2004, IEEE PACT.

[6]  Brian N. Bershad,et al.  Using continuations to implement thread management and communication in operating systems , 1991, SOSP '91.

[7]  Ian Pratt,et al.  Multiprogramming Performance of the Pentium 4 with Hyper-Threading , 2004 .

[8]  Jun Nakajima,et al.  Enhancements for hyper-threading technology in the operating system: seeking the optimal scheduling , 2002, WIESS'02.

[9]  A. Janiszewski,et al.  Architectural support for enhanced SMT job scheduling , 2004, Proceedings. 13th International Conference on Parallel Architecture and Compilation Techniques, 2004. PACT 2004..

[10]  D. Marr,et al.  Hyper-Threading Technology Architecture and MIcroarchitecture , 2002 .

[11]  John Paul Shen,et al.  Helper threads via virtual multithreading on an experimental itanium® 2 processor-based platform , 2004, ASPLOS XI.

[12]  Donald Yeung,et al.  Physical experimentation with prefetching helper threads on Intel's hyper-threaded processors , 2004, International Symposium on Code Generation and Optimization, 2004. CGO 2004..

[13]  Francisco J. Cazorla,et al.  Dynamically Controlled Resource Allocation in SMT Processors , 2004, 37th International Symposium on Microarchitecture (MICRO-37'04).

[14]  Francisco J. Cazorla,et al.  QoS for high-performance SMT processors in embedded systems , 2004, IEEE Micro.

[15]  Dean M. Tullsen,et al.  Symbiotic jobscheduling for a simultaneous mutlithreading processor , 2000, SIGP.

[16]  Anoop Gupta,et al.  Process control and scheduling issues for multiprogrammed shared-memory multiprocessors , 1989, SOSP '89.

[17]  George C. Necula,et al.  Capriccio: scalable threads for internet services , 2003, SOSP '03.

[18]  Brian N. Bershad,et al.  Scheduler activations: effective kernel support for the user-level management of parallelism , 1991, TOCS.

[19]  Dean M. Tullsen,et al.  Initial observations of the simultaneous multithreading Pentium 4 processor , 2003, 2003 12th International Conference on Parallel Architectures and Compilation Techniques.

[20]  David R. Kaeli,et al.  Using cache line coloring to perform aggressive procedure inlining , 2000, CARN.

[21]  Marisa Gil,et al.  ULT: a Java threads model for platform independent execution , 2003, OPSR.