%%% -*-BibTeX-*-
%%% ====================================================================
%%%  BibTeX-file{
%%%     author          = "Nelson H. F. Beebe",
%%%     version         = "3.49",
%%%     date            = "09 September 2014",
%%%     time            = "08:38:37 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        = "30737 43157 199336 2054091",
%%%     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 3.49, the year coverage looked
%%%                        like this:
%%%
%%%                             1973 (   1)    1987 (   2)    2001 (  58)
%%%                             1974 (   0)    1988 (   2)    2002 (  64)
%%%                             1975 (   0)    1989 (  15)    2003 (  59)
%%%                             1976 (   0)    1990 (  16)    2004 (  35)
%%%                             1977 (   0)    1991 (  41)    2005 (  29)
%%%                             1978 (   0)    1992 (  48)    2006 (  41)
%%%                             1979 (   0)    1993 (  47)    2007 (  47)
%%%                             1980 (   1)    1994 (  71)    2008 (  56)
%%%                             1981 (   0)    1995 (  89)    2009 (  58)
%%%                             1982 (   0)    1996 (  82)    2010 (  56)
%%%                             1983 (   0)    1997 (  85)    2011 (  33)
%%%                             1984 (   0)    1998 (  85)    2012 (  67)
%%%                             1985 (   0)    1999 (  70)    2013 (  37)
%%%                             1986 (   1)    2000 (  79)    2014 (  11)
%%%
%%%                             Article:       1070
%%%                             Book:            45
%%%                             InBook:           1
%%%                             InCollection:     1
%%%                             InProceedings:   99
%%%                             Manual:           4
%%%                             MastersThesis:   37
%%%                             PhdThesis:       22
%%%                             Proceedings:     69
%%%                             TechReport:      38
%%%
%%%                             Total entries: 1386
%%%
%%%                        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-CSC                = "Center for Scientific Computing,
                                  Department of Mathematics, University of
                                  Utah"}
@String{inst-CSC:adr            = "Salt Lake City, UT 84112, USA"}

@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-UCB-EECS           = "Department of Electrical Engineering and
                                  Computer Science, University of California,
                                  Berkeley"}
@String{inst-UCB-EECS:adr       = "Berkeley, CA, 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"}

@String{inst-UT-CS              = "Department of Computer Science, University of
                                  Tennessee, Knoxville"}
@String{inst-UT-CS:adr          = "Knoxville, TN 37996, USA"}

%%% ====================================================================
%%% Journal abbreviations:

@String{j-ACM-COMM-COMP-ALGEBRA = "ACM Communications in Computer Algebra"}

@String{j-ACM-J-EXP-ALGORITHMICS = "ACM Journal of Experimental Algorithmics"}

@String{j-ACTA-INFO             = "Acta Informatica"}

@String{j-ADA-USER              = "Ada User"}

@String{j-ALGORITHMICA          = "Algorithmica"}

@String{j-APPL-MATH-COMP        = "Applied Mathematics and Computation"}

@String{j-APPL-NUM-MATH         = "Applied Numerical Mathematics: Transactions
                                  of IMACS"}

@String{j-BYTE                  = "Byte Magazine"}

@String{j-C-PLUS-PLUS-REPORT    = "C++ Report"}

@String{j-CACM                  = "Communications of the ACM"}

@String{j-CCCUJ                 = "C/C++ Users Journal"}

@String{j-CCPE                  = "Concurrency and Computation: Prac\-tice and
                                  Experience"}

@String{j-CG-WORLD              = "Computer Graphics World"}

@String{j-COMP-ARCH-NEWS        = "ACM SIGARCH Computer Architecture News"}

@String{j-COMP-GRAPHICS         = "Computer Graphics"}

@String{j-COMP-J                = "The Computer Journal"}

@String{j-COMP-NET-AMSTERDAM    = "Computer Networks (Amsterdam, Netherlands:
                                  1999)"}

@String{j-COMP-PHYS-COMM        = "Computer Physics Communications"}

@String{j-COMP-SURV             = "ACM Computing Surveys"}

@String{j-COMP-SYS              = "Computing Systems"}

@String{j-COMPUT-SCI-ENG   = "Computing in Science and Engineering"}

@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-DATAMATION            = "Datamation"}

@String{j-DDJ                   = "Dr. Dobb's Journal of Software Tools"}

@String{j-DEC-TECH-J            = "Digital Technical Journal"}

@String{j-ELECTRONIK            = "Elektronik"}

@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-CONCURR          = "IEEE Concurrency"}

@String{j-IEEE-DISTRIB-SYST-ONLINE = "IEEE Distributed Systems Online"}

@String{j-IEEE-INT-SYMP-HIGH-PERF-DIST-COMP-PROC = "IEEE International Symposium
                                  on High Performance Distributed Computing,
                                  Proceedings"}

@String{j-IEEE-MICRO            = "IEEE Micro"}

@String{j-IEEE-PAR-DIST-TECH    = "IEEE parallel and distributed technology:
                                  systems and applications"}

@String{j-IEEE-SOFTWARE         = "IEEE Software"}

@String{j-IEEE-TRANS-COMPUT     = "IEEE Transactions on Computers"}

@String{j-IEEE-TRANS-PAR-DIST-SYS = "IEEE Transactions on Parallel and
                                  Distributed Systems"}

@String{j-IEEE-TRANS-VIS-COMPUT-GRAPH = "IEEE Transactions on Visualization
                                   and Computer Graphics"}

@String{j-IJHPCA                = "The International Journal of High
                                  Performance Computing Applications"}

@String{j-INFO-PROC-LETT        = "Information Processing Letters"}

@String{j-INT-J-COMPUT-SYST-SCI-ENG = "International Journal of Computer
                                  Systems Science and Engineering"}

@String{j-INT-J-HIGH-SPEED-COMPUTING = "International Journal of High
                        Speed Computing (IJHSC)"}

@String{j-INT-J-PAR-EMER-DIST-SYS = "International Journal of Parallel,
                               Emergent and Distributed Systems: IJPEDS"}

@String{j-INT-J-PARALLEL-PROG   = "International Journal of Parallel
                                  Programming"}

@String{j-INT-J-SOFTW-TOOLS-TECHNOL-TRANSFER = "International Journal on
                                  Software Tools for Technology Transfer
                                  (STTT)"}

@String{j-INTEL-TECH-J          = "Intel Technology Journal"}

@String{j-J-ACM                 = "Journal of the ACM"}

@String{j-J-COMPUT-CHEM         = "Journal of Computational Chemistry"}

@String{j-J-GRAPHICS-TOOLS      = "Journal of Graphics Tools: JGT"}

@String{j-J-GRID-COMP            = "Journal of Grid Computing"}

@String{j-J-PAR-DIST-COMP       = "Journal of Parallel and Distributed
                                  Computing"}

@String{j-J-SUPERCOMPUTING      = "The Journal of Supercomputing"}

@String{j-J-SYMBOLIC-COMP       = "Journal of Symbolic Computation"}

@String{j-J-SYST-SOFTW          = "The Journal of Systems and Software"}

@String{j-J-UCS                 = "J.UCS: Journal of Universal Computer
                                  Science"}

@String{j-JAVA-REPORT           = "{Java} Report: The Source for {Java}
                                  Development"}

@String{j-JAVAWORLD             = "JavaWorld: IDG's magazine for the Java
                                  community"}

@String{j-JERIC                 = "ACM Journal on Educational Resources in
                                  Computing (JERIC)"}

@String{j-JETC                  = "ACM Journal on Emerging Technologies in
                                  Computing Systems (JETC)"}

@String{j-LECT-NOTES-COMP-SCI   = "Lecture Notes in Computer Science"}

@String{j-LINUX-J               = "Linux Journal"}

@String{j-LOGIN                 = ";login: the USENIX Association newsletter"}

@String{j-MICROPROC-MICROSYS    = "Microprocessors and Microsystems"}

@String{j-MICROSOFT-SYS-J       = "Microsoft Systems Journal"}

@String{j-NORDIC-J-COMPUT       = "Nordic Journal of Computing"}

@String{j-ONLINE-CDROM-REV      = "Online \& CDROM review: the international
                                  journal of online \& optical
                                  information systems"}

@String{j-OPEN-SYSTEMS-TODAY    = "Open Systems Today"}

@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-REAL-TIME-SYST        = "Real-Time Systems"}

@String{j-SCI-COMPUT-PROGRAM    = "Science of Computer Programming"}

@String{j-SCI-PROG              = "Scientific Programming"}

@String{j-SCPE                  = "Scalable Computing: Practice and Experience"}

@String{j-SIAM-J-COMPUT         = "SIAM Journal on Computing"}

@String{j-SIAM-J-SCI-COMP       = "SIAM Journal on Scientific Computing"}

@String{j-SIGADA-LETTERS        = "ACM SIGADA Ada Letters"}

@String{j-SIGCSE                = "SIGCSE Bulletin (ACM Special Interest Group
                                  on Computer Science Education)"}

@String{j-SIGMETRICS            = "ACM SIGMETRICS Performance Evaluation
                                  Review"}

@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-SUPERCOMPUTER         = "Supercomputer"}

@String{j-TACO                  = "ACM Transactions on Architecture and Code
                                  Optimization"}

@String{j-TCBB                  = "IEEE/ACM Transactions on Computational
                                  Biology and Bioinformatics"}

@String{j-TECS                  = "ACM Transactions on Embedded Computing
                                  Systems"}

@String{j-THEOR-COMP-SCI        = "Theoretical Computer Science"}

@String{j-TISSEC                = "ACM Transactions on Information and System
                                  Security"}

@String{j-TOCHI                 = "ACM Transactions on Computer-Human
                                  Interaction"}

@String{j-TOCS                  = "ACM Transactions on Computer Systems"}

@String{j-TODAES                = "ACM Transactions on Design Automation of
                                  Electronic Systems."}

@String{j-TODS                  = "ACM Transactions on Database 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"}

@String{j-UNIXWORLD-OPEN-COMP   = "UnixWorld's Open Computing"}

@String{j-VLDB-J                = "VLDB Journal: Very Large Data Bases"}

@String{j-WEB-TECHNIQUES        = "Web Techniques"}

@String{j-X-RESOURCE            = "{The X Resource}"}

%%% ====================================================================
%%% 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-EYROLLES            = "Editions Eyrolles"}
@String{pub-EYROLLES:adr        = "Paris, France"}

@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-LEARNED-INF         = "Learned Information"}
@String{pub-LEARNED-INF:adr     = "Medford, NJ, USA"}

@String{pub-MCGRAW-HILL         = "Mc{\-}Graw-Hill"}
@String{pub-MCGRAW-HILL:adr     = "New York, NY, USA"}

@String{pub-MIT                 = "MIT Press"}
@String{pub-MIT:adr             = "Cambridge, MA, 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-UKUUG               = "UK Unix Users Group"}
@String{pub-UKUUG:adr           = "Buntingford, Herts, UK"}

@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"}

@String{pub-WORLD-SCI           = "World Scientific Publishing Co."}
@String{pub-WORLD-SCI:adr       = "Singapore; Philadelphia, PA, USA; River
                                  Edge, NJ, USA"}

%%% ====================================================================
%%% 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 (print), 1943-5851 (electronic)",
  ISSN-L =       "0163-5964",
  bibdate =      "Fri May 12 09:40:28 MDT 2006",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGARCH Computer Architecture News",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J89",
  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{Smith:1980:ASD,
  author =       "Connie Smith and J. C. Browne",
  title =        "Aspects of software design analysis: {Concurrency} and
                 blocking",
  journal =      j-SIGMETRICS,
  volume =       "9",
  number =       "2",
  pages =        "245--253",
  month =        "Summer",
  year =         "1980",
  CODEN =        "????",
  DOI =          "http://doi.acm.org/10.1145/1009375.806169",
  ISSN =         "0163-5999 (print), 1557-9484 (electronic)",
  ISSN-L =       "0163-5999",
  bibdate =      "Thu Jun 26 10:54:53 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  abstract =     "This paper extends previous work on development of a
                 methodology for the prediction of the performance of
                 computer software systems from design level
                 specifications and continuing through implementation.
                 The effects of synchronized behavior, such as results
                 from data reservation in multi-thread executions of
                 data base systems, and competition for host system
                 resources are incorporated. The previous methodology
                 uses hierarchical graphs to represent the execution of
                 software on some host computer system (or on some
                 abstract machine). Performance metrics such as response
                 time were obtained from analysis of these graphs
                 assuming execution of a single copy on a dedicated
                 host. This paper discusses the mapping of these
                 execution graphs upon queueing network models of the
                 host computing environment to yield performance metric
                 estimates for more complex and realistic processing
                 environments.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGMETRICS Performance Evaluation Review",
  journal-URL =  "http://portal.acm.org/toc.cfm?id=J618",
}

@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 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:14:55 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  classification = "C6110 (Systems analysis and programming); C6140D
                 (High level languages)",
  corpsource =   "Sperry Network Syst., London, UK",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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{Tanner:1987:MTI,
  author =       "P. P. Tanner",
  title =        "Multi-thread input",
  journal =      j-COMP-GRAPHICS,
  volume =       "21",
  number =       "2",
  pages =        "142--145",
  month =        apr,
  year =         "1987",
  CODEN =        "CGRADI, CPGPBZ",
  ISSN =         "0097-8930 (print), 1558-4569 (electronic)",
  ISSN-L =       "0097-8930",
  bibdate =      "Tue Mar 12 17:52:38 MST 2002",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Graphics",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J166",
}

@Article{Gilbert:1988:DVN,
  author =       "P. D. Gilbert",
  title =        "Development of the {VAX NOTES} system",
  journal =      j-DEC-TECH-J,
  volume =       "1",
  number =       "6",
  pages =        "117--124",
  month =        feb,
  year =         "1988",
  CODEN =        "DTJOEL",
  ISSN =         "0898-901X",
  bibdate =      "Thu Mar 20 18:15:43 MST 1997",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  classcodes =   "C6110B (Software engineering techniques); C7410F
                 (Communications)",
  corpsource =   "Digital Equipment Corp., Hudson, MA, USA",
  fjournal =     "Digital Technical Journal",
  keywords =     "callable interface; communications tool; computer
                 conferencing; DEC; DEC computers; discussions; human
                 factors; human-factors engineering; interfaces; medium;
                 multiprogramming; multitasking; multithreaded server;
                 online; program; program testing; software engineering;
                 storage; technical writer; teleconferencing; testing;
                 user; user interface; VAX NOTES",
  treatment =    "P Practical",
}

@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 (print), 1943-5851 (electronic)",
  ISSN-L =       "0163-5964",
  bibdate =      "Fri May 12 09:40:45 MDT 2006",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGARCH Computer Architecture News",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J89",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  series =       "VLSI memo",
  acknowledgement = ack-nhfb,
}

@Article{Amamiya:1989:DFC,
  author =       "M. Amamiya",
  title =        "Data Flow Computing and Parallel Reduction Machine",
  journal =      j-FUT-GEN-COMP-SYS,
  volume =       "4",
  number =       "??",
  pages =        "53--67",
  month =        "????",
  year =         "1989",
  CODEN =        "FGSEVI",
  ISSN =         "0167-739X (print), 1872-7115 (electronic)",
  ISSN-L =       "0167-739X",
  bibdate =      "Wed Feb 27 18:37:19 2002",
  bibsource =    "ftp://ftp.ira.uka.de/bibliography/Compiler/Functional.bib;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  fjournal =     "Future Generation Computer Systems",
  journal-URL =  "http://www.sciencedirect.com/science/journal/0167739X",
  keywords =     "functional cell toke flow multi-thread control flow
                 architecture",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:15:37 MST 2003",
  bibsource =    "Compendex database; http://portal.acm.org/;
                 http://www.acm.org/pubs/toc/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  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 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:15:37 MST 2003",
  bibsource =    "Compendex database; http://portal.acm.org/;
                 http://www.acm.org/pubs/toc/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
}

@InProceedings{Korty:1989:SLL,
  author =       "Joseph A. Korty",
  title =        "{Sema}: a {Lint-like} Tool for Analyzing Semaphore
                 Usage in a Multithreaded {UNIX} Kernel",
  crossref =     "USENIX:1989:PWU",
  institution =  "MODCOMP",
  pages =        "113--123",
  month =        "Winter",
  year =         "1989",
  bibdate =      "Wed Aug 13 10:48:45 MDT 1997",
  bibsource =    "ftp://ftp.uu.net/library/bibliography;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 http://www.math.utah.edu/pub/tex/bib/usenix1980.bib;
                 http://www.usenix.org/cgi-bin/sortbib.pl?-sA",
  acknowledgement = ack-nhfb,
  affiliation =  "MODCOMP",
}

@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 (print), 1943-586X (electronic)",
  ISSN-L =       "0163-5980",
  bibdate =      "Sat Aug 26 12:47:29 MDT 2006",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Operating Systems Review",
}

@InProceedings{McJones:1989:EUS,
  author =       "Paul R. McJones and Garret F. Swart",
  title =        "Evolving the {UNIX} System Interface to Support
                 Multithreaded Programs",
  crossref =     "USENIX:1989:PWU",
  pages =        "393--404",
  month =        "Winter",
  year =         "1989",
  bibdate =      "Fri Oct 18 07:24:24 MDT 1996",
  bibsource =    "ftp://ftp.uu.net/library/bibliography;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "DEC Systems Research Center",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  keywords =     "Electronic data processing -- Distributed processing;
                 Multiprocessors; Operating systems (Computers)",
}

@InProceedings{Rashid:1989:MFO,
  author =       "R. Rashid and R. Baron and A. Forin and D. Golub and
                 M. Jones and D. Orr and R. Sanzi",
  title =        "{Mach}: a foundation for open systems (operating
                 systems)",
  crossref =     "IEEE:1989:WOS",
  pages =        "109--113",
  year =         "1989",
  bibdate =      "Sat Sep 28 20:21:01 MDT 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/mach.bib;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Sch. of Comput. Sci., Carnegie-Mellon Univ.,
                 Pittsburgh, PA, USA",
  classification = "C6110B (Software engineering techniques); C6150J
                 (Operating systems)",
  keywords =     "Hardware resources; Mach kernel; Multiserver Unix;
                 Multithreaded Unix server; Operating system; OS
                 emulation; Software development",
  thesaurus =    "File servers; Open systems; Operating systems
                 [computers]; Software engineering; Unix",
}

@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 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "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;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  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.",
}

@InProceedings{Caswell:1990:IMD,
  author =       "D. Caswell and D. Black",
  title =        "Implementing a {Mach} debugger for multithreaded
                 applications",
  crossref =     "Anonymous:1990:PWU",
  pages =        "25--39",
  year =         "1990",
  bibdate =      "Sat Sep 28 20:03:34 MDT 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Hewlett Packard Labs., Palo Alto, CA, USA",
  classification = "C6150G (Diagnostic, testing, debugging and
                 evaluating systems); C6150J (Operating systems)",
  keywords =     "Application debugging; Mach debugger; Mach operating
                 system; Multithreaded applications; Operating system
                 facilities; Underlying design principles; Unix
                 compatible environment",
  thesaurus =    "Operating systems [computers]; Program debugging;
                 Unix",
}

@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;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "C Users Journal",
}

@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;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "C Users Journal",
}

@Article{Eggers:1990:TEI,
  author =       "S. J. Eggers and David R. Keppel and Eric J. Koldinger
                 and Henry M. Levy",
  title =        "Techniques for efficient inline tracing on a
                 shared-memory multiprocessor",
  journal =      j-SIGMETRICS,
  volume =       "18",
  number =       "1",
  pages =        "37--47",
  month =        may,
  year =         "1990",
  CODEN =        "????",
  DOI =          "http://doi.acm.org/10.1145/98457.98501",
  ISSN =         "0163-5999 (print), 1557-9484 (electronic)",
  ISSN-L =       "0163-5999",
  bibdate =      "Thu Jun 26 11:09:08 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  abstract =     "While much current research concerns multiprocessor
                 design, few traces of parallel programs are available
                 for analyzing the effect of design trade-offs. Existing
                 trace collection methods have serious drawbacks:
                 trap-driven methods often slow down program execution
                 by more than 1000 times, significantly perturbing
                 program behavior; microcode modification is faster, but
                 the technique is neither general nor portable. This
                 paper describes a new tool, called MPTRACE, for
                 collecting traces of multithreaded parallel programs
                 executing on shared-memory multiprocessors. MPTRACE
                 requires no hardware or microcode modification; it
                 collects complete program traces; it is portable; and
                 it reduces execution-time dilation to less than a
                 factor 3. MPTRACE is based on inline tracing, in which
                 a program is automatically modified to produce trace
                 information as it executes. We show how the use of
                 compiler flow analysis techniques can reduce the amount
                 of data collected and therefore the runtime dilation of
                 the traced program. We also discuss problematic issues
                 concerning buffering and writing of trace data on a
                 multiprocessor.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGMETRICS Performance Evaluation Review",
  journal-URL =  "http://portal.acm.org/toc.cfm?id=J618",
}

@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 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:15:57 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
}

@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",
  ISSN-L =       "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;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  classcodes =   "C6110B (Software engineering techniques); C6120 (File
                 organisation)",
  fjournal =     "ACM SIGADA Ada Letters",
  keywords =     "Ada; Ada parameter passing semantics; concurrency,
                 tasking, reuse; concurrent forms; data integrity; data
                 structure manipulation routines; data structures;
                 multiple; parallel programming; reusability; semaphore
                 calls; software; threads of control",
  treatment =    "P Practical",
}

@InProceedings{Hansen:1990:EPA,
  author =       "G. J. Hansen and C. A. Linthicum and G. Brooks",
  title =        "Experience with a performance analyzer for
                 multithreaded applications",
  crossref =     "IEEE:1990:PSN",
  pages =        "124--131",
  year =         "1990",
  bibdate =      "Wed Apr 15 18:34:48 MDT 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  classification = "C5470 (Performance evaluation and testing); C6150E
                 (General utility programs); C6150G (Diagnostic,
                 testing, debugging and evaluating systems)",
  corpsource =   "CONVEX Comput. Corp., Richardson, TX, USA",
  keywords =     "CONVEX C200 series computers; Convex OS V8.0; CONVEX
                 performance analyzer, CX/sub pa/; loops;
                 multiprocessing systems; multithreaded applications;
                 operating system facilities; parallel code monitoring;
                 performance evaluation; profiling data; profiling
                 information; time-sharing environment; time-sharing
                 systems; Unix; UNIX based operating system",
  sponsororg =   "IEEE; ACM; Lawrence Livermore Nat. Lab.; Los Alamos
                 Nat. Lab.; NASA Ames Res. Center; Nat. Center Atmos.
                 Res.; NSF; SIAM; Supercomput. Res. Center",
  treatment =    "P Practical; X Experimental",
}

@Article{Miastkowski:1990:PGG,
  author =       "Stan Miastkowski",
  title =        "{PC GUIs} Go Head to Head",
  journal =      j-BYTE,
  volume =       "15",
  number =       "11",
  pages =        "82--87",
  month =        "Fall",
  year =         "1990",
  CODEN =        "BYTEDJ",
  ISSN =         "0360-5280 (print), 1082-7838 (electronic)",
  ISSN-L =       "0360-5280",
  bibdate =      "Thu Sep 12 18:39:30 MDT 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  classification = "C6130B (Graphics techniques); C6150J (Operating
                 systems); C6180 (User interfaces)",
  fjournal =     "BYTE Magazine",
  keywords =     "Graphical DOS shell; Multithreading operating system;
                 OS/2; PC GUIs; User interface differences; Windows
                 3.0",
  thesaurus =    "Computer graphics; Operating systems [computers]; User
                 interfaces",
}

@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 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:15:50 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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)",
}

@InProceedings{Presotto:1990:MSP,
  author =       "D. L. Presotto",
  booktitle =    "UKUUG. UNIX - The Legend Evolves. Proceedings of the
                 Summer 1990 UKUUG Conference",
  title =        "Multiprocessor Streams for {Plan 9}",
  publisher =    pub-UKUUG,
  address =      pub-UKUUG:adr,
  pages =        "11--19 (of xi + 260)",
  month =        "????",
  year =         "1990",
  ISBN =         "0-9513181-7-9",
  ISBN-13 =      "978-0-9513181-7-1",
  LCCN =         "????",
  bibdate =      "Sat Mar 22 15:10:17 MST 1997",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  classcodes =   "C6150J (Operating systems)",
  conflocation = "London, UK; 9-13 July 1990",
  corpsource =   "AT&T Bell Lab., Murray Hill, NJ, USA",
  keywords =     "abstraction; input-output programs; kernel;
                 multi-threaded; multiprocessing programs;
                 multiprocessor; Plan 9 kernel; Streams; system call
                 interface; Unix",
  treatment =    "P Practical",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "C Users Journal",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
}

@Article{Balter:1991:AIG,
  author =       "R. Balter and J. Bernadat and D. Decouchant and A.
                 Duda and A. Freyssinet and S. Krakowiak and M.
                 Meysembourg and P. Le Dot and H. Nguyen Van and E.
                 Paire and M. Riveill and C. Roison and X. Rousset de
                 Pina and R. Scioville and G. Vand{\^o}me",
  title =        "Architecture and Implementation of Guide, an
                 Object-Oriented Distributed System",
  journal =      j-COMP-SYS,
  volume =       "4",
  number =       "1",
  pages =        "31--67",
  month =        "Winter",
  year =         "1991",
  CODEN =        "CMSYE2",
  ISSN =         "0895-6340",
  bibdate =      "Fri Sep 13 08:51:08 MDT 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 http://www.math.utah.edu/pub/tex/bib/virtual-machines.bib",
  acknowledgement = ack-nhfb,
  classification = "C6110 (Systems analysis and programming); C6150J
                 (Operating systems)",
  fjournal =     "Computing Systems",
  keywords =     "Class; Distributed object memory; Dynamic links;
                 Execution structures; Execution units; Grenoble
                 Universities integrated distributed environment; Guide;
                 Job sharing; Language; Multi-threaded virtual machines;
                 Nodes; Object model; Object-oriented distributed
                 operating system; Persistent objects storage; Single
                 inheritance; Synchronized objects; Synchronized
                 transactions; Type; UNIX",
  thesaurus =    "Distributed processing; Object-oriented programming;
                 Operating systems [computers]",
}

@Article{Beddow:1991:MTC,
  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;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "C Users Journal",
}

@InProceedings{Bolinger:1991:PSH,
  author =       "D. Bolinger and S. Mangalat",
  title =        "Parallelizing signal handling and process management
                 in {OSF/1}",
  crossref =     "USENIX:1991:PUM",
  pages =        "105--122",
  year =         "1991",
  bibdate =      "Sat Sep 28 19:47:51 MDT 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/mach.bib;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Encore Computer Corp., Marlborough, MA, USA",
  classification = "C6110P (Parallel programming); C6150J (Operating
                 systems)",
  keywords =     "Mach kernel; Multi-threaded programming model;
                 Multi-threaded tasks; Multiprocessor-efficient; OSF/1
                 operating system; Parallelization; Performance
                 improvements; Process management; Races; Signal
                 handling; Synchronization problems; System calls; Unix
                 emulation; Unix process-oriented abstractions",
  thesaurus =    "Interrupts; Operating systems [computers]; Parallel
                 programming; Unix",
}

@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 (print), 2151-8556 (electronic)",
  ISSN-L =       "0018-8646",
  bibdate =      "Tue Mar 25 14:26:59 MST 1997",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  fjournal =     "IBM Journal of Research and Development",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=5288520",
  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 (print), 2151-8556 (electronic)",
  ISSN-L =       "0018-8646",
  bibdate =      "Tue Mar 25 14:26:59 MST 1997",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  fjournal =     "IBM Journal of Research and Development",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=5288520",
  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 (print), 1943-5851 (electronic)",
  ISSN-L =       "0163-5964",
  bibdate =      "Fri May 12 09:41:01 MDT 2006",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGARCH Computer Architecture News",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J89",
}

@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 (print), 1943-5851 (electronic)",
  ISSN-L =       "0163-5964",
  bibdate =      "Fri May 12 09:40:40 MDT 2006",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGARCH Computer Architecture News",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J89",
}

@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 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat May 01 18:50:04 1999",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
}

@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 (print), 1943-586X (electronic)",
  ISSN-L =       "0163-5980",
  bibdate =      "Sat Aug 26 15:24:15 MDT 2006",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Operating Systems Review",
}

@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 (print), 1943-586X (electronic)",
  ISSN-L =       "0163-5980",
  bibdate =      "Sat Aug 26 08:55:57 MDT 2006",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Operating Systems Review",
}

@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;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  fjournal =     "Proceedings --- Real-Time Systems Symposium",
  journalabr =   "Proc Real Time Syst Symp",
  keywords =     "Computer Operating Systems--Standards; Computer
                 Systems, Digital; POSIX.4a Standards; Real Time
                 Operation; Real-Time Operating Systems",
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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 (print), 1096-0848 (electronic)",
  ISSN-L =       "0743-7315",
  bibdate =      "Sat Apr 12 17:13:17 MDT 1997",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  fjournal =     "Journal of Parallel and Distributed Computing",
  journal-URL =  "http://www.sciencedirect.com/science/journal/07437315",
  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{Hum:1991:NHS,
  author =       "H. H. J. Hum and G. R. Gao",
  title =        "A Novel High-Speed Memory Organization for Fine-Grain
                 Multi-Thread Computing",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "505",
  pages =        "34--??",
  year =         "1991",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Mon May 13 08:51:55 MDT 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
}

@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;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  classification = "C6110 (Systems analysis and programming); C6150J
                 (Operating systems)",
  fjournal =     "Dr. Dobb's Journal of Software Tools",
  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",
}

@InProceedings{Jones:1991:BCL,
  author =       "Michael B. Jones",
  title =        "Bringing the {C} Libraries with Us into a
                 Multi-Threaded Future",
  crossref =     "USENIX:1991:PWU",
  pages =        "81--92",
  day =          "21--25",
  month =        jan,
  year =         "1991",
  bibdate =      "Fri Oct 18 07:24:24 MDT 1996",
  bibsource =    "ftp://ftp.uu.net/library/bibliography;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Carnegie Mellon University",
}

@InProceedings{Kuchlin:1991:MCI,
  author =       "Wolfgang K{\"u}chlin",
  title =        "On the multi-threaded computation of integral
                 polynomial greatest common divisors",
  crossref =     "Watt:1991:IPI",
  pages =        "333--342",
  year =         "1991",
  bibdate =      "Thu Mar 12 08:38:03 MST 1998",
  bibsource =    "http://www.acm.org/pubs/toc/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://www.acm.org:80/pubs/citations/proceedings/issac/120694/p333-kuchlin/",
  abstract =     "Reports experiences and practical results from
                 parallelizing the Brown--Collins polynomial g.c.d.
                 algorithm, starting from Collins' SAC-2 implementation
                 IPGCDC. The parallelization environment is PARSAC-2, a
                 multi-threaded version of SAC-2 programmed in C with
                 the parallelization constructs of the C Threads
                 library. IPGCDC computes the g.c.d. and its co-factors
                 of two polynomials in $ Z(x_1, \ldots {}, x_r) $, by
                 first reducing the problem to multiple calculations of
                 modular polynomial g.c.d.'s in $ Z_p(x_1, \ldots {},
                 x_r) $, and then recovering the result by Chinese
                 remaindering. After studying timings of the SAC-2
                 algorithm, the author first parallelizes the Chinese
                 remainder algorithm, and then parallelizes the main
                 loop of IPGCDC by executing the modular g.c.d.
                 computations concurrently. Finally, he determines
                 speed-up's and speed-up efficiencies of our parallel
                 algorithms over a wide range of polynomials. The
                 experiments were conducted on a 12 processor Encore
                 Multimax under Mach.",
  acknowledgement = ack-nhfb,
  affiliation =  "Dept. of Comput. and Inf. Sci., Ohio State Univ.,
                 Columbus, OH, USA",
  classification = "C4240 (Programming and algorithm theory); C7310
                 (Mathematics)",
  keywords =     "algorithms; Brown--Collins polynomial g.c.d.
                 algorithm; Chinese remaindering; Encore Multimax;
                 Multi-threaded computation; PARSAC-2; Polynomial
                 greatest common divisors",
  subject =      "{\bf G.1.0} Mathematics of Computing, NUMERICAL
                 ANALYSIS, General, Parallel algorithms. {\bf F.2.1}
                 Theory of Computation, ANALYSIS OF ALGORITHMS AND
                 PROBLEM COMPLEXITY, Numerical Algorithms and Problems,
                 Computations on polynomials. {\bf I.1.0} Computing
                 Methodologies, SYMBOLIC AND ALGEBRAIC MANIPULATION,
                 General. {\bf I.1.3} Computing Methodologies, SYMBOLIC
                 AND ALGEBRAIC MANIPULATION, Languages and Systems. {\bf
                 D.3.2} Software, PROGRAMMING LANGUAGES, Language
                 Classifications, C.",
  thesaurus =    "Mathematics computing; Parallel algorithms; Symbol
                 manipulation",
}

@InProceedings{Malan:1991:MA,
  author =       "G. Malan and R. Rashid and D. Golub and R. Baron",
  title =        "{DOS} as a {Mach 3.0} application",
  crossref =     "USENIX:1991:PUM",
  pages =        "27--40",
  year =         "1991",
  bibdate =      "Sat Sep 28 19:47:51 MDT 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/mach.bib;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 http://www.math.utah.edu/pub/tex/bib/virtual-machines.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Sch. of Comput. Sci., Carnegie Mellon Univ.,
                 Pittsburgh, PA, USA",
  classification = "C6150J (Operating systems); C7430 (Computer
                 engineering)",
  keywords =     "Common DOS functions; Common DOS software; DOS
                 functionality; DOS operating system; Frequently loaded
                 DOS drivers; High memory area; High-speed space combat
                 simulation system; I/O devices; I386/i486 architecture;
                 Latency demands; Mach features; Machine-dependent
                 kernel modifications; Multiple virtual DOS
                 environments; Multithreaded emulation; PC architecture;
                 Performance sensitive PC entertainment software;
                 Timing; Unix emulation; Unix Server; VGA display;
                 Virtual 8086 mode; Virtual machine environment; Wing
                 Commander",
  thesaurus =    "IBM computers; Microcomputer applications; Supervisory
                 programs; Unix; Virtual machines",
}

@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;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "C Users Journal",
}

@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 (print), 1943-586X (electronic)",
  ISSN-L =       "0163-5980",
  bibdate =      "Sat Aug 26 08:55:57 MDT 2006",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Operating Systems Review",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  keywords =     "Masters theses -- University of California, Santa Cruz
                 -- 1991; multiprocessors; parallel processing
                 (electronic computers)",
}

@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 (print), 1943-5851 (electronic)",
  ISSN-L =       "0163-5964",
  bibdate =      "Fri May 12 09:41:01 MDT 2006",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGARCH Computer Architecture News",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J89",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
}

@Article{Ponamgi:1991:DMP,
  author =       "M. Krish Ponamgi and Wenwey Hseush and Gail E.
                 Kaiser",
  title =        "Debugging Multithreaded Programs with {MPD}",
  journal =      j-IEEE-SOFTWARE,
  volume =       "8",
  number =       "3",
  pages =        "37--43",
  month =        may,
  year =         "1991",
  CODEN =        "IESOEG",
  ISSN =         "0740-7459 (print), 0740-7459 (electronic)",
  ISSN-L =       "0740-7459",
  bibdate =      "Sat Jan 25 07:35:26 MST 1997",
  bibsource =    "Compendex database;
                 http://www.math.utah.edu/pub/tex/bib/ieeesoft.bib;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 Misc/IMMD_IV.bib; Parallel/debug_3.1.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Dept of Comput Sci, Columbia Univ, New York, NY, USA",
  classification = "723",
  fjournal =     "IEEE Software",
  journal-URL =  "http://www.computer.org/portal/web/csdl/magazines/software",
  journalabr =   "IEEE Software",
  keywords =     "Computer Programming; Computer Systems, Digital ---
                 Multiprocessing; Event Recognition; Multiprocessor
                 Debugger; Multithreaded Software; Pattern Recognition;
                 Program Debugging",
}

@InProceedings{Powell:1991:SMT,
  author =       "M. L. Powell and S. R. Kleiman and S. Barton and D.
                 Shah and D. Stein and M. Weeks",
  title =        "{SunOS} Multi-thread Architecture",
  crossref =     "USENIX:1991:PWU",
  institution =  "Sun Microsystems, Inc.",
  pages =        "65--80",
  day =          "21--25",
  month =        jan,
  year =         "1991",
  bibdate =      "Wed Aug 13 10:48:45 MDT 1997",
  bibsource =    "ftp://ftp.uu.net/library/bibliography;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 http://www.usenix.org/cgi-bin/sortbib.pl?-sA",
  acknowledgement = ack-nhfb,
  affiliation =  "Sun Microsystems, Inc.",
}

@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;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 UnCover database",
  abstract =     "Doug Hamilton's C Shell helps you create more powerful
                 OS/2 programs.",
  acknowledgement = ack-nhfb,
  classification = "C6115 (Programming support); C6150E (General utility
                 programs); C6150J (Operating systems)",
  fjournal =     "Dr. Dobb's Journal of Software Tools",
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
}

@Article{Schauser:1991:CCM,
  author =       "Klaus Erik Schauser and David E. Culler and Thorsten
                 {von Eicken}",
  title =        "Compiler-Controlled Multithreading for Lenient
                 Parallel Languages",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "523",
  pages =        "50--??",
  year =         "1991",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Mon May 13 08:51:55 MDT 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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 (print), 1943-586X (electronic)",
  ISSN-L =       "0163-5980",
  bibdate =      "Sat Aug 26 08:55:51 MDT 2006",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Operating Systems Review",
}

