|`QuickThreads' -- a threads-building core [source + doc] email@example.com (1994-01-05)|
|Re: `QuickThreads' -- a threads-building core [source + doc] firstname.lastname@example.org (1994-01-05)|
|QuickThreads botches... email@example.com (1994-01-06)|
|From:||firstname.lastname@example.org (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' (18.104.22.168).
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
Let me know if you have questions.
;-D on ( Don't thread on me ) Pardo
Return to the
Search the comp.compilers archives again.