Nano-Threads Library Design, Implementation and Evaluation (1995)
Abstract:
Abstract: In this report we describe the design and implementation of a user-level thread package based on the nano-threads programming model, whose goal is to efficiently manage the application parallelism at user-level. Some modifications introduced to the model have enhanced its flexibility and have allowed more runtime parallelism. It is a current trend in compiler technology to apply data and control dependence analyses to build an intermediate representation of the parallel application in the form of a hierarchical task graph (HTG); in this graph, nodes are the representation of program structures and edges represent the dependencies between them. The back-end compiler generates executable code from the HTG and the user-level thread package provides the services in order to control the execution of the HTG nodes. Library services are explained showing several translations from sequential to parallel code. We have mainly focused our attention into loop scheduling and functional parallelism. In both cases, the goal is to obtain an efficient parallel execution of the generated nano-threads by accordingly balancing the work assigned to each thread and the thread management overhead. The experiments let us determine which is the appropriate number of operations spread out among the threads to ensure less than 10 % of overhead. 1.
Citations
| 252 | A New Kernel Foundation For UNIX Development – Mach - 1986 |
| 89 | Tools and Techniques for Building Fast Portable Threads Package – Keppel - 1993 |
| 2 | Design and implementation of a distributed measurement system – JEWEL - 1992 |
| 1 | Architecture Reference Manual", edited by Richard L – Alpha - 1992 |
| 1 | Mark92] "Using Processor Affinity in Loop Scheduling on Shared-Memory Multiprocessors", Evangelos – Markatos, LeBlanc - 1992 |
| 1 | More95] "On the Implementation and Effectiveness of Autoscheduling for SharedMemory Multiprocessors – Moreira - 1995 |
| 1 | PoBK93] "nanoThreads: A User-Level Threads Architecture – Polychronopoulos, Bitar, et al. - 1993 |
| 1 | Poly89] "Parafrase-2: An Environment for Parallelizing, Partitioning, Synchronizing, and Scheduling Programs on Multiprocessors – Polychronopoulos, Girkar, et al. - 1989 |