@Article{Speer:1991:DTP,
  author =       "Thomas G. Speer and Mark W. Storm",
  title =        "{Digital}'s Transaction Processing Monitors",
  journal =      j-DEC-TECH-J,
  volume =       "3",
  number =       "1",
  pages =        "18--32",
  month =        "Winter",
  year =         "1991",
  CODEN =        "DTJOEL",
  ISSN =         "0898-901X",
  bibdate =      "Thu Mar 20 18:15:43 MST 1997",
  bibsource =    "/usr/local/src/bib/bibliography/Database/Graefe.bib;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "ftp://ftp.digital.com/pub/Digital/info/DTJ/v3n1/Digitals_Transaction_Processi_01oct1991DTJ102P8.ps;
                 http://www.digital.com:80/info/DTJ102/DTJ102SC.TXT",
  abstract =     "Digital provides two transaction processing (TP)
                 monitor products --- ACMS (Application Control and
                 Management System) and DECintact (Integrated
                 Application Control). Each monitor is a unified set of
                 transaction processing services for the application
                 environment. These services are layered on the VMS
                 operating system. Although there is a large functional
                 overlap between the two, both products achieve similar
                 goals by means of some significantly different
                 implementation strategies. Flow control and
                 multithreading in the ACMS monitor is managed by means
                 of a fourth-generation language (4GL) task definition
                 language. Flow control and multithreading in the
                 DECintact monitor is managed at the application level
                 by third-generation language (3GL) calls to a library
                 of services. The ACMS monitor supports a deferred task
                 model of queuing, and the DECintact monitor supports a
                 message-based model. Over time, the persistent
                 distinguishing feature between the two monitors will be
                 their different application programming inter faces.",
  acknowledgement = ack-nhfb,
  affiliation =  "Digital Equipment Corp., Maynard, MA, USA",
  classcodes =   "C6150J (Operating systems)",
  classification = "C6150J (Operating systems)",
  corpsource =   "Digital Equipment Corp., Maynard, MA, USA",
  fjournal =     "Digital Technical Journal",
  keywords =     "ACMS; Application; Application Control; Application
                 Control and Management System; Application programming
                 interfaces; application programming interfaces; Control
                 and Management System; DECintact; Digital; Integrated;
                 Integrated Application Control; message-based model;
                 Message-based model; monitors; Monitors;
                 Multithreading; multithreading; Queuing; queuing;
                 supervisory programs; task definition language; Task
                 definition language; transaction processing;
                 Transaction processing; transaction processing; VMS
                 operating system",
  thesaurus =    "Supervisory programs; Transaction processing",
  treatment =    "P Practical",
}

@Article{Traub:1991:MTC,
  author =       "Kenneth R. Traub",
  title =        "Multi-thread Code Generation for Dataflow
                 Architectures from Non-Strict Programs",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "523",
  pages =        "73--??",
  year =         "1991",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Mon May 13 08:51:55 MDT 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
}

@Article{Agarwal:1992:PTM,
  author =       "Anant Agarwal",
  title =        "Performance tradeoffs in multithreaded processors",
  journal =      j-IEEE-TRANS-PAR-DIST-SYS,
  volume =       "3",
  number =       "5",
  pages =        "525--539",
  month =        sep,
  year =         "1992",
  CODEN =        "ITDSEO",
  DOI =          "http://dx.doi.org/10.1109/71.159037",
  ISSN =         "1045-9219 (print), 1558-2183 (electronic)",
  ISSN-L =       "1045-9219",
  bibdate =      "Fri Apr 11 15:20:39 MDT 1997",
  bibsource =    "Compendex database;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Lab for Comput Sci, MIT, Cambridge, MA, USA",
  classification = "722.1; 722.4; C4230M (Multiprocessor
                 interconnection); C4240P (Parallel programming and
                 algorithm theory); C5220P (Parallel architecture);
                 C5320G (Semiconductor storage); C5440 (Multiprocessor
                 systems and techniques); C5470 (Performance evaluation
                 and testing); C6120 (File organisation)",
  corpsource =   "Lab. for Comput. Sci., MIT, Cambridge, MA, USA",
  fjournal =     "IEEE Transactions on Parallel and Distributed
                 Systems",
  journal-URL =  "http://www.computer.org/portal/web/csdl/transactions/tpds",
  journalabr =   "IEEE Trans Parallel Distrib Syst",
  keywords =     "buffer storage; cache interference; Cache memories;
                 caches; contention; context-switching overhead;
                 data-sharing; Digital storage; interconnection
                 networks; Interconnection networks; multiprocessing
                 systems; multiprocessor; multithreaded processors;
                 network; network bandwidth; parallel; parallel
                 algorithms; Parallel processing systems; Performance;
                 Performance analysis; performance evaluation; Pipeline
                 processing systems; programming; storage management;
                 switching theory",
  treatment =    "P Practical; T Theoretical or Mathematical",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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 (print), 1557-7333 (electronic)",
  ISSN-L =       "0734-2071",
  bibdate =      "Wed Jan 13 18:36:53 MST 1999",
  bibsource =    "http://www.acm.org/pubs/contents/journals/tocs/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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,
  fjournal =     "ACM Transactions on Computer Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J774",
  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.",
}

@Article{Anonymous:1992:MWPa,
  author =       "Anonymous",
  title =        "It's a Multithreaded World, Part 1: Multithreaded
                 operating systems are becoming the norm. Here's how
                 your applications can exploit them",
  journal =      j-BYTE,
  volume =       "17",
  number =       "5",
  pages =        "289--??",
  month =        may,
  year =         "1992",
  CODEN =        "BYTEDJ",
  ISSN =         "0360-5280 (print), 1082-7838 (electronic)",
  ISSN-L =       "0360-5280",
  bibdate =      "Tue Jan 2 10:01:41 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "BYTE Magazine",
}

@Article{Anonymous:1992:MWPb,
  author =       "Anonymous",
  title =        "It's a Multithreaded World, Part 2: Multithreaded
                 operating systems are taking over. Are your
                 applications ready?",
  journal =      j-BYTE,
  volume =       "17",
  number =       "6",
  pages =        "351--??",
  month =        jun,
  year =         "1992",
  CODEN =        "BYTEDJ",
  ISSN =         "0360-5280 (print), 1082-7838 (electronic)",
  ISSN-L =       "0360-5280",
  bibdate =      "Tue Jan 2 10:01:41 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "BYTE Magazine",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Schering-Plough Res. Inst., Bloomfield, NJ, USA",
  classification = "C6110P (Parallel programming); C6140D (High level
                 languages); C6150C (Compilers, interpreters and other
                 processors)",
  fjournal =     "Dr. Dobb's Journal of Software Tools",
  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 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:16:26 MST 2003",
  bibsource =    "http://portal.acm.org/; http://www.acm.org/pubs/toc/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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 (print), 1943-5851 (electronic)",
  ISSN-L =       "0163-5964",
  bibdate =      "Fri May 12 09:40:43 MDT 2006",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGARCH Computer Architecture News",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J89",
}

@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 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:16:30 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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 (print), 1943-5851 (electronic)",
  ISSN-L =       "0163-5964",
  bibdate =      "Fri May 12 09:40:43 MDT 2006",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGARCH Computer Architecture News",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J89",
}

@Article{Day:1992:INB,
  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;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 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)",
  fjournal =     "Dr. Dobb's Journal of Software Tools",
  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",
}

@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;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 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)",
  fjournal =     "Dr. Dobb's Journal of Software Tools",
  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",
}

@Article{DHollander:1992:PLL,
  author =       "Erik H. D'Hollander",
  title =        "Partitioning and labeling of loops by unimodular
                 transformations",
  journal =      j-IEEE-TRANS-PAR-DIST-SYS,
  volume =       "3",
  number =       "4",
  pages =        "465--476",
  month =        jul,
  year =         "1992",
  CODEN =        "ITDSEO",
  DOI =          "http://dx.doi.org/10.1109/71.149964",
  ISSN =         "1045-9219 (print), 1558-2183 (electronic)",
  ISSN-L =       "1045-9219",
  MRclass =      "68Q10 (68Q22)",
  MRnumber =     "93f:68030",
  bibdate =      "Mon Apr 14 07:37:07 1997",
  bibsource =    "Compendex database;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Dept of Electr Eng, State Univ of Ghent, Belgium",
  classification = "722; 723; C4240P (Parallel programming and algorithm
                 theory); C6110P (Parallel programming); C6150C
                 (Compilers, interpreters and other processors)",
  corpsource =   "Dept. of Electr. Eng., State Univ. of Ghent, Belgium",
  fjournal =     "IEEE Transactions on Parallel and Distributed
                 Systems",
  journal-URL =  "http://www.computer.org/portal/web/csdl/transactions/tpds",
  journalabr =   "IEEE Trans Parallel Distrib Syst",
  keywords =     "computational complexity; Computer Programming ---
                 Algorithms; Computer Systems Programming; constant
                 dependence vectors; dependence matrix; dependent
                 iterations; do-loops; fold nested loop; independent
                 subsets; invariant dependence; join; labelling
                 algorithm; loop labelling; loop partitioning;
                 Multiprocessing Programs; multithreaded dynamic
                 scheduling; n-; parallel; parallel algorithms; parallel
                 DO-ALL loops; partitioning algorithm; Partitioning
                 Algorithms; primitive; program compilers; Program
                 Transformations; programming; programming theory;
                 relation; scheduling; serial loop; transformation;
                 unimodular; Unimodular Transformations; unimodular
                 transformations",
  treatment =    "T Theoretical or Mathematical",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
}

@InProceedings{Eykholt:1992:BMM,
  author =       "J. R. Eykholt and S. R. Kleiman and S. Barton and R.
                 Faulkner and D. Stein and M. Smith and A. Shivalingiah
                 and J. Voll and M. Weeks and D. Williams",
  title =        "Beyond Multiprocessing: Multithreading the {System V
                 Release} 4 Kernel",
  crossref =     "USENIX:1992:PSU",
  pages =        "11--18",
  month =        "Summer",
  year =         "1992",
  bibdate =      "Fri Oct 18 07:24:24 MDT 1996",
  bibsource =    "ftp://ftp.uu.net/library/bibliography;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "SunSoft Inc.",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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)",
}

@Article{Govindarajan:1992:LCM,
  author =       "R. Govindarajan and S. S. Nemawarkar",
  title =        "A Large Context Multithreaded Architecture",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "634",
  pages =        "423--??",
  year =         "1992",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Mon May 13 11:46:24 MDT 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "C Users Journal",
}

@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 (print), 1943-5851 (electronic)",
  ISSN-L =       "0163-5964",
  bibdate =      "Fri May 12 09:40:43 MDT 2006",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGARCH Computer Architecture News",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J89",
}

@Article{Hirata:1992:MPA,
  author =       "H. Hirata and Y. Mochizuki and A. Nishmura and Y.
                 Nakase and T. Nishizawa",
  title =        "A multithreaded processor architecture with
                 simultaneous instruction issuing",
  journal =      j-SUPERCOMPUTER,
  volume =       "9",
  number =       "3",
  pages =        "23--39",
  month =        may,
  year =         "1992",
  CODEN =        "SPCOEL",
  ISSN =         "0168-7875",
  bibdate =      "Wed Mar 18 08:37:01 MST 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Media Res. Lab., Matsushita Electr. Ind. Co., Osaka,
                 Japan",
  classification = "C5220P (Parallel architecture); C6110P (Parallel
                 programming); C6150J (Operating systems)",
  corpsource =   "Media Res. Lab., Matsushita Electr. Ind. Co., Osaka,
                 Japan",
  fjournal =     "Supercomputer",
  keywords =     "functional unit; independent instruction streams;
                 multiprogramming; multithreaded processor architecture;
                 parallel processing; scheduling; simultaneous
                 instruction issuing; vector machines; VLW machines",
  pubcountry =   "Netherlands",
  treatment =    "P Practical",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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 (print), 1872-7115 (electronic)",
  ISSN-L =       "0167-739X",
  bibdate =      "Fri Jul 15 09:06:02 MDT 2005",
  bibsource =    "ftp://ftp.ira.uka.de/bibliography/Os/threads.bib;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.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,
  fjournal =     "Future Generation Computer Systems",
  journal-URL =  "http://www.sciencedirect.com/science/journal/0167739X",
}

@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 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "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;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  journalabr =   "SIGPLAN Not",
  keywords =     "algorithms; Computer programming languages;
                 Concurrency paradigms; Concurrency structures; design;
                 languages; Parallel processing systems; performance;
                 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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 06 14:28:31 1996",
  bibsource =    "Compiler/Compiler.Lins.bib;
                 Compiler/garbage.collection.bib; Compiler/Heaps.bib;
                 Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 Theory/CLiCS.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,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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{Kuchlin:1992:MTC,
  author =       "W. Kuchlin",
  title =        "On the Multi-Threaded Computation of Modular
                 Polynomial Greatest Common Divisors",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "591",
  pages =        "369--??",
  year =         "1992",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Mon May 13 11:46:24 MDT 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
}

@Article{LeSergent:1992:IMT,
  author =       "T. {Le Sergent} and B. Berthomieu",
  title =        "Incremental Multi-Threaded Garbage Collection on
                 Virtually Shared Memory Architectures",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "637",
  pages =        "179--??",
  year =         "1992",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Mon May 13 11:46:24 MDT 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
}

@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 (print), 1943-5851 (electronic)",
  ISSN-L =       "0163-5964",
  bibdate =      "Fri May 12 09:40:43 MDT 2006",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGARCH Computer Architecture News",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J89",
}

@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 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "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;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  journalabr =   "SIGPLAN Not",
  keywords =     "Computer programming; design; HPS on Mach environment;
                 languages; measurement; Object oriented programming;
                 performance; 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.",
}

@InProceedings{Papadopoulos:1992:MCS,
  author =       "G. M. Papadopoulos and A. P. W. Bohm and A. T. Dahbura
                 and R. R. Oldehoeft",
  title =        "Multithreaded computer systems",
  crossref =     "IEEE:1992:PSM",
  pages =        "772--775",
  year =         "1992",
  bibdate =      "Wed Apr 15 15:37:20 MDT 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  classification = "C5220P (Parallel architecture)",
  corpsource =   "Lab. for Comput. Sci., MIT, Cambridge, MA, USA",
  keywords =     "architectural principles; data matching; multithreaded
                 computer systems; parallel architectures; parallel
                 machines; split-phase memory accesses",
  sponsororg =   "IEEE; ACM",
  treatment =    "P Practical",
}

@InProceedings{Peacock:1992:EMS,
  author =       "J. Kent Peacock and Sunil Saxena and Dean Thomas and
                 Fred Yang and Wilfred Yu",
  title =        "Experiences from Multithreading System {V} Release 4",
  crossref =     "USENIX:1992:SED",
  pages =        "77--92",
  day =          "26--27",
  month =        mar,
  year =         "1992",
  bibdate =      "Fri Oct 18 07:24:24 MDT 1996",
  bibsource =    "ftp://ftp.uu.net/library/bibliography;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Intel Multiprocessor Consortium",
}

@InProceedings{Peacock:1992:FSM,
  author =       "J. Kent Peacock",
  title =        "File System Multithreading in {System V Release} 4
                 {MP}",
  crossref =     "USENIX:1992:PSU",
  pages =        "19--30",
  month =        "Summer",
  year =         "1992",
  bibdate =      "Tue Feb 20 15:42:13 MST 1996",
  bibsource =    "ftp://ftp.uu.net/library/bibliography;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Intel Multi-Processor Consortium",
}

@InProceedings{Pham:1992:MDA,
  author =       "Thuan Q. Pham and Pankaj K. Garg",
  title =        "On Migrating a Distributed Application to a
                 Multithreaded Environment",
  crossref =     "USENIX:1992:PSU",
  pages =        "45--54",
  month =        "Summer",
  year =         "1992",
  bibdate =      "Fri Oct 18 07:24:24 MDT 1996",
  bibsource =    "ftp://ftp.uu.net/library/bibliography;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Hewlett--Packard Laboratories",
}

@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 (print), 1943-5851 (electronic)",
  ISSN-L =       "0163-5964",
  bibdate =      "Fri May 12 09:40:43 MDT 2006",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGARCH Computer Architecture News",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J89",
}

@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 (print), 1943-586X (electronic)",
  ISSN-L =       "0163-5980",
  bibdate =      "Sat Aug 26 08:55:36 MDT 2006",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Operating Systems Review",
}

@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;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 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)",
  fjournal =     "Dr. Dobb's Journal of Software Tools",
  keywords =     "Correctness; Debugging cycle; Ldb; POSIX; Real-time
                 systems; User-friendly multithreaded debugger;
                 Worst-case performance",
  thesaurus =    "C listings; Program debugging; Real-time systems",
}

@Article{Singh:1992:DRT,
  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;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 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)",
  fjournal =     "Dr. Dobb's Journal of Software Tools",
  keywords =     "Correctness; Debugging cycle; Ldb; POSIX; Real-time
                 systems; User-friendly multithreaded debugger;
                 Worst-case performance",
  thesaurus =    "C listings; Program debugging; Real-time systems",
}

@Article{Smith:1992:MTX,
  author =       "John Allen Smith",
  title =        "The Multi-Threaded {X} Server",
  journal =      j-X-RESOURCE,
  volume =       "1",
  number =       "1",
  pages =        "73--89",
  month =        jan,
  year =         "1992",
  CODEN =        "XRESEA",
  ISBN =         "0-937175-96-X",
  ISBN-13 =      "978-0-937175-96-5",
  ISSN =         "1058-5591",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "The X Resource",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
}

@Article{Agarwal:1993:SMV,
  author =       "Anant Agarwal and Jonathan Babb and David Chaiken and
                 Godfrey D'Souza and Kirk Johnson and David Kranz and
                 John Kubiatowicz and Beng-Hong Lim and Gino Maa and Ken
                 Mackenzie",
  title =        "Sparcle: {A} Multithreaded {VLSI} Processor for
                 Parallel Computing",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "748",
  pages =        "359--??",
  year =         "1993",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Mon May 13 11:49:00 MDT 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
}

@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 (print), 1096-0848 (electronic)",
  ISSN-L =       "0743-7315",
  bibdate =      "Thu Mar 9 09:18:53 MST 2000",
  bibsource =    "http://www.idealibrary.com/servlet/useragent?func=showAllIssues&curIssueID=jpdc;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  fjournal =     "Journal of Parallel and Distributed Computing",
  journal-URL =  "http://www.sciencedirect.com/science/journal/07437315",
  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",
}

@InProceedings{Blumofe:1993:SES,
  author =       "Robert D. Blumofe and Charles E. Leiserson",
  title =        "Space-efficient scheduling of multithreaded
                 computations",
  crossref =     "ACM:1993:PTF",
  pages =        "362--371",
  year =         "1993",
  bibdate =      "Wed Feb 20 18:34:01 MST 2002",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/series/stoc/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://www.acm.org/pubs/articles/proceedings/stoc/167088/p362-blumofe/p362-blumofe.pdf;
                 http://www.acm.org/pubs/citations/proceedings/stoc/167088/p362-blumofe/",
  acknowledgement = ack-nhfb,
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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 (print), 1096-0848 (electronic)",
  ISSN-L =       "0743-7315",
  bibdate =      "Thu Mar 9 09:18:52 MST 2000",
  bibsource =    "http://www.idealibrary.com/servlet/useragent?func=showAllIssues&curIssueID=jpdc;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  fjournal =     "Journal of Parallel and Distributed Computing",
  journal-URL =  "http://www.sciencedirect.com/science/journal/07437315",
  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 (print), 1557-7392 (electronic)",
  ISSN-L =       "1049-331X",
  bibdate =      "Fri Apr 20 08:21:35 MDT 2001",
  bibsource =    "http://www.acm.org/pubs/toc/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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,
  fjournal =     "ACM Transactions on Software Engineering and
                 Methodology",
  generalterms = "Algorithms; Design; Languages",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J790",
  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/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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 (print), 1557-7333 (electronic)",
  ISSN-L =       "0734-2071",
  bibdate =      "Wed Jan 13 18:36:53 MST 1999",
  bibsource =    "http://www.acm.org/pubs/contents/journals/tocs/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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,
  fjournal =     "ACM Transactions on Computer Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J774",
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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 (print), 1096-0848 (electronic)",
  ISSN-L =       "0743-7315",
  bibdate =      "Sat Apr 12 16:10:59 MDT 1997",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Parallel and Distributed Computing",
  journal-URL =  "http://www.sciencedirect.com/science/journal/07437315",
  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 (print), 1096-0848 (electronic)",
  ISSN-L =       "0743-7315",
  bibdate =      "Thu Mar 9 09:18:53 MST 2000",
  bibsource =    "http://www.idealibrary.com/servlet/useragent?func=showAllIssues&curIssueID=jpdc;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  fjournal =     "Journal of Parallel and Distributed Computing",
  journal-URL =  "http://www.sciencedirect.com/science/journal/07437315",
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
}

@Article{Gildea:1993:MTX,
  author =       "Stephen Gildea",
  title =        "Multi-Threaded {Xlib}",
  journal =      j-X-RESOURCE,
  volume =       "5",
  number =       "1",
  pages =        "159--166",
  month =        jan,
  year =         "1993",
  CODEN =        "XRESEA",
  ISBN =         "1-56592-020-1",
  ISBN-13 =      "978-1-56592-020-0",
  ISSN =         "1058-5591",
  bibdate =      "Tue Mar 23 12:38:27 1993",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "The X Resource",
}

@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 (print), 1943-586X (electronic)",
  ISSN-L =       "0163-5980",
  bibdate =      "Sat Aug 26 08:55:54 MDT 2006",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Operating Systems Review",
}

@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 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:16:34 MST 2003",
  bibsource =    "http://portal.acm.org/; http://www.acm.org/pubs/toc/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  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 (print), 1943-5851 (electronic)",
  ISSN-L =       "0163-5964",
  bibdate =      "Fri May 12 09:40:46 MDT 2006",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGARCH Computer Architecture News",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J89",
}

@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 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:16:39 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  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 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:16:39 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  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/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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.",
}

@InProceedings{Koontz:1993:PBM,
  author =       "K. W. Koontz",
  title =        "Port buffers: a {Mach IPC} optimization for handling
                 large volumes of small messages",
  crossref =     "USENIX:1993:PUMb",
  pages =        "89--102",
  year =         "1993",
  bibdate =      "Sat Sep 28 18:52:45 MDT 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/mach.bib;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Appl. Phys. Lab., Johns Hopkins Univ., Laurel, MD,
                 USA",
  classification = "C6150N (Distributed systems)",
  keywords =     "Communications mechanism; Context switches;
                 Distributed systems; Ethernet; High-speed networks;
                 Kernel calls; Local transfer rates; Mach IPC
                 optimization; Mach kernel; Multi-threaded support;
                 Network utilization; Nonshared memory parallel
                 architectures; Port buffers; Staleness feature",
  thesaurus =    "Buffer storage; Electronic messaging; Network
                 operating systems; Optimisation; Remote procedure
                 calls",
}

@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;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 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,
  fjournal =     "Dr. Dobb's Journal of Software Tools",
}

@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 (print), 1557-7333 (electronic)",
  ISSN-L =       "0734-2071",
  bibdate =      "Wed Jan 13 18:36:53 MST 1999",
  bibsource =    "http://www.acm.org/pubs/contents/journals/tocs/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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,
  fjournal =     "ACM Transactions on Computer Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J774",
  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 (print), 1557-7333 (electronic)",
  ISSN-L =       "0734-2071",
  bibdate =      "Wed Jan 13 18:36:53 MST 1999",
  bibsource =    "http://www.acm.org/pubs/contents/journals/tocs/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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,
  fjournal =     "ACM Transactions on Computer Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J774",
  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 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:16:39 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  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 (print), 1096-0848 (electronic)",
  ISSN-L =       "0743-7315",
  bibdate =      "Thu Mar 9 09:18:52 MST 2000",
  bibsource =    "http://www.idealibrary.com/servlet/useragent?func=showAllIssues&curIssueID=jpdc;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  fjournal =     "Journal of Parallel and Distributed Computing",
  journal-URL =  "http://www.sciencedirect.com/science/journal/07437315",
  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 (print), 1096-0848 (electronic)",
  ISSN-L =       "0743-7315",
  bibdate =      "Thu Mar 9 09:18:52 MST 2000",
  bibsource =    "http://www.idealibrary.com/servlet/useragent?func=showAllIssues&curIssueID=jpdc;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  fjournal =     "Journal of Parallel and Distributed Computing",
  journal-URL =  "http://www.sciencedirect.com/science/journal/07437315",
  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/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "C Users Journal",
}

@InProceedings{Raghunath:1993:DIN,
  author =       "M. T. Raghunath and Abhiram Ranade",
  title =        "Designing Interconnection Networks for Multi-Level
                 Packaging",
  crossref =     "IEEE:1993:PSP",
  pages =        "772--781",
  year =         "1993",
  bibdate =      "Wed Apr 15 12:04:03 MDT 1998",
  bibsource =    "Compendex database;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Univ of California",
  affiliationaddress = "Berkeley, CA, USA",
  classification = "723; C5220P (Parallel architecture); C5440
                 (Multiprocessing systems)",
  corpsource =   "Comput. Sci. Div., California Univ., Berkeley, CA,
                 USA",
  keywords =     "communication bandwidth; complete graphs; Computer
                 networks; generic set; global communication
                 performance; high bandwidth channels; high degree
                 deBruijn graphs; Interconnection network design;
                 interconnection networks design; Large scale parallel
                 machines; large scale parallel machines; latencies;
                 Multilevel packaging; multilevel packaging;
                 multiprocessor interconnection networks;
                 multithreading; network organizations; network
                 topology; packaging; packaging constraints; packaging
                 hierarchy; packaging restrictions; packaging
                 technology; Parallel processing systems; Random traffic
                 model; random traffic model",
  sponsororg =   "IEEE; ACM SIGARCH",
  treatment =    "P Practical",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  keywords =     "Major electrical engineering",
}

@InProceedings{Saxena:1993:PMS,
  author =       "Sunil Saxena and J. Kent Peacock and Fred Yang and
                 Vijaya Verma and Mohan Krishnan",
  title =        "Pitfalls in Multithreading {SVR4 STREAMS} and Other
                 Weightless Processes",
  crossref =     "USENIX:1993:PWU",
  pages =        "85--96",
  month =        "Winter",
  year =         "1993",
  bibdate =      "Tue Oct 22 08:14:49 2002",
  bibsource =    "ftp://ftp.uu.net/library/bibliography;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://www.usenix.org/publications/library/proceedings/sd93/",
  acknowledgement = ack-nhfb,
  affiliation =  "Intel Multiprocessor Consortium",
}

@InProceedings{Schmidtmann:1993:DIM,
  author =       "Carl Schmidtmann and Michael Tao and Steven Watt",
  title =        "Design and Implementation of a Multi-Threaded {Xlib}",
  crossref =     "USENIX:1993:PWU",
  pages =        "193--203",
  month =        "Winter",
  year =         "1993",
  bibdate =      "Tue Oct 22 08:16:35 2002",
  bibsource =    "ftp://ftp.uu.net/library/bibliography;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://www.usenix.org/publications/library/proceedings/sd93/",
  acknowledgement = ack-nhfb,
  affiliation =  "Consultant to Digital Equipment Corporation; Sun
                 Microsystems; Consultant to Xerox Corporation",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "C Users Journal",
}

@Article{Volkman:1993:CDB,
  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;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "C Users Journal",
}

@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 (print), 1943-5851 (electronic)",
  ISSN-L =       "0163-5964",
  bibdate =      "Fri May 12 09:40:46 MDT 2006",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGARCH Computer Architecture News",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J89",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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 (print), 1096-0848 (electronic)",
  ISSN-L =       "0743-7315",
  bibdate =      "Thu Mar 9 09:18:52 MST 2000",
  bibsource =    "http://www.idealibrary.com/servlet/useragent?func=showAllIssues&curIssueID=jpdc;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  fjournal =     "Journal of Parallel and Distributed Computing",
  journal-URL =  "http://www.sciencedirect.com/science/journal/07437315",
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
}

@Article{Anonymous:1994:MDP,
  author =       "Anonymous",
  title =        "{Multiprocessor desktops are proliferating, even
                 though there remains a shortage of multithreaded
                 applications for them}",
  journal =      j-OPEN-SYSTEMS-TODAY,
  volume =       "165",
  pages =        "60--??",
  month =        dec,
  year =         "1994",
  ISSN =         "1061-0839",
  bibdate =      "Fri Jan 26 17:24:01 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Open Systems Today",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
}

@Article{Anonymous:1994:WMC,
  author =       "Anonymous",
  title =        "{Wanted: The Multithreaded CIO}",
  journal =      j-DATAMATION,
  volume =       "40",
  number =       "8",
  pages =        "34--??",
  day =          "15",
  month =        apr,
  year =         "1994",
  CODEN =        "DTMNAT",
  ISSN =         "0011-6963",
  bibdate =      "Sat Jan 27 07:35:21 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  abstract =     "Technician or business manager? If you want to be a
                 CIO, you better be both. Add to that a host of
                 communications skills and an ability to travel in
                 diverse circles, and you're on your way to being the
                 Multithreaded CIO of the 1990s.",
  acknowledgement = ack-nhfb,
  fjournal =     "Datamation",
}

@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;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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 = "722.4; 723.1; 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; Computer software
                 portability; Data structures; High level languages;
                 Interfaces (computer); Mesa programming language;
                 Minimal real time system profile; Program processors;
                 Real time systems; Thread; 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 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:16:53 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  classification = "C6110J (Object-oriented programming); C6110P
                 (Parallel programming); C6140D (High level languages)",
  corpsource =   "DI/INESC, Minho Univ., Portugal",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  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",
}

@InProceedings{Blumofe:1994:SMC,
  author =       "R. D. Blumofe and C. E. Leiserson",
  title =        "Scheduling multithreaded computations by work
                 stealing",
  crossref =     "Goldwasser:1994:PAS",
  pages =        "356--368",
  year =         "1994",
  bibdate =      "Thu Apr 5 06:13:51 MDT 2001",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
}

@InProceedings{Buendgen:1994:MAT,
  author =       "R. Buendgen and M. Goebel and W. Kuechlin",
  title =        "Multi-Threaded {AC} Term Rewriting",
  crossref =     "Hong:1994:FIS",
  pages =        "84--93",
  year =         "1994",
  bibdate =      "Thu Mar 12 11:28:58 MST 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/issac.bib;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
}

@InProceedings{Buendgen:1994:MTA,
  author =       "R. Buendgen and M. Goebel and W. Kuechlin",
  title =        "Multi-Threaded {AC} Term Rewriting",
  crossref =     "Hong:1994:FIS",
  pages =        "84--93",
  year =         "1994",
  bibdate =      "Thu Mar 12 11:28:58 MST 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/issac.bib;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
}

@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--301",
  month =        oct,
  year =         "1994",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Apr 24 18:36:02 MDT 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  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",
}

@InProceedings{Bundgen:1994:FPC,
  author =       "Reinhard B{\"u}ndgen and Manfred G{\"o}bel and
                 Wolfgang K{\"u}chlin",
  title =        "A fine-grained parallel completion procedure",
  crossref =     "ACM:1994:IPI",
  pages =        "269--277",
  year =         "1994",
  bibdate =      "Thu Mar 12 08:41:19 MST 1998",
  bibsource =    "http://www.acm.org/pubs/toc/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://www.acm.org:80/pubs/citations/proceedings/issac/190347/p269-bundgen/",
  abstract =     "We present a parallel Knuth--Bendix completion
                 algorithm where the inner loop, deriving the
                 consequences of adding a new rule to the system, is
                 multithreaded. The selection of the best new rule in
                 the outer loop, and hence the completion strategy, is
                 exactly the same as for the sequential algorithm. Our
                 implementation, which is within the PARSAC-2 parallel
                 symbolic computation system, exhibits good parallel
                 speedups on a standard multiprocessor workstation.",
  acknowledgement = ack-nhfb,
  affiliation =  "Wilhelm-Schickard-Inst. fur Inf., Tubingen Univ.,
                 Germany",
  classification = "C4210L (Formal languages and computational
                 linguistics); C4240P (Parallel programming and
                 algorithm theory); C6130 (Data handling techniques);
                 C6150N (Distributed systems software); C7310
                 (Mathematics computing)",
  keywords =     "algorithms; Fine grained parallel completion
                 procedure; Fine-grained parallel completion procedure;
                 Multithreaded inner loop; Parallel Knuth--Bendix
                 completion algorithm; Parallel speedups; PARSAC-2
                 parallel symbolic computation system; Standard
                 multiprocessor workstation",
  subject =      "{\bf I.1.2} Computing Methodologies, SYMBOLIC AND
                 ALGEBRAIC MANIPULATION, Algorithms, Algebraic
                 algorithms. {\bf I.1.0} Computing Methodologies,
                 SYMBOLIC AND ALGEBRAIC MANIPULATION, General. {\bf
                 I.1.3} Computing Methodologies, SYMBOLIC AND ALGEBRAIC
                 MANIPULATION, Languages and Systems. {\bf F.4.2} Theory
                 of Computation, MATHEMATICAL LOGIC AND FORMAL
                 LANGUAGES, Grammars and Other Rewriting Systems,
                 Parallel rewriting systems. {\bf F.1.2} Theory of
                 Computation, COMPUTATION BY ABSTRACT DEVICES, Modes of
                 Computation, Parallelism and concurrency.",
  thesaurus =    "Parallel algorithms; Parallel machines; Rewriting
                 systems; Symbol manipulation",
}

@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 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:16:57 MST 2003",
  bibsource =    "http://portal.acm.org/; http://www.acm.org/pubs/toc/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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 (print), 1557-7333 (electronic)",
  ISSN-L =       "0734-2071",
  bibdate =      "Wed Jan 13 18:36:53 MST 1999",
  bibsource =    "http://www.acm.org/pubs/contents/journals/tocs/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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,
  fjournal =     "ACM Transactions on Computer Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J774",
  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 (print), 1943-5851 (electronic)",
  ISSN-L =       "0163-5964",
  bibdate =      "Fri May 12 09:41:12 MDT 2006",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGARCH Computer Architecture News",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J89",
}

@Article{Dennis:1994:MMP,
  author =       "Jack B. Dennis",
  title =        "Machines and Models for Parallel Computing",
  journal =      j-INT-J-PARALLEL-PROG,
  volume =       "22",
  number =       "1",
  pages =        "47--77",
  month =        feb,
  year =         "1994",
  CODEN =        "IJPPE5",
  ISSN =         "0885-7458 (print), 1573-7640 (electronic)",
  ISSN-L =       "0885-7458",
  bibdate =      "Sat Apr 26 11:04:14 MDT 1997",
  bibsource =    "http://springerlink.metapress.com/openurl.asp?genre=issue&issn=0885-7458&volume=22&issue=1;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  classification = "C5220P (Parallel architecture); C5440
                 (Multiprocessor systems and techniques); C6110 (Systems
                 analysis and programming); C6150N (Distributed
                 systems)",
  corpsource =   "Lab. for Comput. Sci., MIT, Cambridge, MA, USA",
  fjournal =     "International Journal of Parallel Programming",
  journal-URL =  "http://link.springer.com/journal/16",
  keywords =     "concurrency control; dataflow principles; functional
                 programming; general semantic model; memory latency;
                 microprocessors; modular software construction;
                 multithreading; parallel computation; parallel
                 computing models; parallel machines; parallel
                 programming; processor architecture; processor design;
                 RISC; shared memory systems; shared-memory model;
                 superpipelined; superscalar; synchronization",
  treatment =    "P Practical",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Wed Sep 15 18:44:20 MDT 1999",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/lncs1994.bib;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
  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;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 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)",
  fjournal =     "Dr. Dobb's Journal of Software Tools",
  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",
}

@Article{Giloi:1994:PSA,
  author =       "Wolfgang K. Giloi",
  title =        "Parallel supercomputer architectures and their
                 programming models",
  journal =      j-PARALLEL-COMPUTING,
  volume =       "20",
  number =       "10--11",
  pages =        "1443--1470",
  day =          "3",
  month =        nov,
  year =         "1994",
  CODEN =        "PACOEJ",
  ISSN =         "0167-8191 (print), 1872-7336 (electronic)",
  ISSN-L =       "0167-8191",
  bibdate =      "Fri Aug 6 10:13:51 MDT 1999",
  bibsource =    "http://www.elsevier.com/cgi-bin/cas/tree/store/parco/cas_free/browse/browse.cgi?year=1994&volume=20&issue=10-11;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://www.elsevier.com/cgi-bin/cas/tree/store/parco/cas_sub/browse/browse.cgi?year=1994&volume=20&issue=10-11&aid=907",
  acknowledgement = ack-nhfb,
  classification = "C5220P (Parallel architecture); C5440
                 (Multiprocessing systems); C5470 (Performance
                 evaluation and testing)",
  corpsource =   "FIRST, GMD Res. Inst. for Comput. Arch. and Software
                 Eng., Berlin, Germany",
  fjournal =     "Parallel Computing",
  journal-URL =  "http://www.sciencedirect.com/science/journal/01678191",
  keywords =     "*T; abstract machine; architectures; DASH; distributed
                 memory; distributed memory systems; distributed shared;
                 hardware architecture; latency hiding; latency
                 minimization; MANNA; memory architectures; message
                 passing; message passing architectures; multi-threaded
                 architectures; parallel; parallel supercomputer
                 architectures; performance; performance evaluation;
                 physically shared memory systems; programming models;
                 scalability; shared memory architectures; shared memory
                 systems; systems; taxonomy; virtual",
  treatment =    "P Practical",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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 (print), 1943-5851 (electronic)",
  ISSN-L =       "0163-5964",
  bibdate =      "Fri May 12 09:40:34 MDT 2006",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGARCH Computer Architecture News",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J89",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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 (print), 1943-5851 (electronic)",
  ISSN-L =       "0163-5964",
  bibdate =      "Fri May 12 09:40:34 MDT 2006",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGARCH Computer Architecture News",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J89",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  series =       "The Kluwer international series in engineering and
                 computer science",
  acknowledgement = ack-nhfb,
  keywords =     "computer architecture; Computer architecture;
                 Computers -- Design",
}

