%%% -*-BibTeX-*-
%%% ====================================================================
%%% BibTeX-file{
%%% author = "Nelson H. F. Beebe",
%%% version = "2.21",
%%% date = "23 October 2008",
%%% time = "15:09:41 MDT",
%%% filename = "multithreading.bib",
%%% address = "University of Utah
%%% Department of Mathematics, 110 LCB
%%% 155 S 1400 E RM 233
%%% Salt Lake City, UT 84112-0090
%%% USA",
%%% telephone = "+1 801 581 5254",
%%% FAX = "+1 801 581 4148",
%%% URL = "http://www.math.utah.edu/~beebe",
%%% checksum = "57357 16121 70498 688804",
%%% email = "beebe at math.utah.edu, beebe at acm.org,
%%% beebe at computer.org (Internet)",
%%% codetable = "ISO/ASCII",
%%% keywords = "multithreading; OpenMP; POSIX; pthreads;
%%% threads; UNIX; Win32; Windows NT",
%%% license = "public domain",
%%% supported = "no",
%%% docstring = "This bibliography covers publications about
%%% multithreaded programming.
%%%
%%% At version 2.21, the year coverage looked
%%% like this:
%%%
%%% 1973 ( 1) 1985 ( 0) 1997 ( 57)
%%% 1974 ( 0) 1986 ( 1) 1998 ( 53)
%%% 1975 ( 0) 1987 ( 1) 1999 ( 50)
%%% 1976 ( 0) 1988 ( 1) 2000 ( 49)
%%% 1977 ( 0) 1989 ( 9) 2001 ( 25)
%%% 1978 ( 0) 1990 ( 9) 2002 ( 48)
%%% 1979 ( 0) 1991 ( 27) 2003 ( 49)
%%% 1980 ( 0) 1992 ( 29) 2004 ( 26)
%%% 1981 ( 0) 1993 ( 36) 2005 ( 20)
%%% 1982 ( 0) 1994 ( 48) 2006 ( 5)
%%% 1983 ( 0) 1995 ( 68) 2007 ( 4)
%%% 1984 ( 0) 1996 ( 48) 2008 ( 1)
%%%
%%% Article: 462
%%% Book: 43
%%% InCollection: 1
%%% InProceedings: 37
%%% Manual: 4
%%% MastersThesis: 37
%%% PhdThesis: 22
%%% Proceedings: 27
%%% TechReport: 32
%%%
%%% Total entries: 665
%%%
%%% OpenMP is an ``Application Program Interface
%%% (API) supports multi-platform shared-memory
%%% parallel programming in C/C++ and Fortran on
%%% all architectures, including Unix platforms
%%% and Windows NT platforms. Jointly defined by
%%% a group of major computer hardware and
%%% software vendors, OpenMP is a portable,
%%% scalable model that gives shared-memory
%%% parallel programmers a simple and flexible
%%% interface for developing parallel
%%% applications for platforms ranging from the
%%% desktop to the supercomputer.'' [from the
%%% OpenMP Web site]. For details, visit
%%%
%%% http://www.openmp.org/
%%%
%%% At least two vendors, Kuck & Associates (KAI),
%%%
%%% http://www.kai.com/parallel/openmp.html
%%%
%%% and the Portland Group, Inc. (PGI)
%%%
%%% http://www.pgroup.com/ppro_docs/pgiws_ug/pgi31u11.htm
%%% http://www.pgroup.com/ppro_docs/pgiws_ug/pgi31u12.htm
%%%
%%% provide extensive support of OpenMP.
%%%
%%% BibTeX citation tags are uniformly chosen as
%%% name:year:abbrev, where name is the family
%%% name of the first author or editor, year is a
%%% 4-digit number, and abbrev is a 3-letter
%%% condensation of important title words.
%%% Citation tags were automatically generated by
%%% software developed for the BibNet Project.
%%%
%%% In this bibliography, entries are sorted
%%% first by ascending year, and within each
%%% year, alphabetically by author or editor,
%%% and then, if necessary, by the 3-letter
%%% abbreviation at the end of the BibTeX
%%% citation tag, using the bibsort -byyear
%%% utility. Year order has been chosen to
%%% make it easier to identify the most recent
%%% work.
%%%
%%% The checksum field above contains a CRC-16
%%% checksum as the first value, followed by the
%%% equivalent of the standard UNIX wc (word
%%% count) utility output of lines, words, and
%%% characters. This is produced by Robert
%%% Solovay's checksum utility.",
%%% }
%%% ====================================================================
%%% ====================================================================
%%% Acknowledgement abbreviations:
@String{ack-nhfb = "Nelson H. F. Beebe,
University of Utah,
Department of Mathematics, 110 LCB,
155 S 1400 E RM 233,
Salt Lake City, UT 84112-0090, USA,
Tel: +1 801 581 5254,
FAX: +1 801 581 4148,
e-mail: \path|beebe@math.utah.edu|,
\path|beebe@acm.org|,
\path|beebe@computer.org| (Internet),
URL: \path|http://www.math.utah.edu/~beebe/|"}
%%% ====================================================================
%%% Institution abbreviations:
@String{inst-CSU = "Colorado State University"}
@String{inst-CSU:adr = "Fort Collins, CO, USA"}
@String{inst-NLRC = "NASA Langley Research Center"}
@String{inst-NLRC:adr = "Hampton, VA, USA"}
@String{inst-SRC-IDA = "Supercomputing Research Center: IDA"}
@String{inst-SRC-IDA:adr = "Lanham, MD, USA"}
@String{inst-U-MARYLAND = "University of Maryland"}
@String{inst-U-MARYLAND:adr = "College Park, MD, USA"}
@String{inst-UIUC-CSRD = "University of Illinois at Urbana-Champaign,
Center for Supercomputing Research and
Development"}
@String{inst-UIUC-CSRD:adr = "Urbana, IL 61801, USA"}
%%% ====================================================================
%%% Journal abbreviations:
@String{j-ALGORITHMICA = "Algorithmica"}
@String{j-CACM = "Communications of the ACM"}
@String{j-CCPE = "Concurrency and Computation: Prac\-tice and
Experience"}
@String{j-CCCUJ = "C/C++ Users Journal"}
@String{j-COMP-ARCH-NEWS = "ACM SIGARCH Computer Architecture News"}
@String{j-COMP-J = "The Computer Journal"}
@String{j-COMP-SURV = "ACM Computing Surveys"}
@String{j-COMPUTER = "Computer"}
@String{j-COMPUTERS-AND-GRAPHICS = "Computers and Graphics"}
@String{j-CPE = "Concurrency: Prac\-tice and Experience"}
@String{j-CUJ = "C Users Journal"}
@String{j-DDJ = "Dr. Dobb's Journal of Software Tools"}
@String{j-FUT-GEN-COMP-SYS = "Future Generation Computer Systems"}
@String{j-HIGHER-ORDER-SYMB-COMPUT = "Higher-Order and Symbolic Computation"}
@String{j-IBM-JRD = "IBM Journal of Research and Development"}
@String{j-IBM-SYS-J = "IBM Systems Journal"}
@String{j-IEEE-COMPUT-SCI-ENG = "IEEE Computational Science \& Engineering"}
@String{j-IEEE-DISTRIB-SYST-ONLINE = "IEEE Distributed Systems Online"}
@String{j-IEEE-MICRO = "IEEE Micro"}
@String{j-IEEE-TRANS-PAR-DIST-SYS = "IEEE Transactions on Parallel and
Distributed Systems"}
@String{j-IJHPCA = "The International Journal of High Performance
Computing Applications"}
@String{j-INFO-PROC-LETT = "Information Processing Letters"}
@String{j-INT-J-SOFTW-TOOLS-TECHNOL-TRANSFER = "International Journal on
Software Tools for Technology Transfer (STTT)"}
@String{j-J-ACM = "Journal of the ACM"}
@String{j-J-PAR-DIST-COMP = "Journal of Parallel and Distributed
Computing"}
@String{j-J-SUPERCOMPUTING = "The Journal of Supercomputing"}
@String{j-J-SYST-SOFTW = "The Journal of Systems and Software"}
@String{j-JAVAWORLD = "JavaWorld: IDG's magazine for the Java
community"}
@String{j-LECT-NOTES-COMP-SCI = "Lecture Notes in Computer Science"}
@String{j-LINUX-J = "Linux Journal"}
@String{j-MICROPROC-MICROSYS = "Microprocessors and Microsystems"}
@String{j-OPER-SYS-REV = "Operating Systems Review"}
@String{j-PARALLEL-COMPUTING = "Parallel Computing"}
@String{j-PARALLEL-DIST-COMP-PRACT = "Parallel and Distributed Computing
Practices"}
@String{j-PARALLEL-PROCESS-LETT = "Parallel Processing Letters"}
@String{j-PROC-REAL-TIME-SYS-SYMP = "Proceedings --- Real-Time Systems Symposium"}
@String{j-QUEUE = "ACM Queue: Tomorrow's Computing Today"}
@String{j-SCI-PROG = "Scientific Programming"}
@String{j-SIAM-J-COMPUT = "SIAM Journal on Computing"}
@String{j-SIGADA-LETTERS = "ACM SIGADA Ada Letters"}
@String{j-SIGMOD = "SIGMOD Record (ACM Special Interest
Group on Management of Data)"}
@String{j-SIGPLAN = "ACM SIG{\-}PLAN Notices"}
@String{j-SPE = "Soft{\-}ware\emdash Prac{\-}tice and
Experience"}
@String{j-TECS = "ACM Transactions on Embedded Computing
Systems"}
@String{j-THEOR-COMP-SCI = "Theoretical Computer Science"}
@String{j-TOCHI = "ACM Transactions on Computer-Human
Interaction"}
@String{j-TOCS = "ACM Transactions on Computer Systems"}
@String{j-TOIS = "ACM Transactions on Information Systems"}
@String{j-TOMS = "ACM Transactions on Mathematical Software"}
@String{j-TOPLAS = "ACM Transactions on Programming
Languages and Systems"}
@String{j-TOSEM = "ACM Transactions on Software Engineering and
Methodology"}
@String{j-UNIX-REVIEW = "UNIX review"}
%%% ====================================================================
%%% Publisher abbreviations:
@String{pub-ACM = "ACM Press"}
@String{pub-ACM:adr = "New York, NY 10036, USA"}
@String{pub-AP = "Academic Press"}
@String{pub-AP:adr = "New York, USA"}
@String{pub-APRESS = "Apress"}
@String{pub-APRESS:adr = "Berkeley, CA, USA"}
@String{pub-AW = "Ad{\-d}i{\-s}on-Wes{\-l}ey"}
@String{pub-AW:adr = "Reading, MA, USA"}
@String{pub-AWDP = "Ad{\-d}i{\-s}on-Wes{\-l}ey Developers
Press"}
@String{pub-AWDP:adr = "Reading, MA, USA"}
@String{pub-HERMES = "Hermes"}
@String{pub-HERMES:adr = "Paris, France"}
@String{pub-IEEE = "IEEE Computer Society Press"}
@String{pub-IEEE:adr = "1109 Spring Street, Suite 300, Silver
Spring, MD 20910, USA"}
@String{pub-KLUWER = "Kluwer Academic Publishers"}
@String{pub-KLUWER:adr = "Dordrecht, The Netherlands; Boston, MA,
USA"}
@String{pub-MCGRAW-HILL = "Mc{\-}Graw-Hill"}
@String{pub-MCGRAW-HILL:adr = "New York, NY, USA"}
@String{pub-MORGAN-KAUFMANN = "Morgan Kaufmann Publishers"}
@String{pub-MORGAN-KAUFMANN:adr = "Los Altos, CA 94022, USA"}
@String{pub-MORGAN-KAUFMANN:adrnew = "2929 Campus Drive, Suite 260, San
Mateo, CA 94403, USA"}
@String{pub-NTIS = "National Technical Information Service"}
@String{pub-NTIS:adr = "Washington, DC, USA"}
@String{pub-ORA = "O'Reilly \& Associates, Inc."}
@String{pub-ORA:adr = "981 Chestnut Street, Newton, MA 02164, USA"}
@String{pub-PH = "Pren{\-}tice-Hall"}
@String{pub-PH:adr = "Englewood Cliffs, NJ 07632, USA"}
@String{pub-PHI = "Pren{\-}tice-Hall International"}
@String{pub-PHI:adr = "Englewood Cliffs, NJ 07632, USA"}
@String{pub-PHPTR = "P T R Pren{\-}tice-Hall"}
@String{pub-PHPTR:adr = "Englewood Cliffs, NJ 07632, USA"}
@String{pub-SAMS = "Howard W. Sams"}
@String{pub-SAMS:adr = "Indianapolis, IN 46268, USA"}
@String{pub-SUN = "Sun Microsystems"}
@String{pub-SUN:adr = "2550 Garcia Avenue, Mountain View, CA
94043, USA"}
@String{pub-SUN-MICROSYSTEMS-PRESS = "Sun Microsystems Press"}
@String{pub-SUN-MICROSYSTEMS-PRESS:adr = "Palo Alto, CA, USA"}
@String{pub-SUNSOFT = "SunSoft Press"}
@String{pub-SUNSOFT:adr = "Mountainview, CA, USA"}
@String{pub-SV = "Spring{\-}er-Ver{\-}lag"}
@String{pub-SV:adr = "Berlin, Germany~/ Heidelberg,
Germany~/ London, UK~/ etc."}
@String{pub-USENIX = "USENIX Association"}
@String{pub-USENIX:adr = "Berkeley, CA, USA"}
@String{pub-WILEY = "John Wiley and Sons"}
@String{pub-WILEY:adr = "New York, NY, USA; London, UK; Sydney,
Australia"}
%%% ====================================================================
%%% Series abbreviations:
@String{ser-LNCS = "Lecture Notes in Computer Science"}
%%% ====================================================================
%%% Bibliography entries:
@Article{Bettcher:1973:TSR,
author = "C. W. Bettcher",
title = "Thread standardization and relative cost",
journal = j-COMP-ARCH-NEWS,
volume = "2",
number = "1",
pages = "9--9",
month = jan,
year = "1973",
CODEN = "CANED2",
ISSN = "0163-5964",
bibdate = "Fri May 12 09:40:28 MDT 2006",
bibsource = "http://portal.acm.org/",
acknowledgement = ack-nhfb,
remark = "This is a reprint of an article published in the {\em
Journal of the Society of Automotive Engineers}, Volume
XVIII, Number 2, p. 131, February 1926, about the cost
of the lack of standardization of screw threads. {\em
Computer Architecture News\/} Editor-in-Chief Caxton C.
Foster has added a hand-written note ``of course, there
is no message here for {\em us}.''",
}
@Article{Jonak:1986:EFL,
author = "J. E. Jonak",
title = "Experience with a {FORTH}-like language",
journal = j-SIGPLAN,
volume = "21",
number = "2",
pages = "27--36",
month = feb,
year = "1986",
CODEN = "SINODQ",
ISSN = "0362-1340",
bibdate = "Sun Dec 14 09:14:55 MST 2003",
bibsource = "http://portal.acm.org/",
acknowledgement = ack-nhfb,
classification = "C6110 (Systems analysis and programming); C6140D
(High level languages)",
corpsource = "Sperry Network Syst., London, UK",
keywords = "FORTH; languages; programming; threaded code
language",
pubcountry = "USA A03",
subject = "D.3.2 Software, PROGRAMMING LANGUAGES, Language
Classifications, FORTH",
treatment = "P Practical",
}
@Book{McJones:1987:EUS,
author = "Paul R. McJones and Garret Frederick Swart",
title = "Evolving the {UNIX} system interface to support
multithreaded programs: The {Topaz Operating System}
programmer's manual",
volume = "21",
publisher = "Digital Systems Research Center",
address = "Palo Alto, CA, USA",
pages = "100",
day = "28",
month = sep,
year = "1987",
LCCN = "QA76.76.O63M42 1987",
bibdate = "Fri Aug 7 08:29:38 MDT 1998",
series = "Systems Research Center",
acknowledgement = ack-nhfb,
keywords = "computer networks; Computer networks; electronic data
processing -- distributed processing; Electronic data
processing -- Distributed processing; multithreaded
operating system interface -- Topaz operating;
Operating systems (Computers); operating systems
(computers); system; UNIX (computer file); UNIX
(Computer operating system)",
}
@Article{Halstead:1988:MMP,
author = "R. H. {Halstead, Jr.} and T. Fujita",
title = "{MASA}: a multithreaded processor architecture for
parallel symbolic computing",
journal = j-COMP-ARCH-NEWS,
volume = "16",
number = "2",
pages = "443--451",
month = may,
year = "1988",
CODEN = "CANED2",
ISSN = "0163-5964",
bibdate = "Fri May 12 09:40:45 MDT 2006",
bibsource = "http://portal.acm.org/",
acknowledgement = ack-nhfb,
}
@TechReport{Agarwal:1989:PTM,
author = "Anant Agarwal",
title = "Performance tradeoffs in multithreaded processors",
number = "89-566",
institution = "Massachusetts Institute of Technology, Microsystems
Program Office",
address = "Cambridge, MA, USA",
pages = "30",
year = "1989",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
series = "VLSI memo",
acknowledgement = ack-nhfb,
}
@TechReport{Birrell:1989:IPT,
author = "Andrew D. Birrell",
title = "An introduction to programming with threads",
type = "SRC reports",
number = "35",
institution = "Digital Systems Research Center",
address = "Palo Alto, CA, USA",
pages = "35",
day = "6",
month = jan,
year = "1989",
LCCN = "QA76.6.B5729 1989",
bibdate = "Fri May 10 12:18:17 MDT 2002",
acknowledgement = ack-nhfb,
keywords = "parallel programming (computer science);
synchronization",
}
@Article{Briot:1989:OAS,
author = "Jean-Pierre Briot",
title = "From objects to actors: study of a limited symbiosis
in {Smalltalk-80}",
journal = j-SIGPLAN,
volume = "24",
number = "4",
pages = "69--72",
month = apr,
year = "1989",
CODEN = "SINODQ",
ISSN = "0362-1340",
bibdate = "Sun Dec 14 09:15:37 MST 2003",
bibsource = "Compendex database; http://portal.acm.org/;
http://www.acm.org/pubs/toc/",
URL = "http://www.acm.org:80/pubs/citations/proceedings/plan/67386/p69-briot/",
abstract = "In this paper we describe an implementation of actors
in Smalltalk-80, named Actalk. This attempt is designed
as a minimal extension preserving the Smalltalk-80
language. Actors are active and autonomous objects, as
opposed to standard passive Smalltalk-80 objects. An
actor is built from a standard Smalltalk-80 object by
associating a process with it and by serializing the
messages it could receive into a queue. We will study
the cohabitation and synergy between the two models of
computations: transfer of active messages (message and
thread of activity) between passive objects, and
exchange of passive messages between active objects. We
propose a sketch of methodology in order to have a safe
combination between these two programming paradigms.",
acknowledgement = ack-nhfb,
affiliation = "Univ Paris VI",
affiliationaddress = "Paris, Fr",
classification = "723",
conference = "Proceedings of the ACM SIGPLAN Workshop on
Object-Based Concurrent Programming",
confname = "Proceedings of the ACM SIGPLAN workshop on
Object-based concurrent programming, September 26--27
1988, San Diego, CA",
journalabr = "SIGPLAN Not",
keywords = "Actor Based Systems; Computer Metatheory--Programming
Theory; Computer Programming Languages; Concurrent
Programming; Design; design; languages; Object-Based
Programming; Smalltalk-80",
meetingaddress = "San Diego, CA, USA",
meetingdate = "Sep 26--27 1988",
meetingdate2 = "09/26--27/88",
subject = "{\bf D.3.2} Software, PROGRAMMING LANGUAGES, Language
Classifications, Smalltalk-80. {\bf D.1.3} Software,
PROGRAMMING TECHNIQUES, Concurrent Programming. {\bf
D.4.1} Software, OPERATING SYSTEMS, Process Management,
Concurrency.",
}
@Article{Caromel:1989:GMC,
author = "Denis Caromel",
title = "A general model for concurrent and distributed
object-oriented programming",
journal = j-SIGPLAN,
volume = "24",
number = "4",
pages = "102--104",
month = apr,
year = "1989",
CODEN = "SINODQ",
ISSN = "0362-1340",
bibdate = "Sun Dec 14 09:15:37 MST 2003",
bibsource = "Compendex database; http://portal.acm.org/;
http://www.acm.org/pubs/toc/",
URL = "http://www.acm.org:80/pubs/citations/proceedings/plan/67386/p102-caromel/",
abstract = "This paper presents a general model supporting
object-oriented programming in concurrent as well as
distributed environments. The model combines the
advantages of remote procedure calls with those of
message passing. It relies on the following concepts:
All objects are not active but the active entities are
objects, Asynchronous Message Passing with Data-driven
synchronization, and Service mechanism allowing an
explicit thread of control.",
acknowledgement = ack-nhfb,
affiliation = "CNRS",
affiliationaddress = "Vandoeuvres-les-Nancy, Fr",
classification = "722; 723",
conference = "Proceedings of the ACM SIGPLAN Workshop on
Object-Based Concurrent Programming",
confname = "Proceedings of the ACM SIGPLAN workshop on
Object-based concurrent programming, September 26--27
1988, San Diego, CA",
journalabr = "SIGPLAN Not",
keywords = "Computer Systems Programming; Computer Systems,
Digital--Distributed; Concurrent Programming; design;
Multiprocessing Programs; Object-Oriented Programming",
meetingaddress = "San Diego, CA, USA",
meetingdate = "Sep 26--27 1988",
meetingdate2 = "09/26--27/88",
subject = "{\bf D.1.3} Software, PROGRAMMING TECHNIQUES,
Concurrent Programming. {\bf D.1.m} Software,
PROGRAMMING TECHNIQUES, Miscellaneous. {\bf D.4.7}
Software, OPERATING SYSTEMS, Organization and Design,
Distributed systems. {\bf D.4.1} Software, OPERATING
SYSTEMS, Process Management, Concurrency.",
}
@MastersThesis{CarrerasVaquer:1989:APE,
author = "Carlos {Carreras Vaquer}",
title = "Architecture and performance evaluation of a
multithreaded cache design",
type = "Thesis (M.S. in Engineering)",
school = "University of Texas at Austin",
address = "Austin, TX, USA",
pages = "xii + 108",
year = "1989",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
acknowledgement = ack-nhfb,
keywords = "Cache memory; Computer architecture; Computer storage
devices; Integrated circuits -- Very large scale
integration; Microprocessors",
}
@TechReport{Caswell:1989:IMD,
author = "Deborah L. Caswell and David L. Black",
title = "Implementing a {Mach} debugger for multithreaded
applications",
type = "Research paper",
number = "CMU-CS-89-154",
institution = "Carnegie Mellon University, Computer Science Dept.",
address = "Pittsburgh, PA, USA",
pages = "13",
month = nov,
year = "1989",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
note = "To appear in the Conference Proceedings of Winter 1990
USENIX Technical Conference and Exhibition, Washington,
DC, January, 1990.",
abstract = "Multiple threads of control add new challenges to the
task of application debugging, and require the
development of new debuggers to meet these challenges.
This paper describes the design and implementation of
modifications to an existing debugger (gdb) for
debugging multithreaded applications under the Mach
operating system. It also describes the operating
system facilities that support it. Although certain
implementation details are specific to Mach, the
underlying design principles are applicable to other
systems that support threads in a Unix compatible
environment.",
acknowledgement = ack-nhfb,
annote = "Supported by the Space and Naval Warfare Systems
Command.",
keywords = "Debugging in computer science -- Computer programs",
}
@Article{Massalin:1989:TIO,
author = "H. Massalin and C. Pu",
title = "Threads and input\slash output in the synthesis
kernel",
journal = j-OPER-SYS-REV,
volume = "23",
number = "5",
pages = "191--201",
month = dec,
year = "1989",
CODEN = "OSRED8",
ISSN = "0163-5980",
bibdate = "Sat Aug 26 12:47:29 MDT 2006",
bibsource = "http://portal.acm.org/",
acknowledgement = ack-nhfb,
}
@MastersThesis{Plyler:1989:AMC,
author = "Kevin Brian Plyler",
title = "Adding multithreaded capabilities to the process
manager of the {BIGSAM} distributed operating system",
type = "Thesis (M.S.)",
school = "Arizona State University",
address = "Tempe, AZ, USA",
pages = "x + 105 + 2",
year = "1989",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
acknowledgement = ack-nhfb,
keywords = "Electronic data processing -- Distributed processing;
Multiprocessors; Operating systems (Computers)",
}
@Article{Schonberg:1989:FDA,
author = "Edith Schonberg",
title = "On-the-fly detection of access anomalies",
journal = j-SIGPLAN,
volume = "24",
number = "7",
pages = "285--297",
month = jul,
year = "1989",
CODEN = "SINODQ",
ISSN = "0362-1340",
bibdate = "Sun Dec 14 09:15:41 MST 2003",
bibsource = "http://portal.acm.org/;
http://www.acm.org/pubs/contents/proceedings/pldi/73141/index.html",
URL = "http://www.acm.org:80/pubs/citations/proceedings/pldi/73141/p285-schonberg/",
abstract = "Access anomalies are a common class of bugs in
shared-memory parallel programs. An access anomaly
occurs when two concurrent execution threads both write
(or one thread reads and the other writes) the same
shared memory location without coordination. Approaches
to the detection of access anomalies include static
analysis, post-mortem trace analysis, and on-the-fly
monitoring. A general on-the-fly algorithm for access
anomaly detection is presented, which can be applied to
programs with both nested fork-join and synchronization
operations. The advantage of on-the-fly detection over
post-mortem analysis is that the amount of storage used
can be greatly reduced by data compression techniques
and by discarding information as soon as it becomes
obsolete. In the algorithm presented, the amount of
storage required at any time depends only on the number
V of shared variables being monitored and the number N
of threads, not on the number of synchronizations. Data
compression is achieved by the use of two techniques
called merging and subtraction. Upper bounds on storage
are shown to be V \$MUL N${}^2$ for merging and V \$MUL
N for subtraction.",
acknowledgement = ack-nhfb,
affiliationaddress = "New York, NY, USA",
annote = "Published as part of the Proceedings of PLDI'89.",
classification = "722; 723",
conference = "Proceedings of the SIGPLAN '89 Conference on
Programming Language Design and Implementation",
journalabr = "SIGPLAN Not",
keywords = "Access Anomalies; algorithms; Computer Operating
Systems; Computer Programming Languages--Design;
Computer Systems, Digital--Parallel Processing;
languages; Parallel Programs; Program Processors",
meetingaddress = "Portland, OR, USA",
meetingdate = "Jun 21--23 1989",
meetingdate2 = "06/21--23/89",
sponsor = "ACM, Special Interest Group on Programming Languages,
New York; SS NY, USA",
subject = "{\bf D.1.3} Software, PROGRAMMING TECHNIQUES,
Concurrent Programming. {\bf D.3.2} Software,
PROGRAMMING LANGUAGES, Language Classifications, Ada.
{\bf D.2.2} Software, SOFTWARE ENGINEERING, Design
Tools and Techniques, Flow charts.",
}
@Article{Colvin:1990:CTS,
author = "Gregory Colvin",
title = "{CUG306} Thread and Synapsys",
journal = j-CUJ,
volume = "8",
type = "CUG New Release",
number = "3",
pages = "131--??",
month = mar,
year = "1990",
ISSN = "0898-9788",
bibdate = "Fri Aug 30 16:52:23 MDT 1996",
bibsource = "http://www.cuj.com/cbklist.htm",
acknowledgement = ack-nhfb,
}
@Article{Colvin:1990:MLT,
author = "Gregory Colvin",
title = "Multitasking With Lightweight Threads",
journal = j-CUJ,
volume = "8",
number = "3",
pages = "55--??",
month = mar,
year = "1990",
ISSN = "0898-9788",
bibdate = "Fri Aug 30 16:52:23 MDT 1996",
bibsource = "http://www.cuj.com/cbklist.htm",
acknowledgement = ack-nhfb,
}
@Article{Faust:1990:POO,
author = "John E. Faust and Henry M. Levy",
title = "The performance of an object-oriented threads
package",
journal = j-SIGPLAN,
volume = "25",
number = "10",
pages = "278--288",
month = oct,
year = "1990",
CODEN = "SINODQ",
ISSN = "0362-1340",
bibdate = "Sun Dec 14 09:15:57 MST 2003",
bibsource = "http://portal.acm.org/",
acknowledgement = ack-nhfb,
}
@Article{Gonzalez:1990:MSC,
author = "Dean W. Gonzalez",
title = "Multitasking Software Components",
journal = j-SIGADA-LETTERS,
volume = "10",
number = "1",
pages = "92--96",
month = jan # "\slash " # feb,
year = "1990",
CODEN = "AALEE5",
ISSN = "0736-721X",
bibdate = "Thu Sep 28 07:33:23 MDT 2000",
bibsource = "ftp://ftp.uu.net/library/bibliography;
http://www.adahome.com/Resources/Bibliography/articles.ref",
acknowledgement = ack-nhfb,
classcodes = "C6110B (Software engineering techniques); C6120 (File
organisation)",
keywords = "concurrency, tasking, reuse; Ada; Ada parameter
passing semantics; concurrent forms; data integrity;
data structure manipulation routines; data structures;
multiple; parallel programming; reusability; semaphore
calls; software; threads of control",
treatment = "P Practical",
}
@Article{Nordstrom:1990:TL,
author = "D. J. Nordstrom",
title = "Threading {Lisp}",
journal = j-SIGPLAN,
volume = "25",
number = "2",
pages = "17--24",
month = feb,
year = "1990",
CODEN = "SINODQ",
ISSN = "0362-1340",
bibdate = "Sun Dec 14 09:15:50 MST 2003",
bibsource = "http://portal.acm.org/",
acknowledgement = ack-nhfb,
}
@TechReport{Polychronopoulos:1990:ASC,
author = "C. D. (Constantine D.) Polychronopoulos",
title = "Auto scheduling: control flow and data flow come
together",
type = "Technical Report",
number = "CSRD 1058",
institution = inst-UIUC-CSRD,
address = inst-UIUC-CSRD:adr,
pages = "28",
month = dec,
year = "1990",
bibdate = "Fri Aug 30 08:01:51 MDT 1996",
abstract = "This paper presents a framework we term
auto-scheduling, which brings together the control flow
and data flow models by combining most of the
advantages and excluding the major disadvantages of the
two familiar models. Auto-scheduling can be viewed
either as an abstract architectural model or as a
parallel program compilation framework. While in
ordinary environments parallel task creation and
scheduling is done by the operating system, or at best
the run-time library, in auto-scheduling task creation
and scheduling is performed by the user program itself,
making parallel processing affordable at
fine-granularity levels. Under auto-scheduling the
compiler does not only generate object code, but it
`lends' its knowledge about a program to the parallel
instruction threads of that program, allowing them to
manage, activate, and schedule themselves at run-time,
without the need of an external monitor. This is done
by means of special drive-code injected by the compiler
to each schedulable unit of a program (task, thread,
etc). We argue that auto-scheduling offers an optimal
approach for exploiting parallelism on real parallel
computer systems.",
acknowledgement = ack-nhfb,
annote = "Title on P. 1: Auto-scheduling: control flow and data
flow come together. Supported in part by the National
Science Foundation. Supported in part by the U.S.
Department of Energy. Supported in part by Digital
Equipment Corporation.",
keywords = "Parallel processing (Electronic computers); Scheduling
(Management)",
}
@TechReport{Saavedra-Barrera:1990:AMA,
author = "Rafael H. Saavedra-Barrera and David E. Culler and
Thorsten {Von Eiken}",
title = "Analysis of multithreaded architectures for parallel
computing",
type = "Report",
number = "UCB/CSD 90/569",
institution = "University of California, Berkeley, Computer Science
Division",
address = "Berkeley, CA, USA",
pages = "10",
month = apr,
year = "1990",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
note = "To appear in the 2nd Annual ACM Symposium on Parallel
Algorithms and Architectures, Crete, Greece, July
1990.",
abstract = "Multithreading has been proposed as an architectural
strategy for tolerating latency in multiprocessors and,
through limited empirical studies, shown to offer
promise. This paper develops an analytical model of
multithreaded processor behavior based on a small set
of architectural and program parameters. The model
gives rise to a large Markov chain, which is solved to
obtain a formula for processor efficiency in terms of
the number of threads per processor, the remote
reference rate, the latency, and the cost of switching
between threads. It is shown that a multithreaded
processor exhibits three operating regimes: linear
(efficiency is proportional to the number of threads),
transition, and saturation (efficiency depends only on
the remote reference rate and switch cost). Formulae
for regime boundaries are derived. The model is
embellished to reflect cache degradation due to
multithreading, using an analytical model of cache
behavior, demonstrating that returns diminish as the
number threads becomes large. Predictions from the
embellished model correlate well with published
empirical measurements. Prescriptive use of the model
under various scenarios indicates that multithreading
is effective, but the number of useful threads per
processor is fairly small.",
acknowledgement = ack-nhfb,
annote = "Supported in part by NASA. Supported in part by the
National Science Foundation through the UCB Mammoth
project.",
keywords = "Computer architecture; Multiprocessors",
}
@Article{Schmitt:1990:CEM,
author = "David A. Schmitt",
title = "{C} Extensions For Multi-Threading",
journal = j-CUJ,
volume = "8",
number = "8",
pages = "33--??",
month = aug,
year = "1990",
ISSN = "0898-9788",
bibdate = "Fri Aug 30 16:52:23 MDT 1996",
bibsource = "http://www.cuj.com/cbklist.htm",
acknowledgement = ack-nhfb,
}
@MastersThesis{Stapleton:1990:DSS,
author = "Joseph Francis Stapleton",
title = "Dynamic server selection in a multithreaded network
computing environment",
type = "Thesis (M.S.)",
school = "Iowa State University",
address = "Ames, IA, USA",
pages = "66",
year = "1990",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
acknowledgement = ack-nhfb,
}
@TechReport{Agarwal:1991:PTM,
author = "Anant Agarwal",
title = "Performance tradeoffs in multithreaded processors",
type = "Technical report",
number = "MIT/LCS/TR 501; VLSI memo no. 89-566",
institution = "Laboratory for Computer Science, Massachusetts
Institute of Technology",
address = "Cambridge, MA, USA",
pages = "39",
year = "1991",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
acknowledgement = ack-nhfb,
}
@Article{Beddow:1991:MCF,
author = "A. J. M. Beddow",
title = "Multi-Threaded {C} Functions",
journal = j-CUJ,
volume = "9",
number = "1",
pages = "57--??",
month = jan,
year = "1991",
ISSN = "0898-9788",
bibdate = "Fri Aug 30 16:52:23 MDT 1996",
bibsource = "http://www.cuj.com/cbklist.htm",
acknowledgement = ack-nhfb,
}
@Article{Canetti:1991:PCP,
author = "R. Canetti and L. P. Fertig and S. A. Kravitz and D.
Malki and R. Y. Pinter and S. Porat and A. Teperman",
title = "The parallel {C} ({pC}) programming language",
journal = j-IBM-JRD,
volume = "35",
number = "5/6",
pages = "727--741",
month = sep # "\slash " # nov,
year = "1991",
CODEN = "IBMJAE",
ISSN = "0018-8646",
bibdate = "Tue Mar 25 14:26:59 MST 1997",
abstract = "The authors describe pC (parallel C), an extension of
the ANSI C programming language to support medium- to
large-grain parallel programming in both shared- and
distributed-memory environments. pC aims to make
programming for parallel processors accessible to the C
community by enriching the C programming model with a
small set of constructs supporting parallelism. pC
supports shared- and distributed-memory environments
via a hierarchical computational model. A pC
application comprises a static collection of tasks with
disjoint memory spaces. A dynamic collection of threads
runs within each task, sharing the data and code of the
task. Language constructs specify concurrent execution
of threads within a single task. Additional language
constructs specify the interactions between threads
through the following mechanisms: initiation of threads
in remote tasks by remote function call, mailbox-based
message passing, and synchronization primitives. The
paper introduces the computational model and language
constructs of pC and describes a prototype pC compiler
and run-time system for the Mach operating system.
Several program examples illustrate the utility of pC
constructs.",
acknowledgement = ack-nhfb,
affiliation = "Dept. of Comput. Sci., Technion-Israel Inst. of
Technol., Haifa, Israel",
classcodes = "C6140D (High level languages); C6110P (Parallel
programming); C6150C (Compilers, interpreters and other
processors)",
classification = "C6110P (Parallel programming); C6140D (High level
languages); C6150C (Compilers, interpreters and other
processors)",
corpsource = "Dept. of Comput. Sci., Technion-Israel Inst. of
Technol., Haifa, Israel",
keywords = "ANSI C programming language; C language; C
programming; C programming model; Disjoint memory
spaces; disjoint memory spaces; Distributed-memory;
distributed-memory; function call; Hierarchical
computational model; hierarchical computational model;
Language constructs; language constructs; Mach; Mach
operating system; Mailbox-based message passing;
mailbox-based message passing; model; operating system;
Parallel C; parallel C; parallel languages; Parallel
programming; parallel programming; Parallelism;
parallelism; PC; pC; PC compiler; pC compiler; program
compilers; remote; Remote function call; Run-time
system; run-time system; Shared memory; shared memory;
Synchronization; synchronization; Tasks; tasks;
Threads; threads",
thesaurus = "C language; Parallel languages; Program compilers",
treatment = "P Practical",
}
@Article{Ching:1991:EAP,
author = "W.-M. Ching and D. Ju",
title = "Execution of automatically parallelized {APL} programs
on {RP3}",
journal = j-IBM-JRD,
volume = "35",
number = "5/6",
pages = "767--777",
month = sep # "\slash " # nov,
year = "1991",
CODEN = "IBMJAE",
ISSN = "0018-8646",
bibdate = "Tue Mar 25 14:26:59 MST 1997",
abstract = "The authors have implemented an experimental APL/C
compiler, which accepts ordinary APL programs and
produces C programs. They have also implemented a
run-time environment that supports the parallel
execution of these C programs on the RP3 computer, a
shared-memory, 64-way MIMD machine built at the IBM
Thomas J. Watson Research Center. The APL/C compiler
uses the front end of the APL/370 compiler and imposes
the same restrictions, but requires no parallelization
directives from the user. The run-time environment is
based on simple synchronization primitives and is
implemented using Mach threads. They report the
speedups of several compiled programs running on RP3
under the Mach operating system. The current
implementation exploits only data parallelism. They
discuss the relationship between the style of an APL
program and its expected benefit from the automatic
parallel execution provided by the compiler.",
acknowledgement = ack-nhfb,
affiliation = "IBM Thomas J. Watson Res. Center, Yorktown Heights,
NY, USA",
classcodes = "C6150C (Compilers, interpreters and other processors);
C6150N (Distributed systems); C6140D (High level
languages)",
classification = "C6140D (High level languages); C6150C (Compilers,
interpreters and other processors); C6150N (Distributed
systems)",
corpsource = "IBM Thomas J. Watson Res. Center, Yorktown Heights,
NY, USA",
keywords = "APL; APL/370 compiler; APL/C; APL/C compiler;
Automatically parallelized APL programs; automatically
parallelized APL programs; C language; C programs;
compiler; compilers; Data parallelism; data
parallelism; Mach operating; Mach operating system;
Mach threads; multiprocessing programs; program; RP3;
Shared-memory; shared-memory; synchronisation;
Synchronization primitives; synchronization primitives;
system",
thesaurus = "APL; C language; Multiprocessing programs; Program
compilers; Synchronisation",
treatment = "P Practical",
}
@Article{Chiueh:1991:MTV,
author = "Tzi-cker Chiueh",
title = "Multi-threaded vectorization",
journal = j-COMP-ARCH-NEWS,
volume = "19",
number = "3",
pages = "352--361",
month = may,
year = "1991",
CODEN = "CANED2",
ISSN = "0163-5964",
bibdate = "Fri May 12 09:41:01 MDT 2006",
bibsource = "http://portal.acm.org/",
acknowledgement = ack-nhfb,
}
@Article{Culler:1991:FGPa,
author = "David E. Culler and Anurag Sah and Klaus E. Schauser
and Thorsten von Eicken and John Wawrzynek",
title = "Fine-grain parallelism with minimal hardware support:
a compiler-controlled threaded abstract machine",
journal = j-COMP-ARCH-NEWS,
volume = "19",
number = "2",
pages = "164--175",
month = apr,
year = "1991",
CODEN = "CANED2",
ISSN = "0163-5964",
bibdate = "Fri May 12 09:40:40 MDT 2006",
bibsource = "http://portal.acm.org/",
acknowledgement = ack-nhfb,
}
@Article{Culler:1991:FGPb,
author = "David E. Culler and Anurag Sah and Klaus E. Schauser
and Thorsten von Eicken and John Wawrzynek",
title = "Fine-Grain Parallelism with Minimal Hardware Support:
{A} Compiler-Controlled Threaded Abstract Machine",
journal = j-SIGPLAN,
volume = "26",
number = "4",
pages = "164--175",
month = apr,
year = "1991",
CODEN = "SINODQ",
ISSN = "0362-1340",
bibdate = "Sat May 01 18:50:04 1999",
acknowledgement = ack-nhfb,
}
@Article{Culler:1991:FGPc,
author = "David E. Culler and Anurag Sah and Klaus E. Schauser
and Thorsten von Eicken and John Wawrzynek",
title = "Fine-grain parallelism with minimal hardware support:
a compiler-controlled threaded abstract machine",
journal = j-OPER-SYS-REV,
volume = "25",
number = "3S",
pages = "164--175",
month = apr,
year = "1991",
CODEN = "OSRED8",
ISSN = "0163-5980",
bibdate = "Sat Aug 26 15:24:15 MDT 2006",
bibsource = "http://portal.acm.org/",
acknowledgement = ack-nhfb,
}
@Article{Draves:1991:UCI,
author = "Richard P. Draves and Brian N. Bershad and Richard F.
Rashid and Randall W. Dean",
title = "Using continuations to implement thread management and
communication in operating systems",
journal = j-OPER-SYS-REV,
volume = "25",
number = "5",
pages = "122--136",
month = oct,
year = "1991",
CODEN = "OSRED8",
ISSN = "0163-5980",
bibdate = "Sat Aug 26 08:55:57 MDT 2006",
bibsource = "http://portal.acm.org/",
acknowledgement = ack-nhfb,
}
@Article{Gallmeister:1991:EEP,
author = "Bill O. Gallmeister and Chris Lanier",
title = "Early experience with {POSIX} 1003.4 and {POSIX}
1003.4 {A}",
journal = j-PROC-REAL-TIME-SYS-SYMP,
pages = "190--198 (of ix + 307)",
year = "1991",
CODEN = "PRSYEA",
ISBN = "0-8186-2450-7",
ISBN-13 = "978-0-8186-2450-6",
LCCN = "QA 76.54 R43 1991",
bibdate = "Mon Dec 22 09:06:02 1997",
bibsource = "Compendex database",
note = "IEEE catalog number 91CH3090-8.",
abstract = "Two proposed IEEE standards for real-time operating
systems support, POSIX.4 and POSIX.4a, are proceeding
towards IEEE approval and will eventually become
international standards. The authors provide a brief
overview of the facilities of POSIX.4 and POSIX.4a.
They concentrate on a few of the critical features that
POSIX.4 and POSIX.4a provide and describe the POSIX.4
scheduling interface. The POSIX.4a support for multiple
threads of control is also described. The features
found in POSIX.4 and POSIX.4a for synchronization of
multiple threads, are discussed, and the POSIX.4
interprocess communication facility is presented. The
performance numbers are given to allow comparisons of
the facilities of traditional UNIX systems, the
facilities of a representative hard real-time system
(LynxOS), and the facilities of POSIX.4 and POSIX.4a.",
acknowledgement = ack-nhfb,
classification = "722; 723; 902",
conference = "Proceedings of the 12th Real-Time Systems Symposium",
conferenceyear = "1991",
journalabr = "Proc Real Time Syst Symp",
keywords = "Computer Systems, Digital; Real Time Operation;
Computer Operating Systems--Standards; Real-Time
Operating Systems; POSIX.4a Standards",
meetingaddress = "San Antonio, TX, USA",
meetingdate = "Dec 4--6 1991",
meetingdate2 = "12/04--06/91",
publisherinfo = "IEEE Service Center",
sponsor = "IEEE Computer Soc",
}
@TechReport{Glenn:1991:CMH,
author = "Ray R. Glenn",
title = "Characterizing memory hot spots in a shared memory
{MIMD} machine",
type = "Technical report",
number = "SRC-TR-91-039",
institution = inst-SRC-IDA,
address = inst-SRC-IDA:adr,
pages = "24",
day = "15",
month = oct,
year = "1991",
bibdate = "Fri Aug 30 08:01:51 MDT 1996",
abstract = "This paper analyzes two memory hot spot problems
associated with massively parallel MIMD computers. The
first is the memory stride problem, which is similar to
stride problems found in existing supercomputers. The
second hot spot problem occurs in designs that use two
separate memory accesses to lock and unlock critical
sections (split transaction) and employ a first
come/first serve queuing mechanism for shared memory
locations. A bistability in throughput brought about by
these conditions is analyzed and experimentally
demonstrated. Simple equations are presented which
predict the throughput at a critical section of code as
a function of the number of applied threads. In
particular, the mean size of the work items that can be
executed in parallel without the possibility of
stalling is proportional to the square of the number of
threads applied.",
acknowledgement = ack-nhfb,
keywords = "Multiprocessors",
}
@InProceedings{Hirata:1991:MPA,
author = "H. Hirata and Y. Mochizuki and A. Nishimura and Y.
Nakase",
title = "A Multithreaded Processor Architecture with
Simultaneous Instruction Issuing",
crossref = "Anonymous:1991:PIS",
pages = "87--96",
year = "1991",
bibdate = "Mon Aug 26 10:38:41 MDT 1996",
acknowledgement = ack-nhfb,
}
@InProceedings{Hironaka:1991:SVP,
author = "T. Hironaka and T. Hashimoto and K. Okazaki and K.
Murakami",
title = "A Single-Chip Vector-Processor Prototype Based on
Multithreaded Streaming\slash {FIFO} ({MSFV})
Architecture",
crossref = "Anonymous:1991:PIS",
pages = "77--86",
year = "1991",
bibdate = "Mon Aug 26 10:38:41 MDT 1996",
acknowledgement = ack-nhfb,
}
@Article{Horiguchi:1991:PEP,
author = "Susumu Horiguchi and Takeo Nakada",
title = "Performance Evaluation of Parallel Fast {Fourier}
Transform on a Multiprocessor Workstation",
journal = j-J-PAR-DIST-COMP,
volume = "12",
number = "2",
pages = "158--163",
month = jun,
year = "1991",
CODEN = "JPDCER",
ISSN = "0743-7315",
bibdate = "Sat Apr 12 17:13:17 MDT 1997",
acknowledgement = ack-nhfb,
classification = "C4190 (Other numerical methods); C4240 (Programming
and algorithm theory); C5440 (Multiprocessor systems
and techniques)",
corpsource = "Dept. of Inf. Sci., Tohoku Univ., Sendai, Japan",
keywords = "algorithms; cache protocols; fast Fourier transform;
fast Fourier transforms; FFT; floating-; multiprocess
operating system; multiprocessing systems;
multiprocessor workstation; multithread operating
system; operating systems; parallel; parallel FFT;
performance; performance evaluation; point
coprocessors",
treatment = "P Practical",
}
@Article{Jolitz:1991:PUB,
author = "W. F. Jolitz and L. G. Jolitz",
title = "Porting {UNIX} to the 386. The basic kernel
Multiprogramming and multitasking. {II}",
journal = j-DDJ,
volume = "16",
number = "10",
pages = "62, 64, 66, 68, 70, 72, 118--120",
month = oct,
year = "1991",
CODEN = "DDJOEB",
ISSN = "1044-789X",
bibdate = "Tue Sep 10 09:11:02 MDT 1996",
bibsource = "http://www.ddj.com/index/author/index.htm",
acknowledgement = ack-nhfb,
classification = "C6150J (Operating systems); C6110 (Systems analysis
and programming)",
keywords = "386BSD kernel; Multiple simultaneous process
execution; Multiprogramming; Multitasking; Multithread
operations; Operating systems; Porting; Sleep( ); Swch(
); Switching mechanisms; UNIX; Wakeup( )",
thesaurus = "C listings; Microprocessor chips; Multiprogramming;
Software portability; Unix",
}
@Article{Man:1991:MLC,
author = "Richard F. Man",
title = "A Multithreading Library In {C} For Subsumption
Architecture",
journal = j-CUJ,
volume = "9",
number = "11",
pages = "42--??",
month = nov,
year = "1991",
ISSN = "0898-9788",
bibdate = "Fri Aug 30 16:52:23 MDT 1996",
bibsource = "http://www.cuj.com/cbklist.htm",
acknowledgement = ack-nhfb,
}
@Article{Marsh:1991:FCU,
author = "Brian D. Marsh and Michael L. Scott and Thomas J.
LeBlanc and Evangelos P. Markatos",
title = "First-class user-level threads",
journal = j-OPER-SYS-REV,
volume = "25",
number = "5",
pages = "110--121",
month = oct,
year = "1991",
CODEN = "OSRED8",
ISSN = "0163-5980",
bibdate = "Sat Aug 26 08:55:57 MDT 2006",
bibsource = "http://portal.acm.org/",
acknowledgement = ack-nhfb,
}
@PhdThesis{Mennemeier:1991:HMS,
author = "Lawrence Mennemeier",
title = "Hardware mechanisms to support concurrent threads on
{RISC} and superscalar multiprocessors",
type = "Thesis ({M.S.})",
school = "University of California, Santa Cru",
pages = "vii + 39",
year = "1991",
LCCN = "QA76.5.M44 1991",
bibdate = "Fri May 10 12:18:17 MDT 2002",
acknowledgement = ack-nhfb,
keywords = "parallel processing (electronic computers);
multiprocessors; Masters theses -- University of
California, Santa Cruz -- 1991",
}
@Article{Papadopoulos:1991:MRV,
author = "Gregory M. Papadopoulos and Kenneth R. Traub",
title = "Multithreading: a revisionist view of dataflow
architectures",
journal = j-COMP-ARCH-NEWS,
volume = "19",
number = "3",
pages = "342--351",
month = may,
year = "1991",
CODEN = "CANED2",
ISSN = "0163-5964",
bibdate = "Fri May 12 09:41:01 MDT 2006",
bibsource = "http://portal.acm.org/",
acknowledgement = ack-nhfb,
}
@PhdThesis{Park:1991:PTM,
author = "Won Woo Park",
title = "Performance-area trade-offs in multithreaded
processing unit",
type = "Thesis (Ph.D.)",
school = "University of Texas at Austin",
address = "Austin, TX, USA",
pages = "xvii + 165",
year = "1991",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
acknowledgement = ack-nhfb,
keywords = "Computer architecture; Multiprocessors; Parallel
processing (Electronic computers)",
}
@MastersThesis{Pham:1991:EMD,
author = "Thuan Quang Pham",
title = "The experimental migration of a distributed
application to a multithreaded environment",
type = "Thesis (M.S.)",
school = "Massachusetts Institute of Technology, Department of
Electrical Engineering and Computer Science",
address = "Cambridge, MA, USA",
pages = "51",
year = "1991",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
acknowledgement = ack-nhfb,
}
@Article{Richman:1991:EHC,
author = "Scott Richman",
title = "Examining the {Hamilton C} shell ({Unix} power for
{OS/2})",
journal = j-DDJ,
volume = "16",
number = "1",
pages = "98, 100, 102, 104--106",
month = jan,
year = "1991",
CODEN = "DDJOEB",
ISSN = "1044-789X",
bibdate = "Tue Sep 10 09:11:02 MDT 1996",
bibsource = "http://www.ddj.com/index/author/index.htm, UnCover
database",
abstract = "Doug Hamilton's C Shell helps you create more powerful
OS/2 programs.",
acknowledgement = ack-nhfb,
classification = "C6150E (General utility programs); C6150J (Operating
systems); C6115 (Programming support)",
keywords = "C shell environment; C++ programs; High-performance
file system; Large command lines; Long filenames; OS/2
features; Pipes; Presentation Manager; Script language;
Script program; Shell scripts; Text windows; Threads;
Utilities",
thesaurus = "C listings; Software packages; Software tools; Utility
programs",
}
@TechReport{Saavedra-Barrera:1991:ASM,
author = "Rafael H. Saavedra-Barrera and David E. Culler",
title = "An analytical solution for a {Markov} chain modeling
multithreaded execution",
type = "Report",
number = "UCB/CSD 91/623",
institution = "University of California, Berkeley, Computer Science
Division",
address = "Berkeley, CA, USA",
pages = "24",
month = apr,
year = "1991",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
abstract = "Multithreading is an architectural technique aimed at
maintaining high processor utilization in the presence
of large memory or interprocessor communication
latency. While waiting for a remote reference to
complete, the processor switches to another execution
thread. Several realizations of this concept have been
proposed, but little data is available on the actual
costs and benefits. This paper presents an analytical
model of multithreaded execution, which may serve to
guide and explain empirical studies. The model is based
on three key parameters: thread run-length, switch
cost, and latency. A closed-form expression for
processor utilization is obtained for deterministic and
stochastic run-lengths. The derivation involves
identifying specific patterns in the very large set of
equations forming the Markov chain. Using this result,
three operating regimes are identified for a
multithreaded processor subject to long latencies:
linear, where utilization is proportional to the number
of threads per processor, saturation, where utilization
is determined only by the run-length and switch cost,
and transition between the other regimes. The model can
be used to estimate the effects of several
architectural variations.",
acknowledgement = ack-nhfb,
annote = "Supported in part by NASA under consortium agreement
NCA2-128 and cooperative agreement NCC2-550. Supported
in part by the National Science Foundation.",
keywords = "Computer architecture; Markov chains",
}
@MastersThesis{Schauser:1991:CDT,
author = "Klaus Erik Schauser",
title = "Compiling dataflow into threads: efficient
compiler-controlled multithreading for lenient parallel
languages",
type = "Thesis (M.S.)",
school = "University of California, Berkeley, Computer Science
Division",
address = "Berkeley, CA, USA",
pages = "71",
day = "2",
month = jul,
year = "1991",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
note = "Also available as Report UCB/CSD 91/644",
abstract = "Powerful non-strict parallel languages require fast
dynamic scheduling. This thesis explores how the need
for multithreaded execution can be addressed as a
compilation problem, to achieve switching rates
approaching what hardware mechanisms might provide.
Compiler-controlled multithreading is examined through
compilation of a lenient parallel language, ID90, for a
threaded abstract machine, TAM. A key feature of TAM is
that synchronization is explicit and occurs only at the
start of a thread, so that a simple cost model can be
applied. A scheduling hierarchy allows the compiler to
schedule logically related threads closely together in
time and to use registers across threads. Remote
communication is via message sends and split-phase
memory accesses. Messages and memory replies are
received by compiler-generated message handlers which
rapidly integrate these events with thread scheduling.
To compile ID90 for TAM, we employ a new parallel
intermediate form, dual-graphs, with distinct control
and data arcs. This provides a clean framework for
partitioning the program into threads, scheduling
threads, and managing registers under asynchronous
execution. The compilation process is described and
preliminary measurements of the effectiveness of the
approach are discussed. Previous to this work,
execution of Id90 programs was limited to specialized
architectures or dataflow graph interpreters. By
compiling via TAM, we have achieved more than two
orders of magnitude performance improvement over graph
interpreters on conventional machines, making this Id90
implementation competitive with machines supporting
dynamic instruction scheduling in hardware. Timing
measurements show that our Id90 implementation on a
standard RISC can achieve a performance close to Id90
on one processor of the recent dataflow machine
Monsoon. It can be seen that the TAM partitioning
presented in this thesis reduces the control overhead
substantially and that more aggressive partitioning
would yield modest additional benefit. There is,
however, considerable room for improvement in
scheduling and register management.",
acknowledgement = ack-nhfb,
annote = "Supported in part by the National Science Foundation.
Supported in part by Motorola Inc., the TRW Foundation,
and the International Computer Science Institute",
keywords = "Compilers (Computer programs); Parallel programming
(Computer science)",
}
@TechReport{Schauser:1991:CML,
author = "Klaus Erik Schauser and David E. Culler and Thorsten
{von Eicken}",
title = "Compiler-controlled multithreading for lenient
parallel languages",
type = "Report",
number = "UCB/CSD 91/640",
institution = "University of California, Berkeley, Computer Science
Division",
address = "Berkeley, CA, USA",
pages = "21",
day = "30",
month = jul,
year = "1991",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
note = "A version of this report is to appear in the
Proceedings of FPCA '91 Conference on Functional
Programming Languages and Computer Architecture, Aug.
1991, Springer Verlag",
abstract = "Tolerance to communication latency and inexpensive
synchronization are critical for general-purpose
computing on large multiprocessors. Fast dynamic
scheduling is required for powerful nonstrict parallel
languages. However, machines that support rapid
switching between multiple execution threads remain a
design challenge. This paper explores how multithreaded
execution can be addressed as a compilation problem, to
achieve switching rates approaching what hardware
mechanisms might provide. Compiler-controlled
multithreading is examined through compilation of a
lenient parallel language, Id90, for a threaded
abstract machine, TAM. A key feature of TAM is that
synchronization is explicit and occurs only at the
start of a thread, so that a simple cost model can be
applied. A scheduling hierarchy allows the compiler to
schedule logically related threads closely together in
time and to use registers across threads. Remote
communication is via message sends and split-phase
memory accesses. Messages and memory replies are
received [sic] by compiler-generated message handlers
which rapidly integrate these events with thread
scheduling. To compile Id90 for TAM, we employ a new
parallel intermediate form, dual-graphs, with distinct
control and data arcs. This provides a clean framework
for partitioning the program into threads, scheduling
threads, and managing registers under asynchronous
execution. The compilation process is described and
preliminary measurements of its effectiveness are
discussed. Dynamic execution measurements are obtained
via a second compilation step, which translates TAM
into native code for existing machines with
instrumentation incorporated. These measurements show
that the cost of compiler-controlled multithreading is
within a small factor of the cost of control flow in
sequential languages.",
acknowledgement = ack-nhfb,
annote = "Supported in part by the National Science Foundation
PYI Award. Supported in part by Motorola Inc., the TRW
Foundation and the Semiconductor Research Corporation
Supported in part by J. Wawrzynek's PYI Award.
Supported in part by NSF Infrastructure Grant.",
keywords = "Compilers (Computer programs); Parallel programming
(Computer science)",
}
@Article{Schwan:1991:RTT,
author = "Karsten Schwan and Hongyi Zhou and Ahmed Gheith",
title = "Real-time threads",
journal = j-OPER-SYS-REV,
volume = "25",
number = "4",
pages = "35--46",
month = oct,
year = "1991",
CODEN = "OSRED8",
ISSN = "0163-5980",
bibdate = "Sat Aug 26 08:55:51 MDT 2006",
bibsource = "http://portal.acm.org/",
acknowledgement = ack-nhfb,
}
@InProceedings{Alverson:1992:EHP,
author = "G. A. Alverson and R. Alverson and D. Callahan and B.
Koblenz",
title = "Exploiting Heterogeneous Parallelism on a
Multi-threaded Multiprocessor",
crossref = "ACM:1992:CPI",
pages = "188--197",
year = "1992",
bibdate = "Mon Aug 26 10:38:41 MDT 1996",
acknowledgement = ack-nhfb,
}
@Article{Anderson:1992:SAE,
author = "Thomas E. Anderson and Brian N. Bershad and Edward D.
Lazowska and Henry M. Levy",
title = "Scheduler Activations: Effective Kernel Support for
the User-Level Management of Parallelism",
journal = j-TOCS,
volume = "10",
number = "1",
pages = "53--79",
month = feb,
year = "1992",
CODEN = "ACSYEC",
ISSN = "0734-2071",
bibdate = "Wed Jan 13 18:36:53 MST 1999",
bibsource = "http://www.acm.org/pubs/contents/journals/tocs/",
URL = "http://www.acm.org:80/pubs/citations/journals/tocs/1992-10-1/p53-anderson/",
abstract = "{\em Threads\/} are the vehicle for concurrency in
many approaches to parallel programming. Threads can be
supported either by the operating system kernel or by
user-level library code in the application address
space, but neither approach has been fully
satisfactory. This paper addresses this dilemma. First,
we argue that the performance of kernel threads is {\em
inherently\/} worse than that of user-level threads,
rather than this being an artifact of existing
implementations; managing parallelism at the user level
is essential to high-performance parallel computing.
Next, we argue that the problems encountered in
integrating user-level threads with other system
services is a consequence of the lack of kernel support
for user-level threads provided by contemporary
multiprocessor operating systems; kernel threads are
the {\em wrong abstraction\/} on which to support
user-level management of parallelism. Finally, we
describe the design, implementation, and performance of
a new kernel interface and user-level thread package
that together provide the same functionality as kernel
threads without compromising the performance and
flexibility advantages of user-level management of
parallelism.",
acknowledgement = ack-nhfb,
keywords = "design; measurement; performance",
subject = "{\bf D.4.1} Software, OPERATING SYSTEMS, Process
Management, Scheduling. {\bf D.4.4} Software, OPERATING
SYSTEMS, Communications Management, Input/output. {\bf
D.4.7} Software, OPERATING SYSTEMS, Organization and
Design. {\bf D.4.8} Software, OPERATING SYSTEMS,
Performance.",
}
@MastersThesis{Arunachalam:1992:EMM,
author = "Prakash Arunachalam",
title = "Evaluation of a multithreaded microprocessor with
{MIPS R3000} instruction set",
type = "Thesis (M.S. in Engineering)",
school = "University of Texas at Austin",
address = "Austin, TX, USA",
pages = "vii + 45",
year = "1992",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
acknowledgement = ack-nhfb,
keywords = "Computer architecture; MIPS R3000 series
microprocessors; Parallel processing (Electronic
computers); Reduced instruction set computers; RISC
microprocessors",
}
@Article{Bauer:1992:PCE,
author = "Barr E. Bauer",
title = "Parallel {C} extensions",
journal = j-DDJ,
volume = "17",
number = "8",
pages = "110, 112--114, 124, 127",
month = aug,
year = "1992",
CODEN = "DDJOEB",
ISSN = "1044-789X",
bibdate = "Tue Sep 10 10:06:23 MDT 1996",
bibsource = "http://www.ddj.com/index/author/index.htm",
acknowledgement = ack-nhfb,
affiliation = "Schering-Plough Res. Inst., Bloomfield, NJ, USA",
classification = "C6150C (Compilers, interpreters and other
processors); C6140D (High level languages); C6110P
(Parallel programming)",
keywords = "C extensions; C programs; Parallel execution regions;
Parallel execution threads; Parallelized program;
Serial program; Silicon Graphics IRIS Power C
compiler",
thesaurus = "C language; C listings; Parallel languages; Program
compilers",
}
@Article{Bershad:1992:FME,
author = "Brian N. Bershad and David D. Redell and John R.
Ellis",
title = "Fast mutual exclusion for uniprocessors",
journal = j-SIGPLAN,
volume = "27",
number = "9",
pages = "223--233",
month = sep,
year = "1992",
CODEN = "SINODQ",
ISSN = "0362-1340",
bibdate = "Sun Dec 14 09:16:26 MST 2003",
bibsource = "http://portal.acm.org/; http://www.acm.org/pubs/toc/",
URL = "http://www.acm.org:80/pubs/citations/proceedings/asplos/143365/p223-bershad/",
abstract = "In this paper we describe restartable atomic
sequences, an {\em optimistic\/} mechanism for
implementing simple atomic operations (such as {\em
Test-And-Set\/}) on a uniprocessor. A thread that is
suspended within a restartable atomic sequence is
resumed by the operating system at the beginning of the
sequence, rather than at the point of suspension. This
guarantees that the thread eventually executes the
sequence {\em atomically\/}. A restartable atomic
sequence has significantly less overhead than other
software-based synchronization mechanisms, such as
kernel emulation or software reservation. Consequently,
it is an attractive alternative for use on
uniprocessors that do no support atomic operations.
Even on processors that do support atomic operations in
hardware, restartable atomic sequences can have lower
overhead. We describe different implementations of
restartable atomic sequences for the Mach 3.0 and Taos
operating systems. These systems' thread management
packages rely on atomic operations to implement
higher-level mutual exclusion facilities. We show that
improving the performance of low-level atomic
operations, and therefore mutual exclusion mechanisms,
improves application performance.",
acknowledgement = ack-nhfb,
keywords = "design; languages; measurement; performance",
subject = "{\bf D.4.1} Software, OPERATING SYSTEMS, Process
Management, Mutual exclusion.",
}
@MastersThesis{Blumofe:1992:MSM,
author = "Robert D. (Robert David) Blumofe",
title = "Managing storage for multithreaded computations",
type = "Thesis (M.S.)",
school = "Massachusetts Institute of Technology, Laboratory for
Computer Science, Department of Electrical Engineering
and Computer Science",
address = "Cambridge, MA, USA",
pages = "83",
year = "1992",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
note = "Also available as Report MIT/LCS/TR 552.",
acknowledgement = ack-nhfb,
}
@Article{Boothe:1992:IMT,
author = "Bob Boothe and Abhiram Ranade",
title = "Improved multithreading techniques for hiding
communication latency in multiprocessors",
journal = j-COMP-ARCH-NEWS,
volume = "20",
number = "2",
pages = "214--223",
month = may,
year = "1992",
CODEN = "CANED2",
ISSN = "0163-5964",
bibdate = "Fri May 12 09:40:43 MDT 2006",
bibsource = "http://portal.acm.org/",
acknowledgement = ack-nhfb,
}
@Article{Cattaneo:1992:ACT,
author = "G. Cattaneo and G. Di Giore and M. Ruotolo",
title = "Another {C} Threads Library",
journal = j-SIGPLAN,
volume = "27",
number = "12",
pages = "81--90",
month = dec,
year = "1992",
CODEN = "SINODQ",
ISSN = "0362-1340",
bibdate = "Sun Dec 14 09:16:30 MST 2003",
bibsource = "http://portal.acm.org/",
acknowledgement = ack-nhfb,
}
@MastersThesis{Chowdhury:1992:PEA,
author = "Indranil Chowdhury",
title = "Performance evaluation and architecture of an
instruction cache for multithreaded {RISC} processor",
type = "Thesis (M.S. in Engineering)",
school = "University of Texas at Austin",
address = "Austin, TX, USA",
pages = "x + 93",
year = "1992",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
acknowledgement = ack-nhfb,
keywords = "Cache memory -- Evaluation -- Simulation methods;
Computer architecture; Microprocessors; Reduced
instruction set computers",
}
@TechReport{Culler:1992:AMMa,
author = "David E. Culler and Michial Gunter and James C. Lee",
title = "Analysis of multithreaded microprocessors under
multiprogramming",
type = "Report",
number = "UCB/CSD 92/687",
institution = "University of California, Berkeley, Computer Science
Division",
address = "Berkeley, CA, USA",
pages = "17",
month = may,
year = "1992",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
abstract = "Multithreading has been proposed as a means of
tolerating long memory latencies in multiprocessor
systems. Fundamentally, it allows multiple concurrent
subsystems (cpu, network, and memory) to be utilized
simultaneously. This is advantageous on uniprocessor
systems as well, since the processor is utilized while
the memory system services misses. We examine
multithreading on high-performance uniprocessors as a
means of achieving better cost/performance on multiple
processes. Processor utilization and cache behavior are
studied both analytically and through simulation of
timesharing and multithreading using interleaved
reference traces. Multithreading is advantageous when
one has large on-chip caches (32 kilobytes),
associativity of two, and a memory access cost of
roughly 50 instruction times. At this point, a small
number of threads (2-4) is sufficient, the thread
switch need not be extraordinarily fast, and the memory
system need support only one or two outstanding misses.
The increase in processor real-estate to support
multithreading is modest, given the size of the cache
and floating-point units. A surprising observation is
that miss ratios may be lower with multithreading than
with timesharing under a steady-state load. This occurs
because switch-on-miss multithreading introduces unfair
thread scheduling, giving more CPU cycles to processes
with better cache behavior.",
acknowledgement = ack-nhfb,
annote = "Supported in part by the National Science Foundation.
Supported in part by Motorola Inc. and the TRW
Foundation",
keywords = "Microprocessors; Multiprogramming (Electronic
computers)",
}
@Article{Culler:1992:AMMb,
author = "David E. Culler and Michial Gunter and James C. Lee",
title = "Analysis of multithreaded microprocessors under
multiprogramming",
journal = j-COMP-ARCH-NEWS,
volume = "20",
number = "2",
pages = "438--438",
month = may,
year = "1992",
CODEN = "CANED2",
ISSN = "0163-5964",
bibdate = "Fri May 12 09:40:43 MDT 2006",
bibsource = "http://portal.acm.org/",
acknowledgement = ack-nhfb,
}
@Article{Day:1992:INC,
author = "Michael Day",
title = "Implementing {NLM-Based} Client\slash Server
Architectures",
journal = j-DDJ,
volume = "17",
number = "10",
pages = "78--84",
month = oct,
year = "1992",
CODEN = "DDJOEB",
ISSN = "1044-789X",
bibdate = "Tue Sep 03 09:15:34 1996",
bibsource = "http://www.ddj.com/index/author/index.htm, UnCover
database",
abstract = "NetWare NLMs take full advantage of the multitasking,
multithreaded architecture of the operating system.
Michael presents a distributed file manager made up of
two modules: ENGINE.NLM, an NLM running on a NetWare
3.x server, and CLIENT.EXE, a DOS-based front end
running on the client.",
acknowledgement = ack-nhfb,
classification = "C6150N (Distributed systems)",
keywords = "32-Bit protected-mode programs; Client/server
architectures; Distributed file manager; DOS-based
front end; Multitasking; Multithreaded architecture;
NetWare 3.x operating system; Netware Loadable Modules;
Networked system",
thesaurus = "Distributed processing; File servers",
}
@MastersThesis{Donalson:1992:DDP,
author = "Douglas Dale Donalson",
title = "{DISC}: a dynamic performance evaluation of a
multi-thread architecture",
type = "Thesis ({M.S.})",
school = "Electrical and Computer Engineering Department,
University of California, Santa Barbara",
address = "Santa Barbara, CA, USA",
pages = "ix + 88",
year = "1992",
LCCN = "TK174.C2 S25 DOND 1992",
bibdate = "Sat Apr 20 11:18:53 2002",
acknowledgement = ack-nhfb,
}
@TechReport{Felten:1992:IPM,
author = "Edward W. Felten and Dylan James McNamee",
title = "Improving the performance of message-passing
applications by multithreading",
type = "Technical report",
number = "92-09-07",
institution = "University of Washington, Dept. of Computer Science
and Engineering",
address = "Seattle, WA, USA",
pages = "6",
year = "1992",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
abstract = "Achieving maximum performance in message-passing
programs requires that calculation and communication be
overlapped. However, the program transformations
required to achieve this overlap are error-prone and
add significant complexity to the application program.
We argue that calculation/communication overlap can be
achieved easily and consistently by executing multiple
threads of control on each processor, and that this
approach is practical on message-passing architectures
without any special hardware support. We present timing
data for a typical message-passing application, to
demonstrate the advantages of our scheme.",
acknowledgement = ack-nhfb,
annote = "Supported in part by the National Science Foundation.
Supported in part by the Washington Technology Center,
Digital Equipment Corporation, Apple Computer Company,
a Mercury Seven Fellowship and an AT\&T Ph.D.
Scholarship",
keywords = "Operating systems",
}
@TechReport{Gokhale:1992:ICI,
author = "Maya B. Gokhale and William W. Carlson",
title = "An introduction to compilation issues for parallel
machines",
type = "Technical report",
number = "SRC-TR-92-062",
institution = inst-SRC-IDA,
address = inst-SRC-IDA:adr,
pages = "38",
day = "8",
month = sep,
year = "1992",
bibdate = "Fri Aug 30 08:01:51 MDT 1996",
abstract = "The exploitation of today's high-performance computer
systems requires the effective use of parallelism in
many forms and at numerous levels. This survey article
discusses program analysis and restructuring techniques
that target parallel architectures. We first describe
various categories of architectures that are oriented
toward parallel computation models: vector
architectures, shared memory multiprocessors, massively
parallel machines, message-passing architectures,
VLIWs, and multithreaded architectures. We then
describe a variety of optimization techniques that can
be applied to sequential programs to effectively
utilize the vector and parallel processing units. After
an overview of basic dependence analysis, we present
restructuring transformations on DO loops targeted both
to vectorization and to concurrent execution,
interprocedural and pointer analysis, task scheduling,
instruction level parallelization, and
compiler-assisted data placement. We conclude that
although tremendous advances have been made in
dependence theory and in the development of a `toolkit'
of transformations, parallel systems are used most
effectively when the programmer interacts in the
optimization process.",
acknowledgement = ack-nhfb,
keywords = "Compilers (Computer programs); Computer architecture;
Parallel processing (Electronic computers)",
}
@TechReport{Haines:1992:SMC,
author = "Matt Haines and Anton Pedro Willem Bohm",
title = "Software multithreading in a conventional distributed
memory multiprocessor",
type = "Technical report",
number = "CS-92-126",
institution = "Colorado State University, Dept. of Computer Science",
address = "Fort Collins, CO, USA",
pages = "25",
day = "25",
month = sep,
year = "1992",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
abstract = "Today's most powerful computers are distributed memory
multiprocessors. Although they possess massive amounts
of available resources, it is often difficult to
exploit these resources efficiently. Compilers that can
cope with the complexities of these systems are being
constructed, but their scope of effect is often limited
due to the complexity of the analysis and the lack of
runtime information. Novel architectures that can
better tolerate latencies are under construction, but
their effectiveness is unproven, and they do little to
ease the burden on current commercial machines.
Therefore we are designing a runtime system, called
VISA, that attempts to avoid and tolerate latencies on
conventional distributed memory multiprocessors, as
well as provide a single addressing space to ease the
burden of programming or code generation. The goal of
our runtime system is to serve as a tool for studying
the effects of latency avoidance and latency tolerance
on programs running on these conventional
architectures. In this paper we describe the design and
implementation of multithreading in the VISA runtime
system for the purpose of latency tolerance. In
particular, we examine machine-independent designs for
thread representation, thread switching, and
split-phased transactions. We quantify the cost of
multithreading for our environment, present a test
program for which multithreading degrades performance,
and present a program for which multithreading enhances
performance.",
acknowledgement = ack-nhfb,
annote = "Supported in part by a grant from Sandia National
Laboratories",
keywords = "Multiprocessors",
}
@Article{Halladay:1992:PUM,
author = "Steve Halladay and Michael Wiebel",
title = "A Practical Use For Multiple Threads",
journal = j-CUJ,
volume = "10",
number = "1",
pages = "73--??",
month = jan,
year = "1992",
ISSN = "0898-9788",
bibdate = "Fri Aug 30 16:52:23 MDT 1996",
bibsource = "http://www.cuj.com/cbklist.htm",
acknowledgement = ack-nhfb,
}
@Article{Hirata:1992:EPA,
author = "Hiroaki Hirata and Kozo Kimura and Satoshi Nagamine
and Yoshiyuki Mochizuki and Akio Nishimura and
Yoshimori Nakase and Teiji Nishizawa",
title = "An elementary processor architecture with simultaneous
instruction issuing from multiple threads",
journal = j-COMP-ARCH-NEWS,
volume = "20",
number = "2",
pages = "136--145",
month = may,
year = "1992",
CODEN = "CANED2",
ISSN = "0163-5964",
bibdate = "Fri May 12 09:40:43 MDT 2006",
bibsource = "http://portal.acm.org/",
acknowledgement = ack-nhfb,
}
@InProceedings{Hironaka:1992:BVP,
author = "T. Hironaka and T. Hashimoto and K. Okazaki and K.
Murakami",
title = "Benchmarking a Vector-Processor Prototype Based on
Multithreaded Streaming\slash {FIFO} Vector ({MSFV})
Architecture",
crossref = "ACM:1992:CPI",
pages = "272--281",
year = "1992",
bibdate = "Mon Aug 26 10:38:41 MDT 1996",
acknowledgement = ack-nhfb,
}
@Article{Hum:1992:HSM,
author = "Herbert H. J. Hum and Guang R. Gao",
title = "A high-speed memory organization for hybrid
dataflow\slash {von Neumann} computing",
journal = j-FUT-GEN-COMP-SYS,
volume = "8",
number = "4",
pages = "287--301",
month = sep,
year = "1992",
CODEN = "FGSEVI",
ISSN = "0167-739X",
bibdate = "Fri Jul 15 09:06:02 MDT 2005",
bibsource = "ftp://ftp.ira.uka.de/bibliography/Os/threads.bib;
http://www.sciencedirect.com/science/journal/0167739X",
abstract = "The paper proposes a novel organization of high-speed
memories, known as the register-cache, for a
multi-threaded architecture. Viewed from the execution
unit, its contents are addressable as ordinary CPU
registers using relatively short addresses. From the
main memory perspective, it is content addressable. In
this register-cache organization, a number of registers
are grouped into a block of registers where a register
in a block is accessed using an offset from the address
of the block, an offset value which is embedded in the
compiler generated code. The binding of register block
locations to register-cache line addresses is
adaptively performed at runtime, thus resulting in a
dynamically allocated register file. In this execution
model, a program is compiled into a number of
instruction threads called super-actors. A super-actor
becomes ready for execution only when its input data
are physically residing in the register-cache and space
is reserved in the register-cache to store its
result.",
acknowledgement = ack-nhfb,
}
@Article{Jagannathan:1992:CSC,
author = "Suresh Jagannathan and Jim Philbin",
title = "A customizable substrate for concurrent languages",
journal = j-SIGPLAN,
volume = "27",
number = "7",
pages = "55--67",
month = jul,
year = "1992",
CODEN = "SINODQ",
ISBN = "0-89791-475-9",
ISBN-13 = "978-0-89791-475-8",
ISSN = "0362-1340",
LCCN = "QA76.7.S53 1992",
bibdate = "Sun Dec 14 09:16:22 MST 2003",
bibsource = "Compendex database;
http://www.acm.org/pubs/contents/proceedings/pldi/143095/index.html",
URL = "http://www.acm.org:80/pubs/citations/proceedings/pldi/143095/p55-jagannathan/",
abstract = "We describe an approach to implementing a wide-range
of concurrency paradigms in high-level (symbolic)
programming languages. The focus of our discussion is
STING, a dialect of Scheme, that supports lightweight
threads of control and virtual processors as
first-class objects. Given the significant degree to
which the behavior of these objects may be customized,
we can easily express a variety of concurrency
paradigms and linguistic structures within a common
framework without loss of efficiency. Unlike parallel
systems that rely on operating system services for
managing concurrency, STING implements concurrency
management entirely in terms of Scheme objects and
procedures. It, therefore, permits users to optimize
the runtime behavior of their applications without
requiring knowledge of the underlying runtime system.
This paper concentrates on (a) the implications of the
design for building asynchronous concurrency
structures, (b) organizing large-scale concurrent
computations, and (c) implementing robust programming
environments for symbolic computing.",
acknowledgement = ack-nhfb,
affiliation = "NEC Research Inst",
affiliationaddress = "Princeton, NJ, USA",
annote = "Published as part of the Proceedings of PLDI'92.",
classification = "723.1",
conference = "Proceedings of the ACM SIGPLAN '92 Conference on
Programming Language Design and Implementation",
conferenceyear = "1992",
journalabr = "SIGPLAN Not",
keywords = "algorithms; design; languages; performance; Computer
programming languages; Concurrency paradigms;
Concurrency structures; Parallel processing systems;
Robust programming; Symbolic programming languages",
meetingaddress = "San Francisco, CA, USA",
meetingdate = "Jun 17--19 1992",
meetingdate2 = "06/17--19/92",
sponsor = "ACM",
subject = "{\bf D.3.2} Software, PROGRAMMING LANGUAGES, Language
Classifications, Concurrent, distributed, and parallel
languages. {\bf D.3.2} Software, PROGRAMMING LANGUAGES,
Language Classifications, SCHEME. {\bf D.1.3} Software,
PROGRAMMING TECHNIQUES, Concurrent Programming,
Parallel programming.",
}
@Article{Koopman:1992:CBC,
author = "Philip J. {Koopman, Jr.} and Peter Lee and Daniel P.
Siewiorek",
title = "Cache Behavior of Combinator Graph Reduction",
journal = j-TOPLAS,
volume = "14",
number = "2",
pages = "265--297",
month = apr,
year = "1992",
CODEN = "ATPSDT",
ISSN = "0164-0925",
bibdate = "Sat Jan 06 14:28:31 1996",
bibsource = "Compiler/Heaps.bib, Compiler/garbage.collection.bib,
Theory/CLiCS.bib, Compiler/Compiler.Lins.bib,
Compiler/TOPLAS.bib",
note = "Also see~\cite{Koopman:1992:CBC}.",
URL = "http://www.acm.org/pubs/toc/Abstracts/0164-0925/128867.html",
abstract = "The results of cache-simulation experiments with an
abstract machine for reducing combinator graphs are
presented. The abstract machine, called TIGRE, exhibits
reduction rates that, for similar kinds of combinator
graphs on similar kinds of hardware, compare favorably
with previously reported techniques. Furthermore, TIGRE
maps easily and efficiently onto standard computer
architectures, particularly those that allow a
restricted form of self-modifying code. This provides
some indication that the conventional ``stored
program'' organization of computer systems is not
necessarily an inappropriate one for functional
programming language implementations.\par
This is not to say, however, that present day computer
systems are well equipped to reduce combinator graphs.
In particular, the behavior of the cache memory has a
significant effect on performance. In order to study
and quantify this effect, trace-driven cache
simulations of a TIGRE graph reducer running on a
reduced instruction-set computer are conducted. The
results of these simulations are presented with the
following hardware-cache parameters varied: cache size,
block size, associativity, memory update policy, and
write-allocation policy. To begin with, the cache
organization of a commercially available system is used
and then the performance sensitivity with respect to
variations of each parameter are measured. From the
results of the simulation study, a conclusion is made
that combinator-graph reduction using TIGRE runs most
efficiently when using a cache memory with an
allocate-on-write-miss strategy, moderately large block
size (preferably with subblock placement), and
copy-back memory updates.",
acknowledgement = ack-nhfb,
keywords = "algorithms; languages; performance; theory;
threading",
sjb = "In amongst all the cache stuff is a description of how
subroutine threading can form the basis for a
relatively efficient method of performing combinator
graph reduction.",
subject = "{\bf B.3.2}: Hardware, MEMORY STRUCTURES, Design
Styles, Cache memories. {\bf B.3.3}: Hardware, MEMORY
STRUCTURES, Performance Analysis and Design Aids,
Simulation. {\bf D.1.1}: Software, PROGRAMMING
TECHNIQUES, Applicative (Functional) Programming. {\bf
D.3.2}: Software, PROGRAMMING LANGUAGES, Language
Classifications, Applicative languages. {\bf D.3.4}:
Software, PROGRAMMING LANGUAGES, Processors, Compilers.
{\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
Processors, Interpreters. {\bf G.2.1}: Mathematics of
Computing, DISCRETE MATHEMATICS, Combinatorics.",
}
@Article{Nikhil:1992:MMP,
author = "R. S. Nikhil and G. M. Papadopoulos and Arvind",
title = "{T}: a multithreaded massively parallel architecture",
journal = j-COMP-ARCH-NEWS,
volume = "20",
number = "2",
pages = "156--167",
month = may,
year = "1992",
CODEN = "CANED2",
ISSN = "0163-5964",
bibdate = "Fri May 12 09:40:43 MDT 2006",
bibsource = "http://portal.acm.org/",
acknowledgement = ack-nhfb,
}
@Article{Ogata:1992:DIH,
author = "Kazuhiro Ogata and Satoshi Kurihara and Mikio Inari
and Norihisa Doi",
title = "The design and implementation of {HoME}",
journal = j-SIGPLAN,
volume = "27",
number = "7",
pages = "44--54",
month = jul,
year = "1992",
CODEN = "SINODQ",
ISBN = "0-89791-475-9",
ISBN-13 = "978-0-89791-475-8",
ISSN = "0362-1340",
LCCN = "QA76.7.S53 1992",
bibdate = "Sun Dec 14 09:16:22 MST 2003",
bibsource = "Compendex database;
http://www.acm.org/pubs/contents/proceedings/pldi/143095/index.html",
URL = "http://www.acm.org:80/pubs/citations/proceedings/pldi/143095/p44-ogata/",
abstract = "HoME is a version of Smalltalk which can be
efficiently executed on a multiprocessor and can be
executed in parallel by combining a Smalltalk process
with a Mach thread and executing the process on the
thread. HoME is nearly the same as ordinary Smalltalk
except that multiple processes may execute in parallel.
Thus, almost all applications running on ordinary
Smalltalk can be executed on HoME without changes in
their code. HoME was designed and implemented based on
the following fundamental policies: (1) theoretically,
an infinite number of processes can become active; (2)
the moment a process is scheduled, it becomes active;
(3) no process switching occurs; (4) HoME is equivalent
to ordinary Smalltalk except for the previous three
policies. The performance of the current implementation
of HoME running on OMRON LUNA-88K, which had four
processors, was measured by benchmarks which execute in
parallel with multiple processes. In all benchmarks,
the results showed that HoME's performance is much
better than HPS on the same workstation.",
acknowledgement = ack-nhfb,
affiliation = "Keio Univ",
affiliationaddress = "Yokohama, Jpn",
annote = "Published as part of the Proceedings of PLDI'92.",
classification = "723.1",
conference = "Proceedings of the ACM SIGPLAN '92 Conference on
Programming Language Design and Implementation",
conferenceyear = "1992",
journalabr = "SIGPLAN Not",
keywords = "design; languages; measurement; performance; Computer
programming; HPS on Mach environment; Object oriented
programming; Smalltalk",
meetingaddress = "San Francisco, CA, USA",
meetingdate = "Jun 17--19 1992",
meetingdate2 = "06/17--19/92",
sponsor = "ACM",
subject = "{\bf D.1.3} Software, PROGRAMMING TECHNIQUES,
Concurrent Programming. {\bf D.3.4} Software,
PROGRAMMING LANGUAGES, Processors. {\bf D.3.2}
Software, PROGRAMMING LANGUAGES, Language
Classifications, Smalltalk. {\bf D.2.8} Software,
SOFTWARE ENGINEERING, Metrics, Performance measures.",
}
@Article{Sato:1992:TBP,
author = "Mitsuhisa Sato and Yuetsu Kodama and Shuichi Sakai and
Yoshinori Yamaguchi and Yasuhito Koumura",
title = "Thread-based programming for the {EM-4} hybrid
dataflow machine",
journal = j-COMP-ARCH-NEWS,
volume = "20",
number = "2",
pages = "146--155",
month = may,
year = "1992",
CODEN = "CANED2",
ISSN = "0163-5964",
bibdate = "Fri May 12 09:40:43 MDT 2006",
bibsource = "http://portal.acm.org/",
acknowledgement = ack-nhfb,
}
@Article{Schwan:1992:MRT,
author = "Karsten Schwan and Hongyi Zhou",
title = "Multiprocessor real-time threads",
journal = j-OPER-SYS-REV,
volume = "26",
number = "1",
pages = "54--65",
month = jan,
year = "1992",
CODEN = "OSRED8",
ISSN = "0163-5980",
bibdate = "Sat Aug 26 08:55:36 MDT 2006",
bibsource = "http://portal.acm.org/",
acknowledgement = ack-nhfb,
}
@Article{Singh:1992:DRS,
author = "Gurjot Singh and Moses Joseph and Dave Barnett",
title = "Debugging real-time systems",
journal = j-DDJ,
volume = "17",
number = "9",
pages = "70, 72, 74, 76--77, 116--117",
month = sep,
year = "1992",
CODEN = "DDJOEB",
ISSN = "1044-789X",
bibdate = "Tue Sep 10 10:06:23 MDT 1996",
bibsource = "http://www.ddj.com/index/author/index.htm, UnCover
database",
abstract = "Modular and incremental development and debugging lead
to reliable real-time systems that perform the
functions they're designed to. Our authors use this
approach when building a simulated data-acquisition
system.",
acknowledgement = ack-nhfb,
affiliation = "Lynx Real-Time Syst., Los Gatos, CA, USA",
classification = "C6150G (Diagnostic, testing, debugging and
evaluating systems)",
keywords = "Correctness; Debugging cycle; Ldb; POSIX; Real-time
systems; User-friendly multithreaded debugger;
Worst-case performance",
thesaurus = "C listings; Program debugging; Real-time systems",
}
@PhdThesis{Young-Myers:1992:DTC,
author = "Helene Wen-Hsin Young-Myers",
title = "Database transitive closure: a performance study of
multithreaded algorithms",
type = "Thesis (Ph.D.)",
school = "College of Business and Management, University of
Maryland at College Park",
address = "College Park, MD, USA",
pages = "ix + 198",
year = "1992",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
acknowledgement = ack-nhfb,
}
@Article{Bic:1993:EUI,
author = "Lubomir Bic and Mayez Al-Mouhamed",
title = "The {EM-4} under Implicit Parallelism",
journal = j-J-PAR-DIST-COMP,
volume = "19",
number = "3",
pages = "255--261",
month = nov,
year = "1993",
CODEN = "JPDCER",
DOI = "http://dx.doi.org/10.1006/jpdc.1993.1109",
ISSN = "0743-7315",
bibdate = "Thu Mar 9 09:18:53 MST 2000",
bibsource = "http://www.idealibrary.com/servlet/useragent?func=showAllIssues&curIssueID=jpdc",
URL = "http://www.idealibrary.com/links/doi/10.1006/jpdc.1993.1109/production;
http://www.idealibrary.com/links/doi/10.1006/jpdc.1993.1109/production/pdf",
acknowledgement = ack-nhfb,
classification = "C5220P (Parallel architecture); C6110P (Parallel
programming)",
corpsource = "Dept. of Inf. and Comput. Sci., California Univ.,
Irvine, CA, USA",
keywords = "analysis; benchmark programs; data distribution;
data-dependency; Data-Distributed Execution; DDE; EM-4;
implicit parallelism; interprocessor communication;
iteration-level parallelism; loops; multithreading;
parallel architectures; parallel programming;
parallelization",
treatment = "P Practical; T Theoretical or Mathematical",
}
@PhdThesis{Boothe:1993:EMC,
author = "Bob Boothe",
title = "Evaluation of multithreading and caching in large
shared memory parallel computers",
type = "Thesis (Ph.D.)",
school = "University of California, Berkeley, Computer Science
Division",
address = "Berkeley, CA, USA",
pages = "ix + 169",
month = jul,
year = "1993",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
note = "Also available as Report UCB/CSD 93/766.",
acknowledgement = ack-nhfb,
annote = "Supported in part by the Air Force Office of
Scientific Research (AFOSR/JSEP), by the NSF, and by an
NSF Infrastructure Grant.",
keywords = "Multiprocessors",
}
@MastersThesis{Chong:1993:EMC,
author = "Yong-Kim Chong",
title = "Effects of memory consistency models on multithreaded
multiprocessor performance",
type = "Thesis (M.S.)",
school = "University of Southern California",
address = "Los Angeles, CA, USA",
pages = "viii + 89",
year = "1993",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
acknowledgement = ack-nhfb,
}
@Article{Culler:1993:TCC,
author = "David E. Culler and Seth Copen Goldstein and Klaus
Erik Schauser and Thorsten {Von Eicken}",
title = "{TAM} -- {A} Compiler Controlled {Threaded Abstract
Machine}",
journal = j-J-PAR-DIST-COMP,
volume = "18",
number = "3",
pages = "347--370",
month = jul,
year = "1993",
CODEN = "JPDCER",
DOI = "http://dx.doi.org/10.1006/jpdc.1993.1070",
ISSN = "0743-7315",
bibdate = "Thu Mar 9 09:18:52 MST 2000",
bibsource = "http://www.idealibrary.com/servlet/useragent?func=showAllIssues&curIssueID=jpdc",
URL = "http://www.idealibrary.com/links/doi/10.1006/jpdc.1993.1070/production;
http://www.idealibrary.com/links/doi/10.1006/jpdc.1993.1070/production/pdf",
acknowledgement = ack-nhfb,
classification = "C5220P (Parallel architecture)",
corpsource = "Div. of Comput. Sci., California Univ., Berkeley, CA,
USA",
keywords = "dataflow execution models; parallel architectures;
parallel programming; parallel threads; self-scheduled
machine language; Threaded Abstract Machine",
treatment = "P Practical",
}
@Article{Dillon:1993:VEM,
author = "Laura K. Dillon",
title = "A visual execution model for {Ada} tasking",
journal = j-TOSEM,
volume = "2",
number = "4",
pages = "311--345",
month = oct,
year = "1993",
CODEN = "ATSMER",
ISSN = "1049-331X",
bibdate = "Fri Apr 20 08:21:35 MDT 2001",
bibsource = "http://www.acm.org/pubs/toc/",
URL = "http://www.acm.org/pubs/articles/journals/tosem/1993-2-4/p311-dillon/p311-dillon.pdf;
http://www.acm.org/pubs/citations/journals/tosem/1993-2-4/p311-dillon/",
abstract = "A visual execution model for Ada tasking can help
programmers attain a deeper understanding of the
tasking semantics. It can illustrate subtleties in
semantic definitions that are not apparent in natural
language design. We describe a contour model of Ada
tasking that depicts asynchronous tasks (threads of
control), relationships between the environments in
which tasks execute, and the manner in which tasks
interact. The use of this high-level execution model
makes it possible to see what happens during execution
of a program. The paper provides an introduction to the
contour model of Ada tasking and demonstrates its
use.",
acknowledgement = ack-nhfb,
generalterms = "Algorithms; Design; Languages",
keywords = "contour model; visual execution model",
subject = "Software --- Software Engineering --- Design Tools and
Techniques (D.2.2); Software --- Software Engineering
--- Programming Environments (D.2.6); Software ---
Programming Languages --- Formal Definitions and Theory
(D.3.1): {\bf Semantics}; Software --- Programming
Languages --- Language Classifications (D.3.2): {\bf
Ada}; Software --- Programming Languages --- Language
Constructs and Features (D.3.3): {\bf Concurrent
programming structures}; Software --- Programming
Techniques --- Concurrent Programming (D.1.3); Theory
of Computation --- Logics and Meanings of Programs ---
Semantics of Programming Languages (F.3.2): {\bf
Operational semantics}; Software --- Programming
Languages --- Processors (D.3.4): {\bf Interpreters}",
}
@InProceedings{Doligez:1993:CGG,
author = "Damien Doligez and Xavier Leroy",
title = "A concurrent, generational garbage collector for a
multithreaded implementation of {ML}",
crossref = "ACM:1993:CRT",
pages = "113--123",
year = "1993",
bibdate = "Mon May 3 12:45:53 MDT 1999",
bibsource = "http://www.acm.org/pubs/toc/",
URL = "http://www.acm.org:80/pubs/citations/proceedings/plan/158511/p113-doligez/",
abstract = "This paper presents the design and implementation of a
``quasi real-time'' garbage collector for Concurrent
Caml Light, an implementation of ML with threads. This
two-generation system combines a fast, asynchronous
copying collector on the young generation with a
non-disruptive concurrent marking collector on the old
generation. This design crucially relies on the ML
compile-time distinction between mutable and immutable
objects.",
acknowledgement = ack-nhfb,
keywords = "algorithms; design; experimentation; languages;
performance",
subject = "{\bf D.3.3} Software, PROGRAMMING LANGUAGES, Language
Constructs and Features, Concurrent programming
structures. {\bf D.3.4} Software, PROGRAMMING
LANGUAGES, Processors, Compilers. {\bf D.3.2} Software,
PROGRAMMING LANGUAGES, Language Classifications, LML.",
}
@Article{Eager:1993:CER,
author = "Derek L. Eager and John Jahorjan",
title = "Chores: Enhanced Run-Time Support for Shared-Memory
Parallel Computing",
journal = j-TOCS,
volume = "11",
number = "1",
pages = "1--32",
month = feb,
year = "1993",
CODEN = "ACSYEC",
ISSN = "0734-2071",
bibdate = "Wed Jan 13 18:36:53 MST 1999",
bibsource = "http://www.acm.org/pubs/contents/journals/tocs/",
URL = "http://www.acm.org:80/pubs/citations/journals/tocs/1993-11-1/p1-eager/",
abstract = "Parallel computing is increasingly important in the
solution of large-scale numerical problems. The
difficulty of efficiently hand-coding parallelism, and
the limitations of parallelizing compilers, have
nonetheless restricted its use by scientific
programmers. In this paper we propose a new paradigm,
{\em chores}, for the run-time support of parallel
computing on shared-memory multiprocessors. We consider
specifically uniform memory access shared-memory
environments, although the chore paradigm should also
be appropriate for use within the clusters of a
large-scale nonuniform memory access machine. We argue
that chore systems attain both the high efficiency of
compiler approaches for the common case of data
parallelism, and the flexibility and performance of
user-level thread approaches for functional
parallelism. These benefits are achieved within a
single, simple conceptual model that almost entirely
relieves the programmer and compiler from concerns of
granularity, scheduling, and enforcement of
synchronization constraints. Measurements of a
prototype implementation demonstrate that the chore
model can be supported more efficiently than can
traditional approaches to either data or functional
parallelism alone.",
acknowledgement = ack-nhfb,
keywords = "design; measurement; performance",
subject = "{\bf D.4.1} Software, OPERATING SYSTEMS, Process
Management. {\bf D.4.9} Software, OPERATING SYSTEMS,
Systems Programs and Utilities. {\bf D.4.7} Software,
OPERATING SYSTEMS, Organization and Design, Distributed
systems. {\bf C.3} Computer Systems Organization,
SPECIAL-PURPOSE AND APPLICATION-BASED SYSTEMS. {\bf
C.4} Computer Systems Organization, PERFORMANCE OF
SYSTEMS.",
}
@MastersThesis{Estep:1993:LMM,
author = "James L. Estep",
title = "Lightweight multithreaded multimedia conference
server",
type = "Thesis (M.S.)",
school = "West Virginia University",
address = "Morgantown, WV, USA",
pages = "vi + 57",
year = "1993",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
acknowledgement = ack-nhfb,
keywords = "Electronic data processing -- Distributed processing;
Multimedia systems",
}
@PhdThesis{Fan:1993:LMC,
author = "Xiaoming Fan",
title = "Latency-directed multithreaded computation and its
architectural support",
type = "Thesis (Ph.D.)",
school = "Universit{\"a}t Hamburg",
address = "Aachen, Germany",
pages = "xi + 174 + 22 + 11",
year = "1993",
ISBN = "3-8265-0021-0",
ISBN-13 = "978-3-8265-0021-3",
ISSN = "0945-0807",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
note = "Summary in German.",
series = "Berichte aus der Informatik",
acknowledgement = ack-nhfb,
keywords = "Computer architecture; Parallel processing (Electronic
computers)",
}
@Article{Gao:1993:DMA,
author = "Guang Gao and Jean-Luc Gaudiot and Lubomir Bic",
title = "Dataflow and Multithreaded Architectures: {Guest
Editors}' Introduction",
journal = j-J-PAR-DIST-COMP,
volume = "18",
number = "3",
pages = "271--??",
month = jul,
year = "1993",
CODEN = "JPDCER",
ISSN = "0743-7315",
bibdate = "Sat Apr 12 16:10:59 MDT 1997",
acknowledgement = ack-nhfb,
xxnote = "Issue missing from UofUtah Marriott Library??",
}
@Article{Gao:1993:EHD,
author = "G. R. Gao",
title = "An Efficient Hybrid Dataflow Architecture Model",
journal = j-J-PAR-DIST-COMP,
volume = "19",
number = "4",
pages = "293--307",
month = dec,
year = "1993",
CODEN = "JPDCER",
DOI = "http://dx.doi.org/10.1006/jpdc.1993.1113",
ISSN = "0743-7315",
bibdate = "Thu Mar 9 09:18:53 MST 2000",
bibsource = "http://www.idealibrary.com/servlet/useragent?func=showAllIssues&curIssueID=jpdc",
URL = "http://www.idealibrary.com/links/doi/10.1006/jpdc.1993.1113/production;
http://www.idealibrary.com/links/doi/10.1006/jpdc.1993.1113/production/pdf",
acknowledgement = ack-nhfb,
classification = "C5220P (Parallel architecture); C6110P (Parallel
programming)C6150N (Distributed systems); C6150C
(Compilers, interpreters and other processors)",
corpsource = "Adv. Comput. Archit. and Program Structures Group,
Montreal Univ., Que., Canada",
keywords = "architecture technique; compiling paradigm; concurrent
operation; conventional; data-driven instruction;
data-driven scheduling scheme; dataflow computers;
dataflow software pipelining; efficient hybrid dataflow
architecture model; execution; fast pipelined
instruction; fine-grain parallelism; hybrid; limited
balancing; loop parallelism; multiple instruction;
parallel architectures; parallel programming; pipeline;
processing; program compilers; scheduling; simple
greedy runtime; space efficiency; threads",
treatment = "P Practical",
}
@Book{Gao:1993:SID,
author = "Guang R. Gao and Jean-Luc Gaudiot and Lubomir Bic",
title = "Special issue on dataflow and multithreaded
architectures",
publisher = pub-AP,
address = pub-AP:adr,
pages = "271--389",
year = "1993",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
series = "Journal of parallel and distributed computing; v. 18,
no. 3",
acknowledgement = ack-nhfb,
}
@InProceedings{Giering:1993:IAF,
author = "E. W. Giering and F. Mueller and T. P. Baker",
title = "Implementing {Ada 9X} Features using {POSIX} Threads:
Design Issues",
crossref = "ACM:1993:TCS",
pages = "214--228",
year = "1993",
bibdate = "Sat Jul 05 17:12:34 1997",
acknowledgement = ack-nhfb,
}
@Article{Hauser:1993:UTI,
author = "Carl Hauser and Christian Jacobi and Marvin Theimer
and Brent Welch and Mark Weiser",
title = "Using threads in interactive systems: a case study",
journal = j-OPER-SYS-REV,
volume = "27",
number = "5",
pages = "94--105",
month = dec,
year = "1993",
CODEN = "OSRED8",
ISSN = "0163-5980",
bibdate = "Sat Aug 26 08:55:54 MDT 2006",
bibsource = "http://portal.acm.org/",
acknowledgement = ack-nhfb,
}
@Article{Hayden:1993:BIC,
author = "Charles Hayden",
title = "A brief introduction to {Concurrent Pascal}",
journal = j-SIGPLAN,
volume = "28",
number = "3",
pages = "353--354",
month = mar,
year = "1993",
CODEN = "SINODQ",
ISSN = "0362-1340",
bibdate = "Sun Dec 14 09:16:34 MST 2003",
bibsource = "http://www.acm.org/pubs/toc/; http://portal.acm.org/;
http://portal.acm.org/",
URL = "http://www.acm.org:80/pubs/citations/proceedings/plan/154766/p353-hayden/",
abstract = "Concurrent Pascal is designed for writing concurrent
programs such as operating systems and real-time
monitoring systems on shared-memory computers. A
separate language, Sequential Pascal, is used as the
language for applications programs run by operating
systems written in Concurrent Pascal. Both languages
are extensions of Wirth's Pascal, and share a common
threaded code interpreter. The article describes how
Concurrent Pascal differs from Wirth's Pascal.",
acknowledgement = ack-nhfb,
affiliation = "AT and T Bell Labs., Middletown, NJ, USA",
classification = "C6110P (Parallel programming); C6140D (High level
languages)",
confdate = "20-23 April 1993",
conflocation = "Cambridge, MA, USA",
confname = "HOPL-II. The second ACM SIGPLAN conference on History
of programming languages, April 20--23, 1993,
Cambridge, MA",
confsponsor = "ACM",
keywords = "Concurrent Pascal; languages; Operating systems;
Real-time monitoring systems; Sequential Pascal;
Shared-memory computers; Threaded code interpreter",
subject = "{\bf D.3.2} Software, PROGRAMMING LANGUAGES, Language
Classifications, Concurrent Pascal. {\bf D.3.2}
Software, PROGRAMMING LANGUAGES, Language
Classifications, Pascal. {\bf D.3.3} Software,
PROGRAMMING LANGUAGES, Language Constructs and
Features, Procedures, functions, and subroutines.",
thesaurus = "Parallel languages; Pascal",
}
@Article{Hidaka:1993:MTC,
author = "Yasuo Hidaka and Hanpei Koike and Hidehiko Tanaka",
title = "Multiple threads in cyclic register windows",
journal = j-COMP-ARCH-NEWS,
volume = "21",
number = "2",
pages = "131--142",
month = may,
year = "1993",
CODEN = "CANED2",
ISSN = "0163-5964",
bibdate = "Fri May 12 09:40:46 MDT 2006",
bibsource = "http://portal.acm.org/",
acknowledgement = ack-nhfb,
}
@Article{Hsieh:1993:CME,
author = "Wilson C. Hsieh and Paul Wang and William E. Weihl",
title = "Computation migration: enhancing locality for
distributed-memory parallel systems",
journal = j-SIGPLAN,
volume = "28",
number = "7",
pages = "239--248",
month = jul,
year = "1993",
CODEN = "SINODQ",
ISSN = "0362-1340",
bibdate = "Sun Dec 14 09:16:39 MST 2003",
bibsource = "http://portal.acm.org/",
abstract = "Computation migration is a technique that is based on
compile-time program transformation, for accessing
remote data in a distributed-memory parallel system. In
contrast with RPC-style access, where the access is
performed remotely, and with data migration, where the
data is moved so that it is local, computation
migration moves put of the current thread to the
processor where the data resides. The access is
performed at the remote processor, and the migrated
thread portion continues to run on that same processor;
this makes subsequent accesses in the thread portion
local. The authors describe an implementation of
computation migration that consists of two parts: a
implementation that migrates single activation frames,
and a high-level language annotation that allows a
programmer to express when migration is desired. They
performed experiments using two applications; these
experiments demonstrate that computation migration is a
valuable alternative to RPC and data migration.",
acknowledgement = ack-nhfb,
affiliation = "Lab. of Comput. Sci., MIT, Cambridge, MA, USA",
classification = "C6110P (Parallel programming); C6120 (File
organisation); C6150C (Compilers, interpreters and
other processors)",
confdate = "19-22 May 1993",
conflocation = "San Diego, CA, USA",
confsponsor = "ACM",
keywords = "Compile-time program transformation; Computation
migration; Current thread; Distributed-memory parallel
system; High-level language annotation; Remote data;
Remote processor; Single activation frames",
thesaurus = "Distributed memory systems; Parallel programming;
Program compilers; Storage management",
}
@Article{Huelsbergen:1993:CCG,
author = "Lorenz Huelsbergen and James R. Larus",
title = "A concurrent copying garbage collector for languages
that distinguish (im)mutable data",
journal = j-SIGPLAN,
volume = "28",
number = "7",
pages = "73--82",
month = jul,
year = "1993",
CODEN = "SINODQ",
ISSN = "0362-1340",
bibdate = "Sun Dec 14 09:16:39 MST 2003",
bibsource = "http://portal.acm.org/",
acknowledgement = ack-nhfb,
affiliation = "Dept. of Comput. Sci., Wisconsin-Madison Univ., WI,
USA",
classification = "C6110P (Parallel programming); C6120 (File
organisation); C6150C (Compilers, interpreters and
other processors); C6150N (Distributed systems)",
confdate = "19-22 May 1993",
conflocation = "San Diego, CA, USA",
confsponsor = "ACM",
keywords = "Concurrent collection; Concurrent compacting garbage
collector; Garbage-collection pauses; Immutable data;
Minimal mutator/collector synchronization; Multiple
mutator threads; Mutable data; Pure functional
languages; Shared-memory parallel computers; Standard
ML compiler",
thesaurus = "Parallel programming; Program compilers; Shared memory
systems; Storage allocation; Storage management",
}
@InProceedings{Klarlund:1993:GT,
author = "Nils Klarlund and Michael I. Schwartzbach",
title = "Graph types",
crossref = "ACM:1993:CRT",
pages = "196--205",
year = "1993",
bibdate = "Mon May 3 12:45:53 MDT 1999",
bibsource = "http://www.acm.org/pubs/toc/",
URL = "http://www.acm.org:80/pubs/citations/proceedings/plan/158511/p196-klarlund/",
abstract = "Recursive data structures are abstractions of simple
records and pointers. They impose a shape invariant,
which is verified at compile-time and exploited to
automatically generate code for building, copying,
comparing, and traversing values without loss of
efficiency. However, such values are always tree
shaped, which is a major obstacle to practical use. We
propose a notion of graph types, which allow common
shapes, such as doubly-linked lists or threaded trees,
to be expressed concisely and efficiently. We define
regular languages of routing expressions to specify
relative addresses of extra pointers in a canonical
spanning tree. An efficient algorithm for computing
such addresses is developed. We employ a second-order
monadic logic to decide well-formedness of graph type
specifications. This logic can also be used for
automated reasoning about pointer structures.",
acknowledgement = ack-nhfb,
keywords = "algorithms; languages; theory",
subject = "{\bf F.3.3} Theory of Computation, LOGICS AND MEANINGS
OF PROGRAMS, Studies of Program Constructs, Type
structure. {\bf D.3.3} Software, PROGRAMMING LANGUAGES,
Language Constructs and Features, Data types and
structures. {\bf F.2.2} Theory of Computation, ANALYSIS
OF ALGORITHMS AND PROBLEM COMPLEXITY, Nonnumerical
Algorithms and Problems, Computations on discrete
structures. {\bf G.2.2} Mathematics of Computing,
DISCRETE MATHEMATICS, Graph Theory, Trees.",
}
@Article{Lee:1993:TW,
author = "David Lee",
title = "Threads for {Windows} 3",
journal = j-DDJ,
volume = "18",
number = "10",
pages = "84--??",
month = "Fall",
year = "1993",
CODEN = "DDJOEB",
ISSN = "1044-789X",
bibdate = "Tue Sep 03 09:15:44 1996",
bibsource = "http://www.ddj.com/index/author/index.htm, UnCover
database",
note = "Special Issue: Windows Sourcebook.",
abstract = "Unlike NT, Windows 3 doesn't provide direct support
for threads. With the techniques David illustrates
here, you can implement non-preemptive threads in
Windows 3.",
acknowledgement = ack-nhfb,
}
@Article{Lim:1993:WAS,
author = "Beng-Hong Lim and Anant Agarwal",
title = "Waiting Algorithms for Synchronization in Large-Scale
Multiprocessors",
journal = j-TOCS,
volume = "11",
number = "3",
pages = "253--294",
month = aug,
year = "1993",
CODEN = "ACSYEC",
ISSN = "0734-2071",
bibdate = "Wed Jan 13 18:36:53 MST 1999",
bibsource = "http://www.acm.org/pubs/contents/journals/tocs/",
URL = "http://www.acm.org:80/pubs/citations/journals/tocs/1993-11-3/p253-lim/",
abstract = "Through analysis and experiments, this paper
investigates two-phase waiting algorithms to minimize
the cost of waiting for synchronization in large-scale
multiprocessors. In a two-phase algorithm, a thread
first waits by polling a synchronization variable. If
the cost of polling reaches a limit {\em Lpoll\/} and
further waiting is necessary, the thread is blocked,
incurring an additional fixed cost, {\em B}. The choice
of {\em Lpoll\/} is a critical determinant of the
performance of two-phase algorithms. We focus on
methods for statically determining {\em Lpoll\/}
because the run-time overhead of dynamically
determining {\em Lpoll\/} can be comparable to the cost
of blocking in large-scale multiprocessor systems with
lightweight threads. Our experiments show that {\em
always-block\/} ({\em Lpoll\/} = 0) is a good waiting
algorithm with performance that is usually close to the
best of the algorithms compared. We show that even
better performance can be achieved with a static choice
of {\em Lpoll\/} based on knowledge of likely wait-time
distributions. Motivated by the observation that
different synchronization types exhibit different
wait-time distributions, we prove that a static choice
of {\em Lpoll\/} can yield close to optimal on-line
performance against an adversary that is restricted to
choosing wait times from a fixed family of probability
distributions. This result allows us to make an optimal
static choice of {\em Lpoll\/} based on synchronization
type. For exponentially distributed wait times, we
prove that setting {\em Lpoll\/} = 1n(e-1){\em B\/}
results in a waiting cost that is no more than {\em
e/(e-1)\/} times the cost of an optimal off-line
algorithm. For uniformly distributed wait times, we
prove that setting {\em L\/}poll=1/2(square root of 5
-1){\em B\/} results in a waiting cost that is no more
than (square root of 5 + 1)/2 (the golden ratio) times
the cost of an optimal off-line algorithm. Experimental
measurements of several parallel applications on the
Alewife multiprocessor simulator corroborate our
theoretical findings.",
acknowledgement = ack-nhfb,
keywords = "algorithms; experimentation; performance; theory",
subject = "{\bf D.4.1} Software, OPERATING SYSTEMS, Process
Management, Synchronization. {\bf D.4.1} Software,
OPERATING SYSTEMS, Process Management, Mutual
exclusion. {\bf C.4} Computer Systems Organization,
PERFORMANCE OF SYSTEMS. {\bf C.1.2} Computer Systems
Organization, PROCESSOR ARCHITECTURES, Multiple Data
Stream Architectures (Multiprocessors), Parallel
processors**. {\bf D.4.8} Software, OPERATING SYSTEMS,
Performance, Measurements. {\bf D.4.8} Software,
OPERATING SYSTEMS, Performance, Stochastic analysis.",
}
@Article{McCann:1993:DPA,
author = "Cathy McCann and Raj Vaswani and John Zahorjan",
title = "A Dynamic Processor Allocation Policy for
Multiprogrammed Shared-Memory Multiprocessors",
journal = j-TOCS,
volume = "11",
number = "2",
pages = "146--178",
month = may,
year = "1993",
CODEN = "ACSYEC",
ISSN = "0734-2071",
bibdate = "Wed Jan 13 18:36:53 MST 1999",
bibsource = "http://www.acm.org/pubs/contents/journals/tocs/",
URL = "http://www.acm.org:80/pubs/citations/journals/tocs/1993-11-2/p146-mccann/",
abstract = "We propose and evaluate empirically the performance of
a dynamic processor-scheduling policy for
multiprogrammed shared-memory multiprocessors. The
policy is dynamic in that it reallocates processors
from one parallel job to another based on the currently
realized parallelism of those jobs. The policy is
suitable for implementation in production systems in
that: ---It interacts well with very efficient
user-level thread packages, leaving to them many
low-level thread operations that do not require kernel
intervention. ---It deals with thread blocking due to
user I/O and page faults. ---It ensures fairness in
delivering resources to jobs. ---Its performance,
measured in terms of average job response time, is
superior to that of previously proposed schedulers,
including those implemented in existing systems. It
provides good performance to very short, sequential
(e.g., interactive) requests. We have evaluated our
scheduler and compared it to alternatives using a set
of prototype implementations running on a Sequent
Symmetry multiprocessor. Using a number of parallel
applications with distinct qualitative behaviors, we
have both evaluated the policies according to the major
criterion of overall performance and examined a number
of more general policy issues, including the advantage
of ``space sharing'' over ``time sharing'' the
processors of a multiprocessor, and the importance of
cooperation between the kernel and the application in
reallocating processors between jobs. We have also
compared the policies according to other criteia
important in real implementations, in particular,
fairness and respone time to short, sequential
requests. We conclude that a combination of performance
and implementation considerations makes a compelling
case for our dynamic scheduling policy.",
acknowledgement = ack-nhfb,
keywords = "design; measurement; performance",
subject = "{\bf D.4.1} Software, OPERATING SYSTEMS, Process
Management, Scheduling. {\bf D.4.1} Software, OPERATING
SYSTEMS, Process Management,
Multiprocessing/multiprogramming/multitasking. {\bf
C.1.2} Computer Systems Organization, PROCESSOR
ARCHITECTURES, Multiple Data Stream Architectures
(Multiprocessors).",
}
@Article{Morrisett:1993:PLP,
author = "J. Gregory Morrisett and Andrew P. Tolmach",
title = "Procs and locks: a portable multiprocessing platform
for {Standard ML} of {New Jersey}",
journal = j-SIGPLAN,
volume = "28",
number = "7",
pages = "198--207",
month = jul,
year = "1993",
CODEN = "SINODQ",
ISSN = "0362-1340",
bibdate = "Sun Dec 14 09:16:39 MST 2003",
bibsource = "http://portal.acm.org/",
abstract = "A portable platform has been built for running
Standard ML of New Jersey programs on multiprocessors.
It can be used to implement user-level thread packages
for multiprocessors within the ML language with
first-class continuations. The platform supports
experimentation with different thread scheduling
policies and synchronization constructs. It has been
used to construct a Modula-3 style thread package and a
version of Concurrent ML, and has been ported to three
different multiprocessors running variants of Unix. The
authors describe the platform's design, implementation,
and performance.",
acknowledgement = ack-nhfb,
affiliation = "Carnegie Mellon Univ., Pittsburg, PA, USA",
classification = "C6110P (Parallel programming); C6140D (High level
languages); C6150C (Compilers, interpreters and other
processors)",
confdate = "19-22 May 1993",
conflocation = "San Diego, CA, USA",
confsponsor = "ACM",
keywords = "Concurrent ML; First-class continuations; Functional
language; Modula-3 style thread package; New Jersey
programs; Portable multiprocessing platform; Portable
platform; Standard ML; Synchronization constructs;
Thread scheduling policies; User-level thread
packages",
thesaurus = "Multiprocessing systems; Parallel languages; Parallel
programming; Scheduling",
}
@Article{Najjar:1993:QAD,
author = "Walid A. Najjar and A. P. Wim Bohm and W. Marcus
Miller",
title = "A Quantitative Analysis of Dataflow Program Execution
--- Preliminaries to a Hybrid Design",
journal = j-J-PAR-DIST-COMP,
volume = "18",
number = "3",
pages = "314--326",
month = jul,
year = "1993",
CODEN = "JPDCER",
DOI = "http://dx.doi.org/10.1006/jpdc.1993.1067",
ISSN = "0743-7315",
bibdate = "Thu Mar 9 09:18:52 MST 2000",
bibsource = "http://www.idealibrary.com/servlet/useragent?func=showAllIssues&curIssueID=jpdc",
URL = "http://www.idealibrary.com/links/doi/10.1006/jpdc.1993.1067/production;
http://www.idealibrary.com/links/doi/10.1006/jpdc.1993.1067/production/pdf",
acknowledgement = ack-nhfb,
classification = "C6110B (Software engineering techniques); C6110P
(Parallel programming)",
corpsource = "Dept. of Comput. Sci., Colorado State Univ., Fort
Collins, CO, USA",
keywords = "benchmarks; dataflow program execution; dynamic
measure; fine grain intrathread locality; instruction
level locality; parallel programming; software
metrics",
treatment = "T Theoretical or Mathematical",
}
@Article{Natarajan:1993:PVM,
author = "Venkat Natarajan and Derek Chiou and Boon Seong Ang",
title = "Performance visualization on {Monsoon}",
journal = j-J-PAR-DIST-COMP,
volume = "18",
number = "2",
pages = "169--180",
month = jun,
year = "1993",
CODEN = "JPDCER",
DOI = "http://dx.doi.org/10.1006/jpdc.1993.1054",
ISSN = "0743-7315",
bibdate = "Thu Mar 9 09:18:52 MST 2000",
bibsource = "http://www.idealibrary.com/servlet/useragent?func=showAllIssues&curIssueID=jpdc",
URL = "http://www.idealibrary.com/links/doi/10.1006/jpdc.1993.1054/production;
http://www.idealibrary.com/links/doi/10.1006/jpdc.1993.1054/production/pdf",
acknowledgement = ack-nhfb,
classification = "C5440 (Multiprocessor systems and techniques); C5470
(Performance evaluation and testing); C7430 (Computer
engineering)",
corpsource = "Motorola Cambridge Res. Center, MA, USA",
keywords = "algorithm; application program; compiler; computer
evaluation; data analysis; data collection; data
visualisation; MIT; Monsoon; Motorola; multiprocessor
machine; multithreaded; operating system; parallel
machine; parallel machines; performance evaluation;
performance evaluation tool; programming language;
visualization",
treatment = "P Practical",
}
@InProceedings{Odersky:1993:CNA,
author = "Martin Odersky and Dan Rabin and Paul Hudak",
title = "Call by name, assignment, and the lambda calculus",
crossref = "ACM:1993:CRT",
pages = "43--56",
year = "1993",
bibdate = "Mon May 3 12:45:53 MDT 1999",
bibsource = "http://www.acm.org/pubs/toc/",
URL = "http://www.acm.org:80/pubs/citations/proceedings/plan/158511/p43-odersky/",
abstract = "We define an extension of the call-by-name lambda
calculus with additional constructs and reduction rules
that represent mutable variables and assignments. The
extended calculus has neither a concept of an explicit
store nor a concept of evaluation order; nevertheless,
we show that programs in the calculus can be
implemented using a single-threaded store. We also show
that the new calculus has the Church-Rosser property
and that it is a conservative extension of classical
lambda calculus with respect to operational
equivalence; that is, all algebraic laws of the
functional subset are preserved.",
acknowledgement = ack-nhfb,
keywords = "languages; theory",
subject = "{\bf F.4.1} Theory of Computation, MATHEMATICAL LOGIC
AND FORMAL LANGUAGES, Mathematical Logic, Lambda
calculus and related systems. {\bf F.3.3} Theory of
Computation, LOGICS AND MEANINGS OF PROGRAMS, Studies
of Program Constructs, Type structure.",
}
@Article{Plauger:1993:MCS,
author = "Dave Plauger",
title = "Making {C++} Save for Threads",
journal = j-CUJ,
volume = "11",
number = "2",
pages = "58--??",
month = feb,
year = "1993",
ISSN = "0898-9788",
bibdate = "Fri Aug 30 16:52:23 MDT 1996",
bibsource = "http://www.cuj.com/cbklist.htm",
acknowledgement = ack-nhfb,
}
@MastersThesis{Rajagopal:1993:DMI,
author = "Arjun Rajagopal",
title = "Design of a multithreaded instruction cache for a
hyperscalar processor",
type = "Thesis (M.S.)",
school = "Department of Electrical Engineering, Texas A\&M
University",
address = "College Station, TX, USA",
pages = "ix + 84",
year = "1993",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
acknowledgement = ack-nhfb,
keywords = "Major electrical engineering",
}
@MastersThesis{Srinivasan:1993:SDS,
author = "Sumathi Srinivasan",
title = "System design and simulation for the {Demus-2}
multithreaded processor",
type = "Thesis (M. Eng.)",
school = "Department of Electrical and Computer Engineering,
McMaster University",
address = "Hamilton, ON, Canada",
pages = "x + 109",
year = "1993",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
acknowledgement = ack-nhfb,
keywords = "Computer architecture; Computers, Pipeline; McMaster
University. -- Dissertations; Parallel processing
(Electronic computers)",
}
@Article{Volkman:1993:CCP,
author = "Victor R. Volkman",
title = "Convert {C} Programs into Multithreaded Applications",
journal = j-CUJ,
volume = "11",
type = "User Report",
number = "4",
pages = "87--??",
month = apr,
year = "1993",
ISSN = "0898-9788",
bibdate = "Fri Aug 30 16:52:23 MDT 1996",
bibsource = "http://www.cuj.com/cbklist.htm",
acknowledgement = ack-nhfb,
}
@Article{Volkman:1993:CTD,
author = "Victor R. Volkman and John English",
title = "Class {{\tt DOSThread}}: {A} Base Class for
Multithreaded {DOS} Programs",
journal = j-CUJ,
volume = "11",
type = "CUG library disk documentation",
number = "12",
pages = "113--??",
month = dec,
year = "1993",
ISSN = "0898-9788",
bibdate = "Fri Aug 30 16:52:23 MDT 1996",
bibsource = "http://www.cuj.com/cbklist.htm",
acknowledgement = ack-nhfb,
}
@Article{Waldspurger:1993:RRF,
author = "Carl A. Waldspurger and William E. Weihl",
title = "Register relocation: flexible contexts for
multithreading",
journal = j-COMP-ARCH-NEWS,
volume = "21",
number = "2",
pages = "120--130",
month = may,
year = "1993",
CODEN = "CANED2",
ISSN = "0163-5964",
bibdate = "Fri May 12 09:40:46 MDT 2006",
bibsource = "http://portal.acm.org/",
acknowledgement = ack-nhfb,
}
@TechReport{Young-Myers:1993:ESTa,
author = "Helene Young-Myers and Louiqa Raschid",
title = "An experimental study of three dataflow paradigms in
multithreaded database transitive closure algorithms on
shared memory multiprocessors",
type = "Technical report",
number = "CS-TR-3060; UMIACS-TR-93-33",
institution = inst-U-MARYLAND,
address = inst-U-MARYLAND:adr,
pages = "21",
month = apr,
year = "1993",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
note = "To appear in a special issue of the Journal of
Parallel and Distributed Computing on Dataflow and
Multithreaded Architectures, July, 1993.",
abstract = "This paper describes an experimental study of three
dataflow paradigms, namely, no dataflow, pipelined
dataflow, and network dataflow, in multithreaded
database transitive closure algorithms on shared memory
multiprocessors. This study shows that dataflow
paradigm directly influences performance parameters
such as the amount of interthread communication, how
data are partitioned among the threads, whether access
to each page of data is exclusive or shared, whether
locks are needed for concurrency control, and how
calculation termination is detected. The algorithm
designed with no dataflow outperforms the algorithms
with dataflow. Approximately linear speedup is achieved
by the no dataflow algorithm with sufficient workload
and primary memory. An exclusive access working set
model and a shared access working set model describe
the interactions between two or more threads' working
sets when access to each page of data is exclusive or
shared among the threads, respectively. These models
are experimentally verified.",
acknowledgement = ack-nhfb,
annote = "Supported in part by the National Science
Foundation.",
keywords = "Data flow computing; Multiprocessors",
}
@Article{Young-Myers:1993:ESTb,
author = "Helene Young-Myers and Louiqa Raschid",
title = "An Experimental Study of Three Dataflow Paradigms in
Multithreaded Database Transitive Closure Algorithms on
Shared Memory Multiprocessors",
journal = j-J-PAR-DIST-COMP,
volume = "18",
number = "3",
pages = "371--389",
month = jul,
year = "1993",
CODEN = "JPDCER",
DOI = "http://dx.doi.org/10.1006/jpdc.1993.1071",
ISSN = "0743-7315",
bibdate = "Thu Mar 9 09:18:52 MST 2000",
bibsource = "http://www.idealibrary.com/servlet/useragent?func=showAllIssues&curIssueID=jpdc",
URL = "http://www.idealibrary.com/links/doi/10.1006/jpdc.1993.1071/production;
http://www.idealibrary.com/links/doi/10.1006/jpdc.1993.1071/production/pdf",
acknowledgement = ack-nhfb,
classification = "C5220P (Parallel architecture); C5470 (Performance
evaluation and testing); C6160 (Database management
systems (DBMS))",
corpsource = "Maryland Univ., College Park, MD, USA",
keywords = "architectures; calculation termination; concurrency
control; database management systems; dataflow;
dataflow paradigms; exclusive access; interthread
communication; linear; network; no dataflow; parallel;
performance evaluation; performance parameters;
pipelined dataflow; shared access; shared memory
systems; speedup",
treatment = "P Practical",
}
@InProceedings{Alfieri:1994:EKI,
author = "R. A. Alfieri",
title = "An Efficient Kernel-Based Implementation of {POSIX}
Threads",
crossref = "Anonymous:1994:USC",
pages = "59--72",
year = "1994",
bibdate = "Sat May 25 07:59:58 MDT 1996",
acknowledgement = ack-nhfb,
}
@InProceedings{Anonymous:1994:DCT,
author = "Anonymous",
title = "On the Design of {Chant}: {A} Talking Threads
Package",
crossref = "IEEE:1994:PSW",
pages = "350--359",
year = "1994",
bibdate = "Mon Aug 26 10:38:41 MDT 1996",
acknowledgement = ack-nhfb,
}
@Article{Anonymous:1994:SIP,
author = "Anonymous",
title = "Special issue: panel sessions of the {1991 Workshop on
Multithreaded Computers, November 22, 1991,
Albuquerque, New Mexico, in conjunction with
Supercomputing '91}",
journal = "Computer architecture news",
volume = "22",
number = "1",
pages = "2--33",
year = "1994",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
acknowledgement = ack-nhfb,
}
@InProceedings{Baker:1994:EPP,
author = "T. P. Baker and Frank Mueller and Viresh Rustagi",
title = "Experience with a Prototype of the {POSIX} ``Minimal
Realtime System Profile''",
crossref = "IEEE:1994:ROS",
pages = "12--17",
year = "1994",
bibdate = "Sat May 25 07:59:58 MDT 1996",
bibsource = "Compendex database",
abstract = "This paper describes experience prototyping the
proposed IEEE standard `minimal realtime system
profile', whose primary component is support for
real-time threads. It provides some background,
describes the implementation, and reports preliminary
performance measurements.",
acknowledgement = ack-nhfb,
affiliation = "Florida State Univ",
affiliationaddress = "Tallahassee, FL, USA",
classification = "723.1; 722.4; 723.1.1; 723.2",
conference = "Proceedings of the 11th IEEE Workshop on Real-Time
Operating Systems and Software",
conferenceyear = "1994",
journalabr = "Proc IEEE Workshop Real Time Oper Syst Software",
keywords = "Computer operating systems; Real time systems; Program
processors; High level languages; Computer software
portability; Data structures; Interfaces (computer);
Minimal real time system profile; Thread; Mesa
programming language; Thread management; Thread
priority scheduling",
meetingaddress = "Seattle, WA, USA",
meetingdate = "May 18--19 1994",
meetingdate2 = "05/18--19/94",
publisherinfo = "Computer Society Press",
sponsor = "IEEE Computer Society",
}
@Article{Baquero:1994:CAC,
author = "Carlos Baquero and Francisco Moura",
title = "Concurrency Annotations in {C++}",
journal = j-SIGPLAN,
volume = "29",
number = "7",
pages = "61--67",
month = jul,
year = "1994",
CODEN = "SINODQ",
ISSN = "0362-1340",
bibdate = "Sun Dec 14 09:16:53 MST 2003",
bibsource = "http://portal.acm.org/",
acknowledgement = ack-nhfb,
classification = "C6110J (Object-oriented programming); C6110P
(Parallel programming); C6140D (High level languages)",
corpsource = "DI/INESC, Minho Univ., Portugal",
keywords = "access flag; C language; C++; concurrency annotations;
inheritance; inheritance chain; language extension;
method code; method invocations; method predicates;
multiple threads; object-oriented languages; parallel
languages; shared-memory multiprocessor system;
synchronisation; synchronization code; synchronization
mechanisms",
treatment = "P Practical",
}
@Article{Buhr:1994:TMO,
author = "R. J. A. Buhr and R. S. Casselman",
title = "Timethread-Role Maps for Object-Oriented Design of
Real-Time-and-Distributed Systems",
journal = j-SIGPLAN,
volume = "29",
number = "10",
pages = "301--301",
month = oct,
year = "1994",
CODEN = "SINODQ",
ISSN = "0362-1340",
bibdate = "Fri Apr 24 18:36:02 MDT 1998",
acknowledgement = ack-nhfb,
classification = "C6110J (Object-oriented programming); C6150N
(Distributed systems)",
conflocation = "Portland, OR, USA; 23-27 Oct. 1994",
conftitle = "Ninth Annual Conference on Object-Oriented Programming
Systems, Languages, and Applications. OOPSLA '94",
corpsource = "Dept. of Syst. and Comput. Eng., Carleton Univ.,
Ottawa, Ont., Canada",
keywords = "concurrency; distributed processing; distributed
systems; dynamic structure; end-to-end responsibility
paths; object-oriented approach; object-oriented
design; object-oriented design methods; object-oriented
methods; object-oriented programming; real-time
systems; real-time systems oriented programming;
responsibility-driven design; timethread-role maps",
sponsororg = "ACM",
treatment = "P Practical",
}
@Article{Buhr:1994:TRM,
author = "R. J. A. Buhr and R. S. Casselman",
title = "Timethread-role maps for object-oriented design of
real-time-and-distributed systems",
journal = j-SIGPLAN,
volume = "29",
number = "10",
pages = "301--316",
month = oct,
year = "1994",
CODEN = "SINODQ",
ISSN = "0362-1340",
bibdate = "Sun Dec 14 09:16:55 MST 2003",
bibsource = "http://portal.acm.org/",
acknowledgement = ack-nhfb,
}
@Article{Carter:1994:HSF,
author = "Nicholas P. Carter and Stephen W. Keckler and William
J. Dally",
title = "Hardware support for fast capability-based
addressing",
journal = j-SIGPLAN,
volume = "29",
number = "11",
pages = "319--327",
month = nov,
year = "1994",
CODEN = "SINODQ",
ISSN = "0362-1340",
bibdate = "Sun Dec 14 09:16:57 MST 2003",
bibsource = "http://portal.acm.org/; http://www.acm.org/pubs/toc/",
URL = "http://www.acm.org:80/pubs/citations/proceedings/asplos/195473/p319-carter/",
abstract = "Traditional methods of providing protection in memory
systems do so at the cost of increased context switch
time and/or increased storage to record access
permissions for processes. With the advent of computers
that supported cycle-by-cycle multithreading,
protection schemes that increase the time to perform a
context switch are unacceptable, but protecting
unrelated processes from each other is still necessary
if such machines are to be used in non-trusting
environments. This paper examines {\em guarded
pointers\/}, a hardware technique which uses tagged
64-bit pointer objects to implement capability-based
addressing. Guarded pointers encode a segment
descriptor into the upper bits of every pointer,
eliminating the indirection and related performance
penalties associated with traditional implementations
of capabilities. All processes share a single 54-bit
virtual address space, and access is limited to the
data that can be referenced through the pointers that a
process has been issued. Only one level of address
translation is required to perform a memory reference.
Sharing data between processes is efficient, and
protection states are defined to allow fast protected
subsystem calls and create unforgeable data keys.",
acknowledgement = ack-nhfb,
classification = "C5310 (Storage system design); C6120 (File
organisation); C6150N (Distributed systems software)",
conflocation = "San Jose, CA, USA; 4-7 Oct. 1994",
conftitle = "Sixth International Conference on Architectural
Support for Programming Languages and Operating Systems
(ASPLOS-VI)",
corpsource = "Lab. for Comput. Sci., MIT, Cambridge, MA, USA",
keywords = "54- bit virtual address space; address translation;
capability based addressing; cycle-by-cycle
multithreading; design; fast capability-based
addressing; fast protected subsystem calls; guarded
pointers; hardware support; hardware technique; memory
architecture; memory bit virtual address space; memory
reference; memory systems; multiprocessing programs;
performance; protection schemes; protection states;
segment descriptor; storage allocation; tagged 64-bit
pointer objects; theory; unforgeable data keys; virtual
storage",
sponsororg = "ACM; IEEE Comput. Soc",
subject = "{\bf C.0} Computer Systems Organization, GENERAL,
Instruction set design. {\bf C.4} Computer Systems
Organization, PERFORMANCE OF SYSTEMS.",
treatment = "P Practical",
}
@Book{Catanzaro:1994:MSA,
author = "Ben J. Catanzaro",
title = "Multiprocessor system architectures: a technical
survey of multiprocessor\slash multithreaded systems
using {SPARC}, multilevel bus architectures and
{Solaris} {(SunOS)}",
publisher = pub-PHPTR,
address = pub-PHPTR:adr,
pages = "xxxii + 493",
year = "1994",
ISBN = "0-13-089137-1",
ISBN-13 = "978-0-13-089137-2",
LCCN = "QA76.5.C3864 1994",
bibdate = "Fri Aug 7 08:29:38 MDT 1998",
acknowledgement = ack-nhfb,
keywords = "computer architecture; multiprocessors; sun
computers",
}
@Article{Chase:1994:SPS,
author = "Jeffrey S. Chase and Henry M. Levy and Michael J.
Feeley and Edward D. Lazowska",
title = "Sharing and Protection in a Single-Address-Space
Operating System",
journal = j-TOCS,
volume = "12",
number = "4",
pages = "271--307",
month = nov,
year = "1994",
CODEN = "ACSYEC",
ISSN = "0734-2071",
bibdate = "Wed Jan 13 18:36:53 MST 1999",
bibsource = "http://www.acm.org/pubs/contents/journals/tocs/",
URL = "http://www.acm.org:80/pubs/citations/journals/tocs/1994-12-4/p271-chase/",
abstract = "This article explores memory sharing and protection
support in Opal, a single-address-space operating
system designed for wide-address (64-bit)
architectures. Opal threads execute within protection
domains in a single shared virtual address space.
Sharing is simplified, because addresses are context
independent. There is no loss of protection, because
addressability and access are independent; the right to
access a segment is determined by the protection domain
in which a thread executes. This model enables
beneficial code-and data-sharing patterns that are
currently prohibitive, due in part to the inherent
restrictions of multiple address spaces, and in part to
Unix programming style. We have designed and
implemented an Opal prototype using the Mach 3.0
microkernel as a base. Our implementation demonstrates
how a single-address-space structure can be supported
alongside of other environments on a modern microkernel
operating system, using modern wide-address
architectures. This article justifies the Opal model
and its goals for sharing and protection, presents the
system and its abstractions, describes the prototype
implementation, and reports experience with integrated
applications.",
acknowledgement = ack-nhfb,
keywords = "design; experimentation; measurement; performance",
subject = "{\bf D.4.2} Software, OPERATING SYSTEMS, Storage
Management. {\bf C.1.3} Computer Systems Organization,
PROCESSOR ARCHITECTURES, Other Architecture Styles,
Capability architectures**. {\bf D.3.3} Software,
PROGRAMMING LANGUAGES, Language Constructs and
Features, Modules, packages. {\bf D.4.4} Software,
OPERATING SYSTEMS, Communications Management. {\bf
D.4.6} Software, OPERATING SYSTEMS, Security and
Protection, Access controls. {\bf D.4.6} Software,
OPERATING SYSTEMS, Security and Protection, Information
flow controls. {\bf D.4.7} Software, OPERATING SYSTEMS,
Organization and Design. {\bf D.4.8} Software,
OPERATING SYSTEMS, Performance, Measurements. {\bf E.1}
Data, DATA STRUCTURES. {\bf E.2} Data, DATA STORAGE
REPRESENTATIONS.",
}
@Article{Chaudhry:1994:CMP,
author = "Ghulam Chaudhry and Xuechang Li",
title = "A case for the multithreaded processor architecture",
journal = j-COMP-ARCH-NEWS,
volume = "22",
number = "4",
pages = "55--59",
month = sep,
year = "1994",
CODEN = "CANED2",
ISSN = "0163-5964",
bibdate = "Fri May 12 09:41:12 MDT 2006",
bibsource = "http://portal.acm.org/",
acknowledgement = ack-nhfb,
}
@Book{Dorfman:1994:EMO,
author = "Len Dorfman and Marc J. Neuberger",
title = "Effective multithreading in {OS/2}",
publisher = pub-MCGRAW-HILL,
address = pub-MCGRAW-HILL:adr,
pages = "xii + 288",
year = "1994",
ISBN = "0-07-017841-0 (paperback)",
ISBN-13 = "978-0-07-017841-0 (paperback)",
LCCN = "QA76.76.O63D6694 1994",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
price = "US\$34.95",
acknowledgement = ack-nhfb,
annote = "System requirements for computer disk: IBM-compatible
PC; 4MB RAM (8MB recommended); OS/2; C compiler such as
IBM CSet++ or Borland C++ for OS/2; high-density floppy
disk drive; hard disk with 3.1MB free space.",
keywords = "Microcomputers -- Operating systems; Operating systems
(Computers); OS/2 (Computer file)",
}
@TechReport{Dubey:1994:APM,
author = "Pradeep Dubey and Arvind Krishna and M. J. (Michael
J.) Flynn",
title = "Analytical performance modeling for a spectrum of
multithreaded machines",
type = "Research report",
number = "RC 19549 (85007)",
institution = "IBM T. J. Watson Research Center",
address = "Yorktown Heights, NY, USA",
pages = "27",
day = "3",
month = may,
year = "1994",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
abstract = "The throughput of pipelined processors suffers due to
delays associated with instruction dependencies and
memory latencies. Multithreaded architectures try to
tolerate such delays by sharing the pipeline with
independent instruction threads. This paper proposes a
comprehensive analytical framework to quantitate the
performance potential of a wide spectrum of
multithreaded machines ranging from those that are
capable of switching threads every cycle to those that
switch threads only on long inter-instruction
latencies. For machines in the former category, the
proposed analytic model provides an exact solution for
pipeline utilization which is significantly better than
lower and upper bounds obtainable from simple
approximation techniques. Unlike previously published
analytic models of such systems, the Markov model
developed here accepts a general distribution for the
interlock delays with multiple latencies. For machines
in the latter category, the paper provides an
approximate analytic model which is simpler than
previously published analytic models. The models have
been verified using previously published analytical and
simulation-based results. As compared to the simulation
alternative, the models provide a much quicker estimate
of pipeline utilization as a function of a number of
threads.",
acknowledgement = ack-nhfb,
keywords = "Computer architecture",
}
@MastersThesis{Gallagher:1994:PLM,
author = "William Lynn Gallagher",
title = "Performance limitations of the {MTS} multithreaded
architecture",
type = "Thesis (M.S. in Engineering)",
school = "University of Texas at Austin",
address = "Austin, TX, USA",
pages = "xiv + 101",
year = "1994",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
acknowledgement = ack-nhfb,
}
@Article{Gerlhof:1994:MTA,
author = "C. A. Gerlhof and A. Kemper",
title = "A Multi-Threaded Architecture for Prefetching in
Object Bases",
journal = j-LECT-NOTES-COMP-SCI,
volume = "779",
pages = "351--364",
year = "1994",
CODEN = "LNCSD9",
ISSN = "0302-9743",
bibdate = "Wed Sep 15 18:44:20 MDT 1999",
bibsource = "ftp://ftp.math.utah.edu/pub/tex/bib/lncs1994.bib",
acknowledgement = ack-nhfb,
keywords = "database technology; EDBT; extending database
technology",
}
@Article{Gibson:1994:CMC,
author = "Ken Gibson",
title = "A {C++} Multitasking Class Library",
journal = j-DDJ,
volume = "19",
number = "5",
pages = "28, 30, 32, 34, 96--98",
month = may,
year = "1994",
CODEN = "DDJOEB",
ISSN = "1044-789X",
bibdate = "Tue Sep 03 09:15:49 1996",
bibsource = "http://www.ddj.com/index/author/index.htm, UnCover
database",
abstract = "Multithreaded applications that currently execute more
than one section of code aren't directly supported by
languages such as C++. Ken presents a C++ multitasking
class library for MS-DOS that lets you implement a
program as a set of concurrent threads.",
acknowledgement = ack-nhfb,
classification = "C6110J (Object-oriented programming); C6110P
(Parallel programming)",
keywords = "C++ multitasking class library; Concurrent execution;
DOS; Embedded processors; Interthread communications;
Locator program; Microsoft C++ 7.0; Multithreaded
applications; Portability; Processor initialization;
Queue class; Real-time device control; Real-time
executive; ROMable image; Scheduler object; Semaphore
class; Simulation; Thread class; Thread
synchronization",
thesaurus = "C listings; Multiprogramming; Object-oriented
programming; Public domain software; Scheduling;
Subroutines",
}
@Manual{Haines:1994:DCT,
author = "Matthew Haines and David Cronk and Piyush Mehrotra",
title = "On the design of chant: a talking threads of package:
final report",
number = "194903",
publisher = pub-NTIS,
address = pub-NTIS:adr,
pages = "??",
year = "1994",
LCCN = "NAS 1.26:194903 Govt Pubs",
bibdate = "Fri May 10 12:18:17 MDT 2002",
note = "Shipping list number 94-0861-M.",
series = "NASA contractor report",
acknowledgement = ack-nhfb,
keywords = "message processing; messages",
}
@Article{Halstead:1994:PCR,
author = "Burt Halstead and David Callahan and Jack Dennis and
R. S. Nikhil and Vivek Sarkar",
title = "Programming, compilation, and resource management
issues for multithreading (panel session {II})",
journal = j-COMP-ARCH-NEWS,
volume = "22",
number = "1",
pages = "19--33",
month = mar,
year = "1994",
CODEN = "CANED2",
ISSN = "0163-5964",
bibdate = "Fri May 12 09:40:34 MDT 2006",
bibsource = "http://portal.acm.org/",
acknowledgement = ack-nhfb,
}
@InProceedings{Holm:1994:CSP,
author = "J. Holm and A. Lain and P. Banerjee",
title = "Compilation of Scientific Programs into Multithreaded
and Message Driven Computation",
crossref = "IEEE:1994:PSH",
pages = "518--525",
year = "1994",
bibdate = "Mon Aug 26 10:38:41 MDT 1996",
acknowledgement = ack-nhfb,
}
@Article{Iannucci:1994:AII,
author = "Robert Iannucci and Anant Agarwal and Bill Dally and
Anoop Gupta and Greg Papadopoulos and Burton Smith",
title = "Architectural and implementation issues for
multithreading (panel session {I})",
journal = j-COMP-ARCH-NEWS,
volume = "22",
number = "1",
pages = "3--18",
month = mar,
year = "1994",
CODEN = "CANED2",
ISSN = "0163-5964",
bibdate = "Fri May 12 09:40:34 MDT 2006",
bibsource = "http://portal.acm.org/",
acknowledgement = ack-nhfb,
}
@Book{Iannucci:1994:MCA,
editor = "Robert A. Iannucci and others",
title = "Multithreaded computer architecture: a summary of the
state of the art",
volume = "SECS 0281",
publisher = pub-KLUWER,
address = pub-KLUWER:adr,
pages = "xvi + 400",
year = "1994",
ISBN = "0-7923-9477-1",
ISBN-13 = "978-0-7923-9477-8",
LCCN = "QA76.9.A73 M85 1994",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
series = "The Kluwer international series in engineering and
computer science",
acknowledgement = ack-nhfb,
keywords = "computer architecture; Computer architecture;
Computers -- Design",
}
@Article{Kanalakis:1994:EOT,
author = "John M. {Kanalakis, Jr.}",
title = "Examining {OS/2} 2.1 threads",
journal = j-DDJ,
volume = "19",
number = "1",
pages = "74, 76, 78--79, 96",
month = jan,
year = "1994",
CODEN = "DDJOEB",
ISSN = "1044-789X",
bibdate = "Tue Sep 10 08:52:50 MDT 1996",
bibsource = "http://www.ddj.com/index/author/index.htm, UnCover
database",
abstract = "The OS/2 2.1 multitasking model is based on the
execution of threads, making it possible for many
sections of a single process to execute simultaneously.
John examines OS/2's thread architecture, specifically,
the scheduling process.",
acknowledgement = ack-nhfb,
classification = "C6150J (Operating systems)",
keywords = "Bias implementation; OS/2 2.1 multitasking model;
Round robin scheduling; Scheduling process; Thread
architecture; Threads",
thesaurus = "Multiprogramming; Operating systems [computers];
Scheduling",
}
@Article{Kelly:1994:MOB,
author = "Michael Kelly",
title = "Multithreading with {OS/2} and {Borland C++}",
journal = j-CCCUJ,
volume = "12",
number = "8",
pages = "67--??",
month = aug,
year = "1994",
CODEN = "CCUJEX",
ISSN = "1075-2838",
bibdate = "Fri Aug 30 16:52:23 MDT 1996",
bibsource = "http://www.cuj.com/cbklist.htm",
acknowledgement = ack-nhfb,
}
@PhdThesis{Kim:1994:FPF,
author = "Chinhyun Kim",
title = "Functional programming and fine-grain multithreading
for high-performance parallel computing",
type = "Thesis (Ph.D.)",
school = "University of Southern California",
address = "Los Angeles, CA, USA",
pages = "xv + 150",
year = "1994",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
acknowledgement = ack-nhfb,
}
@Article{Krieger:1994:ASF,
author = "Orran Krieger and Michael Stumm and Ron Unrau",
title = "The {Alloc Stream Facility}: {A} Redesign of
Application-Level Stream {I/O}",
journal = j-COMPUTER,
volume = "27",
number = "3",
pages = "75--82",
month = mar,
year = "1994",
CODEN = "CPTRB4",
ISSN = "0018-9162",
bibdate = "Mon Feb 3 07:28:57 MST 1997",
bibsource = "Compendex database",
abstract = "Many stdio and even Unix I/O applications run faster
when linked to the ASF application-level library. Using
the Alloc Stream Interface improves performance even
more.",
acknowledgement = ack-nhfb,
affiliation = "Dept. of Electr. and Comput. Eng., Toronto Univ.,
Ont., Canada",
affiliationaddress = "Toronto, Can",
classification = "723; C6110J (Object-oriented programming); C6110P
(Parallel programming); C6150J (Operating systems)",
journalabr = "Computer",
keywords = "Alloc Stream Facility; Alloc stream interface;
Application-level I/O facility; Application-level
library; Application-level stream I/O; ASF; C stdio
library; C++ stream I/O; Computer operating systems;
Concurrency; I/O-intensive applications; Input output
programs; Mapped files; Multithreaded applications;
Object-oriented structure; Parallel applications;
Parallel systems; Performance improvements; Popular I/O
interfaces; Sequential byte stream; Standard Unix
systems; Stdio; System behavior; UNIX",
thesaurus = "Input-output programs; Object-oriented methods;
Parallel programming; Unix",
}
@Article{Laudon:1994:IMT,
author = "James Laudon and Anoop Gupta and Mark Horowitz",
title = "Interleaving: a multithreading technique targeting
multiprocessors and workstations",
journal = j-SIGPLAN,
volume = "29",
number = "11",
pages = "308--318",
month = nov,
year = "1994",
CODEN = "SINODQ",
ISSN = "0362-1340",
bibdate = "Sun Dec 14 09:16:57 MST 2003",
bibsource = "http://portal.acm.org/; http://www.acm.org/pubs/toc/",
note = "Co-published in {\em Operating Systems Review}, {\bf
28}(5).",
URL = "http://www.acm.org:80/pubs/citations/proceedings/asplos/195473/p308-laudon/",
abstract = "There is an increasing trend to use commodity
microprocessors as the compute engines in large-scale
multiprocessors. However, given that the majority of
the microprocessors are sold in the workstation market,
not in the multiprocessor market, it is only natural
that architectural features that benefit only
multiprocessors are less likely to be adopted in
commodity microprocessors. In this paper, we explore
multiple-context processors, an architectural technique
proposed to hide the large memory latency in
multiprocessors. We show that while current
multiple-context designs work reasonably well for
multiprocessors, they are ineffective in hiding the
much shorter uniprocessor latencies using the limited
parallelism found in workstation environments. We
propose an alternative design that combines the best
features of two existing approaches, and present
simulation results that show it yields better
performance for both multiprogrammed workloads on a
workstation and parallel applications on a
multiprocessor. By addressing the needs of the
workstation environment, our proposal makes multiple
contexts more attractive for commodity
microprocessors.",
acknowledgement = ack-nhfb,
classification = "C5430 (Microcomputers); C5440 (Multiprocessing
systems); C6120 (File organisation); C6150J (Operating
systems)",
conflocation = "San Jose, CA, USA; 4-7 Oct. 1994",
conftitle = "Sixth International Conference on Architectural
Support for Programming Languages and Operating Systems
(ASPLOS-VI)",
corpsource = "Comput. Syst. Lab., Stanford Univ., CA, USA",
keywords = "architectural features; commodity microprocessors;
compute engines; design; interleaved storage;
interleaving; large memory latency; large-scale
multiprocessors; measurement; multiple-context designs;
multiple-context processors; multiprocessing systems;
multiprogrammed workloads; multiprogramming;
multithreading technique; parallel applications;
parallel uniprocessor latencies; performance; theory;
uniprocessor latencies; workstations",
sponsororg = "ACM; IEEE Comput. Soc",
subject = "{\bf C.5.3} Computer Systems Organization, COMPUTER
SYSTEM IMPLEMENTATION, Microcomputers. {\bf C.4}
Computer Systems Organization, PERFORMANCE OF
SYSTEMS.",
treatment = "P Practical",
}
@Article{Launchbury:1994:LFS,
author = "John Launchbury and Simon L. {Peyton Jones}",
title = "Lazy Functional State Threads",
journal = j-SIGPLAN,
volume = "29",
number = "6",
pages = "24--35",
month = jun,
year = "1994",
CODEN = "SINODQ",
ISBN = "0-89791-598-4",
ISBN-13 = "978-0-89791-598-4",
ISSN = "0362-1340",
bibdate = "Sun Dec 14 09:16:51 MST 2003",
bibsource = "http://www.acm.org/pubs/contents/proceedings/pldi/178243/index.html;
http://portal.acm.org/; http://portal.acm.org/",
URL = "http://www.acm.org:80/pubs/citations/proceedings/pldi/178243/p24-launchbury/",
abstract = "Some algorithms make critical internal use of
updatable state, even though their external
specification is purely functional. Based on earlier
work on monads, we present a way of securely
encapsulating stateful computations that manipulate
multiple, named, mutable objects, in the context of a
non-strict, purely-functional language. The security of
the encapsulation is assured by the type system, using
parametricity. Intriguingly, this parametricity
requires the provision of a (single) constant with a
rank-2 polymorphic type.",
acknowledgement = ack-nhfb,
annote = "Published as part of the Proceedings of PLDI'94.",
classification = "C4240 (Programming and algorithm theory); C6110
(Systems analysis and programming); C6140D (High level
languages)",
conflocation = "Orlando, FL, USA; 20-24 June 1994",
conftitle = "ACM SIGPLAN '94 Conference on Programming Language
Design and Implementation (PLDI)",
corpsource = "Glasgow Univ., UK",
keywords = "algorithms; languages; encapsulation; external
specification; functional language; functional
programming; high level languages; lazy functional
state threads; monads; mutable objects; nonstrict
purely-functional language; parametricity; rank-2
polymorphic type; security; specification; stateful
computations; type system; type theory; updatable
state",
sponsororg = "ACM",
subject = "{\bf D.3.3} Software, PROGRAMMING LANGUAGES, Language
Constructs and Features, Procedures, functions, and
subroutines. {\bf D.3.2} Software, PROGRAMMING
LANGUAGES, Language Classifications, Applicative
(functional) languages. {\bf F.3.3} Theory of
Computation, LOGICS AND MEANINGS OF PROGRAMS, Studies
of Program Constructs, Type structure. {\bf F.4.1}
Theory of Computation, MATHEMATICAL LOGIC AND FORMAL
LANGUAGES, Mathematical Logic, Lambda calculus and
related systems.",
treatment = "P Practical; T Theoretical or Mathematical",
}
@Article{Liedtke:1994:SNIb,
author = "Jochen Liedtke",
title = "A short note on implementing thread exclusiveness and
address space locking",
journal = j-OPER-SYS-REV,
volume = "28",
number = "3",
pages = "38--42",
month = jul,
year = "1994",
CODEN = "OSRED8",
ISSN = "0163-5980",
bibdate = "Sat Aug 26 08:55:46 MDT 2006",
bibsource = "http://portal.acm.org/",
acknowledgement = ack-nhfb,
}
@MastersThesis{Lu:1994:MPM,
author = "David Ta-Chang Lu",
title = "A multithreaded processor for massively parallel
architectures",
type = "Thesis (M.S.)",
school = "University of California, Riverside",
address = "Riverside, CA, USA",
pages = "vii + 42",
year = "1994",
LCCN = "QA76.58 .L88 1994",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
acknowledgement = ack-nhfb,
keywords = "computer algorithms; Computer algorithms; computer
architecture; Computer architecture; dissertations;
dissertations, academic -- UCR -- computer science;
parallel computers; Parallel computers; Parallel
processing (Electronic computers); parallel processing
(electronic computers); Science -- Dissertations;
University of California, Riverside. -- Dept. of
Computer; University of California, Riverside. Dept. of
Computer Science",
}
@Article{Marinescu:1994:HLC,
author = "Dan C. Marinescu and John R. Rice",
title = "On High Level Characterization of Parallelism",
journal = j-J-PAR-DIST-COMP,
volume = "20",
number = "1",
pages = "107--113",
month = jan,
year = "1994",
CODEN = "JPDCER",
DOI = "http://dx.doi.org/10.1006/jpdc.1994.1011",
ISSN = "0743-7315",
bibdate = "Thu Mar 9 09:18:53 MST 2000",
bibsource = "http://www.idealibrary.com/servlet/useragent?func=showAllIssues&curIssueID=jpdc",
URL = "http://www.idealibrary.com/links/doi/10.1006/jpdc.1994.1011/production;
http://www.idealibrary.com/links/doi/10.1006/jpdc.1994.1011/production/pdf",
acknowledgement = ack-nhfb,
classification = "C4240P (Parallel programming and algorithm theory);
C5220P (Parallel architecture); C5470 (Performance
evaluation and testing)",
corpsource = "Dept. of Comput. Sci., Purdue Univ., West Lafayette,
IN, USA",
keywords = "communication complexity; load balancing; massively
parallel; parallel architectures; parallel execution;
parallelism; performance analysis; performance
evaluation; speedup; systems; threads of control",
treatment = "T Theoretical or Mathematical",
}
@Book{MixSoftware:1994:UMP,
author = "{Mix Software, Inc}",
title = "Using {Multi-C}: a portable multithreaded {C}
programming library",
publisher = pub-PHPTR,
address = pub-PHPTR:adr,
pages = "vi + 257",
year = "1994",
ISBN = "0-13-606195-8",
ISBN-13 = "978-0-13-606195-3",
LCCN = "QA76.73.C15 U85 1994",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
note = "System requirements for computer disk: IBM-compatible
PC; DOS; Mix, Borland, or Microsoft-compatible C/C++
compilers.",
acknowledgement = ack-nhfb,
annote = "System requirements for computer disk: IBM-compatible
PC; DOS; Mix, Borland, or Microsoft-compatible C/C++
compilers.",
keywords = "C (computer program language); C (Computer program
language); Microcomputers -- Programming languages",
}
@Article{Mukherjee:1994:MII,
author = "Bodhisattwa Mukherjee and Greg Eisenhauer and Kaushik
Ghosh",
title = "A machine independent interface for lightweight
threads",
journal = j-OPER-SYS-REV,
volume = "28",
number = "1",
pages = "33--47",
month = jan,
year = "1994",
CODEN = "OSRED8",
ISSN = "0163-5980",
bibdate = "Sat Aug 26 08:55:36 MDT 2006",
bibsource = "http://portal.acm.org/",
acknowledgement = ack-nhfb,
}
@Article{Norwood:1994:SMP,
author = "John Norwood and Shankar Vaidyanathan",
title = "Symmetric Multiprocessing for {PCs}",
journal = j-DDJ,
volume = "19",
number = "1",
pages = "80, 82--85, 98--99",
month = jan,
year = "1994",
CODEN = "DDJOEB",
ISSN = "1044-789X",
bibdate = "Tue Sep 03 09:15:46 1996",
bibsource = "http://www.ddj.com/index/author/index.htm, UnCover
database",
abstract = "Our authors focus on multithreaded application
development for single-processor and
symmetric-multiprocessor machines under Windows NT. In
doing so, they present Fortran interface statements for
the Win32 console API and a black-box solution for
calling 32-bit DLLs from 16-bit applications under
NT.",
acknowledgement = ack-nhfb,
classification = "C6150N (Distributed systems); C6150J (Operating
systems)",
keywords = "16-Bit applications; 32-Bit DLLs; Black-box solution;
Fortran interface statements; Multithreaded
application; Single processor machines;
Symmetric-multiprocessor machines; Win32 console API;
Windows NT",
thesaurus = "C listings; Multiprocessing programs;
Multiprogramming",
}
@InProceedings{Ramsey:1994:CTB,
author = "Norman Ramsey",
title = "Correctness of trap-based breakpoint implementations",
crossref = "ACM:1994:CRP",
pages = "15--24",
year = "1994",
bibdate = "Mon May 3 12:50:22 MDT 1999",
bibsource = "http://www.acm.org/pubs/toc/",
URL = "http://www.acm.org:80/pubs/citations/proceedings/plan/174675/p15-ramsey/",
abstract = "It is common for debuggers to implement breakpoints by
a combination of planting traps and single stepping.
When the target program contains multiple threads of
execution, a debugger that is not carefully implemented
may miss breakpoints. This paper gives a formal model
of a breakpoint in a two-threaded program. The model
describes correct and incorrect breakpoint
implementations. Automatic search of the model's state
space shows that the correct implementation does miss a
breakpoint. The results apply even to debuggers like
dbx and gdb, which are apparently for single-threaded
programs; when the user evaluates an expression
containing function calls, the debugger executes the
call in the target address space, in effect creating a
new thread.",
acknowledgement = ack-nhfb,
keywords = "languages; measurement; theory",
subject = "{\bf D.2.5} Software, SOFTWARE ENGINEERING, Testing
and Debugging. {\bf F.3.1} Theory of Computation,
LOGICS AND MEANINGS OF PROGRAMS, Specifying and
Verifying and Reasoning about Programs.",
}
@Article{Rodley:1994:OUI,
author = "John Rodley",
title = "{OS/2} and {UnixWare} Interprocess Communication",
journal = j-DDJ,
volume = "19",
number = "5",
pages = "78--82, 84, 107--109",
month = may,
year = "1994",
CODEN = "DDJOEB",
ISSN = "1044-789X",
bibdate = "Tue Sep 03 09:15:49 1996",
bibsource = "http://www.ddj.com/index/author/index.htm, UnCover
database",
abstract = "Interprocess communication isn't portable between
IBM's OS/2 2.1 and Novell's UnixWare 1.1. But even
through the implementation details differ greatly, the
two systems do share ways of thinking about IPC. John
looks at IPC under OS/2 and UnixWare to see what common
ground exists.",
acknowledgement = ack-nhfb,
classification = "C6150J (Operating systems); C6150N (Distributed
systems)",
keywords = "APIs; Applications programming; Functionality; IBM
OS/2 2.1; Implementation details; Independent
processes; Interprocess communication; IPC models;
Multitasking operating systems; Novell UnixWare 1.1;
Threads",
thesaurus = "C listings; Multiprocessing systems; Operating systems
[computers]; Unix",
}
@TechReport{Squillante:1994:AMP,
author = "Mark S. Squillante",
title = "Analytic modeling of processor utilization in
multithreaded processor architectures",
type = "Research report",
number = "RC 19543 (84999)",
institution = "IBM T. J. Watson Research Center",
address = "Yorktown Heights, NY, USA",
pages = "9",
month = apr,
year = "1994",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
abstract = "In this paper, we develop an analytic model of
processor utilization in multithreaded processor
architectures that supports both serial and parallel
processing of memory requests. The system is modeled as
a finite, continuous-time Markov chain whose solution
can be obtained efficiently. Although it applies more
generally, our modeling approach supports an important
class of probability distributions that can be used to
approximate the distributions of interest with
sufficient accuracy in most practical cases. This
results in an efficient and accurate model across a
wide variety of system environments.",
acknowledgement = ack-nhfb,
keywords = "Multiprocessors",
}
@Article{Tetewsky:1994:GDR,
author = "Avram K. Tetewsky",
title = "{GUI} Development for Real-Time Applications",
journal = j-DDJ,
volume = "19",
number = "6",
pages = "28, 30, 32, 36, 38, 40--41",
month = jun,
year = "1994",
CODEN = "DDJOEB",
ISSN = "1044-789X",
bibdate = "Tue Sep 03 09:15:49 1996",
bibsource = "http://www.ddj.com/index/author/index.htm, UnCover
database",
abstract = "Although they take radically different approaches,
both ControlCalc and LabView are designed for building
GUI-based, real-time control applications.",
acknowledgement = ack-nhfb,
affiliation = "Draper (C.S.) Lab., Cambridge, MA, USA",
classification = "C7420 (Control engineering); C6180G (Graphical user
interfaces); C6130B (Graphics techniques); C6115
(Programming support)",
keywords = "386/OS-9000; 680X0/OS9; ControlCalc Version 1.78;
G-Windows 2.3 windowing package; GUI development;
LabView 3.0; Multipage-spreadsheet paradigm;
Multithreaded program; National Instruments; OS-9000
1.3; PC-based tools; Rapid prototyping; Real-time
control application; RTWare; Windows data-flow driven
software",
thesaurus = "Computerised control; Graphical user interfaces;
Real-time systems; Software tools",
}
@Article{Thekkath:1994:EMH,
author = "Radhika Thekkath and Susan J. Eggers",
title = "The effectiveness of multiple hardware contexts",
journal = j-SIGPLAN,
volume = "29",
number = "11",
pages = "328--337",
month = nov,
year = "1994",
CODEN = "SINODQ",
ISSN = "0362-1340",
bibdate = "Sun Dec 14 09:16:57 MST 2003",
bibsource = "http://portal.acm.org/; http://www.acm.org/pubs/toc/",
URL = "http://www.acm.org:80/pubs/citations/proceedings/asplos/195473/p328-thekkath/",
abstract = "Multithreaded processors are used to tolerate long
memory latencies. By executing threads loaded in
multiple hardware contexts, an otherwise idle processor
can keep busy, thus increasing its utilization.
However, the larger size of a multi-thread working set
can have a negative effect on cache conflict misses. In
this paper we evaluate the two phenomena together,
examining their combined effect on execution time. The
usefulness of multiple hardware contexts depends on:
program data locality, cache organization and degree of
multiprocessing. Multiple hardware contexts are most
effective on programs that have been optimized for data
locality. For these programs, execution time dropped
with increasing contexts, over widely varying
architectures. With unoptimized applications, multiple
contexts had limited value. The best performance was
seen with only two contexts, and only on uniprocessors
and small multiprocessors. The behavior of the
unoptimized applications changed more noticeably with
variations in cache associativity and cache hierarchy,
unlike the optimized programs. As a mechanism for
exploiting program parallelism, an additional processor
is clearly better than another context. However, there
were many configurations for which the addition of a
few hardware contexts brought as much or greater
performance than a larger multiprocessor with fewer
than the optimal number of contexts.",
acknowledgement = ack-nhfb,
classification = "C5320G (Semiconductor storage); C5440
(Multiprocessing systems); C6110P (Parallel
programming); C6120 (File organisation); C6150N
(Distributed systems software)",
conflocation = "San Jose, CA, USA; 4-7 Oct. 1994",
conftitle = "Sixth International Conference on Architectural
Support for Programming Languages and Operating Systems
(ASPLOS-VI)",
corpsource = "Dept. of Comput. Sci. and Eng., Washington Univ.,
Seattle, WA, USA",
keywords = "cache associativity; cache conflict misses; cache
hierarchy; cache organization; cache storage; data
locality; design; long; long memory latencies;
measurement; multi-thread working set; multiple
hardware contexts; multiprocessing; multiprocessing
systems; multithreaded processors; parallel
programming; performance; program data locality;
program parallelism; storage management; theory;
unoptimized applications",
sponsororg = "ACM; IEEE Comput. Soc",
subject = "{\bf C.5.3} Computer Systems Organization, COMPUTER
SYSTEM IMPLEMENTATION, Microcomputers. {\bf C.4}
Computer Systems Organization, PERFORMANCE OF
SYSTEMS.",
treatment = "P Practical",
}
@Article{Thekkath:1994:ISB,
author = "R. Thekkath and S. J. Eggers",
title = "Impact of sharing-based thread placement on
multithreaded architectures",
journal = j-COMP-ARCH-NEWS,
volume = "22",
number = "2",
pages = "176--186",
month = apr,
year = "1994",
CODEN = "CANED2",
ISSN = "0163-5964",
bibdate = "Fri May 12 09:40:40 MDT 2006",
bibsource = "http://portal.acm.org/",
acknowledgement = ack-nhfb,
}
@MastersThesis{Wang:1994:MAD,
author = "Xiaobao Wang",
title = "Multithreaded architecture: design and performance
analysis",
volume = "3016",
type = "Thesis (M. S.)",
school = "Department of Electrical Engineering, University of
Hawaii at Manoa",
address = "Manoa, HI, USA",
pages = "59",
year = "1994",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
series = "Theses for the degree of Master of Science (University
of Hawaii at Manoa)",
acknowledgement = ack-nhfb,
keywords = "Computer architecture; Multiprocessors",
}
@Article{Williams:1994:NTM,
author = "Al Williams",
title = "{NT-Style} Threads For {MS-DOS}",
journal = j-DDJ,
volume = "19",
number = "2",
pages = "74, 76--77",
month = feb,
year = "1994",
CODEN = "DDJOEB",
ISSN = "1044-789X",
bibdate = "Tue Sep 03 09:15:47 1996",
bibsource = "http://www.ddj.com/index/author/index.htm, UnCover
database",
abstract = "Al uses Phar Lap's TNT 386/DOS-Extender to implement
NT-style threads in a DOS program that removes a
directory tree. Instead of recursing down the tree, the
program (which works with NT and TNT) processes
directories in parallel.",
acknowledgement = ack-nhfb,
classification = "C6150J (Operating systems); C6110 (Systems analysis
and programming); C6150C (Compilers, interpreters and
other processors)",
keywords = "BIOS interrupts; C library functions; Compiling; DOS;
Memory allocation; MS-DOS; Multiple threads;
Multithreading; Phar Lap; Specification; TNT
386/DOS-Extender; Win32 programming API; Win32-base
API; Windows; Windows NT",
thesaurus = "Interrupts; Multiprogramming; Operating systems
[computers]; Program compilers",
}
@Article{Baker:1995:GTP,
author = "Mary Baker",
title = "Going threadbare (panel session): sense or sedition? a
debate on the threads abstraction",
journal = j-OPER-SYS-REV,
volume = "29",
number = "5",
pages = "227--227",
month = dec,
year = "1995",
CODEN = "OSRED8",
ISSN = "0163-5980",
bibdate = "Sat Aug 26 08:55:55 MDT 2006",
bibsource = "http://portal.acm.org/",
acknowledgement = ack-nhfb,
}
@Article{Baker:1995:UOV,
author = "Henry G. Baker",
title = "``Use-once'' variables and linear objects: storage
management, reflection and multi-threading",
journal = j-SIGPLAN,
volume = "30",
number = "1",
pages = "45--52",
month = jan,
year = "1995",
CODEN = "SINODQ",
ISSN = "0362-1340",
bibdate = "Sun Dec 14 09:16:59 MST 2003",
bibsource = "http://portal.acm.org/",
acknowledgement = ack-nhfb,
}
@Article{Baker:1995:VLO,
author = "H. G. Baker",
title = "`Use-Once' Variables and Linear Objects-Storage
Management, Reflection and Multi-Threading",
journal = j-SIGPLAN,
volume = "30",
number = "1",
pages = "45--??",
month = jan,
year = "1995",
CODEN = "SINODQ",
ISSN = "0362-1340",
bibdate = "Sat Dec 30 17:26:15 MST 1995",
acknowledgement = ack-nhfb,
}
@Book{Bic:1995:ATD,
author = "Lubomir Bic and Guang R. Gao and Jean-Luc Gaudiot",
title = "Advanced topics in dataflow computing and
multithreading",
publisher = pub-IEEE,
address = pub-IEEE:adr,
pages = "x + 450",
year = "1995",
ISBN = "0-8186-6541-6, 0-8186-6540-8 (paperback)",
ISBN-13 = "978-0-8186-6541-7, 978-0-8186-6540-0 (paperback)",
LCCN = "QA76.9.A73A356 1994",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
acknowledgement = ack-nhfb,
keywords = "Computer architecture; Data structures (Computer
science); Parallel processing (Electronic computers)",
}
@Article{Blumofe:1995:CEM,
author = "Robert D. Blumofe and Christopher F. Joerg and Bradley
C. Kuszmaul and Charles E. Leiserson and Keith H.
Randall and Yuli Zhou",
title = "{Cilk}: an efficient multithreaded runtime system",
journal = j-SIGPLAN,
volume = "30",
number = "8",
pages = "207--216",
month = aug,
year = "1995",
CODEN = "SINODQ",
ISSN = "0362-1340",
bibdate = "Sun Dec 14 09:17:08 MST 2003",
bibsource = "http://portal.acm.org/",
abstract = "Cilk (pronounced `silk') is a C-based runtime system
for multithreaded parallel programming. In this paper,
we document the efficiency of the Cilk work-stealing
scheduler, both empirically and analytically. We show
that on real and synthetic applications, the `work' and
`critical path' of a Cilk computation can be used to
accurately model performance. Consequently, a Cilk
programmer can focus on reducing the work and critical
path of his computation, insulated from load balancing
and other runtime scheduling issues. We also prove that
for the class of `fully strict' (well-structured)
programs, the Cilk scheduler achieves space, time, and
communication bounds all within a constant factor of
optimal. The Cilk runtime system currently runs on the
Connection Machine CM5 massively parallel processor
(MPP), the Intel Paragon MPP, the Silicon Graphics
Power Challenge symmetric multiprocessor (SMP), and the
MIT Phish network of workstations. Applications written
in Cilk include protein folding, graphic rendering,
backtrack searching, and the *Socrates chess program,
which won third prize in the 1994 ACM International
Computer Chess Championship.",
acknowledgement = ack-nhfb,
affiliation = "Lab. for Comput. Sci., MIT, Cambridge, MA, USA",
classification = "C6110P (Parallel programming); C6150C (Compilers,
interpreters and other processors); C6150N (Distributed
systems software)",
keywords = "*Socrates chess program; Accurate performance
modelling; Backtrack searching; C-based multithreaded
runtime system; Cilk; Communication bounds; Connection
Machine CM5; Critical path; Efficiency; Fully strict
programs; Graphic rendering; Intel Paragon; Load
balancing; MIT Phish workstation network; Parallel
programming; Protein folding; Runtime scheduling
issues; Silicon Graphics Power Challenge; Space bounds;
Time bounds; Well-structured programs; Work-stealing
scheduler",
thesaurus = "Backtracking; Biology computing; Molecular
configurations; Parallel programming; Processor
scheduling; Program interpreters; Proteins; Rendering
[computer graphics]",
}
@PhdThesis{Blumofe:1995:EMP,
author = "Robert D. (Robert David) Blumofe",
title = "Executing multithreaded programs efficiently",
type = "Thesis (Ph.D.)",
school = "Massachusetts Institute of Technology, Department of
Electrical Engineering and Computer Science",
address = "Cambridge, MA, USA",
pages = "145",
year = "1995",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
acknowledgement = ack-nhfb,
}
@Article{Cejtin:1995:HDO,
author = "Henry Cejtin and Suresh Jagannathan and Richard
Kelsey",
title = "Higher-Order Distributed Objects",
journal = j-TOPLAS,
volume = "17",
number = "5",
pages = "704--739",
month = sep,
year = "1995",
CODEN = "ATPSDT",
ISSN = "0164-0925",
bibdate = "Fri Jan 5 07:58:42 MST 1996",
URL = "http://www.acm.org/pubs/toc/Abstracts/0164-0925/213986.html",
abstract = "We describe a distributed implementation of Scheme
that permits efficient transmission of higher-order
objects such as closures and continuations. The
integration of distributed communication facilities
within a higher-order programming language engenders a
number of new abstractions and paradigms for
distributed computing. Among these are user-specified
load-balancing and migration policies for threads,
incrementally linked distributed computations, and
parameterized client-server applications. To our
knowledge, this is the first distributed dialect of
Scheme (or a related language) that addresses
lightweight communication abstractions for higher-order
objects.",
acknowledgement = ack-nhfb,
keywords = "experimentation; languages",
subject = "{\bf D.1.3}: Software, PROGRAMMING TECHNIQUES,
Concurrent Programming, Distributed programming. {\bf
D.3.2}: Software, PROGRAMMING LANGUAGES, Language
Classifications, Applicative languages. {\bf D.3.2}:
Software, PROGRAMMING LANGUAGES, Language
Classifications, Extensible languages. {\bf D.3.3}:
Software, PROGRAMMING LANGUAGES, Language Constructs
and Features, Concurrent programming structures. {\bf
D.3.2}: Software, PROGRAMMING LANGUAGES, Language
Classifications, SCHEME.",
}
@Article{Chang:1995:CSM,
author = "C.-Y. Chang and J.-P. Sheu",
title = "Compile-time scheduling of multithread with data
localities on multiple vector processors",
journal = j-CPE,
volume = "7",
number = "5",
pages = "349--369",
month = aug,
year = "1995",
CODEN = "CPEXEI",
ISSN = "1040-3108",
bibdate = "Tue Sep 7 05:40:19 MDT 1999",
acknowledgement = ack-nhfb,
}
@TechReport{Chrisochoides:1995:MMDa,
author = "Nikos Chrisochoides",
title = "Multithreaded model for dynamic load balancing
parallel adaptive {PDE} computations",
type = "Technical report",
number = "CTC95, TR221",
institution = "Cornell Theory Center, Cornell University",
address = "Ithaca, NY, USA",
pages = "23",
year = "1995",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
acknowledgement = ack-nhfb,
alttitle = "Multi-threaded model for dynamic load balancing
parallel adaptive PDE computations",
}
@TechReport{Chrisochoides:1995:MMDb,
author = "Nikos Chrisochoides",
title = "Multithreaded model for dynamic load balancing
parallel adaptive {PDE} computations",
type = "NASA contractor report 198244; ICASE report 95-83.",
institution = "Institute for Computer Applications in Science and
Engineering NASA Langley Research Center",
address = "Hampton, VA, USA",
pages = "i + 23 + i",
month = nov,
year = "1995",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
note = "To appear in Applied Numerical Mathematics Journal.",
abstract = "We present a multithreaded model for the dynamic
load-balancing of numerical, adaptive computations
required for the solution of Partial Differential
Equations (PDEs) on multiprocessors. Multithreading is
used as a means of exploring concurrency at the
processor level in order to tolerate synchronization
costs inherent to traditional (non-threaded) parallel
adaptive PDE solvers. Our preliminary analysis for
parallel, adaptive PDE solvers indicates that
multithreading can be used as a mechanism to mask
overheads required for the dynamic balancing of
processor workloads with computations required for the
actual numerical solution of the PDEs. Also,
multithreading can simplify the implementation of
dynamic load-balancing algorithms, a task that is very
difficult for traditional data parallel adaptive PDE
computations. Unfortunately, multithreading does not
always simplify program complexity, often makes code
re-usability difficult, and increases software
complexity.",
acknowledgement = ack-nhfb,
annote = "Supported in part by an Alex Nason Prize Award
Supported in part by the NSF, supplemented by ARPA.
Supported in part by the National Aeronautics and Space
Administration.",
keywords = "Differential equations, Partial; Parallel programming
(Computer science); Synchronization; Threads (Computer
programs)",
}
@MastersThesis{Divekar:1995:IMP,
author = "Ravindra Divekar",
title = "The impact of multithreading on the performance of
superscalar processors",
type = "Thesis (M.A.)",
number = "2117",
school = "State University of New York at Binghamton, Thomas J.
Watson School of Engineering and Applied Science",
address = "Binghamton, NY, USA",
pages = "vi + 73",
year = "1995",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
series = "Master's theses / State University of New York at
Binghamton",
acknowledgement = ack-nhfb,
keywords = "Operating systems (Computers)",
}
@Article{Drusinsky:1995:VDE,
author = "Doron Drusinsky",
title = "Visually Designing Embedded-Systems Applications",
journal = j-DDJ,
volume = "20",
number = "6",
pages = "62, 64, 66, 68, 104--106",
month = jun,
year = "1995",
CODEN = "DDJOEB",
ISSN = "1044-789X",
bibdate = "Thu Jan 9 09:35:43 MST 1997",
bibsource = "Compendex database,
http://www.ddj.com/index/author/index.htm, UnCover
database",
abstract = "Doron describes how design tools that incorporate
object-oriented inheritance and extended state diagrams
(the visual counterpart of finite state machines) can
be used to build control systems.",
acknowledgement = ack-nhfb,
affiliation = "R-Active Concepts and Co-Active Concepts, Ltd",
classification = "722.4; 723.1.1; 723.1; 723.5; 721.1; 723.2; C6110J
(Object-oriented programming); C5140 (Firmware); C6140D
(High level languages); C6110P (Parallel programming)",
journalabr = "Dr Dobb's J Software Tools Prof Program",
keywords = "C; C (programming language); C++ listing; Codes
(SYMBOLS); Computer aided software engineering;
Computer software; Computer systems; Concurrency;
Digital answering machine; Embedded systems;
Embedded-systems application; ESD; Extended state
diagram; Extended state diagrams; Finite automata;
Finite state diagram; Firmware; Hierarchy; Inheritance;
Interactive computer systems; Microcode;
Multithreading; Object oriented programming;
Operating-system-like routine; Reactive system; Real
time system; State diagram; Synchronization; Systems
analysis; Visual synchronization; Visually designing",
pagecount = "4",
thesaurus = "C language; C listings; Firmware; Object-oriented
programming; Real-time systems",
}
@TechReport{Dubey:1995:SSM,
author = "Pradeep Dubey",
title = "Single-program speculative multithreading ({SPSM})
architecture: compiler-assisted fine-grained
multithreading",
type = "Research report",
number = "RC 19928 (88233)",
institution = "IBM T. J. Watson Research Center",
address = "Yorktown Heights, NY, USA",
pages = "25",
day = "6",
month = feb,
year = "1995",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
abstract = "Recent limit studies on instruction-level parallel
processing, based on non-numeric applications, have
reported significant performance gains from speculative
execution of multiple control flows. This paper
describes a new single-program speculative
multithreading (SPSM) architecture, which can be viewed
as an extension of any existing single-thread
architecture. It enables speculative fetch, decode, and
execution from multiple program locations
simultaneously. Instruction threads are generated at
compile-time using control dependence analysis.
Inter-thread data dependences are also analyzed at
compile-time. However, resource binding of instructions
is performed only at run time, to offer binary
compatibility across different implementations. New
thread generation algorithms, being prototyped in a
version of the TOBEY compiler, are also described. The
SPSM architecture includes novel fork/suspend
instructions which are used to identify independent
instruction threads, and also to specify compile-time
control flow speculations associated with inter-thread
dependences.",
acknowledgement = ack-nhfb,
keywords = "Computer architecture",
}
@Article{Dugger:1995:MC,
author = "Jim Dugger",
title = "Multithreading in {C++}",
journal = j-CCCUJ,
volume = "13",
number = "11",
pages = "23--??",
month = nov,
year = "1995",
CODEN = "CCUJEX",
ISSN = "1075-2838",
bibdate = "Fri Aug 30 16:52:23 MDT 1996",
bibsource = "http://www.cuj.com/cbklist.htm",
acknowledgement = ack-nhfb,
}
@InProceedings{Elmasri:1995:TCL,
author = "N. Elmasri and H. H. J. Hum and G. R. Gao",
title = "The Threaded Communication Library: Preliminary
Experiences on a Multiprocessor with Dual-Processor
Nodes",
crossref = "ACM:1995:CPI",
pages = "195--199",
year = "1995",
bibdate = "Mon Aug 26 10:38:41 MDT 1996",
acknowledgement = ack-nhfb,
}
@Article{English:1995:MC,
author = "John English",
title = "Multithreading in {C++}",
journal = j-SIGPLAN,
volume = "30",
number = "4",
pages = "21--28",
month = apr,
year = "1995",
CODEN = "SINODQ",
ISSN = "0362-1340",
bibdate = "Sun Dec 14 09:17:03 MST 2003",
bibsource = "http://portal.acm.org/",
acknowledgement = ack-nhfb,
}
@Manual{Fahringer:1995:UTDa,
author = "Thomas Fahringer and Matthew Haines and Piyush
Mehrotra",
title = "On the utility of threads for data parallel
programming",
number = "198155",
publisher = pub-NTIS,
address = pub-NTIS:adr,
pages = "??",
year = "1995",
LCCN = "NAS 1.26:198155 Govt Pubs",
bibdate = "Fri May 10 12:18:17 MDT 2002",
note = "Shipping list number 96-0037-M",
series = "NASA contractor report",
acknowledgement = ack-nhfb,
keywords = "computation; interprocessor communication; parallel
programming; particle in cell technique; relaxation
method (mathematics)",
}
@InProceedings{Fahringer:1995:UTDb,
author = "T. Fahringer and M. Haines and P. Mehrotra",
title = "On the Utility of Threads for Data Parallel
Programming",
crossref = "ACM:1995:CPI",
pages = "51--59",
year = "1995",
bibdate = "Mon Aug 26 10:38:41 MDT 1996",
acknowledgement = ack-nhfb,
}
@InProceedings{Field:1995:PPS,
author = "John Field and G. Ramalingam and Frank Tip",
title = "Parametric program slicing",
crossref = "ACM:1995:CRP",
pages = "379--392",
year = "1995",
bibdate = "Mon May 3 12:52:30 MDT 1999",
bibsource = "http://www.acm.org/pubs/toc/",
URL = "http://www.acm.org:80/pubs/citations/proceedings/plan/199448/p379-field/",
abstract = "Program slicing is a technique for isolating
computational threads in programs. In this paper, we
show how to mechanically extract a family of practical
algorithms for computing slices directly from semantic
specifications. These algorithms are based on combining
the notion of {\em dynamic dependence tracking\/} in
term rewriting systems with a program representation
whose behavior is defined via an equational logic. Our
approach is distinguished by the fact that changes to
the behavior of the slicing algorithm can be
accomplished through simple changes in rewriting rules
that define the semantics of the program
representation. Thus, e.g., different notions of
dependence may be specified, properties of
language-specific datatypes can be exploited, and
various time, space, and precision tradeoffs may be
made. This flexibility enables us to generalize the
traditional notions of static and dynamic slices to
that of a {\em constrained\/} slice, where any subset
of the inputs of a program may be supplied.",
acknowledgement = ack-nhfb,
keywords = "algorithms; languages",
subject = "{\bf F.3.3} Theory of Computation, LOGICS AND MEANINGS
OF PROGRAMS, Studies of Program Constructs, Program and
recursion schemes. {\bf F.3.3} Theory of Computation,
LOGICS AND MEANINGS OF PROGRAMS, Studies of Program
Constructs, Functional constructs. {\bf F.3.2} Theory
of Computation, LOGICS AND MEANINGS OF PROGRAMS,
Semantics of Programming Languages. {\bf F.3.1} Theory
of Computation, LOGICS AND MEANINGS OF PROGRAMS,
Specifying and Verifying and Reasoning about Programs,
Specification techniques. {\bf F.4.2} Theory of
Computation, MATHEMATICAL LOGIC AND FORMAL LANGUAGES,
Grammars and Other Rewriting Systems. {\bf D.3.2}
Software, PROGRAMMING LANGUAGES, Language
Classifications, C.",
}
@Article{Finger:1995:LTC,
author = "Jonathan Finger",
title = "Lightweight Tasks in {C}",
journal = j-DDJ,
volume = "20",
number = "5",
pages = "48, 50, 102",
month = may,
year = "1995",
CODEN = "DDJOEB",
ISSN = "1044-789X",
bibdate = "Tue Sep 03 09:16:50 1996",
bibsource = "http://www.ddj.com/index/author/index.htm, UnCover
database, Compendex database",
abstract = "While most modern operating systems allow multiple
threads within a process, earlier-generation systems do
not. Jonathan presents a multithreading package that
allows for cooperatively multitasked threads within a
single process for operating systems that do not
explicitly support threads.",
acknowledgement = ack-nhfb,
classification = "C6150J (Operating systems); C6110B (Software
engineering techniques); 723.1.1; 723.1; 722.4",
journalabr = "Dr Dobb's J Software Tools Prof Program",
keywords = "C; C (programming language); Codes (SYMBOLS); Computer
operating systems; Context switch; Cooperative task
switching; Cooperatively multitasked threads; DOS; High
level language; Lightweight tasker; Lightweight tasks;
Microsoft compiler; Minicomputer platform; MIX
Software; Modern operating systems; Multi-C package;
Multiple processes; Multiprocessing systems;
Multiprogramming; Multitasking system; Multithreading
code; Multithreading package; Multiuser application;
Multiuser mailing list management system; PC/DOS
system; Preemptive task switching; Program compilers;
Software engineering; Tenberry Software; Threads;
Watcom compiler",
pagecount = "2",
thesaurus = "C listings; Multiprogramming; Software portability",
}
@Article{Fiske:1995:TPT,
author = "Stuart Fiske and William J. Dally",
title = "Thread prioritization: {A} thread scheduling mechanism
for multiple-context parallel processors",
journal = j-FUT-GEN-COMP-SYS,
volume = "11",
number = "6",
pages = "503--518",
month = oct,
year = "1995",
CODEN = "FGSEVI",
ISSN = "0167-739X",
bibdate = "Sat Jan 10 12:00:22 MST 2004",
acknowledgement = ack-nhfb,
remark = "High-Performance Computer Architecture.",
}
@Article{Ford:1995:ETC,
author = "Dan Ford",
title = "Event-Driven Threads In {C++}",
journal = j-DDJ,
volume = "20",
number = "6",
pages = "48--50, 52, 54, 98, 100, 102",
month = jun,
year = "1995",
CODEN = "DDJOEB",
ISSN = "1044-789X",
bibdate = "Thu Jan 9 09:35:43 MST 1997",
bibsource = "Compendex database,
http://www.ddj.com/index/author/index.htm, UnCover
database",
abstract = "Dan presents a powerful, multithreaded architecture
that can be used by almost any application. Implemented
in C++, this class library lets you quickly create and
control threads.",
acknowledgement = ack-nhfb,
affiliation = "Hewlett-Packard",
classification = "723.1.1; 723.1; 723.2; 723.5; 722.4; 721.1; C6110J
(Object-oriented programming); C6140D (High level
languages); C6110P (Parallel programming)",
journalabr = "Dr Dobb's J Software Tools Prof Program",
keywords = "C; C (programming language); C++; Computer aided
software engineering; Computer architecture; Computer
simulation; Data structures; Equivalence classes; Event
driven threads; Hierarchical systems; Interthread
communication; Message driven thread; Multithreaded;
Multithreaded applications; Multithreading; Object
oriented programming; Object oriented programming
application; Object-oriented infrastructure; Parallel
processing; Parallelism; Synchronization;
Synchronization strategies",
pagecount = "5",
thesaurus = "C language; C listings; Object-oriented programming;
Parallel programming",
}
@Book{Gao:1995:ATD,
author = "Guang R. Gao and Lubomir Bic and Jean-Luc Gaudiot",
title = "Advanced topics in dataflow computing and
multithreading",
publisher = pub-IEEE,
address = pub-IEEE:adr,
pages = "x + 450",
year = "1995",
ISBN = "0-8186-6541-6 (hardcover), 0-8186-6540-8 (paperback),
0-8186-6542-4",
ISBN-13 = "978-0-8186-6541-7 (hardcover), 978-0-8186-6540-0
(paperback), 978-0-8186-6542-4",
LCCN = "QA76.9.A73 A356 1995",
bibdate = "Sat Apr 20 11:22:41 2002",
acknowledgement = ack-nhfb,
keywords = "computer architecture; parallel processing (electronic
computers); data structures (computer science)",
}
@Article{Gerber:1995:IOX,
author = "Bob Gerber",
title = "{Informix} Online {XPS}",
journal = j-SIGMOD,
volume = "24",
number = "2",
pages = "463--463",
month = may,
year = "1995",
CODEN = "SRECD8",
ISSN = "0163-5808",
bibdate = "Mon Jan 12 08:45:52 MST 2004",
bibsource = "http://portal.acm.org/",
acknowledgement = ack-nhfb,
classification = "C6110P (Parallel programming); C6150N (Distributed
systems software); C6160B (Distributed databases)",
keywords = "Informix Dynamic Scalable Architecture; Informix
Extended Parallel Server; Informix Online XPS; Large
SMP systems; Light access methods; Linear performance
speedups; Loosely coupled environments; Massively
parallel clusters; Online database servers; Online/DSA
servers; Open systems spectrum; Parallel database
systems; Parallel resource management; Pipelined hash
partitioned operators; SMP based high performance
parallel data query; Table partitioning; Uniprocessor
systems; XPS; XPS multithreaded process groups",
thesaurus = "Distributed databases; File servers; Parallel
programming; Query processing",
xxcrossref = "Anonymous:1995:ASI",
}
@Article{Girkar:1995:ETP,
author = "Milind Girkar and Constantine D. Polychronopoulos",
title = "Extracting Task-Level Parallelism",
journal = j-TOPLAS,
volume = "17",
number = "4",
pages = "600--634",
month = jul,
year = "1995",
CODEN = "ATPSDT",
ISSN = "0164-0925",
bibdate = "Fri Jan 5 07:58:42 MST 1996",
URL = "http://www.acm.org/pubs/toc/Abstracts/0164-0925/210189.html",
abstract = "Automatic detection of {\em task-level parallelism\/}
(also referred to as functional, DAG, unstructured, or
thread parallelism) at various levels of program
granularity is becoming increasingly important for
parallelizing and back-end compilers. Parallelizing
compilers detect iteration-level or coarser granularity
parallelism which is suitable for parallel computers;
detection of parallelism at the statement-or
operation-level is essential for most modern
microprocessors, including superscalar and VLIW
architectures. In this article we study the problem of
detecting, expressing, and optimizing task-level
parallelism, where ``task'' refers to a program
statement of arbitrary granularity. Optimizing the
amount of functional parallelism (by allowing
synchronization between arbitrary nodes) in sequential
programs requires the notion of {\em precedence\/} in
terms of paths in graphs which incorporate control and
data dependences. Precedences have been defined before
in a different context; however, the definition was
dependent on the ideas of parallel execution and time.
We show that the problem of determining precedences
statically is NP-complete. Determining precedence
relationships is useful in finding the essential data
dependences. We show that there exists a unique minimum
set of essential data dependences; finding this minimum
set is NP-hard and NP-easy. We also propose a heuristic
algorithm for finding the set of essential data
dependences. Static analysis of a program in the
Perfect Benchmarks was done, and we present some
experimental results.",
acknowledgement = ack-nhfb,
keywords = "algorithms; experimentation; languages; theory",
subject = "{\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
Processors, Optimization. {\bf D.3.4}: Software,
PROGRAMMING LANGUAGES, Processors, Compilers. {\bf
F.1.3}: Theory of Computation, COMPUTATION BY ABSTRACT
DEVICES, Complexity Classes, Reducibility and
completeness. {\bf D.3.4}: Software, PROGRAMMING
LANGUAGES, Processors, Code generation.",
}
@MastersThesis{Gulati:1995:MSM,
author = "Manu Gulati",
title = "Multithreading on a superscalar microprocessor",
type = "Thesis (M.S., Engineering)",
school = "University of California, Irvine",
address = "Irvine, CA, USA",
pages = "x + 102",
year = "1995",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
acknowledgement = ack-nhfb,
}
@Manual{Haines:1995:RSC,
author = "Matthew Haines and Piyush Mehrotra and David Cronk",
title = "Ropes, support for collective operations among
distributed threads",
number = "198157",
publisher = pub-NTIS,
address = pub-NTIS:adr,
pages = "??",
year = "1995",
LCCN = "NAS 1.26:198157 Govt Pubs",
bibdate = "Fri May 10 12:18:17 MDT 2002",
note = "Shipping list number 96-0037-M",
series = "NASA contractor report",
acknowledgement = ack-nhfb,
keywords = "computer system design; distributed processing;
interprocessor communication; memory (computers);
numerical control; parallel programming; threads",
}
@Article{Jensen:1995:DRO,
author = "E. Douglas Jensen",
title = "Distributed real-time operating systems",
journal = j-DDJ,
volume = "20",
number = "2",
pages = "32--34, 36, 38",
month = feb,
year = "1995",
CODEN = "DDJOEB",
ISSN = "1044-789X",
bibdate = "Tue Sep 10 08:45:36 MDT 1996",
bibsource = "http://www.ddj.com/index/author/index.htm",
acknowledgement = ack-nhfb,
classification = "C6150N (Distributed systems software)",
keywords = "Distributed objects; Distributed operating systems;
Operating systems; Real-time computing; Real-time
operating systems; Real-time paradigm; Threads",
thesaurus = "Network operating systems; Real-time systems",
}
@Article{Kavi:1995:DCM,
author = "Krishna M. Kavi and A. R. Hurson and Phenil Patadia
and Elizabeth Abraham and Ponnarasu Shanmugam",
title = "Design of cache memories for multi-threaded dataflow
architecture",
journal = j-COMP-ARCH-NEWS,
volume = "23",
number = "2",
pages = "253--264",
month = may,
year = "1995",
CODEN = "CANED2",
ISSN = "0163-5964",
bibdate = "Fri May 12 09:40:47 MDT 2006",
bibsource = "http://portal.acm.org/",
acknowledgement = ack-nhfb,
}
@Article{Kleiman:1995:IT,
author = "Steve Kleiman and Joe Eykholt",
title = "Interrupts as threads",
journal = j-OPER-SYS-REV,
volume = "29",
number = "2",
pages = "21--26",
month = apr,
year = "1995",
CODEN = "OSRED8",
ISSN = "0163-5980",
bibdate = "Sat Aug 26 08:55:41 MDT 2006",
bibsource = "http://portal.acm.org/",
acknowledgement = ack-nhfb,
}
@Book{Kleiman:1995:PT,
author = "Steve Kleiman and Devang Shah and Bart Smaalders",
title = "Programming With Threads",
publisher = pub-SUNSOFT,
address = pub-SUNSOFT:adr,
pages = "xxviii and 534",
year = "1995",
ISBN = "0-13-172389-8",
ISBN-13 = "978-0-13-172389-4",
LCCN = "QA76.58.K59 1996",
bibdate = "Wed Dec 09 12:51:22 1998",
price = "US\$48.00",
URL = "http://www. amazon.
com/exec/obidos/ISBN%3D0131723898/sunworldonlineA/002-4892305-5599452",
acknowledgement = ack-nhfb,
}
@Article{Lam:1995:CCC,
author = "Richard B. Lam",
title = "Cross-platform communication classes",
journal = j-DDJ,
volume = "20",
number = "3",
pages = "20, 22, 24, 26",
month = mar,
year = "1995",
CODEN = "DDJOEB",
ISSN = "1044-789X",
bibdate = "Tue Sep 10 08:45:36 MDT 1996",
bibsource = "http://www.ddj.com/index/author/index.htm, UnCover
database",
abstract = "Richard summarizes common techniques for interprocess
communication, presenting a library that implements
semaphores in a platform-independent manner to allow
signaling or controlling of shared resources between
processes and threads.",
acknowledgement = ack-nhfb,
classification = "C6110J (Object-oriented programming); C6140D (High
level languages); C5620L (Local area networks); C6150N
(Distributed systems software)",
keywords = "AIX; C++ libraries; Client/server computing; Cross
platform C++ libraries; Cross-platform communication
classes; Example library; Graphical user interfaces;
Interprocess communications; OS/2; Semaphores; Shared
resources; Windows NT",
thesaurus = "C language; Client-server systems; Object-oriented
languages; Object-oriented programming; Resource
allocation; Software libraries",
}
@Article{Larcheveque:1995:OIP,
author = "J.-M. Larchev{\^{e}}que",
title = "Optimal Incremental Parsing",
journal = j-TOPLAS,
volume = "17",
number = "1",
pages = "1--15",
month = jan,
year = "1995",
CODEN = "ATPSDT",
ISSN = "0164-0925",
bibdate = "Fri Jan 5 07:58:42 MST 1996",
URL = "http://www.acm.org/pubs/toc/Abstracts/0164-0925/200996.html",
abstract = "This communication sets the problem of incremental
parsing in the context of a complete incremental
compiling system. It turns out that, according to the
incrementally paradigm of the attribute evaluator and
data-flow analyzer to be used, two definitions of
optimal incrementality in a parser are possible.
Algorithms for achieving both forms of optimality are
given, both of them based on ordinary LALR(1) parse
tables. Optimality and correctness proofs, which are
merely outlined in this communication, are made
intuitive thanks to the concept of a {\em well-formed
list of threaded trees}, a natural extension of the
concept of {\em threaded tree\/} found in earlier works
on incremental parsing.",
acknowledgement = ack-nhfb,
keywords = "algorithms; performance; theory",
subject = "{\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
Processors, Parsing. {\bf D.2.6}: Software, SOFTWARE
ENGINEERING, Programming Environments, Interactive.
{\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
Processors, Compilers. {\bf E.1}: Data, DATA
STRUCTURES, Trees.",
}
@TechReport{Lim:1995:LPB,
author = "Beng-Hong Lim and Ricardo Bianchini",
title = "Limits on the performance benefits of multithreading
and prefetching",
type = "Research report",
number = "RC 20238 (89547)",
institution = "IBM T. J. Watson Research Center",
address = "Yorktown Heights, NY, USA",
pages = "23",
day = "20",
month = oct,
year = "1995",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
acknowledgement = ack-nhfb,
annote = "Supported in part by ARPA. Supported in part by NSF
Experimental Systems. Supported in part by a NSF
Presidential Young Investigator Award",
keywords = "Cache memory; Fault-tolerant computing;
Multiprocessors",
}
@MastersThesis{Loikkanen:1995:FMS,
author = "Matias Loikkanen",
title = "A fine-grain multithreading superscalar architecture",
type = "Thesis (M.S., Engineering)",
school = "University of California, Irvine",
address = "Irvine, CA, USA",
pages = "xi + 103",
year = "1995",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
acknowledgement = ack-nhfb,
}
@MastersThesis{Lu:1995:HMC,
author = "Howard J. (Howard Jason) Lu",
title = "Heterogeneous multithreaded computing",
type = "Thesis (M. Eng.)",
school = "Massachusetts Institute of Technology, Department of
Electrical Engineering and Computer Science",
address = "Cambridge, MA, USA",
pages = "21",
year = "1995",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
acknowledgement = ack-nhfb,
}
@TechReport{Marsland:1995:SSM,
author = "T. A. Marsland and Yaoqing Gao and Francis Chi-Moon
Lau",
title = "A study of software multithreading in distributed
systems",
type = "Technical report",
number = "TR 95-23",
institution = "Dept. of Computing Science, University of Alberta",
address = "Edmonton, AB, Canada",
pages = "25",
year = "1995",
ISSN = "0316-4683",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
acknowledgement = ack-nhfb,
}
@Article{Mayes:1995:ULT,
author = "K. R. Mayes and S. Quick and B. C. Warboys",
title = "User-level threads on a general hardware interface",
journal = j-OPER-SYS-REV,
volume = "29",
number = "4",
pages = "57--62",
month = oct,
year = "1995",
CODEN = "OSRED8",
ISSN = "0163-5980",
bibdate = "Sat Aug 26 08:55:52 MDT 2006",
bibsource = "http://portal.acm.org/",
acknowledgement = ack-nhfb,
}
@MastersThesis{Metz:1995:IDS,
author = "David Metz",
title = "Interface design and system impact analysis of a
message-handling processor for fine-grain
multithreading",
type = "Thesis (M.S.)",
school = "Oregon State University",
address = "Corvallis, OR, USA",
pages = "63",
year = "1995",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
acknowledgement = ack-nhfb,
keywords = "Multiprocessors; Parallel processing (Electronic
computers)",
}
@MastersThesis{Miller:1995:TPC,
author = "Robert C. (Robert Chisolm) Miller",
title = "A type-checking preprocessor for {Cilk 2}, a
multithreaded {C} language",
type = "Thesis (M. Eng.)",
school = "Massachusetts Institute of Technology, Department of
Electrical Engineering and Computer Science",
address = "Cambridge, MA, USA",
pages = "38",
year = "1995",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
acknowledgement = ack-nhfb,
}
@PhdThesis{Moore:1995:MPD,
author = "Simon W. Moore",
title = "Multithreaded processor design",
type = "Thesis (Ph. D.)",
school = "University of Cambridge, Computer Laboratory",
address = "Cambridge, Cambridgeshire, UK",
pages = "xvi + 125",
month = feb,
year = "1995",
LCCN = "QA76.9.A73 M66 1995",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
note = "Available as Technical Report 358.",
abstract = "Multithreaded processors aim to improve upon both
control-flow and data-flow processor models by forming
some amalgam of the two. They combine sequential
behaviour from the control-flow model with concurrent
aspects from data-flow design. Some multithreaded
processor designs have added just a little concurrency
to control-flow or limited sequential execution to
data-flow. This thesis demonstrates that more
significant benefits may be obtained by a more radical
amalgamation of the two models. A data-driven
microthread model is proposed, where a microthread is a
short control-flow code sequence. To demonstrate the
efficiency of this model, a suitable multithreaded
processor, called Anaconda, is designed and evaluated.
Anaconda incorporates a scalable temporally predictable
memory tree structure with distributed virtual address
translation and memory protection. A temporally
predictable cached direct-mapped matching store is
provided to synchronise data to microthreads. Code is
prefetched into an instruction cache before execution
commences. Earliest-deadline-first or fixed-priority
scheduling is supported via a novel hardware priority
queue. Control-flow execution is performed by a
modified Alpha 21064 styled pipeline which assists
comparison with commercial processors.",
acknowledgement = ack-nhfb,
annote = "Supported in part by a studentship from the UK Science
and Engineering Research Council",
keywords = "Computer architecture",
}
@Article{Oikawa:1995:RDU,
author = "Shuichi Oikawa and Hideyuki Tokuda",
title = "Reflection of developing user-level real-time thread
packages",
journal = j-OPER-SYS-REV,
volume = "29",
number = "4",
pages = "63--76",
month = oct,
year = "1995",
CODEN = "OSRED8",
ISSN = "0163-5980",
bibdate = "Sat Aug 26 08:55:52 MDT 2006",
bibsource = "http://portal.acm.org/",
acknowledgement = ack-nhfb,
}
@Article{Prabhakar:1995:IDO,
author = "Ernest N. Prabhakar",
title = "Implementing Distributed Objects",
journal = j-DDJ,
volume = "20",
number = "8",
pages = "80, 82, 84--85, 105--106",
month = aug,
year = "1995",
CODEN = "DDJOEB",
ISSN = "1044-789X",
bibdate = "Thu Jan 9 09:35:43 MST 1997",
bibsource = "Compendex database,
http://www.ddj.com/index/author/index.htm, UnCover
database",
abstract = "Ernest uses NeXT's PDO and Objective-C to implement a
simple client-server application that packages a legacy
application into an interoperable object and its
client.",
acknowledgement = ack-nhfb,
affiliation = "NextStep\slash OpenStep User Groups Int",
classification = "723.1; 722.4; 722.3; 722.1; 722.2; C6110P (Parallel
programming); C6140D (High level languages); C6110J
(Object-oriented programming); C5620L (Local area
networks)",
journalabr = "Dr Dobb's J Software Tools Prof Program",
keywords = "Codes (symbols); Computer networks; Distributed
applications; Distributed computer systems; Distributed
objects; Interfaces (COMPUTER); Interoperable object;
Interoperable objects; Legacy application;
Multithreaded object; Network protocols; NeXT; Object
oriented programming; Objective-C; PDO; Portable
distributed objects; Program compilers; Simple client
server application; Software prototyping; Storage
allocation (computer); Table lookup",
pagecount = "4",
thesaurus = "C language; C listings; Client-server systems;
Object-oriented programming; Parallel programming",
}
@Book{Reich:1995:DHO,
author = "David E. Reich",
title = "Designing high-powered {OS/2 Warp} applications: the
anatomy of multithreaded programs",
publisher = pub-WILEY,
address = pub-WILEY:adr,
pages = "xxxi + 336",
year = "1995",
ISBN = "0-471-11586-X (paperback)",
ISBN-13 = "978-0-471-11586-1 (paperback)",
LCCN = "QA76.76.O63R437 1995",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
acknowledgement = ack-nhfb,
keywords = "Application software; Microcomputers -- Operating
systems; Operating systems (Computers); OS/2 Warp",
}
@Article{Rodens:1995:ESC,
author = "Ira Rodens",
title = "Examining {Symantec C++} 7.0",
journal = j-DDJ,
volume = "20",
number = "8",
pages = "86--89, 106--107",
month = aug,
year = "1995",
CODEN = "DDJOEB",
ISSN = "1044-789X",
bibdate = "Thu Jan 9 09:35:43 MST 1997",
bibsource = "http://www.ddj.com/index/author/index.htm, UnCover
database, Compendex database",
abstract = "Among other features, this recent incarnation of
Symantec C++ sports a visual programming environment,
class and hierarchy editors, distributed build tools,
and support for templates, exceptions, and run-time
type identification. Compiler author Walter Bright adds
tips and techniques for optimizing C++ code.",
acknowledgement = ack-nhfb,
affiliation = "CompuServe",
classification = "C6150G (Diagnostic, testing, debugging and
evaluating systems); C6130B (Graphics techniques);
C6180G (Graphical user interfaces); C6115 (Programming
support); C6110V (Visual programming); C6110J
(Object-oriented programming); 723.1.1; 723.1; 722.2;
723.5",
journalabr = "Dr Dobb's J Software Tools Prof Program",
keywords = "32-Bit multithreaded linker; Benchmarking; Browsers;
Build tasks; C (programming language); C++ language;
Codes (SYMBOLS); Computer programming; Distributed
build tools; DOS; Exceptions an; Express Agents; File
editors; Graphical user interfaces; Hierarchy editors;
LAN; Linker; Multiscope debugger; Program compilers;
Program debugging; Run time type identification; Run
time type identification programming environment;
Software engineering; Symantec C++ 7; Templates;
Upgraded Microsoft Foundation Classes; Visual
programming; Visual programming environment; Visual
tools; Windows 95 resources",
thesaurus = "Graphical user interfaces; Object-oriented
programming; Program debugging; Software reviews;
Software tools; Visual programming",
}
@Article{Rodley:1995:TPU,
author = "John Rodley",
title = "Thread Programming In {UnixWare} 2.0",
journal = j-DDJ,
volume = "20",
number = "6",
pages = "56, 58--61, 102, 104",
month = jun,
year = "1995",
CODEN = "DDJOEB",
ISSN = "1044-789X",
bibdate = "Thu Jan 9 09:35:43 MST 1997",
bibsource = "Compendex database,
http://www.ddj.com/index/author/index.htm, UnCover
database",
abstract = "With the advent of UnixWare 2.0, threads have made
their way to the UNIX desktop. John describes how
threads are implemented and how you can take advantage
of them.",
acknowledgement = ack-nhfb,
classification = "723.1; 723.5; 722.4; 722.2; 723.2; C6110P (Parallel
programming); C6150J (Operating systems); C6150N
(Distributed systems software)",
journalabr = "Dr Dobb's J Software Tools Prof Program",
keywords = "Computer aided software engineering; Computer
programming; Computer simulation; Concurrency
programming; Fork; Lightweight processes;
Multiprocessing; Multiprocessing systems;
Multithreading; Object oriented programming; P1003.lc;
Parallel programming; POSIX Portable Operating Systems
Standard; Real time systems; Signal processing; Thread
programming; Thread specification; UNIX; UnixWare 2.0;
User interfaces",
pagecount = "5",
thesaurus = "Multiprocessing programs; Parallel programming; Unix",
}
@Article{Rogers:1995:SDD,
author = "Anne Rogers and Martin C. Carlisle and John H. Reppy
and L. J. Hendren",
title = "Supporting Dynamic Data Structures on
Distributed-Memory Machines",
journal = j-TOPLAS,
volume = "17",
number = "2",
pages = "233--263",
month = mar,
year = "1995",
CODEN = "ATPSDT",
ISSN = "0164-0925",
bibdate = "Fri Jan 5 07:58:42 MST 1996",
URL = "http://www.acm.org/pubs/toc/Abstracts/0164-0925/201065.html",
abstract = "Compiling for distributed-memory machines has been a
very active research area in recent years. Much of this
work has concentrated on programs that use arrays as
their primary data structures. To date, little work has
been done to address the problem of supporting programs
that use pointer-based dynamic data structures. The
techniques developed for supporting SPMD execution of
array-based programs rely on the fact that arrays are
statically defined and directly addressable. Recursive
data structures do not have these properties, so new
techniques must be developed. In this article, we
describe an execution model for supporting programs
that use pointer-based dynamic data structures. This
model uses a simple mechanism for migrating a thread of
control based on the layout of heap-allocated data and
introduces parallelism using a technique based on
futures and lazy task creation. We intend to exploit
this execution model using compiler analyses and
automatic parallelization techniques. We have
implemented a prototype system, which we call {\em
Olden}, that runs on the Intel iPSC/860 and the
Thinking Machines CM-5. We discuss our implementation
and report on experiments with five benchmarks.",
acknowledgement = ack-nhfb,
keywords = "experimentation; languages; measurement; performance",
subject = "{\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
Processors, Run-time environments. {\bf D.1.3}:
Software, PROGRAMMING TECHNIQUES, Concurrent
Programming, Parallel programming. {\bf D.3.4}:
Software, PROGRAMMING LANGUAGES, Processors, Compilers.
{\bf D.3.3}: Software, PROGRAMMING LANGUAGES, Language
Constructs and Features, Data types and structures.
{\bf D.3.3}: Software, PROGRAMMING LANGUAGES, Language
Constructs and Features, Dynamic storage management.",
}
@PhdThesis{Roh:1995:CGE,
author = "Lucas J. Roh",
title = "Code generations, evaluations, and optimizations in
multithreaded executions",
type = "Thesis (Ph.D.)",
school = inst-CSU,
address = inst-CSU:adr,
pages = "ix + 154",
year = "1995",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
acknowledgement = ack-nhfb,
keywords = "Code generators; Computer architecture; Parallel
processing (Electronic computers)",
}
@InProceedings{Schauser:1995:SCP,
author = "Klaus E. Schauser and David E. Culler and Seth C.
Goldstein",
title = "Separation constraint partitioning: a new algorithm
for partitioning non-strict programs into sequential
threads",
crossref = "ACM:1995:CRP",
pages = "259--271",
year = "1995",
bibdate = "Mon May 3 12:52:30 MDT 1999",
bibsource = "http://www.acm.org/pubs/toc/",
URL = "http://www.acm.org:80/pubs/citations/proceedings/plan/199448/p259-schauser/",
abstract = "In this paper we present substantially improved thread
partitioning algorithms for modern implicitly parallel
languages. We present a new block partitioning
algorithm, {\em separation constraint partitioning\/},
which is both more powerful and more flexible than
previous algorithms. Our algorithm is guaranteed to
derive maximal threads. We present a theoretical
framework for proving the correctness of our
partitioning approach, and we show how separation
constraint partitioning makes interprocedural
partitioning viable. We have implemented the
partitioning algorithms in an Id90 compiler for
workstations and parallel machines. Using this
experimental platform, we quantify the effectiveness of
different partitioning schemes on whole applications.",
acknowledgement = ack-nhfb,
keywords = "algorithms; experimentation; languages; theory;
verification",
subject = "{\bf D.3.2} Software, PROGRAMMING LANGUAGES, Language
Classifications, Parallel C. {\bf D.3.4} Software,
PROGRAMMING LANGUAGES, Processors, Compilers. {\bf
F.2.2} Theory of Computation, ANALYSIS OF ALGORITHMS
AND PROBLEM COMPLEXITY, Nonnumerical Algorithms and
Problems, Computations on discrete structures. {\bf
F.3.3} Theory of Computation, LOGICS AND MEANINGS OF
PROGRAMS, Studies of Program Constructs.",
}
@MastersThesis{Shahnaz:1995:DMD,
author = "Munira Shahnaz",
title = "Design of a multithreaded data cache for a hyperscalar
processor",
type = "Thesis (M.S.)",
school = "Department of Electrical Engineering, Texas A\&M
University",
address = "College Station, TX, USA",
pages = "xi + 80",
year = "1995",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
acknowledgement = ack-nhfb,
keywords = "Major electrical engineering",
}
@PhdThesis{Shankar:1995:STI,
author = "Bhanu Shankar",
title = "The spectrum of thread implementations on hybrid
multithreaded architectures",
type = "Thesis (Ph.D.)",
school = inst-CSU,
address = inst-CSU:adr,
pages = "xi + 176",
year = "1995",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
acknowledgement = ack-nhfb,
keywords = "Computer architecture; Parallel processing (Electronic
computers)",
}
@TechReport{Small:1995:SAB,
author = "Christopher Small and Margo Seltzer",
title = "Scheduler activations on {BSD}: sharing thread
management between kernel and application",
type = "Technical Report",
number = "31-95",
institution = "Center for Research in Computing Technology, Harvard
University",
address = "Cambridge, MA, USA",
pages = "12",
year = "1995",
bibdate = "Tue Sep 17 07:11:15 2002",
acknowledgement = ack-nhfb,
}
@Article{Spertus:1995:ELB,
author = "Ellen Spertus and William J. Dally",
title = "Evaluating the locality benefits of active messages",
journal = j-SIGPLAN,
volume = "30",
number = "8",
pages = "189--198",
month = aug,
year = "1995",
CODEN = "SINODQ",
ISSN = "0362-1340",
bibdate = "Sun Dec 14 09:17:08 MST 2003",
bibsource = "http://portal.acm.org/",
abstract = "A major challenge in fine-grained computing is
achieving locality without excessive scheduling
overhead. We built two J-Machine implementations of a
fine-grained programming model, the Berkeley Threaded
Abstract Machine. One implementation takes an active
messages approach, maintaining a scheduling hierarchy
in software in order to improve data cache performance.
Another approach relies on the J-Machine's message
queues and fast task switch, lowering the control costs
at the expense of data locality. Our analysis measures
the costs and benefits of each approach, for a variety
of programs and cache configurations. The active
messages implementation is strongest when miss
penalties are high and for the finest-grained programs.
The hardware-buffered implementation is strongest in
direct-mapped caches, where it achieves substantially
better instruction cache performance.",
acknowledgement = ack-nhfb,
affiliation = "Lab. for Comput. Sci., MIT, Cambridge, MA, USA",
classification = "C6110P (Parallel programming); C6120 (File
organisation); C6150C (Compilers, interpreters and
other processors); C6150N (Distributed systems
software)",
keywords = "Active messages; Benefits; Berkeley Threaded Abstract
Machine; Cache configuration; Costs; Data cache
performance; Data locality; Direct-mapped caches; Fast
task switch; Fine-grained computing; Fine-grained
programming model; Hardware-buffered; Instruction cache
performance; J-Machine; Locality benefits; Message
queues; Miss penalties; Scheduling hierarchy;
Scheduling overhead",
thesaurus = "Cache storage; Cost-benefit analysis; Parallel
programming; Program compilers; Scheduling; Software
performance evaluation",
}
@Article{Steensgaard:1995:ONC,
author = "B. Steensgaard and E. Jul",
title = "Object and native code thread mobility among
heterogeneous computers (includes sources)",
journal = j-OPER-SYS-REV,
volume = "29",
number = "5",
pages = "68--77",
month = dec,
year = "1995",
CODEN = "OSRED8",
ISSN = "0163-5980",
bibdate = "Sat Aug 26 08:55:55 MDT 2006",
bibsource = "http://portal.acm.org/",
acknowledgement = ack-nhfb,
}
@Book{SunSoft:1995:SMP,
author = "{SunSoft}",
title = "{Solaris} multithreaded programming guide",
publisher = pub-SUNSOFT,
address = pub-SUNSOFT:adr,
pages = "xviii + 158",
year = "1995",
ISBN = "0-13-160896-7",
ISBN-13 = "978-0-13-160896-2",
LCCN = "QA76.76.O63 S635 1995",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
acknowledgement = ack-nhfb,
keywords = "Multiprocessors; Operating systems (Computers);
Solaris (Computer file); UNIX (Computer file)",
}
@Article{Taylor:1995:CSA,
author = "Richard N. Taylor and Kari A. Nies and Gregory Alan
Bolcer and Craig A. MacFarlane and Kenneth M. Anderson
and Gregory F. Johnson",
title = "Chiron-1: a software architecture for user interface
development, maintenance, and run-time support",
journal = j-TOCHI,
volume = "2",
number = "2",
pages = "105--144",
month = jun,
year = "1995",
CODEN = "ATCIF4",
ISSN = "1073-0516",
bibdate = "Tue Jan 19 05:49:17 MST 1999",
bibsource = "http://www.acm.org/pubs/contents/journals/tochi/",
URL = "http://www.acm.org:80/pubs/citations/journals/tochi/1995-2-2/p105-taylor/",
abstract = "The Chiron-1 user interface system demonstrates key
techniques that enable a strict separation of an
application from its user interface. These techniques
include separating the control-flow aspects of the
application and user interface: they are concurrent and
may contain many threads. Chiron also separates
windowing and look-and-feel issues from dialogue and
abstract presentation decisions via mechanisms
employing a client-server architecture. To separate
application code from user interface code, user
interface agents called {\em artists\/} are attached to
instances of application abstract data types (ADTs).
Operations on ADTs within the application implicitly
trigger user interface activities within the artists.
Multiple artists can be attached to ADTs, providing
multiple views and alternative forms of access and
manipulation by either a single user or by multiple
users. Each artist and the application run in separate
threads of control. Artists maintain the user interface
by making remote calls to an abstract depiction
hierarchy in the Chiron server, insulting the user
interface code from the specifics of particular
windowing systems and toolkits. The Chiron server and
clients execute in separate processes. The
client-server architecture also supports multilingual
systems: mechanisms are demonstrated that support
clients written in programming languages other than
that of the server while nevertheless supporting
object-oriented server concepts. The system has been
used in several universities and research and
development projects. It is available by anonymous
ftp.",
acknowledgement = ack-nhfb,
keywords = "design; languages",
subject = "{\bf H.5.2} Information Systems, INFORMATION
INTERFACES AND PRESENTATION, User Interfaces, User
interface management systems (UIMS). {\bf D.2.2}
Software, SOFTWARE ENGINEERING, Design Tools and
Techniques, User interfaces. {\bf D.2.m} Software,
SOFTWARE ENGINEERING, Miscellaneous, Reusable
software**.",
}
@PhdThesis{Thekkath:1995:DPM,
author = "Radhika Thekkath",
title = "Design and performance of multithreaded
architectures",
type = "Thesis (Ph.D.)",
school = "University of Washington",
address = "Seattle, WA, USA",
pages = "x + 100",
year = "1995",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
acknowledgement = ack-nhfb,
keywords = "Computer architecture; Multiprocessors",
}
@MastersThesis{Todiwala:1995:DRT,
author = "Khushroo Rustom Todiwala",
title = "A distributed ray tracing implementation using
multithreaded {RPC}",
type = "Thesis (M.S.)",
number = "4691",
school = "University of Texas at El Paso",
address = "El Paso, TX, USA",
pages = "xi + 140",
year = "1995",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
series = "Master's thesis / University of Texas at El Paso",
acknowledgement = ack-nhfb,
keywords = "Electronic data processing -- Distributed processing",
}
@TechReport{Toulouse:1995:CID,
author = "Michel Toulouse and Teodor Gabriel Crainic and Michel
Gendreau",
title = "Communication issues in designing cooperative
multi-thread parallel searches",
type = "Report",
number = "CRT-95-47",
institution = "Centre de recherche sur les transports, Universit{\'e}
de Montr{\'e}al",
address = "Montr{\'e}al, Qu{\'e}bec, Canada",
year = "1995",
bibdate = "Sat Apr 20 11:20:32 2002",
acknowledgement = ack-nhfb,
}
@Article{Tullsen:1995:SMM,
author = "Dean M. Tullsen and Susan J. Eggers and Henry M.
Levy",
title = "Simultaneous multithreading: maximizing on-chip
parallelism",
journal = j-COMP-ARCH-NEWS,
volume = "23",
number = "2",
pages = "392--403",
month = may,
year = "1995",
CODEN = "CANED2",
ISSN = "0163-5964",
bibdate = "Fri May 12 09:40:47 MDT 2006",
bibsource = "http://portal.acm.org/",
acknowledgement = ack-nhfb,
}
@Article{vanHoff:1995:JIP,
author = "Arthur {van Hoff}",
title = "{Java} and {Internet} Programming",
journal = j-DDJ,
volume = "20",
number = "8",
pages = "56, 58, 60--61, 101--102",
month = aug,
year = "1995",
CODEN = "DDJOEB",
ISSN = "1044-789X",
bibdate = "Thu Jan 9 09:35:43 MST 1997",
bibsource = "Compendex database,
http://www.ddj.com/index/author/index.htm, UnCover
database",
URL = "http://www.ddj.com/ddj/issues/j508a.htm",
abstract = "Java, a language designed for Internet development, is
an object-oriented, multithreaded, portable, dynamic
language that's similar to C, yet simpler than C++.",
abstract2 = "In 1990, a new language called `Java' was developed
which, it turns out, addresses many of the issues of
software distribution on the Internet. Java is a
simple, object-oriented, multi-threaded,
garbage-collected, secure, robust,
architecture-neutral, portable, high-performance,
dynamic language. The language is similar to C and C++
but much simpler. Java programs are compiled into a
binary format that can be executed on many platforms
without recompilation. The language contains mechanisms
to verify and execute binary Java programs in a
controlled environment, protecting computer from
potential viruses and security violations.",
acknowledgement = ack-nhfb,
affiliation = "Sun Microsystems",
classification = "723.1; 722.3; 723.1.1; 721.1; 722.2; 723.1; 722.3;
723.1.1; 721.1; 722.2; C6140D (High level languages);
C6150N (Distributed systems software); C6110J
(Object-oriented programming)",
journalabr = "Dr Dobb's J Software Tools Prof Program",
keywords = "Architecture-neutral language; Binary format; Browser;
Bytecodes; Bytecodes, Java language; C (programming
language); Codes (symbols); Compilation; Computational
linguistics; Computer networks; Computer programming
languages; Computer software portability;
Garbage-collection; High-performance dynamic language;
Interactive programs; Interfaces (computer); Internet;
Internet programming; Java (programming language);
Multithreaded language; Multithreading; Object oriented
programming; Object-oriented language; Portable
language; Program compilers; Program interpreters;
Robust language; Secure language; Security of data;
Semantics; Software distribution; Software engineering;
Syntax; UNIX",
pagecount = "4",
thesaurus = "Complete computer programs; Internet; Object-oriented
languages; Object-oriented programming; Security of
data; Software portability",
}
@Article{Wallach:1995:OAM,
author = "Deborah A. Wallach and Wilson C. Hsieh and Kirk L.
Johnson and M. Frans Kaashoek and William E. Weihl",
title = "Optimistic active messages: a mechanism for scheduling
communication with computation",
journal = j-SIGPLAN,
volume = "30",
number = "8",
pages = "217--226",
month = aug,
year = "1995",
CODEN = "SINODQ",
ISSN = "0362-1340",
bibdate = "Sun Dec 14 09:17:08 MST 2003",
bibsource = "http://portal.acm.org/",
abstract = "Low-overhead message passing is critical to the
performance of many applications. Active messages (AMs)
reduce the software overhead for message handling:
messages are run as handlers instead of as threads,
which avoids the overhead of thread management and the
unnecessary data copying of other communication models.
Scheduling the execution of AMs is typically done by
disabling and enabling interrupts or by polling the
network. This primitive scheduling control puts severe
restrictions on the code that can be run in a message
handler. This paper describes a new software mechanism,
optimistic active messages (OAM), that eliminates these
restrictions; OAMs allow arbitrary user code to execute
in handlers, and also allow handlers to block. Despite
this gain in expressiveness, OAMs perform as well as
AMs. We used OAM as the base for a remote procedure
calling (RPC) system, Optimistic RPC (ORPC), for the
CM-5 multiprocessor; it consists of an optimized thread
package and a stub compiler that hides communication
details from the programmer. ORPC is 1.5 to 5 times
faster than traditional RPC (TRPC) for small messages
and performs as well as AMs. Applications that
primarily communicate using large data transfers or are
fairly coarse-grained perform equally well. For
applications that send many short messages, however,
the ORPC and AM implementations are up to 3 times
faster than the TRPC implementations. Using ORPC,
programmers obtain the benefits of well-proven
programming abstractions, do not have to be concerned
with communication details, and yet obtain nearly the
performance of hand-coded AM programs.",
acknowledgement = ack-nhfb,
affiliation = "Lab. for Comput. Sci., MIT, Cambridge, MA, USA",
classification = "C6150N (Distributed systems software)",
keywords = "Application performance; Arbitrary user code;
Blocking; CM-5 multiprocessor; Coarse-grained
applications; Communication detail hiding;
Communication scheduling; Computation scheduling;
Expressiveness; Large data transfers; Low-overhead
message passing; Message handlers; Optimistic active
messages; Optimistic remote procedure calls; Optimized
thread package; Programming abstractions; Software
overhead; Stub compiler",
thesaurus = "Message passing; Remote procedure calls; Scheduling",
}
@Article{Walter:1995:PMS,
author = "Stephen Walter",
title = "Put Multiprocessing Systems to Work. {II}",
journal = j-UNIX-REVIEW,
volume = "13",
number = "1",
pages = "39--??",
month = jan,
year = "1995",
CODEN = "UNRED5",
ISSN = "0742-3136",
bibdate = "Sat May 25 07:59:58 MDT 1996",
bibsource = "UnCover library database",
abstract = "Programming for multiprocessors requires use of
unusual features such as spin locks, mutex locks,
barrier synchronization, and the like. Using the POSIX
threads API helps, but the rest you have to do
yourself.",
acknowledgement = ack-nhfb,
}
@Article{Yam:1995:CFD,
author = "Michael Yam",
title = "A {C++} Framework for {DCE} Threads",
journal = j-DDJ,
volume = "20",
type = "SB",
number = "??",
pages = "27--??",
month = jul # "\slash " # aug,
year = "1995",
CODEN = "DDJOEB",
ISSN = "1044-789X",
bibdate = "Mon Sep 2 09:09:39 MDT 1996",
bibsource = "http://www.ddj.com/index/author/index.htm",
acknowledgement = ack-nhfb,
}
@InProceedings{Yasrebi:1995:EDO,
author = "M. Yasrebi",
title = "Experience with Distributed Objects in a Portable and
Multithreaded Library for a {LAN\slash WAN} Gateway
Application",
crossref = "IEEE:1995:PCL",
volume = "20",
pages = "164--173",
year = "1995",
bibdate = "Mon Sep 27 14:16:06 MDT 1999",
acknowledgement = ack-nhfb,
annote = "Also known as LCN'95. IEEE Cat no 95TB100005",
keywords = "computer communications; IEEE; LCN; local computer
networks",
}
@Article{Aitken:1996:MCJ,
author = "Gary Aitken",
title = "Moving from {C++} to {Java}",
journal = j-DDJ,
volume = "21",
number = "3",
pages = "52, 54--56",
month = mar,
year = "1996",
CODEN = "DDJOEB",
ISSN = "1044-789X",
bibdate = "Thu Jan 9 09:35:43 MST 1997",
bibsource = "Compendex database,
http://www.ddj.com/index/author/index.htm, UnCover
database",
abstract = "Java is claimed to be much easier to learn than C++,
but the difficulties most people have in learning to
program in both C++ and Java have little to do with
language itself. This paper explores some of the
differences between Java and C++. The aim is to make
user aware of potential problems and opportunities when
moving from C++ to Java. Brief explanations are
provided for those concepts that until now unfamiliar
for many users.",
acknowledgement = ack-nhfb,
affiliation = "Integrated Computer Solutions",
classification = "723.1; 723.1.1; 722.2; 721.1; 723.2",
journalabr = "Dr Dobb's J Software Tools Prof Program",
keywords = "C (programming language); Character arrays; Character
sets; Data structures; File organization; Garbage
collected language; Header files; Interfaces
(COMPUTER); Java; Machine code; Member function;
Multithreading; Object oriented programming; Pointers;
Program compilers; Program interpreters; Program
processors; Program translators; Programming theory;
Software engineering; Synchronization; Virtual
machine",
pagecount = "4",
}
@MastersThesis{Annavaram:1996:BVN,
author = "Murali Annavaram",
title = "Blocking versus non-blocking: issues and tradeoffs in
multithreaded code execution",
type = "Thesis (M.S.)",
school = inst-CSU,
address = inst-CSU:adr,
pages = "viii + 57",
year = "1996",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
acknowledgement = ack-nhfb,
keywords = "Multiprocessors -- Design and construction; Parallel
processing (Electronic computers)",
}
@Article{Bellosa:1996:PIL,
author = "Frank Bellosa and Martin Steckermeier",
title = "The Performance Implications of Locality Information
Usage in Shared-Memory Multiprocessors",
journal = j-J-PAR-DIST-COMP,
volume = "37",
number = "1",
pages = "113--121",
day = "25",
month = aug,
year = "1996",
CODEN = "JPDCER",
DOI = "http://dx.doi.org/10.1006/jpdc.1996.0112",
ISSN = "0743-7315",
bibdate = "Thu Mar 9 09:19:00 MST 2000",
bibsource = "http://www.idealibrary.com/servlet/useragent?func=showAllIssues&curIssueID=jpdc",
URL = "http://www.idealibrary.com/links/doi/10.1006/jpdc.1996.0112/production;
http://www.idealibrary.com/links/doi/10.1006/jpdc.1996.0112/production/pdf",
acknowledgement = ack-nhfb,
classification = "C5220P (Parallel architecture); C5440
(Multiprocessing systems); C5470 (Performance
evaluation and testing)",
corpsource = "Dept. of Comput. Sci. IV, Erlangen-Nurnberg Univ.,
Germany",
keywords = "cache miss counters; cache storage; evaluation;
locality information; memory multiprocessors; parallel
architectures; performance; scalable shared-;
scheduling decisions; shared memory systems;
shared-memory multiprocessors; thread scheduling
algorithms",
treatment = "P Practical",
}
@Article{Berg:1996:JQH,
author = "Cliff Berg",
title = "{Java Q and A}: How do Threads Work and How Can {I}
Create a General-Purpose Event?",
journal = j-DDJ,
volume = "21",
number = "11",
pages = "111--??",
day = "1",
month = nov,
year = "1996",
CODEN = "DDJOEB",
ISSN = "1044-789X",
bibdate = "Tue Oct 15 08:20:29 1996",
bibsource = "http://www.ddj.com/index/author/index.htm",
acknowledgement = ack-nhfb,
}
@Article{Bianchini:1996:EPM,
author = "Ricardo Bianchini and Beng-Hong Lim",
title = "Evaluating the Performance of Multithreading and
Prefetching in Multiprocessors",
journal = j-J-PAR-DIST-COMP,
volume = "37",
number = "1",
pages = "83--97",
day = "25",
month = aug,
year = "1996",
CODEN = "JPDCER",
DOI = "http://dx.doi.org/10.1006/jpdc.1996.0109",
ISSN = "0743-7315",
bibdate = "Thu Mar 9 09:19:00 MST 2000",
bibsource = "http://www.idealibrary.com/servlet/useragent?func=showAllIssues&curIssueID=jpdc",
URL = "http://www.idealibrary.com/links/doi/10.1006/jpdc.1996.0109/production;
http://www.idealibrary.com/links/doi/10.1006/jpdc.1996.0109/production/pdf",
acknowledgement = ack-nhfb,
classification = "C5220P (Parallel architecture); C5440
(Multiprocessing systems); C5470 (Performance
evaluation and testing); C6110P (Parallel programming);
C6150N (Distributed systems software)",
corpsource = "COPPE Syst. Eng., Federal Univ. of Rio de Janeiro,
Brazil",
keywords = "cache; memory latency; MIT Alewife multiprocessor;
multiprocessing systems; multiprocessors;
multithreading; parallel; parallel architectures;
performance evaluation; programming; software
prefetching; storage management",
treatment = "P Practical",
}
@Article{Blumofe:1996:CEM,
author = "Robert D. Blumofe and Christopher F. Joerg and Bradley
C. Kuszmaul and Charles E. Leiserson and Keith H.
Randall and Yuli Zhou",
title = "{Cilk}: An Efficient Multithreaded Runtime System",
journal = j-J-PAR-DIST-COMP,
volume = "37",
number = "1",
pages = "55--69",
day = "25",
month = aug,
year = "1996",
CODEN = "JPDCER",
DOI = "http://dx.doi.org/10.1006/jpdc.1996.0107",
ISSN = "0743-7315",
bibdate = "Thu Mar 9 09:19:00 MST 2000",
bibsource = "http://www.idealibrary.com/servlet/useragent?func=showAllIssues&curIssueID=jpdc",
URL = "http://www.idealibrary.com/links/doi/10.1006/jpdc.1996.0107/production;
http://www.idealibrary.com/links/doi/10.1006/jpdc.1996.0107/production/pdf",
acknowledgement = ack-nhfb,
classification = "C4240P (Parallel programming and algorithm theory);
C6110P (Parallel programming)",
corpsource = "Lab. for Comput. Sci., MIT, Cambridge, MA, USA",
keywords = "Cilk; critical path analysis; critical-path length;
directed acyclic graph; load balancing; multithreaded
runtime system; parallel; parallel algorithms; parallel
programming; processor scheduling; programming; runtime
scheduling; synchronisation",
treatment = "P Practical; T Theoretical or Mathematical",
}
@Article{Drake:1996:IJT,
author = "Donald G. Drake",
title = "Introduction to {Java} threads",
journal = j-JAVAWORLD,
volume = "1",
number = "2",
pages = "??--??",
month = apr,
year = "1996",
CODEN = "????",
ISSN = "1091-8906",
bibdate = "Thu Aug 13 08:48:26 MDT 1998",
bibsource = "http://www.javaworld.com/javaworld/",
URL = "http://www.javaworld.com/javaworld/jw-04-1996/jw-04-threads.htm",
acknowledgement = ack-nhfb,
}
@Article{Eickemeyer:1996:EMU,
author = "Richard J. Eickemeyer and Ross E. Johnson and Steven
R. Kunkel and Mark S. Squillante and Shiafun Liu",
title = "Evaluation of multithreaded uniprocessors for
commercial application environments",
journal = j-COMP-ARCH-NEWS,
volume = "24",
number = "2",
pages = "203--212",
month = may,
year = "1996",
CODEN = "CANED2",
ISSN = "0163-5964",
bibdate = "Fri May 12 09:40:47 MDT 2006",
bibsource = "http://portal.acm.org/",
acknowledgement = ack-nhfb,
}
@Article{Esposito:1996:MVB,
author = "Dino Esposito",
title = "Multithreading and {Visual Basic}",
journal = j-DDJ,
volume = "21",
number = "12",
pages = "46--??",
month = dec,
year = "1996",
CODEN = "DDJOEB",
ISSN = "1044-789X",
bibdate = "Sat Mar 07 08:22:15 1998",
bibsource = "http://www.ddj.com/index/author/index.htm",
abstract = "Although Visual Basic does not support native
multithreading, it does support the Windows API. This
means you can write VB applications composed of two or
more threads. Dino shows you how to create
multithreaded applications using both the SDK and
Visual Basic",
acknowledgement = ack-nhfb,
}
@MastersThesis{Farber:1996:EAM,
author = "Philipp Farber",
title = "Execution architecture of the multithreaded {ADAM}
prototype",
type = "Thesis (doctoral)",
number = "13",
school = "Swiss Federal Institute of Technology",
address = "Zurich, Switzerland",
pages = "iv + 127",
year = "1996",
ISBN = "3-7281-2384-6",
ISBN-13 = "978-3-7281-2384-8",
LCCN = "????",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
series = "TIK-Schriftenreihe",
acknowledgement = ack-nhfb,
keywords = "Computer architecture; Parallel processing (Electronic
computers); Parallel programming (Computer science)",
}
@InProceedings{Farcy:1996:ISP,
author = "A. Farcy and O. Temam",
title = "Improving Single-Process Performance with
Multithreaded Processors",
crossref = "ACM:1996:FCP",
pages = "350--357",
year = "1996",
bibdate = "Wed Mar 18 12:33:18 MST 1998",
acknowledgement = ack-nhfb,
annote = "Also known as ICS'96. Held as part of the Federated
computing research conference (FCRC'96)",
keywords = "supercomputing; ICS; ACM; SIGARCH; FCRC; computer;
architecture",
}
@Article{Foster:1996:NAI,
author = "Ian Foster and Carl Kesselman and Steven Tuecke",
title = "The {Nexus} Approach to Integrating Multithreading and
Communication",
journal = j-J-PAR-DIST-COMP,
volume = "37",
number = "1",
pages = "70--82",
day = "25",
month = aug,
year = "1996",
CODEN = "JPDCER",
DOI = "http://dx.doi.org/10.1006/jpdc.1996.0108",
ISSN = "0743-7315",
bibdate = "Thu Mar 9 09:19:00 MST 2000",
bibsource = "http://www.idealibrary.com/servlet/useragent?func=showAllIssues&curIssueID=jpdc",
URL = "http://www.idealibrary.com/links/doi/10.1006/jpdc.1996.0108/production;
http://www.idealibrary.com/links/doi/10.1006/jpdc.1996.0108/production/pdf",
acknowledgement = ack-nhfb,
classification = "C6110P (Parallel programming); C6150C (Compilers,
interpreters and other processors); C6150N (Distributed
systems software)",
corpsource = "Div. of Math. and Comput. Sci., Argonne Nat. Lab., IL,
USA",
keywords = "asynchronous messaging; client-server systems;
compiler target; data communication; distributed;
distributed-memory systems; dynamic; dynamic
communication; global memory model; global pointer;
mechanism; memory systems; message passing;
multithreading; Nexus runtime system; parallel
languages; parallel programming; program compilers;
remote service request; synchronisation; thread
creation",
treatment = "P Practical",
}
@Article{Goldstein:1996:LTI,
author = "Seth Copen Goldstein and Klaus Erik Schauser and David
E. Culler",
title = "Lazy Threads: Implementing a Fast Parallel Call",
journal = j-J-PAR-DIST-COMP,
volume = "37",
number = "1",
pages = "5--20",
day = "25",
month = aug,
year = "1996",
CODEN = "JPDCER",
DOI = "http://dx.doi.org/10.1006/jpdc.1996.0104",
ISSN = "0743-7315",
bibdate = "Thu Mar 9 09:19:00 MST 2000",
bibsource = "http://www.idealibrary.com/servlet/useragent?func=showAllIssues&curIssueID=jpdc",
URL = "http://www.idealibrary.com/links/doi/10.1006/jpdc.1996.0103/production;
http://www.idealibrary.com/links/doi/10.1006/jpdc.1996.0103/production/pdf;
http://www.idealibrary.com/links/doi/10.1006/jpdc.1996.0104/production;
http://www.idealibrary.com/links/doi/10.1006/jpdc.1996.0104/production/pdf",
acknowledgement = ack-nhfb,
classification = "C4240P (Parallel programming and algorithm theory);
C6120 (File organisation)",
corpsource = "Comput. Sci. Div., California Univ., Berkeley, CA,
USA",
keywords = "code generation strategy; lazy threads; multithreaded
execution models; parallel call; parallel programming;
parallel-ready sequential call; storage management",
treatment = "T Theoretical or Mathematical",
}
@MastersThesis{Gollapudi:1996:MCA,
author = "Sreenivas Gollapudi",
title = "A multithreaded client-server architecture for
distributed multimedia systems",
type = "Thesis (M.S.)",
school = "Dept. of Computer Science, State University of New
York at Buffalo",
address = "Buffalo, NY, USA",
pages = "viii + 72",
year = "1996",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
note = "Also available as technical report 96-13.",
acknowledgement = ack-nhfb,
keywords = "Electronic data processing -- Distributed processing;
Multimedia systems -- Design and construction;
Multitasking (Computer science)",
}
@Article{Grunwald:1996:WOT,
author = "Dirk Grunwald and Richard Neves",
title = "Whole-Program Optimization for Time and Space
Efficient Threads",
journal = j-SIGPLAN,
volume = "31",
number = "9",
pages = "50--59",
month = sep,
year = "1996",
CODEN = "SINODQ",
ISBN = "0-89791-767-7",
ISBN-13 = "978-0-89791-767-4",
ISSN = "0362-1340",
bibdate = "Sat May 1 15:50:57 MDT 1999",
bibsource = "http://www.acm.org/pubs/toc/",
note = "Co-published as SIGOPS Operating Systems Review {\bf
30}(5), December 1996, and as SIGARCH Computer
Architecture News, {\bf 24}(special issue), October
1996.",
URL = "http://www.acm.org:80/pubs/citations/proceedings/asplos/237090/p50-grunwald/",
acknowledgement = ack-nhfb,
keywords = "algorithms; design; languages; performance",
subject = "{\bf D.3.4} Software, PROGRAMMING LANGUAGES,
Processors, Optimization. {\bf C.1.2} Computer Systems
Organization, PROCESSOR ARCHITECTURES, Multiple Data
Stream Architectures (Multiprocessors), Parallel
processors**. {\bf D.1.3} Software, PROGRAMMING
TECHNIQUES, Concurrent Programming, Parallel
programming.",
}
@Article{Grunwald:1996:WPO,
author = "Dirk Grunwald and Richard Neves",
title = "Whole-program optimization for time and space
efficient threads",
journal = j-SIGPLAN,
volume = "31",
number = "9",
pages = "50--59",
month = sep,
year = "1996",
CODEN = "SINODQ",
ISSN = "0362-1340",
bibdate = "Sun Dec 14 09:17:23 MST 2003",
bibsource = "http://portal.acm.org/",
note = "Co-published in {\em Operating Systems Review}, {\bf
30}(5).",
acknowledgement = ack-nhfb,
}
@Article{Helmbold:1996:TRC,
author = "D. P. Helmbold and C. E. McDowell",
title = "A Taxonomy of Race Conditions",
journal = j-J-PAR-DIST-COMP,
volume = "33",
number = "2",
pages = "159--164",
day = "15",
month = mar,
year = "1996",
CODEN = "JPDCER",
DOI = "http://dx.doi.org/10.1006/jpdc.1996.0034",
ISSN = "0743-7315",
bibdate = "Thu Mar 9 09:18:59 MST 2000",
bibsource = "http://www.idealibrary.com/servlet/useragent?func=showAllIssues&curIssueID=jpdc",
URL = "http://www.idealibrary.com/links/doi/10.1006/jpdc.1996.0034/production;
http://www.idealibrary.com/links/doi/10.1006/jpdc.1996.0034/production/pdf",
acknowledgement = ack-nhfb,
classification = "C4230 (Switching theory); C4240P (Parallel
programming and algorithm theory); C6110P (Parallel
programming)",
corpsource = "Dept. of Comput. and Inf. Sci., California Univ.,
Santa Cruz, CA, USA",
keywords = "access; anomalies; hazards and race conditions;
multiple threads; nondeterministic behavior; parallel
programming; race conditions taxonomy; timing",
treatment = "P Practical; T Theoretical or Mathematical",
}
@Article{Hertzum:1996:BQO,
author = "Morten Hertzum and Erik Fr{\o}kj{\ae}r",
title = "Browsing and querying in online documentation: a study
of user interfaces and the interaction process",
journal = j-TOCHI,
volume = "3",
number = "2",
pages = "136--161",
month = jun,
year = "1996",
CODEN = "ATCIF4",
ISSN = "1073-0516",
bibdate = "Tue Jan 19 05:49:17 MST 1999",
bibsource = "http://www.acm.org/pubs/contents/journals/tochi/",
URL = "http://www.acm.org:80/pubs/citations/journals/tochi/1996-3-2/p136-hertzum/",
abstract = "A user interface study concerning the usage
effectiveness of selected retrieval modes was conducted
using an experimental text retrieval system, TeSS,
giving access to online documentation of certain
programming tools. Four modes of TeSS were compared:
(1) browsing, (2) conventional boolean retrieval, (3)
boolean retrieval based on Venn diagrams, and (4) these
three combined. Further, the modes of TeSS were
compared to the use of printed manuals. The subjects
observed were 87 computing new to them. In the
experiment the use of printed manuals is faster and
provides answers of higher quality than any of the
electronic modes. Therefore, claims about the
effectiveness of computer-based text retrieval have to
by vary in situations where printed manuals are
manageable to the user. Among the modes of TeSS,
browsing is the fastest and the one causing the fewest
operational errors. On the same two variables, time and
operational errors, the Venn diagram mode performs
better than conventional boolean retrieval. The
combined mode scores worst on the objective performance
measures; nonetheless nearly all subject prefer this
mode. Concerning the interaction process, the subjects
tend to manage the complexities of the information
retrieval tasks by issuing series of simple commands
and exploiting the interactive capabilities of TeSS. To
characterize the dynamics of the interaction process
two concepts are introduced; threads and sequences of
tactics. Threads in a query sequence describes the
continuity during retrieval. Sequences of tactics
concern the combined mode and describe how different
retrieval modes succeed each other as the retrieval
process evolves.",
acknowledgement = ack-nhfb,
keywords = "experimentation; human factors; performance",
subject = "{\bf H.5.2} Information Systems, INFORMATION
INTERFACES AND PRESENTATION, User Interfaces,
Evaluation/methodology. {\bf H.3.3} Information
Systems, INFORMATION STORAGE AND RETRIEVAL, Information
Search and Retrieval, Query formulation. {\bf H.3.3}
Information Systems, INFORMATION STORAGE AND RETRIEVAL,
Information Search and Retrieval, Retrieval models.
{\bf H.3.4} Information Systems, INFORMATION STORAGE
AND RETRIEVAL, Systems and Software. {\bf H.5.2}
Information Systems, INFORMATION INTERFACES AND
PRESENTATION, User Interfaces, Training, help, and
documentation.",
}
@MastersThesis{Hudson:1996:MDA,
author = "Greg Hudson",
title = "Multithreaded design in the {Athena} environment",
type = "Thesis (M. Eng.)",
school = "Massachusetts Institute of Technology, Department of
Electrical Engineering and Computer Science",
address = "Cambridge, MA, USA",
pages = "240",
year = "1996",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
acknowledgement = ack-nhfb,
}
@PhdThesis{Joerg:1996:CSP,
author = "Christopher F. (Christopher Frank) Joerg",
title = "The {Cilk} system for parallel multithreaded
computing",
type = "Thesis (Ph.D.)",
school = "Massachusetts Institute of Technology, Department of
Electrical Engineering and Computer Science",
address = "Cambridge, MA, USA",
pages = "199",
year = "1996",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
acknowledgement = ack-nhfb,
}
@Article{Karamcheti:1996:RME,
author = "Vijay Karamcheti and John Plevyak and Andrew A.
Chien",
title = "Runtime Mechanisms for Efficient Dynamic
Multithreading",
journal = j-J-PAR-DIST-COMP,
volume = "37",
number = "1",
pages = "21--40",
day = "25",
month = aug,
year = "1996",
CODEN = "JPDCER",
DOI = "http://dx.doi.org/10.1006/jpdc.1996.0105",
ISSN = "0743-7315",
bibdate = "Thu Mar 9 09:19:00 MST 2000",
bibsource = "http://www.idealibrary.com/servlet/useragent?func=showAllIssues&curIssueID=jpdc",
URL = "http://www.idealibrary.com/links/doi/10.1006/jpdc.1996.0105/production;
http://www.idealibrary.com/links/doi/10.1006/jpdc.1996.0105/production/pdf",
acknowledgement = ack-nhfb,
classification = "C4240P (Parallel programming and algorithm theory);
C5220P (Parallel architecture); C6150C (Compilers,
interpreters and other processors)",
corpsource = "Dept. of Comput. Sci., Illinois Univ., Urbana, IL,
USA",
keywords = "compiler; distributed memory machines; distributed
memory systems; dynamic multithreading; hybrid;
Illinois Concert runtime system; parallel; parallel
architectures; program compilers; programming; pull
messaging; stack-heap; threads",
treatment = "P Practical",
}
@Book{Kleiman:1996:PT,
author = "Steve Kleiman and Devang Shah and Bart Smaalders",
title = "Programming with threads",
publisher = pub-PH,
address = pub-PH:adr,
pages = "xxviii + 534",
year = "1996",
ISBN = "0-13-172389-8",
ISBN-13 = "978-0-13-172389-4",
LCCN = "QA76.58 .K53 1996",
bibdate = "Fri May 10 12:18:17 MDT 2002",
acknowledgement = ack-nhfb,
keywords = "multitasking (computer science); parallel programming
(computer science); synchronization",
}
@Book{Lewis:1996:TPG,
author = "Bil Lewis and Daniel J. Berg",
title = "Threads Primer: {A} Guide to Multithreaded
Programming",
publisher = pub-SUNSOFT,
address = pub-SUNSOFT:adr,
pages = "xxvi + 319",
year = "1996",
ISBN = "0-13-443698-9",
ISBN-13 = "978-0-13-443698-2",
LCCN = "QA76.642 .L478 1996",
bibdate = "Fri Apr 11 17:06:46 2003",
series = "Sun BluePrints Program",
acknowledgement = ack-nhfb,
keywords = "POSIX (Computer software standard); Threads (Computer
programs); UNIX (Computer file)",
}
@Article{Lowenthal:1996:UFG,
author = "David K. Lowenthal and Vincent W. Freeh and Gregory R.
Andrews",
title = "Using Fine-Grain Threads and Run-Time Decision Making
in Parallel Computing",
journal = j-J-PAR-DIST-COMP,
volume = "37",
number = "1",
pages = "41--54",
day = "25",
month = aug,
year = "1996",
CODEN = "JPDCER",
DOI = "http://dx.doi.org/10.1006/jpdc.1996.0106",
ISSN = "0743-7315",
bibdate = "Thu Mar 9 09:19:00 MST 2000",
bibsource = "http://www.idealibrary.com/servlet/useragent?func=showAllIssues&curIssueID=jpdc",
URL = "http://www.idealibrary.com/links/doi/10.1006/jpdc.1996.0106/production;
http://www.idealibrary.com/links/doi/10.1006/jpdc.1996.0106/production/pdf",
acknowledgement = ack-nhfb,
classification = "C5220P (Parallel architecture); C6110P (Parallel
programming)C4240P (Parallel programming and algorithm
theory)",
corpsource = "Dept. of Comput. Sci., Arizona Univ., Tucson, AZ,
USA",
keywords = "computing; distributed shared memory;
distributed-memory multiprocessors; fine-grain;
fine-grain threads; parallel; parallel architectures;
parallel programming; parallelism; run-time decision
making",
treatment = "P Practical",
}
@PhdThesis{Mao:1996:PMS,
author = "Weihua Mao",
title = "Performance modeling of data prefetching and
multithreading in scalable multiprocessors",
type = "Thesis (Ph.D.)",
school = "University of Southern California",
address = "Los Angeles, CA, USA",
pages = "xi + 130",
year = "1996",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
acknowledgement = ack-nhfb,
alttitle = "Performance modeling of data prefetching and
multithreading in scalable multiprocessors",
}
@Article{McManis:1996:JDSa,
author = "Chuck McManis",
title = "{Java} In Depth: Synchronizing threads in {Java}",
journal = j-JAVAWORLD,
volume = "1",
number = "2",
pages = "??--??",
month = apr,
year = "1996",
CODEN = "????",
ISSN = "1091-8906",
bibdate = "Thu Aug 13 08:48:26 MDT 1998",
bibsource = "http://www.javaworld.com/javaworld/",
URL = "http://www.javaworld.com/javaworld/jw-04-1996/jw-04-synch.htm",
acknowledgement = ack-nhfb,
}
@Article{McManis:1996:JDSb,
author = "Chuck McManis",
title = "{Java} In Depth: Synchronizing threads in {Java},
{Part II}",
journal = j-JAVAWORLD,
volume = "1",
number = "3",
pages = "??--??",
month = may,
year = "1996",
CODEN = "????",
ISSN = "1091-8906",
bibdate = "Thu Aug 13 08:48:26 MDT 1998",
bibsource = "http://www.javaworld.com/javaworld/",
URL = "http://www.javaworld.com/javaworld/jw-05-1996/jw-05-mcmanis.htm",
acknowledgement = ack-nhfb,
}
@Article{McManis:1996:JDT,
author = "Chuck McManis",
title = "{Java} In Depth: Threads and applets and visual
controls",
journal = j-JAVAWORLD,
volume = "1",
number = "5",
pages = "??--??",
month = jul,
year = "1996",
CODEN = "????",
ISSN = "1091-8906",
bibdate = "Thu Aug 13 08:48:26 MDT 1998",
bibsource = "http://www.javaworld.com/javaworld/",
URL = "http://www.javaworld.com/javaworld/jw-07-1996/jw-07-mcmanis.htm",
acknowledgement = ack-nhfb,
}
@MastersThesis{Mishra:1996:TIS,
author = "Amitabh Mishra",
title = "Task and instruction scheduling in parallel
multithreaded processors",
type = "Thesis (M.S.)",
school = "Department of Computer Science, Texas A\&M
University",
address = "College Station, TX, USA",
pages = "ix + 60",
year = "1996",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
acknowledgement = ack-nhfb,
keywords = "Major computer science",
}
@Article{Mitchell:1996:JTM,
author = "John D. Mitchell",
title = "{Java} Tips: More about threads and the resize
problem",
journal = j-JAVAWORLD,
volume = "1",
number = "4",
pages = "??--??",
month = jun,
year = "1996",
CODEN = "????",
ISSN = "1091-8906",
bibdate = "Thu Aug 13 08:48:26 MDT 1998",
bibsource = "http://www.javaworld.com/javaworld/",
URL = "http://www.javaworld.com/javaworld/javatips/jw-javatip9.htm",
acknowledgement = ack-nhfb,
}
@Book{Moore:1996:MPD,
author = "Simon W. (Simon William) Moore",
title = "Multithreaded processor design",
volume = "SECS 358",
publisher = pub-KLUWER,
address = pub-KLUWER:adr,
pages = "xvi + 142",
year = "1996",
ISBN = "0-7923-9718-5",
ISBN-13 = "978-0-7923-9718-2",
LCCN = "QA76.5 .M574 1996",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
series = "The Kluwer international series in engineering and
computer science",
acknowledgement = ack-nhfb,
keywords = "Computer architecture; computer architecture;
Computers -- Design; multiprocessors -- design and
construction; Multiprocessors -- Design and
construction; Parallel computers; parallel computers",
}
@Book{Nichols:1996:PP,
author = "Bradford Nichols and Bick Buttlar and Jackie Proulx
Farrell",
title = "{Pthreads} Programming",
publisher = pub-ORA,
address = pub-ORA:adr,
pages = "xvi + 267",
year = "1996",
ISBN = "1-56592-115-1",
ISBN-13 = "978-1-56592-115-3",
LCCN = "QA76.642.N53 1996",
bibdate = "Mon May 11 11:04:53 1998",
price = "US\$29.95",
URL = "http://www.oreilly.com/catalog/pthread;
http://www.amazon.com/exec/obidos/ASIN/1565921151/ref=sim_books/002-4892305-5599452",
acknowledgement = ack-nhfb,
}
@Book{Northrup:1996:PUT,
author = "Charles J. Northrup",
title = "Programming with {UNIX} Threads",
publisher = pub-WILEY,
address = pub-WILEY:adr,
pages = "xv + 399",
year = "1996",
ISBN = "0-471-13751-0 (paperback)",
ISBN-13 = "978-0-471-13751-1 (paperback)",
LCCN = "QA76.76.O63 N674 1996",
bibdate = "Tue May 25 07:14:38 MDT 1999",
acknowledgement = ack-nhfb,
keywords = "UNIX (computer file); operating systems (computers)",
}
@Book{Norton:1996:TTM,
author = "Scott J. Norton and Mark D. DiPasquale",
title = "Thread time: the multithreaded programming guide",
publisher = pub-PH,
address = pub-PH:adr,
pages = "xx + 538",
year = "1996",
ISBN = "0-13-190067-6 (paperback)",
ISBN-13 = "978-0-13-190067-7 (paperback)",
LCCN = "QA76.642.N67 1996",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
series = "Hewlett-Packard professional books",
URL = "http://www.amazon.com/exec/obidos/ASIN/0131900676/ref=sim_books/002-4892305-5599452",
acknowledgement = ack-nhfb,
annote = "System requirements: IBM compatible PC; CD-ROM
drive.",
keywords = "Parallel programming (Computer science)",
}
@Book{Pham:1996:MPW,
author = "Thuan Q. Pham and Pankaj K. Garg",
title = "Multithreaded programming with {Windows NT}",
publisher = pub-PHPTR,
address = pub-PHPTR:adr,
pages = "xviii + 227",
year = "1996",
ISBN = "0-13-120643-5",
ISBN-13 = "978-0-13-120643-4",
LCCN = "QA76.642 .P52 1996",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
acknowledgement = ack-nhfb,
annote = "One 3 1/2 in. diskette in pocket inside back cover.",
keywords = "Microsoft Windows NT; multiprocessors;
Multiprocessors; Parallel programming; parallel
programming (computer science); Parallel programming
(Computer science)",
}
@Article{Philbin:1996:TSC,
author = "James Philbin and Jan Edler and Otto J. Anshus and
Craig C. Douglas and Kai Li",
title = "Thread Scheduling for Cache Locality",
journal = j-SIGPLAN,
volume = "31",
number = "9",
pages = "60--71",
month = sep,
year = "1996",
CODEN = "SINODQ",
ISBN = "0-89791-767-7",
ISBN-13 = "978-0-89791-767-4",
ISSN = "0362-1340",
bibdate = "Sun Dec 14 09:17:23 MST 2003",
bibsource = "http://portal.acm.org/; http://www.acm.org/pubs/toc/",
note = "Co-published as SIGOPS Operating Systems Review {\bf
30}(5), December 1996, and as SIGARCH Computer
Architecture News, {\bf 24}(special issue), October
1996.",
URL = "http://www.acm.org:80/pubs/citations/proceedings/asplos/237090/p60-philbin/",
acknowledgement = ack-nhfb,
keywords = "algorithms; experimentation; performance",
subject = "{\bf D.3.4} Software, PROGRAMMING LANGUAGES,
Processors, Optimization. {\bf I.1.2} Computing
Methodologies, SYMBOLIC AND ALGEBRAIC MANIPULATION,
Algorithms, Algebraic algorithms. {\bf F.2.2} Theory of
Computation, ANALYSIS OF ALGORITHMS AND PROBLEM
COMPLEXITY, Nonnumerical Algorithms and Problems,
Sequencing and scheduling. {\bf F.2.1} Theory of
Computation, ANALYSIS OF ALGORITHMS AND PROBLEM
COMPLEXITY, Numerical Algorithms and Problems,
Computations on matrices. {\bf D.2.2} Software,
SOFTWARE ENGINEERING, Design Tools and Techniques, User
interfaces.",
}
@Book{Robbins:1996:PUP,
author = "Kay A. Robbins and Steven Robbins",
title = "Practical {UNIX} programming: a guide to concurrency,
communication, and multithreading",
publisher = pub-PHPTR,
address = pub-PHPTR:adr,
pages = "xiv + 658",
year = "1996",
ISBN = "0-13-443706-3",
ISBN-13 = "978-0-13-443706-4",
LCCN = "QA76.76.O63 R615 1996",
bibdate = "Tue May 25 07:14:38 MDT 1999",
acknowledgement = ack-nhfb,
keywords = "Microcomputers -- Programming; Operating systems; UNIX
(Computer file)",
}
@Article{Roh:1996:GOE,
author = "Lucas Roh and Walid A. Najjar and Bhanu Shankar and A.
P. Wim B{\"o}hm",
title = "Generation, Optimization, and Evaluation of
Multithreaded Code",
journal = j-J-PAR-DIST-COMP,
volume = "32",
number = "2",
pages = "188--204",
day = "1",
month = feb,
year = "1996",
CODEN = "JPDCER",
DOI = "http://dx.doi.org/10.1006/jpdc.1996.0013",
ISSN = "0743-7315",
bibdate = "Thu Mar 9 09:18:59 MST 2000",
bibsource = "http://www.idealibrary.com/servlet/useragent?func=showAllIssues&curIssueID=jpdc",
URL = "http://www.idealibrary.com/links/doi/10.1006/jpdc.1996.0013/production;
http://www.idealibrary.com/links/doi/10.1006/jpdc.1996.0013/production/pdf",
acknowledgement = ack-nhfb,
classification = "C1180 (Optimisation techniques); C4230M
(Multiprocessor interconnection); C5220P (Parallel
architecture); C6110P (Parallel programming); C6150C
(Compilers, interpreters and other processors); C6150N
(Distributed systems software)",
corpsource = "Dept. of Comput. Sci., Colorado State Univ., Fort
Collins, CO, USA",
keywords = "architectures; code generation scheme; compiler
intermediate; form; global bottom-up optimization
technique; inputs; instruction level; intrathread
locality; latency tolerance; multiprocessor
interconnection networks; multithreaded; multithreaded
code; multithreaded code evaluation; multithreaded code
generation; multithreaded computation model;
multithreaded synchronization; optimisation; optimising
compilers; parallel; parallel architectures;
parallelising compilers; parallelism; Pebbles;
processor scheduling; processor utilization; program
level; programming; reduced instruction set computing;
scalability; synchronisation; synchronization costs;
top-down code generation",
treatment = "T Theoretical or Mathematical",
}
@Article{Severance:1996:MOB,
author = "Charles Severance and Richard Enbody and Paul
Petersen",
title = "Managing the Overall Balance of Operating System
Threads on a Multiprocessor Using Automatic
Self-Allocating Threads ({ASAT})",
journal = j-J-PAR-DIST-COMP,
volume = "37",
number = "1",
pages = "106--112",
day = "25",
month = aug,
year = "1996",
CODEN = "JPDCER",
DOI = "http://dx.doi.org/10.1006/jpdc.1996.0111",
ISSN = "0743-7315",
bibdate = "Thu Mar 9 09:19:00 MST 2000",
bibsource = "http://www.idealibrary.com/servlet/useragent?func=showAllIssues&curIssueID=jpdc",
URL = "http://www.idealibrary.com/links/doi/10.1006/jpdc.1996.0111/production;
http://www.idealibrary.com/links/doi/10.1006/jpdc.1996.0111/production/pdf",
acknowledgement = ack-nhfb,
classification = "C5440 (Multiprocessing systems); C6110P (Parallel
programming); C6150J (Operating systems); C6150N
(Distributed systems software)",
corpsource = "Dept. of Comput. Sci., Michigan State Univ., East
Lansing, MI, USA",
keywords = "allocating threads; allocation; automatic self-;
multiprocessing system; multiprocessing systems;
operating system; operating systems (computers);
parallel programming; processor scheduling; run-time
environment; self-scheduling; thread; thread
scheduling",
treatment = "P Practical; X Experimental",
}
@Article{Sundaresan:1996:COO,
author = "Neelakantan Sundaresan and Dennis Gannon",
title = "{Coir}: An Object-Oriented System for Control and
Dynamic Data Parallelism",
journal = j-J-PAR-DIST-COMP,
volume = "37",
number = "1",
pages = "98--105",
day = "25",
month = aug,
year = "1996",
CODEN = "JPDCER",
DOI = "http://dx.doi.org/10.1006/jpdc.1996.0110",
ISSN = "0743-7315",
bibdate = "Thu Mar 9 09:19:00 MST 2000",
bibsource = "http://www.idealibrary.com/servlet/useragent?func=showAllIssues&curIssueID=jpdc",
URL = "http://www.idealibrary.com/links/doi/10.1006/jpdc.1996.0110/production;
http://www.idealibrary.com/links/doi/10.1006/jpdc.1996.0110/production/pdf",
acknowledgement = ack-nhfb,
classification = "C4240P (Parallel programming and algorithm theory);
C5220P (Parallel architecture); C6110J (Object-oriented
programming); C6110P (Parallel programming); C6150N
(Distributed systems software)",
corpsource = "Applic. Dev. Technol. Inst., IBM Corp., San Jose, CA,
USA",
keywords = "C++ library; Coir; distributed memory machines;
distributed memory systems; dynamic data parallelism;
message passing; message-passing; multithreading;
object-oriented; object-oriented system; operating
system; parallel; parallel architectures; parallel
programming; programming; shared memory systems;
symmetric multiprocessors; synchronisation",
treatment = "P Practical; T Theoretical or Mathematical",
}
@Article{Tullsen:1996:ECI,
author = "Dean M. Tullsen and Susan J. Eggers and Joel S. Emer
and Henry M. Levy and Jack L. Lo and Rebecca L. Stamm",
title = "Exploiting choice: instruction fetch and issue on an
implementable simultaneous multithreading processor",
journal = j-COMP-ARCH-NEWS,
volume = "24",
number = "2",
pages = "191--202",
month = may,
year = "1996",
CODEN = "CANED2",
ISSN = "0163-5964",
bibdate = "Fri May 12 09:40:47 MDT 2006",
bibsource = "http://portal.acm.org/",
acknowledgement = ack-nhfb,
}
@PhdThesis{Tullsen:1996:SM,
author = "Dean Michael Tullsen",
title = "Simultaneous multithreading",
type = "Thesis (Ph.D.)",
school = "University of Washington",
address = "Seattle, WA, USA",
pages = "vi + 99",
year = "1996",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
acknowledgement = ack-nhfb,
keywords = "Computer architecture; Parallel processing (Electronic
computers)",
}
@MastersThesis{Verriello:1996:MSM,
author = "Anthony Verriello",
title = "Memory sharing in multithreaded transaction
environments",
type = "Thesis (M.S.)",
school = "Hofstra University",
address = "Westport, CT, USA",
pages = "180",
year = "1996",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
acknowledgement = ack-nhfb,
keywords = "Memory, Virtual (Computer science); Transaction
systems (Computer systems)",
}
@Article{Wise:1996:SDP,
author = "David S. Wise and Joshua Walgenbach",
title = "Static and dynamic partitioning of pointers as links
and threads",
journal = j-SIGPLAN,
volume = "31",
number = "6",
pages = "42--49",
month = jun,
year = "1996",
CODEN = "SINODQ",
ISSN = "0362-1340",
bibdate = "Sun Dec 14 09:17:20 MST 2003",
bibsource = "http://portal.acm.org/",
acknowledgement = ack-nhfb,
affiliation = "Dept. of Comput. Sci., Indiana Univ., Bloomington, IN,
USA",
}
@Article{Yam:1996:DPV,
author = "Michael Yam",
title = "{DCE} Pthreads versus {NT} Threads. {Michael} ports
{PTF}, a {C++} class library for {DCE} pthreads, from
{HP-UX System 9} to {Windows NT}. In doing so, he
examines the differences between pthreads and {NT}
threads, and describes the porting experience",
journal = j-DDJ,
volume = "21",
number = "12",
pages = "16--??",
month = dec,
year = "1996",
CODEN = "DDJOEB",
ISSN = "1044-789X",
bibdate = "Mon Dec 2 07:52:21 MST 1996",
bibsource = "http://www.ddj.com/index/author/index.htm",
acknowledgement = ack-nhfb,
}
@PhdThesis{Yoo:1996:PCM,
author = "Namhoon Yoo",
title = "Parallelism control in multithreaded multiprocessors",
type = "Thesis (Ph.D.)",
school = "University of Southern California",
address = "Los Angeles, CA, USA",
pages = "x + 86",
year = "1996",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
acknowledgement = ack-nhfb,
keywords = "Computer architecture; Data flow computing;
Multiprocessors; Parallel processing (Electronic
computers)",
}
@Book{Zignin:1996:TDM,
author = "Bernard Zignin",
title = "Techniques du multithread: du parall{\`e}lisme dans
les processus {(French) [Multithreading techniques:
parallelism in processes]}",
publisher = pub-HERMES,
address = pub-HERMES:adr,
pages = "72",
year = "1996",
ISBN = "2-86601-562-2",
ISBN-13 = "978-2-86601-562-6",
LCCN = "????",
bibdate = "Wed Dec 09 23:36:26 1998",
series = "CNAM. Syntheses informatiques",
acknowledgement = ack-nhfb,
keywords = "Parall{\`e}lisme (informatique)",
}
@Article{Anonymous:1997:NPW,
author = "Anonymous",
title = "New Products: {WebThreads 1.0.1; QUERYFLEX Report
Writer; Linux Pro Desktop 1.0; NDP Fortran for Linux;
Numerics and Visualization for Java; Craftworks
Linux/AXP 2.2; InfoDock Linux Software Development
Toolset; Caldera Wabi 2.2 for Linux}",
journal = j-LINUX-J,
volume = "34",
pages = "??--??",
month = feb,
year = "1997",
CODEN = "LIJOFX",
ISSN = "1075-3583",
bibdate = "Fri Oct 9 08:35:26 MDT 1998",
bibsource = "http://noframes.linuxjournal.com/lj-issues/issue34/index.html",
acknowledgement = ack-nhfb,
}
@Article{Anonymous:1997:TNR,
author = "Anonymous",
title = "Technology News \& Reviews: {Chemkin} software;
{OpenMP Fortran Standard}; {ODE} Toolbox for {Matlab};
{Java} products; {Scientific WorkPlace 3.0}",
journal = j-IEEE-COMPUT-SCI-ENG,
volume = "4",
number = "4",
pages = "75--??",
month = oct # "\slash " # dec,
year = "1997",
CODEN = "ISCEE4",
ISSN = "1070-9924",
bibdate = "Sat Jan 9 08:57:23 MST 1999",
bibsource = "http://www.computer.org/cse/cs1998",
URL = "http://dlib.computer.org/cs/books/cs1997/pdf/c4075.pdf",
acknowledgement = ack-nhfb,
}
@Article{Bednorz:1997:CDA,
author = "M. Bednorz and A. Gwozdowski and K. Zieli{\'n}ski",
title = "Contextual debugging and analysis of multithreaded
applications",
journal = j-CPE,
volume = "9",
number = "2",
pages = "123--139",
month = feb,
year = "1997",
CODEN = "CPEXEI",
ISSN = "1040-3108",
bibdate = "Tue Sep 7 06:06:28 MDT 1999",
bibsource = "http://www3.interscience.wiley.comjournalfinder.html",
URL = "http://www3.interscience.wiley.com/cgi-bin/fulltext?ID=13852&PLACEBO=IE.pdf;
http://www3.interscience.wiley.com/cgi-bin/abstract?ID=13852",
acknowledgement = ack-nhfb,
}
@Book{Beveridge:1997:MAW,
author = "Jim Beveridge and Robert Wiener",
title = "Multithreading applications in {Win32}: the complete
guide to threads",
publisher = pub-AWDP,
address = pub-AWDP:adr,
pages = "xviii + 368",
year = "1997",
ISBN = "0-201-44234-5 (pb) 0-201-18385-4 (CD-ROM)",
ISBN-13 = "978-0-201-44234-2 (pb) 978-0-201-18385-6 (CD-ROM)",
LCCN = "QA76.76.O63 B478 1997",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
acknowledgement = ack-nhfb,
annote = "System requirements: IBM compatible PC; Win32; Windows
NT or Windows 95; CD-ROM drive.",
keywords = "Microsoft Win32; Microsoft Windows (Computer file);
Microsoft Windows NT; Operating systems (Computers)",
}
@Article{Bik:1997:JPJ,
author = "Aart J. C. Bik and Juan E. Villacis and Dennis B.
Gannon",
title = "javar: {A} prototype {Java} restructuring compiler",
journal = j-CPE,
volume = "9",
number = "11",
pages = "1181--1191",
month = nov,
year = "1997",
CODEN = "CPEXEI",
ISSN = "1040-3108",
bibdate = "Tue Sep 7 06:06:35 MDT 1999",
bibsource = "http://www3.interscience.wiley.comjournalfinder.html",
note = "Special Issue: Java for computational science and
engineering --- simulation and modeling II.",
URL = "http://www3.interscience.wiley.com/cgi-bin/fulltext?ID=13819&PLACEBO=IE.pdf;
http://www3.interscience.wiley.com/cgi-bin/abstract?ID=13819",
acknowledgement = ack-nhfb,
classification = "C6110J (Object-oriented programming); C6110P
(Parallel programming); C6150C (Compilers, interpreters
and other processors)",
conflocation = "Las Vegas, NV, USA; 21 June 1997",
conftitle = "Java for Computational Science and Engineering ---
Simulation and Modeling II",
corpsource = "Dept. of Comput. Sci., Indiana Univ., Bloomington, IN,
USA",
keywords = "annotations; explicit parallelism; functionality;
implicit parallelism; Java program parallelization;
Java restructuring compiler; javar; multi-threading;
object-oriented languages; parallelising compilers;
prototype; semantic analysis; software prototyping",
pubcountry = "UK",
sponsororg = "ACM",
treatment = "P Practical",
}
@Article{Bramley:1997:TNRb,
author = "Randall Bramley",
title = "Technology News \& Reviews: {Chemkin} software;
{OpenMP Fortran Standard}; {ODE} Toolbox for {Matlab};
{Java} products; {Scientific WorkPlace 3.0}",
journal = j-IEEE-COMPUT-SCI-ENG,
volume = "4",
number = "4",
pages = "75--78",
month = oct # "\slash " # dec,
year = "1997",
CODEN = "ISCEE4",
ISSN = "1070-9924",
bibdate = "Sat Jan 9 08:57:23 MST 1999",
bibsource = "http://www.computer.org/cse/cs1998",
URL = "http://dlib.computer.org/cs/books/cs1997/pdf/c4075.pdf",
acknowledgement = ack-nhfb,
}
@Book{Butenhof:1997:PPT,
author = "David R. Butenhof",
title = "Programming with {POSIX} threads",
publisher = pub-AW,
address = pub-AW:adr,
pages = "xviii + 381",
year = "1997",
ISBN = "0-201-63392-2",
ISBN-13 = "978-0-201-63392-4",
LCCN = "QA76.76.T55B88 1997",
bibdate = "Mon Sep 01 08:53:12 1997",
price = "US\$31.95",
URL = "http://www.amazon.com/exec/obidos/ASIN/0201633922/ref=sim_books/002-4892305-5599452",
acknowledgement = ack-nhfb,
}
@Article{Calcote:1997:TPS,
author = "John Calcote",
title = "Thread Pools and Server Performance",
journal = j-DDJ,
volume = "22",
number = "7",
pages = "60--??",
month = jul,
year = "1997",
CODEN = "DDJOEB",
ISSN = "1044-789X",
bibdate = "Sat Jun 28 10:43:47 MDT 1997",
acknowledgement = ack-nhfb,
}
@TechReport{Eickemeyer:1997:EMP,
author = "Richard J. Eickemeyer",
title = "Evaluation of multithreaded processors and
thread-switch policies",
type = "Research report",
number = "RC 20956 (92759)",
institution = "IBM T. J. Watson Research Center",
address = "Yorktown Heights, NY, USA",
pages = "16",
day = "18",
month = aug,
year = "1997",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
abstract = "This paper examines the use of coarse-grained
multithreading to lessen the negative impact of memory
access latencies on the performance of uniprocessor
on-line transaction processing systems. It considers
the effect of switching threads on cache misses in a
two-level cache system. It also examines several
different thread-switch policies. The results suggest
that multithreading with a small number (3-5) of active
threads can significantly improve the performance of
such commercial environments.",
acknowledgement = ack-nhfb,
keywords = "Cache memory; Computer architecture; Threads (Computer
programs)",
}
@Article{Emerson:1997:USW,
author = "E. A. Emerson and A. P. Sistla",
title = "Utilizing Symmetry when Model-Checking under Fairness
Assumptions: An Automata-Theoretic Approach",
journal = j-TOPLAS,
volume = "19",
number = "4",
pages = "617--638",
month = jul,
year = "1997",
CODEN = "ATPSDT",
ISSN = "0164-0925",
bibdate = "Wed Dec 3 16:28:05 MST 1997",
bibsource = "http://www.acm.org/pubs/toc/",
URL = "http://www.acm.org:80/pubs/citations/journals/toplas/1997-19-4/p617-emerson/",
abstract = "One useful technique for combating the state explosion
problem is to exploit symmetry when performing temporal
logic model checking. In previous work it is shown how,
using some basic notions of group theory, symmetry may
be exploited for the full range of correctness
properties expressible in the very expressive temporal
logic CTL*. Surprisingly, while fairness properties are
readily expressible in CTL*, these methods are not
powerful enough to admit any amelioration of state
explosion, when fairness assumptions are involved. We
show that it is nonetheless possible to handle fairness
efficiently by trading some group theory for automata
theory. Our automata-theoretic approach depends on
detecting fair paths subtly encoded in a quotient
structure whose arcs are annotated with permutations,
by using a threaded structure that reflects coordinate
shifts caused by the permutations.",
acknowledgement = ack-nhfb,
keywords = "design; languages; theory; verification",
subject = "{\bf F.3.1} Theory of Computation, LOGICS AND MEANINGS
OF PROGRAMS, Specifying and Verifying and Reasoning
about Programs. {\bf F.1.1} Theory of Computation,
COMPUTATION BY ABSTRACT DEVICES, Models of Computation.
{\bf D.2.4} Software, SOFTWARE ENGINEERING,
Software/Program Verification.",
}
@MastersThesis{Fisher:1997:SPS,
author = "Michael T. Fisher",
title = "A study of the performance of simultaneous
multithreading on a superscalar processor",
type = "Thesis (M.S.E.E.)",
number = "2363",
school = "State University of New York at Binghamton, Watson
School of Engineering and Applied Science",
address = "Binghamton, NY, USA",
pages = "vi + 98",
year = "1997",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
series = "Master's theses / State University of New York at
Binghamton",
acknowledgement = ack-nhfb,
alttitle = "Simultaneous multithreading on a superscalar processor
Multithreading on a superscalar processor Superscalar
processor",
keywords = "Microprocessors -- Testing",
}
@MastersThesis{Fong:1997:BPM,
author = "Waipang Fong",
title = "Building a preprocessor for a multithreading
compiler",
type = "Thesis (M.E.E.)",
school = "Department of Electrical Engineering, University of
Alabama",
address = "Tuscaloosa, AL, USA",
pages = "ix + 80",
year = "1997",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
acknowledgement = ack-nhfb,
keywords = "Multiprocessors; Parallel processing (Electronic
computers)",
}
@Article{Foster:1997:MMC,
author = "Ian Foster and Jonathan Geisler and Carl Kesselman and
Steven Tuecke",
title = "Managing Multiple Communication Methods in
High-Performance Networked Computing Systems",
journal = j-J-PAR-DIST-COMP,
volume = "40",
number = "1",
pages = "35--48",
day = "10",
month = jan,
year = "1997",
CODEN = "JPDCER",
DOI = "http://dx.doi.org/10.1006/jpdc.1996.1266",
ISSN = "0743-7315",
bibdate = "Thu Mar 9 09:19:01 MST 2000",
bibsource = "http://www.idealibrary.com/servlet/useragent?func=showAllIssues&curIssueID=jpdc",
URL = "http://www.idealibrary.com/links/doi/10.1006/jpdc.1996.1266/production;
http://www.idealibrary.com/links/doi/10.1006/jpdc.1996.1266/production/pdf;
http://www.idealibrary.com/links/doi/10.1006/jpdc.1996.1266/production/ref",
acknowledgement = ack-nhfb,
classification = "B6150M (Protocols); B6210L (Computer
communications); C5440 (Multiprocessing systems); C5470
(Performance evaluation and testing); C5640
(Protocols); C5670 (Network performance)",
corpsource = "Div. of Math. and Comput. Sci., Argonne Nat. Lab., IL,
USA",
keywords = "Argonne MPICH library; computer networks; computing
systems; criteria; heterogeneous networked environment;
high-performance networked; message passing; message
passing interface; multimethod communication; multiple
communication methods; multithreaded runtime system;
networked computing environments; Nexus; Nexus-based
MPI implementation; performance characteristics;
performance evaluation; protocols; remote service
request mechanisms; transport mechanisms;
user-specified selection",
treatment = "P Practical",
}
@TechReport{Fujita:1997:MPA,
author = "Tetsuya Theodore Fujita",
title = "A multithreaded processor architecture for parallel
symbolic computation",
type = "Technical Report",
number = "MIT/LCS/TM-338",
institution = "Laboratory for Computer Science, Massachusetts
Institute of Technology",
address = "Cambridge, MA, USA",
pages = "71",
month = sep,
year = "1997",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
acknowledgement = ack-nhfb,
keywords = "Computer architecture; Multilisp (Computer program
language); Parallel processing (Electronic computers)",
}
@PhdThesis{Goldstein:1997:LTC,
author = "Seth Copen Goldstein",
title = "Lazy threads: compiler and runtime structures for
fine-grained parallel programming",
type = "Thesis ({Ph.D.})",
number = "UCB/CSD-97-975",
school = "Computer Science Division, University of California,
Berkeley",
address = "Berkeley, CA, USA",
pages = "xi + 174",
year = "1997",
LCCN = "TK7885.A1 R46 no.97:975",
bibdate = "Fri May 10 12:18:17 MDT 2002",
series = "Report",
acknowledgement = ack-nhfb,
}
@Article{Gomez:1997:EMU,
author = "Juan Carlos Gomez and Vernon Rego and V. S. Sunderam",
title = "Efficient Multithreaded User-Space Transport for
Network Computing: Design and Test of the {TRAP}
Protocol",
journal = j-J-PAR-DIST-COMP,
volume = "40",
number = "1",
pages = "103--117",
day = "10",
month = jan,
year = "1997",
CODEN = "JPDCER",
DOI = "http://dx.doi.org/10.1006/jpdc.1996.1269",
ISSN = "0743-7315",
bibdate = "Thu Mar 9 09:19:01 MST 2000",
bibsource = "http://www.idealibrary.com/servlet/useragent?func=showAllIssues&curIssueID=jpdc",
URL = "http://www.idealibrary.com/links/doi/10.1006/jpdc.1996.1269/production;
http://www.idealibrary.com/links/doi/10.1006/jpdc.1996.1269/production/pdf;
http://www.idealibrary.com/links/doi/10.1006/jpdc.1996.1269/production/ref",
acknowledgement = ack-nhfb,
classification = "B6150M (Protocols); B6210L (Computer
communications); C5620 (Computer networks and
techniques); C5640 (Protocols); C6150G (Diagnostic,
testing, debugging and evaluating systems); C6150N
(Distributed systems software)",
corpsource = "Dept. of Comput. Sci., Purdue Univ., West Lafayette,
IN, USA",
keywords = "communicating; communication; computer networks;
computing; computing nodes; efficient multithreaded
user-space transport; high-; low-latency; message
passing; multithreaded message-passing libraries;
network; nodes; performance distributed computing
applications; processing; runtime performance;
scalability characteristics; software libraries;
software performance evaluation; testing; transaction;
transaction-oriented protocol; transport protocols;
TRAP protocol design; TRAP protocol testing; TRAP-based
communication library; user-space protocol",
treatment = "P Practical",
}
@Manual{Haines:1997:DLT,
author = "Matthew Haines",
title = "On designing lightweight threads for substrate
software",
number = "201645",
publisher = pub-NTIS,
address = pub-NTIS:adr,
pages = "??",
year = "1997",
LCCN = "DOC NAS 1.26:201645 mf11",
bibdate = "Fri May 10 12:18:17 MDT 2002",
note = "Shipping list number 98-0847-M.",
series = "NASA contractor report",
acknowledgement = ack-nhfb,
keywords = "threads; operating systems (computers); parallel
computers; parallel processing (computers)",
}
@Article{Haines:1997:OIA,
author = "Matthew Haines",
title = "An Open Implementation Analysis and Design for
Lightweight Threads",
journal = j-SIGPLAN,
volume = "32",
number = "10",
pages = "229--242",
month = oct,
year = "1997",
CODEN = "SINODQ",
ISSN = "0362-1340",
bibdate = "Sun Dec 14 09:17:39 MST 2003",
bibsource = "http://portal.acm.org/",
acknowledgement = ack-nhfb,
}
@Book{Hanson:1997:CII,
author = "David R. Hanson",
title = "{C} Interfaces and Implementations: Techniques for
Creating Reusable Software",
publisher = pub-AW,
address = pub-AW:adr,
pages = "xvii + 519",
year = "1997",
ISBN = "0-201-49841-3",
ISBN-13 = "978-0-201-49841-7",
LCCN = "QA76.73.C15H37 1997",
bibdate = "Fri Feb 27 16:08:11 1998",
price = "US\$37.95",
series = "Addison-Wesley Professional Computing Series",
URL = "http://www.cs.princeton.edu/software/cii/",
acknowledgement = ack-nhfb,
annote = "Multithreading is discussed in Chapter 20.",
}
@Article{Hightower:1997:PDD,
author = "Lauren Hightower",
title = "Publishing Dynamic Data on the {Internet} ---
{Allaire's Cold Fusion} is a development tool that
provides access (via the {Web}) to any database the
{Web} server can access using {ODBC}. {Cold Fusion}
runs as a multithreaded {Windows NT} system service and
works with any {ODBC-compliant} database",
journal = j-DDJ,
volume = "22",
number = "1",
pages = "70--??",
month = jan,
year = "1997",
CODEN = "DDJOEB",
ISSN = "1044-789X",
bibdate = "Fri Jan 3 06:17:24 MST 1997",
acknowledgement = ack-nhfb,
}
@Book{Hughes:1997:OMU,
author = "Cameron Hughes and Tracey Hughes",
title = "Object-oriented multithreading using {C++}",
publisher = pub-WILEY,
address = pub-WILEY:adr,
pages = "xvi + 495",
year = "1997",
ISBN = "0-471-18012-2 (paperback)",
ISBN-13 = "978-0-471-18012-8 (paperback)",
LCCN = "QA76.73.C153H84 1997",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
acknowledgement = ack-nhfb,
annote = "System requirements: Windows 95, or OS/2 2.0 and
above, or UNIX, or system with POSIX pthreads; ANSI/ISO
compliant C++ compiler.",
keywords = "C++ (Computer program language); POSIX (Computer
software standard); Threads (Computer programs)",
}
@Book{Hughes:1997:OOM,
author = "Cameron Hughes and Tracey Hughes",
title = "Object-oriented multithreading using {C++}",
publisher = pub-WILEY,
address = pub-WILEY:adr,
pages = "xvi + 495",
year = "1997",
ISBN = "0-471-18012-2",
ISBN-13 = "978-0-471-18012-8",
LCCN = "QA76.73.C153 H84 1997",
bibdate = "Fri Aug 07 08:26:50 1998",
acknowledgement = ack-nhfb,
}
@Article{Kasperink:1997:CDC,
author = "Harold R. Kasperink and John C. Dekker",
title = "Concurrent Database Commands and {C++}",
journal = j-DDJ,
volume = "22",
number = "8",
pages = "84, 86, 88, 89, 98",
month = aug,
year = "1997",
CODEN = "DDJOEB",
ISSN = "1044-789X",
bibdate = "Sat Aug 23 07:57:02 1997",
abstract = "Mapping design problems to programming problems leads
to software solutions that are easy to extend and
reuse. Our authors explain how they resolved
multithreaded porting problems using design patterns.
The database they use is Oracle and the database
transactions are implemented using Oracle ProC as an
embedded database command language.",
acknowledgement = ack-nhfb,
}
@MastersThesis{Khosla:1997:MAT,
author = "Samir Khosla",
title = "Multithreading the asynchronous trigger processor",
type = "Thesis (M.S.)",
school = "University of Florida",
address = "Gainesville, FL, USA",
pages = "ix + 57",
year = "1997",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
acknowledgement = ack-nhfb,
}
@Article{Kougiouris:1997:PMF,
author = "Panos Kougiouris and Marco Framba",
title = "A Portable Multithreading Framework",
journal = j-CCCUJ,
volume = "15",
number = "8",
pages = "??--??",
month = aug,
year = "1997",
CODEN = "CCUJEX",
ISSN = "1075-2838",
bibdate = "Wed Aug 20 10:44:42 1997",
acknowledgement = ack-nhfb,
}
@Article{Krieger:1997:HPF,
author = "Orran Krieger and Michael Stumm",
title = "{HFS}: {A} Performance-Oriented Flexible File System
Based on Building-Block Compositions",
journal = j-TOCS,
volume = "15",
number = "3",
pages = "286--321",
month = aug,
year = "1997",
CODEN = "ACSYEC",
ISSN = "0734-2071",
bibdate = "Wed Jan 13 18:36:53 MST 1999",
bibsource = "http://www.acm.org/pubs/contents/journals/tocs/",
URL = "http://www.acm.org:80/pubs/citations/journals/tocs/1997-15-3/p286-krieger/",
abstract = "The Hurricane File System (HFS) is designed for
(potentially large-scale) shared-memory
multiprocessors. Its architecture is based on the
principle that, in order to maximize performance for
applications with diverse requirements, a file system
must support a wide variety of file structures, file
system policies, and I/O interfaces. Files in HFS are
implemented using simple building blocks composed in
potentially complex ways. This approach yields great
flexibility, allowing an application to customize the
structure and policies of a file to exactly meet its
requirements. As an extreme example, HFS allows a
file's structure to be optimized for concurrent
random-access write-only operations by 10 threads,
something no other file system can do. Similarly, the
prefetching, locking, and file cache management
policies can all be chosen to match an application's
access pattern. In contrast, most parallel file systems
support a single file structure and a small set of
policies. We have implemented HFS as part of the
Hurricane operating system running on the Hector
shared-memory multiprocessor. We demonstrate that the
flexibility of HFS comes with little processing or I/O
overhead. We also show that for a number of file access
patterns, HFS is able to deliver to the applications
the full I/O bandwidth of the disks on our system.",
acknowledgement = ack-nhfb,
keywords = "design; performance",
subject = "{\bf D.4.3} Software, OPERATING SYSTEMS, File Systems
Management, File organization. {\bf D.4.3} Software,
OPERATING SYSTEMS, File Systems Management, Access
methods. {\bf D.4.8} Software, OPERATING SYSTEMS,
Performance, Measurements. {\bf E.5} Data, FILES,
Optimization**. {\bf E.5} Data, FILES,
Organization/structure.",
}
@PhdThesis{Lang:1997:MTE,
author = "Duncan Walter Temple Lang",
title = "A multi-threaded extension to a high level interactive
statistical computing environment",
type = "Thesis (Ph.D. in Statistics)",
school = "University of California, Berkeley",
address = "Berkeley, CA, USA",
pages = "vii + 161",
month = dec,
year = "1997",
LCCN = "308t 1997 951",
bibdate = "Fri Aug 7 08:29:38 MDT 1998",
acknowledgement = ack-nhfb,
keywords = "Dissertations -- Academic -- UCB -- statistics --
1991--2000; University of California, Berkeley. Dept.
of Statistics -- Dissertations",
}
@Article{Larbi:1997:BRM,
author = "Michael Larbi",
title = "Book Review: {Multithreading Applications in Win32}",
journal = j-CCCUJ,
volume = "15",
number = "7",
pages = "65--??",
month = jul,
year = "1997",
CODEN = "CCUJEX",
ISSN = "1075-2838",
bibdate = "Thu Jun 26 14:12:46 1997",
acknowledgement = ack-nhfb,
}
@MastersThesis{Leven:1997:MIR,
author = "Peter J. Leven",
title = "A multithreaded implementation of a {Robot Control C
Library}",
type = "Printout. Thesis (M.S.)",
school = "University of Illinois at Urbana-Champaign",
address = "Urbana-Champaign, IL, USA",
pages = "x + 72",
year = "1997",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
acknowledgement = ack-nhfb,
}
@Article{Lo:1997:CTP,
author = "Jack L. Lo and Joel S. Emer and Henry M. Levy and
Rebecca L. Stamm and Dean M. Tullsen",
title = "Converting Thread-Level Parallelism to
Instruction-Level Parallelism via Simultaneous
Multithreading",
journal = j-TOCS,
volume = "15",
number = "3",
pages = "322--354",
month = aug,
year = "1997",
CODEN = "ACSYEC",
ISSN = "0734-2071",
bibdate = "Wed Jan 13 18:36:53 MST 1999",
bibsource = "http://www.acm.org/pubs/contents/journals/tocs/",
URL = "http://www.acm.org:80/pubs/citations/journals/tocs/1997-15-3/p322-lo/",
abstract = "To achieve high performance, contemporary computer
systems rely on two forms of parallelism:
instruction-level parallelism (ILP) and thread-level
parallelism (TLP). Wide-issue super-scalar processors
exploit ILP by executing multiple instructions from a
single program in a single cycle. Multiprocessors (MP)
exploit TLP by executing different threads in parallel
on different processors. Unfortunately, both parallel
processing styles statically partition processor
resources, thus preventing them from adapting to
dynamically changing levels of ILP and TLP in a
program. With insufficient TLP, processors in an MP
will be idle; with insufficient ILP, multiple-issue
hardware on a superscalar is wasted. This article
explores parallel processing on an alternative
architecture, simultaneous multithreading (SMT), which
allows multiple threads to complete for and share all
of the processor's resources every cycle. The most
compelling reason for running parallel applications on
an SMT processor is its ability to use thread-level
parallelism and instruction-level parallelism
interchangeably. By permitting multiple threads to
share the processor's functional units simultaneously,
the processor can use both ILP and TLP to accommodate
variations in parallelism. When a program has only a
single thread, all of the SMT processor's resources can
be dedicated to that thread; when more TLP exists, this
parallelism can compensate for a lack of per-thread
ILP. We examine two alternative on-chip parallel
architectures for the next generation of processors. We
compare SMT and small-scale, on-chip multiprocessors in
their ability to exploit both ILP and TLP. First, we
identify the hardware bottlenecks that prevent
multiprocessors from effectively exploiting ILP. Then,
we show that because of its dynamic resource sharing,
SMT avoids these inefficiencies and benefits from being
able to run more threads on a single processor. The use
of TLP is especially advantageous when per-thread ILP
is limited. The ease of adding additional thread
contexts on an SMT (relative to adding additional
processors on an MP) allows simultaneous multithreading
to expose more parallelism, further increasing
functional unit utilization and attaining a 52\%
average speedup (versus a four-processor, single-chip
multiprocessor with comparable execution resources).
This study also addresses an often-cited concern
regarding the use of thread-level parallelism or
multithreading: interference in the memory system and
branch prediction hardware. We find the multiple
threads cause interthread interference in the caches
and place greater demands on the memory system, thus
increasing average memory latencies. By exploiting
threading-level parallelism, however, SMT hides these
additional latencies, so that they only have a small
impact on total program performance. We also find that
for parallel applications, the additional threads have
minimal effects on branch prediction.",
acknowledgement = ack-nhfb,
keywords = "measurement; performance",
subject = "{\bf C.1.2} Computer Systems Organization, PROCESSOR
ARCHITECTURES, Multiple Data Stream Architectures
(Multiprocessors), Parallel processors**. {\bf C.0}
Computer Systems Organization, GENERAL, Instruction set
design. {\bf D.4.1} Software, OPERATING SYSTEMS,
Process Management.",
}
@TechReport{LoCocero:1997:MML,
author = "Joseph LoCocero and D. E. (Donald E.) Thomas",
title = "A multithreaded, multiple language hardware\slash
software cosimulator",
type = "Research report",
number = "CMUCAD-97-13",
institution = "Center for Electronic Design Automation, Carnegie
Mellon University",
address = "Pittsburgh, PA, USA",
pages = "7",
month = apr,
year = "1997",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
abstract = "Functional verification of mixed hardware/software
systems is vital to guaranteeing a correct, operational
system. This paper discusses a new multithreaded,
multiple-language cosimulator that directly combines
Verilog and C/C++, the native languages most often used
by hardware and software designers. The interface
between the two languages is specified in detail, as
are some illustrative examples. The performance is
shown to be clearly better than UNIX socket-based
cosimulation approaches. Further, it naturally fits a
cosimulation environment where arbitrary C++ programs
and Verilog descriptions are developed concurrently.",
acknowledgement = ack-nhfb,
annote = "Supported in part by Semiconductor Research
Corporation.",
keywords = "C (Computer program language); Embedded computer
systems -- Simulation methods; Verilog (Computer
hardware description language)",
}
@Article{McCarthy:1997:WMT,
author = "Martin McCarthy",
title = "What is Multi-Threading?",
journal = j-LINUX-J,
volume = "34",
pages = "??--??",
month = feb,
year = "1997",
CODEN = "LIJOFX",
ISSN = "1075-3583",
bibdate = "Fri Oct 9 08:35:26 MDT 1998",
bibsource = "http://noframes.linuxjournal.com/lj-issues/issue34/index.html",
abstract = "A primer on multi-threading: the process whereby Linux
manages several tasks simultaneously.",
acknowledgement = ack-nhfb,
}
@Article{McMillan:1997:NSB,
author = "Robert McMillan",
title = "News: {Sun} boosts {Java} performance, adding {JIT}
compiler and {JVM} with multithreading to {Solaris
2.6}",
journal = j-JAVAWORLD,
volume = "2",
number = "7",
pages = "??--??",
month = jul,
year = "1997",
CODEN = "????",
ISSN = "1091-8906",
bibdate = "Thu Aug 13 14:52:27 1998",
bibsource = "http://www.javaworld.com/javaworld/",
URL = "http://www.javaworld.com/javaworld/jw-07-1997/jw-07-speedway.htm",
acknowledgement = ack-nhfb,
}
@Article{Neves:1997:TRS,
author = "Richard Neves and Robert B. Schnabel",
title = "Threaded Runtime Support for Execution of Fine Grain
Parallel Code on Coarse Grain Multiprocessors",
journal = j-J-PAR-DIST-COMP,
volume = "42",
number = "2",
pages = "128--142",
day = "1",
month = may,
year = "1997",
CODEN = "JPDCER",
DOI = "http://dx.doi.org/10.1006/jpdc.1997.1322",
ISSN = "0743-7315",
bibdate = "Thu Mar 9 09:19:02 MST 2000",
bibsource = "http://www.idealibrary.com/servlet/useragent?func=showAllIssues&curIssueID=jpdc",
URL = "http://www.idealibrary.com/links/doi/10.1006/jpdc.1997.1322/production;
http://www.idealibrary.com/links/doi/10.1006/jpdc.1997.1322/production/pdf;
http://www.idealibrary.com/links/doi/10.1006/jpdc.1997.1322/production/ref",
acknowledgement = ack-nhfb,
}
@Book{Oaks:1997:JT,
author = "Scott Oaks and Henry Wong",
title = "{Java} threads",
publisher = pub-ORA,
address = pub-ORA:adr,
pages = "xiii + 252",
year = "1997",
ISBN = "1-56592-216-6",
ISBN-13 = "978-1-56592-216-7",
LCCN = "QA76.73.J38 O25 1997",
bibdate = "Fri May 10 12:18:17 MDT 2002",
series = "Java series",
acknowledgement = ack-nhfb,
keywords = "java (computer program language); threads (computer
programs)",
}
@MastersThesis{Ongwattanakul:1997:RDM,
author = "Songpol Ongwattanakul",
title = "A runtime distributed multithreading library for the
{PARC} language",
type = "Thesis (M.E.E.)",
school = "Department of Electrical Engineering, University of
Alabama",
address = "Tuscaloosa, AL, USA",
pages = "viii + 71",
year = "1997",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
acknowledgement = ack-nhfb,
keywords = "Multiprocessors; Parallel processing (Electronic
computers)",
}
@Book{Prasad:1997:MPT,
author = "Shashi Prasad",
title = "Multithreading programming techniques",
publisher = pub-MCGRAW-HILL,
address = pub-MCGRAW-HILL:adr,
pages = "xix + 410",
year = "1997",
ISBN = "0-07-912250-7, 0-07-050710-4 (Computer disk)",
ISBN-13 = "978-0-07-912250-6, 978-0-07-050710-4 (Computer disk)",
LCCN = "QA76.76.D47 P72 1997",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
series = "The J. Ranade workstation series",
acknowledgement = ack-nhfb,
annote = "System requirements: C programming language.",
keywords = "Application software -- Development; C (Computer
program language); Cross-platform software
development",
}
@Article{Ravoor:1997:MTP,
author = "Suresh B. Ravoor and Johnny S. K. Wong",
title = "Multithreaded Transaction Processing in Distributed
Systems",
journal = j-J-SYST-SOFTW,
volume = "38",
number = "2",
pages = "107--117",
month = aug,
year = "1997",
CODEN = "JSSODM",
ISSN = "0164-1212",
bibdate = "Wed Dec 16 08:24:49 MST 1998",
acknowledgement = ack-nhfb,
}
@Article{Savage:1997:EDD,
author = "Stefan Savage and Michael Burrows and Greg Nelson and
Patrick Sobalvarro and Thomas Anderson",
title = "{Eraser}: {A} Dynamic Data Race Detector for
Multithreaded Programs",
journal = j-TOCS,
volume = "15",
number = "4",
pages = "391--411",
month = nov,
year = "1997",
CODEN = "ACSYEC",
ISSN = "0734-2071",
bibdate = "Wed Jan 13 18:36:53 MST 1999",
bibsource = "http://www.acm.org/pubs/contents/journals/tocs/",
note = "Co-published in {\em Operating Systems Review}, {\bf
31}(5).",
URL = "http://www.acm.org:80/pubs/citations/journals/tocs/1997-15-4/p391-savage/",
abstract = "Multithreaded programming is difficult and error
prone. It is easy to make a mistake in synchronization
that produces a data race, yet it can be extremely hard
to locate this mistake during debugging. This article
describes a new tool, called Eraser, for dynamically
detecting data races in lock-based multithreaded
programs. Eraser uses binary rewriting techniques to
monitor every shared-monory reference and verify that
consistent locking behavior is observed. We present
several case studies, including undergraduate
coursework and a multithreaded Web search engine, that
demonstrate the effectiveness of this approach.",
acknowledgement = ack-nhfb,
keywords = "algorithms; experimentation; reliability",
subject = "{\bf D.2.5} Software, SOFTWARE ENGINEERING, Testing
and Debugging, Monitors. {\bf D.1.3} Software,
PROGRAMMING TECHNIQUES, Concurrent Programming,
Parallel programming. {\bf D.2.5} Software, SOFTWARE
ENGINEERING, Testing and Debugging, Debugging aids.
{\bf D.2.5} Software, SOFTWARE ENGINEERING, Testing and
Debugging, Tracing. {\bf D.4.1} Software, OPERATING
SYSTEMS, Process Management, Concurrency. {\bf D.4.1}
Software, OPERATING SYSTEMS, Process Management,
Deadlocks. {\bf D.4.1} Software, OPERATING SYSTEMS,
Process Management,
Multiprocessing/multiprogramming/multitasking. {\bf
D.4.1} Software, OPERATING SYSTEMS, Process Management,
Mutual exclusion.",
}
@Article{Shepherd:1997:UCA,
author = "George Shepherd and Scot Wingo",
title = "Undocumented Corner: {ATL} and the {IUknown}
Interface",
journal = j-DDJ,
volume = "22",
number = "8",
pages = "119--123",
month = aug,
year = "1997",
CODEN = "DDJOEB",
ISSN = "1044-789X",
bibdate = "Mon Aug 11 11:38:10 MDT 1997",
abstract = "George and Scot continue their examination of
Microsoft's Active Template Library, this month looking
at the heart of ATL, including its support for
multithreading and its various implementations of
IUnknown.",
acknowledgement = ack-nhfb,
}
@Article{Shoffner:1997:JSSa,
author = "Michael Shoffner",
title = "{Java} Step by Step: Write your own threaded
discussion forum",
journal = j-JAVAWORLD,
volume = "2",
number = "2",
pages = "??--??",
month = feb,
year = "1997",
CODEN = "????",
ISSN = "1091-8906",
bibdate = "Thu Aug 13 14:52:24 1998",
bibsource = "http://www.javaworld.com/javaworld/",
URL = "http://www.javaworld.com/javaworld/jw-02-1997/jw-02-step.htm",
acknowledgement = ack-nhfb,
}
@Article{Shoffner:1997:JSSb,
author = "Michael Shoffner",
title = "{Java} Step By Step: Write your own threaded
discussion forum: The communications and server
components",
journal = j-JAVAWORLD,
volume = "2",
number = "3",
pages = "??--??",
month = mar,
year = "1997",
CODEN = "????",
ISSN = "1091-8906",
bibdate = "Thu Aug 13 14:52:25 1998",
bibsource = "http://www.javaworld.com/javaworld/",
URL = "http://www.javaworld.com/javaworld/jw-03-1997/jw-03-step.htm",
acknowledgement = ack-nhfb,
}
@Article{Sodan:1997:ENA,
author = "Angela Sodan and Guang R. Gao and Oliver Maquelin and
Jens-Uwe Schultz and Xin-Min Tian",
title = "Experiences with Non-numeric Applications on
Multithreaded Architectures",
journal = j-SIGPLAN,
volume = "32",
number = "7",
pages = "124--??",
month = jul,
year = "1997",
CODEN = "SINODQ",
ISSN = "0362-1340",
bibdate = "Fri Oct 10 17:39:26 MDT 1997",
acknowledgement = ack-nhfb,
}
@Article{Sodan:1997:ENN,
author = "Angela Sodan and Guang R. Gao and Olivier Maquelin and
Jens-Uwe Schultz and Xin-Min Tian",
title = "Experiences with non-numeric applications on
multithreaded architectures",
journal = j-SIGPLAN,
volume = "32",
number = "7",
pages = "124--135",
month = jul,
year = "1997",
CODEN = "SINODQ",
ISSN = "0362-1340",
bibdate = "Sun Dec 14 09:17:35 MST 2003",
bibsource = "http://portal.acm.org/",
acknowledgement = ack-nhfb,
}
@Article{Sohn:1997:DWD,
author = "Andrew Sohn and Mitsuhisa Sato and Namhoon Yoo and
Jean-Luc Gaudiot",
title = "Data and Workload Distribution in a Multithreaded
Architecture",
journal = j-J-PAR-DIST-COMP,
volume = "40",
number = "2",
pages = "256--264",
day = "1",
month = feb,
year = "1997",
CODEN = "JPDCER",
DOI = "http://dx.doi.org/10.1006/jpdc.1996.1262",
ISSN = "0743-7315",
bibdate = "Thu Mar 9 09:19:02 MST 2000",
bibsource = "http://www.idealibrary.com/servlet/useragent?func=showAllIssues&curIssueID=jpdc",
URL = "http://www.idealibrary.com/links/doi/10.1006/jpdc.1996.1262/production;
http://www.idealibrary.com/links/doi/10.1006/jpdc.1996.1262/production/pdf;
http://www.idealibrary.com/links/doi/10.1006/jpdc.1996.1262/production/ref",
acknowledgement = ack-nhfb,
}
@Article{Stewart:1997:MDH,
author = "David B. Stewart and Pradeep K. Khosla",
title = "Mechanisms for Detecting and Handling Timing Errors",
journal = j-CACM,
volume = "40",
number = "1",
pages = "87--93",
month = jan,
year = "1997",
CODEN = "CACMA2",
ISSN = "0001-0782",
bibdate = "Fri Oct 10 18:17:54 MDT 1997",
bibsource = "http://www.acm.org/pubs/toc/",
URL = "http://www.acm.org/pubs/citations/journals/cacm/1997-40-1/p87-stewart/",
acknowledgement = ack-nhfb,
classification = "C6110B (Software engineering techniques); C6130
(Data handling techniques); C6150J (Operating
systems)",
corpsource = "Inst. for Adv. Comput. Studies, Maryland Univ.,
College Park, MD, USA",
keywords = "adaptive real-time scheduling; aperiodic servers;
Chimera; design; error handling; imprecise computation;
low-overhead policy-independent system; management;
operating systems (computers); performance; periodic
threads; real- time operating system; real-time
systems; real-time systems analysis; real-time threads;
reliability; scheduling; scheduling policies; software
fault tolerance; specifications; system failure;
theory; timing; timing error detection; worst-case
execution times",
subject = "{\bf K.6.3} Computing Milieux, MANAGEMENT OF COMPUTING
AND INFORMATION SYSTEMS, Software Management, Software
development. {\bf C.3} Computer Systems Organization,
SPECIAL-PURPOSE AND APPLICATION-BASED SYSTEMS,
Real-time systems. {\bf C.4} Computer Systems
Organization, PERFORMANCE OF SYSTEMS.",
treatment = "P Practical",
}
@Article{Taura:1997:FGM,
author = "Kenjiro Taura and Akinori Yonezawa",
title = "Fine-grain multithreading with minimal compiler
support --- a cost effective approach to implementing
efficient multithreading languages",
journal = j-SIGPLAN,
volume = "32",
number = "5",
pages = "320--333",
month = may,
year = "1997",
CODEN = "SINODQ",
ISSN = "0362-1340",
bibdate = "Sun Dec 14 09:17:32 MST 2003",
bibsource = "http://portal.acm.org/",
acknowledgement = ack-nhfb,
}
@Article{Taura:1997:FMM,
author = "Kenjiro Taura and Akinori Yonezawa",
title = "Fine-grain Multithreading with Minimal Compiler
Support --- {A} Cost Effective Approach to Implementing
Efficient Multithreading Languages",
journal = j-SIGPLAN,
volume = "32",
number = "5",
pages = "320--333",
month = may,
year = "1997",
CODEN = "SINODQ",
ISBN = "0-89791-907-6",
ISBN-13 = "978-0-89791-907-4",
ISSN = "0362-1340",
bibdate = "Thu May 13 12:37:28 MDT 1999",
bibsource = "http://www.acm.org/pubs/contents/proceedings/pldi/258915/index.html",
URL = "http://www.acm.org:80/pubs/citations/proceedings/pldi/258915/p320-taura/",
acknowledgement = ack-nhfb,
annote = "Published as part of the Proceedings of PLDI'97.",
keywords = "design; languages; measurement; performance;
standardization; theory",
subject = "{\bf D.3.4} Software, PROGRAMMING LANGUAGES,
Processors, Compilers. {\bf D.3.3} Software,
PROGRAMMING LANGUAGES, Language Constructs and
Features, Data types and structures. {\bf D.3.2}
Software, PROGRAMMING LANGUAGES, Language
Classifications. {\bf D.3.4} Software, PROGRAMMING
LANGUAGES, Processors, Code generation. {\bf C.2.2}
Computer Systems Organization, COMPUTER-COMMUNICATION
NETWORKS, Network Protocols.",
}
@PhdThesis{TempleLang:1997:MTE,
author = "Duncan Walter {Temple Lang}",
title = "A multi-threaded extension to a high level interactive
statistical computing environment",
type = "Thesis ({Ph.D. in Statistics})",
school = "Dept. of Statistics, University of California,
Berkeley",
address = "Berkeley, CA, USA",
pages = "vii + 161",
month = dec,
year = "1997",
bibdate = "Sat Apr 20 11:15:46 2002",
acknowledgement = ack-nhfb,
}
@TechReport{Tsai:1997:PSC,
author = "Jenn-Yuan Tsai",
title = "Performance study of a concurrent multithreaded
processor",
type = "Technical report",
number = "TR 97-034",
institution = "University of Minnesota, Dept. of Computer Science and
Engineering",
address = "Minneapolis, MN, USA",
pages = "24",
year = "1997",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
abstract = "The performance of a concurrent multithreaded
architectural model, called superthreading [15], is
studied in this paper. It tries to integrate optimizing
compilation techniques and run-time hardware support to
exploit both thread-level and instruction-level
parallelism, as opposed to exploit only
instruction-level parallelism in existing superscalars.
The superthreaded architecture uses a thread pipelining
execution model to enhance the overlapping between
threads, and to facilitate data dependence enforcement
between threads through compiler-directed,
hardware-supported, thread-level control speculation
and run-time data dependence checking. We also evaluate
the performance of the superthreaded processor through
a detailed trace-driven simulator. Our results show
that the superthreaded execution model can obtain good
performance by exploiting both thread-level and
instruction-level parallelism in programs. We also
study the design parameters of its main system
components, such as the size of the memory buffer, the
bandwidth requirement of the communication links
between thread processing units, and the bandwidth
requirement of the shared data cache.",
acknowledgement = ack-nhfb,
annote = "Supported in part by the National Science Foundation.
Supported in part by the U.S. Army Intelligence Center
and Fort Huachuca. Supported in part by a gift from
Intel Corporation",
keywords = "Compilers (Computer programs); Computer architecture;
Parallel processing (Electronic computers); Threads
(Computer programs)",
}
@TechReport{Tsai:1997:SIC,
author = "Jenn-Yuan Tsai",
title = "Superthreading: integrating compilation technology and
processor architecture for cost-effective concurrent
multithreading",
type = "Technical report",
number = "TR 97-033",
institution = "University of Minnesota, Dept. of Computer Science and
Engineering",
address = "Minneapolis, MN, USA",
pages = "16",
day = "29",
month = jan,
year = "1997",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
abstract = "As the number of transistors that can be integrated on
a single chip continues to grow, it is important for
computer architects to think beyond the traditional
approaches of deeper pipelines and wider instruction
issue units for improving performance. This
single-threaded execution model limits these approaches
to exploiting only the relatively small amount of
instruction-level parallelism available in application
programs. While integrating an entire multiprocessor
onto a single chip is feasible, this architecture is
limited to exploiting only relatively coarse-grained
heavy-weight parallelism. We propose the superthreaded
architecture as an excellent alternative for utilizing
the large number of transistors that will become
available on a single high-density chip. As a hybrid of
a wide-issue superscalar processor and a
multiprocessor-on-a-chip, this new concurrent
multithreading architecture can leverage the best of
existing and future parallel hardware and software
technologies. By incorporating speculation for control
dependences and run-time checking of data dependences,
the superthreaded architecture can exploit the multiple
granularities of parallelism available in
general-purpose application programs to reduce the
execution time of a single program.",
acknowledgement = ack-nhfb,
annote = "Supported in part by the U.S. Army Intelligence Center
and Fort Huachuca. Supported in part by the National
Science Foundation. Supported in part by a gift from
the Intel Corporation",
keywords = "Compilers (Computer programs); Computer architecture;
Parallel processing (Electronic computers); Threads
(Computer programs)",
}
@Article{Vanhelsuwe:1997:BRJ,
author = "Laurence Vanhelsuw{\'e}",
title = "Book Review: The {Java} {Threads} {API} makes it to
print media",
journal = j-JAVAWORLD,
volume = "2",
number = "7",
pages = "??--??",
month = jul,
year = "1997",
CODEN = "????",
ISSN = "1091-8906",
bibdate = "Thu Aug 13 14:52:27 1998",
bibsource = "http://www.javaworld.com/javaworld/",
URL = "http://www.javaworld.com/javaworld/jw-07-1997/jw-07-threads.htm",
acknowledgement = ack-nhfb,
}
@Article{Vanhelsuwe:1997:JPE,
author = "Laurence Vanhelsuw{\'e}",
title = "{JavaBeans}: properties, events, and thread safety",
journal = j-JAVAWORLD,
volume = "2",
number = "9",
pages = "??--??",
month = sep,
year = "1997",
CODEN = "????",
ISSN = "1091-8906",
bibdate = "Thu Aug 13 14:52:28 1998",
bibsource = "http://www.javaworld.com/javaworld/",
URL = "http://www.javaworld.com/javaworld/jw-09-1997/jw-09-raceconditions.htm",
acknowledgement = ack-nhfb,
}
@Article{Venners:1997:UHH,
author = "Bill Venners",
title = "Under the Hood: How the {Java} virtual machine
performs thread synchronization",
journal = j-JAVAWORLD,
volume = "2",
number = "7",
pages = "??--??",
month = jul,
year = "1997",
CODEN = "????",
ISSN = "1091-8906",
bibdate = "Thu Aug 13 14:52:27 1998",
bibsource = "http://www.javaworld.com/javaworld/",
URL = "http://www.javaworld.com/javaworld/jw-07-1997/jw-07-hood.htm",
acknowledgement = ack-nhfb,
}
@Article{Vermeulen:1997:JDW,
author = "Alain Vermeulen",
title = "{Java} Deadlock: The woes of multithreaded design",
journal = j-DDJ,
volume = "22",
number = "9",
pages = "52, 54--56, 88, 89",
month = sep,
year = "1997",
CODEN = "DDJOEB",
ISSN = "1044-789X",
bibdate = "Mon Aug 11 12:53:44 1997",
acknowledgement = ack-nhfb,
}
@Article{Whittaker:1997:TML,
author = "Steve Whittaker and Jerry Swanson and Jakov Kucan and
Candy Sidner",
title = "{TeleNotes}: managing lightweight interactions in the
desktop",
journal = j-TOCHI,
volume = "4",
number = "2",
pages = "137--168",
month = jun,
year = "1997",
CODEN = "ATCIF4",
ISSN = "1073-0516",
bibdate = "Tue Jan 19 05:49:17 MST 1999",
bibsource = "http://www.acm.org/pubs/contents/journals/tochi/",
URL = "http://www.acm.org:80/pubs/citations/journals/tochi/1997-4-2/p137-whittaker/",
abstract = "Communication theories and technology have tended to
focus on extended, formal meetings and have neglected a
prevalent and vital form of workplace communication ---
namely, lightweight communication. Unlike formal,
extended meetings, lightweight interaction is brief,
informal, unplanned, and intermittent. We analyze
naturalistic data from a study of work-place
communication and derive five design criteria for
lightweight interaction systems. These criteria require
that systems for lightweight interaction support {\em
conversational tracking, rapid connection}, the ability
to {\em leave a message, context management,} and {\em
shared real-time objects}. Using these criteria, we
evaluate existing interpersonal communications
technologies. We then describe an implementation of a
system (TeleNotes) that is designed to support
lightweight interaction by meeting these criteria. The
interface metaphor allows communications to be based
around desktop objects, resembling ``sticky notes.''
These objects are also organized into ``desktop piles''
to support conversational threads and provide
mechanisms for initiating real-time audio, video, and
application sharing. We conducted informal user testing
of several system prototypes. Based on our findings,
outstanding issues concerning theory and systems design
for communication systems are outlined --- in
particular, with regard to the issue of managing
conversations over time.",
acknowledgement = ack-nhfb,
keywords = "human factors",
subject = "{\bf H.5.3} Information Systems, INFORMATION
INTERFACES AND PRESENTATION, Group and Organization
Interfaces, Evaluation/methodology. {\bf H.1.2}
Information Systems, MODELS AND PRINCIPLES,
User/Machine Systems, Human factors. {\bf H.5.3}
Information Systems, INFORMATION INTERFACES AND
PRESENTATION, Group and Organization Interfaces,
Asynchronous interaction. {\bf I.3.6} Computing
Methodologies, COMPUTER GRAPHICS, Methodology and
Techniques, Interaction techniques. {\bf H.5.3}
Information Systems, INFORMATION INTERFACES AND
PRESENTATION, Group and Organization Interfaces,
Synchronous interaction. {\bf H.5.1} Information
Systems, INFORMATION INTERFACES AND PRESENTATION,
Multimedia Information Systems,
Evaluation/methodology.",
}
@MastersThesis{Yang:1997:MUA,
author = "Chia Wei Yang",
title = "A multi-context uniprocessor: another multithreaded
architecture",
type = "Thesis (M.S.)",
school = "California Polytechnic State University",
address = "San Luis Obispo, CA, USA",
pages = "viii + 129",
year = "1997",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
acknowledgement = ack-nhfb,
annote = "Proposes a computer architecture model that adapts all
advantages from multithreaded models to a uniprocessor
environment.",
keywords = "Computer architecture; Multiprocessors; Parallel
processing (Electronic Computers)",
}
@Book{Adamo:1998:MOM,
author = "Jean-Marc Adamo",
title = "Multi-threaded object-oriented {MPI-based} message
passing interface: the {ARCH} library",
volume = "SECS 446",
publisher = pub-KLUWER,
address = pub-KLUWER:adr,
pages = "xiv + 185",
year = "1998",
ISBN = "0-7923-8165-3",
ISBN-13 = "978-0-7923-8165-5",
LCCN = "TK5102.5 .A293 1998",
bibdate = "Fri Aug 7 08:29:38 MDT 1998",
series = "The Kluwer international series in engineering and
computer science",
acknowledgement = ack-nhfb,
keywords = "data transmission systems; object-oriented programming
(computer science); threads (computer programs)",
}
@Article{Anonymous:1998:NTS,
author = "Anonymous",
title = "New Tools: Software Development: {Uniscape}'s
Internationalization Library; {Global Technologies}'
{Unix-to-NT} Solution; {KAI}'s Multithreaded {Java}
Debugging Tool; {Price Systems}' Parametric Forecasting
Tool",
journal = j-COMPUTER,
volume = "31",
number = "6",
pages = "98, 102",
month = jun,
year = "1998",
CODEN = "CPTRB4",
ISSN = "0018-9162",
bibdate = "Thu Jun 4 08:22:02 MDT 1998",
bibsource = "http://computer.org/computer/co1998/",
URL = "http://dlib.computer.org/co/books/co1998/pdf/r6098.pdf",
acknowledgement = ack-nhfb,
}
@Article{Biagioni:1998:SST,
author = "Edoardo Biagioni and Ken Cline and Peter Lee and Chris
Okasaki and Chris Stone",
title = "Safe-for-Space Threads in {Standard ML}",
journal = j-HIGHER-ORDER-SYMB-COMPUT,
volume = "11",
number = "2",
pages = "209--225",
month = dec,
year = "1998",
CODEN = "LSCOEX",
DOI = "http://www.springerlink.com/openurl.asp?genre=article&id=doi:10.1023/A:1010016600604",
ISSN = "1388-3690 (print), 1573-0557 (electronic)",
bibdate = "Wed Jul 6 15:50:28 MDT 2005",
bibsource = "http://springerlink.metapress.com/openurl.asp?genre=issue&issn=1388-3690&volume=11&issue=2;
http://www.wkap.nl/issuetoc.htm/1388-3690+11+2+1998;
OCLC Contents1st database",
URL = "http://www.springerlink.com/openurl.asp?genre=article&issn=1388-3690&volume=11&issue=2&spage=209;
http://www.wkap.nl/oasis.htm/187569",
acknowledgement = ack-nhfb,
}
@TechReport{Bic:1998:MAD,
author = "Lubomir Bic and Michael B. Dillencourt and Munehiro
Fukuda",
title = "Mobile agents, {DSM}, coordination, and self-migrating
threads: a common framework",
type = "UCI-ICS technical report",
number = "98-33",
institution = "Information and Computer Science, University of
California, Irvine",
address = "Irvine, CA",
pages = "11",
day = "8",
month = oct,
year = "1998",
LCCN = "Z699 .C3 no.98-33",
bibdate = "Fri May 10 12:18:17 MDT 2002",
acknowledgement = ack-nhfb,
keywords = "distributed shared memory; intelligent agents
(computer software)",
}
@Article{Blumofe:1998:SES,
author = "Robert D. Blumofe and Charles E. Leiserson",
title = "Space-Efficient Scheduling of Multithreaded
Computations",
journal = j-SIAM-J-COMPUT,
volume = "27",
number = "1",
pages = "202--229",
month = feb,
year = "1998",
CODEN = "SMJCAT",
ISSN = "0097-5397 (print), 1095-7111 (electronic)",
bibdate = "Sat Dec 5 17:26:53 MST 1998",
bibsource = "http://epubs.siam.org/sam-bin/dbq/toclist/SICOMP/27/1",
URL = "http://epubs.siam.org/sam-bin/dbq/article/25947",
acknowledgement = ack-nhfb,
}
@InProceedings{Caromel:1998:JFS,
author = "Denis Caromel and Julien Vayssiere",
title = "A {Java} Framework for Seamless Sequential,
Multi-threaded, and Distributed Programming",
crossref = "ACM:1998:AWJ",
pages = "??--??",
year = "1998",
bibdate = "Thu Apr 27 10:43:08 2000",
URL = "http://www.cs.ucsb.edu/conferences/java98/papers/javapp.ps;
http://www.cs.ucsb.edu/conferences/java98/papers/javapp.pdf",
acknowledgement = ack-nhfb,
}
@Article{Chapman:1998:OHI,
author = "B. Chapman and P. Mehrotra",
title = "{OpenMP} and {HPF}: Integrating Two Paradigms",
journal = j-LECT-NOTES-COMP-SCI,
volume = "1470",
pages = "650--??",
year = "1998",
CODEN = "LNCSD9",
ISSN = "0302-9743",
bibdate = "Sat Oct 10 14:40:24 MDT 1998",
acknowledgement = ack-nhfb,
}
@Book{Cohen:1998:WMP,
author = "Aaron Cohen and Mike Woodring",
title = "{Win32} Multithreaded Programming",
publisher = pub-ORA,
address = pub-ORA:adr,
pages = "xv + 705",
year = "1998",
ISBN = "1-56592-296-4",
ISBN-13 = "978-1-56592-296-9",
LCCN = "QA76.76.O63 C633 1998",
bibdate = "Fri Aug 7 08:29:38 MDT 1998",
price = "US\$39.95",
URL = "http://www.oreilly.com/catalog/multithread;
http://www.ora.com/catalog/multithread/",
acknowledgement = ack-nhfb,
keywords = "Microsoft Win32; Microsoft Windows (Computer file);
Operating systems (Computers)",
}
@Article{Criscolo:1998:JQ,
author = "Mike Criscolo",
title = "{Java Q and A}: How Do {I} Queue {Java} Threads?",
journal = j-DDJ,
volume = "23",
number = "10",
pages = "127--129",
month = oct,
year = "1998",
CODEN = "DDJOEB",
ISSN = "1044-789X",
bibdate = "Fri Sep 11 09:12:05 MDT 1998",
URL = "http://www.ddj.com/ftp/1998/1998_10/jqa108.txt;
http://www.ddj.com/ftp/1998/1998_10/jqa108.zip",
abstract = "In examining queuing techniques in Java, Mike presents
one approach to multithreading he has implemented, and
examines the differences between centralized- and
distributed-queuing models. Additional resources
include jqa108.txt (listings) and jqa108.zip (source
code).",
acknowledgement = ack-nhfb,
}
@Article{Cromwell:1998:PBD,
author = "Jeff Cromwell",
title = "Programmer's Bookshelf: The Dawning of the Age of
Multithreading",
journal = j-DDJ,
volume = "23",
number = "9",
pages = "127, 129",
month = sep,
year = "1998",
CODEN = "DDJOEB",
ISSN = "1044-789X",
bibdate = "Wed Aug 05 10:12:23 1998",
bibsource = "http://www.ddj.com/ddj/1998/1998_09/index.htm",
URL = "",
abstract = "Jeff's focus this month is multithreading, as he
examines {\em Multithreading Programming Techniques in
Win32}, by Jim Beveridge and R. Wiener, {\em
Object-Oriented Multithreading Using C++}, by Cameron
and Tracy Hughes, and {\em Multithreading Programming
Techniques}, by Shashi Prasad.",
acknowledgement = ack-nhfb,
}
@Article{Dagum:1998:OIS,
author = "Leonardo Dagum and Ramesh Menon",
title = "{OpenMP}: An Industry-Standard {API} for Shared-Memory
Programming",
journal = j-IEEE-COMPUT-SCI-ENG,
volume = "5",
number = "1",
pages = "46--55",
month = jan # "\slash " # mar,
year = "1998",
CODEN = "ISCEE4",
ISSN = "1070-9924",
bibdate = "Sat Jan 9 08:57:23 MST 1999",
bibsource = "http://www.computer.org/cse/cs1998",
URL = "http://www.computer.org/cse/cs1998/c1046abs.htm;
http://dlib.computer.org/cs/books/cs1998/pdf/c1046.pdf",
acknowledgement = ack-nhfb,
}
@Article{Frigo:1998:ICM,
author = "Matteo Frigo and Charles E. Leiserson and Keith H.
Randall",
title = "The Implementation of the {Cilk-5} Multithreaded
Language",
journal = j-SIGPLAN,
volume = "33",
number = "5",
pages = "212--223",
month = may,
year = "1998",
CODEN = "SINODQ",
ISBN = "0-89791-987-4",
ISBN-13 = "978-0-89791-987-6",
ISSN = "0362-1340",
bibdate = "Sun Dec 14 09:17:47 MST 2003",
bibsource = "http://portal.acm.org/;
http://www.cs.virginia.edu/pldi98/program.html;
http://www.acm.org/pubs/contents/proceedings/pldi/277650/index.html",
URL = "http://www.acm.org:80/pubs/citations/proceedings/pldi/277650/p212-frigo/",
acknowledgement = ack-nhfb,
annote = "Published as part of the Proceedings of PLDI'98.",
keywords = "algorithms; languages; performance",
subject = "{\bf D.3.2} Software, PROGRAMMING LANGUAGES, Language
Classifications, Concurrent, distributed, and parallel
languages. {\bf D.1.3} Software, PROGRAMMING
TECHNIQUES, Concurrent Programming, Parallel
programming. {\bf D.3.3} Software, PROGRAMMING
LANGUAGES, Language Constructs and Features, Control
structures. {\bf D.3.2} Software, PROGRAMMING
LANGUAGES, Language Classifications, C.",
}
@TechReport{Golla:1998:CMR,
author = "Prasad N. Golla and Eric C. Lin",
title = "Cache memory requirements for multithreaded
uniprocessor architecture",
type = "Technical paper",
number = "98-CSE-03",
institution = "Dept. of Computer Science and Engineering, Southern
Methodist University",
address = "Dallas, TX, USA",
pages = "32",
year = "1998",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
acknowledgement = ack-nhfb,
}
@Article{Holub:1998:PJTa,
author = "Allen Holub",
title = "Programming {Java} threads in the real world:
Threading Architectures",
journal = j-JAVAWORLD,
volume = "3",
number = "9",
pages = "??--??",
month = sep,
year = "1998",
CODEN = "????",
ISSN = "1091-8906",
bibdate = "Thu Sep 10 14:37:36 MDT 1998",
bibsource = "http://www.javaworld.com/javaworld/",
URL = "http://www.javaworld.com/javaworld/jw-09-1998/jw-09-threads.htm;
http://www.holub.com/goodies/javaworld/jw_index.html",
acknowledgement = ack-nhfb,
}
@Article{Holub:1998:PJTb,
author = "Allen Holub",
title = "Programming {Java} threads in the real world, {Part}
2: Common multithreading Pitfalls (Deadlock, etc.)",
journal = j-JAVAWORLD,
volume = "3",
number = "10",
pages = "??--??",
year = "1998",
CODEN = "????",
ISSN = "1091-8906",
bibdate = "Mon Jan 4 06:11:43 MST 1999",
bibsource = "http://www.javaworld.com/javaworld/",
URL = "http://www.javaworld.com/javaworld/jw-10-1998/jw-10-toolbox.htm;
http://www.holub.com/goodies/javaworld/jw_index.html",
acknowledgement = ack-nhfb,
}
@Article{Holub:1998:PJTc,
author = "Allen Holub",
title = "Programming {Java} threads in the real world, {Part}
3: Semaphore, Lock\_manager, and Mutex",
journal = j-JAVAWORLD,
volume = "3",
number = "11",
pages = "??--??",
year = "1998",
CODEN = "????",
ISSN = "1091-8906",
bibdate = "Mon Jan 4 06:11:43 MST 1999",
bibsource = "http://www.javaworld.com/javaworld/",
URL = "http://www.javaworld.com/javaworld/jw-11-1998/jw-11-toolbox.htm;
http://www.holub.com/goodies/javaworld/jw_index.html",
acknowledgement = ack-nhfb,
}
@Article{Holub:1998:PJTd,
author = "Allen Holub",
title = "Programming {Java} threads in the real world, {Part}
4: Condition Variables and Counting Semaphores",
journal = j-JAVAWORLD,
volume = "3",
number = "12",
pages = "??--??",
year = "1998",
CODEN = "????",
ISSN = "1091-8906",
bibdate = "Mon Jan 4 06:22:03 MST 1999",
bibsource = "http://www.javaworld.com/javaworld/",
URL = "http://www.javaworld.com/javaworld/jw-12-1998/jw-12-toolbox.htm;
http://www.holub.com/goodies/javaworld/jw_index.html",
acknowledgement = ack-nhfb,
}
@PhdThesis{Hopper:1998:CFM,
author = "Michael A. Hopper",
title = "A compiler framework for multithreaded parallel
systems",
type = "Thesis (Ph.D.)",
school = "School of Electrical and Computer Engineering, Georgia
Institute of Technology",
address = "Atlanta, GA, USA",
pages = "xii + 110",
year = "1998",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
acknowledgement = ack-nhfb,
annote = "Directed by William Appelbe.",
keywords = "Compilers (Computer programs); Parallel processing
(Electronic computers)",
}
@Article{Itzkovitz:1998:TMA,
author = "Ayal Itzkovitz and Assaf Schuster and Lea Shalev",
title = "Thread migration and its applications in distributed
shared memory systems",
journal = j-J-SYST-SOFTW,
volume = "42",
number = "1",
pages = "71--87",
month = jul,
year = "1998",
bibdate = "Thu Dec 17 14:07:21 1998",
acknowledgement = ack-nhfb,
}
@Article{Keckler:1998:EFG,
author = "Stephen W. Keckler and William J. Dally and Daniel
Maskit and Nicholas P. Carter and Andrew Chang and Whay
S. Lee",
title = "Exploiting fine-grain thread level parallelism on the
{MIT} multi-{ALU} processor",
journal = j-COMP-ARCH-NEWS,
volume = "26",
number = "3",
pages = "306--317",
month = jun,
year = "1998",
CODEN = "CANED2",
ISSN = "0163-5964",
bibdate = "Fri May 12 09:40:58 MDT 2006",
bibsource = "http://portal.acm.org/",
acknowledgement = ack-nhfb,
}
@Article{Krinke:1998:SST,
author = "Jens Krinke",
title = "Static Slicing of Threaded Programs",
journal = j-SIGPLAN,
volume = "33",
number = "7",
pages = "35--42",
month = jul,
year = "1998",
CODEN = "SINODQ",
ISSN = "0362-1340",
bibdate = "Sun Dec 14 09:17:49 MST 2003",
bibsource = "http://portal.acm.org/; Compendex database;
http://portal.acm.org/",
abstract = "Static program slicing is an established method for
analyzing sequential programs, especially for program
understanding, debugging and testing. Until now, there
was no slicing method for threaded programs which
handles interference correctly. We present such a
method which also calculates more precise static
slices. This paper extends the well known structures of
the control flow graph and the program dependence graph
for threaded programs with interference. This new
technique does not require serialization of threaded
programs.",
acknowledgement = ack-nhfb,
affiliation = "Technische Universitaet Braunschweig",
affiliationaddress = "Braunschweig, Ger",
classification = "723; 723.1; 723.2; 723.5",
conference = "Proceedings of the 1998 ACM SIGPLAN\slash SIGSOFT
Workshop on Program Analysis for Software Tools and
Engineering",
journalabr = "ACM SIGPLAN SIGSOFT Workshop Program Anal Software
Tools Eng",
keywords = "Computer aided software engineering; Computer software
selection and evaluation; Control flow graphs; Data
flow analysis; Data structures; Program debugging;
Static program slicing; Threaded programs",
meetingaddress = "Montreal, Can",
meetingdate = "Jun 16 1998",
meetingdate2 = "06/16/98",
sponsor = "ACM",
}
@Book{Lewis:1998:MPP,
author = "Bil Lewis and Daniel J. Berg",
title = "Multithreaded programming with pthreads",
publisher = pub-SUN,
address = pub-SUN:adr,
pages = "xxx + 382",
year = "1998",
ISBN = "0-13-680729-1 (paperback)",
ISBN-13 = "978-0-13-680729-2 (paperback)",
LCCN = "QA76.76.T55 L49 1998",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
URL = "http://www.amazon.com/exec/obidos/ASIN/0136807291/ref=sim_books/002-4892305-5599452;
http://www.sun.com/books/catalog/lewis2/index.html",
acknowledgement = ack-nhfb,
alttitle = "Pthreads",
keywords = "POSIX (Computer software standard); Threads (Computer
programs); UNIX (Computer file)",
}
@Article{Lo:1998:ADW,
author = "Jack L. Lo and Luiz Andr{\'e} Barroso and Susan J.
Eggers and Kourosh Gharachorloo and Henry M. Levy and
Sujay S. Parekh",
title = "An analysis of database workload performance on
simultaneous multithreaded processors",
journal = j-COMP-ARCH-NEWS,
volume = "26",
number = "3",
pages = "39--50",
month = jun,
year = "1998",
CODEN = "CANED2",
ISSN = "0163-5964",
bibdate = "Fri May 12 09:40:58 MDT 2006",
bibsource = "http://portal.acm.org/",
acknowledgement = ack-nhfb,
}
@InProceedings{Lu:1998:ONW,
author = "Honghui Lu",
title = "{OpenMP} on Networks of Workstations",
crossref = "ACM:1998:SHP",
pages = "??--??",
year = "1998",
bibdate = "Wed Oct 07 08:50:26 1998",
bibsource = "http://www.supercomp.org/sc98/papers/",
acknowledgement = ack-nhfb,
}
@Article{Manley:1998:GPT,
author = "Kevin T. Manley",
title = "General-Purpose Threads with {I/O} Completion Ports",
journal = j-CCCUJ,
volume = "16",
number = "4",
pages = "??--??",
month = apr,
year = "1998",
CODEN = "CCUJEX",
ISSN = "1075-2838",
bibdate = "Tue May 14 18:09:15 MDT 2002",
bibsource = "http://www.cuj.com/articles/1998/9804/9804toc.htm?topic=articles",
abstract = "Divide and conquer is a good strategy for partitioning
a large job, provided you don't divide too much.
Windows NT helps you guess right.",
acknowledgement = ack-nhfb,
}
@Article{Mascarenhas:1998:MTP,
author = "Edward Mascarenhas and Vernon Rego",
title = "Migrant threads on process farms: parallel programming
with {Ariadne}",
journal = j-CPE,
volume = "10",
number = "9",
pages = "673--698",
day = "10",
month = aug,
year = "1998",
CODEN = "CPEXEI",
ISSN = "1040-3108",
bibdate = "Tue Sep 7 06:06:42 MDT 1999",
bibsource = "http://www3.interscience.wiley.comjournalfinder.html",
URL = "http://www3.interscience.wiley.com/cgi-bin/fulltext?ID=10008703&PLACEBO=IE.pdf;
http://www3.interscience.wiley.com/cgi-bin/abstract?ID=10008703",
acknowledgement = ack-nhfb,
}
@Article{McManis:1998:DUT,
author = "Chuck McManis",
title = "In Depth: Using threads with collections, {Part 1}",
journal = j-JAVAWORLD,
volume = "3",
number = "3",
pages = "??--??",
month = mar,
year = "1998",
CODEN = "????",
ISSN = "1091-8906",
bibdate = "Thu Aug 13 08:48:26 MDT 1998",
bibsource = "http://www.javaworld.com/javaworld/",
URL = "http://www.javaworld.com/javaworld/jw-03-1998/jw-03-indepth.html",
acknowledgement = ack-nhfb,
}
@Article{McManis:1998:JDU,
author = "Chuck McManis",
title = "{Java} In Depth: Using threads with collections, part
2",
journal = j-JAVAWORLD,
volume = "3",
number = "6",
pages = "??--??",
month = jun,
year = "1998",
CODEN = "????",
ISSN = "1091-8906",
bibdate = "Thu Aug 13 08:48:26 MDT 1998",
bibsource = "http://www.javaworld.com/javaworld/",
URL = "http://www.javaworld.com/javaworld/jw-06-1998/jw-06-indepth.html",
acknowledgement = ack-nhfb,
}
@Book{Nichols:1998:PP,
author = "Bradford Nichols and Dick Buttlar and Jacqueline
Proulx Farrell",
title = "Pthreads programming",
publisher = pub-ORA,
address = pub-ORA:adr,
pages = "xvi + 267",
year = "1998",
ISBN = "1-56592-115-1",
ISBN-13 = "978-1-56592-115-3",
LCCN = "QA76.642 .N53 1998",
bibdate = "Fri May 10 12:18:17 MDT 2002",
series = "Nutshell handbook",
acknowledgement = ack-nhfb,
annote = "A POSIX standard for better multiprocessing.",
keywords = "parallel programming (computer science); compilers
(computer programs)",
}
@Article{Piumarta:1998:ODT,
author = "Ian Piumarta and Fabio Riccardi",
title = "Optimizing Direct-threaded Code by Selective
Inlining",
journal = j-SIGPLAN,
volume = "33",
number = "5",
pages = "291--300",
month = may,
year = "1998",
CODEN = "SINODQ",
ISBN = "0-89791-987-4",
ISBN-13 = "978-0-89791-987-6",
ISSN = "0362-1340",
bibdate = "Sun Dec 14 09:17:47 MST 2003",
bibsource = "http://www.cs.virginia.edu/pldi98/program.html;
http://www.acm.org/pubs/contents/proceedings/pldi/277650/index.html;
http://portal.acm.org/; http://portal.acm.org/",
URL = "http://www.acm.org:80/pubs/citations/proceedings/pldi/277650/p291-piumarta/",
acknowledgement = ack-nhfb,
annote = "Published as part of the Proceedings of PLDI'98.",
keywords = "algorithms; experimentation; languages; performance",
subject = "{\bf D.3.4} Software, PROGRAMMING LANGUAGES,
Processors, Optimization. {\bf D.3.4} Software,
PROGRAMMING LANGUAGES, Processors, Interpreters. {\bf
D.3.4} Software, PROGRAMMING LANGUAGES, Processors,
Translator writing systems and compiler generators.",
}
@Article{Plauger:1998:SCCl,
author = "P. J. Plauger",
title = "{Standard C/C++}: Thread Safety",
journal = j-CCCUJ,
volume = "16",
number = "12",
pages = "??--??",
month = dec,
year = "1998",
CODEN = "CCUJEX",
ISSN = "1075-2838",
bibdate = "Tue May 14 18:09:18 MDT 2002",
bibsource = "http://www.cuj.com/articles/1998/9812/9812toc.htm?topic=articles",
abstract = "The C++ Standard doesn't talk about thread safety, but
everyone else does.",
acknowledgement = ack-nhfb,
}
@Article{Pomerantz:1998:CNS,
author = "Dave Pomerantz",
title = "{C++} Notifiers: Simplifying system development",
journal = j-DDJ,
volume = "23",
number = "8",
pages = "26, 28, 30--31, 89--90",
month = aug,
year = "1998",
CODEN = "DDJOEB",
ISSN = "1044-789X",
bibdate = "Thu Jul 16 13:01:59 MDT 1998",
bibsource = "http://www.ddj.com/ddj/1998/1998_08/",
URL = "http://www.ddj.com/ftp/1998/1998_08/notifier.txt;
http://www.ddj.com/ftp/1998/1998_08/notifier.zip",
abstract = "Notifiers, also called ``events'' or ``messages,'' are
used to pass information anonymously between objects.
Dave shows how notifiers can work in C++, using a
multithreaded application as an example.",
acknowledgement = ack-nhfb,
}
@Article{Reck:1998:TSR,
author = "Bill Reck",
title = "Thread Synchronization with Reference-Counting
Handles",
journal = j-CCCUJ,
volume = "16",
number = "2",
pages = "??--??",
month = feb,
year = "1998",
CODEN = "CCUJEX",
ISSN = "1075-2838",
bibdate = "Tue May 14 18:09:14 MDT 2002",
bibsource = "http://www.cuj.com/articles/1998/9802/9802toc.htm?topic=articles",
abstract = "Often, the best time to protect access to a shared
object is right when you reach for it.",
acknowledgement = ack-nhfb,
}
@Article{Schmidt:1998:EAM,
author = "Douglas C. Schmidt",
title = "Evaluating architectures for multithreaded object
request brokers",
journal = j-CACM,
volume = "41",
number = "10",
pages = "54--60",
month = oct,
year = "1998",
CODEN = "CACMA2",
ISSN = "0001-0782",
bibdate = "Tue Oct 6 21:15:42 MDT 1998",
bibsource = "http://www.acm.org/pubs/toc/",
URL = "http://www.acm.org:80/pubs/citations/journals/cacm/1998-41-10/p54-schmidt/",
acknowledgement = ack-nhfb,
}
@Article{Shaw:1998:CIP,
author = "Andrew Shaw and Arvind and Kyoo-Chan Cho and
Christopher Hill and R. Paul Johnson and John
Marshall",
title = "A Comparison of Implicitly Parallel Multithreaded and
Data-Parallel Implementations of an Ocean Model",
journal = j-J-PAR-DIST-COMP,
volume = "48",
number = "1",
pages = "1--51",
day = "10",
month = jan,
year = "1998",
CODEN = "JPDCER",
DOI = "http://dx.doi.org/10.1006/jpdc.1997.1390",
ISSN = "0743-7315",
bibdate = "Thu Mar 9 09:19:04 MST 2000",
bibsource = "http://www.idealibrary.com/servlet/useragent?func=showAllIssues&curIssueID=jpdc",
URL = "http://www.idealibrary.com/links/doi/10.1006/jpdc.1997.1390/production;
http://www.idealibrary.com/links/doi/10.1006/jpdc.1997.1390/production/pdf;
http://www.idealibrary.com/links/doi/10.1006/jpdc.1997.1390/production/ref",
acknowledgement = ack-nhfb,
}
@PhdThesis{Shaw:1998:CPM,
author = "Andrew Shaw",
title = "Compiling for parallel multithreaded computation on
symmetric multiprocessors",
type = "Thesis (Ph.D.)",
school = "Massachusetts Institute of Technology, Department of
Electrical Engineering and Computer Science",
address = "Cambridge, MA, USA",
pages = "149",
year = "1998",
bibdate = "Fri Aug 7 09:34:36 MDT 1998",
acknowledgement = ack-nhfb,
}
@Article{Silc:1998:APC,
author = "J. Silc and B. Robic and T. Ungerer",
title = "Asynchrony in Parallel Computing: From Dataflow to
Multithreading",
journal = j-PARALLEL-DIST-COMP-PRACT,
volume = "1",
number = "1",
pages = "??--??",
month = "????",
year = "1998",
CODEN = "????",
ISSN = "1097-2803",
bibdate = "Fri Dec 19 08:14:11 MST 2003",
bibsource = "http://www.cs.okstate.edu/~pdcp/vols/vol01/vol01no1.html",
URL = "http://www.cs.okstate.edu/~pdcp/vols/vol01/vol01no1abs.html#silc",
acknowledgement = ack-nhfb,
}
@Article{Skillicorn:1998:MLP,
author = "David B. Skillicorn and Domenico Talia",
title = "Models and languages for parallel computation",
journal = j-COMP-SURV,
volume = "30",
number = "2",
pages = "123--169",
month = jun,
year = "1998",
CODEN = "CMSVAN",
ISSN = "0360-0300",
bibdate = "Fri Sep 11 08:35:51 MDT 1998",
bibsource = "http://www.acm.org/pubs