`QuickThreads' -- a threads-building core [source + doc]

pardo@cs.washington.edu (David Keppel)
Wed, 5 Jan 1994 04:19:01 GMT

          From comp.compilers

Related articles
`QuickThreads' -- a threads-building core [source + doc] pardo@cs.washington.edu (1994-01-05)
Re: `QuickThreads' -- a threads-building core [source + doc] pardo@cs.washington.edu (1994-01-05)
QuickThreads botches... pardo@cs.washington.edu (1994-01-06)
| List of all articles for this month |
Newsgroups: comp.compilers
From: pardo@cs.washington.edu (David Keppel)
Keywords: report, tools, parallel
Organization: Computer Science & Engineering, U. of Washington, Seattle
Date: Wed, 5 Jan 1994 04:19:01 GMT

I recently finished a tech report and code distribution for a toolkit used
for building user-level threads packages. The tech report and code are
available via anonymous ftp from `ftp.cs.washington.edu' (128.95.1.4).
The code is in `pub/qt-001.tar.Z', the tech report, "Tools and Techniques
for Writing Fast Portable Threads Packages" in
`tr/1993/05/UW-CSE-93-05-06.PS.Z'. Files are compressed, so be sure to do
the transfer in binary mode.


The abstract for the tech report is:


        Threads are units of concurrent execution that can be viewed as
        abstract data types (ADTs) with operations to initialize and run
        them. It is common to improve performance by hard-coding
        allocation and scheduling policies, but that has led to the
        development of many threads packages, each with policies tuned for
        a particular set of applications. Further, the machine-dependence
        of threads packages restricts the availability of applications
        built on top of them. This paper examines techniques for building
        threads packages and discusses tradeoffs between performance,
        flexibility, and portability. It then introduces QuickThreads, a
        simple threads toolkit with a portable interface. This paper shows
        how QuickThreads can be used to implement a basic uniprocessor
        threads package and discusses the implementation of portable
        threads packages tuned to the needs of particular applications.
        For example, QuickThreads can be used to build barrier
        synchronization that runs in O(lg2 processors) time units instead
        of the traditional O(lg2 threads). This paper also reports on the
        performance and implementation of QuickThreads and describes some
        experiences using it to reimplement and port existing
        multiprocessor threads packages.


The code distribution includes ports for the DEC AXP, Intel 80X86 family,
Motorola 88000 family, MIPS R2000/R3000, SPARC and VAX. It also includes
limited support for the KSR1 (the KSR1 port is complete except that it
lacks a `varargs' facility and, therefore, runs only single-argument
threads).


Let me know if you have questions.


;-D on ( Don't thread on me ) Pardo
--


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.