@InProceedings{Jeffay:1994:LMT,
  author =       "K. Jeffay",
  title =        "On latency management in time-shared operating
                 systems",
  crossref =     "IEEE:1994:PIW",
  pages =        "86--90",
  year =         "1994",
  bibdate =      "Sat Sep 28 18:52:45 MDT 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/mach.bib;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Dept. of Comput. Sci., North Carolina Univ., Chapel
                 Hill, NC, USA",
  classification = "C6150J (Operating systems); C6150N (Distributed
                 systems)",
  keywords =     "End-to-end latency; Inter-process communication
                 interconnections; Latency management; Multi-threaded
                 applications; Real-Time Mach kernel; Time-shared
                 operating systems; YARTOS kernel",
  thesaurus =    "Message passing; Operating systems [computers];
                 Real-time systems; Scheduling; Time-sharing programs",
}

@Article{Kanalakis:1994:ET,
  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;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 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)",
  fjournal =     "Dr. Dobb's Journal of Software Tools",
  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:MBC,
  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;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "C/C++ Users Journal",
}

@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;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "C/C++ Users Journal",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
}

@Article{Kim:1994:HAM,
  author =       "C. Kim and J.-L. Gaudiot",
  title =        "A Hierarchical Activation Management Technique for
                 Fine-Grain Multithreaded Execution",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "817",
  pages =        "577--??",
  year =         "1994",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Mon May 13 11:52:14 MDT 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
}

@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 (print), 1558-0814 (electronic)",
  ISSN-L =       "0018-9162",
  bibdate =      "Mon Feb 3 07:28:57 MST 1997",
  bibsource =    "Compendex database;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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)",
  fjournal =     "Computer",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=2",
  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 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:16:57 MST 2003",
  bibsource =    "http://portal.acm.org/; http://www.acm.org/pubs/toc/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  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 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:16:51 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/pldi/178243/index.html;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  keywords =     "algorithms; encapsulation; external specification;
                 functional language; functional programming; high level
                 languages; 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{Lee:1994:DAM,
  author =       "Ben Lee and A. R. Hurson",
  title =        "Dataflow Architectures and Multithreading",
  journal =      j-COMPUTER,
  volume =       "27",
  number =       "8",
  pages =        "27--39",
  month =        aug,
  year =         "1994",
  CODEN =        "CPTRB4",
  ISSN =         "0018-9162 (print), 1558-0814 (electronic)",
  ISSN-L =       "0018-9162",
  bibdate =      "Mon Feb 3 07:28:57 MST 1997",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  abstract =     "Contrary to initial expectations, implementing
                 dataflow computers has presented a. monumental
                 challenge. Now, however, multithreading offers a.
                 viable alternative for buliding hybrid architectures
                 that exploit parallelism.",
  acknowledgement = ack-nhfb,
  affiliation =  "Dept. of Electr. and Comput. Eng., Oregon State Univ.,
                 Corvallis, OR, USA",
  classification = "C5220P (Parallel architecture); C5440
                 (Multiprocessing systems)",
  fjournal =     "Computer",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=2",
  keywords =     "Compilers; Concurrency; Data dependencies; Dataflow
                 architectures; Dataflow machines; Functional semantics;
                 Hybrid architectures; Id; Imperative languages;
                 Multithreading; Parallel functional languages; Parallel
                 machines; Parallelism; Programmability; Semantics; Side
                 effects; SISAL; Source code; Streams and Iterations in
                 a Single Assignment Language; Syntax; Threaded Abstract
                 Machine",
  thesaurus =    "Parallel architectures; Parallel processing",
}

@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 (print), 1943-586X (electronic)",
  ISSN-L =       "0163-5980",
  bibdate =      "Sat Aug 26 08:55:46 MDT 2006",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Operating Systems Review",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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 (print), 1096-0848 (electronic)",
  ISSN-L =       "0743-7315",
  bibdate =      "Thu Mar 9 09:18:53 MST 2000",
  bibsource =    "http://www.idealibrary.com/servlet/useragent?func=showAllIssues&curIssueID=jpdc;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  fjournal =     "Journal of Parallel and Distributed Computing",
  journal-URL =  "http://www.sciencedirect.com/science/journal/07437315",
  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:UMC,
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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 (print), 1943-586X (electronic)",
  ISSN-L =       "0163-5980",
  bibdate =      "Sat Aug 26 08:55:36 MDT 2006",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Operating Systems Review",
}

@Article{Nemawarkar:1994:PIN,
  author =       "S. S. Nemawarkar and R. Govindarajan and G. R. Gao and
                 V. K. Agarwal",
  title =        "Performance of Interconnection Network in
                 Multithreaded Architectures",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "817",
  pages =        "823--??",
  year =         "1994",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Mon May 13 11:52:14 MDT 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
}

@Article{Nikhil:1994:MII,
  author =       "Rishiyur S. Nikhil",
  title =        "A Multithreaded Implementation of {Id} using {P-RISC}
                 Graphs",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "768",
  pages =        "390--??",
  year =         "1994",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Mon May 13 11:52:14 MDT 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
}

@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;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 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 = "C6150J (Operating systems); C6150N (Distributed
                 systems)",
  fjournal =     "Dr. Dobb's Journal of Software Tools",
  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/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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:UIC,
  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;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 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)",
  fjournal =     "Dr. Dobb's Journal of Software Tools",
  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",
}

@InProceedings{Shee:1994:DMA,
  author =       "Jang Chung Shee and Chao Chin Wu and Lin Wen You and
                 Cheng Chen",
  title =        "Design of a multithread architecture and its parallel
                 simulation and evaluation environment",
  crossref =     "Anonymous:1994:ICS",
  pages =        "69--76 (vol. 1)",
  year =         "1994",
  bibdate =      "Sun Dec 22 10:19:23 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Inst. of Comput. Sci. and Inf. Eng., Nat. Chiao Tung
                 Univ., Hsinchu, Taiwan",
  classification = "C5220P (Parallel architecture); C6115 (Programming
                 support); C6185 (Simulation techniques)",
  keywords =     "Context switch; Integrated multiprocessing simulation
                 environment; Multithread architecture; Parallel
                 simulation; Parallel simulation and evaluation
                 environment; Parallel Virtual Machine; SUN SPARC
                 workstations; Thread-related instructions",
  thesaurus =    "Digital simulation; Parallel architectures;
                 Programming environments",
}

@InProceedings{Spero:1994:MMD,
  author =       "Simon E. Spero",
  title =        "{MDMA} --- Multithreaded Daemon for Multimedia
                 Access",
  crossref =     "Anonymous:1994:PIW",
  pages =        "??--??",
  year =         "1994",
  bibdate =      "Mon Oct 23 09:15:37 2000",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 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 = "C6115 (Programming support); C6130B (Graphics
                 techniques); C6180G (Graphical user interfaces); C7420
                 (Control engineering)",
  fjournal =     "Dr. Dobb's Journal of Software Tools",
  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 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:16:57 MST 2003",
  bibsource =    "http://portal.acm.org/; http://www.acm.org/pubs/toc/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  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 (print), 1943-5851 (electronic)",
  ISSN-L =       "0163-5964",
  bibdate =      "Fri May 12 09:40:40 MDT 2006",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGARCH Computer Architecture News",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J89",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  series =       "Theses for the degree of Master of Science (University
                 of Hawaii at Manoa)",
  acknowledgement = ack-nhfb,
  keywords =     "Computer architecture; Multiprocessors",
}

@Article{Williams:1994:NST,
  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;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 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 = "C6110 (Systems analysis and programming); C6150C
                 (Compilers, interpreters and other processors); C6150J
                 (Operating systems)",
  fjournal =     "Dr. Dobb's Journal of Software Tools",
  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{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;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 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 = "C6110 (Systems analysis and programming); C6150C
                 (Compilers, interpreters and other processors); C6150J
                 (Operating systems)",
  fjournal =     "Dr. Dobb's Journal of Software Tools",
  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{Wong:1994:SSI,
  author =       "W. F. Wong and E. Goto",
  title =        "A Simulation Study on the Interactions Between
                 Multithreaded Architectures and the Cache",
  journal =      j-INT-J-HIGH-SPEED-COMPUTING,
  volume =       "6",
  number =       "2",
  pages =        "343--??",
  year =         "1994",
  CODEN =        "IHSCEZ",
  ISSN =         "0129-0533",
  bibdate =      "Mon Feb 25 11:19:24 MST 2002",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 OCLC Article1st database",
  acknowledgement = ack-nhfb,
  fjournal =     "International Journal of High Speed Computing
                 (IJHSC)",
}

@Article{Anonymous:1995:HUW,
  author =       "Anonymous",
  title =        "{HP-UX 10.0 will be unveiled this week, with newly
                 tuned kernel and I\slash {O} paths, plus a
                 multithreaded NFS implementation}",
  journal =      j-OPEN-SYSTEMS-TODAY,
  volume =       "168",
  pages =        "34--??",
  month =        feb,
  year =         "1995",
  ISSN =         "1061-0839",
  bibdate =      "Fri Jan 26 17:24:01 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Open Systems Today",
}

@Article{Anonymous:1995:HWB,
  author =       "Anonymous",
  title =        "{HP-UX 10.0 will be unveiled this week, with newly
                 tuned kernel and I\slash {O} paths, plus a
                 multithreaded NFS implementation}",
  journal =      j-OPEN-SYSTEMS-TODAY,
  volume =       "168",
  pages =        "34--??",
  month =        feb,
  year =         "1995",
  ISSN =         "1061-0839",
  bibdate =      "Fri Jan 26 17:24:01 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Open Systems Today",
}

@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 (print), 1943-586X (electronic)",
  ISSN-L =       "0163-5980",
  bibdate =      "Sat Aug 26 08:55:55 MDT 2006",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Operating Systems Review",
}

@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 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:16:59 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 http://www.math.utah.edu/pub/tex/bib/sigplan1990.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
}

@Article{Banerjee:1995:PCD,
  author =       "Prithviraj Banerjee and John A. Chandy and Manish
                 Gupta and Eugene W. {Hodges IV} and John G. Holm and
                 Antonio Lain and Daniel J. Palermo and Shankar
                 Ramaswamy and Ernesto Su",
  title =        "The {Paradigm} compiler for distributed-memory
                 multicomputers",
  journal =      j-COMPUTER,
  volume =       "28",
  number =       "10",
  pages =        "37--47",
  month =        oct,
  year =         "1995",
  CODEN =        "CPTRB4",
  ISSN =         "0018-9162 (print), 1558-0814 (electronic)",
  ISSN-L =       "0018-9162",
  bibdate =      "Mon Feb 3 07:21:26 MST 1997",
  bibsource =    "Compendex database;
                 http://www.math.utah.edu/pub/tex/bib/computer1990.bib;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Illinois Univ., Urbana, IL, USA",
  affiliationaddress = "Urbana-Champaign, IL, USA",
  classification = "722.3; 722.4; 723.1; 723.2; C6110P (Parallel
                 programming); C6150C (Compilers, interpreters and other
                 processors); C6150N (Distributed systems software)",
  fjournal =     "Computer",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=2",
  journalabr =   "Computer",
  keywords =     "Address space; Automatic parallelization; Codes
                 (symbols); Computational methods; Computer hardware;
                 Computer programming; Data communication systems; Data
                 parallelism; Data partitioning; Data processing;
                 Distributed memory multicomputer; Distributed-memory
                 multicomputers; Efficient software; Explicitly managed
                 communication; Functional parallelism; Irregular
                 computations; Manually distribution; Massively parallel
                 computers; Multithreading; Paradigm compiler; Parallel
                 algorithms; Parallel processing systems; Parallel
                 programming; Program compilers; Regular computations;
                 Sequential programs; Supercomputers",
  thesaurus =    "Distributed memory systems; Parallel machines;
                 Parallel programming; Parallelising compilers; Program
                 compilers",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:17:08 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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)",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
}

@InProceedings{Bubeck:1995:DSC,
  author =       "T. Bubeck and M. Hiller and W. Kuchlin and W.
                 Rosenstiel",
  title =        "Distributed symbolic computation with {DTS}",
  crossref =     "Ferreira:1995:PAI",
  pages =        "231--248",
  year =         "1995",
  bibdate =      "Sun Dec 22 10:19:23 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/cryptography1990.bib;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 http://www.math.utah.edu/pub/tex/bib/pvm.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Wilhelm-Schickard-Inst. fur Inf., Tubingen Univ.,
                 Germany",
  classification = "C4130 (Interpolation and function approximation);
                 C4240P (Parallel programming and algorithm theory);
                 C6110P (Parallel programming); C6115 (Programming
                 support); C6130S (Data security); C6150N (Distributed
                 systems software)",
  keywords =     "Anonymous compute servers; Asynchronous RPC
                 abstraction; C threads interface; Cryptosystem;
                 Distributed symbolic computation; Distributed threads
                 system; DTS; Fork/join parallel programming; Highly
                 data-dependent algorithm parallelisation; Irregular
                 algorithm parallelisation; Multiprocessor workstation;
                 Multithreading; Parallel long integer multiplication;
                 Parallel multi-variate polynomial resultant
                 computation; Performance results; Programming
                 environment; PVM; Shared memory threads",
  thesaurus =    "Arithmetic; Cryptography; Distributed memory systems;
                 Multiprocessing programs; Multiprocessing systems;
                 Parallel algorithms; Parallel programming; Polynomials;
                 Programming environments; Remote procedure calls;
                 Shared memory systems; Software performance evaluation;
                 Symbol manipulation; Workstations",
}

@Article{Caudal:1995:DEM,
  author =       "F. Caudal and B. Lecussan",
  title =        "Design and Evaluation of a Multi-Threaded Architecture
                 for Parallel Graph Reduction",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "964",
  pages =        "411--??",
  year =         "1995",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Sat May 11 13:45:32 MDT 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
}

@Article{Cejtin:1995:HOD,
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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",
  ISSN-L =       "1040-3108",
  bibdate =      "Tue Sep 7 05:40:19 MDT 1999",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/cpe.bib;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Concurrency, practice and experience",
}

@Article{Chang:1995:CTS,
  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",
  ISSN-L =       "1040-3108",
  bibdate =      "Tue Sep 7 05:40:19 MDT 1999",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Concurrency, practice and experience",
}

@Article{Chong:1995:PAF,
  author =       "Yong-Kim Chong and Kai Hwang",
  title =        "Performance Analysis of Four Memory Consistency Models
                 for Multithreaded Multiprocessors",
  journal =      j-IEEE-TRANS-PAR-DIST-SYS,
  volume =       "6",
  number =       "10",
  pages =        "1085--1099",
  month =        oct,
  year =         "1995",
  CODEN =        "ITDSEO",
  DOI =          "http://dx.doi.org/10.1109/71.473517",
  ISSN =         "1045-9219 (print), 1558-2183 (electronic)",
  ISSN-L =       "1045-9219",
  bibdate =      "Fri Nov 6 12:31:15 MST 1998",
  bibsource =    "Compendex database;
                 http://www.computer.org/tpds/td1995/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://www.computer.org/tpds/td1995/l1085abs.htm",
  acknowledgement = ack-nhfb,
  affiliation =  "Nanyang Technological Univ",
  affiliationaddress = "Singapore, Singapore",
  classification = "716.1; 722.1; 722.3; 722.4; 921.4; 922.1; C1160
                 (Combinatorial mathematics); C5440 (Multiprocessing
                 systems); C5470 (Performance evaluation and testing)",
  corpsource =   "Sch. of Electr. and Electron. Eng., Nanyang Technol.
                 Univ., Singapore",
  fjournal =     "IEEE Transactions on Parallel and Distributed
                 Systems",
  journal-URL =  "http://www.computer.org/portal/web/csdl/transactions/tpds",
  journalabr =   "IEEE Trans Parallel Distrib Syst",
  keywords =     "attributes; Bandwidth; Buffer storage; cache
                 interferences; Computer networks; Computer selection
                 and evaluation; Computer simulation; Context switching;
                 Data communication systems; Data storage equipment;
                 Distributed shared memory; distributed shared memory
                 models; embedded Markov chains; evaluation; Latency
                 hiding techniques; Markov processes; memory consistency
                 models; Memory consistency models; memory event
                 reordering; multiprocessing systems; Multiprocessing
                 systems; multithreaded multiprocessors; Multithreaded
                 multiprocessors; performance; Performance; performance
                 analysis; Performance evaluation; Petri net models;
                 Petri nets; Processors; rate; scalable multiprocessors;
                 Scalable multiprocessors; stochastic timed Petri nets;
                 Stochastic timed Petri nets; synchronisation;
                 synchronization; Synchronization; Telecommunication
                 traffic; write buffers",
  treatment =    "A Application; P Practical",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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)",
}

@Article{Coorg:1995:PNS,
  author =       "S. R. Coorg",
  title =        "Partitioning Non-Strict Functional Languages for
                 Multi-Threaded Code Generation",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "983",
  pages =        "82--??",
  year =         "1995",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Sat May 11 13:45:32 MDT 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  series =       "Master's theses / State University of New York at
                 Binghamton",
  acknowledgement = ack-nhfb,
  keywords =     "Operating systems (Computers)",
}

@Article{Dorojevets:1995:MDA,
  author =       "M. N. Dorojevets and V. G. Oklobdzija",
  title =        "Multithreaded Decoupled Architecture",
  journal =      j-INT-J-HIGH-SPEED-COMPUTING,
  volume =       "7",
  number =       "3",
  pages =        "465--??",
  year =         "1995",
  CODEN =        "IHSCEZ",
  ISSN =         "0129-0533",
  bibdate =      "Mon Feb 25 11:19:23 MST 2002",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 OCLC Article1st database",
  acknowledgement = ack-nhfb,
  fjournal =     "International Journal of High Speed Computing
                 (IJHSC)",
}

@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;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 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 = "721.1; 722.4; 723.1; 723.1.1; 723.2; 723.5; C5140
                 (Firmware); C6110J (Object-oriented programming);
                 C6110P (Parallel programming); C6140D (High level
                 languages)",
  fjournal =     "Dr. Dobb's Journal of Software Tools",
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "C/C++ Users Journal",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:17:03 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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 =    "Compendex database;
                 http://www.ddj.com/index/author/index.htm;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 UnCover 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 = "722.4; 723.1; 723.1.1; C6110B (Software engineering
                 techniques); C6150J (Operating systems)",
  fjournal =     "Dr. Dobb's Journal of Software Tools",
  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 (print), 1872-7115 (electronic)",
  ISSN-L =       "0167-739X",
  bibdate =      "Sat Jan 10 12:00:22 MST 2004",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Future Generation Computer Systems",
  journal-URL =  "http://www.sciencedirect.com/science/journal/0167739X",
  remark =       "High-Performance Computer Architecture.",
}

@Article{Ford:1995:EDT,
  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;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 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 = "721.1; 722.4; 723.1; 723.1.1; 723.2; 723.5; C6110J
                 (Object-oriented programming); C6110P (Parallel
                 programming); C6140D (High level languages)",
  fjournal =     "Dr. Dobb's Journal of Software Tools",
  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",
}

@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;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 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 = "721.1; 722.4; 723.1; 723.1.1; 723.2; 723.5; C6110J
                 (Object-oriented programming); C6110P (Parallel
                 programming); C6140D (High level languages)",
  fjournal =     "Dr. Dobb's Journal of Software Tools",
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  keywords =     "computer architecture; data structures (computer
                 science); parallel processing (electronic computers)",
}

@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 (print), 1943-5835 (electronic)",
  ISSN-L =       "0163-5808",
  bibdate =      "Mon Jan 12 08:45:52 MST 2004",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  classification = "C6110P (Parallel programming); C6150N (Distributed
                 systems software); C6160B (Distributed databases)",
  fjournal =     "ACM SIGMOD Record",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J689",
  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:ETL,
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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.",
}

@Article{Goossens:1995:FPM,
  author =       "B. Goossens and D. T. Vu",
  title =        "Further Pipelining and Multithreading to Improve
                 {RISC} Processor Speed. {A} Proposed Architecture and
                 Simulation Results",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "964",
  pages =        "326--??",
  year =         "1995",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Sat May 11 13:45:32 MDT 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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:DRT,
  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;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  classification = "C6150N (Distributed systems software)",
  fjournal =     "Dr. Dobb's Journal of Software Tools",
  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 (print), 1943-5851 (electronic)",
  ISSN-L =       "0163-5964",
  bibdate =      "Fri May 12 09:40:47 MDT 2006",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGARCH Computer Architecture News",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J89",
}

@Article{Kawamoto:1995:MTP,
  author =       "S.-I. Kawamoto and T. Ito",
  title =        "Multi-threaded {PaiLisp} with Granularity Adaptive
                 Parallel Execution",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "907",
  pages =        "94--??",
  year =         "1995",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Sat May 11 13:45:32 MDT 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
}

@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 (print), 1943-586X (electronic)",
  ISSN-L =       "0163-5980",
  bibdate =      "Sat Aug 26 08:55:41 MDT 2006",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Operating Systems Review",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  price =        "US\$48.00",
  URL =          "http://www.amazon.com/exec/obidos/ISBN=0131723898/sunworldonlineA/002-4892305-5599452",
  acknowledgement = ack-nhfb,
}

@Article{Lam:1995:CPC,
  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;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 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 = "C5620L (Local area networks); C6110J
                 (Object-oriented programming); C6140D (High level
                 languages); C6150N (Distributed systems software)",
  fjournal =     "Dr. Dobb's Journal of Software Tools",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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.",
}

@Article{Lenatti:1995:RPM,
  author =       "C. Lenatti",
  title =        "{Rethinking in Parallel: Multiprocessing is on the
                 rise, despite a dearth of tools to help create
                 multithreaded applications}",
  journal =      j-UNIXWORLD-OPEN-COMP,
  volume =       "12",
  number =       "8",
  pages =        "57--??",
  year =         "1995",
  CODEN =        "OPCOEB",
  ISSN =         "1072-4044",
  bibdate =      "Fri Jan 26 17:24:01 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "UnixWorld's Open Computing",
}

@Article{Leppanen:1995:PWO,
  author =       "Ville Lepp{\"a}nen",
  title =        "Performance of work-optimal {PRAM} simulation
                 algorithms on coated meshes",
  journal =      j-COMP-J,
  volume =       "38",
  number =       "10",
  pages =        "801--810",
  month =        "????",
  year =         "1995",
  CODEN =        "CMPJA6",
  ISSN =         "0010-4620 (print), 1460-2067 (electronic)",
  ISSN-L =       "0010-4620",
  bibdate =      "Wed Jul 21 09:54:40 MDT 1999",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 http://www3.oup.co.uk/computer_journal/Volume_38/Issue_10/Vol38_10.index.html",
  URL =          "http://www3.oup.co.uk/computer_journal/Volume_38/Issue_10/Vol38_10.body.html#AbstractLeppanen",
  acknowledgement = ack-nhfb,
  author-1-adr = "Department of Computer Science, University of Turku,
                 Lemmink{\"a}isenkatu 14-18, Datacity, FIN-20520 Turku,
                 Finland",
  classcodes =   "C5220P (Parallel architecture); C7430 (Computer
                 engineering); C5320G (Semiconductor storage); C6110P
                 (Parallel programming); C4240C (Computational
                 complexity)",
  corpsource =   "Dept. of Comput. Sci., Turku Univ., Finland",
  email-1 =      "Ville.Leppanen@cs.utu.fi",
  fjournal =     "The Computer Journal",
  journal-URL =  "http://comjnl.oxfordjournals.org/",
  keywords =     "architectures; coated meshes; combining queues method;
                 computational complexity; cost; greedy routing; mesh
                 connected routing machinery; multithreading level;
                 parallel; parallel algorithms; random-access storage;
                 routing steps; simulated PRAM processors; simulation;
                 sorting; synchronization wave; virtual leveled network
                 technique; virtual machines; work optimal PRAM
                 simulation algorithms",
  treatment =    "P Practical",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
}

@Article{Maquelin:1995:CBM,
  author =       "O. C. Maquelin and H. H. J. Hum and G. R. Gao",
  title =        "Costs and Benefits of Multithreading with
                 Off-the-Shelf {RISC} Processors",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "966",
  pages =        "117--??",
  year =         "1995",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Sat May 11 13:45:32 MDT 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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 (print), 1943-586X (electronic)",
  ISSN-L =       "0163-5980",
  bibdate =      "Sat Aug 26 08:55:52 MDT 2006",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Operating Systems Review",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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 (print), 1943-586X (electronic)",
  ISSN-L =       "0163-5980",
  bibdate =      "Sat Aug 26 08:55:52 MDT 2006",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Operating Systems Review",
}

@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;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 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 = "722.1; 722.2; 722.3; 722.4; 723.1; C5620L (Local
                 area networks); C6110J (Object-oriented programming);
                 C6110P (Parallel programming); C6140D (High level
                 languages)",
  fjournal =     "Dr. Dobb's Journal of Software Tools",
  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",
}

@Article{Prasad:1995:WNT,
  author =       "Shashi Prasad",
  title =        "{Windows NT} Threads --- {A} multithreaded application
                 may actually run slower on an {SMP} machine than on its
                 single-threaded equivalent. Here's how to avoid that",
  journal =      j-BYTE,
  volume =       "20",
  number =       "11",
  pages =        "253--??",
  month =        nov,
  year =         "1995",
  CODEN =        "BYTEDJ",
  ISSN =         "0360-5280 (print), 1082-7838 (electronic)",
  ISSN-L =       "0360-5280",
  bibdate =      "Mon Aug 19 08:30:25 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "BYTE Magazine",
}

@Article{Prasad:1995:WTS,
  author =       "Shashi Prasad",
  title =        "Weaving a Thread --- {Solaris} and {Windows NT} bring
                 the power, speed, and efficiency of multithreading and
                 symmetric multiprocessing to the desktop",
  journal =      j-BYTE,
  volume =       "20",
  number =       "10",
  pages =        "173--??",
  month =        oct,
  year =         "1995",
  CODEN =        "BYTEDJ",
  ISSN =         "0360-5280 (print), 1082-7838 (electronic)",
  ISSN-L =       "0360-5280",
  bibdate =      "Mon Aug 19 08:30:21 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "BYTE Magazine",
}

@Book{Reich:1995:DHP,
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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 =    "Compendex database;
                 http://www.ddj.com/index/author/index.htm;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 UnCover 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 = "722.2; 723.1; 723.1.1; 723.5; C6110J
                 (Object-oriented programming); C6110V (Visual
                 programming); C6115 (Programming support); C6130B
                 (Graphics techniques); C6150G (Diagnostic, testing,
                 debugging and evaluating systems); C6180G (Graphical
                 user interfaces)",
  fjournal =     "Dr. Dobb's Journal of Software Tools",
  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;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 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 = "722.2; 722.4; 723.1; 723.2; 723.5; C6110P (Parallel
                 programming); C6150J (Operating systems); C6150N
                 (Distributed systems software)",
  fjournal =     "Dr. Dobb's Journal of Software Tools",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:17:08 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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)",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  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{Srinivasan:1995:MMX,
  author =       "Murali V. Srinivasan",
  title =        "A Methodology for Multithreaded {X} Client
                 Development",
  journal =      j-X-RESOURCE,
  volume =       "13",
  number =       "1",
  pages =        "181--181",
  month =        jan,
  year =         "1995",
  CODEN =        "XRESEA",
  ISBN =         "1-56592-121-6",
  ISBN-13 =      "978-1-56592-121-4",
  ISSN =         "1058-5591",
  bibdate =      "Fri Mar 31 06:55:49 1995",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "The X Resource",
}

@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 (print), 1943-586X (electronic)",
  ISSN-L =       "0163-5980",
  bibdate =      "Sat Aug 26 08:55:55 MDT 2006",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Operating Systems Review",
}

@Article{Stuckey:1995:FCI,
  author =       "Richard Stuckey",
  title =        "A fully conformant implementation of {ECMA-162}",
  journal =      j-ADA-USER,
  volume =       "16",
  number =       "2",
  pages =        "83--94",
  month =        jun,
  year =         "1995",
  CODEN =        "AUJOET",
  ISSN =         "0268-652X",
  bibdate =      "Mon Sep 8 18:43:50 MDT 1997",
  bibsource =    "Compendex database;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  abstract =     "ICL has developed a portable implementation of the Ada
                 interfaces to PCTE as specified by ECMA-162. The
                 interfaces map the functionality required onto that
                 provided by the C interfaces to PCTE as specified by
                 ECMA-158. The process of implementing the interfaces
                 revealed a number of errors in the ECMA PCTE standards,
                 such as errors in ECMA-162 concerning the mapping of
                 ECMA-149 onto Ada, errors in ECMA-158 such as missing
                 operations or functions with incorrect parameter modes,
                 discrepancies between the Ada and C bindings and errors
                 in ECMA-149. The architecture of the interfaces and
                 their test harness has been designed to allow easy
                 porting from one PCTE implementation to another, and
                 also from one Ada compilation system to another; some
                 major constraints were imposed by the use of the C
                 interfaces as the underlying platform, particularly
                 regarding Ada's multi-threading abilities. The
                 advantages of using the interfaces include the benefits
                 of being able to implement tools in Ada instead of C;
                 insulation from the underlying PCTE implementation; and
                 the provision of facilities (e.g. call tracing) between
                 tools and PCTE.",
  acknowledgement = ack-nhfb,
  affiliation =  "ICL Enterprises",
  affiliationaddress = "Reading, Engl",
  classification = "722.2; 723.1; 723.1.1; 723.5; 902.2; C6115
                 (Programming support); C6140D (High level languages)",
  corpsource =   "ICL Enterprises, Reading, UK",
  fjournal =     "Ada User",
  journalabr =   "Ada User J",
  keywords =     "Ada; Ada (programming language); Ada compilation
                 system; Ada interfaces; application program interfaces;
                 bindings; C (programming language); C interfaces; call
                 tracing; Codes (symbols); Computer aided software
                 engineering; ECMA PCTE standards; ECMA-149; ECMA-158;
                 ECMA-162; Errors; errors; fully conformant
                 implementation; incorrect parameter modes; missing
                 operations; multi-threading abilities; Portable Common
                 Tools Environment; portable implementation; programming
                 environments; software portability; software standards;
                 software tools; Standards; test harness; User
                 interfaces",
  pubcountry =   "Netherlands",
  treatment =    "P Practical",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  keywords =     "Multiprocessors; Operating systems (Computers);
                 Solaris (Computer file); UNIX (Computer file)",
}

@Article{Tamasanis:1995:MMW,
  author =       "Doug Tamasanis",
  title =        "{Mathematica} meets {Warp}",
  journal =      j-BYTE,
  volume =       "20",
  number =       "5",
  month =        may,
  year =         "1995",
  CODEN =        "BYTEDJ",
  ISSN =         "0360-5280 (print), 1082-7838 (electronic)",
  ISSN-L =       "0360-5280",
  bibdate =      "Fri May 24 09:57:14 MDT 1996",
  bibsource =    "Compendex database;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  abstract =     "Wolfram Research has ported Mathematica, the software
                 tool for quantitative analysis, from its Macintosh
                 origins to a wide range of platforms, including PCs,
                 Unix workstations, and several larger systems. The
                 latest port of Mathematica 2.2 is to OS/2 Warp. Now
                 OS/2 users do not have to rely on the Windows version
                 of the Mathematica kernel, which only simulates
                 multithreading. The new release takes full advantage of
                 the OS/2 preemptive scheduler, threading, and 32-bit
                 flat memory structure to both improve performance and
                 to greatly increase the size of the problems
                 Mathematica can handle. The OS/2 version is found
                 faster and more stable than the Windows version.",
  acknowledgement = ack-nhfb,
  affiliation =  "BYTE",
  classification = "722.2; 723.1; 723.1.1; 723.2; 723.5",
  fjournal =     "BYTE Magazine",
  journalabr =   "Byte",
  keywords =     "C (programming language); Command line interface;
                 Computer aided software engineering; Computer
                 architecture; Computer operating systems; Computer
                 simulation; Computer software; File editors; FORTRAN
                 (programming language); Graphical user interfaces;
                 Network protocols; Performance; Software Package
                 Mathematica; Word processing",
  pagecount =    "3",
}

@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 (print), 1557-7325 (electronic)",
  ISSN-L =       "1073-0516",
  bibdate =      "Tue Jan 19 05:49:17 MST 1999",
  bibsource =    "http://www.acm.org/pubs/contents/journals/tochi/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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,
  fjournal =     "ACM Transactions on Computer-Human Interaction",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J756",
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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 (print), 1943-5851 (electronic)",
  ISSN-L =       "0163-5964",
  bibdate =      "Fri May 12 09:40:47 MDT 2006",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGARCH Computer Architecture News",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J89",
}

@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;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 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 = "721.1; 722.2; 722.3; 723.1; 723.1.1; C6110J
                 (Object-oriented programming); C6140D (High level
                 languages); C6150N (Distributed systems software)",
  fjournal =     "Dr. Dobb's Journal of Software Tools",
  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 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:17:08 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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)",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  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 =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 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,
  fjournal =     "UNIX review",
}

@Article{Wayner:1995:FAN,
  author =       "Peter Wayner",
  title =        "Free Agents: {A} new generation of light-weight,
                 multithreaded operating environments provide security
                 and interoperability for agent developers",
  journal =      j-BYTE,
  volume =       "20",
  number =       "3",
  pages =        "105--??",
  month =        mar,
  year =         "1995",
  CODEN =        "BYTEDJ",
  ISSN =         "0360-5280 (print), 1082-7838 (electronic)",
  ISSN-L =       "0360-5280",
  bibdate =      "Tue Jan 2 10:01:41 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "BYTE Magazine",
}

@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;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Dr. Dobb's Journal of Software Tools",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 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 = "721.1; 722.2; 723.1; 723.1.1; 723.2",
  fjournal =     "Dr. Dobb's Journal of Software Tools",
  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",
}

@InProceedings{Amrhein:1996:CSM,
  author =       "Beatrice Amrhein and Oliver Gloor and Wolfgang
                 K{\"u}chlin",
  title =        "A Case Study of Multi-Threaded {Gr{\"o}bner} Basis
                 Completion",
  crossref =     "LakshmanYN:1996:IPI",
  pages =        "95--102",
  year =         "1996",
  bibdate =      "Thu Mar 12 08:43:16 MST 1998",
  bibsource =    "http://www.acm.org/pubs/toc/;
                 http://www.math.utah.edu/pub/tex/bib/issac.bib;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://www.acm.org:80/pubs/citations/proceedings/issac/236869/p95-amrhein/",
  acknowledgement = ack-nhfb,
  keywords =     "algebraic computation; algorithms; experimentation;
                 ISSAC; performance; SIGNUM; SIGSAM; symbolic
                 computation",
  subject =      "{\bf I.1.3} Computing Methodologies, SYMBOLIC AND
                 ALGEBRAIC MANIPULATION, Languages and Systems,
                 Special-purpose algebraic systems. {\bf D.1.3}
                 Software, PROGRAMMING TECHNIQUES, Concurrent
                 Programming, Parallel programming. {\bf C.1.2} Computer
                 Systems Organization, PROCESSOR ARCHITECTURES, Multiple
                 Data Stream Architectures (Multiprocessors), Parallel
                 processors**.",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  keywords =     "Multiprocessors -- Design and construction; Parallel
                 processing (Electronic computers)",
}

@Article{Anonymous:1996:WWD,
  author =       "Anonymous",
  title =        "World-wide distributed system using {Java} and the
                 {Internet}",
  journal =      j-IEEE-INT-SYMP-HIGH-PERF-DIST-COMP-PROC,
  pages =        "11--18",
  year =         "1996",
  CODEN =        "PIDCFB",
  ISSN =         "1082-8907",
  bibdate =      "Thu Dec 12 06:31:53 MST 1996",
  bibsource =    "Compendex database;
                 http://www.math.utah.edu/pub/tex/bib/java.bib;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  note =         "IEEE catalog number 96TB100069.",
  acknowledgement = ack-nhfb,
  affiliation =  "California Inst of Technology",
  affiliationaddress = "CA, USA",
  classification = "716.1; 722.4; 723; 723.1; 723.1.1",
  conference =   "Proceedings of the 1996 5th IEEE International
                 Symposium on High Performance Distributed Computing",
  fjournal =     "IEEE International Symposium on High Performance
                 Distributed Computing, Proceedings",
  keywords =     "Collaborative environments; Computer networks;
                 Computer programming languages; Computer software; Data
                 communication systems; Distributed computer systems;
                 Internet; Java; Multithreaded objects; Object oriented
                 programming; Program composition; World wide web",
  meetingaddress = "Syracuse, NY, USA",
  meetingdate =  "Aug 6--9 1996",
  meetingdate2 = "08/06--09/96",
  sponsor =      "IEEE",
}

@Article{Arnold:1996:MPJ,
  author =       "K. Arnold and J. Gosling",
  title =        "Multithreaded programming in {Java}",
  journal =      j-WEB-TECHNIQUES,
  volume =       "1",
  number =       "7",
  pages =        "34--40, 42--43",
  month =        oct,
  year =         "1996",
  CODEN =        "WETEFA",
  ISSN =         "1086-556X",
  bibdate =      "Sat Mar 15 08:49:09 MST 1997",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  classcodes =   "C6150N (Distributed systems software); C6110J
                 (Object-oriented programming); C6140D (High level
                 languages); C6150J (Operating systems)",
  fjournal =     "Web Techniques",
  keywords =     "display; display code; dynamic behaviour; handshaking;
                 interactive program; interrupts; Java; Java object
                 oriented language; multiple; multiprogramming;
                 multithreaded programming; multithreaded system;
                 object-oriented languages; object-oriented programming;
                 operations; parallel programming; polling; problems;
                 real world software; synchronisation; threads; updates;
                 user input",
  treatment =    "P Practical",
}

@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 (print), 1096-0848 (electronic)",
  ISSN-L =       "0743-7315",
  bibdate =      "Thu Mar 9 09:19:00 MST 2000",
  bibsource =    "http://www.idealibrary.com/servlet/useragent?func=showAllIssues&curIssueID=jpdc;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  fjournal =     "Journal of Parallel and Distributed Computing",
  journal-URL =  "http://www.sciencedirect.com/science/journal/07437315",
  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",
}

@InProceedings{Benson:1996:DMS,
  author =       "G. D. Benson and R. A. Olsson",
  title =        "The design of microkernel support for the {SR}
                 concurrent programming language",
  crossref =     "Szymanski:1996:LCR",
  pages =        "227--240",
  year =         "1996",
  bibdate =      "Sat Sep 28 18:12:58 MDT 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/mach.bib;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Dept. of Comput. Sci., California Univ., Davis, CA,
                 USA",
  classification = "C6110P (Parallel programming); C6140D (High level
                 languages); C6150J (Operating systems); C6150N
                 (Distributed systems software)",
  keywords =     "Distributed environment; Distributed operating system;
                 Distributed programming; Distributed programming
                 language; Mach microkernel; Message passing;
                 Microkernel; Microkernel support; Minimal kernel;
                 Multithreaded program; Networked operating system;
                 Parallel programming; SR concurrent programming
                 language",
  thesaurus =    "Distributed processing; Message passing;
                 Multiprocessing programs; Network operating systems;
                 Operating system kernels; Parallel languages",
}

@Article{Berg:1996:HDT,
  author =       "C. Berg",
  title =        "How do threads work and how can {I} create a
                 general-purpose event?",
  journal =      j-DDJ,
  volume =       "21",
  number =       "11",
  pages =        "111--115, 126--127",
  month =        nov,
  year =         "1996",
  CODEN =        "DDJOEB",
  ISSN =         "1044-789X",
  bibdate =      "Sat Mar 15 08:49:09 MST 1997",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  classcodes =   "C6110J (Object-oriented programming); C6140D (High
                 level languages); C6150J (Operating systems); C6150N
                 (Distributed systems software)",
  corpsource =   "Digital Focus, USA",
  fjournal =     "Dr. Dobb's Journal of Software Tools",
  keywords =     "(computers); application; application program
                 interfaces; applications; event; exception handling;
                 general-purpose event; Internet; Java; Java thread
                 mechanism; languages; lightweight processes;
                 multiprocessor architecture; multithreading; object;
                 object-oriented; object-oriented programming; operating
                 systems; oriented language; programming interface;
                 scheduling; synchronisation; synchronization; thread
                 programming; threads; web",
  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;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Dr. Dobb's Journal of Software Tools",
}

@InProceedings{Bhandarkar:1996:MPM,
  author =       "M. A. Bhandarkar and L. V. Kale",
  title =        "{MICE}: a prototype {MPI} implementation in {Converse}
                 environment",
  crossref =     "IEEE:1996:PSM",
  pages =        "26--31",
  year =         "1996",
  bibdate =      "Sat Apr 19 16:34:54 MDT 1997",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  classification = "C6110P (Parallel programming); C6115 (Programming
                 support); C6150E (General utility programs); C6150N
                 (Distributed systems software)",
  conftitle =    "Proceedings. Second MPI Developer's Conference",
  corpsource =   "Dept. of Comput. Sci., Illinois Univ., Urbana, IL,
                 USA",
  keywords =     "Abstract Device Interface; application program
                 interfaces; communication; computations; Converse
                 interoperable parallel programming environment; message
                 managers; message passing; MICE; MPI modules; MPICH;
                 multi-threaded MPI programs; open systems; parallel
                 programming; programming environments; prototype MPI
                 implementation; public-domain MPI implementation; PVM
                 interoperation; thread objects; utility programs",
  sponsororg =   "IEEE Comput. Soc. Tech. Committee on Distributed
                 Process",
  treatment =    "P Practical",
}

@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 (print), 1096-0848 (electronic)",
  ISSN-L =       "0743-7315",
  bibdate =      "Thu Mar 9 09:19:00 MST 2000",
  bibsource =    "http://www.idealibrary.com/servlet/useragent?func=showAllIssues&curIssueID=jpdc;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  fjournal =     "Journal of Parallel and Distributed Computing",
  journal-URL =  "http://www.sciencedirect.com/science/journal/07437315",
  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 (print), 1096-0848 (electronic)",
  ISSN-L =       "0743-7315",
  bibdate =      "Thu Mar 9 09:19:00 MST 2000",
  bibsource =    "http://www.idealibrary.com/servlet/useragent?func=showAllIssues&curIssueID=jpdc;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  fjournal =     "Journal of Parallel and Distributed Computing",
  journal-URL =  "http://www.sciencedirect.com/science/journal/07437315",
  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{Bundgen:1996:SCM,
  author =       "Reinhard B{\"u}ndgen and Manfred G{\"o}bel and
                 Wolfgang K{\"u}chlin",
  title =        "Strategy Compliant Multi-Threaded Term Completion",
  journal =      j-J-SYMBOLIC-COMP,
  volume =       "21",
  number =       "4/5/6",
  pages =        "475--506 (or 475--505??)",
  month =        apr # ", " # may # " \& " # jun,
  year =         "1996",
  CODEN =        "JSYCEH",
  ISSN =         "0747-7171 (print), 1095-855X (electronic)",
  ISSN-L =       "0747-7171",
  MRclass =      "68Q42 (68Q22 68Q40)",
  MRnumber =     "1 420 910",
  bibdate =      "Sat May 10 15:54:09 MDT 1997",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  note =         "Parallel symbolic computation.",
  acknowledgement = ack-nhfb,
  classcodes =   "C7310 (Mathematics computing); C5440 (Multiprocessing
                 systems); C4210L (Formal languages and computational
                 linguistics); C6130 (Data handling techniques)",
  corpsource =   "Wilhelm-Schickard-Inst. fur Inf., Tubingen Univ.,
                 Germany",
  fjournal =     "Journal of Symbolic Computation",
  journal-URL =  "http://www.sciencedirect.com/science/journal/07477171",
  keywords =     "completion module AC; Knuth--Bendix completion;
                 parallel; parallel architectures; rewriting systems;
                 shared memory; strategy compliant multi-threaded term
                 completion; symbol manipulation; systems;
                 term-rewriting system PaReDuX; unfailing completion",
  treatment =    "A Application; P Practical",
}

@Article{Chrisochoides:1996:MMD,
  author =       "Nikos Chrisochoides",
  title =        "Multithreaded model for the dynamic load-balancing of
                 parallel adaptive {PDE} computations",
  journal =      j-APPL-NUM-MATH,
  volume =       "20",
  number =       "4",
  pages =        "349--365",
  day =          "3",
  month =        jun,
  year =         "1996",
  CODEN =        "ANMAEL",
  ISSN =         "0168-9274 (print), 1873-5460 (electronic)",
  ISSN-L =       "0168-9274",
  bibdate =      "Wed Jul 28 14:36:24 MDT 1999",
  bibsource =    "Compendex database;
                 http://www.elsevier.com/cgi-bin/cas/tree/store/apnum/cas_free/browse/browse.cgi?year=1996&volume=20&issue=4;
                 http://www.math.utah.edu/pub/tex/bib/applnummath.bib;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://www.elsevier.com/cgi-bin/cas/tree/store/apnum/cas_sub/browse/browse.cgi?year=1996&volume=20&issue=4&aid=652",
  acknowledgement = ack-nhfb,
  affiliation =  "Cornell Univ",
  affiliationaddress = "Ithaca, NY, USA",
  classification = "722.4; 723.1; 723.5; 731.1; 921.2; 921.6",
  fjournal =     "Applied Numerical Mathematics: Transactions of IMACS",
  journal-URL =  "http://www.sciencedirect.com/science/journal/01689274",
  journalabr =   "Appl Numer Math",
  keywords =     "Calculations; Codes (symbols); Computational
                 complexity; Computer software; Dynamic load balancing;
                 Load balancing algorithms; Mathematical models;
                 Multicomputers; Multithreaded model; Numerical methods;
                 Parallel processing systems; Partial differential
                 equations; Processor workloads; Program complexity;
                 Program processors; Synchronization",
}

@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/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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 (print), 1943-5851 (electronic)",
  ISSN-L =       "0163-5964",
  bibdate =      "Fri May 12 09:40:47 MDT 2006",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGARCH Computer Architecture News",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J89",
}

@Article{Engelhardt:1996:PIP,
  author =       "Dean Engelhardt and Andrew Wendelborn",
  title =        "A Partitioning-Independent Paradigm for Nested Data
                 Parallelism",
  journal =      j-INT-J-PARALLEL-PROG,
  volume =       "24",
  number =       "4",
  pages =        "291--317",
  month =        aug,
  year =         "1996",
  CODEN =        "IJPPE5",
  ISSN =         "0885-7458 (print), 1573-7640 (electronic)",
  ISSN-L =       "0885-7458",
  bibdate =      "Sat Apr 26 11:36:49 MDT 1997",
  bibsource =    "Compendex database;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Univ of Adelaide",
  affiliationaddress = "Aust",
  classification = "721.1; 722.4; 723.1.1; 723.2; 723.5; C6110P
                 (Parallel programming); C6120 (File organisation);
                 C6150C (Compilers, interpreters and other processors);
                 C6150N (Distributed systems software)",
  corpsource =   "Dept. of Comput. Sci., Adelaide Univ., SA, Australia",
  fjournal =     "International Journal of Parallel Programming",
  journal-URL =  "http://link.springer.com/journal/16",
  journalabr =   "Int J Parallel Program",
  keywords =     "abstract machine; Computational methods; Computer
                 simulation; costs; data parallel model; data
                 partitioning; Data structures; data structures; High
                 level languages; irregular data structures; Multi
                 threading; multinode execution model; Multiprocessing
                 systems; multiprocessing systems; multiprocessor
                 machines; nested data parallelism; Nested data
                 parallelism; nested data structures; nodal
                 multi-threading; one-dimensional data parallel
                 operator; parallel computation; Parallel execution
                 models; Parallel processing systems; parallel
                 programming; partitioning-independent paradigm;
                 Performance; performance statistics; program compilers;
                 software performance evaluation; Thinking machines;
                 Thinking Machines CM-5",
  treatment =    "P Practical",
}

@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;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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,
  fjournal =     "Dr. Dobb's Journal of Software Tools",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  annote =       "Also known as ICS'96. Held as part of the Federated
                 computing research conference (FCRC'96)",
  keywords =     "ACM; architecture; computer; FCRC; ICS; SIGARCH;
                 supercomputing",
}

@Article{Fatouron:1996:SAS,
  author =       "P. Fatouron and P. Spirakis",
  title =        "Scheduling Algorithms for Strict Multithreaded
                 Computations",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1178",
  pages =        "407--??",
  year =         "1996",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Fri Aug 22 11:59:49 MDT 1997",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
}

@Article{Feuerstein:1996:MTP,
  author =       "E. Feuerstein and A. S. {De Loma}",
  title =        "On Multi-threaded Paging",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1178",
  pages =        "417--??",
  year =         "1996",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Fri Aug 22 11:59:49 MDT 1997",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
}

@InProceedings{Foster:1996:MIW,
  author =       "I. Foster and J. Geisler and S. Tuecke",
  title =        "{MPI} on the {I-WAY}: a wide-area, multimethod
                 implementation of the {Message Passing Interface}",
  crossref =     "IEEE:1996:PSM",
  pages =        "10--17",
  year =         "1996",
  bibdate =      "Sat Apr 19 16:34:54 MDT 1997",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  classification = "C5620W (Other computer networks); C6110B (Software
                 engineering techniques); C6115 (Programming support);
                 C6130S (Data security); C6150E (General utility
                 programs); C6150N (Distributed systems software)",
  conftitle =    "Proceedings. Second MPI Developer's Conference",
  corpsource =   "Argonne Nat. Lab., IL, USA",
  keywords =     "application program interfaces; authentication;
                 automatic configuration mechanisms; communication
                 mechanisms; geographically distributed computing
                 resources; geographically distributed database
                 resources; geographically distributed graphics
                 resources; geographically distributed networking;
                 heterogeneous systems; high-speed wide-area networks;
                 I-WAY distributed- computing experiment; message
                 authentication; message passing; Message Passing
                 Interface; MPICH; Nexus multithreaded runtime system;
                 parallel programming; portable high-performance
                 programming model; process creation; programming
                 environments; software environment; software libraries;
                 utility programs; wide area networks",
  sponsororg =   "IEEE Comput. Soc. Tech. Committee on Distributed
                 Process",
  treatment =    "P Practical",
}

@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 (print), 1096-0848 (electronic)",
  ISSN-L =       "0743-7315",
  bibdate =      "Thu Mar 9 09:19:00 MST 2000",
  bibsource =    "http://www.idealibrary.com/servlet/useragent?func=showAllIssues&curIssueID=jpdc;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  fjournal =     "Journal of Parallel and Distributed Computing",
  journal-URL =  "http://www.sciencedirect.com/science/journal/07437315",
  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 (print), 1096-0848 (electronic)",
  ISSN-L =       "0743-7315",
  bibdate =      "Thu Mar 9 09:19:00 MST 2000",
  bibsource =    "http://www.idealibrary.com/servlet/useragent?func=showAllIssues&curIssueID=jpdc;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  fjournal =     "Journal of Parallel and Distributed Computing",
  journal-URL =  "http://www.sciencedirect.com/science/journal/07437315",
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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: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",
  ISBN =         "0-89791-767-7",
  ISBN-13 =      "978-0-89791-767-4",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat May 1 15:50:57 MDT 1999",
  bibsource =    "http://www.acm.org/pubs/toc/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  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{Hamilton:1996:JSN,
  author =       "Marc A. Hamilton",
  title =        "{Java} and the Shift to Net-Centric Computing",
  journal =      j-COMPUTER,
  volume =       "29",
  number =       "8",
  pages =        "31--39",
  month =        aug,
  year =         "1996",
  CODEN =        "CPTRB4",
  ISSN =         "0018-9162 (print), 1558-0814 (electronic)",
  ISSN-L =       "0018-9162",
  bibdate =      "Sat Mar 15 08:49:09 MST 1997",
  bibsource =    "Compendex database;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 UnCover library database",
  note =         "Mentions Java's use of Unicode characters.",
  abstract =     "Java, with its write once, run anywhere model, changes
                 the basic techniques by which software is designed,
                 developed, and deployed.",
  acknowledgement = ack-nhfb,
  affiliation =  "Sun Microsystems",
  affiliationaddress = "El Segundo, CA, USA",
  classcodes =   "C6140D (High level languages); C6110J (Object-oriented
                 programming); C7210 (Information services and centres);
                 C6120 (File organisation)",
  classification = "722.1; 722.3; 723; 723.1; 723.1.1; 723.2; 723.3;
                 723.5; C6110J (Object-oriented programming); C6120
                 (File organisation); C6140D (High level languages);
                 C7210 (Information services and centres)",
  corpsource =   "Sun Microsyst., El Segundo, CA, USA",
  fjournal =     "Computer",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=2",
  journalabr =   "Computer",
  keywords =     "application program interfaces; application
                 programming; C; C (programming language); C++; computer
                 aided software; Computer architecture; Computer
                 hardware; Computer networks; Computer operating
                 systems; Computer programming languages; Computer
                 simulation; Computer software; Computer software
                 portability; Distributed database systems; Dynamic
                 linking; engineering; environments; garbage collection;
                 interfaces; Internet; Internet, Object oriented
                 programming; interpreted language; Java; Java
                 programming language; language; management; Memory
                 management; Middleware; Middleware, Computer
                 programming languages; multithreading; Multithreading;
                 multithreading; Multithreading; multithreading; Net
                 centric computing; net-centric computing; Network
                 centric computing; Numeric data types; Object oriented
                 programming; object-; object-oriented languages;
                 object-oriented programming; oriented programming;
                 program compiler; Program compilers; program debugging;
                 Program interpreters; program testing; programming
                 environments; Security of data; software development;
                 Software engineering; software-development life cycle;
                 storage; Storage allocation (computer); Virtual
                 machines; Web browser; Web browsers; World Wide Web",
  treatment =    "P Practical",
}

@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 (print), 1096-0848 (electronic)",
  ISSN-L =       "0743-7315",
  bibdate =      "Thu Mar 9 09:18:59 MST 2000",
  bibsource =    "http://www.idealibrary.com/servlet/useragent?func=showAllIssues&curIssueID=jpdc;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  fjournal =     "Journal of Parallel and Distributed Computing",
  journal-URL =  "http://www.sciencedirect.com/science/journal/07437315",
  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 (print), 1557-7325 (electronic)",
  ISSN-L =       "1073-0516",
  bibdate =      "Tue Jan 19 05:49:17 MST 1999",
  bibsource =    "http://www.acm.org/pubs/contents/journals/tochi/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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,
  fjournal =     "ACM Transactions on Computer-Human Interaction",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J756",
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
}

@Article{Hum:1996:SEM,
  author =       "Herbert H. J. Hum and Olivier Maquelin and Kevin B.
                 Theobald and Xinmin Tian and Guang R. Gao and Laurie J.
                 Hendren",
  title =        "A Study of the {EARTH-MANNA} Multithreaded System",
  journal =      j-INT-J-PARALLEL-PROG,
  volume =       "24",
  number =       "4",
  pages =        "319--348",
  month =        aug,
  year =         "1996",
  CODEN =        "IJPPE5",
  ISSN =         "0885-7458 (print), 1573-7640 (electronic)",
  ISSN-L =       "0885-7458",
  bibdate =      "Sat Apr 26 11:36:49 MDT 1997",
  bibsource =    "Compendex database;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Intel Corp",
  affiliationaddress = "OR, USA",
  classification = "722.3; 722.4; 723.5; 731.1; C5220P (Parallel
                 architecture); C5440 (Multiprocessing systems); C5470
                 (Performance evaluation and testing); C6150N
                 (Distributed systems software)",
  corpsource =   "Dept. of Meas., Archit. and Planning, Intel Corp.,
                 Hillsboro, OR, USA",
  fjournal =     "International Journal of Parallel Programming",
  journal-URL =  "http://link.springer.com/journal/16",
  journalabr =   "Int J Parallel Program",
  keywords =     "ASIC synchronization unit; benchmarks; Communication
                 latency; communication latency; Computer architecture;
                 Computer hardware; Computer simulation; Data
                 communication systems; data flow computing;
                 dataflow-like thread synchronizations; earth manna
                 system; EARTH-MANNA multithreaded system; Execution
                 unit; multiprocessing systems; Multiprocessing systems;
                 multiprocessor systems; multithreaded architecture;
                 Multithreaded system; off-the-shelf execution unit;
                 parallel architectures; Parallel processing systems;
                 performance; Performance; performance evaluation;
                 processor scheduling; Program processors; remote
                 requests; Scheduling; scheduling; sequentially-executed
                 code; synchronisation; Synchronization;
                 synchronization; Synchronization unit; uniprocessor
                 performance",
  treatment =    "P Practical",
}

@Article{Hurson:1996:CMD,
  author =       "A. R. Hurson and Krishna M. Kavi and Behrooz Shirazi
                 and Ben Lee",
  title =        "Cache Memories for Dataflow Systems",
  journal =      j-IEEE-PAR-DIST-TECH,
  volume =       "4",
  number =       "4",
  pages =        "50--64",
  month =        "Winter",
  year =         "1996",
  CODEN =        "IPDTEX",
  DOI =          "http://dx.doi.org/10.1109/88.544436",
  ISSN =         "1063-6552 (print), 1558-1861 (electronic)",
  ISSN-L =       "1063-6552",
  bibdate =      "Mon Jun 7 07:52:29 MDT 1999",
  bibsource =    "Compendex database;
                 http://www.computer.org/concurrency/pd1996/;
                 http://www.math.utah.edu/pub/tex/bib/ieeepardisttech.bib;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://dlib.computer.org/pd/books/pd1996/pdf/p4050.pdf;
                 http://www.computer.org/concurrency/pd1996/p4050abs.htm",
  acknowledgement = ack-nhfb,
  affiliation =  "Pennsylvania State Univ",
  affiliationaddress = "PA, USA",
  classification = "721.1; 722.1; 722.2; 723; 723.1; 731.1; C5220P
                 (Parallel architecture); C5320G (Semiconductor
                 storage); C5440 (Multiprocessing systems); C6110P
                 (Parallel programming); C6120 (File organisation)",
  corpsource =   "Dept. of Comput. Sci. and Eng., Pennsylvania State
                 Univ., University Park, PA, USA",
  fjournal =     "IEEE Parallel and Distributed Technology: Systems and
                 Applications",
  journalabr =   "IEEE Parallel Distrib Technol",
  keywords =     "Algorithms; architectural model; Buffer storage; cache
                 memories; Cache misses; cache storage; Computer
                 architecture; computer architectures; Computer systems
                 programming; Context switching; control flow
                 architecture; control flow processing; dataflow
                 architectures; dataflow computation; dataflow
                 environment; dataflow processing; dataflow program;
                 dataflow programming environments; Dataflow systems;
                 dataflow systems; localities; Memory latencies;
                 Multithreading; parallel architectures; parallel
                 machines; Parallel processing systems; parallel
                 programming; Process control; Program compilers;
                 Program processors; Sequential switching; Storage
                 allocation (computer); temporal; Throughput; Virtual
                 storage",
  treatment =    "P Practical",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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 (print), 1096-0848 (electronic)",
  ISSN-L =       "0743-7315",
  bibdate =      "Thu Mar 9 09:19:00 MST 2000",
  bibsource =    "http://www.idealibrary.com/servlet/useragent?func=showAllIssues&curIssueID=jpdc;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  fjournal =     "Journal of Parallel and Distributed Computing",
  journal-URL =  "http://www.sciencedirect.com/science/journal/07437315",
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  keywords =     "multitasking (computer science); parallel programming
                 (computer science); synchronization",
}

@Article{Leary:1996:CEH,
  author =       "S. Leary",
  title =        "{C++} exception handling in multithreaded programs",
  journal =      j-C-PLUS-PLUS-REPORT,
  volume =       "8",
  number =       "2",
  pages =        "20--31",
  month =        feb,
  year =         "1996",
  CODEN =        "CRPTE7",
  ISSN =         "1040-6042",
  bibdate =      "Tue Mar 25 13:34:48 MST 1997",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  classcodes =   "C6110J (Object-oriented programming); C6140D (High
                 level languages); C6150J (Operating systems); C6130
                 (Data handling techniques)",
  corpsource =   "Dresser-Wayne Ind., USA",
  fjournal =     "C++ Report",
  keywords =     "C language; C++; exception handling; exception-aware
                 thread class; exception-safe programming; lightweight
                 threads; multiprogramming; multitasking; multithreaded
                 programs; object oriented programming; object-;
                 object-oriented programming; operating; oriented
                 languages; OS/2; reusable C++ classes; software
                 reusability; Solaris; systems; systems (computers);
                 thread manager class; thread-safe reference counting
                 class; Windows 95; Windows NT",
  treatment =    "P Practical",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  series =       "Sun BluePrints Program",
  acknowledgement = ack-nhfb,
  keywords =     "POSIX (Computer software standard); Threads (Computer
                 programs); UNIX (Computer file)",
}

@Article{Lim:1996:LPB,
  author =       "Beng-Hong Lim and Ricardo Bianchini",
  title =        "Limits on the performance benefits of multithreading
                 and prefetching",
  journal =      j-SIGMETRICS,
  volume =       "24",
  number =       "1",
  pages =        "37--46",
  month =        may,
  year =         "1996",
  CODEN =        "????",
  DOI =          "http://doi.acm.org/10.1145/233008.233021",
  ISSN =         "0163-5999 (print), 1557-9484 (electronic)",
  ISSN-L =       "0163-5999",
  bibdate =      "Thu Jun 26 11:21:30 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  abstract =     "This paper presents new analytical models of the
                 performance benefits of multithreading and prefetching,
                 and experimental measurements of parallel applications
                 on the MIT Alewife multiprocessor. For the first time,
                 both techniques are evaluated on a real machine as
                 opposed to simulations. The models determine the region
                 in the parameter space where the techniques are most
                 effective, while the measurements determine the region
                 where the applications lie. We find that these regions
                 do not always overlap significantly. The multithreading
                 model shows that only 2-4 contexts are necessary to
                 maximize this technique's potential benefit in current
                 multiprocessors. Multithreading improves execution time
                 by less than 10\% for most of the applications that we
                 examined. The model also shows that multithreading can
                 significantly improve the performance of the same
                 applications in multiprocessors with longer latencies.
                 Reducing context-switch overhead is not crucial. The
                 software prefetching model shows that allowing 4
                 outstanding prefetches is sufficient to achieve most of
                 this technique's potential benefit on current
                 multiprocessors. Prefetching improves performance over
                 a wide range of parameters, and improves execution time
                 by as much as 20-50\% even on current multiprocessors.
                 The two models show that prefetching has a significant
                 advantage over multithreading for machines with low
                 memory latencies and/or applications with high cache
                 miss rates because a prefetch instruction consumes less
                 time than a context-switch.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGMETRICS Performance Evaluation Review",
  journal-URL =  "http://portal.acm.org/toc.cfm?id=J618",
}

@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 (print), 1096-0848 (electronic)",
  ISSN-L =       "0743-7315",
  bibdate =      "Thu Mar 9 09:19:00 MST 2000",
  bibsource =    "http://www.idealibrary.com/servlet/useragent?func=showAllIssues&curIssueID=jpdc;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  fjournal =     "Journal of Parallel and Distributed Computing",
  journal-URL =  "http://www.sciencedirect.com/science/journal/07437315",
  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",
}

@Article{Mane:1996:SJP,
  author =       "I. Mane",
  title =        "Survey of the {Java} programming language",
  journal =      j-ELECTRONIK,
  volume =       "45",
  number =       "17",
  pages =        "84--87",
  day =          "20",
  month =        "????",
  year =         "1996",
  CODEN =        "EKRKAR",
  ISSN =         "0013-5658",
  bibdate =      "Sat Mar 15 08:49:09 MST 1997",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  classcodes =   "C6140D (High level languages); C6150C (Compilers,
                 interpreters and other processors)",
  countrypub =   "Germany",
  fjournal =     "Elektronik",
  keywords =     "fixed; high level languages; Java programming
                 language; memory partitions; multi-threading; program
                 compilers; source code compiler",
  language =     "German",
  treatment =    "G General Review",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://www.javaworld.com/javaworld/jw-07-1996/jw-07-mcmanis.htm",
  acknowledgement = ack-nhfb,
}

@Article{Mikschl:1996:MMS,
  author =       "A. Mikschl and W. Datum",
  title =        "{MSparc}: {A} Multithreaded {Sparc}",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1124",
  pages =        "461--??",
  year =         "1996",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Tue Oct 29 14:12:39 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  price =        "US\$29.95",
  URL =          "http://www.amazon.com/exec/obidos/ASIN/1565921151/ref=sim_books/002-4892305-5599452;
                 http://www.oreilly.com/catalog/pthread",
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  keywords =     "operating systems (computers); UNIX (computer file)",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:17:23 MST 2003",
  bibsource =    "http://portal.acm.org/; http://www.acm.org/pubs/toc/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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 (print), 1096-0848 (electronic)",
  ISSN-L =       "0743-7315",
  bibdate =      "Thu Mar 9 09:18:59 MST 2000",
  bibsource =    "http://www.idealibrary.com/servlet/useragent?func=showAllIssues&curIssueID=jpdc;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  fjournal =     "Journal of Parallel and Distributed Computing",
  journal-URL =  "http://www.sciencedirect.com/science/journal/07437315",
  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{Ruddock:1996:MPG,
  author =       "David E. Ruddock and Balakrishnan Dasarathy",
  title =        "Multithreading Programs: Guidelines for {DCE}
                 Applications",
  journal =      j-IEEE-SOFTWARE,
  volume =       "13",
  number =       "1",
  pages =        "80--90",
  month =        jan,
  year =         "1996",
  CODEN =        "IESOEG",
  ISSN =         "0740-7459 (print), 0740-7459 (electronic)",
  ISSN-L =       "0740-7459",
  bibdate =      "Sat Jan 25 07:35:26 MST 1997",
  bibsource =    "Compendex database;
                 http://www.math.utah.edu/pub/tex/bib/ieeesoft.bib;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Bellcore",
  affiliationaddress = "Piscataway, NJ, USA",
  classification = "722.2; 722.4; 723.1; 723.2; 723.3",
  fjournal =     "IEEE Software",
  journal-URL =  "http://www.computer.org/portal/web/csdl/magazines/software",
  journalabr =   "IEEE Software",
  keywords =     "Application programming interfaces; Client server
                 architecture; Computer aided software engineering;
                 Computer operating systems; Computer programming
                 languages; Concurrency control; Data communication
                 systems; Data structures; Distributed computer systems;
                 Distributed computing environment; Multithreading;
                 Network services; Remote procedure call; Security of
                 data; Synchronization; Telecommunication services; User
                 interfaces",
}

@InProceedings{Sah:1996:PIS,
  author =       "A. Sah and K. Brown and E. Brewer",
  title =        "Programming the {Internet} from the server-side with
                 {Tcl} and {Audience1}",
  crossref =     "USENIX:1996:ATT",
  pages =        "235--??, 183--188",
  year =         "1996",
  bibdate =      "Sat Mar 15 08:49:09 MST 1997",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  classcodes =   "C6150N (Distributed systems software); C6115
                 (Programming support); C6110 (Systems analysis and
                 programming); C6140D (High level languages); C7230
                 (Publishing and reproduction); C7250N (Front end
                 systems for online searching)",
  conflocation = "Monterey, CA, USA; 10--13 July 1996",
  conftitle =    "Proceedings of 4th Annual Tcl/Tk Workshop '96",
  corpsource =   "Inktomi Corp., Berkeley, CA, USA",
  keywords =     "applications; Audience1; authoring languages;
                 client-server; client-server systems; client-side
                 languages; electronic; end-; extension library; HotBot
                 search engine; HotWired; Inktomi; Internet; mass
                 customization features; MTtcl; multi-threaded Tcl;
                 online front-ends; programming; publishing; server
                 languages; server-side Internet programming; software
                 libraries; to-end publishing tool; World Wide Web",
  treatment =    "P Practical",
}

@Article{Schmidt:1996:CAPa,
  author =       "D. C. Schmidt and S. Vinoski",
  title =        "Comparing alternative programming techniques for
                 multithreaded servers",
  journal =      j-C-PLUS-PLUS-REPORT,
  volume =       "8",
  number =       "2",
  pages =        "50--59",
  month =        feb,
  year =         "1996",
  CODEN =        "CRPTE7",
  ISSN =         "1040-6042",
  bibdate =      "Tue Mar 25 13:34:48 MST 1997",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  classcodes =   "C6150N (Distributed systems software); C6110J (Object-
                 oriented programming); C6160 (Database management
                 systems (DBMS)); C6140D (High level languages)",
  corpsource =   "Washington Univ., St. Louis, MO, USA",
  fjournal =     "C++ Report",
  keywords =     "applications; C; C language; C++; client-server
                 systems; CORBA; database management; desktop client;
                 financial data processing; investment brokers;
                 languages; multithreaded servers; multithreaded
                 systems; object-oriented; object-oriented programming;
                 programming; query processing; stock prices; stock
                 quote database; synchronization; systems; wrappers",
  treatment =    "P Practical",
}

@Article{Schmidt:1996:CAPb,
  author =       "D. C. Schmidt and S. Vinoski",
  title =        "Comparing alternative programming techniques for
                 multithreaded {CORBA} servers",
  journal =      j-C-PLUS-PLUS-REPORT,
  volume =       "8",
  number =       "4",
  pages =        "56--66",
  month =        apr,
  year =         "1996",
  CODEN =        "CRPTE7",
  ISSN =         "1040-6042",
  bibdate =      "Tue Mar 25 13:34:48 MST 1997",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  classcodes =   "C6110J (Object-oriented programming); C6110P (Parallel
                 programming); C6140D (High level languages)",
  corpsource =   "Washington Univ., St. Louis, MO, USA",
  fjournal =     "C++ Report",
  keywords =     "C language; complexity; distributed multithreaded
                 applications; multithreaded CORBA servers;
                 object-oriented programming; parallel; programming;
                 programming techniques",
  treatment =    "P Practical",
}

@Article{Schmidt:1996:CAPc,
  author =       "D. C. Schmidt and S. Vinoski",
  title =        "Comparing alternative programming techniques for
                 multithreaded {CORBA} servers",
  journal =      j-C-PLUS-PLUS-REPORT,
  volume =       "8",
  number =       "7",
  pages =        "47--56",
  month =        jul,
  year =         "1996",
  CODEN =        "CRPTE7",
  ISSN =         "1040-6042",
  bibdate =      "Tue Mar 25 13:34:48 MST 1997",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  classcodes =   "C6110J (Object-oriented programming); C6150N
                 (Distributed systems software); C5690 (Other data
                 communication equipment and techniques); C6110P
                 (Parallel programming)",
  corpsource =   "Washington Univ., St. Louis, MO, USA",
  fjournal =     "C++ Report",
  keywords =     "alternative programming techniques; C; C++ wrappers;
                 concurrency model; CORBA; multithreaded CORBA;
                 multithreaded stock quote servers; network servers;
                 object-oriented programming; parallel; programming;
                 servers; thread per request; thread per session model;
                 thread pool",
  treatment =    "P Practical",
}

@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 (print), 1096-0848 (electronic)",
  ISSN-L =       "0743-7315",
  bibdate =      "Thu Mar 9 09:19:00 MST 2000",
  bibsource =    "http://www.idealibrary.com/servlet/useragent?func=showAllIssues&curIssueID=jpdc;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  fjournal =     "Journal of Parallel and Distributed Computing",
  journal-URL =  "http://www.sciencedirect.com/science/journal/07437315",
  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{Sigmund:1996:IBM,
  author =       "U. Sigmund and T. Ungerer",
  title =        "Identifying Bottlenecks in a Multithreaded Superscalar
                 Microprocessor",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1124",
  pages =        "797--??",
  year =         "1996",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Tue Oct 29 14:12:39 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
}

@InProceedings{Skjellum:1996:TTM,
  author =       "A. Skjellum and B. Protopopov and S. Hebert",
  title =        "A thread taxonomy for {MPI}",
  crossref =     "IEEE:1996:PSM",
  pages =        "50--57",
  year =         "1996",
  bibdate =      "Sat Apr 19 16:34:54 MDT 1997",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  classification = "C6110B (Software engineering techniques); C6110F
                 (Formal methods); C6150E (General utility programs);
                 C6150J (Operating systems); C6150N (Distributed systems
                 software)",
  conftitle =    "Proceedings. Second MPI Developer's Conference",
  corpsource =   "Dept. of Comput. Sci., Mississippi State Univ., MS,
                 USA",
  keywords =     "API extensions; application program interfaces;
                 Channel Device; computational unit; fine-grain
                 concurrency; formal specification; message passing;
                 minimal portable thread management; MPI; MPICH;
                 multi-threaded thread-safe ADI; non-thread-safe MPI
                 call semantics; resource container; software
                 portability; synchronisation; synchronization
                 mechanisms; thread models; thread safety; thread
                 taxonomy; user-level mechanism; utility programs;
                 Windows NT version",
  sponsororg =   "IEEE Comput. Soc. Tech. Committee on Distributed
                 Process",
  treatment =    "P Practical",
}

@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 (print), 1096-0848 (electronic)",
  ISSN-L =       "0743-7315",
  bibdate =      "Thu Mar 9 09:19:00 MST 2000",
  bibsource =    "http://www.idealibrary.com/servlet/useragent?func=showAllIssues&curIssueID=jpdc;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  fjournal =     "Journal of Parallel and Distributed Computing",
  journal-URL =  "http://www.sciencedirect.com/science/journal/07437315",
  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 (print), 1943-5851 (electronic)",
  ISSN-L =       "0163-5964",
  bibdate =      "Fri May 12 09:40:47 MDT 2006",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGARCH Computer Architecture News",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J89",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  keywords =     "Memory, Virtual (Computer science); Transaction
                 systems (Computer systems)",
}

@Article{Vinoski:1996:DCD,
  author =       "S. Vinoski and D. C. Schmidt",
  title =        "Distributed callbacks and decoupled communication in
                 {CORBA}",
  journal =      j-C-PLUS-PLUS-REPORT,
  volume =       "8",
  number =       "9",
  pages =        "48--56, 77",
  month =        oct,
  year =         "1996",
  CODEN =        "CRPTE7",
  ISSN =         "1040-6042",
  bibdate =      "Tue Mar 25 13:34:48 MST 1997",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  classcodes =   "C6150N (Distributed systems software); C6110J (Object-
                 oriented programming)",
  corpsource =   "Hewlett--Packard's Distributed Comput. Program,
                 Chelmsford, MA, USA",
  fjournal =     "C++ Report",
  keywords =     "client-server systems; client/server; concurrency
                 control; concurrency models; consumers; CORBA;
                 decoupled communication; decoupled peer-to-peer;
                 distributed callbacks; distributed object computing
                 systems; distributed stock quoting; multithreaded;
                 object-oriented; OMG Events object service;
                 programming; relationships; request communication;
                 response communication; server applications; suppliers;
                 systems",
  treatment =    "P Practical",
}

@Article{Vlassov:1996:AMM,
  author =       "V. Vlassov and L.-E. Thorelli",
  title =        "Analytical Models of Multithreading with Data
                 Prefetching",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1124",
  pages =        "714--??",
  year =         "1996",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Tue Oct 29 14:12:39 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
}

@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 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:17:20 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Dept. of Comput. Sci., Indiana Univ., Bloomington, IN,
                 USA",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
}

@Article{Wismuller:1996:IDP,
  author =       "Roland Wism{\"u}ller and Michael Oberhuber and Johann
                 Krammer and Olav Hansen",
  title =        "Interactive debugging and performance analysis of
                 massively parallel applications",
  journal =      j-PARALLEL-COMPUTING,
  volume =       "22",
  number =       "3",
  pages =        "415--442",
  day =          "29",
  month =        apr,
  year =         "1996",
  CODEN =        "PACOEJ",
  ISSN =         "0167-8191 (print), 1872-7336 (electronic)",
  ISSN-L =       "0167-8191",
  bibdate =      "Fri Aug 6 10:14:54 MDT 1999",
  bibsource =    "Compendex database;
                 http://www.elsevier.com/cgi-bin/cas/tree/store/parco/cas_free/browse/browse.cgi?year=1996&volume=22&issue=3;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://www.elsevier.com/cgi-bin/cas/tree/store/parco/cas_sub/browse/browse.cgi?year=1996&volume=22&issue=3&aid=1049",
  acknowledgement = ack-nhfb,
  affiliation =  "Inst f{\"u}r Informatik der Technischen
                 Universit{\"a}t M{\"u}nchen",
  affiliationaddress = "M{\"u}nchen, Ger",
  classification = "722.2; 722.4; 723.1; 723.2; 723.5; C6110P (Parallel
                 programming); C6115 (Programming support); C6150G
                 (Diagnostic, testing, debugging and evaluating
                 systems)",
  corpsource =   "Inst. f{\"u}r Inf., Tech. Univ. M{\"u}nchen, Germany",
  fjournal =     "Parallel Computing",
  journal-URL =  "http://www.sciencedirect.com/science/journal/01678191",
  journalabr =   "Parallel Comput",
  keywords =     "applications; attributed measurements; Codes
                 (symbols); Computer debugging; Computer programming;
                 Computer simulation; debugger; debugging; DETOP;
                 Distributed computer systems; distributed evaluation;
                 Distributed online monitoring system; environments;
                 Interactive computer systems; Interactive debugging;
                 intrusion; massively parallel; Massively parallel
                 applications; minimal; monitoring system; multithreaded
                 programming models; Online systems; parallel; Parallel
                 debugger; Parallel processing systems; parallel
                 programming; Parallelization; PATOP; Performance;
                 performance analysis; Performance analysis; performance
                 analyzer; performance bottlenecks; Personal computers;
                 PowerPC; program debugging; programming; scalability;
                 software; software performance evaluation;
                 Supercomputers; tools; usability; User interfaces",
  treatment =    "P Practical",
}

@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;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Dr. Dobb's Journal of Software Tools",
}

@Article{Yoo:1996:CAA,
  author =       "H. Chuck Yoo",
  title =        "Comparative Analysis of Asynchronous {I/O} in
                 Multithreaded {UNIX}",
  journal =      j-SPE,
  volume =       "26",
  number =       "9",
  pages =        "987--997",
  month =        sep,
  year =         "1996",
  CODEN =        "SPEXBL",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Thu Jul 29 15:11:03 MDT 1999",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 http://www.math.utah.edu/pub/tex/bib/spe.bib;
                 http://www3.interscience.wiley.com/journalfinder.html",
  URL =          "http://www3.interscience.wiley.com/cgi-bin/abstract?ID=16832",
  acknowledgement = ack-nhfb,
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  series =       "CNAM. Syntheses informatiques",
  acknowledgement = ack-nhfb,
  keywords =     "Parall{\`e}lisme (informatique)",
  language =     "French",
}

@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 (print), 1938-3827 (electronic)",
  ISSN-L =       "1075-3583",
  bibdate =      "Fri Oct 9 08:35:26 MDT 1998",
  bibsource =    "http://noframes.linuxjournal.com/lj-issues/issue34/index.html;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Linux journal",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J508",
}

@Article{Anonymous:1997:TWP,
  author =       "Anonymous",
  title =        "Tech Watch --- Pattern-recognition system. Piecing
                 together history. {3D} semiconductor simulation.
                 Multi-threaded architecture",
  journal =      j-CG-WORLD,
  volume =       "20",
  number =       "9",
  pages =        "15--??",
  month =        sep,
  year =         "1997",
  CODEN =        "CGWODH",
  ISSN =         "0271-4159",
  bibdate =      "Sat Nov 7 10:32:27 MST 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Graphics World",
}

@Article{Arvind:1997:MSC,
  author =       "Arvind and A. Caro and J.-W. Maessen and S. Aditya",
  title =        "A Multithreaded Substrate and Compilation Model for
                 the Implicitly Parallel Language {pH}",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1239",
  pages =        "519--??",
  year =         "1997",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Fri Aug 22 11:59:49 MDT 1997",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
}

@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",
  ISSN-L =       "1040-3108",
  bibdate =      "Tue Sep 7 06:06:28 MDT 1999",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 http://www3.interscience.wiley.com/journalfinder.html",
  URL =          "http://www3.interscience.wiley.com/cgi-bin/abstract?ID=13852;
                 http://www3.interscience.wiley.com/cgi-bin/fulltext?ID=13852&PLACEBO=IE.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Concurrency, practice and experience",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  ISSN-L =       "1040-3108",
  bibdate =      "Tue Sep 7 06:06:35 MDT 1999",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 http://www3.interscience.wiley.com/journalfinder.html",
  note =         "Special Issue: Java for computational science and
                 engineering --- simulation and modeling II.",
  URL =          "http://www3.interscience.wiley.com/cgi-bin/abstract?ID=13819;
                 http://www3.interscience.wiley.com/cgi-bin/fulltext?ID=13819&PLACEBO=IE.pdf",
  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",
  fjournal =     "Concurrency, practice and experience",
  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{Bordawekar:1997:EEH,
  author =       "Rajesh Bordawekar and Steven Landherr and Don Capps
                 and Mark Davis",
  title =        "Experimental evaluation of the {Hewlett--Packard}
                 {Exemplar} file system",
  journal =      j-SIGMETRICS,
  volume =       "25",
  number =       "3",
  pages =        "21--28",
  month =        dec,
  year =         "1997",
  CODEN =        "????",
  DOI =          "http://doi.acm.org/10.1145/270900.270904",
  ISSN =         "0163-5999 (print), 1557-9484 (electronic)",
  ISSN-L =       "0163-5999",
  bibdate =      "Thu Jun 26 11:24:50 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  abstract =     "This article presents results from an experimental
                 evaluation study of the HP Exemplar file system. Our
                 experiments consist of simple micro-benchmarks that
                 study the impact of various factors on the file system
                 performance. These factors include I/O request/buffer
                 sizes, vectored/non-vectored access patterns,
                 read-ahead policies, multi-threaded (temporally
                 irregular) requests, and architectural issues (cache
                 parameters, NUMA behavior, etc.). Experimental results
                 indicate that the Exemplar file system provides high
                 I/O bandwidth, both for single- and multi-threaded
                 applications. The buffer cache, with prioritized buffer
                 management and large buffer sizes, is effective in
                 exploiting temporal and spatial access localities. The
                 performance of non-contiguous accesses can be improved
                 by either using vectored I/O interfaces or tuning the
                 read-ahead facilities. The file system performance
                 depends on the relative locations of the computing
                 threads and the file system, and also on various
                 Exemplar design parameters such as the NUMA
                 architecture, TLB/data cache management and paging
                 policies.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGMETRICS Performance Evaluation Review",
  journal-URL =  "http://portal.acm.org/toc.cfm?id=J618",
}

@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 (print), 1558-190X (electronic)",
  ISSN-L =       "1070-9924",
  bibdate =      "Sat Jan 9 08:57:23 MST 1999",
  bibsource =    "http://www.computer.org/cse/cs1998;
                 http://www.math.utah.edu/pub/tex/bib/ieeecomputscieng.bib;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://dlib.computer.org/cs/books/cs1997/pdf/c4075.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Computational Science \& Engineering",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=99",
  remark =       "No DOI available: article missing from IEEE Xplore
                 database.",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Dr. Dobb's Journal of Software Tools",
}

@Article{Cenciarelli:1997:SMJ,
  author =       "P. Cenciarelli and A. Knapp and B. Reus and M.
                 Wirsing",
  title =        "From sequential to multi-threaded {Java}: An
                 event-based operational semantics",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1349",
  pages =        "75--??",
  year =         "1997",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Tue Apr 28 08:51:33 MDT 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/java.bib;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
}

@Article{Cenciarelli:1997:SMT,
  author =       "P. Cenciarelli and A. Knapp and B. Reus and M.
                 Wirsing",
  title =        "From sequential to multi-threaded {Java}: An
                 event-based operational semantics",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1349",
  pages =        "75--??",
  year =         "1997",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Tue Apr 28 08:51:33 MDT 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
}

@InProceedings{Dou:1997:ISV,
  author =       "Yong Dou and Zhengbing Pang and Xingming Zhou",
  title =        "Implementing a software virtual shared memory on
                 {PVM}",
  crossref =     "IEEE:1997:APD",
  pages =        "??--??",
  year =         "1997",
  bibdate =      "Wed Apr 16 06:39:19 MDT 1997",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  classification = "C6110P (Parallel programming); C6115 (Programming
                 support); C6120 (File organisation); C6140D (High level
                 languages); C7430 (Computer engineering)",
  corpsource =   "Dept. of Comput. Sci., Changsha Inst. of Technol.,
                 Hunan, China",
  keywords =     "distributed; FORTRAN; FORTRAN language; GKD-VSM;
                 memory environments; multithread scheme; parallel
                 programming; parallel programming model; Prefetch and
                 Poststore; programming environments; PVM; shared
                 memory; software overhead; software virtual shared
                 memory; synchronisation; user-level; virtual machines;
                 virtual storage",
  treatment =    "P Practical",
}

@Article{Eggers:1997:SMP,
  author =       "Susan J. Eggers and Joel S. Emer and Henry M. Levy and
                 Jack L. Lo and Rebecca L. Stamm and Dean M. Tullsen",
  title =        "Simultaneous Multithreading: a Platform for
                 Next-Generation Processors",
  journal =      j-IEEE-MICRO,
  volume =       "17",
  number =       "5",
  pages =        "12--19",
  month =        sep # "\slash " # oct,
  year =         "1997",
  CODEN =        "IEMIDZ",
  DOI =          "http://dx.doi.org/10.1109/40.621209",
  ISSN =         "0272-1732 (print), 1937-4143 (electronic)",
  ISSN-L =       "0272-1732",
  bibdate =      "Thu Dec 14 06:08:58 MST 2000",
  bibsource =    "http://www.computer.org/micro/mi1997/;
                 http://www.math.utah.edu/pub/tex/bib/ieeemicro.bib;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 Science Citation Index database (1980--2000)",
  URL =          "http://dlib.computer.org/mi/books/mi1997/pdf/m5012.pdf;
                 http://www.computer.org/micro/mi1997/m5012abs.htm",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Micro",
  journal-URL =  "http://www.computer.org/csdl/mags/mi/index.html",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Wed Dec 3 16:28:05 MST 1997",
  bibsource =    "http://www.acm.org/pubs/toc/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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.",
}

@Article{Fillo:1997:MMM,
  author =       "Marco Fillo and Stephen W. Keckler and William J.
                 Dally and Nicholas P. Carter and Andrew Chang and
                 Yevgeny Gurevich and Whay S. Lee",
  title =        "The {M}-Machine Multicomputer",
  journal =      j-INT-J-PARALLEL-PROG,
  volume =       "25",
  number =       "3",
  pages =        "183--212",
  month =        jun,
  year =         "1997",
  CODEN =        "IJPPE5",
  ISSN =         "0885-7458 (print), 1573-7640 (electronic)",
  ISSN-L =       "0885-7458",
  bibdate =      "Tue Apr 7 18:25:25 MDT 1998",
  bibsource =    "Compendex database;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "Massachusetts Inst of Technology",
  affiliationaddress = "Cambridge, MA, USA",
  classification = "714.2; 722; 722.1; 722.4; 723; 723.1",
  fjournal =     "International Journal of Parallel Programming",
  journal-URL =  "http://link.springer.com/journal/16",
  journalabr =   "Int J Parallel Program",
  keywords =     "Buffer storage; Computer architecture; Data storage
                 equipment; Microprocessor chips; Multiprogramming;
                 Multithread processors; On chip cache; Parallel
                 processing systems; Synchronization; Thread level
                 parallelism; User interfaces",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  keywords =     "Multiprocessors; Parallel processing (Electronic
                 computers)",
}

@Article{Forsell:1997:MMV,
  author =       "M. Forsell",
  title =        "{MTAC} --- {A} Multithreaded {VLIW} Architecture for
                 {PRAM} Simulation",
  journal =      j-J-UCS,
  volume =       "3",
  number =       "9",
  pages =        "1037--1055",
  day =          "28",
  month =        sep,
  year =         "1997",
  CODEN =        "????",
  ISSN =         "0948-695X (print), 0948-6968 (electronic)",
  ISSN-L =       "0948-6968",
  bibdate =      "Wed Mar 4 15:32:49 MST 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://medoc.springer.de:8000/jucs/jucs_3_9/mtac_a_multithreaded_vliw",
  acknowledgement = ack-nhfb,
  fjournal =     "J.UCS: Journal of Universal Computer Science",
  journal-URL =  "http://www.jucs.org/jucs",
}

@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 (print), 1096-0848 (electronic)",
  ISSN-L =       "0743-7315",
  bibdate =      "Thu Mar 9 09:19:01 MST 2000",
  bibsource =    "http://www.idealibrary.com/servlet/useragent?func=showAllIssues&curIssueID=jpdc;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  fjournal =     "Journal of Parallel and Distributed Computing",
  journal-URL =  "http://www.sciencedirect.com/science/journal/07437315",
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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 (print), 1096-0848 (electronic)",
  ISSN-L =       "0743-7315",
  bibdate =      "Thu Mar 9 09:19:01 MST 2000",
  bibsource =    "http://www.idealibrary.com/servlet/useragent?func=showAllIssues&curIssueID=jpdc;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  fjournal =     "Journal of Parallel and Distributed Computing",
  journal-URL =  "http://www.sciencedirect.com/science/journal/07437315",
  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",
}

@Article{Goossens:1997:MVC,
  author =       "B. Goossens",
  title =        "A Multithreaded Vector Co-processor",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1277",
  pages =        "311--??",
  year =         "1997",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Tue Apr 28 08:51:33 MDT 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
}

@Article{Gorton:1997:GEI,
  author =       "Ian Gorton and Innes E. Jelly",
  title =        "{Guest Editors} Introduction: Software Engineering for
                 Parallel and Distributed Systems: Challenges and
                 Opportunities",
  journal =      j-IEEE-CONCURR,
  volume =       "5",
  number =       "3",
  pages =        "12--15",
  month =        jul # "\slash " # sep,
  year =         "1997",
  CODEN =        "IECMFX",
  ISSN =         "1092-3063 (print), 1558-0849 (electronic)",
  ISSN-L =       "1092-3063",
  bibdate =      "Tue Jan 16 06:04:48 MST 2001",
  bibsource =    "Compendex database;
                 http://www.computer.org/concurrency/pd1997/;
                 http://www.math.utah.edu/pub/tex/bib/ieeeconcurrency.bib;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://dlib.computer.org/pd/books/pd1997/pdf/p3012.pdf",
  acknowledgement = ack-nhfb,
  affiliation =  "Commonwealth Science and Industrial Research
                 Organization",
  affiliationaddress = "Aust",
  classification = "722; 722.4; 723; 723.1; 723.3",
  fjournal =     "IEEE Concurrency",
  journalabr =   "IEEE Concurrency",
  keywords =     "Computer workstations; Concurrency control; Fault
                 tolerant computer systems; High performance computing;
                 Multithreaded servers; Parallel processing systems;
                 Program debugging; Program diagnostics; Software
                 engineering; World wide web",
}

@Article{Gunther:1997:MDF,
  author =       "B. K. Gunther",
  title =        "Multithreading with distributed functional units",
  journal =      j-IEEE-TRANS-COMPUT,
  volume =       "46",
  number =       "4",
  pages =        "399--411",
  month =        apr,
  year =         "1997",
  CODEN =        "ITCOB4",
  DOI =          "http://dx.doi.org/10.1109/12.588034",
  ISSN =         "0018-9340 (print), 1557-9956 (electronic)",
  ISSN-L =       "0018-9340",
  bibdate =      "Wed Jul 6 10:06:22 MDT 2011",
  bibsource =    "http://www.computer.org/tc/;
                 http://www.math.utah.edu/pub/tex/bib/ieeetranscomput1990.bib;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=588034",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Transactions on Computers",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=12",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  note =         "Shipping list number 98-0847-M.",
  series =       "NASA contractor report",
  acknowledgement = ack-nhfb,
  keywords =     "operating systems (computers); parallel computers;
                 parallel processing (computers); threads",
}

@Article{Haines:1997:DPP,
  author =       "Matthew Haines and Piyush Mehrotra and David Cronk",
  title =        "Data-parallel programming in a multithreaded
                 environment",
  journal =      j-SCI-PROG,
  volume =       "6",
  number =       "2",
  pages =        "187--200",
  month =        "Summer",
  year =         "1997",
  CODEN =        "SCIPEV",
  ISSN =         "1058-9244 (print), 1875-919X (electronic)",
  ISSN-L =       "1058-9244",
  bibdate =      "Thu Mar 28 12:27:27 MST 2002",
  bibsource =    "Compendex database;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Scientific Programming",
  journal-URL =  "http://iospress.metapress.com/content/1058-9244",
}

@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 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:17:39 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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{Hendren:1997:CCE,
  author =       "Laurie J. Hendren and Xinan Tang and Yingchun Zhu and
                 Shereen Ghobrial and Guang R. Gao and Xun Xue and
                 Haiying Cai and Pierre Ouellet",
  title =        "Compiling {C} for the {EARTH} Multithreaded
                 Architecture",
  journal =      j-INT-J-PARALLEL-PROG,
  volume =       "25",
  number =       "4",
  pages =        "305--338",
  month =        aug,
  year =         "1997",
  CODEN =        "IJPPE5",
  ISSN =         "0885-7458 (print), 1573-7640 (electronic)",
  ISSN-L =       "0885-7458",
  bibdate =      "Tue Apr 7 18:25:25 MDT 1998",
  bibsource =    "Compendex database;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  affiliation =  "McGill Univ",
  affiliationaddress = "Montreal, Que, Can",
  classification = "722; 722.4; 723; 723.1; 723.1.1; 723.2",
  fjournal =     "International Journal of Parallel Programming",
  journal-URL =  "http://link.springer.com/journal/16",
  journalabr =   "Int J Parallel Program",
  keywords =     "C (programming language); Codes (symbols); Computer
                 architecture; earth C programming language;
                 Multithreaded architecture; Parallel processing
                 systems; Program compilers; Program translators",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Dr. Dobb's Journal of Software Tools",
}

@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 (paperback)",
  ISBN-13 =      "978-0-471-18012-8 (paperback)",
  LCCN =         "QA76.73.C153H84 1997",
  bibdate =      "Fri Aug 7 09:34:36 MDT 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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)",
}

@Article{Kacsuk:1997:MIC,
  author =       "P. Kacsuk and M. Amamiya",
  title =        "A Multithreaded Implementation Concept of {Prolog} on
                 {Datarol-II} Machine",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1336",
  pages =        "91--??",
  year =         "1997",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Tue Apr 28 08:51:33 MDT 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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,
  fjournal =     "Dr. Dobb's Journal of Software Tools",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "C/C++ Users Journal",
}

@Article{Krieger:1997:HPO,
  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 (print), 1557-7333 (electronic)",
  ISSN-L =       "0734-2071",
  bibdate =      "Wed Jan 13 18:36:53 MST 1999",
  bibsource =    "http://www.acm.org/pubs/contents/journals/tocs/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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,
  fjournal =     "ACM Transactions on Computer Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J774",
  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.",
}

@Article{Kwak:1997:VMN,
  author =       "H. Kwak and B. Lee and A. R. Hurson",
  title =        "Viability of Multithreading on Networks of
                 Workstations",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1277",
  pages =        "216--??",
  year =         "1997",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Tue Apr 28 08:51:33 MDT 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "C/C++ Users Journal",
}

@Article{Leiserson:1997:AAM,
  author =       "C. E. Leiserson",
  title =        "Algorithmic analysis of multithreaded algorithms",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1350",
  pages =        "132--??",
  year =         "1997",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Tue Apr 28 08:51:33 MDT 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
}

@Article{Lo:1997:CTL,
  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 (print), 1557-7333 (electronic)",
  ISSN-L =       "0734-2071",
  bibdate =      "Wed Jan 13 18:36:53 MST 1999",
  bibsource =    "http://www.acm.org/pubs/contents/journals/tocs/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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,
  fjournal =     "ACM Transactions on Computer Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J774",
  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.",
}

@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 (print), 1557-7333 (electronic)",
  ISSN-L =       "0734-2071",
  bibdate =      "Wed Jan 13 18:36:53 MST 1999",
  bibsource =    "http://www.acm.org/pubs/contents/journals/tocs/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 http://www.math.utah.edu/pub/tex/bib/tocs.bib",
  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,
  fjournal =     "ACM Transactions on Computer Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J774",
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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{Loeffler:1997:MJF,
  author =       "G. Loeffler",
  title =        "A Multithreaded {Java} Framework for Solving Linear
                 Elliptic Partial Differential Equations in {3D}",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1343",
  pages =        "121--??",
  year =         "1997",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Tue Apr 28 08:51:33 MDT 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/java.bib;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
}

@Article{Lundberg:1997:BMC,
  author =       "L. Lundberg",
  title =        "Bounding the Minimal Completion Time of Static
                 Mappings of Multithreaded {Solaris} Programs",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1300",
  pages =        "1034--??",
  year =         "1997",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Tue Apr 28 08:51:33 MDT 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
}

@Article{Mateosian:1997:MNT,
  author =       "R. M. Mateosian",
  title =        "Micro News: {DARPA} aids {Tera MTA}",
  journal =      j-IEEE-MICRO,
  volume =       "17",
  number =       "5",
  pages =        "5--6",
  month =        sep # "\slash " # oct,
  year =         "1997",
  CODEN =        "IEMIDZ",
  DOI =          "http://dx.doi.org/10.1109/MM.1997.621216",
  ISSN =         "0272-1732 (print), 1937-4143 (electronic)",
  ISSN-L =       "0272-1732",
  bibdate =      "Thu Dec 14 06:08:58 MST 2000",
  bibsource =    "http://www.computer.org/micro/mi1997/;
                 http://www.math.utah.edu/pub/tex/bib/ieeemicro.bib;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 Science Citation Index database (1980--2000)",
  URL =          "http://dlib.computer.org/mi/books/mi1997/pdf/m5005.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Micro",
  journal-URL =  "http://www.computer.org/csdl/mags/mi/index.html",
}

@Article{McCarthy:1997:MTI,
  author =       "Martin McCarthy",
  title =        "Multi-Threading: Intermediate Concepts",
  journal =      j-LINUX-J,
  volume =       "36",
  pages =        "??--??",
  month =        apr,
  year =         "1997",
  CODEN =        "LIJOFX",
  ISSN =         "1075-3583 (print), 1938-3827 (electronic)",
  ISSN-L =       "1075-3583",
  bibdate =      "Fri Oct 9 08:35:26 MDT 1998",
  bibsource =    "http://noframes.linuxjournal.com/lj-issues/issue36/index.html;
                 http://www.math.utah.edu/pub/tex/bib/linux-journal.bib;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "ftp://ftp.ssc.com/pub/lj/listings/issue36/2121.tgz",
  abstract =     "This second part of a series on Multi-threading deals
                 with how to use C programs with one of the POSIX
                 packages available for Linux to handle signals and
                 concurrent threads in global data.",
  acknowledgement = ack-nhfb,
  fjournal =     "Linux Journal",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J508",
}

@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 (print), 1938-3827 (electronic)",
  ISSN-L =       "1075-3583",
  bibdate =      "Fri Oct 9 08:35:26 MDT 1998",
  bibsource =    "http://noframes.linuxjournal.com/lj-issues/issue34/index.html;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  abstract =     "A primer on multi-threading: the process whereby Linux
                 manages several tasks simultaneously.",
  acknowledgement = ack-nhfb,
  fjournal =     "Linux journal",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J508",
}

@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/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://www.javaworld.com/javaworld/jw-07-1997/jw-07-speedway.htm",
  acknowledgement = ack-nhfb,
}

@Article{Moreno:1997:PMP,
  author =       "E. D. Moreno and S. T. Kofuji and M. H. Cintra",
  title =        "Prefetching and Multithreading Performance in
                 Bus-Based Multiprocessors with {Petri} Nets",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1300",
  pages =        "1017--??",
  year =         "1997",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Tue Apr 28 08:51:33 MDT 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
}

@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 (print), 1096-0848 (electronic)",
  ISSN-L =       "0743-7315",
  bibdate =      "Thu Mar 9 09:19:02 MST 2000",
  bibsource =    "http://www.idealibrary.com/servlet/useragent?func=showAllIssues&curIssueID=jpdc;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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,
  fjournal =     "Journal of Parallel and Distributed Computing",
  journal-URL =  "http://www.sciencedirect.com/science/journal/07437315",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  keywords =     "Multiprocessors; Parallel processing (Electronic
                 computers)",
}

@Article{Onion:1997:MM,
  author =       "F. Onion",
  title =        "Multithreading in {MFC}",
  journal =      j-C-PLUS-PLUS-REPORT,
  volume =       "9",
  number =       "3",
  pages =        "50--53, 56",
  month =        mar,
  year =         "1997",
  CODEN =        "CRPTE7",
  ISSN =         "1040-6042",
  bibdate =      "Thu Apr 24 09:46:14 MDT 1997",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  classification = "C6110J (Object-oriented programming); C6115
                 (Programming support); C6150J (Operating systems)",
  fjournal =     "C++ Report",
  keywords =     "API calls; application program interfaces; Internet
                 queries; MFC; multiprogramming; multithreaded
                 programming; object oriented programming;
                 object-oriented programming; remote database hits;
                 software libraries; software tools; threads; user
                 interface; user interfaces; Windows",
  treatment =    "P Practical",
}

@Article{Park:1997:HPM,
  author =       "Sung-Yong Park and Salim Hariri",
  title =        "A High Performance Message Passing System for {Network
                 of Workstations}",
  journal =      j-J-SUPERCOMPUTING,
  volume =       "11",
  number =       "2",
  pages =        "159--180",
  month =        oct,
  year =         "1997",
  CODEN =        "JOSUED",
  DOI =          "http://www.springerlink.com/openurl.asp?genre=article&id=doi:10.1023/A:1007912007767",
  ISSN =         "0920-8542 (print), 1573-0484 (electronic)",
  ISSN-L =       "0920-8542",
  bibdate =      "Wed Jul 6 12:13:07 MDT 2005",
  bibsource =    "http://springerlink.metapress.com/openurl.asp?genre=issue&issn=0920-8542&volume=11&issue=2;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 http://www.wkap.nl/issuetoc.htm/0920-8542+11+2+1997",
  URL =          "http://www.springerlink.com/openurl.asp?genre=article&issn=0920-8542&volume=11&issue=2&spage=159;
                 http://www.wkap.nl/oasis.htm/149826",
  acknowledgement = ack-nhfb,
  classification = "C5620W (Other computer networks); C6150N
                 (Distributed systems software)",
  corpsource =   "Dept. of Electr. and Comput. Eng., Syracuse Univ., NY,
                 USA",
  fjournal =     "The Journal of Supercomputing",
  journal-URL =  "http://link.springer.com/journal/11227",
  keywords =     "application programming interface; asynchronous
                 transfer mode; ATM; ATM network; device driver;
                 distributed computing; high performance; message
                 passing; message-passing system; multithreaded
                 message-passing system; NCS; network of workstations;
                 NOW environment; NYNET; wide area network; wide area
                 networks",
  pubcountry =   "Netherlands",
  treatment =    "P Practical",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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 (print), 1873-1228 (electronic)",
  ISSN-L =       "0164-1212",
  bibdate =      "Wed Dec 16 08:24:49 MST 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "The Journal of systems and software",
  journal-URL =  "http://www.sciencedirect.com/science/journal/01641212",
}

@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 (print), 1557-7333 (electronic)",
  ISSN-L =       "0734-2071",
  bibdate =      "Wed Jan 13 18:36:53 MST 1999",
  bibsource =    "http://www.acm.org/pubs/contents/journals/tocs/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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,
  fjournal =     "ACM Transactions on Computer Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J774",
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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,
  fjournal =     "Dr. Dobb's Journal of Software Tools",
}

@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/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://www.javaworld.com/javaworld/jw-03-1997/jw-03-step.htm",
  acknowledgement = ack-nhfb,
}

@Article{Sime:1997:GPM,
  author =       "J. Sime",
  title =        "Guarded pointers: moving smart pointers into
                 multithreaded systems",
  journal =      j-C-PLUS-PLUS-REPORT,
  volume =       "9",
  number =       "4",
  pages =        "32--41",
  month =        apr,
  year =         "1997",
  CODEN =        "CRPTE7",
  ISSN =         "1040-6042",
  bibdate =      "Thu Apr 24 09:46:14 MDT 1997",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  classification = "C6110J (Object-oriented programming); C6120 (File
                 organisation); C6130 (Data handling techniques); C6150N
                 (Distributed systems software)",
  fjournal =     "C++ Report",
  keywords =     "abstract data types; C listings; concurrency control;
                 concurrency control pattern; data integrity; exception
                 handling; guarded pointers; multiprogramming;
                 multithreaded systems; object-oriented programming;
                 protected data resource; protection proxy pattern;
                 reference count lock; safety; smart pointers; thread
                 safety mechanisms",
  treatment =    "P Practical",
}

@Article{Sinharoy:1997:OTC,
  author =       "Balaram Sinharoy",
  title =        "Optimized Thread Creation for Processor
                 Multithreading",
  journal =      j-COMP-J,
  volume =       "40",
  number =       "6",
  pages =        "388--??",
  month =        "????",
  year =         "1997",
  CODEN =        "CMPJA6",
  ISSN =         "0010-4620 (print), 1460-2067 (electronic)",
  ISSN-L =       "0010-4620",
  bibdate =      "Wed Jul 21 09:55:15 MDT 1999",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/compj1990.bib;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 http://www3.oup.co.uk/computer_journal/Volume_40/Issue_06/Vol40_06.index.html",
  URL =          "http://www.oup.co.uk/computer_journal/Volume_40/Issue_06/Vol40_06.body.html#AbstractSinharoy;
                 http://www3.oup.co.uk/computer_journal/Volume_40/Issue_06/Vol40_06.body.html#AbstractSinharoy",
  acknowledgement = ack-nhfb,
  email-1 =      "balaram@watson.ibm.com",
  fjournal =     "The Computer Journal",
  journal-URL =  "http://comjnl.oxfordjournals.org/",
}

@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 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:17:35 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 http://www.math.utah.edu/pub/tex/bib/sigplan1990.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
}

@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 (print), 1096-0848 (electronic)",
  ISSN-L =       "0743-7315",
  bibdate =      "Thu Mar 9 09:19:02 MST 2000",
  bibsource =    "http://www.idealibrary.com/servlet/useragent?func=showAllIssues&curIssueID=jpdc;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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,
  fjournal =     "Journal of Parallel and Distributed Computing",
  journal-URL =  "http://www.sciencedirect.com/science/journal/07437315",
}

@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 (print), 1557-7317 (electronic)",
  ISSN-L =       "0001-0782",
  bibdate =      "Fri Oct 10 18:17:54 MDT 1997",
  bibsource =    "http://www.acm.org/pubs/toc/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  fjournal =     "Communications of the ACM",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J79",
  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",
  ISBN =         "0-89791-907-6",
  ISBN-13 =      "978-0-89791-907-4",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu May 13 12:37:28 MDT 1999",
  bibsource =    "http://www.acm.org/pubs/contents/proceedings/pldi/258915/index.html;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 http://www.math.utah.edu/pub/tex/bib/sigplan1990.bib",
  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.",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
}

@Article{Thompson:1997:THP,
  author =       "P. Thompson and G. Bumgardner",
  title =        "{Threads.h++}: a portable {C++} library for
                 multithreaded programming",
  journal =      j-C-PLUS-PLUS-REPORT,
  volume =       "9",
  number =       "3",
  pages =        "24--37",
  month =        mar,
  year =         "1997",
  CODEN =        "CRPTE7",
  ISSN =         "1040-6042",
  bibdate =      "Thu Apr 24 09:46:14 MDT 1997",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  classification = "C6110B (Software engineering techniques); C6110J
                 (Object-oriented programming); C6115 (Programming
                 support); C6150J (Operating systems)",
  fjournal =     "C++ Report",
  keywords =     "application development; application program
                 interfaces; C language; low-level procedural API;
                 multiprocessor machines; multiprogramming;
                 multithreaded programming; object-oriented
                 abstractions; object-oriented languages;
                 object-oriented programming; operating systems;
                 portable C++ library; responsive performance; software
                 libraries; software portability; synchronisation;
                 synchronization; thread control; thread creation;
                 Threads.h++; Web browsers",
  treatment =    "P Practical",
}

@Article{Thompson:1997:TPC,
  author =       "P. Thompson and G. Bumgardner",
  title =        "{Threads.h++}: a portable {C++} library for
                 multithreaded programming",
  journal =      j-C-PLUS-PLUS-REPORT,
  volume =       "9",
  number =       "3",
  pages =        "24--37",
  month =        mar,
  year =         "1997",
  CODEN =        "CRPTE7",
  ISSN =         "1040-6042",
  bibdate =      "Thu Apr 24 09:46:14 MDT 1997",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  classification = "C6110B (Software engineering techniques); C6110J
                 (Object-oriented programming); C6115 (Programming
                 support); C6150J (Operating systems)",
  fjournal =     "C++ Report",
  keywords =     "application development; application program
                 interfaces; C language; low-level procedural API;
                 multiprocessor machines; multiprogramming;
                 multithreaded programming; object-oriented
                 abstractions; object-oriented languages;
                 object-oriented programming; operating systems;
                 portable C++ library; responsive performance; software
                 libraries; software portability; synchronisation;
                 synchronization; thread control; thread creation;
                 Threads.h++; Web browsers",
  treatment =    "P Practical",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Dr. Dobb's Journal of Software Tools",
}

@Article{Weisz:1997:MFA,
  author =       "Russell Weisz",
  title =        "More First Aid for the Thread Impaired: Cool Ways to
                 Take Advantage of Multithreading",
  journal =      j-MICROSOFT-SYS-J,
  volume =       "12",
  number =       "7",
  pages =        "33--??",
  month =        jul,
  year =         "1997",
  CODEN =        "MSJOED",
  ISSN =         "0889-9932",
  bibdate =      "Sat Nov 7 10:33:30 MST 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Microsoft Systems Journal",
}

@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 (print), 1557-7325 (electronic)",
  ISSN-L =       "1073-0516",
  bibdate =      "Tue Jan 19 05:49:17 MST 1999",
  bibsource =    "http://www.acm.org/pubs/contents/journals/tochi/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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,
  fjournal =     "ACM Transactions on Computer-Human Interaction",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J756",
  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.",
}

@Article{Wilson:1997:BTP,
  author =       "Greg Wilson",
  title =        "Bookshelf: Threads Primer: a Guide To Multithreaded
                 Programming",
  journal =      j-IEEE-SOFTWARE,
  volume =       "14",
  number =       "5",
  pages =        "116--116",
  month =        sep # "\slash " # oct,
  year =         "1997",
  CODEN =        "IESOEG",
  ISSN =         "0740-7459 (print), 0740-7459 (electronic)",
  ISSN-L =       "0740-7459",
  bibdate =      "Mon Sep 15 22:35:10 1997",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/ieeesoft.bib;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://dlib.computer.org/so/books/so1997/pdf/s5115.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Software",
  journal-URL =  "http://www.computer.org/portal/web/csdl/magazines/software",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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:MTO,
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  price =        "US\$120.00",
  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)",
  libnote =      "Not yet in my library.",
}

@Article{Aiex:1998:CMT,
  author =       "R. M. Aiex and S. L. Martins and C. C. Ribeiro and N.
                 D. L. R. Rodriguez",
  title =        "Cooperative Multi-thread Parallel Tabu Search with an
                 Application to Circuit Partitioning",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1457",
  pages =        "310--??",
  year =         "1998",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Sat Oct 10 14:40:24 MDT 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
}

@InProceedings{Amaranth:1998:TBM,
  author =       "Paul Amaranth",
  title =        "A {Tcl}-based Multithreaded Test Harness",
  crossref =     "USENIX:1998:PSA",
  pages =        "??--??",
  year =         "1998",
  bibdate =      "Fri Oct 18 07:49:55 2002",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://db.usenix.org/publications/library/proceedings/tcl98/amaranth.html",
  acknowledgement = ack-nhfb,
}

@Article{Anonymous:1998:MS,
  author =       "Anonymous",
  title =        "Multithreaded System",
  journal =      j-IEEE-MICRO,
  volume =       "18",
  number =       "3",
  pages =        "76--76",
  month =        may # "\slash " # jun,
  year =         "1998",
  CODEN =        "IEMIDZ",
  ISSN =         "0272-1732 (print), 1937-4143 (electronic)",
  ISSN-L =       "0272-1732",
  bibdate =      "Thu Dec 14 06:08:58 MST 2000",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/ieeemicro.bib;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 Science Citation Index database (1980--2000)",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Micro",
  journal-URL =  "http://www.computer.org/csdl/mags/mi/index.html",
}

@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 (print), 1558-0814 (electronic)",
  ISSN-L =       "0018-9162",
  bibdate =      "Thu Jun 4 08:22:02 MDT 1998",
  bibsource =    "http://computer.org/computer/co1998/;
                 http://www.math.utah.edu/pub/tex/bib/computer1990.bib;
                 http://www.math.utah.edu/pub/tex/bib/java.bib;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://dlib.computer.org/co/books/co1998/pdf/r6098.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=2",
}

@Article{Ball:1998:MTA,
  author =       "Steve Ball and John Miller Crawford",
  title =        "Multi-Threaded Assignment Surprises",
  journal =      j-JAVA-REPORT,
  volume =       "3",
  number =       "??",
  pages =        "??--??",
  month =        sep,
  year =         "1998",
  CODEN =        "JREPFI",
  ISSN =         "1086-4660",
  bibdate =      "Sat Dec 26 13:52:53 1998",
  bibsource =    "http://archive.javareport.com/9809/html/from_pages/index.shtml;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://archive.javareport.com/9809/html/from_pages/ftp_col1.shtml",
  abstract =     "A volatile brew is formed by mixing assignment and
                 threads. Perils and surprises lurk within the most
                 innocent-looking statement. We expose those perils and
                 surprises and point out where you need to proceed with
                 due caution to ensure the effective use of locked
                 objects.",
  acknowledgement = ack-nhfb,
}

@Article{Bangs:1998:BOS,
  author =       "Gaurav Bangs and Peter Druschel and Jeffrey C. Mogul",
  title =        "Better operating system features for faster network
                 servers",
  journal =      j-SIGMETRICS,
  volume =       "26",
  number =       "3",
  pages =        "23--30",
  month =        dec,
  year =         "1998",
  CODEN =        "????",
  DOI =          "http://doi.acm.org/10.1145/306225.306234",
  ISSN =         "0163-5999 (print), 1557-9484 (electronic)",
  ISSN-L =       "0163-5999",
  bibdate =      "Thu Jun 26 11:27:29 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  abstract =     "Widely-used operating systems provide inadequate
                 support for large-scale Internet server applications.
                 Their algorithms and interfaces fail to efficiently
                 support either event-driven or multi-threaded servers.
                 They provide poor control over the scheduling and
                 management of machine resources, making it difficult to
                 provide robust and controlled service. We propose new
                 UNIX interfaces to improve scalability, and to provide
                 fine-grained scheduling and resource management.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGMETRICS Performance Evaluation Review",
  journal-URL =  "http://portal.acm.org/toc.cfm?id=J618",
}

@TechReport{Beebe:1998:BPA,
  author =       "Nelson H. F. Beebe",
  title =        "A Bibliography of Publications about Multithreading",
  institution =  inst-CSC,
  address =      inst-CSC:adr,
  pages =        "15",
  day =          "7",
  month =        aug,
  year =         "1998",
  bibdate =      "Sat Apr 11 10:26:14 1998",
  bibsource =    "http://www.math.utah.edu/pub/bibnet/authors/b/beebe-nelson-h-f.bib;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  note =         "This report is updated frequently.",
  URL =          "http://www.math.utah.edu/pub/tex/bib/index-table-m.html#multithreading",
}

@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), 2212-0793 (electronic)",
  ISSN-L =       "1388-3690",
  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.math.utah.edu/pub/tex/bib/multithreading.bib;
                 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,
  fjournal =     "Higher-Order and Symbolic Computation",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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)",
  ISSN-L =       "0097-5397",
  bibdate =      "Sat Dec 5 17:26:53 MST 1998",
  bibsource =    "http://epubs.siam.org/sam-bin/dbq/toclist/SICOMP/27/1;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://epubs.siam.org/sam-bin/dbq/article/25947",
  acknowledgement = ack-nhfb,
  fjournal =     "SIAM Journal on Computing",
  journal-URL =  "http://epubs.siam.org/sicomp",
}

@InProceedings{Brunett:1998:IET,
  author =       "Sharon M. Brunett and John Thornley and Marrq
                 Ellenbecker",
  title =        "An Initial Evaluation of the {Tera} Multithreaded
                 Architecture and Programming System Using the {C3I}
                 Parallel Benchmark Suite",
  crossref =     "ACM:1998:SHP",
  pages =        "??--??",
  year =         "1998",
  bibdate =      "Wed Mar 06 06:27:47 2002",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 http://www.supercomp.org/sc98/papers/",
  URL =          "http://www.supercomp.org/sc98/TechPapers/sc98_FullAbstracts/Brunett1063/Index.htm",
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://www.cs.ucsb.edu/conferences/java98/papers/javapp.pdf;
                 http://www.cs.ucsb.edu/conferences/java98/papers/javapp.ps",
  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 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Sat Oct 10 14:40:24 MDT 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  price =        "US\$39.95",
  URL =          "http://www.ora.com/catalog/multithread/;
                 http://www.oreilly.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\&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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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,
  fjournal =     "Dr. Dobb's Journal of Software Tools",
}

@Article{Criscolo:1998:JQH,
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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,
  fjournal =     "Dr. Dobb's Journal of Software Tools",
}

@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;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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,
  fjournal =     "Dr. Dobb's Journal of Software Tools",
}

@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",
  DOI =          "http://dx.doi.org/10.1109/99.660313",
  ISSN =         "1070-9924 (print), 1558-190X (electronic)",
  ISSN-L =       "1070-9924",
  bibdate =      "Sat Jan 9 08:57:23 MST 1999",
  bibsource =    "http://www.computer.org/cse/cs1998;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://dlib.computer.org/cs/books/cs1998/pdf/c1046.pdf;
                 http://www.computer.org/cse/cs1998/c1046abs.htm",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Computational Science \& Engineering",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=99",
}

@Article{DeRusso:1998:MEH,
  author =       "Joe {DeRusso, III} and Peter Haggar",
  title =        "Multithreaded Exception Handling in {Java}",
  journal =      j-JAVA-REPORT,
  volume =       "3",
  number =       "??",
  pages =        "??--??",
  month =        aug,
  year =         "1998",
  CODEN =        "JREPFI",
  ISSN =         "1086-4660",
  bibdate =      "Sat Dec 26 13:52:53 1998",
  bibsource =    "http://archive.javareport.com/9808/html/from_pages/index.shtml;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://archive.javareport.com/9808/html/from_pages/ftp_feature.shtml",
  abstract =     "Introducing new classes and interfaces to be used when
                 writing multithreaded Java programs. These classes are
                 small, easy to use, and effectively enable you to
                 handle exceptions occurring on secondary threads.",
  acknowledgement = ack-nhfb,
}

@Article{Dyer:1998:CAS,
  author =       "Dave Dyer",
  title =        "Can {Assure} save {Java} from the perils of
                 multithreading?",
  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/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://www.javaworld.com/javaworld/jw-10-1998/jw-10-assure.htm",
  acknowledgement = ack-nhfb,
}

@Article{Eskilson:1998:SMM,
  author =       "Jesper Eskilson and Mats Carlsson",
  title =        "{SICStus MT} --- {A} Multithreaded Execution
                 Environment for {SICStus} Prolog",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1490",
  pages =        "36--53",
  year =         "1998",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Tue Feb 5 11:53:01 MST 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t1490.htm;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://link.springer-ny.com/link/service/series/0558/bibs/1490/14900036.htm;
                 http://link.springer-ny.com/link/service/series/0558/papers/1490/14900036.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
}

@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 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:17:47 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/pldi/277650/index.html;
                 http://www.cs.virginia.edu/pldi98/program.html;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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.",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  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.",
}

@Article{Geary:1998:SM,
  author =       "David Geary",
  title =        "{Swing} and multithreading",
  journal =      j-JAVA-REPORT,
  volume =       "3",
  number =       "??",
  pages =        "??--??",
  month =        nov,
  year =         "1998",
  CODEN =        "JREPFI",
  ISSN =         "1086-4660",
  bibdate =      "Sat Dec 26 13:52:53 1998",
  bibsource =    "http://archive.javareport.com/9811/html/from_pages/index.shtml;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://archive.javareport.com/9811/html/from_pages/ftp_col1.shtml",
  abstract =     "Read about why Swing is not thread-safe and the
                 ramifications of a single-threaded design for
                 developers using Swing.",
  acknowledgement = ack-nhfb,
}

@Article{Girkar:1998:IIM,
  author =       "Milind Girkar and Mohammad R. Haghighat and Paul Grey
                 and Hideki Saito and Nicholas Stavrakos and Constantine
                 D. Polychronopoulos",
  title =        "{Illinois-Intel} Multithreading Library:
                 Multithreading Support for {Intel} Architecture Based
                 Multiprocessor Systems",
  journal =      j-INTEL-TECH-J,
  number =       "Q1",
  pages =        "15",
  year =         "1998",
  ISSN =         "1535-766X",
  bibdate =      "Fri Jun 01 06:02:08 2001",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://developer.intel.com/technology/itj/q11998/articles/art_5.htm;
                 http://developer.intel.com/technology/itj/q11998/pdf/iml.pdf",
  acknowledgement = ack-nhfb,
}

@Article{Golla:1998:CEB,
  author =       "Prasad N. Golla and Eric C. Lin",
  title =        "A comparison of the effect of branch prediction on
                 multithreaded and scalar architectures",
  journal =      j-COMP-ARCH-NEWS,
  volume =       "26",
  number =       "4",
  pages =        "3--11",
  month =        sep,
  year =         "1998",
  CODEN =        "CANED2",
  DOI =          "http://doi.acm.org/10.1145/1216475.1216476",
  ISSN =         "0163-5964 (print), 1943-5851 (electronic)",
  ISSN-L =       "0163-5964",
  bibdate =      "Tue Jun 17 12:06:40 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  abstract =     "Speculative instructions execution requires dynamic
                 branch predictors to increase the performance of a
                 processor by executing from predicted branch target
                 routines. Conventional Scalar architectures such as the
                 Superscalar or Multiscalar architecture executes from a
                 single stream, while a Multithreaded architecture
                 executes from multiple streams at a time. Several
                 aggressive branch predictors have been proposed with
                 high prediction accuracies. Unfortunately, none of the
                 branch predictors can provide 100\% accuracy.
                 Therefore, there is an inherent limitation on
                 speculative execution in real implementation. In this
                 paper, we show that Multithreaded architecture is a
                 better candidate for utilizing speculative execution
                 than Scalar architectures. Generally the branch
                 prediction performance degradation is compounded for
                 larger window sizes on Scalar architectures, while for
                 a Multithreaded architecture, by increasing the number
                 of executing threads, we could sustain a higher
                 performance for a large aggregated speculative window
                 size. Hence, heavier workloads may increase performance
                 and utilization for Multithreaded architectures. We
                 present analytical and simulation results to support
                 our argument.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGARCH Computer Architecture News",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J89",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
}

@Article{Gomez:1998:CAM,
  author =       "J. C. Gomez and E. Mascarenhas and V. Rego",
  title =        "The {CLAM} Approach to Multithreaded Communication on
                 Shared Memory Multiprocessors: Design and Experiments",
  journal =      j-IEEE-TRANS-PAR-DIST-SYS,
  volume =       "9",
  number =       "1",
  pages =        "36--49",
  month =        jan,
  year =         "1998",
  CODEN =        "ITDSEO",
  DOI =          "http://dx.doi.org/10.1109/71.655241",
  ISSN =         "1045-9219 (print), 1558-2183 (electronic)",
  ISSN-L =       "1045-9219",
  bibdate =      "Fri Nov 6 12:31:15 MST 1998",
  bibsource =    "http://www.computer.org/tpds/td1998/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://dlib.computer.org/td/books/td1998/pdf/l0036.pdf;
                 http://www.computer.org/tpds/td1998/l0036abs.htm",
  acknowledgement = ack-nhfb,
  classification = "B6150M (Protocols); B6210L (Computer
                 communications); C5440 (Multiprocessing systems); C5640
                 (Protocols); C5670 (Network performance)",
  corpsource =   "Dept. of Comput. Sci., Purdue Univ., West Lafayette,
                 IN, USA",
  fjournal =     "IEEE Transactions on Parallel and Distributed
                 Systems",
  journal-URL =  "http://www.computer.org/portal/web/csdl/transactions/tpds",
  keywords =     "CLAM approach; communications environment; message
                 passing; multithreaded communication; OS-level process;
                 performance evaluation; protocols; scalable
                 multiprotocol support; scheduling algorithms; shared
                 memory systems; shared-memory multiprocessors;
                 user-space protocols",
  treatment =    "A Application; P Practical",
}

@Article{Gruen:1998:NIS,
  author =       "T. Gruen and M. A. Hillebrand",
  title =        "{NAS} Integer Sort on Multi-threaded Shared Memory
                 Machines",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1470",
  pages =        "999--??",
  year =         "1998",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Sat Oct 10 14:40:24 MDT 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
}

@Article{Heber:1998:UMA,
  author =       "G. Heber and R. Biswas and P. Thulasiraman and G. R.
                 Gao",
  title =        "Using Multithreading for the Automatic Load Balancing
                 of Adaptive Finite Element Meshes",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1457",
  pages =        "132--??",
  year =         "1998",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Sat Oct 10 14:40:24 MDT 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
}

@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/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://www.holub.com/goodies/javaworld/jw_index.html;
                 http://www.javaworld.com/javaworld/jw-09-1998/jw-09-threads.htm",
  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/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://www.holub.com/goodies/javaworld/jw_index.html;
                 http://www.javaworld.com/javaworld/jw-10-1998/jw-10-toolbox.htm",
  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/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://www.holub.com/goodies/javaworld/jw_index.html;
                 http://www.javaworld.com/javaworld/jw-11-1998/jw-11-toolbox.htm",
  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/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://www.holub.com/goodies/javaworld/jw_index.html;
                 http://www.javaworld.com/javaworld/jw-12-1998/jw-12-toolbox.htm",
  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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  annote =       "Directed by William Appelbe.",
  keywords =     "Compilers (Computer programs); Parallel processing
                 (Electronic computers)",
}

@Article{Howes:1998:TPC,
  author =       "Brad Howes",
  title =        "Template processing classes for {Python}",
  journal =      j-DDJ,
  volume =       "23",
  number =       "2",
  pages =        "38, 40, 42, 44--46, 48, 100",
  month =        feb,
  year =         "1998",
  CODEN =        "DDJOEB",
  ISSN =         "1044-789X",
  bibdate =      "Thu May 21 19:02:04 MDT 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/dr-dobbs.bib;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  abstract =     "Brad shows how you can embed Python objects in HTML
                 pages using boilerplate template processing classes.
                 Then Python creator Guido van Rossum adds a note on
                 what's new in the just-released Python 1.5.",
  acknowledgement = ack-nhfb,
  classification = "C6130D (Document processing techniques); C6130M
                 (Multimedia); C6160J (Object- oriented databases)",
  fjournal =     "Dr. Dobb's Journal of Software Tools",
  keywords =     "application program interfaces; BoilerPlate; CGI
                 infrastructure; conditional control; Emacs; embedded
                 HTML text; errors; HTML document template; HTML
                 editing; hypermedia; iterative control; multithreaded
                 CGI service; object database; object paradigm;
                 object-oriented databases; page description languages;
                 persistent objects; placeholders; print statements;
                 Python; run- time values; run-time HTML generation;
                 syntax coloring; tagged locations; template HTML
                 constructs; template processing classes; text regions",
  treatment =    "P Practical",
}

@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",
  CODEN =        "JSSODM",
  ISSN =         "0164-1212 (print), 1873-1228 (electronic)",
  ISSN-L =       "0164-1212",
  bibdate =      "Thu Dec 17 14:07:21 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "The Journal of systems and software",
  journal-URL =  "http://www.sciencedirect.com/science/journal/01641212",
}

@Article{Ji:1998:PMM,
  author =       "Minwen Ji and Edward W. Felten and Kai Li",
  title =        "Performance measurements for multithreaded programs",
  journal =      j-SIGMETRICS,
  volume =       "26",
  number =       "1",
  pages =        "161--170",
  month =        jun,
  year =         "1998",
  CODEN =        "????",
  DOI =          "http://doi.acm.org/10.1145/277858.277900",
  ISSN =         "0163-5999 (print), 1557-9484 (electronic)",
  ISSN-L =       "0163-5999",
  bibdate =      "Thu Jun 26 11:25:18 MDT 2008",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  abstract =     "Multithreaded programming is an effective way to
                 exploit concurrency, but it is difficult to debug and
                 tune a highly threaded program. This paper describes a
                 performance tool called Tmon for monitoring, analyzing
                 and tuning the performance of multithreaded programs.
                 The performance tool has two novel features: it uses
                 `thread waiting time' as a measure and constructs
                 thread waiting graphs to show thread dependencies and
                 thus performance bottlenecks, and it identifies
                 `semi-busy-waiting' points where CPU cycles are wasted
                 in condition checking and context switching. We have
                 implemented the Tmon tool and, as a case study, we have
                 used it to measure and tune a heavily threaded file
                 system. We used four workloads to tune different
                 aspects of the file system. We were able to improve the
                 file system bandwidth and throughput significantly. In
                 one case, we were able to improve the bandwidth by two
                 orders of magnitude.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGMETRICS Performance Evaluation Review",
  journal-URL =  "http://portal.acm.org/toc.cfm?id=J618",
}

@InProceedings{Karamcheti:1998:HLB,
  author =       "Vijay Karamcheti and Andrew A. Chien",
  title =        "A Hierarchical Load-Balancing Framework for Dynamic
                 Multithreaded Computations",
  crossref =     "ACM:1998:SHP",
  pages =        "??--??",
  year =         "1998",
  bibdate =      "Wed Mar 06 06:31:50 2002",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 http://www.supercomp.org/sc98/papers/",
  URL =          "http://www.supercomp.org/sc98/TechPapers/sc98_FullAbstracts/Karamcheti553/index.htm",
  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 (print), 1943-5851 (electronic)",
  ISSN-L =       "0163-5964",
  bibdate =      "Fri May 12 09:40:58 MDT 2006",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGARCH Computer Architecture News",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J89",
}

@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 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:17:49 MST 2003",
  bibsource =    "Compendex database; http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  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",
}

@Article{Krone:1998:LBN,
  author =       "O. Krone and M. Raab and B. Hirsbrunner",
  title =        "Load Balancing for Network Based Multi-threaded
                 Applications",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1497",
  pages =        "206--??",
  year =         "1998",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Tue Jan 5 08:21:58 MST 1999",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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 (print), 1943-5851 (electronic)",
  ISSN-L =       "0163-5964",
  bibdate =      "Fri May 12 09:40:58 MDT 2006",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGARCH Computer Architecture News",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J89",
}

@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.math.utah.edu/pub/tex/bib/multithreading.bib;
                 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;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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,
  fjournal =     "C/C++ Users Journal",
}

@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",
  ISSN-L =       "1040-3108",
  bibdate =      "Tue Sep 7 06:06:42 MDT 1999",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 http://www3.interscience.wiley.com/journalfinder.html",
  URL =          "http://www3.interscience.wiley.com/cgi-bin/abstract?ID=10008703;
                 http://www3.interscience.wiley.com/cgi-bin/fulltext?ID=10008703&PLACEBO=IE.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Concurrency, practice and experience",
}

@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/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://www.javaworld.com/javaworld/jw-06-1998/jw-06-indepth.html",
  acknowledgement = ack-nhfb,
}

@Article{Nebro:1998:EMR,
  author =       "A. J. Nebro and E. Pimentel and J. M. Troya",
  title =        "Evaluating a Multithreaded Runtime System for
                 Concurrent Object-Oriented Languages",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1505",
  pages =        "167--??",
  year =         "1998",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Tue Jan 5 08:21:58 MST 1999",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  series =       "Nutshell handbook",
  acknowledgement = ack-nhfb,
  annote =       "A POSIX standard for better multiprocessing.",
  keywords =     "compilers (computer programs); parallel programming
                 (computer science)",
}

@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 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:17:47 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/pldi/277650/index.html;
                 http://www.cs.virginia.edu/pldi98/program.html;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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.",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  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;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  abstract =     "The C++ Standard doesn't talk about thread safety, but
                 everyone else does.",
  acknowledgement = ack-nhfb,
  fjournal =     "C/C++ Users Journal",
}

@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/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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,
  fjournal =     "Dr. Dobb's Journal of Software Tools",
}

@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;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  abstract =     "Often, the best time to protect access to a shared
                 object is right when you reach for it.",
  acknowledgement = ack-nhfb,
  fjournal =     "C/C++ Users Journal",
}

@Article{Reus:1998:VCO,
  author =       "B. Reus and A. Knapp and P. Cenciarelli and M.
                 Wirsing",
  title =        "Verifying a compiler optimization for Multi-Threaded
                 {Java}",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1376",
  pages =        "402--??",
  year =         "1998",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Sat Oct 10 14:40:24 MDT 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/java.bib;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
}

@Article{Saghi:1998:MSH,
  author =       "Gene Saghi and Kirk Reinholtz and Paul A. Savory",
  title =        "A Multithreaded Scheduler for a High-speed Spacecraft
                 Simulator",
  journal =      j-SPE,
  volume =       "28",
  number =       "6",
  pages =        "641--656",
  month =        may,
  year =         "1998",
  CODEN =        "SPEXBL",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Thu Jul 29 15:11:48 MDT 1999",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 http://www.math.utah.edu/pub/tex/bib/spe.bib;
                 http://www3.interscience.wiley.com/journalfinder.html",
  URL =          "http://www3.interscience.wiley.com/cgi-bin/abstract?ID=1802;
                 http://www3.interscience.wiley.com/cgi-bin/fulltext?ID=1802&PLACEBO=IE.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
}

@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 (print), 1557-7317 (electronic)",
  ISSN-L =       "0001-0782",
  bibdate =      "Tue Oct 6 21:15:42 MDT 1998",
  bibsource =    "http://www.acm.org/pubs/toc/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://www.acm.org:80/pubs/citations/journals/cacm/1998-41-10/p54-schmidt/",
  acknowledgement = ack-nhfb,
  fjournal =     "Communications of the ACM",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J79",
}

@Article{Seiden:1998:ROM,
  author =       "S. S. Seiden",
  title =        "Randomized Online Multi-threaded Paging",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1432",
  pages =        "264--??",
  year =         "1998",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Sat Oct 10 14:40:24 MDT 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
}

@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 (print), 1096-0848 (electronic)",
  ISSN-L =       "0743-7315",
  bibdate =      "Thu Mar 9 09:19:04 MST 2000",
  bibsource =    "http://www.idealibrary.com/servlet/useragent?func=showAllIssues&curIssueID=jpdc;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  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,
  fjournal =     "Journal of Parallel and Distributed Computing",
  journal-URL =  "http://www.sciencedirect.com/science/journal/07437315",
}

@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",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
}

@Article{Shene:1998:MPI,
  author =       "Chin-Kuang Shene",
  title =        "Multithreaded programming in an introduction to
                 operating systems course",
  journal =      j-SIGCSE,
  volume =       "30",
  number =       "1",
  pages =        "242--246",
  month =        mar,
  year =         "1998",
  CODEN =        "SIGSD3",
  DOI =          "http://dx.doi.org/10.1145/274790.274305",
  ISSN =         "0097-8418",
  ISSN-L =       "0097-8418",
  bibdate =      "Sat Nov 17 16:56:29 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 http://www.math.utah.edu/pub/tex/bib/sigcse1990.bib",
  abstract =     "This paper presents a way of teaching multithreaded
                 programming as a component in an introduction to
                 operating systems course. Topics include programming
                 assignments, term projects, and experiences. This paper
                 also suggests future work for overcoming a bottleneck
                 that occurs in the current version of this course.",
  acknowledgement = ack-nhfb,
  fjournal =     "SIGCSE Bulletin (ACM Special Interest Group on
                 Computer Science Education)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J688",
}

@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;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://www.cs.okstate.edu/~pdcp/vols/vol01/vol01no1abs.html#silc",
  acknowledgement = ack-nhfb,
  fjournal =     "PDCP: Parallel and Distributed Computing Practices",
}

@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 (print), 1557-7341 (electronic)",
  ISSN-L =       "0360-0300",
  bibdate =      "Fri Sep 11 08:35:51 MDT 1998",
  bibsource =    "http://www.acm.org/pubs/contents/journals/surveys/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://www.acm.org:80/pubs/citations/journals/surveys/1998-30-2/p123-skillicorn/",
  abstract =     "We survey parallel programming models and languages
                 using six criteria to assess their suitability for
                 realistic portable parallel programming. We argue that
                 an ideal model should by easy to program, should have a
                 software development methodology, should be
                 architecture-independent, should be easy to understand,
                 should guarantee performance, and should provide
                 accurate information about the cost of programs. These
                 criteria reflect our belief that developments in
                 parallelism must be driven by a parallel software
                 industry based on portability and efficiency. We
                 consider programming models in six categories,
                 depending on the level of abstraction they provide.
                 Those that are very abstract conceal even the presence
                 of parallelism at the software level. Such models make
                 software easy to build and port, but efficient and
                 predictable performance is usually hard to achieve. At
                 the other end of the spectrum, low-level models make
                 all of the messy issues of parallel programming
                 explicit (how many threads, how to place them, how to
                 express communication, and how to schedule
                 communication), so that software is hard to build and
                 not very portable, but is usually efficient. Most
                 recent models are near the center of this spectrum,
                 exploring the best tradeoffs between expressiveness and
                 performance. A few models have achieved both
                 abstractness and efficiency. Both kinds of models raise
                 the possibility of parallelism as part of the
                 mainstream of computing.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Computing Surveys",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J204",
  keywords =     "languages; performance; theory",
  subject =      "{\bf C.4} Computer Systems Organization, PERFORMANCE
                 OF SYSTEMS. {\bf D.1} Software, PROGRAMMING TECHNIQUES.
                 {\bf D.3.2} Software, PROGRAMMING LANGUAGES, Language
                 Classifications.",
}

@InProceedings{Smith:1998:SIF,
  author =       "Geoffrey Smith and Dennis Volpano",
  title =        "Secure information flow in a multi-threaded imperative
                 language",
  crossref =     "ACM:1998:CRP",
  pages =        "355--364",
  year =         "1998",
  bibdate =      "Mon May 3 12:57:52 MDT 1999",
  bibsource =    "http://www.acm.org/pubs/toc/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://www.acm.org:80/pubs/citations/proceedings/plan/268946/p355-smith/",
  acknowledgement = ack-nhfb,
  keywords =     "algorithms; languages; security; theory",
  subject =      "{\bf F.3.3} Theory of Computation, LOGICS AND MEANINGS
                 OF PROGRAMS, Studies of Program Constructs, Type
                 structure. {\bf D.3.0} Software, PROGRAMMING LANGUAGES,
                 General. {\bf D.2.0} Software, SOFTWARE ENGINEERING,
                 General, Protection mechanisms. {\bf D.1.3} Software,
                 PROGRAMMING TECHNIQUES, Concurrent Programming.",
}

@Article{Tennberg:1998:CAD,
  author =       "Patrick Tennberg",
  title =        "Creating Active Data Types via Multithreading",
  journal =      j-CCCUJ,
  volume =       "16",
  number =       "1",
  pages =        "??--??",
  month =        jan,
  year =         "1998",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:13 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/1998/9801/9801toc.htm?topic=articles;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  abstract =     "If you need multiple active agents in a program, you
                 need multiple threads to synchronize them.",
  acknowledgement = ack-nhfb,
  fjournal =     "C/C++ Users Journal",
}

@Article{Thitikamol:1998:PNM,
  author =       "K. Thitikamol and P. Keleher",
  title =        "Per-node multithreading and remote latency",
  journal =      j-IEEE-TRANS-COMPUT,
  volume =       "47",
  number =       "4",
  pages =        "414--426",
  month =        apr,
  year =         "1998",
  CODEN =        "ITCOB4",
  DOI =          "http://dx.doi.org/10.1109/12.675711",
  ISSN =         "0018-9340 (print), 1557-9956 (electronic)",
  ISSN-L =       "0018-9340",
  bibdate =      "Wed Jul 6 09:35:54 MDT 2011",
  bibsource =    "http://www.computer.org/tc/;
                 http://www.math.utah.edu/pub/tex/bib/ieeetranscomput1990.bib;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=675711",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Transactions on Computers",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=12",
}

@InProceedings{Thornley:1998:SSH,
  author =       "John Thornley and K. Mani Chandy and Hiroshi Ishii",
  title =        "A System for Structured High-Performance Multithreaded
                 Programming in {Windows NT}",
  crossref =     "USENIX:1998:PUWa",
  pages =        "??--??",
  year =         "1998",
  bibdate =      "Fri Oct 18 07:49:55 2002",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://www.usenix.org/publications/library/proceedings/usenix-nt98/thornley.html;
                 http://www.usenix.org/publications/library/proceedings/usenix-nt98/thornley_slides",
  acknowledgement = ack-nhfb,
}

@Article{Tsai:1998:POC,
  author =       "J.-Y. Tsai and Z. Jiang and P.-C. Yew",
  title =        "Program Optimization for Concurrent Multithreaded
                 Architectures",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1366",
  pages =        "146--??",
  year =         "1998",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Sat Oct 10 14:40:24 MDT 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
}

@InProceedings{Tullsen:1998:RSM,
  author =       "Dean M. Tullsen and Susan J. Eggers and Henry M.
                 Levy",
  title =        "Retrospective: {Simultaneous} multithreading:
                 maximizing on-chip parallelism",
  crossref =     "ACM:1998:PAI",
  pages =        "115--116",
  year =         "1998",
  bibdate =      "Fri May 12 17:56:30 MDT 2006",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  remark =       "25 years of the International Symposia on Computer
                 Architecture (selected papers).",
}

@InProceedings{Tullsen:1998:SMM,
  author =       "Dean M. Tullsen and Susan J. Eggers and Henry M.
                 Levy",
  title =        "Simultaneous multithreading: maximizing on-chip
                 parallelism",
  crossref =     "ACM:1998:PAI",
  pages =        "533--544",
  year =         "1998",
  bibdate =      "Fri May 12 17:56:30 MDT 2006",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  remark =       "25 years of the International Symposia on Computer
                 Architecture (selected papers).",
}

@Article{Venners:1998:DTS,
  author =       "Bill Venners",
  title =        "Design for thread safety",
  journal =      j-JAVAWORLD,
  volume =       "3",
  number =       "8",
  pages =        "??--??",
  month =        aug,
  year =         "1998",
  CODEN =        "????",
  ISSN =         "1091-8906",
  bibdate =      "Thu Sep 10 14:37:30 MDT 1998",
  bibsource =    "http://www.javaworld.com/javaworld/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://www.javaworld.com/javaworld/jw-08-1998/jw-08-techniques.htm",
  acknowledgement = ack-nhfb,
}

@InProceedings{Vishkin:1998:EMT,
  author =       "Uzi Vishkin and Shlomit Dascal and Efraim Berkovich
                 and Joseph Nuzman",
  booktitle =    "SPAA '98: 10th Annual ACM Symposium on Parallel
                 Algorithms and Architectures, June 28--July 2, 1998,
                 Puerto Vallarta, Mexico",
  title =        "Explicit multi-threading ({XMT}) bridging models for
                 instruction parallelism (extended abstract)",
  publisher =    pub-ACM,
  address =      pub-ACM:adr,
  year =         "1998",
  DOI =          "http://dx.doi.org/10.1145.277680",
  ISBN =         "0-89791-989-0",
  ISBN-13 =      "978-0-89791-989-0",
  LCCN =         "QA76.58 .A26 1998",
  bibdate =      "Fri Jul 27 05:37:45 2001",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  note =         "ACM order number 417980.",
  URL =          "http://delivery.acm.org/10.1145/280000/277680/p140-vishkin.pdf",
  acknowledgement = ack-nhfb,
  bookpages =    "viii + 310",
  keywords =     "IA-64",
}

@Article{Wallace:1998:TMP,
  author =       "Steven Wallace and Brad Calder and Dean M. Tullsen",
  title =        "Threaded multiple path execution",
  journal =      j-COMP-ARCH-NEWS,
  volume =       "26",
  number =       "3",
  pages =        "238--249",
  month =        jun,
  year =         "1998",
  CODEN =        "CANED2",
  ISSN =         "0163-5964 (print), 1943-5851 (electronic)",
  ISSN-L =       "0163-5964",
  bibdate =      "Fri May 12 09:40:58 MDT 2006",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGARCH Computer Architecture News",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J89",
}

@PhdThesis{Weissman:1998:ATT,
  author =       "Boris Weissman",
  title =        "Active threads: towards efficient fine-grained
                 parallelism in object-oriented systems",
  type =         "Thesis ({Ph.D.} in {Computer Science})",
  school =       "Department of Computer Science, University of
                 California, Berkeley",
  address =      "Berkeley, CA, USA",
  year =         "1998",
  LCCN =         "T7.6.1998 W457",
  bibdate =      "Fri May 10 12:18:17 MDT 2002",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  keywords =     "dissertations, academic -- UCB -- Computer Science --
                 1991--2000; University of California, Berkeley, Dept.
                 Of Computer Science -- dissertations",
}

@Article{Weissman:1998:PCS,
  author =       "Boris Weissman",
  title =        "Performance Counters and State Sharing Annotations: a
                 Unified Approach to Thread Locality",
  journal =      j-SIGPLAN,
  volume =       "33",
  number =       "11",
  pages =        "127--138",
  month =        nov,
  year =         "1998",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:17:54 MST 2003",
  bibsource =    "http://portal.acm.org/; http://www.acm.org/pubs/toc/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  note =         "Co-published in {\em Operating Systems Review}, {\bf
                 32}(5).",
  URL =          "http://www.acm.org:80/pubs/citations/proceedings/asplos/291069/p127-weissman/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  keywords =     "design; experimentation; measurement; performance;
                 theory",
  subject =      "{\bf D.4.1} Software, OPERATING SYSTEMS, Process
                 Management, Scheduling. {\bf F.1.2} Theory of
                 Computation, COMPUTATION BY ABSTRACT DEVICES, Modes of
                 Computation, Parallelism and concurrency. {\bf D.4.8}
                 Software, OPERATING SYSTEMS, Performance, Simulation.
                 {\bf G.3} Mathematics of Computing, PROBABILITY AND
                 STATISTICS, Markov processes.",
}

@Article{Wilde:1998:RES,
  author =       "Norman Wilde and Christopher Casey and Joe Vandeville
                 and Gary Trio and Dick Hotz",
  title =        "Reverse engineering of software threads: {A} design
                 recovery technique for large multi-process systems",
  journal =      j-J-SYST-SOFTW,
  volume =       "43",
  number =       "1",
  pages =        "11--17",
  month =        oct,
  year =         "1998",
  CODEN =        "JSSODM",
  ISSN =         "0164-1212 (print), 1873-1228 (electronic)",
  ISSN-L =       "0164-1212",
  bibdate =      "Wed Dec 16 08:24:49 MST 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "The Journal of systems and software",
  journal-URL =  "http://www.sciencedirect.com/science/journal/01641212",
}

@Article{Wilmot:1998:DTM,
  author =       "Dick Wilmot",
  title =        "Data threaded microarchitecture",
  journal =      j-COMP-ARCH-NEWS,
  volume =       "26",
  number =       "5",
  pages =        "22--32",
  month =        dec,
  year =         "1998",
  CODEN =        "CANED2",
  ISSN =         "0163-5964 (print), 1943-5851 (electronic)",
  ISSN-L =       "0163-5964",
  bibdate =      "Fri May 12 09:41:21 MDT 2006",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGARCH Computer Architecture News",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J89",
}

@Article{Zhou:1998:LST,
  author =       "Honbo Zhou and Al Geist",
  title =        "{LPVM}: a step towards multithread {PVM}",
  journal =      j-CPE,
  volume =       "10",
  number =       "5",
  pages =        "407--416",
  day =          "25",
  month =        apr,
  year =         "1998",
  CODEN =        "CPEXEI",
  ISSN =         "1040-3108",
  ISSN-L =       "1040-3108",
  bibdate =      "Tue Sep 7 06:06:40 MDT 1999",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 http://www3.interscience.wiley.com/journalfinder.html",
  URL =          "http://www3.interscience.wiley.com/cgi-bin/abstract?ID=5385;
                 http://www3.interscience.wiley.com/cgi-bin/fulltext?ID=5385&PLACEBO=IE.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Concurrency, practice and experience",
}

@Article{Anonymous:1999:BST,
  author =       "Anonymous",
  title =        "Bookshelf: Surviving the Top Ten Challenges of
                 Software Development; The {Year 2000} Crisis; The
                 Continuing Challenge; Software Project Survival Guide;
                 Object-Oriented Multithreading Using {C++}",
  journal =      j-IEEE-SOFTWARE,
  volume =       "16",
  number =       "1",
  pages =        "114--??",
  month =        jan # "\slash " # feb,
  year =         "1999",
  CODEN =        "IESOEG",
  ISSN =         "0740-7459 (print), 0740-7459 (electronic)",
  ISSN-L =       "0740-7459",
  bibdate =      "Thu Apr 1 16:52:57 MST 1999",
  bibsource =    "http://computer.org/software/so1999/;
                 http://www.math.utah.edu/pub/tex/bib/ieeesoft.bib;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://dlib.computer.org/so/books/so1999/pdf/s1114.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Software",
  journal-URL =  "http://www.computer.org/portal/web/csdl/magazines/software",
}

@Article{Antoniu:1999:ETT,
  author =       "G. Antoniu and L. Bouge and R. Namyst",
  title =        "An Efficient and Transparent Thread Migration Scheme
                 in the {PM2} Runtime System",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1586",
  pages =        "496--??",
  year =         "1999",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Mon Sep 13 16:57:02 MDT 1999",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/lncs1999a.bib;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
}

@Article{Azagury:1999:NIR,
  author =       "Alain Azagury and Elliot K. Kolodner and Erez
                 Petrank",
  title =        "A Note on the Implementation of Replication-Based
                 Garbage Collection for Multithreaded Applications and
                 Multiprocessor Environments",
  journal =      j-PARALLEL-PROCESS-LETT,
  volume =       "9",
  number =       "3",
  pages =        "391--??",
  month =        sep,
  year =         "1999",
  CODEN =        "PPLTEE",
  ISSN =         "0129-6264 (print), 1793-642X (electronic)",
  bibdate =      "Thu Jan 6 12:02:35 MST 2005",
  bibsource =    "http://ejournals.wspc.com.sg/ppl/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Parallel Processing Letters",
  journal-URL =  "http://www.worldscientific.com/loi/ppl",
}

@Article{Blumofe:1999:SMC,
  author =       "Robert D. Blumofe and Charles E. Leiserson",
  title =        "Scheduling multithreaded computations by work
                 stealing",
  journal =      j-J-ACM,
  volume =       "46",
  number =       "5",
  pages =        "720--748",
  month =        sep,
  year =         "1999",
  CODEN =        "JACOAH",
  ISSN =         "0004-5411 (print), 1557-735X (electronic)",
  ISSN-L =       "0004-5411",
  bibdate =      "Sun Jan 23 12:19:49 MST 2000",
  bibsource =    "http://www.acm.org/pubs/toc/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://www.acm.org/pubs/citations/journals/jacm/1999-46-5/p720-blumofe/",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of the ACM",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J401",
}

@Article{Bouge:1999:ECM,
  author =       "L. Bouge and J.-F. Mehaut and R. Namyst",
  title =        "Efficient Communications in Multithreaded Runtime
                 Systems",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1586",
  pages =        "468--482",
  year =         "1999",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Fri Mar 16 07:33:54 2001",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
}

@Article{Broadman:1999:ECM,
  author =       "Allen Broadman and Eric Shaw",
  title =        "Executing a Class Member in Its Own Thread",
  journal =      j-CCCUJ,
  volume =       "17",
  number =       "12",
  pages =        "??--??",
  month =        dec,
  year =         "1999",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:24 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/1999/9912/9912toc.htm?topic=articles;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  abstract =     "Creating a separate thread to execute a member
                 function call is a messy business that's often
                 necessary. It's a task well worth encapsulating.",
  acknowledgement = ack-nhfb,
  fjournal =     "C/C++ Users Journal",
}

@Article{Cappello:1999:PNB,
  author =       "F. Cappello and O. Richard and D. Etiemble",
  title =        "Performance of the {NAS} Benchmarks on a Cluster of
                 {SMP PCs} Using a Parallelization of the {MPI} Programs
                 with {OpenMP}",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1662",
  pages =        "339--??",
  year =         "1999",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Mon Sep 13 16:57:02 MDT 1999",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/lncs1999b.bib;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
}

@Article{Cenciarelli:1999:EBS,
  author =       "P. Cenciarelli and A. Knapp and B. Reus and M.
                 Wirsing",
  title =        "An Event-Based Structural Operational Semantics of
                 Multi-Threaded {Java}",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1523",
  pages =        "157--??",
  year =         "1999",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Mon Sep 13 16:57:02 MDT 1999",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/lncs1999a.bib;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
}

@Article{Chappell:1999:SSM,
  author =       "Robert S. Chappell and Jared Stark and Sangwook P. Kim
                 and Steven K. Reinhardt and Yale N. Patt",
  title =        "Simultaneous subordinate microthreading {(SSMT)}",
  journal =      j-COMP-ARCH-NEWS,
  volume =       "27",
  number =       "2",
  pages =        "186--195",
  month =        may,
  year =         "1999",
  CODEN =        "CANED2",
  ISSN =         "0163-5964 (print), 1943-5851 (electronic)",
  ISSN-L =       "0163-5964",
  bibdate =      "Fri May 12 09:40:49 MDT 2006",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGARCH Computer Architecture News",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J89",
}

@Article{Dascal:1999:ELR,
  author =       "Shlomit Dascal and Uzi Vishkin",
  title =        "Experiments with List Ranking for Explicit
                 Multi-Threaded {(XMT)} Instruction Parallelism
                 (Extended Abstract)",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1668",
  pages =        "43--??",
  year =         "1999",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Mon Feb 4 12:03:08 MST 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t1668.htm;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://link.springer-ny.com/link/service/series/0558/bibs/1668/16680043.htm;
                 http://link.springer-ny.com/link/service/series/0558/papers/1668/16680043.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
}

@Article{delaPuente:1999:RTP,
  author =       "Juan A. de la Puente and Jos{\'e} F. Ruiz and
                 Jes{\'u}s M. Gonz{\'a}lez-Barahona",
  title =        "Real-Time Programming with {GNAT}: Specialized Kernels
                 versus {POSIX} Threads",
  journal =      j-SIGADA-LETTERS,
  volume =       "19",
  number =       "2",
  pages =        "73--77",
  month =        jun,
  year =         "1999",
  CODEN =        "AALEE5",
  ISSN =         "0736-721X",
  ISSN-L =       "0736-721X",
  bibdate =      "Tue Aug 31 07:04:20 1999",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGADA Ada Letters",
}

@Article{DeWitt:1999:PTL,
  author =       "Anthony DeWitt and Thomas Gross",
  title =        "The potential of thread-level speculation based on
                 value profiling",
  journal =      j-COMP-ARCH-NEWS,
  volume =       "27",
  number =       "1",
  pages =        "22--22",
  month =        mar,
  year =         "1999",
  CODEN =        "CANED2",
  ISSN =         "0163-5964 (print), 1943-5851 (electronic)",
  ISSN-L =       "0163-5964",
  bibdate =      "Fri May 12 09:40:35 MDT 2006",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGARCH Computer Architecture News",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J89",
}

@Article{Duda:1999:BVT,
  author =       "Kenneth J. Duda and David R. Cheriton",
  title =        "Borrowed-virtual-time {(BVT)} scheduling: supporting
                 latency-sensitive threads in a general-purpose
                 scheduler",
  journal =      j-OPER-SYS-REV,
  volume =       "33",
  number =       "5",
  pages =        "261--276",
  month =        dec,
  year =         "1999",
  CODEN =        "OSRED8",
  ISSN =         "0163-5980 (print), 1943-586X (electronic)",
  ISSN-L =       "0163-5980",
  bibdate =      "Sat Aug 26 08:55:55 MDT 2006",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Operating Systems Review",
}

@InProceedings{Garcia:1999:MMI,
  author =       "F. Garcia and A. Calderon and J. Carretero",
  title =        "{MiMPI}: {A} multithread-safe implementation of
                 {MPI}",
  crossref =     "Dongarra:1999:RAP",
  number =       "1697",
  pages =        "207--214",
  year =         "1999",
  bibdate =      "Thu Dec 9 06:08:35 MST 1999",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
}

@Article{Greiner:1999:PTE,
  author =       "John Greiner and Guy E. Blelloch",
  title =        "A provably time-efficient parallel implementation of
                 full speculation",
  journal =      j-TOPLAS,
  volume =       "21",
  number =       "2",
  pages =        "240--285",
  month =        mar,
  year =         "1999",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Tue Sep 26 10:12:58 MDT 2000",
  bibsource =    "http://www.acm.org/pubs/contents/journals/toplas/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://www.acm.org/pubs/citations/journals/toplas/1999-21-2/p240-greiner/",
  abstract =     "Speculative evaluation, including leniency and
                 futures, is often used to produce high degrees of
                 parallelism. Understanding the performance
                 characteristics of such evaluation, however, requires
                 having a detailed understanding of the implementation.
                 For example, the particular implementation technique
                 used to suspend and reactivate threads can have an
                 asymptotic effect on performance. With the goal of
                 giving the users some understanding of performance
                 without requiring them to understand the
                 implementation, we present a provable implementation
                 bound for a language based on speculative evaluation.
                 The idea is (1) to supply the users with a semantics
                 for a language that defines abstract costs for
                 measuring or analyzing the performance of computations,
                 (2) to supply the users with a mapping of these costs
                 onto runtimes on various machine models, and (3) to
                 describe an implementation strategy of the language and
                 prove that it meets these mappings. For this purpose we
                 consider a simple language based on speculative
                 evaluation. For every computation, the semantics of the
                 language returns a directed acyclic graph (DAG) in
                 which each node represents a unit of computation, and
                 each edge represents a dependence. We then describe an
                 implementation strategy of the language and show that
                 any computation with $w$ work (the number of nodes in
                 the DAG) and $d$ depth (the length of the longest path
                 in the DAG) will run on a $p$-processor PRAM in $ O(w /
                 p + d \log p) $ time. The bounds are work efficient
                 (within a constant factor of linear speedup) when there
                 is sufficient parallelism, $ w / d p \log p $. These
                 are the first time bounds we know of for languages with
                 speculative evaluation. The main challenge is in
                 parallelizing the necessary queuing operations on
                 suspended threads.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  generalterms = "Languages; Performance; Theory",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "abstract machines; parallel languages; profiling
                 semantics; speculation; threads",
  subject =      "Software --- Software Engineering --- Metrics (D.2.8);
                 Software --- Programming Languages --- Language
                 Classifications (D.3.2): {\bf Data-flow languages};
                 Software --- Programming Languages --- Language
                 Classifications (D.3.2); Theory of Computation ---
                 Computation by Abstract Devices --- Modes of
                 Computation (F.1.2): {\bf Parallelism and concurrency};
                 Theory of Computation --- Computation by Abstract
                 Devices --- Modes of Computation (F.1.2); Theory of
                 Computation --- Logics and Meanings of Programs ---
                 Specifying and Verifying and Reasoning about Programs
                 (F.3.1)",
}

@Article{Gu:1999:EJT,
  author =       "Yan Gu and B. S. Lee and Wentong Cai",
  title =        "Evaluation of {Java} thread performance on two
                 different multithreaded kernels",
  journal =      j-OPER-SYS-REV,
  volume =       "33",
  number =       "1",
  pages =        "34--46",
  month =        jan,
  year =         "1999",
  CODEN =        "OSRED8",
  ISSN =         "0163-5980 (print), 1943-586X (electronic)",
  ISSN-L =       "0163-5980",
  bibdate =      "Sat Aug 26 08:55:37 MDT 2006",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Operating Systems Review",
}

@Article{Harrington:1999:WMM,
  author =       "John Harrington",
  title =        "{Win32} Multithreading Made Easy",
  journal =      j-CCCUJ,
  volume =       "17",
  number =       "8",
  pages =        "48, 50--52, 54--56",
  month =        aug,
  year =         "1999",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:22 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/1999/9908/9908toc.htm?topic=articles;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  abstract =     "Multithreading logic is hard to write and hard to
                 maintain. So keep it simple and separate.",
  acknowledgement = ack-nhfb,
  fjournal =     "C/C++ Users Journal",
}

@Article{Holub:1999:PJTa,
  author =       "Allen Holub",
  title =        "Programming {Java} threads in the real world, {Part}
                 5: Timers",
  journal =      j-JAVAWORLD,
  volume =       "4",
  number =       "2",
  pages =        "??--??",
  month =        feb,
  year =         "1999",
  CODEN =        "????",
  ISSN =         "1091-8906",
  bibdate =      "Thu Mar 04 12:56:16 1999",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://www.holub.com/goodies/javaworld/jw_index.html",
  acknowledgement = ack-nhfb,
}

@Article{Holub:1999:PJTb,
  author =       "Allen Holub",
  title =        "Programming {Java} threads in the real world, {Part}
                 6: {Mach '99}: Observer and the Mysteries of the
                 {AWTEventMulticaster}",
  journal =      j-JAVAWORLD,
  volume =       "4",
  number =       "3",
  pages =        "??--??",
  month =        mar,
  year =         "1999",
  CODEN =        "????",
  ISSN =         "1091-8906",
  bibdate =      "Thu Mar 04 12:56:16 1999",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://www.holub.com/goodies/javaworld/jw_index.html",
  acknowledgement = ack-nhfb,
}

@Article{Jonsson:1999:NPS,
  author =       "J. Jonsson and H. Loenn and K. G. Shin",
  title =        "Non-preemptive Scheduling of Real-Time Threads on
                 Multi-Level-Context Architectures",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1586",
  pages =        "363--??",
  year =         "1999",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Mon Sep 13 16:57:02 MDT 1999",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/lncs1999a.bib;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
}

@Article{Karamcheti:1999:ASM,
  author =       "Vijay Karamcheti and Andrew A. Chien",
  title =        "Architectural Support and Mechanisms for Object
                 Caching in Dynamic Multithreaded Computations",
  journal =      j-J-PAR-DIST-COMP,
  volume =       "58",
  number =       "2",
  pages =        "260--300",
  month =        aug,
  year =         "1999",
  CODEN =        "JPDCER",
  DOI =          "http://dx.doi.org/10.1006/jpdc.1999.1555",
  ISSN =         "0743-7315 (print), 1096-0848 (electronic)",
  ISSN-L =       "0743-7315",
  bibdate =      "Thu Mar 9 09:19:08 MST 2000",
  bibsource =    "http://www.idealibrary.com/servlet/useragent?func=showAllIssues&curIssueID=jpdc;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://www.idealibrary.com/links/doi/10.1006/jpdc.1999.1555/production;
                 http://www.idealibrary.com/links/doi/10.1006/jpdc.1999.1555/production/pdf;
                 http://www.idealibrary.com/links/doi/10.1006/jpdc.1999.1555/production/ref",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Parallel and Distributed Computing",
  journal-URL =  "http://www.sciencedirect.com/science/journal/07437315",
}

@Article{Kekckler:1999:CEH,
  author =       "S. W. Kekckler and A. Chang and W. S. L. S. Chatterjee
                 and W. J. Dally",
  title =        "Concurrent event handling through multithreading",
  journal =      j-IEEE-TRANS-COMPUT,
  volume =       "48",
  number =       "9",
  pages =        "903--916",
  month =        sep,
  year =         "1999",
  CODEN =        "ITCOB4",
  DOI =          "http://dx.doi.org/10.1109/12.795220",
  ISSN =         "0018-9340 (print), 1557-9956 (electronic)",
  ISSN-L =       "0018-9340",
  bibdate =      "Wed Jul 6 08:46:59 MDT 2011",
  bibsource =    "http://www.computer.org/tc/;
                 http://www.math.utah.edu/pub/tex/bib/ieeetranscomput1990.bib;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=795220",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Transactions on Computers",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=12",
}

@Article{Krishnan:1999:CMA,
  author =       "V. Krishnan and J. Torrellas",
  title =        "A chip-multiprocessor architecture with speculative
                 multithreading",
  journal =      j-IEEE-TRANS-COMPUT,
  volume =       "48",
  number =       "9",
  pages =        "866--880",
  month =        sep,
  year =         "1999",
  CODEN =        "ITCOB4",
  DOI =          "http://dx.doi.org/10.1109/12.795218",
  ISSN =         "0018-9340 (print), 1557-9956 (electronic)",
  ISSN-L =       "0018-9340",
  bibdate =      "Wed Jul 6 08:46:59 MDT 2011",
  bibsource =    "http://www.computer.org/tc/;
                 http://www.math.utah.edu/pub/tex/bib/ieeetranscomput1990.bib;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=795218",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Transactions on Computers",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=12",
}

@Article{Kusakabe:1999:INS,
  author =       "S. Kusakabe and K. Inenaga and M. Amamiya and X.
                 Tang",
  title =        "Implementing a Non-strict Functional Programming
                 Language on a Threaded Architecture",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1586",
  pages =        "138--??",
  year =         "1999",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Mon Sep 13 16:57:02 MDT 1999",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/lncs1999a.bib;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
}

@Article{Kwak:1999:EMC,
  author =       "H. Kwak and B. Lee and A. R. Hurson and Suk-Han Yoon
                 and Woo-Jong Hahn",
  title =        "Effects of multithreading on cache performance",
  journal =      j-IEEE-TRANS-COMPUT,
  volume =       "48",
  number =       "2",
  pages =        "176--184",
  month =        feb,
  year =         "1999",
  CODEN =        "ITCOB4",
  DOI =          "http://dx.doi.org/10.1109/12.752659",
  ISSN =         "0018-9340 (print), 1557-9956 (electronic)",
  ISSN-L =       "0018-9340",
  bibdate =      "Wed Jul 6 08:46:56 MDT 2011",
  bibsource =    "http://www.computer.org/tc/;
                 http://www.math.utah.edu/pub/tex/bib/ieeetranscomput1990.bib;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=752659",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Transactions on Computers",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=12",
}

@Article{Lo:1999:SDR,
  author =       "J. L. Lo and S. S. Parekh and S. J. Eggers and H. M.
                 Levy and D. M. Tullsen",
  title =        "Software-Directed Register Deallocation for
                 Simultaneous Multithreaded Processors",
  journal =      j-IEEE-TRANS-PAR-DIST-SYS,
  volume =       "10",
  number =       "9",
  pages =        "922--??",
  month =        sep,
  year =         "1999",
  CODEN =        "ITDSEO",
  ISSN =         "1045-9219 (print), 1558-2183 (electronic)",
  ISSN-L =       "1045-9219",
  bibdate =      "Thu Oct 12 18:48:31 MDT 2000",
  bibsource =    "http://www.computer.org/tpds/td1999/;
                 http://www.math.utah.edu/pub/tex/bib/ieeetranspardistsys.bib;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://dlib.computer.org/td/books/td1999/pdf/l0922.pdf;
                 http://www.computer.org/tpds/td1999/l0922abs.htm",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Transactions on Parallel and Distributed
                 Systems",
  journal-URL =  "http://www.computer.org/portal/web/csdl/transactions/tpds",
}

@Article{Lo:1999:TCO,
  author =       "Jack L. Lo and Susan J. Eggers and Henry M. Levy and
                 Sujay S. Parekh and Dean M. Tullsen",
  title =        "Tuning Compiler Optimizations for Simultaneous
                 Multithreading",
  journal =      j-INT-J-PARALLEL-PROG,
  volume =       "27",
  number =       "6",
  pages =        "477--503",
  month =        dec,
  year =         "1999",
  CODEN =        "IJPPE5",
  DOI =          "http://www.springerlink.com/openurl.asp?genre=article&id=doi:10.1023/A:1018780200739",
  ISSN =         "0885-7458 (print), 1573-7640 (electronic)",
  ISSN-L =       "0885-7458",
  bibdate =      "Wed Jul 6 16:39:54 MDT 2005",
  bibsource =    "http://springerlink.metapress.com/openurl.asp?genre=issue&issn=0885-7458&volume=27&issue=6;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 OCLC Contents1st database",
  URL =          "http://www.springerlink.com/openurl.asp?genre=article&issn=0885-7458&volume=27&issue=6&spage=477",
  acknowledgement = ack-nhfb,
  fjournal =     "International Journal of Parallel Programming",
  journal-URL =  "http://link.springer.com/journal/16",
  remark =       "Special Issue: {30th Annual ACM\slash IEEE
                 International Symposium on Microarchitecture}, Part
                 {II}.",
}

@Article{Lundberg:1999:PBS,
  author =       "Lars Lundberg",
  title =        "Predicting and Bounding the Speedup of Multithreaded
                 {Solaris} Programs",
  journal =      j-J-PAR-DIST-COMP,
  volume =       "57",
  number =       "3",
  pages =        "322--333",
  month =        jun,
  year =         "1999",
  CODEN =        "JPDCER",
  DOI =          "http://dx.doi.org/10.1006/jpdc.1999.1536",
  ISSN =         "0743-7315 (print), 1096-0848 (electronic)",
  ISSN-L =       "0743-7315",
  bibdate =      "Thu Mar 9 09:19:07 MST 2000",
  bibsource =    "http://www.idealibrary.com/servlet/useragent?func=showAllIssues&curIssueID=jpdc;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://www.idealibrary.com/links/doi/10.1006/jpdc.1999.1536/production;
                 http://www.idealibrary.com/links/doi/10.1006/jpdc.1999.1536/production/pdf;
                 http://www.idealibrary.com/links/doi/10.1006/jpdc.1999.1536/production/ref",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Parallel and Distributed Computing",
  journal-URL =  "http://www.sciencedirect.com/science/journal/07437315",
}

@Article{Manley:1999:IPT,
  author =       "Kevin Manley",
  title =        "Improving Performance with Thread-Private Heaps",
  journal =      j-CCCUJ,
  volume =       "17",
  number =       "9",
  pages =        "50--??",
  month =        sep,
  year =         "1999",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:22 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/1999/9909/9909toc.htm?topic=articles;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  abstract =     "Threads interact in the darndest ways, but conflicts
                 with a common heap are particularly pernicious. Luckily
                 they can be avoided.",
  acknowledgement = ack-nhfb,
  fjournal =     "C/C++ Users Journal",
}

@Article{Marcuello:1999:EST,
  author =       "P. Marcuello and A. Gonzalez",
  title =        "Exploiting Speculative Thread-Level Parallelism on a
                 {SMT} Processor",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1593",
  pages =        "754--??",
  year =         "1999",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Mon Sep 13 16:57:02 MDT 1999",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/lncs1999a.bib;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
}

@Article{Masney:1999:IMT,
  author =       "Brian Masney",
  title =        "Introduction to Multi-Threaded Programming",
  journal =      j-LINUX-J,
  volume =       "61",
  pages =        "??--??",
  month =        may,
  year =         "1999",
  CODEN =        "LIJOFX",
  ISSN =         "1075-3583 (print), 1938-3827 (electronic)",
  ISSN-L =       "1075-3583",
  bibdate =      "Thu Jun 3 06:34:02 MDT 1999",
  bibsource =    "http://www.linuxjournal.com/issue61/index.html;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  abstract =     "A description of thread programming basics.",
  acknowledgement = ack-nhfb,
  fjournal =     "Linux journal",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J508",
}

@Article{Mendelson:1999:DAM,
  author =       "Avi Mendelson and Michael Bekerman",
  title =        "Design Alternatives of Multithreaded Architecture",
  journal =      j-INT-J-PARALLEL-PROG,
  volume =       "27",
  number =       "3",
  pages =        "161--193",
  month =        jun,
  year =         "1999",
  CODEN =        "IJPPE5",
  DOI =          "http://www.springerlink.com/openurl.asp?genre=article&id=doi:10.1023/A:1018733528538",
  ISSN =         "0885-7458 (print), 1573-7640 (electronic)",
  ISSN-L =       "0885-7458",
  bibdate =      "Wed Jul 6 16:39:53 MDT 2005",
  bibsource =    "http://springerlink.metapress.com/openurl.asp?genre=issue&issn=0885-7458&volume=27&issue=3;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 OCLC Contents1st database",
  URL =          "http://www.springerlink.com/openurl.asp?genre=article&issn=0885-7458&volume=27&issue=3&spage=161",
  acknowledgement = ack-nhfb,
  fjournal =     "International Journal of Parallel Programming",
  journal-URL =  "http://link.springer.com/journal/16",
}

@InProceedings{Mitchell:1999:ILP,
  author =       "Nicholas Mitchell and Larry Carter and Jeanne Ferrante
                 and Dean Tullsen",
  title =        "Instruction-level Parallelism vs. Thread-level
                 Parallelism on Simultaneous Multi-threading
                 Processors",
  crossref =     "ACM:1999:SPO",
  pages =        "??--??",
  year =         "1999",
  bibdate =      "Thu Feb 24 09:02:57 2000",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 http://www.sc99.org/techpapers/",
  acknowledgement = ack-nhfb,
}

@Article{Moody:1999:STT,
  author =       "Scott Arthur Moody and Samuel Kwok and Dale Karr",
  title =        "{SimpleGraphics}: {Tcl\slash Tk} visualization of
                 real-time multi-threaded and distributed applications",
  journal =      j-SIGADA-LETTERS,
  volume =       "19",
  number =       "2",
  pages =        "60--66",
  month =        jun,
  year =         "1999",
  CODEN =        "AALEE5",
  ISSN =         "0736-721X",
  ISSN-L =       "0736-721X",
  bibdate =      "Sat Aug 9 09:06:06 MDT 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGAda Ada Letters",
}

@Article{Narlikar:1999:SES,
  author =       "Girija J. Narlikar and Guy E. Blelloch",
  title =        "Space-Efficient Scheduling of Nested Parallelism",
  journal =      j-TOPLAS,
  volume =       "21",
  number =       "1",
  pages =        "138--173",
  month =        jan,
  year =         "1999",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Tue Sep 26 10:12:58 MDT 2000",
  bibsource =    "http://www.acm.org/pubs/contents/journals/toplas/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://www.acm.org/pubs/citations/journals/toplas/1999-21-1/p138-narlikar/",
  abstract =     "Many of today's high-level parallel languages support
                 dynamic, fine-grained parallelism. These languages
                 allow the user to expose all the parallelism in the
                 program, which is typically of a much higher degree
                 than the number of processors. Hence an efficient
                 scheduling algorithm is required to assign computations
                 to processors at runtime. Besides having low overheads
                 and good load balancing, it is important for the
                 scheduling algorithm to minimize the space usage of the
                 parallel program. This article presents an on-line
                 scheduling algorithm that is provably space efficient
                 and time efficient for nested-parallel languages. For a
                 computation with depth $D$ and serial space requirement
                 $ S_1 $, the algorithm generates a schedule that
                 requires at most $ S_1 + O(K \cdot D \cdot p) $ space
                 (including scheduler space) on $p$ processors. Here,
                 $K$ is a user-adjustable runtime parameter specifying
                 the net amount of memory that a thread may allocate
                 before it is preempted by the scheduler. Adjusting the
                 value of $K$ provides a trade-off between the running
                 time and the memory requirement of a parallel
                 computation. To allow the scheduler to scale with the
                 number of processors we also parallelize the scheduler
                 and analyze the space and time bounds of the
                 computation to include scheduling costs. In addition to
                 showing that the scheduling algorithm is space and time
                 efficient in theory, we demonstrate that it is
                 effective in practice. We have implemented a runtime
                 system that uses our algorithm to schedule lightweight
                 parallel threads. The results of executing parallel
                 programs on this system show that our scheduling
                 algorithm significantly reduces memory usage compared
                 to previous techniques, without compromising
                 performance.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  generalterms = "Algorithms; Languages; Performance",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "dynamic scheduling; multithreading; nested
                 parallelism; parallel language implementation; space
                 efficiency",
  subject =      "Software --- Programming Techniques --- Concurrent
                 Programming (D.1.3): {\bf Parallel programming};
                 Software --- Programming Languages --- Processors
                 (D.3.4): {\bf Run-time environments}; Theory of
                 Computation --- Analysis of Algorithms and Problem
                 Complexity --- General (F.2.0)",
}

@Article{Nemeth:1999:MLK,
  author =       "Z. Nemeth and H. Tomiyasu and P. Kacsuk and M.
                 Amamiya",
  title =        "Multithreaded {LOGFLOW} on {KUMP\slash} {D}",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1615",
  pages =        "320--??",
  year =         "1999",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Mon Sep 13 16:57:02 MDT 1999",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/lncs1999b.bib;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
}

@Article{Nevison:1999:SSC,
  author =       "Christopher H. Nevison",
  title =        "Seminar: safe concurrent programming in {Java} with
                 {CSP}",
  journal =      j-SIGCSE,
  volume =       "31",
  number =       "1",
  pages =        "367",
  month =        mar,
  year =         "1999",
  CODEN =        "SIGSD3",
  DOI =          "http://dx.doi.org/10.1145/384266.299817",
  ISSN =         "0097-8418",
  ISSN-L =       "0097-8418",
  bibdate =      "Sat Nov 17 16:56:36 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 http://www.math.utah.edu/pub/tex/bib/sigcse1990.bib",
  abstract =     "We present methods for safe and correct programming
                 for concurrent threads in Java. The methods are based
                 on the principles of Concurrent Sequential Processes
                 (CSP). We demonstrate the use of tools which provide
                 the structure of CSP within Java to avoid some of the
                 pitfalls of multithreaded programming using monitors,
                 the primitive synchronization tool in Java. Several
                 examples illustrate the use of these tools.",
  acknowledgement = ack-nhfb,
  fjournal =     "SIGCSE Bulletin (ACM Special Interest Group on
                 Computer Science Education)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J688",
}

@Book{Oaks:1999:JT,
  author =       "Scott Oaks and Henry Wong",
  title =        "{Java} threads",
  publisher =    pub-ORA,
  address =      pub-ORA:adr,
  edition =      "Second",
  pages =        "xiii + 319",
  year =         "1999",
  ISBN =         "1-56592-418-5",
  ISBN-13 =      "978-1-56592-418-5",
  LCCN =         "QA76.73.J38 O25 1999",
  bibdate =      "Fri May 10 12:18:17 MDT 2002",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  series =       "Java series",
  acknowledgement = ack-nhfb,
  keywords =     "Java (computer program language); threads (computer
                 programs)",
}

@Article{Pant:1999:TCP,
  author =       "Lalit Pant",
  title =        "Thread Communication In Parallel Algorithms: Enabling
                 efficient interaction between threads",
  journal =      j-DDJ,
  volume =       "24",
  number =       "4",
  pages =        "32, 34, 36, 38--39",
  month =        apr,
  year =         "1999",
  CODEN =        "DDJOEB",
  ISSN =         "1044-789X",
  bibdate =      "Wed Mar 3 06:30:11 MST 1999",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://www.ddj.com/ftp/1999/1999_04/parallel.txt",
  abstract =     "With the increasing availability of multiprocessing
                 hardware, thread-based parallel algorithms are becoming
                 more and more important. Lalit presents thread
                 communication mechanisms for use within parallel
                 algorithms. Additional resources include parallel.txt
                 (listings).",
  acknowledgement = ack-nhfb,
  fjournal =     "Dr. Dobb's Journal of Software Tools",
}

@Book{Pham:1999:MPW,
  author =       "Thuan Q. Pham and Pankaj K. Garg",
  title =        "Multithreaded Programming with {Win32}",
  publisher =    pub-PHPTR,
  address =      pub-PHPTR:adr,
  pages =        "xix + 219",
  year =         "1999",
  ISBN =         "0-13-010912-6",
  ISBN-13 =      "978-0-13-010912-5",
  LCCN =         "QA76.642.P518 1998",
  bibdate =      "Thu Jan 21 18:58:23 1999",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  note =         "Includes CD-ROM.",
  URL =          "http://www.phptr.com/ptrbooks/ptr_0130109126.html",
  acknowledgement = ack-nhfb,
  publishersnote = "If you want to deliver NT applications with maximum
                 performance, efficiency and robustness, you need to
                 master multithreading. Multithreaded Programming with
                 Win32 brings together every Win32 multithreading
                 technique and concept you must know --- all brilliantly
                 explained with practical examples and sample code.",
  xxnote =       "Check pages and year??",
}

@Article{Plauger:1999:SCCg,
  author =       "P. J. Plauger",
  title =        "{Standard C/C++}: {A} Better Red-Black Tree",
  journal =      j-CCCUJ,
  volume =       "17",
  number =       "7",
  pages =        "10--??",
  month =        jul,
  year =         "1999",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:21 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/1999/9907/9907toc.htm?topic=articles;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  abstract =     "The C++ Standard is silent about issues such as thread
                 safety and DLL safety, but customers and reviewers
                 certainly aren't.",
  acknowledgement = ack-nhfb,
  fjournal =     "C/C++ Users Journal",
}

@Article{Richards:1999:ALT,
  author =       "Etienne Richards",
  title =        "Adding Level-2 Thread Safety to Existing Objects",
  journal =      j-CCCUJ,
  volume =       "17",
  number =       "2",
  pages =        "??--??",
  month =        feb,
  year =         "1999",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:19 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/1999/9902/9902toc.htm?topic=articles;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  abstract =     "The code required to share an object among multiple
                 threads is tedious and error prone. But it can be
                 neatly encapsulated.",
  acknowledgement = ack-nhfb,
  fjournal =     "C/C++ Users Journal",
}

@Article{Ringle:1999:SCT,
  author =       "Jonathan Ringle",
  title =        "Singleton Creation the Thread-safe Way",
  journal =      j-CCCUJ,
  volume =       "17",
  number =       "10",
  pages =        "??--??",
  month =        oct,
  year =         "1999",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:23 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/1999/9910/9910toc.htm?topic=articles;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  abstract =     "Singletons avoid problems with order of construction,
                 at the cost of more problems for multithreading.",
  acknowledgement = ack-nhfb,
  fjournal =     "C/C++ Users Journal",
}

@Article{Rodgers:1999:TSN,
  author =       "Jeremy B. Rodgers and Rhonda Kay Gaede and Jeffrey H.
                 Kulick",
  title =        "{IN-Tune}: an {In-Situ} non-invasive performance
                 tuning tool for multi-threaded {Linux} on symmetric
                 multiprocessing {Pentium} workstations",
  journal =      j-SPE,
  volume =       "29",
  number =       "9",
  pages =        "775--792",
  day =          "25",
  month =        jul,
  year =         "1999",
  CODEN =        "SPEXBL",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Thu Jul 29 15:12:27 MDT 1999",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 http://www3.interscience.wiley.com/journalfinder.html",
  URL =          "http://www3.interscience.wiley.com/cgi-bin/abstract?ID=62501865;
                 http://www3.interscience.wiley.com/cgi-bin/fulltext?ID=62501865&PLACEBO=IE.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Software---Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
}

@TechReport{Roe:1999:PMI,
  author =       "Kevin Roe and Piyush Mehrotra",
  title =        "Parallelization of a multigrid incompressible viscous
                 cavity flow solver using {openMP}",
  type =         "{NASA} contractor report",
  number =       "NASA\slash CR-1999-209551",
  institution =  inst-NLRC,
  address =      inst-NLRC:adr,
  pages =        "????",
  year =         "1999",
  bibdate =      "Thu Mar 16 07:20:02 2000",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  note =         "Also ICASE report 99-36.",
  acknowledgement = ack-nhfb,
}

@Article{Ronsse:1999:RFI,
  author =       "Michiel Ronsse and Koen De Bosschere",
  title =        "{RecPlay}: a fully integrated practical record\slash
                 replay system",
  journal =      j-TOCS,
  volume =       "17",
  number =       "2",
  pages =        "133--152",
  month =        may,
  year =         "1999",
  CODEN =        "ACSYEC",
  ISSN =         "0734-2071 (print), 1557-7333 (electronic)",
  ISSN-L =       "0734-2071",
  bibdate =      "Tue Sep 26 07:54:31 MDT 2000",
  bibsource =    "http://www.acm.org/pubs/contents/journals/tocs/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://www.acm.org/pubs/citations/journals/tocs/1999-17-2/p133-ronsse/",
  abstract =     "This article presents a practical solution for the
                 cyclic debugging of nondeterministic parallel programs.
                 The solution consists of a combination of record\slash
                 replay with automatic on-the-fly data race detection.
                 This combination enables us to limit the record phase
                 to the more efficient recording of the synchronization
                 operations, while deferring the time-consuming data
                 race detection to the replay phase. As the record phase
                 is highly efficient, there is no need to switch it off,
                 hereby eliminating the possibility of Heisenbugs
                 because tracing can be left on all the time. This
                 article describes an implementation of the tools needed
                 to support RecPlay.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Transactions on Computer Systems",
  generalterms = "Algorithms; Experimentation; Reliability",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J774",
  keywords =     "binary code modification; multithreaded programming;
                 race detection",
  subject =      "Software --- Programming Techniques --- Concurrent
                 Programming (D.1.3): {\bf Parallel programming};
                 Software --- Software Engineering --- Testing and
                 Debugging (D.2.5): {\bf Debugging aids}; Software ---
                 Software Engineering --- Testing and Debugging (D.2.5):
                 {\bf Monitors}; Software --- Software Engineering ---
                 Testing and Debugging (D.2.5): {\bf Tracing}; Software
                 --- Operating Systems --- Process Management (D.4.1):
                 {\bf Concurrency}; Software --- Operating Systems ---
                 Process Management (D.4.1): {\bf Deadlocks}; Software
                 --- Operating Systems --- Process Management (D.4.1):
                 {\bf Multiprocessing/multiprogramming/multitasking};
                 Software --- Operating Systems --- Process Management
                 (D.4.1): {\bf Mutual exclusion}; Software --- Operating
                 Systems --- Process Management (D.4.1): {\bf
                 Synchronization}",
}

@Article{Rugina:1999:PAM,
  author =       "Radu Rugina and Martin Rinard",
  title =        "Pointer Analysis for Multithreaded Programs",
  journal =      j-SIGPLAN,
  volume =       "34",
  number =       "5",
  pages =        "77--90",
  month =        may,
  year =         "1999",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:03 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/pldi/301122/index.html;
                 http://www.acm.org/pubs/contents/proceedings/pldi/301618/index.html;
                 http://www.cs.rutgers.edu/pldi99/program.html;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  note =         "See PLDI'99 proceedings \cite{ACM:1999:PASa}.",
  URL =          "http://www.acm.org:80/pubs/citations/proceedings/pldi/301122/p77-rugina/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
}

@Article{Saito:1999:MRS,
  author =       "H. Saito and N. Stavrakos and C. Polychronopoulos",
  title =        "Multithreading Runtime Support for Loop and Functional
                 Parallelism",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1615",
  pages =        "133--??",
  year =         "1999",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Mon Sep 13 16:57:02 MDT 1999",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/lncs1999b.bib;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
}

@MastersThesis{Samorodin:1999:SFS,
  author =       "Steven Howard Samorodin",
  title =        "Supporting flexible safety and sharing in
                 multi-threaded environments",
  type =         "Thesis ({M.S.})",
  school =       "Computer Science Department, University of California,
                 Davis",
  address =      "Davis, CA, USA",
  pages =        "39",
  year =         "1999",
  bibdate =      "Sat Apr 20 11:17:26 2002",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
}

@Article{Scherer:1999:TAP,
  author =       "Alex Scherer and Honghui Lu and Thomas Gross and Willy
                 Zwaenepoel",
  title =        "Transparent adaptive parallelism on {NOWs} using
                 {OpenMP}",
  journal =      j-SIGPLAN,
  volume =       "34",
  number =       "8",
  pages =        "96--106",
  month =        aug,
  year =         "1999",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:06 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/ppopp/301104/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://www.acm.org/pubs/citations/proceedings/ppopp/301104/p96-scherer/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
}

@Article{Seiden:1999:ROM,
  author =       "Steven S. Seiden",
  title =        "Randomized Online Multi-Threaded Paging",
  journal =      j-NORDIC-J-COMPUT,
  volume =       "6",
  number =       "2",
  pages =        "148--??",
  month =        "Summer",
  year =         "1999",
  CODEN =        "NJCOFR",
  ISSN =         "1236-6064",
  bibdate =      "Fri Oct 13 05:25:14 MDT 2000",
  bibsource =    "http://www.cs.helsinki.fi/njc/njc6.html;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://www.cs.helsinki.fi/njc/References/seiden1999:148.html",
  acknowledgement = ack-nhfb,
  fjournal =     "Nordic Journal of Computing",
}

@InProceedings{Shen:1999:ATL,
  author =       "Kai Shen and Hong Tang and Tao Yang",
  title =        "Adaptive Two-level Thread Management for Fast {MPI}
                 Execution on Shared Memory Machines",
  crossref =     "ACM:1999:SPO",
  pages =        "??--??",
  year =         "1999",
  bibdate =      "Thu Feb 24 09:02:57 2000",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 http://www.sc99.org/techpapers/",
  acknowledgement = ack-nhfb,
}

@Article{Sinharoy:1999:COI,
  author =       "Balaram Sinharoy",
  title =        "Compiler optimization to improve data locality for
                 processor multithreading",
  journal =      j-SCI-PROG,
  volume =       "7",
  number =       "1",
  pages =        "21--37",
  month =        "????",
  year =         "1999",
  CODEN =        "SCIPEV",
  ISSN =         "1058-9244 (print), 1875-919X (electronic)",
  ISSN-L =       "1058-9244",
  bibdate =      "Thu Mar 28 12:27:27 MST 2002",
  bibsource =    "Compendex database;
                 http://www.iospress.nl/site/html/10589244.html;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 OCLC Article1st database",
  URL =          "http://iospress.metapress.com/app/home/contribution.asp%3Fwasp=64cr5a4mg33tuhcbdr02%26referrer=parent%26backto=issue%2C2%2C7%3Bjournal%2C8%2C9%3Blinkingpublicationresults%2C1%2C1",
  acknowledgement = ack-nhfb,
  fjournal =     "Scientific Programming",
  journal-URL =  "http://iospress.metapress.com/content/1058-9244",
}

@InProceedings{Storino:1999:MTB,
  author =       "Salvatore Storino and John M. Borkenhagen and Ronald
                 N. Kalla and Steven R. Kunkel",
  title =        "A Multi-Threaded 64-bit {PowerPC} Commercial {RISC}
                 Processor Design",
  crossref =     "IEEE:1999:HCS",
  pages =        "??--??",
  year =         "1999",
  bibdate =      "Mon Jan 08 05:28:04 2001",
  bibsource =    "ftp://www.hotchips.org//pub/hotc7to11cd/hc99/hc11_pdf/hc99.s1.1.Storino.txt;
                 http://www.hotchips.org/hotc11_monday.html;
                 http://www.math.utah.edu/pub/tex/bib/hot-chips.bib;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
}

@Article{Sutter:1999:OAM,
  author =       "Herb Sutter",
  title =        "Optimizations That Aren't (In a Multithreaded World)",
  journal =      j-CCCUJ,
  volume =       "17",
  number =       "6",
  pages =        "??--??",
  month =        jun,
  year =         "1999",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:21 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/1999/9906/9906toc.htm?topic=articles;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  abstract =     "An ``obvious'' optimization can really lose ground
                 when thread safety has to be ensured as well.",
  acknowledgement = ack-nhfb,
  fjournal =     "C/C++ Users Journal",
}

@InProceedings{Tan:1999:OFN,
  author =       "Kian-Lee Tan and Cheng Hian Goh and Beng Chin Ooi",
  title =        "Online Feedback for Nested Aggregate Queries with
                 Multi-Threading",
  crossref =     "Atkinson:1999:PTF",
  pages =        "18--29",
  year =         "1999",
  bibdate =      "Fri Jan 12 07:50:37 MST 2001",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 http://www.math.utah.edu/pub/tex/bib/vldb.bib;
                 http://www.vldb.org/dblp/db/conf/vldb/vldb99.html; OCLC
                 Proceedings database",
  URL =          "http://www.vldb.org/dblp/db/conf/vldb/TanGO99.html",
  acknowledgement = ack-nhfb,
  authorurl =    "http://www.vldb.org/dblp/db/indices/a-tree/t/Tan:Kian=Lee.html;
                 http://www.vldb.org/dblp/db/indices/a-tree/g/Goh:Cheng_Hian.html;
                 http://www.vldb.org/dblp/db/indices/a-tree/o/Ooi:Beng_Chin.html",
}

@Article{Tang:1999:APT,
  author =       "Xinan Tang and Guang R. Gao",
  title =        "Automatically Partitioning Threads for Multithreaded
                 Architectures",
  journal =      j-J-PAR-DIST-COMP,
  volume =       "58",
  number =       "2",
  pages =        "159--189",
  month =        aug,
  year =         "1999",
  CODEN =        "JPDCER",
  DOI =          "http://dx.doi.org/10.1006/jpdc.1999.1551",
  ISSN =         "0743-7315 (print), 1096-0848 (electronic)",
  ISSN-L =       "0743-7315",
  bibdate =      "Thu Mar 9 09:19:08 MST 2000",
  bibsource =    "http://www.idealibrary.com/servlet/useragent?func=showAllIssues&curIssueID=jpdc;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://www.idealibrary.com/links/doi/10.1006/jpdc.1999.1551/production;
                 http://www.idealibrary.com/links/doi/10.1006/jpdc.1999.1551/production/pdf;
                 http://www.idealibrary.com/links/doi/10.1006/jpdc.1999.1551/production/ref",
  acknowledgement = ack-nhfb,
  fjournal =     "Journal of Parallel and Distributed Computing",
  journal-URL =  "http://www.sciencedirect.com/science/journal/07437315",
}

@Article{Tang:1999:CRT,
  author =       "Hong Tang and Kai Shen and Tao Yang",
  title =        "Compile\slash run-time support for threaded {MPI}
                 execution on multiprogrammed shared memory machines",
  journal =      j-SIGPLAN,
  volume =       "34",
  number =       "8",
  pages =        "107--118",
  month =        aug,
  year =         "1999",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:06 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/ppopp/301104/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://www.acm.org/pubs/citations/proceedings/ppopp/301104/p107-tang/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
}

@Article{Taura:1999:SMI,
  author =       "Kenjiro Taura and Kunio Tabata and Akinori Yonezawa",
  title =        "{StackThreads\slash MP}: integrating futures into
                 calling standards",
  journal =      j-SIGPLAN,
  volume =       "34",
  number =       "8",
  pages =        "60--71",
  month =        aug,
  year =         "1999",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:06 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/ppopp/301104/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://www.acm.org/pubs/citations/proceedings/ppopp/301104/p60-taura/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
}

@Article{Throop:1999:SOS,
  author =       "Joe Throop",
  title =        "Standards: {OpenMP}: Shared-Memory Parallelism from
                 the Ashes",
  journal =      j-COMPUTER,
  volume =       "32",
  number =       "5",
  pages =        "108--109",
  month =        may,
  year =         "1999",
  CODEN =        "CPTRB4",
  ISSN =         "0018-9162 (print), 1558-0814 (electronic)",
  ISSN-L =       "0018-9162",
  bibdate =      "Thu May 6 06:17:23 MDT 1999",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://dlib.computer.org/co/books/co1999/pdf/r5108.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=2",
}

@Article{Torrant:1999:SMS,
  author =       "Marc Torrant and Muhammad Shaaban and Roy Czernikowski
                 and Ken Hsu",
  title =        "A simultaneous multithreading simulator",
  journal =      j-COMP-ARCH-NEWS,
  volume =       "27",
  number =       "5",
  pages =        "1--5",
  month =        dec,
  year =         "1999",
  CODEN =        "CANED2",
  ISSN =         "0163-5964 (print), 1943-5851 (electronic)",
  ISSN-L =       "0163-5964",
  bibdate =      "Fri May 12 09:41:22 MDT 2006",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGARCH Computer Architecture News",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J89",
}

@Article{Vlassov:1999:QMM,
  author =       "V. Vlassov and A. Kraynikov",
  title =        "A Queuing Model of a Multi-threaded Architecture: {A}
                 Case Study",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1662",
  pages =        "306--??",
  year =         "1999",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Mon Sep 13 16:57:02 MDT 1999",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/lncs1999b.bib;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
}

@Article{Weissman:1999:HPT,
  author =       "B. Weissman and B. Gomes",
  title =        "High Performance Thread Migration on Clusters of
                 {SMPs}",
  journal =      j-PARALLEL-DIST-COMP-PRACT,
  volume =       "2",
  number =       "2",
  pages =        "??--??",
  month =        "????",
  year =         "1999",
  CODEN =        "????",
  ISSN =         "1097-2803",
  bibdate =      "Fri Dec 19 08:14:13 MST 2003",
  bibsource =    "http://www.cs.okstate.edu/~pdcp/vols/vol02/vol02no2.html;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://www.cs.okstate.edu/~pdcp/vols/vol02/vol02no2abs.html#boris",
  acknowledgement = ack-nhfb,
  fjournal =     "PDCP: Parallel and Distributed Computing Practices",
}

@Article{Wu:1999:GMC,
  author =       "C.-C. Wu and C. Chen",
  title =        "Grouping Memory Consistency Model for
                 Parallel-Multithreaded Shared-Memory Multiprocessor
                 Systems",
  journal =      j-INT-J-HIGH-SPEED-COMPUTING,
  volume =       "10",
  number =       "1",
  pages =        "53--82",
  month =        mar,
  year =         "1999",
  CODEN =        "IHSCEZ",
  ISSN =         "0129-0533",
  bibdate =      "Mon Feb 25 11:19:21 MST 2002",
  bibsource =    "http://ejournals.wspc.com.sg/ijhsc/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 OCLC Article1st database",
  acknowledgement = ack-nhfb,
  fjournal =     "International Journal of High Speed Computing
                 (IJHSC)",
}

@Article{Xu:1999:DIT,
  author =       "Zhichen Xu and Barton P. Miller and Oscar Naim",
  title =        "Dynamic instrumentation of threaded applications",
  journal =      j-SIGPLAN,
  volume =       "34",
  number =       "8",
  pages =        "49--59",
  month =        aug,
  year =         "1999",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:06 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 http://www.acm.org/pubs/contents/proceedings/ppopp/301104/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://www.acm.org/pubs/citations/proceedings/ppopp/301104/p49-xu/",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
}

@Article{Akkary:2000:CSM,
  author =       "Haitham Akkary and S{\'e}bastien Hily",
  title =        "The Case for Speculative Multithreading on {SMT}
                 Processors",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1940",
  pages =        "59--??",
  year =         "2000",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Fri Feb 1 09:17:15 MST 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t1940.htm;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://link.springer-ny.com/link/service/series/0558/bibs/1940/19400059.htm;
                 http://link.springer-ny.com/link/service/series/0558/papers/1940/19400059.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
}

@Article{Anonymous:2000:NPAa,
  author =       "Anonymous",
  title =        "New Products: {AVP for Linux/FreeBSD UNIX, Kaspersky
                 Lab Ltd.; API PowerRAC Chassis 320, Alpha Processor
                 Inc.; ODBC-ODBC Bridge, Easysoft Ltd.; LinkScan 6.1,
                 Electronic Software Publishing Corporation; Metro-X
                 Enhanced Server CD, Metro Link, Inc.; P-STAT
                 Statistical Software, P-STAT, Inc.; System Manager in a
                 Box v1.0, PegaSoft Canada; PGI Workstation 3.1, PGI;
                 Quick Restore 2.6, Workstation Solutions, Inc.;
                 Threads.h++ and Tools.h++ Professional, Rogue Wave
                 Software; Scriptics Connect 1.0, 1.1, Scriptics
                 Corporation; TapeWare 6.2 Backup Software, Yosemite
                 Technologies, Inc.; DoubleVision for Linux Systems,
                 Tridia Corporation}",
  journal =      j-LINUX-J,
  volume =       "71",
  pages =        "??--??",
  month =        mar,
  year =         "2000",
  CODEN =        "LIJOFX",
  ISSN =         "1075-3583 (print), 1938-3827 (electronic)",
  ISSN-L =       "1075-3583",
  bibdate =      "Thu Sep 21 07:44:12 MDT 2000",
  bibsource =    "http://noframes.linuxjournal.com/lj-issues/issue71/index.html;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Linux journal",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J508",
}

@Article{Anonymous:2000:SLT,
  author =       "Anonymous",
  title =        "Strictly On-Line: {T/TCP: TCP for Transactions by Mark
                 Stacey, Ivan Griffin and John Nelson; POSIX Thread
                 Libraries by Felix Garcia and Javier Fernandez; Linux
                 and Open-Source Applications by Peter Jones and M. B.
                 Jorgenson; Laptops for Linux! by Jason Kroll}",
  journal =      j-LINUX-J,
  volume =       "70",
  pages =        "??--??",
  month =        feb,
  year =         "2000",
  CODEN =        "LIJOFX",
  ISSN =         "1075-3583 (print), 1938-3827 (electronic)",
  ISSN-L =       "1075-3583",
  bibdate =      "Thu Sep 21 16:32:31 MDT 2000",
  bibsource =    "http://noframes.linuxjournal.com/lj-issues/issue70/index.html;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://noframes.linuxjournal.com/lj-issues/issue70/3075.html;
                 http://noframes.linuxjournal.com/lj-issues/issue70/3184.html;
                 http://noframes.linuxjournal.com/lj-issues/issue70/3683.html;
                 http://noframes.linuxjournal.com/lj-issues/issue70/3766.html",
  acknowledgement = ack-nhfb,
  fjournal =     "Linux journal",
  journal-URL =  "http://portal.acm.org/citation.cfm?id=J508",
}

@Article{Antoniu:2000:CDP,
  author =       "G. Antoniu and L. Boug{\'e} and R. Namyst and C.
                 P{\'e}rez",
  title =        "Compiling Data-Parallel Programs to a Distributed
                 Runtime Environment with Thread Isomigration",
  journal =      j-PARALLEL-PROCESS-LETT,
  volume =       "10",
  number =       "2/3",
  pages =        "201--??",
  month =        sep,
  year =         "2000",
  CODEN =        "PPLTEE",
  ISSN =         "0129-6264 (print), 1793-642X (electronic)",
  bibdate =      "Wed Apr 18 07:29:37 2001",
  bibsource =    "http://ejournals.wspc.com.sg/ppl/10/1002_03/S01296264001002_03.html;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://ejournals.wspc.com.sg/ppl/10/1002_03/S0129626400000202.html",
  acknowledgement = ack-nhfb,
  fjournal =     "Parallel Processing Letters",
  journal-URL =  "http://www.worldscientific.com/loi/ppl",
}

@Article{Antoniu:2000:IJC,
  author =       "Gabriel Antoniu and Luc Boug{\'e} and Philip Hatcher
                 and Mark MacBeth and Keith McGuigan and Raymond
                 Namyst",
  title =        "Implementing {Java} Consistency Using a Generic,
                 Multithreaded {DSM} Runtime System",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1800",
  pages =        "560--??",
  year =         "2000",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Fri Feb 1 09:16:18 MST 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t1800.htm;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://link.springer-ny.com/link/service/series/0558/bibs/1800/18000560.htm;
                 http://link.springer-ny.com/link/service/series/0558/papers/1800/18000560.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
}

@Article{Aumage:2000:PAM,
  author =       "Olivier Aumage and Luc Boug{\'e} and Raymond Namyst",
  title =        "A Portable and Adaptative Multi-protocol Communication
                 Library for Multithreaded Runtime Systems",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1800",
  pages =        "1136--??",
  year =         "2000",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Fri Feb 1 09:16:18 MST 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t1800.htm;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://link.springer-ny.com/link/service/series/0558/bibs/1800/18001136.htm;
                 http://link.springer-ny.com/link/service/series/0558/papers/1800/18001136.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
}

@Article{Becker:2000:JSU,
  author =       "Pete Becker",
  title =        "The Journeyman's Shop: Unraveling Multithreading",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "8",
  pages =        "71--??",
  month =        aug,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:27 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0008/0008toc.htm?topic=articles;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  abstract =     "Sometimes you have to spend a lot of time on just a
                 little bit of code, to avoid spending much more time
                 not knowing where to begin debugging.",
  acknowledgement = ack-nhfb,
  fjournal =     "C/C++ Users Journal",
}

@Article{Bedy:2000:VSM,
  author =       "Michael Bedy and Steve Carr and Xianlong Huang and
                 Ching-Kuang Shene",
  title =        "A visualization system for multithreaded programming",
  journal =      j-SIGCSE,
  volume =       "32",
  number =       "1",
  pages =        "1--5",
  month =        mar,
  year =         "2000",
  CODEN =        "SIGSD3",
  DOI =          "http://dx.doi.org/10.1145/331795.331798",
  ISSN =         "0097-8418",
  ISSN-L =       "0097-8418",
  bibdate =      "Mon Nov 19 10:05:03 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 http://www.math.utah.edu/pub/tex/bib/sigcse2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "SIGCSE Bulletin (ACM Special Interest Group on
                 Computer Science Education)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J688",
}

@Article{Berger:2000:HSMa,
  author =       "Emery D. Berger and Kathryn S. McKinley and Robert D.
                 Blumofe and Paul R. Wilson",
  title =        "{Hoard}: a scalable memory allocator for multithreaded
                 applications",
  journal =      j-COMP-ARCH-NEWS,
  volume =       "28",
  number =       "5",
  pages =        "117--128",
  month =        dec,
  year =         "2000",
  CODEN =        "CANED2",
  ISSN =         "0163-5964 (print), 1943-5851 (electronic)",
  ISSN-L =       "0163-5964",
  bibdate =      "Fri May 12 09:41:22 MDT 2006",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGARCH Computer Architecture News",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J89",
}

@Article{Berger:2000:HSMb,
  author =       "Emery D. Berger and Kathryn S. McKinley and Robert D.
                 Blumofe and Paul R. Wilson",
  title =        "{Hoard}: {A} Scalable Memory Allocator for
                 Multithreaded Applications",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "11",
  pages =        "117--128",
  month =        nov,
  year =         "2000",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:19 MST 2003",
  bibsource =    "http://foothill.lcs.mit.edu/asplos2k/program.html;
                 http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
}

@Article{Berger:2000:HSMc,
  author =       "Emery D. Berger and Kathryn S. McKinley and Robert D.
                 Blumofe and Paul R. Wilson",
  title =        "{Hoard}: a scalable memory allocator for multithreaded
                 applications",
  journal =      j-OPER-SYS-REV,
  volume =       "34",
  number =       "5",
  pages =        "117--128",
  month =        dec,
  year =         "2000",
  CODEN =        "OSRED8",
  ISSN =         "0163-5980 (print), 1943-586X (electronic)",
  ISSN-L =       "0163-5980",
  bibdate =      "Sat Aug 26 08:55:56 MDT 2006",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGOPS Operating Systems Review",
}

@Article{Beyls:2000:CGM,
  author =       "K. E. Beyls and E. H. D'Hollander",
  title =        "Compiler Generated Multithreading to Alleviate Memory
                 Latency",
  journal =      j-J-UCS,
  volume =       "6",
  number =       "10",
  pages =        "968--993",
  day =          "28",
  month =        oct,
  year =         "2000",
  CODEN =        "????",
  ISSN =         "0948-695X (print), 0948-6968 (electronic)",
  ISSN-L =       "0948-6968",
  bibdate =      "Wed Feb 20 07:23:07 MST 2002",
  bibsource =    "http://www.jucs.org/jucs;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://www.jucs.org/jucs_6_10/compiler_generated_multithreading_to",
  acknowledgement = ack-nhfb,
  fjournal =     "J.UCS: Journal of Universal Computer Science",
  journal-URL =  "http://www.jucs.org/jucs",
}

@Article{Bhandarkar:2000:PPM,
  author =       "Suchendra M. Bhandarkar and Shankar R.
                 Chandrasekaran",
  title =        "Parallel Parsing of {MPEG} Video in a Multi-threaded
                 Multiprocessor Environment",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1800",
  pages =        "194--??",
  year =         "2000",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Fri Feb 1 09:16:18 MST 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t1800.htm;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://link.springer-ny.com/link/service/series/0558/bibs/1800/18000194.htm;
                 http://link.springer-ny.com/link/service/series/0558/papers/1800/18000194.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
}

@Article{Bolding:2000:MSM,
  author =       "Barry Bolding and Kim Baldridge",
  title =        "Multithreaded shared memory parallel implementation of
                 the electronic structure code {GAMESS}",
  journal =      j-COMP-PHYS-COMM,
  volume =       "128",
  number =       "1--2",
  pages =        "55--66",
  day =          "9",
  month =        jun,
  year =         "2000",
  CODEN =        "CPHCBZ",
  DOI =          "http://dx.doi.org/10.1016/S0010-4655(00)00067-9",
  ISSN =         "0010-4655 (print), 1879-2944 (electronic)",
  ISSN-L =       "0010-4655",
  bibdate =      "Mon Feb 13 23:40:43 MST 2012",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/compphyscomm2000.bib;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://www.sciencedirect.com/science/article/pii/S0010465500000679",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer Physics Communications",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00104655",
}

@Article{Borkenhagen:2000:MPP,
  author =       "J. M. Borkenhagen and R. J. Eickemeyer and R. N. Kalla
                 and S. R. Kunkel",
  title =        "A multithreaded {PowerPC} processor for commercial
                 servers",
  journal =      j-IBM-JRD,
  volume =       "44",
  number =       "6",
  pages =        "885--898",
  month =        nov,
  year =         "2000",
  CODEN =        "IBMJAE",
  ISSN =         "0018-8646 (print), 2151-8556 (electronic)",
  ISSN-L =       "0018-8646",
  bibdate =      "Sat Feb 24 09:44:45 MST 2001",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 http://www.research.ibm.com/journal/",
  URL =          "http://www.research.ibm.com/journal/rd/446/borkenhagen.html",
  acknowledgement = ack-nhfb,
  fjournal =     "IBM Journal of Research and Development",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=5288520",
  ordernumber =  "G322-0224",
}

@Article{Boussinot:2000:JTS,
  author =       "Fr{\'e}d{\'e}ric Boussinot and Jean-Ferdy Susini",
  title =        "{Java} threads and {SugarCubes}",
  journal =      j-SPE,
  volume =       "30",
  number =       "5",
  pages =        "545--566",
  day =          "25",
  month =        apr,
  year =         "2000",
  CODEN =        "SPEXBL",
  DOI =          "http://dx.doi.org/10.1002/(SICI)1097-024X(20000425)30:5<545::AID-SPE308>3.0.CO;2-Q",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Tue Mar 13 06:45:44 2001",
  bibsource =    "http://www.interscience.wiley.com/jpages/0038-0644;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 http://www3.interscience.wiley.com/journalfinder.html",
  URL =          "http://www3.interscience.wiley.com/cgi-bin/abstract/71004433/START;
                 http://www3.interscience.wiley.com/cgi-bin/fulltext?ID=71004433&PLACEBO=IE.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Software---Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
}

@Article{Bova:2000:DLP,
  author =       "Steve W. Bova and Clay P. Breshears and Christine E.
                 Cuicchi and Zeki Demirbilek and Henry A. Gabb",
  title =        "Dual-Level Parallel Analysis of Harbor Wave Response
                 Using {MPI} and {OpenMP}",
  journal =      j-IJHPCA,
  volume =       "14",
  number =       "1",
  pages =        "49--64",
  month =        "Spring",
  year =         "2000",
  CODEN =        "IHPCFL",
  ISSN =         "1094-3420 (print), 1741-2846 (electronic)",
  ISSN-L =       "1094-3420",
  bibdate =      "Tue Sep 12 12:39:11 2000",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  journal-URL =  "http://hpc.sagepub.com/content/by/year",
}

@InCollection{Cahir:2000:PMM,
  author =       "Margaret Cahir and Robert Moench and Alice E.
                 Koniges",
  title =        "Programming Models and Methods",
  crossref =     "Koniges:2000:ISP",
  chapter =      "3",
  pages =        "27--54",
  year =         "2000",
  bibdate =      "Fri Feb 04 18:32:51 2000",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  note =         "Discusses PVM, MPI, SHMEM, High-Performance Fortran,
                 and POSIX threads.",
  acknowledgement = ack-nhfb,
}

@Article{Cahoon:2000:EPD,
  author =       "Brendon Cahoon and Kathryn S. McKinley and Zhihong
                 Lu",
  title =        "Evaluating the performance of distributed
                 architectures for information retrieval using a variety
                 of workloads",
  journal =      j-TOIS,
  volume =       "18",
  number =       "1",
  pages =        "1--43",
  month =        jan,
  year =         "2000",
  CODEN =        "ATISET",
  ISSN =         "1046-8188",
  ISSN-L =       "0734-2047",
  bibdate =      "Tue Sep 26 09:34:01 MDT 2000",
  bibsource =    "http://www.acm.org/pubs/contents/journals/tois/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://www.acm.org/pubs/citations/journals/tois/2000-18-1/p1-cahoon/",
  abstract =     "The information explosion across the Internet and
                 elsewhere offers access to an increasing number of
                 document collections. In order for users to effectively
                 access these collections, information retrieval (IR)
                 systems must provide coordinated, concurrent, and
                 distributed access. In this article, we explore how to
                 achieve scalable performance in a distributed system
                 for collection sizes ranging from 1GB to 128GB. We
                 implement a fully functional distributed IR system
                 based on a multithreaded version of the Inquery
                 simulation model. We measure performance as a function
                 of system parameters such as client command rate,
                 number of document collections, ter ms per query, query
                 term frequency, number of answers returned, and command
                 mixture. Our results show that it is important to model
                 both query and document commands because the
                 heterogeneity of commands significantly impacts
                 performance. Based on our results, we recommend simple
                 changes to the prototype and evaluate the changes using
                 the simulator. Because of the significant resource
                 demands of information retrieval, it is not difficult
                 to generate workloads that overwhelm system resources
                 regardless of the architecture. However under some
                 realistic workloads, we demonstrate system
                 organizations for which response time gracefully
                 degrades as the workload increases and performance
                 scales with the number of processors. This scalable
                 architecture includes a surprisingly small number of
                 brokers through which a large number of clients and
                 servers communicate.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Transactions on Information Systems",
  keywords =     "distributed information retrieval architectures",
  subject =      "Computer Systems Organization ---
                 Computer-Communication Networks --- Distributed Systems
                 (C.2.4); Computer Systems Organization --- Performance
                 of Systems (C.4); Computer Systems Organization ---
                 Performance of Systems (C.4): {\bf Performance
                 attributes}; Information Systems --- Information
                 Storage and Retrieval --- Systems and Software
                 (H.3.4)",
}

@Article{Calkins:2000:ITT,
  author =       "Charles Calkins",
  title =        "Integrating Threads with Template Classes",
  journal =      j-CCCUJ,
  volume =       "18",
  number =       "5",
  pages =        "32--??",
  month =        may,
  year =         "2000",
  CODEN =        "CCUJEX",
  ISSN =         "1075-2838",
  bibdate =      "Tue May 14 18:09:26 MDT 2002",
  bibsource =    "http://www.cuj.com/articles/2000/0005/0005toc.htm?topic=articles;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  abstract =     "It's obviously a good idea to encapsulate a thread as
                 an object. It is less obvious how to get all the
                 interfaces right.",
  acknowledgement = ack-nhfb,
  fjournal =     "C/C++ Users Journal",
}

@Article{Carr:2000:PCL,
  author =       "Steve Carr and Ching-Kuang Shene",
  title =        "A portable class library for teaching multithreaded
                 programming",
  journal =      j-SIGCSE,
  volume =       "32",
  number =       "3",
  pages =        "124--127",
  month =        sep,
  year =         "2000",
  CODEN =        "SIGSD3",
  DOI =          "http://dx.doi.org/10.1145/353519.343138",
  ISSN =         "0097-8418",
  ISSN-L =       "0097-8418",
  bibdate =      "Sat Nov 17 16:56:43 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 http://www.math.utah.edu/pub/tex/bib/sigcse2000.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "SIGCSE Bulletin (ACM Special Interest Group on
                 Computer Science Education)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J688",
}

@Article{ChassindeKergommeaux:2000:PIV,
  author =       "J. {Chassin de Kergommeaux} and B. Stein and P. E.
                 Bernard",
  title =        "{Paj{\'e}}, an interactive visualization tool for
                 tuning multi-threaded parallel applications",
  journal =      j-PARALLEL-COMPUTING,
  volume =       "26",
  number =       "10",
  pages =        "1253--1274",
  day =          "15",
  month =        aug,
  year =         "2000",
  CODEN =        "PACOEJ",
  ISSN =         "0167-8191 (print), 1872-7336 (electronic)",
  ISSN-L =       "0167-8191",
  bibdate =      "Sat Oct 28 17:44:14 MDT 2000",
  bibsource =    "http://www.elsevier.com/locate/issn/01678191;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://www.elsevier.nl/gej-ng/10/35/21/42/31/24/abstract.html;
                 http://www.elsevier.nl/gej-ng/10/35/21/42/31/24/article.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Parallel Computing",
  journal-URL =  "http://www.sciencedirect.com/science/journal/01678191",
}

@Article{Choi:2000:SCP,
  author =       "Sung-Eun Choi and E. Christopher Lewis",
  title =        "A study of common pitfalls in simple multi-threaded
                 programs",
  journal =      j-SIGCSE,
  volume =       "32",
  number =       "1",
  pages =        "325--329",
  month =        mar,
  year =         "2000",
  CODEN =        "SIGSD3",
  DOI =          "http://dx.doi.org/10.1145/331795.331879",
  ISSN =         "0097-8418",
  ISSN-L =       "0097-8418",
  bibdate =      "Mon Nov 19 10:05:03 MST 2012",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 http://www.math.utah.edu/pub/tex/bib/sigcse2000.bib",
  abstract =     "It is generally acknowledged that developing correct
                 multi-threaded codes is difficult, because threads may
                 interact with each other in unpredictable ways. The
                 goal of this work is to discover common multi-threaded
                 programming pitfalls, the knowledge of which will be
                 useful in instructing new programmers and in developing
                 tools to aid in multi-threaded programming. To this
                 end, we study multi-threaded applications written by
                 students from introductory operating systems courses.
                 Although the applications are simple, careful
                 inspection and the use of an automatic race detection
                 tool reveal a surprising quantity and variety of
                 synchronization errors. We describe and discuss these
                 errors, evaluate the role of automated tools, and
                 propose new tools for use in the instruction of
                 multi-threaded programming.",
  acknowledgement = ack-nhfb,
  fjournal =     "SIGCSE Bulletin (ACM Special Interest Group on
                 Computer Science Education)",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J688",
}

@Book{Christopher:2000:HPJ,
  author =       "Thomas Christopher and George Thiruvathukal",
  title =        "High Performance {Java} Platform Computing:
                 Multithreaded and Networked Programming",
  publisher =    pub-PH,
  address =      pub-PH:adr,
  pages =        "xxii + 409",
  year =         "2000",
  ISBN =         "0-13-016164-0",
  ISBN-13 =      "978-0-13-016164-2",
  LCCN =         "????",
  bibdate =      "Tue Feb 20 18:03:50 2001",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  price =        "US\$49.99",
  URL =          "http://www.sun.com/books/catalog/christopher/",
  acknowledgement = ack-nhfb,
}

@Article{Corbett:2000:USA,
  author =       "James C. Corbett",
  title =        "Using shape analysis to reduce finite-state models of
                 concurrent {Java} programs",
  journal =      j-TOSEM,
  volume =       "9",
  number =       "1",
  pages =        "51--93",
  month =        jan,
  year =         "2000",
  CODEN =        "ATSMER",
  ISSN =         "1049-331X (print), 1557-7392 (electronic)",
  ISSN-L =       "1049-331X",
  bibdate =      "Fri Apr 20 08:21:35 MDT 2001",
  bibsource =    "http://www.acm.org/pubs/toc/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://www.acm.org/pubs/articles/journals/tosem/2000-9-1/p51-corbett/p51-corbett.pdf;
                 http://www.acm.org/pubs/citations/journals/tosem/2000-9-1/p51-corbett/",
  abstract =     "Finite-state verification (e.g., model checking)
                 provides a powerful means to detect concurrency errors,
                 which are often subtle and difficult to reproduce.
                 Nevertheless, widespread use of this technology by
                 developers is unlikely until tools provide automated
                 support for extracting the required finite-state models
                 directly from program source. Unfortunately, the
                 dynamic features of modern languages such as Java
                 complicate the construction of compact finite-state
                 models for verification. In this article, we show how
                 shape analysis, which has traditionally been used for
                 computing alias information in optimizers, can be used
                 to greatly reduce the size of finite-state models of
                 concurrent Java programs by determining which
                 heap-allocated variables are accessible only by a
                 single thread, and which shared variables are protected
                 by locks. We also provide several other state-space
                 reductions based on the semantics of Java monitors. A
                 prototype of the reductions demonstrates their
                 effectiveness.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Transactions on Software Engineering and
                 Methodology",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J790",
  keywords =     "concurrent systems; finite-state verification; Java;
                 model extraction; modeling; shape analysis; state-space
                 reductions",
  subject =      "Software --- Software Engineering --- Software/Program
                 Verification (D.2.4)",
}

@Article{Cui:2000:MPC,
  author =       "J. Cui and J. L. Bordim and K. Nakano and T. Hayashi
                 and N. Ishii",
  title =        "Multithreaded Parallel Computer Model with Performance
                 Evaluation",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1800",
  pages =        "155--??",
  year =         "2000",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Fri Feb 1 09:16:18 MST 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t1800.htm;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://link.springer-ny.com/link/service/series/0558/bibs/1800/18000155.htm;
                 http://link.springer-ny.com/link/service/series/0558/papers/1800/18000155.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
}

@Article{Danjean:2000:IKA,
  author =       "Vincent Danjean and Raymond Namyst and Robert D.
                 Russell",
  title =        "Integrating Kernel Activations in a Multithreaded
                 Runtime System on Top of {L} {INUX}",
  journal =      j-LECT-NOTES-COMP-SCI,
  volume =       "1800",
  pages =        "1160--??",
  year =         "2000",
  CODEN =        "LNCSD9",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  bibdate =      "Fri Feb 1 09:16:18 MST 2002",
  bibsource =    "http://link.springer-ny.com/link/service/series/0558/tocs/t1800.htm;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://link.springer-ny.com/link/service/series/0558/bibs/1800/18001160.htm;
                 http://link.springer-ny.com/link/service/series/0558/papers/1800/18001160.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Lecture Notes in Computer Science",
}

@Article{Duda:2000:BVT,
  author =       "Kenneth J. Duda and David R. Cheriton",
  title =        "Borrowed-virtual-time {(BVT)} scheduling: supporting
                 latency-sensitive threads in a general-purpose
                 scheduler",
  journal =      j-OPER-SYS-REV,
  volume =       "34",
  number =       "2",
  pages =        "27--28",
  month =        apr,
  year =         "2000",
  CODEN =        "OSRED8",
  ISSN =         "0163-5980 (print), 1943-586X (electronic)",
  ISSN-L =       "0163-5980",
  bibdate =      "Sat Aug 26 08:55:42 MDT 2006",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Operating Systems Review",
}

@InProceedings{Engelschall:2000:PMS,
  author =       "Ralf S. Engelschall",
  title =        "Portable Multithreading --- The Signal Stack Trick for
                 User-Space Thread Creation",
  crossref =     "USENIX:2000:UAT",
  pages =        "239--249",
  year =         "2000",
  bibdate =      "Tue Oct 15 09:53:32 2002",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/multithreading.bib;
                 http://www.math.utah.edu/pub/tex/bib/usenix2000.bib",
  URL =          "http://www.usenix.org/events/usenix2000/general/engelschall.html",
  acknowledgement = ack-nhfb,
}

@Article{Flautner:2000:TLPa,
  author =       "Kristi{\'a}n Flautner and Rich Uhlig and Steve
                 Reinhardt and Trevor Mudge",
  title =        "Thread-level parallelism and interactive performance
                 of desktop applications",
  journal =      j-COMP-ARCH-NEWS,
  volume =       "28",
  number =       "5",
  pages =        "129--138",
  month =        dec,
  year =         "2000",
  CODEN =        "CANED2",
  ISSN =         "0163-5964 (print), 1943-5851 (electronic)",
  ISSN-L =       "0163-5964",
  bibdate =      "Fri May 12 09:41:22 MDT 2006",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGARCH Computer Architecture News",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J89",
}

@Article{Flautner:2000:TLPb,
  author =       "Kriszti{\'a}n Flautner and Rich Uhlig and Steve
                 Reinhardt and Trevor Mudge",
  title =        "Thread Level Parallelism and Interactive Performance
                 of Desktop Applications",
  journal =      j-SIGPLAN,
  volume =       "35",
  number =       "11",
  pages =        "129--138",
  month =        nov,
  year =         "2000",
  CODEN =        "SINODQ",
  DOI =          "http://dx.doi.org/10.1145.357001",
  ISBN =         "1-58113-317-0",
  ISBN-13 =      "978-1-58113-317-2",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:19 MST 2003",
  bibsource =    "http://foothill.lcs.mit.edu/asplos2k/program.html;
                 http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  URL =          "http://delivery.acm.org/10.1145/360000/357001/p129-flautner.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  keywords =     "IA-64",
}

@Article{Flautner:2000:TLPc,
  author =       "Kristi{\'a}n Flautner and Rich Uhlig and Steve
                 Reinhardt and Trevor Mudge",
  title =        "Thread-level parallelism and interactive performance
                 of desktop applications",
  journal =      j-OPER-SYS-REV,
  volume =       "34",
  number =       "5",
  pages =        "129--138",
  month =        dec,
  year =         "2000",
  CODEN =        "OSRED8",
  ISSN =         "0163-5980 (print), 1943-586X (electronic)",
  ISSN-L =       "0163-5980",
  bibdate =      "Sat Aug 26 08:55:56 MDT 2006",
  bibsource =    "http://portal.acm.org/;
                 http://www.math.utah.edu/pub/tex/bib/multithreading.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Operating Systems Review",
}

@Article{Garcia:2000:PTL,
  author =       "Felix Garcia and Javier Fernandez",
  title =        "{POSIX} Thread Libraries",
  journal =      j-LINUX-J,
  volume =       "70",
  pages =        "??--??",
  month =        feb,
  year =         "2000",
  CODEN =        "LIJOFX",
  ISSN =         "1075-3583 (print), 1938-3827 (electronic)",
  ISSN-L =