(original) (raw)
%!PS-Adobe-2.0 %%Creator: dvipsk 5.66a Copyright 1986-97 Radical Eye Software (www.radicaleye.com) %%Title: main.dvi %%Pages: 11 %%PageOrder: Ascend %%BoundingBox: 0 0 612 792 %%DocumentFonts: Helvetica-Bold Helvetica Times-Italic Times-Roman %%+ Times-BoldItalic %%EndComments %DVIPSCommandLine: dvips main -o %DVIPSParameters: dpi=600 %DVIPSSource: TeX output 1998.04.09:0910 %%BeginProcSet: tex.pro %! /TeXDict 300 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N /X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72 mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1} ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[matrix currentmatrix{dup dup round sub abs 0.00001 lt{round}if} forall round exch round exch]setmatrix}N /@landscape{/isls true N}B /@manualfeed{statusdict /manualfeed true put}B /@copies{/#copies X}B /FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{ /nn 8 dict N nn begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N string /base X array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{ /sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0] N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data dup length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{ 128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N /rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup /base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx 0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff .1 sub]{ch-image}imagemask restore}B /D{/cc X dup type /stringtype ne{]} if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{ cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin 0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore userdict /eop-hook known{eop-hook}if showpage}N /@start{userdict /start-hook known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X /IE 256 array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for 65781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N /RMat[1 0 0 -1 0 0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V {}B /RV statusdict begin /product where{pop false[(Display)(NeXT) (LaserWriter 16/600)]{dup length product length le{dup length product exch 0 exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false} ifelse end{{gsave TR -.1 .1 TR 1 1 scale rulex ruley false RMat{BDot} imagemask grestore}}{{gsave TR -.1 .1 TR rulex ruley scale 1 1 false RMat{BDot}imagemask grestore}}ifelse B /QV{gsave newpath transform round exch round exch itransform moveto rulex 0 rlineto 0 ruley neg rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 0 N /tail{dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}B /c{-4 M}B /d{ -3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{p 1 w} B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p a}B /bos{/SS save N}B /eos{SS restore}B end %%EndProcSet %%BeginProcSet: 8r.enc % @@psencodingfile@{ % author = "S. Rahtz, P. MacKay, Alan Jeffrey, B. Horn, K. Berry", % version = "0.6", % date = "22 June 1996", % filename = "8r.enc", % email = "kb@@mail.tug.org", % address = "135 Center Hill Rd. // Plymouth, MA 02360", % codetable = "ISO/ASCII", % checksum = "119 662 4424", % docstring = "Encoding for TrueType or Type 1 fonts to be used with TeX." % @} % % Idea is to have all the characters normally included in Type 1 fonts % available for typesetting. This is effectively the characters in Adobe % Standard Encoding + ISO Latin 1 + extra characters from Lucida. % % Character code assignments were made as follows: % % (1) the Windows ANSI characters are almost all in their Windows ANSI % positions, because some Windows users cannot easily reencode the % fonts, and it makes no difference on other systems. The only Windows % ANSI characters not available are those that make no sense for % typesetting -- rubout (127 decimal), nobreakspace (160), softhyphen % (173). quotesingle and grave are moved just because it's such an % irritation not having them in TeX positions. % % (2) Remaining characters are assigned arbitrarily to the lower part % of the range, avoiding 0, 10 and 13 in case we meet dumb software. % % (3) Y&Y Lucida Bright includes some extra text characters; in the % hopes that other PostScript fonts, perhaps created for public % consumption, will include them, they are included starting at 0x12. % % (4) Remaining positions left undefined are for use in (hopefully) % upward-compatible revisions, if someday more characters are generally % available. % % (5) hyphen appears twice for compatibility with both ASCII and Windows. % /TeXBase1Encoding [ % 0x00 (encoded characters from Adobe Standard not in Windows 3.1) /.notdef /dotaccent /fi /fl /fraction /hungarumlaut /Lslash /lslash /ogonek /ring /.notdef /breve /minus /.notdef % These are the only two remaining unencoded characters, so may as % well include them. /Zcaron /zcaron % 0x10 /caron /dotlessi % (unusual TeX characters available in, e.g., Lucida Bright) /dotlessj /ff /ffi /ffl /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef % very contentious; it's so painful not having quoteleft and quoteright % at 96 and 145 that we move the things normally found there down to here. /grave /quotesingle % 0x20 (ASCII begins) /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash % 0x30 /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question % 0x40 /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O % 0x50 /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore % 0x60 /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o % 0x70 /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef % rubout; ASCII ends % 0x80 /.notdef /.notdef /quotesinglbase /florin /quotedblbase /ellipsis /dagger /daggerdbl /circumflex /perthousand /Scaron /guilsinglleft /OE /.notdef /.notdef /.notdef % 0x90 /.notdef /.notdef /.notdef /quotedblleft /quotedblright /bullet /endash /emdash /tilde /trademark /scaron /guilsinglright /oe /.notdef /.notdef /Ydieresis % 0xA0 /.notdef % nobreakspace /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen % Y&Y (also at 45); Windows' softhyphen /registered /macron % 0xD0 /degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown % 0xC0 /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis % 0xD0 /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls % 0xE0 /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis % 0xF0 /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis ] def %%EndProcSet %%BeginProcSet: texps.pro %! TeXDict begin /rf{findfont dup length 1 add dict begin{1 index /FID ne 2 index /UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]/Metrics exch def dict begin Encoding{exch dup type /integertype ne{pop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get div def} ifelse}forall Metrics /Metrics currentdict end def[2 index currentdict end definefont 3 -1 roll makefont /setfont cvx]cvx def}def /ObliqueSlant {dup sin S cos div neg}B /SlantFont{4 index mul add}def /ExtendFont{3 -1 roll mul exch}def /ReEncodeFont{/Encoding exch def}def end %%EndProcSet %%BeginProcSet: special.pro %! TeXDict begin /SDict 200 dict N SDict begin /@SpecialDefaults{/hs 612 N /vs 792 N /ho 0 N /vo 0 N /hsc 1 N /vsc 1 N /ang 0 N /CLIP 0 N /rwiSeen false N /rhiSeen false N /letter{}N /note{}N /a4{}N /legal{}N}B /@scaleunit 100 N /@hscale{@scaleunit div /hsc X}B /@vscale{@scaleunit div /vsc X}B /@hsize{/hs X /CLIP 1 N}B /@vsize{/vs X /CLIP 1 N}B /@clip{ /CLIP 2 N}B /@hoffset{/ho X}B /@voffset{/vo X}B /@angle{/ang X}B /@rwi{ 10 div /rwi X /rwiSeen true N}B /@rhi{10 div /rhi X /rhiSeen true N}B /@llx{/llx X}B /@lly{/lly X}B /@urx{/urx X}B /@ury{/ury X}B /magscale true def end /@MacSetUp{userdict /md known{userdict /md get type /dicttype eq{userdict begin md length 10 add md maxlength ge{/md md dup length 20 add dict copy def}if end md begin /letter{}N /note{}N /legal{} N /od{txpose 1 0 mtx defaultmatrix dtransform S atan/pa X newpath clippath mark{transform{itransform moveto}}{transform{itransform lineto} }{6 -2 roll transform 6 -2 roll transform 6 -2 roll transform{ itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll curveto}}{{ closepath}}pathforall newpath counttomark array astore /gc xdf pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}if}N /txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1 -1 scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub neg 0 TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{noflips{TR pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop 90 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr 1 get neg sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr 2 get ppr 0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4 -1 roll add 2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S TR}if}N /cp {pop pop showpage pm restore}N end}if}if}N /normalscale{Resolution 72 div VResolution 72 div neg scale magscale{DVImag dup scale}if 0 setgray} N /psfts{S 65781.76 div N}N /startTexFig{/psf$SavedState save N userdict maxlength dict begin /magscale true def normalscale currentpoint TR /psf$ury psfts /psf$urx psfts /psf$lly psfts /psf$llx psfts /psf$y psfts /psf$x psfts currentpoint /psf$cy X /psf$cx X /psf$sx psf$x psf$urx psf$llx sub div N /psf$sy psf$y psf$ury psf$lly sub div N psf$sx psf$sy scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub TR /showpage{}N /erasepage{}N /copypage{}N /p 3 def @MacSetUp}N /doclip{ psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2 roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath moveto}N /endTexFig{end psf$SavedState restore}N /@beginspecial{SDict begin /SpecialSave save N gsave normalscale currentpoint TR @SpecialDefaults count /ocount X /dcount countdictstack N}N /@setspecial {CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx sub div rhiSeen{rhi ury lly sub div}{dup}ifelse scale llx neg lly neg TR }{rhiSeen{rhi ury lly sub div dup scale llx neg lly neg TR}if}ifelse CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury lineto closepath clip}if /showpage{}N /erasepage{}N /copypage{}N newpath }N /@endspecial{count ocount sub{pop}repeat countdictstack dcount sub{ end}repeat grestore SpecialSave restore end}N /@defspecial{SDict begin} N /@fedspecial{end}B /li{lineto}B /rl{rlineto}B /rc{rcurveto}B /np{ /SaveX currentpoint /SaveY X N 1 setlinecap newpath}N /st{stroke SaveX SaveY moveto}N /fil{fill SaveX SaveY moveto}N /ellipse{/endangle X /startangle X /yrad X /xrad X /savematrix matrix currentmatrix N TR xrad yrad scale 0 0 1 startangle endangle arc savematrix setmatrix}N end %%EndProcSet TeXDict begin 40258431 52099146 1000 600 600 (main.dvi) @start %DVIPSBitmapFont: Fa cmr5 5 9 /Fa 9 111 df<0030006001C00380030006000E001C001C003800380038007000700070 00F000F000F000F000F000F000F000F000F000F000F0007000700070003800380038001C 001C000E0006000300038001C0006000300C297B9E16>40 DI<0000E000000000E000000000E000000000E000000000E000000000E00000 0000E000000000E000000000E000000000E000000000E000000000E000000000E0000000 00E000000000E000000000E00000FFFFFFFFC0FFFFFFFFC0FFFFFFFFC00000E000000000 E000000000E000000000E000000000E000000000E000000000E000000000E000000000E0 00000000E000000000E000000000E000000000E000000000E000000000E000000000E000 0022237C9B2B>43 D<00600001E0000FE000FFE000FFE000F1E00001E00001E00001E000 01E00001E00001E00001E00001E00001E00001E00001E00001E00001E00001E00001E000 01E00001E00001E00001E0007FFF807FFF807FFF80111C7B9B1C>49 D<03FC000FFF003FFFC0781FE07807F0FC01F0FC01F8FC01F8FC00F87800F80001F80001 F00001F00003E00007C0000F80001E00003C0000700001C0000380180700180C00183800 387FFFF0FFFFF0FFFFF0FFFFF0151C7D9B1C>I<0001C00003C00007C0000FC0001FC000 3BC00073C00063C000C3C00183C00383C00703C00E03C01C03C03803C07003C0E003C0FF FFFEFFFFFEFFFFFE0003C00003C00003C00003C00003C0007FFE007FFE007FFE171C7E9B 1C>52 D<003F8000FFC003FFE007C0F00F01F01E01F03C00E03C00007C000078100078FF 00FBFF80FF03C0FE01E0FC00F0FC00F0F800F8F800F8F800F8F800F87800F87800F87800 F03C00F03C01E01F03C00FFF8007FF0001FC00151D7D9B1C>54 D108 D110 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fb cmsy5 5 1 /Fb 1 50 df<01FE0001FC0007FF8007FF001FFFE01FC7C03E1FF03E00E07803F8780070 6001FCE00030E0007FC00018C0003F800018C0001F800018C0000FC00018C0000FE00018 C0001FF00038600039FC00307000F0FE00F03803E07FC3E01F1FC03FFFC007FF000FFF00 01FC0003FC002D127B9139>49 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fc cmmi5 5 8 /Fc 8 113 df<007F0003FFC007FFE00F01E018000030000030000039F8001FFC001FF8 0033F000600000600000C00000C00000E000C07003803FFF001FFE0007F80013147D921C >34 D<0000600000E00000E00001C00001C0000380000380000700000700000700000E00 000E00001C00001C00001C0000380000380000700000700000E00000E00000E00001C000 01C0000380000380000700000700000700000E00000E00001C00001C00001C0000380000 380000700000700000E00000E00000C0000013297B9E1F>61 D<0FFFFFFFC00FFFFFFFC0 1FFFFFFFC01E00F807803800F803803800F801803001F001807001F001806001F0018060 01F00180C003E003000003E000000003E000000003E000000007C000000007C000000007 C000000007C00000000F800000000F800000000F800000000F800000001F000000001F00 0000001F0000000FFFFC00000FFFFC00000FFFF80000221C7D9B23>84 D<007C6003FEF00787F00F01F01E01E03C01E07C01E07C01E0F803C0F803C0F803C0F803 C2F80786F80786780F863C3F8C1FF3F807C0F017127C9120>97 D<007000F800F800F000 E00000000000000000000000000F801FC031E061E061E0C3C003C00780078007800F000F 081E181E181E301E700FE007800D1D7D9C16>105 D<0F01F807E0003F87FE1FF80033CE 1F387C0063D80F603C00C3F00FC03C00C3E00F803C0003C00F003C0003C00F003C000780 1E00780007801E00780007801E00780007801E00F0400F003C00F0C00F003C01E0C00F00 3C01E1800F003C01E3801E007800FF000C0030007C002A127D9133>109 D<0F03F0003F87FC0033DC1E0063F81E00C3F01E00C3E01E0003C01E0003C01E0007803C 0007803C0007803C00078078200F0078600F00F0600F00F0C00F00F1C01E007F800C003E 001B127D9125>I<03C0F8000FE3FE000CFF0F0018FC078030F8078030F0078000F00780 00F0078001E00F8001E00F8001E00F8001E00F0003C01F0003C01E0003E03C0003F0F800 07BFE000078F800007800000078000000F0000000F0000000F0000007FE000007FE00000 FFE00000191A7F911F>112 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fd cmr8 8 5 /Fd 5 62 df<003FC00000FFF00003FFFC0007F0FE000FC03F000F801F001F000F801F00 0F803F000FC03E0007C07E0007E07E0007E07E0007E07E0007E07E0007E0FE0007F0FE00 07F0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE00 07F0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F07E0007E07E0007E07E0007E07E00 07E03F000FC03F000FC03F000FC01F000F800F801F000FC03F0007F0FE0003FFFC0000FF F000003FC0001C2D7DAB23>48 D<000E00001E00007E0001FE00FFFE00FFFE00FE7E0000 7E00007E00007E00007E00007E00007E00007E00007E00007E00007E00007E00007E0000 7E00007E00007E00007E00007E00007E00007E00007E00007E00007E00007E00007E0000 7E00007E00007E00007E00007E00007E00007E00007E00007E0000FF007FFFFF7FFFFF7F FFFF182C7BAB23>I<007F800001FFF00007FFFC000F81FE001E007F0038003F8070001F C078001FE0FC000FE0FE000FE0FF000FF0FF0007F0FF0007F07E0007F03C0007F000000F F000000FF000000FE000000FE000001FC000001F8000003F8000003F0000007E000000FC 000001F8000003F0000003C00000078000000F0000001E0000003C00000078007000F000 7001E0007003C000E0070000E00E0000E01FFFFFE03FFFFFE07FFFFFE0FFFFFFC0FFFFFF C0FFFFFFC01C2C7DAB23>I<003F800001FFF00003FFFC0007C0FE000E007F001E003F80 3F003F803F801FC03F801FC03F801FC03F801FC01F003FC00E003F8000003F8000003F80 00007F0000007E000000FC000003F80000FFF00000FFC00000FFF0000000FC0000007E00 00003F0000001F8000001FC000000FE000000FE000000FF000000FF03C000FF07E000FF0 FF000FF0FF000FF0FF000FE0FF000FE0FE001FC07C001FC078003F803C003F001F80FE00 07FFFC0003FFF000007F80001C2D7DAB23>I61 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fe cmmi8 8 5 /Fe 5 119 df<3C007E00FF00FF00FF80FF807F803F800380038003800780070007000E 000E001C003C0038007000200009157A8714>59 D<001FFFFFFF00003FFFFFFFC0001FFF FFFFF00000FE0007F80000FE0000FC0000FE00007E0000FE00007F0001FC00003F0001FC 00003F0001FC00003F0001FC00003F0003F800007F0003F800007F0003F800007F0003F8 00007E0007F00000FE0007F00000FC0007F00001FC0007F00003F8000FE00007F0000FE0 000FC0000FE0007F80000FFFFFFE00001FFFFFF800001FFFFFC000001FC0000000001FC0 000000003F80000000003F80000000003F80000000003F80000000007F00000000007F00 000000007F00000000007F0000000000FE0000000000FE0000000000FE0000000000FE00 00000001FC0000000001FC0000000001FC00000000FFFFF0000000FFFFF0000000FFFFE0 000000302D7DAC2D>80 D<000700000F80001FC0001FC0001F80001F80000E0000000000 000000000000000000000000000000000000000001E00007F8000FFC001E3E00383E0038 3E00707E00707E00E07E00E0FC00E0FC0040FC0001F80001F80001F80003F00003F00007 E00007E00007E0C00FC1C00FC1C01F81C01F83801F83801F87001F87000F8E000FFC0007 F80001F000122E7EAC18>105 D<03E000000007F0000E000FF8001F001C7C001F80387E 003F00387E003F00707E003F00707E003F00E0FC007E00E0FC007E00E0FC007E0041F800 7E0001F800FC0003F000FC0003F000FC0003F000FC0007E001F80007E001F80007E001F8 0007E001F86007C003F0E00FC003F0E00FC003F0E00FC003F0E007C007E1C007E00FE1C0 07E01FE1C003F07BF38001FFF1FF8000FFE0FF00003F803C00231F7E9D29>117 D<03E000E007F001F00FF803F81C7C03F8387E03FC387E03FC707E01FC707E00F8E0FC00 78E0FC0078E0FC007841F8007801F8007003F0007003F0007003F0007007E000E007E000 E007E000E007E001C007C001C00FC003800FC0038007C0070007C0070007E00E0003E01C 0003F0780001FFF000007FE000001F80001E1F7E9D22>I E %EndDVIPSBitmapFont /Ff 138[41 2[26 8[18 1[41 1[37 30[41 17[37 37 37 37 49[{ TeXBase1Encoding ReEncodeFont}10 66.4176 /Helvetica-Bold rf %DVIPSBitmapFont: Fg cmsy8 8 2 /Fg 2 104 df<00001FC00000FFC00003FFC00007F800000FE000001F8000003F800000 3F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F000000 3F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F000000 3F0000003F0000003F0000007E000000FC000001F8000007F00000FFE00000FF000000FF E0000007F0000001F8000000FC0000007E0000003F0000003F0000003F0000003F000000 3F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F000000 3F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F800000 1F8000000FE0000007F8000003FFC00000FFC000001FC01A437CB123>102 D<7E000000FFC00000FFF0000007F8000001FC0000007E0000007F0000003F0000003F00 00003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F00 00003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F00 00003F0000001F8000000FC0000007E0000003F8000001FFC000003FC00001FFC00003F8 000007E000000FC000001F8000003F0000003F0000003F0000003F0000003F0000003F00 00003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F00 00003F0000003F0000003F0000003F0000003F0000003F0000007F0000007E000001FC00 0007F80000FFF00000FFC000007E0000001A437CB123>I E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fh cmtt8 8 64 /Fh 64 123 df<187EFFFFFFFFFFFFFFFFFFFFFFFFFF7E7E7E7E7E7E7E7E7E7E7E7E1800 0000000000187E7EFFFF7E7E18082A73A923>33 D<000380000FC0001FC0003F80007F00 00FC0001F80003F00003F00007E0000FC0000FC0001F80001F80003F00003F00003E0000 7E00007E00007E00007C0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000 FC0000FC00007C00007E00007E00007E00003E00003F00003F00001F80001F80000FC000 0FC00007E00003F00003F00001F80000FC00007F00003F80001FC0000FC0000380123476 AD23>40 D<700000FC0000FE00007F00003F80000FC00007E00003F00003F00001F80000 FC0000FC00007E00007E00003F00003F00001F00001F80001F80001F80000F80000FC000 0FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000F80001F80001F8000 1F80001F00003F00003F00007E00007E0000FC0000FC0001F80003F00003F00007E0000F C0003F80007F0000FE0000FC000070000012347AAD23>I<001E0000003F0000003F0000 003F0000003F0000003F0000783F07807E3F1F80FF3F3FC0FFFFFFC07FFFFF803FFFFF00 0FFFFC0003FFF00000FFC00003FFF0000FFFFC003FFFFF007FFFFF80FFFFFFC0FF3F3FC0 7E3F1F80783F0780003F0000003F0000003F0000003F0000003F0000001E00001A1D7CA2 23>I<0007800000078000000FC000000FC000000FC000000FC000000FC000000FC00000 0FC000000FC000000FC000000FC0007FFFFFF87FFFFFF8FFFFFFFCFFFFFFFC7FFFFFF87F FFFFF8000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC00000 0FC000000FC00000078000000780001E1E7EA223>I<0F001F803FC07FE07FE07FF07FF0 3FF01FF00FF003E003E007E00FC03F807F00FE007C0030000C13758923>I<7FFFFF807F FFFF80FFFFFFC0FFFFFFC07FFFFF807FFFFF801A067C9623>I<1E003F007F80FFC0FFC0 FFC0FFC07F803F001E000A0A748923>I<000003800000078000000FC000000FC000001F C000001F8000003F8000003F0000007F0000007E0000007E000000FE000000FC000001FC 000001F8000003F8000003F0000007F0000007E0000007E000000FE000000FC000001FC0 00001F8000003F8000003F0000003F0000007F0000007E000000FE000000FC000001FC00 0001F8000001F8000003F8000003F0000007F0000007E000000FE000000FC000001FC000 001F8000001F8000003F8000003F0000007F0000007E000000FE000000FC000000FC0000 0078000000780000001A347CAD23>I<001F8000007FE00001FFF80003FFFC0007FFFE00 07F0FE000FE07F001FC03F801F801F803F000FC03F000FC03F000FC07E0007E07E0007E0 7E0007E07C0003E0FC0003F0FC0003F0FC0003F0FC0003F0FC0003F0FC0003F0FC0003F0 FC0003F0FC0003F0FC0003F0FC0003F07E0007E07E0007E07E0007E07E0007E03F000FC0 3F000FC03F801FC01F801F801FC03F800FE07F0007F0FE0007FFFE0003FFFC0001FFF800 007FE000001F80001C2B7DA923>I<000C00001E00003E00003E00007E0000FE0001FE00 03FE003FFE00FFFE00FFFE00FF7E007C7E00007E00007E00007E00007E00007E00007E00 007E00007E00007E00007E00007E00007E00007E00007E00007E00007E00007E00007E00 007E00007E00007E00007E00007E00007E003FFFFC7FFFFE7FFFFE7FFFFE7FFFFC172A7A A923>I<007F800001FFF00007FFFC000FFFFE001FFFFF003F80FF807F003FC07E000FC0 FC000FE0FC0007E0FE0003F0FE0003F0FE0003F07C0003F0100003F0000003F0000003F0 000007E0000007E000000FC000000FC000001F8000003F8000007F000000FE000001FC00 0003F8000007F000000FE000003F8000007F000000FE000001FC000003F8000007E001E0 1FC003F03F8003F07FFFFFF0FFFFFFF0FFFFFFF0FFFFFFF07FFFFFE01C2A7DA923>I<00 3F800001FFF00003FFFC000FFFFE001FFFFF001FC07F803F801F803F800FC03F800FC03F 800FC01F000FC00E000FC000000FC000001F8000003F8000007F000001FF00007FFE0000 FFFC0000FFF00000FFFC00007FFF0000007F8000001F8000000FC0000007E0000007E000 0003F0000003F0000003F0380003F07C0003F0FE0003F0FE0007E0FE0007E0FE000FC07F 001FC07FC07F803FFFFF001FFFFE0007FFFC0001FFF000007F80001C2B7DA923>I<0001 FC000003FE000003FE000007FE000007FE00000FFE00001FBE00001FBE00003F3E00003E 3E00007E3E0000FC3E0000FC3E0001F83E0003F03E0003F03E0007E03E0007C03E000FC0 3E001F803E001F803E003F003E003E003E007E003E00FC003E00FFFFFFF8FFFFFFFCFFFF FFFCFFFFFFFC7FFFFFF800003E0000003E0000003E0000003E0000003E0000003E000000 3E00000FFFF8000FFFF8001FFFFC000FFFF8000FFFF81E2A7EA923>I<1FFFFF003FFFFF 803FFFFF803FFFFF803FFFFF003F0000003F0000003F0000003F0000003F0000003F0000 003F0000003F0000003F0000003F0000003F1FC0003F7FF8003FFFFC003FFFFE003FFFFF 003FE03F803F801FC03E000FC01E0007E0000007E0000003F0000003F0000003F0380003 F07C0003F0FE0003F0FE0003F0FE0007E0FC0007E07E000FC07F003FC03FC0FF803FFFFF 001FFFFE0007FFF80001FFE000007F80001C2A7DA823>I<0003F800000FFE00003FFF00 00FFFF8001FFFF8003FE1FC007F80FC007E01FC00FC01FC01F800F801F800F803F000000 3F0000007E0000007E0000007E3FF0007CFFFC00FDFFFE00FFFFFF00FFFFFF80FFC03F80 FF801FC0FF000FE0FE0007E0FE0007E0FE0003F0FE0003F0FE0003F07E0003F07E0003F0 7E0003F07E0003F03E0003F03F0007E03F0007E01F800FC01FC01FC00FE07F8007FFFF00 03FFFE0001FFFC00007FF000001FC0001C2B7DA923>I<78000000FFFFFFE0FFFFFFF0FF FFFFF0FFFFFFF0FFFFFFE0FC000FC0FC001F8078003F0000007E0000007E000000FC0000 01F8000001F8000003F0000007E0000007E000000FC000000FC000001F8000001F800000 1F0000003F0000003F0000007E0000007E0000007E0000007E000000FC000000FC000000 FC000000FC000000FC000001F8000001F8000001F8000001F8000001F8000001F8000001 F8000001F8000000F00000006000001C2B7DA923>I<003FC00001FFF80003FFFC0007FF FE000FFFFF001FE07F803F801FC03F000FC07F000FE07E0007E07E0007E07E0007E07E00 07E07F000FE03F000FC01F801F801FC03F8007FFFE0003FFFC0000FFF00000FFF00003FF FC000FF0FF001FC03F803F801FC07F000FE07E0007E0FC0003F0FC0003F0FC0003F0FC00 03F0FC0003F0FC0003F0FE0007F07E0007E07F000FE03F801FC01FE07F801FFFFF800FFF FF0003FFFC0001FFF800003FC0001C2B7DA923>I<001F800000FFF00003FFF80007FFFC 000FFFFE001FE07F003F803F803F001F807F000FC07E000FC0FE0007E0FC0007E0FC0007 E0FC0007E0FC0007F0FC0007F0FC0007F0FC0007F07E0007F07E0007F07F000FF03F801F F01FC03FF01FFFFFF00FFFFFF007FFFBF003FFF3F000FFC7E0000007E0000007E000000F C000000FC01F001F801F001F803F803F003F807F003F00FE003F83FC001FFFF8000FFFF0 000FFFE00003FF800000FC00001C2B7DA923>I<0F001F803FC07FE07FE07FE07FE03FC0 1F800F000000000000000000000000000000000000000F001F803FC07FC07FE07FE07FE0 3FE01FE00FE007C007C00FC01F803F807F00FE007C0030000B26759C23>59 D<0000038000000F8000001FC000003FC00000FF800001FF800007FE00000FFC00001FF8 00007FE00000FFC00001FF000007FE00000FFC00001FF000007FE000007FC00000FF0000 00FF0000007FC000007FE000001FF000000FFC000007FE000001FF000000FFC000007FE0 00001FF800000FFC000007FE000001FF800000FF8000003FC000001FC000000F80000003 801A247CA523>I<7FFFFFF87FFFFFF8FFFFFFFCFFFFFFFC7FFFFFF83FFFFFF000000000 00000000000000000000000000000000000000003FFFFFF07FFFFFF8FFFFFFFCFFFFFFFC 7FFFFFF87FFFFFF81E127E9C23>I<700000007C000000FE000000FF0000007FC000007F E000001FF800000FFC000007FE000001FF800000FFC000003FE000001FF800000FFC0000 03FE000001FF800000FF8000003FC000003FC00000FF800001FF800003FE00000FFC0000 1FF800003FE00000FFC00001FF800007FE00000FFC00001FF800007FE000007FC00000FF 000000FE0000007C000000700000001A247CA523>I<000FC000001FE000001FE000001F E000003FF000003FF000003FF000003CF000003CF000007CF800007CF800007CF800007C F800007CF80000FCFC0000FCFC0000FCFC0000F87C0001F87E0001F87E0001F87E0001F8 7E0001F87E0003F03F0003F03F0003F03F0003F03F0003FFFF0007FFFF8007FFFF8007FF FF8007FFFF8007E01F800FE01FC00FC00FC00FC00FC00FC00FC07FF03FF8FFF87FFCFFF8 7FFCFFF87FFC7FF03FF81E2A7EA923>65 D<7FFFF800FFFFFF00FFFFFF80FFFFFFC07FFF FFE00FC00FF00FC007F00FC003F00FC001F80FC001F80FC001F80FC001F80FC001F80FC0 03F80FC003F00FC007F00FC01FE00FFFFFC00FFFFF800FFFFE000FFFFF800FFFFFE00FC0 0FE00FC003F00FC001F80FC001F80FC000FC0FC000FC0FC000FC0FC000FC0FC000FC0FC0 00FC0FC001FC0FC001F80FC003F80FC00FF07FFFFFF0FFFFFFE0FFFFFFC0FFFFFF807FFF FC001E297FA823>I<7FFFF000FFFFFC00FFFFFE00FFFFFF007FFFFF800FC07FC00FC01F C00FC00FE00FC007E00FC007F00FC003F00FC003F80FC001F80FC001F80FC001F80FC000 FC0FC000FC0FC000FC0FC000FC0FC000FC0FC000FC0FC000FC0FC000FC0FC000FC0FC000 FC0FC000FC0FC001F80FC001F80FC001F80FC003F80FC003F00FC007F00FC007F00FC00F E00FC01FC00FC07FC07FFFFF80FFFFFF00FFFFFE00FFFFFC007FFFF0001E297FA823>68 DI<000FC1C0003FF1E0 00FFFBE001FFFFE003FFFFE007F83FE00FE01FE00FC01FE01F800FE01F800FE03F0007E0 3F0007E07E0007E07E0007E07E0003C07E000000FC000000FC000000FC000000FC000000 FC000000FC000000FC000000FC007FF8FC00FFFCFC00FFFCFC00FFFC7E007FF87E0007E0 7E0007E07E0007E03F000FE03F000FE01F800FE01F800FE00FC01FE00FE01FE007F83FE0 03FFFFE001FFFFE000FFFFE0003FF3C0000F80001E2B7EA923>71 D<7FFF0000FFFF8000FFFF8000FFFF80007FFF000007E0000007E0000007E0000007E000 0007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E000 0007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E000 0007E0000007E0000007E0003C07E0007E07E0007E07E0007E07E0007E07E0007E07E000 7E7FFFFFFEFFFFFFFEFFFFFFFEFFFFFFFE7FFFFFFC1F297FA823>76 D<7FE00FFEFFF01FFFFFF01FFFFFF81FFF7FF80FFE0FF801F00FBC01F00FBC01F00FBC01 F00F9E01F00F9E01F00F9E01F00F9F01F00F8F01F00F8F01F00F8F81F00F8F81F00F8781 F00F87C1F00F87C1F00F83C1F00F83E1F00F83E1F00F81E1F00F81F1F00F81F1F00F80F1 F00F80F1F00F80F9F00F8079F00F8079F00F8079F00F803DF00F803DF00F803DF00F801F F07FF01FF0FFF81FF0FFF80FF0FFF80FF07FF007E020297FA823>78 D<03FFF0000FFFFC001FFFFE003FFFFF003FFFFF007F807F807F003F807E001F807E001F 80FE001FC0FC000FC0FC000FC0FC000FC0FC000FC0FC000FC0FC000FC0FC000FC0FC000F C0FC000FC0FC000FC0FC000FC0FC000FC0FC000FC0FC000FC0FC000FC0FC000FC0FC000F C0FC000FC0FC000FC0FC000FC0FC000FC0FC000FC0FC000FC0FE001FC07E001F807E001F 807F003F807FC0FF803FFFFF003FFFFF001FFFFE000FFFFC0003FFF0001A2B7CA923>I< FFFFF000FFFFFE00FFFFFF00FFFFFF807FFFFFC00FC03FE00FC00FF00FC007F00FC003F0 0FC003F80FC001F80FC001F80FC001F80FC001F80FC001F80FC003F80FC003F00FC007F0 0FC00FF00FC03FE00FFFFFC00FFFFF800FFFFF000FFFFE000FFFF0000FC000000FC00000 0FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC00000 7FFC0000FFFC0000FFFE0000FFFC0000FFFC00001D297EA823>I<7FFFC00000FFFFF800 00FFFFFC0000FFFFFF00007FFFFF00000FC07F80000FC03FC0000FC00FC0000FC00FE000 0FC007E0000FC007E0000FC007E0000FC007E0000FC007E0000FC00FE0000FC00FC0000F C03FC0000FC07F80000FFFFF00000FFFFF00000FFFFC00000FFFFC00000FFFFE00000FC0 7F00000FC03F00000FC01F80000FC01F80000FC01F80000FC01F80000FC01F80000FC01F 80000FC01F80000FC01F86000FC01F9F800FC01F9F800FC01F9F807FF80FDF80FFFC0FFF 00FFFC07FF00FFFC07FE007FF801FC00000000F800212A7FA823>82 D<007F038001FFE3C007FFFFC00FFFFFC01FFFFFC03F80FFC07F003FC07E003FC07C001F C0FC001FC0FC000FC0FC000FC0FC000FC0FC0007807E0000007F0000007F8000003FF800 001FFFC0000FFFF00007FFFC0001FFFF00007FFF800007FF8000007FC000000FE0000007 E0000007F0000003F0780003F0FC0003F0FC0003F0FC0003F0FC0003F0FE0007E0FE0007 E0FF800FC0FFE03FC0FFFFFF80FFFFFF00FBFFFE00F0FFF800701FE0001C2B7DA923>I< 7FFFFFF8FFFFFFFCFFFFFFFCFFFFFFFCFFFFFFFCFC0FC0FCFC0FC0FCFC0FC0FCFC0FC0FC FC0FC0FC780FC078000FC000000FC000000FC000000FC000000FC000000FC000000FC000 000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000 000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000 01FFFE0003FFFF0003FFFF0003FFFF0001FFFE001E297EA823>I<7FF81FFEFFFC3FFFFF FC3FFFFFFC3FFF7FF81FFE0FC003F00FC003F00FC003F00FC003F00FC003F00FC003F00F C003F00FC003F00FC003F00FC003F00FC003F00FC003F00FC003F00FC003F00FC003F00F C003F00FC003F00FC003F00FC003F00FC003F00FC003F00FC003F00FC003F00FC003F00F C003F00FC003F007E007E007E007E007E007E003F00FC003F81FC001FC3F8000FFFF0000 7FFE00003FFC00001FF8000007E000202A7FA823>I<3FFFFFE07FFFFFF07FFFFFF07FFF FFF07FFFFFE07E000FE07E000FC07E001F807E003F807E003F003C007F0000007E000000 FC000001FC000001F8000003F0000007F0000007E000000FC000001FC000001F8000003F 8000003F0000007E000000FE000000FC000001F8000003F8000003F0000007E001E00FE0 03F00FC003F01FC003F01F8003F03F0003F07F0003F07FFFFFF0FFFFFFF0FFFFFFF0FFFF FFF07FFFFFE01C297DA823>90 D<7FFFC0FFFFE0FFFFE0FFFFE0FFFFC0FC0000FC0000FC 0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC 0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC 0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC 0000FC0000FC0000FC0000FFFFC0FFFFE0FFFFE0FFFFE07FFFC0133473AD23>I<7FFFC0 FFFFE0FFFFE0FFFFE07FFFE00007E00007E00007E00007E00007E00007E00007E00007E0 0007E00007E00007E00007E00007E00007E00007E00007E00007E00007E00007E00007E0 0007E00007E00007E00007E00007E00007E00007E00007E00007E00007E00007E00007E0 0007E00007E00007E00007E00007E00007E00007E00007E00007E00007E07FFFE0FFFFE0 FFFFE0FFFFE07FFFC013347EAD23>93 D<03FF00000FFFE0001FFFF8003FFFFC003FFFFE 003F80FF001F003F001F003F8000001F8000001F800007FF8000FFFF8003FFFF800FFFFF 801FFFFF803FF81F807F801F80FE001F80FC001F80FC001F80FC001F80FC003F807E007F 807F81FF803FFFFFFC1FFFFFFE0FFFEFFE07FF87FE01FE03FC1F1D7D9C23>97 D<7FC00000FFE00000FFE00000FFE000007FE0000007E0000007E0000007E0000007E000 0007E0000007E0000007E0000007E1FC0007E7FF0007FFFF8007FFFFC007FFFFE007FE0F F007F803F807F001F807E000FC07E000FC07E000FC07E0007E07E0007E07E0007E07E000 7E07E0007E07E0007E07E0007E07E000FC07E000FC07F001FC07F001F807F803F807FC0F F007FFFFE007FFFFC007FFFF8007E7FE0003C1F8001F297FA823>I<001FF800007FFE00 01FFFF0003FFFF800FFFFF801FF03F801FC01F003F801F003F0000007E0000007E000000 FC000000FC000000FC000000FC000000FC000000FC000000FC0000007E0000007E000780 3F000FC03F800FC01FC01F801FF83F800FFFFF0003FFFE0001FFFC00007FF800001FC000 1A1D7C9C23>I<0000FF800001FFC00001FFC00001FFC00000FFC000000FC000000FC000 000FC000000FC000000FC000000FC000000FC0003F0FC000FFEFC003FFFFC007FFFFC00F FFFFC01FE07FC03F803FC03F001FC07F000FC07E000FC07E000FC0FC000FC0FC000FC0FC 000FC0FC000FC0FC000FC0FC000FC0FC000FC07E000FC07E000FC07E001FC03F003FC03F 803FC01FE0FFC00FFFFFFC07FFFFFE03FFEFFE01FFCFFE003F07FC1F297EA823>I<001F C000007FF00001FFFC0007FFFE000FFFFF001FE07F801FC01F803F000FC03F000FC07E00 0FC07E0007E0FFFFFFE0FFFFFFE0FFFFFFE0FFFFFFE0FFFFFFC0FC000000FC0000007E00 00007E0003C03F0007E03F8007E01FE00FC00FF81FC007FFFF8003FFFF0001FFFE00007F F800000FE0001B1D7D9C23>I<00007E000001FF800007FFC0000FFFE0001FFFE0003F8F E0007F07C0007E0380007E0000007E0000007E0000007E00007FFFFF80FFFFFFC0FFFFFF C0FFFFFFC07FFFFF80007E0000007E0000007E0000007E0000007E0000007E0000007E00 00007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E00 00007E0000007E0000007E00007FFFFE00FFFFFF00FFFFFF00FFFFFF007FFFFE001B297E A823>I<000001F0003F87F800FFEFFC03FFFFFE07FFFFFE0FFFFF7E0FE0FE7C1F803F38 1F803F003F001F803F001F803F001F803F001F803F001F801F803F001F803F000FE0FE00 0FFFFE000FFFFC001FFFF8001FFFE0001F3F80001F0000001F0000001F0000001FFFF800 0FFFFF000FFFFFC01FFFFFE03FFFFFF07F0007F87C0001F87C0000F8F800007CF800007C F800007CF800007CFC0000FC7C0000F87F0003F83FE01FF01FFFFFE00FFFFFC003FFFF00 00FFFC00001FE0001F2E7E9D23>I<7FC00000FFE00000FFE00000FFE000007FE0000007 E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0FC0007E7FF0007 EFFF8007FFFF8007FFFFC007FE0FC007FC07E007F807E007F007E007E007E007E007E007 E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007 E007E007E007E007E007E007E007E07FFE0FFEFFFF1FFFFFFF1FFFFFFF1FFF7FFE0FFE20 297FA823>I<00180000007E0000007E000000FF000000FF0000007E0000007E00000018 000000000000000000000000000000000000000000007FFE00007FFF0000FFFF00007FFF 00007FFF0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F 0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F 0000003F0000003F00007FFFFF00FFFFFF80FFFFFF80FFFFFF807FFFFF00192A7BA923> I<7FC00000007FE0000000FFE00000007FE00000007FE000000003E000000003E0000000 03E000000003E000000003E000000003E000000003E000000003E0FFFC0003E1FFFE0003 E1FFFE0003E1FFFE0003E0FFFC0003E01F800003E03F000003E07E000003E0FC000003E1 F8000003E3F0000003E7E0000003EFE0000003FFF0000003FFF8000003FEFC000003FC7C 000003F87E000003F03F000003E01F800003E00F800003E00FC00003E007E00003E003F0 007FFE0FFF007FFF0FFF80FFFF1FFF807FFF0FFF807FFE0FFF00212980A823>107 D<7FFF0000FFFF8000FFFF8000FFFF80007FFF8000001F8000001F8000001F8000001F80 00001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F80 00001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F80 00001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F80 007FFFFFE0FFFFFFF0FFFFFFF0FFFFFFF07FFFFFE01C297DA823>I<7F0F80F8007FBFC3 FC00FFFFE7FE007FFFFFFF007FFFFFFF000FF1FF1F800FE0FE0F800FC0FC0F800FC0FC0F 800F80F80F800F80F80F800F80F80F800F80F80F800F80F80F800F80F80F800F80F80F80 0F80F80F800F80F80F800F80F80F800F80F80F800F80F80F800F80F80F800F80F80F800F 80F80F807FF0FF0FF07FF1FF1FF0FFF9FF9FF87FF1FF1FF07FF0FF0FF0251D819C23>I< 7FC0FC00FFE7FF00FFEFFF80FFFFFF807FFFFFC007FE0FC007FC07E007F807E007F007E0 07E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007E0 07E007E007E007E007E007E007E007E007E007E007E007E07FFE0FFEFFFF1FFFFFFF1FFF FFFF1FFF7FFE0FFE201D7F9C23>I<003F000001FFE00003FFF00007FFF8000FFFFC001F E1FE003F807F003F003F007E001F807E001F80FE001FC0FC000FC0FC000FC0FC000FC0FC 000FC0FC000FC0FC000FC0FC000FC0FE001FC07E001F807F003F803F003F003F807F001F E1FE000FFFFC0007FFF80003FFF00001FFE000003F00001A1D7C9C23>I<7FC1FC00FFE7 FF00FFFFFF80FFFFFFC07FFFFFE007FE0FF007F803F807F001F807E000FC07E000FC07E0 00FC07E0007E07E0007E07E0007E07E0007E07E0007E07E0007E07E0007E07E000FC07E0 00FC07F001FC07F001F807F803F807FC0FF007FFFFE007FFFFC007FFFF8007E7FE0007E1 F80007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0 000007E000007FFE0000FFFF0000FFFF0000FFFF00007FFE00001F2C7F9C23>I<001F81 E00000FFF3F00001FFFBF00007FFFFF0000FFFFFF0001FF03FF0001FC01FF0003F800FF0 007F0007F0007E0007F0007E0003F000FC0003F000FC0003F000FC0003F000FC0003F000 FC0003F000FC0003F000FC0003F0007E0003F0007E0003F0007F0007F0003F000FF0003F 801FF0001FE07FF0000FFFFFF00007FFFFF00003FFFBF00000FFE3F000003F83F0000000 03F000000003F000000003F000000003F000000003F000000003F000000003F000000003 F000000003F000000003F00000007FFF8000007FFF800000FFFFC000007FFF8000007FFF 80222C7E9C23>I<7FF807E07FFC1FF8FFFC7FFC7FFDFFFE7FFFFFFE00FFF8FE00FFE07C 00FFC07C00FF800000FF000000FE000000FE000000FE000000FC000000FC000000FC0000 00FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC00007FFFFE00 7FFFFE00FFFFFF007FFFFE007FFFFE001F1D7F9C23>I<01FF9C07FFFE1FFFFE3FFFFE7F FFFE7E00FEF8007EF8007EF8003CFC00007F00007FFC003FFFC01FFFF007FFF801FFFC00 07FE00007E78003FFC001FFC001FFE001FFE003FFF80FEFFFFFEFFFFFCFFFFF8F3FFE070 FF80181D7B9C23>I<00F0000001F8000001F8000001F8000001F8000001F8000001F800 0001F800007FFFFF80FFFFFFC0FFFFFFC0FFFFFFC07FFFFF8001F8000001F8000001F800 0001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F800 0001F803C001F807E001F807E001F807E001F807E000FC0FC000FE1FC000FFFF80007FFF 00003FFE00001FF8000007E0001B257EA423>I<7FC07FC0FFE0FFE0FFE0FFE0FFE0FFE0 7FE07FE007E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007E0 07E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007E0 07E00FE007F03FE003FFFFFE03FFFFFF01FFFFFF00FFF7FF003FC3FE201D7F9C23>I<7F F03FF8FFF87FFCFFF87FFCFFF87FFC7FF03FF80FC00FC007C00F8007C00F8007C00F8003 E01F0003E01F0003E01F0003F03F0001F03E0001F03E0001F87E0000F87C0000F87C0000 F87C00007CF800007CF800007CF800003CF000003FF000003FF000001FE000001FE00000 1FE000000FC0001E1D7E9C23>I<7FF81FFEFFFC3FFFFFFC3FFFFFFC3FFF7FF81FFE1F00 00F80F8001F00F8001F00F8001F00F8001F00F8001F00F8001F00F87E1F007CFF3E007CF F3E007CFF3E007CFF3E007DFFBE007DE7BE003DE7BC003DE7BC003DE7BC003DE7BC003FE 7FC003FC3FC003FC3FC001FC3F8001FC3F8000F81F00201D7F9C23>I<7FF07FF0FFF8FF F8FFF8FFF8FFF8FFF87FF07FF003F03E0001F87E0000F8FC0000FCF800007FF000003FF0 00001FE000001FC000000FC000000FC000001FC000001FE000003FF000007DF800007CF8 0000F87C0001F07E0003F03E0003E01F007FF87FF8FFF87FFCFFFCFFFCFFF87FFC7FF87F F81E1D7E9C23>I<7FF03FF8FFF87FFCFFF87FFCFFF87FFC7FF03FF807C007C007C00F80 07E00F8003E00F8003E01F0003F01F0001F01F0001F03F0001F83E0000F83E0000F83E00 007C7C00007C7C00007C7C00003C7800003EF800003EF800001EF000001FF000001FF000 000FE000000FE0000007E0000007E0000007C0000007C000000FC000000F8000000F8000 001F80003E1F00007F3F00007F3E00007EFE00007FFC00007FF800003FF000001FE00000 0F8000001E2C7E9C23>I<3FFFFFF07FFFFFF87FFFFFF87FFFFFF87FFFFFF07E000FE07E 001FC07E003F803C007F000000FE000001FC000003F8000007F000000FE000001FC00000 3F8000007F000000FE000001FC000003F800F007F001F80FE001F81FC001F83F8001F87F FFFFF8FFFFFFF8FFFFFFF8FFFFFFF87FFFFFF01D1D7E9C23>I E %EndDVIPSBitmapFont /Fi 104[66 28[29 33 33 50 33 37 21 29 29 37 37 37 37 54 21 33 1[21 37 37 21 33 37 33 37 37 12[42 37 2[46 2[62 42 2[25 2[46 2[50 1[46 5[25 25 6[37 4[19 25 19 2[25 25 25 36[37 2[{TeXBase1Encoding ReEncodeFont}45 74.7198 /Times-Italic rf %DVIPSBitmapFont: Fj cmex10 10 7 /Fj 7 112 df<0000001E0000003E0000007C000000F8000001F0000003E0000003C000 00078000000F8000001F0000003E0000003C0000007C000000F8000001F8000001F00000 03E0000003E0000007C000000FC000000F8000001F8000001F0000003F0000003F000000 7E0000007E000000FC000000FC000000FC000001F8000001F8000001F8000003F0000003 F0000007F0000007E0000007E0000007E000000FE000000FC000000FC000000FC000001F C000001FC000001F8000001F8000003F8000003F8000003F8000003F8000003F0000003F 0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007E0000007E 000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE 000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE 000000FE000000FE000000FE000000FE000000FE000000FE0000007E0000007E0000007F 0000007F0000007F0000007F0000007F0000007F0000007F0000003F0000003F0000003F 8000003F8000003F8000003F8000001F8000001F8000001FC000001FC000000FC000000F C000000FC000000FE0000007E0000007E0000007E0000007F0000003F0000003F0000001 F8000001F8000001F8000000FC000000FC000000FC0000007E0000007E0000003F000000 3F0000001F0000001F8000000F8000000FC0000007C0000003E0000003E0000001F00000 01F8000000F80000007C0000003C0000003E0000001F0000000F8000000780000003C000 0003E0000001F0000000F80000007C0000003E0000001E1F94718232>16 D<70000000F80000007C0000003E0000001F0000000F8000000780000003C0000003E000 0001F0000000F8000000780000007C0000003E0000003F0000001F0000000F8000000F80 000007C0000007E0000003E0000003F0000001F0000001F8000001F8000000FC000000FC 0000007E0000007E0000007E0000003F0000003F0000003F0000001F8000001F8000001F C000000FC000000FC000000FC000000FE0000007E0000007E0000007E0000007F0000007 F0000003F0000003F0000003F8000003F8000003F8000003F8000001F8000001F8000001 FC000001FC000001FC000001FC000001FC000001FC000001FC000000FC000000FC000000 FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000 FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000 FE000000FE000000FE000000FE000000FE000000FE000000FC000000FC000001FC000001 FC000001FC000001FC000001FC000001FC000001FC000001F8000001F8000003F8000003 F8000003F8000003F8000003F0000003F0000007F0000007F0000007E0000007E0000007 E000000FE000000FC000000FC000000FC000001FC000001F8000001F8000003F0000003F 0000003F0000007E0000007E0000007E000000FC000000FC000001F8000001F8000001F0 000003F0000003E0000007E0000007C000000F8000000F8000001F0000003F0000003E00 00007C00000078000000F8000001F0000003E0000003C00000078000000F8000001F0000 003E0000007C000000F8000000700000001F947D8232>I<000000001E000000007E0000 0001FE00000003FE0000000FF80000001FE00000003FC00000007F80000000FE00000001 FC00000003F800000007F80000000FF00000001FE00000001FE00000003FC00000003FC0 0000007F800000007F800000007F800000007F80000000FF00000000FF00000000FF0000 0000FF00000000FF00000000FF00000000FF00000000FF00000000FF00000000FF000000 00FF00000000FF00000000FF00000000FF00000000FF00000000FF00000000FF00000000 FF00000000FF00000000FF00000000FF00000000FF00000000FF00000000FF00000000FF 00000000FF00000000FF00000000FF00000000FF00000000FF00000000FF00000000FF00 000000FF00000000FF00000000FF00000000FF00000000FF00000000FF00000000FF0000 0000FF00000000FF00000000FF00000000FF00000000FF00000000FF00000000FF000000 00FF00000000FF00000000FF00000000FF00000000FF00000000FF00000000FF00000000 FF00000000FF00000000FF00000000FF00000000FE00000001FE00000001FE00000001FE 00000003FC00000003FC00000003F800000007F80000000FF00000000FE00000001FE000 00003FC00000003F800000007F00000000FE00000003FC00000007F00000000FE0000000 3FC00000007F00000000FC00000000FC000000007F000000003FC00000000FE000000007 F000000003FC00000000FE000000007F000000003F800000003FC00000001FE00000000F E00000000FF000000007F800000003F800000003FC00000003FC00000001FE00000001FE 00000001FE00000000FE00000000FF00000000FF00000000FF00000000FF00000000FF00 000000FF00000000FF00000000FF00000000FF00000000FF00000000FF00000000FF0000 0000FF00000000FF00000000FF00000000FF00000000FF00000000FF00000000FF000000 00FF00000000FF00000000FF00000000FF00000000FF00000000FF00000000FF00000000 FF00000000FF00000000FF00000000FF00000000FF00000000FF00000000FF00000000FF 00000000FF00000000FF00000000FF00000000FF00000000FF00000000FF00000000FF00 000000FF00000000FF00000000FF00000000FF00000000FF00000000FF00000000FF0000 0000FF00000000FF00000000FF00000000FF00000000FF00000000FF00000000FF000000 00FF00000000FF000000007F800000007F800000007F800000007F800000003FC0000000 3FC00000001FE00000001FE00000000FF000000007F800000003F800000001FC00000000 FE000000007F800000003FC00000001FE00000000FF800000003FE00000001FE00000000 7E000000001E27C675823E>26 D<7FFFFFFFFFFFFFFFFC00FFFFFFFFFFFFFFFFFE00FFFF FFFFFFFFFFFFFE00FFFFFFFFFFFFFFFFFE007FE0000000001FFFFF003FE000000000007F FF001FF000000000000FFF001FF8000000000003FF800FF8000000000000FF8007FC0000 000000003F8003FE0000000000001FC003FF0000000000000FC001FF00000000000007C0 00FF80000000000003E000FFC0000000000001E0007FE0000000000000E0003FE0000000 000000F0001FF000000000000070001FF800000000000070000FFC000000000000380007 FC000000000000000003FE000000000000000003FF000000000000000001FF8000000000 00000000FF8000000000000000007FC000000000000000007FE000000000000000003FE0 00000000000000001FF000000000000000001FF800000000000000000FFC000000000000 000007FC000000000000000003FE000000000000000003FF000000000000000001FF8000 00000000000000FF8000000000000000007FC000000000000000007FE000000000000000 003FF000000000000000001FF000000000000000000FF800000000000000000FFC000000 000000000007F8000000000000000003F0000000000000000001E0000000000000000003 C0000000000000000007C000000000000000000F8000000000000000001F000000000000 0000001E0000000000000000003C0000000000000000007C000000000000000000F80000 00000000000001F0000000000000000001E0000000000000000003C00000000000000000 078000000000000000000F8000000000000000001F0000000000000000003E0000000000 000000003C00000000000000000078000000000000000000F8000000000000380001F000 0000000000700003E0000000000000700003C0000000000000F0000780000000000000E0 000F00000000000001E0001F00000000000003E0003E00000000000007C0007C00000000 00000FC000780000000000001FC000F00000000000003F8001F0000000000000FF8003E0 000000000001FF8007C000000000000FFF00078000000000007FFF000F00000000001FFF FF001FFFFFFFFFFFFFFFFE003FFFFFFFFFFFFFFFFE007FFFFFFFFFFFFFFFFE00FFFFFFFF FFFFFFFFFC007FFFFFFFFFFFFFFFFC004D537B7F58>80 D<7FFFFFFFFFFFFFFFFFFFFFFF E000FFFFFFFFFFFFFFFFFFFFFFFFF000FFFFFFFFFFFFFFFFFFFFFFFFF000FFFFFFFFFFFF FFFFFFFFFFFFF000FFFFFFFFFFFFFFFFFFFFFFFFF8007FFF00000000000000FFFFFFF800 3FFF8000000000000000FFFFFC001FFF80000000000000000FFFFC001FFFC00000000000 000000FFFE000FFFE000000000000000003FFE0007FFF000000000000000000FFE0003FF F0000000000000000003FF0003FFF8000000000000000000FF0001FFFC00000000000000 00007F8000FFFE0000000000000000001F80007FFE0000000000000000000F80007FFF00 000000000000000007C0003FFF80000000000000000003C0001FFFC00000000000000000 01E0001FFFC0000000000000000001E0000FFFE0000000000000000000F00007FFF00000 00000000000000700003FFF0000000000000000000700003FFF800000000000000000038 0001FFFC000000000000000000000000FFFE0000000000000000000000007FFE00000000 00000000000000007FFF0000000000000000000000003FFF800000000000000000000000 1FFFC000000000000000000000000FFFC000000000000000000000000FFFE00000000000 00000000000007FFF0000000000000000000000003FFF8000000000000000000000001FF F8000000000000000000000001FFFC000000000000000000000000FFFE00000000000000 00000000007FFF0000000000000000000000003FFF0000000000000000000000003FFF80 00000000000000000000001FFFC000000000000000000000000FFFE00000000000000000 0000000FFFE0000000000000000000000007FFF0000000000000000000000003FFF80000 00000000000000000001FFF8000000000000000000000001FFFC00000000000000000000 0000FFFE0000000000000000000000007FFF0000000000000000000000003FFF00000000 00000000000000003FFF8000000000000000000000001FFFC00000000000000000000000 0FFFE0000000000000000000000007FFE0000000000000000000000007FFF00000000000 00000000000003FFF8000000000000000000000001FFFC000000000000000000000000FF FC000000000000000000000000FFFC0000000000000000000000007FF800000000000000 00000000003FF80000000000000000000000001FF00000000000000000000000001FE000 00000000000000000000000FC00000000000000000000000001F80000000000000000000 0000003F000000000000000000000000007E00000000000000000000000000FE00000000 000000000000000000FC00000000000000000000000001F8000000000000000000000000 03F000000000000000000000000007E00000000000000000000000000FC0000000000000 0000000000001FC00000000000000000000000001F800000000000000000000000003F00 0000000000000000000000007E00000000000000000000000000FC000000000000000000 00000001F800000000000000000000000003F000000000000000000000000007F0000000 00000000000000000007E00000000000000000000000000FC00000000000000000000000 001F800000000000000000000000003F000000000000000000000000007E000000000000 00000000000000FC00000000000000000000000001FC00000000000000000000000001F8 00000000000000000000000003F000000000000000000038000007E00000000000000000 007000000FC00000000000000000007000001F80000000000000000000F000003F000000 00000000000000E000007F00000000000000000001E000007E00000000000000000003E0 0000FC00000000000000000007C00001F80000000000000000000FC00003F00000000000 000000001F800007E00000000000000000003F80000FE0000000000000000000FF80000F C0000000000000000001FF00001F80000000000000000007FF00003F0000000000000000 001FFF00007E000000000000000000FFFE0000FC000000000000000007FFFE0001F80000 000000000000FFFFFE0003F800000000000000FFFFFFFC0003FFFFFFFFFFFFFFFFFFFFFF FC0007FFFFFFFFFFFFFFFFFFFFFFF8000FFFFFFFFFFFFFFFFFFFFFFFF8001FFFFFFFFFFF FFFFFFFFFFFFF8003FFFFFFFFFFFFFFFFFFFFFFFF0007FFFFFFFFFFFFFFFFFFFFFFFF000 FFFFFFFFFFFFFFFFFFFFFFFFF0007FFFFFFFFFFFFFFFFFFFFFFFE0006D747B7F78>88 D<00000003C00000001FC00000007FC0000000FFC0000003FF00000007FC0000000FF000 00001FC00000003F800000007F00000000FE00000001FC00000001FC00000003F8000000 03F800000007F000000007F000000007F000000007F000000007F000000007F000000007 F000000007F000000007F000000007F000000007F000000007F000000007F000000007F0 00000007F000000007F000000007F000000007F000000007F000000007F000000007F000 000007F000000007F000000007F000000007F000000007F000000007F000000007F00000 0007F000000007F000000007F000000007F000000007F000000007F000000007F0000000 07F000000007F000000007F000000007F000000007F000000007F000000007F000000007 F000000007F00000000FE00000000FE00000000FE00000001FC00000001FC00000003F80 0000007F000000007E00000000FC00000001F800000007F00000000FE00000003FC00000 007F00000000FC00000000FC000000007F000000003FC00000000FE000000007F0000000 01F800000000FC000000007E000000007F000000003F800000001FC00000001FC0000000 0FE00000000FE00000000FE000000007F000000007F000000007F000000007F000000007 F000000007F000000007F000000007F000000007F000000007F000000007F000000007F0 00000007F000000007F000000007F000000007F000000007F000000007F000000007F000 000007F000000007F000000007F000000007F000000007F000000007F000000007F00000 0007F000000007F000000007F000000007F000000007F000000007F000000007F0000000 07F000000007F000000007F000000007F000000007F000000007F000000007F000000007 F000000007F000000007F000000007F000000003F800000003F800000001FC00000001FC 00000000FE000000007F000000003F800000001FC00000000FF000000007FC00000003FF 00000000FFC00000007FC00000001FC000000003C02294768237>110 D<7000000000FC00000000FF000000007FC00000003FE00000000FF800000003FC000000 01FE00000000FF000000007F800000003F800000001FC00000001FC00000000FE0000000 0FE000000007F000000007F000000007F000000007F000000007F000000007F000000007 F000000007F000000007F000000007F000000007F000000007F000000007F000000007F0 00000007F000000007F000000007F000000007F000000007F000000007F000000007F000 000007F000000007F000000007F000000007F000000007F000000007F000000007F00000 0007F000000007F000000007F000000007F000000007F000000007F000000007F0000000 07F000000007F000000007F000000007F000000007F000000007F000000007F000000007 F000000007F000000003F800000003F800000003F800000001FC00000000FC00000000FE 000000007F000000003F800000001FC00000000FE000000007F000000003FC00000000FF 000000003FC00000001FC00000001FC00000003FC0000000FF00000003FC00000007F000 00000FE00000001FC00000003F800000007F00000000FE00000000FC00000001FC000000 03F800000003F800000003F800000007F000000007F000000007F000000007F000000007 F000000007F000000007F000000007F000000007F000000007F000000007F000000007F0 00000007F000000007F000000007F000000007F000000007F000000007F000000007F000 000007F000000007F000000007F000000007F000000007F000000007F000000007F00000 0007F000000007F000000007F000000007F000000007F000000007F000000007F0000000 07F000000007F000000007F000000007F000000007F000000007F000000007F000000007 F000000007F000000007F000000007F00000000FE00000000FE00000001FC00000001FC0 0000003F800000007F80000000FF00000001FE00000003FC0000000FF80000003FE00000 007FC0000000FF00000000FC0000000070000000002294768237>I E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fk cmtt9 9 33 /Fk 33 122 df<0001E00003F00007F0000FF0001FE0003F80007F0000FE0001FC0003F8 0007F00007E0000FE0000FC0001FC0001F80003F80003F00003F00007F00007E00007E00 007E0000FE0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC00 00FE00007E00007E00007E00007F00003F00003F00003F80001F80001FC0000FC0000FE0 0007E00007F00003F80001FC0000FE00007F00003F80001FE0000FF00007F00003F00001 E0143A74B327>40 D<3800007C0000FE00007F00003F80001FC0000FE00007F00003F800 01FC0000FE00007E00007F00003F00003F80001F80001FC0000FC0000FC0000FE00007E0 0007E00007E00007F00003F00003F00003F00003F00003F00003F00003F00003F00003F0 0003F00007F00007E00007E00007E0000FE0000FC0000FC0001FC0001F80003F80003F00 007F00007E0000FE0001FC0003F80007F0000FE0001FC0003F80007F0000FE00007C0000 380000143A7AB327>I<0003C0000003C0000007E0000007E0000007E0000007E0000007 E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0007FFFFFFE7FFF FFFEFFFFFFFFFFFFFFFF7FFFFFFE7FFFFFFE0007E0000007E0000007E0000007E0000007 E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0000003C0000003 C00020227DA727>43 D<07800FE01FF03FF83FF83FFC3FFC1FFC0FFC07FC01FC01F803F8 07F03FF07FE0FFC07F803F001C000E14748927>I<0003F000000007F800000007F80000 000FFC0000000FFC0000000FFC0000000FFC0000000F3C0000001F3E0000001F3E000000 1F3E0000001F3E0000001F3E0000003F3F0000003F3F0000003F3F0000003E1F0000003E 1F0000007E1F8000007E1F8000007E1F8000007E1F800000FC0FC00000FC0FC00000FC0F C00000FC0FC00000FC0FC00001F807E00001F807E00001F807E00001FFFFE00001FFFFE0 0003FFFFF00003FFFFF00003FFFFF00003FFFFF00003F003F00007E001F80007E001F800 07E001F80007E001F8003FF807FF007FFC0FFF80FFFE1FFFC0FFFE1FFFC07FFC0FFF803F F807FF00222F7EAE27>65 D<3FFFFF00007FFFFFC000FFFFFFE000FFFFFFF8007FFFFFF8 003FFFFFFC0007E001FE0007E000FE0007E0007E0007E0007F0007E0003F0007E0003F00 07E0003F0007E0003F0007E0003F0007E0007E0007E000FE0007E001FC0007E003FC0007 FFFFF80007FFFFF00007FFFFC00007FFFFF00007FFFFF80007FFFFFC0007E001FE0007E0 007F0007E0003F8007E0001F8007E0001F8007E0000FC007E0000FC007E0000FC007E000 0FC007E0000FC007E0001FC007E0001FC007E0003F8007E0007F8007E001FF003FFFFFFF 007FFFFFFE00FFFFFFFC00FFFFFFF8007FFFFFE0003FFFFF8000222E7FAD27>I<0003F8 0E001FFE1F003FFFBF007FFFFF00FFFFFF01FFFFFF03FE07FF07F801FF0FF001FF0FE000 FF1FC0007F1F80007F3F80007F3F00003F7F00003F7E00003F7E00003F7E00001EFE0000 00FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC0000 00FC000000FE0000007E0000007E00001E7E00003F7F00003F3F00003F3F80003F1F8000 7F1FC0007E0FE0007E0FF000FE07F801FC03FF07F801FFFFF000FFFFE0007FFFC0003FFF 80001FFF000003F80020307DAE27>I<3FFFC000007FFFE00000FFFFE00000FFFFE00000 7FFFE000003FFFC0000003F000000003F000000003F000000003F000000003F000000003 F000000003F000000003F000000003F000000003F000000003F000000003F000000003F0 00000003F000000003F000000003F000000003F000000003F000000003F000000003F000 000003F000000003F000000003F000000003F000000003F000000003F000000003F00007 8003F0000FC003F0000FC003F0000FC003F0000FC003F0000FC003F0000FC003F0000FC0 3FFFFFFFC07FFFFFFFC0FFFFFFFFC0FFFFFFFFC07FFFFFFFC03FFFFFFF80222E7FAD27> 76 D<3FF001FFC07FF803FFE0FFF807FFF0FFFC07FFF07FFC03FFE03FFC01FFC007DE00 3E0007DE003E0007DE003E0007CF003E0007CF003E0007CF003E0007CF803E0007C7803E 0007C7C03E0007C7C03E0007C3C03E0007C3E03E0007C3E03E0007C1E03E0007C1F03E00 07C1F03E0007C1F03E0007C0F83E0007C0F83E0007C0F83E0007C0783E0007C07C3E0007 C07C3E0007C03C3E0007C03E3E0007C03E3E0007C01E3E0007C01F3E0007C00F3E0007C0 0F3E0007C00F3E0007C007BE0007C007BE0007C007BE003FF803FE007FFC03FE00FFFE03 FE00FFFE01FE007FFC01FE003FF800FC00242E7FAD27>78 D<00FFFC0007FFFF801FFFFF E01FFFFFE03FFFFFF03FFFFFF07FC00FF87F0003F87F0003F87E0001F87E0001F8FE0001 FCFC0000FCFC0000FCFC0000FCFC0000FCFC0000FCFC0000FCFC0000FCFC0000FCFC0000 FCFC0000FCFC0000FCFC0000FCFC0000FCFC0000FCFC0000FCFC0000FCFC0000FCFC0000 FCFC0000FCFC0000FCFC0000FCFC0000FCFC0000FCFE0001FCFE0001FC7E0001F87E0001 F87F0003F87F8007F87FE01FF83FFFFFF03FFFFFF01FFFFFE01FFFFFE007FFFF8000FFFC 001E307CAE27>I<3FFFF000007FFFFE0000FFFFFF0000FFFFFFC0007FFFFFE0003FFFFF F00007E01FF00007E007F80007E003F80007E001FC0007E001FC0007E000FC0007E000FC 0007E000FC0007E000FC0007E001FC0007E001FC0007E003F80007E007F80007E01FF000 07FFFFF00007FFFFE00007FFFFC00007FFFF000007FFFF800007FFFFC00007E01FE00007 E007E00007E007F00007E003F00007E003F00007E003F00007E003F00007E003F00007E0 03F00007E003F00007E003F0F007E003F1F807E003F1F807E003F1F83FFC03F9F87FFE01 FFF8FFFF01FFF0FFFF00FFF07FFE007FE03FFC003FC00000001F00252F7FAD27>82 D<3FFFFFFF807FFFFFFFC0FFFFFFFFC0FFFFFFFFC0FFFFFFFFC0FFFFFFFFC0FC03F00FC0 FC03F00FC0FC03F00FC0FC03F00FC0FC03F00FC0FC03F00FC07803F007800003F0000000 03F000000003F000000003F000000003F000000003F000000003F000000003F000000003 F000000003F000000003F000000003F000000003F000000003F000000003F000000003F0 00000003F000000003F000000003F000000003F000000003F000000003F000000003F000 000003F000000003F000000003F000000003F00000007FFF800000FFFFC00001FFFFE000 01FFFFE00000FFFFC000007FFF8000222E7EAD27>84 D<7FFE01FFF8FFFF03FFFCFFFF03 FFFCFFFF03FFFCFFFF03FFFC7FFE01FFF807E0001F8007E0001F8007E0001F8007E0001F 8007E0001F8007E0001F8007E0001F8007E0001F8007E0001F8007E0001F8007E0001F80 07E0001F8007E0001F8007E0001F8007E0001F8007E0001F8007E0001F8007E0001F8007 E0001F8007E0001F8007E0001F8007E0001F8007E0001F8007E0001F8007E0001F8007E0 001F8007E0001F8007E0001F8007F0003F8003F0003F0003F0003F0003F8007F0001FC00 FE0001FE01FE0000FF87FC00007FFFF800003FFFF000001FFFE000000FFFC0000007FF80 000001FE0000262F80AD27>I<03FFC000000FFFF000001FFFFC00003FFFFE00007FFFFF 00007FFFFF80007F807FC0003F001FC0001E000FE0000C0007E000000007E000001FFFE0 0000FFFFE00007FFFFE0000FFFFFE0001FFFFFE0003FFC07E0007FC007E000FF0007E000 FC0007E000FC0007E000FC0007E000FC000FE000FE000FE0007F003FE0007FC0FFE0003F FFFFFF801FFFFFFFC00FFFFFFFC007FFF3FFC003FFC1FFC000FF007F8022207C9F27>97 D<7FE0000000FFF0000000FFF0000000FFF0000000FFF00000007FF000000003F0000000 03F000000003F000000003F000000003F000000003F000000003F000000003F000000003 F07F800003F1FFE00003F7FFF00003FFFFF80003FFFFFC0003FFFFFE0003FF81FF0003FE 007F8003F8003F8003F8001FC003F0000FC003F0000FC003F0000FE003F00007E003F000 07E003F00007E003F00007E003F00007E003F00007E003F0000FE003F8000FC003F8001F C003FC001FC003FC003F8003FE007F8003FF83FF0003FFFFFE0003FFFFFC0003FFFFF800 03F7FFF00001F3FFC00000E0FF0000232E7FAD27>I<000FFE00007FFF8000FFFFC003FF FFE007FFFFF00FFFFFF01FF80FF01FE007E03F8003C07F0001807F0000007E000000FE00 0000FC000000FC000000FC000000FC000000FC000000FC000000FE0000007E0000F07F00 01F87F0001F83FC003F81FE003F01FFC0FF00FFFFFE007FFFFC003FFFF8000FFFF00007F FE00000FF0001D207B9F27>I<00003FF00000007FF80000007FF80000007FF80000007F F80000003FF800000001F800000001F800000001F800000001F800000001F800000001F8 00000001F800000001F800001FE1F800007FF9F80001FFFDF80003FFFFF80007FFFFF800 0FFFFFF8001FF83FF8003FC007F8003F8003F8007F0003F8007F0001F8007E0001F800FE 0001F800FC0001F800FC0001F800FC0001F800FC0001F800FC0001F800FC0001F800FE00 01F8007E0003F8007E0003F8007F0007F8003F8007F8003FC00FF8001FF03FF8000FFFFF FFC007FFFFFFE003FFFDFFE001FFF9FFE000FFF1FFE0001FC0FFC0232E7EAD27>I<000F F800003FFE0000FFFF8001FFFFC003FFFFE007FFFFF00FF80FF81FE003F83F8001FC7F00 00FC7F0000FC7E0000FEFFFFFFFEFFFFFFFEFFFFFFFEFFFFFFFEFFFFFFFEFFFFFFFCFC00 0000FE0000007E00003C7F00007E3F80007E3FC000FE1FF000FC0FFE03FC07FFFFF803FF FFF001FFFFE000FFFFC0003FFF000007FC001F207D9F27>I<0000003F00001FC0FF8000 7FF3FFC001FFFFFFE003FFFFFFE007FFFFFFE00FFFFFCFE01FF07FC7C01FC01FC3801F80 0FC0003F800FE0003F0007E0003F0007E0003F0007E0003F0007E0003F800FE0001F800F C0001FC01FC0001FF07FC0000FFFFF80000FFFFF00001FFFFE00001FFFFC00001F7FF000 001F1FC000001F000000001F000000001FA00000000FFFFF000007FFFFE0000FFFFFF800 1FFFFFFC003FFFFFFE007F8001FF007E00003F807C00000F80FC00000FC0F8000007C0F8 000007C0F8000007C0F8000007C0FC00000FC07E00001F807F80007F803FF003FF001FFF FFFE000FFFFFFC0007FFFFF80001FFFFE000007FFF8000000FFC000023337EA027>103 D<7FE0000000FFF0000000FFF0000000FFF0000000FFF00000007FF000000003F0000000 03F000000003F000000003F000000003F000000003F000000003F000000003F000000003 F07F000003F1FFC00003F7FFE00003FFFFF00003FFFFF80003FFFFF80003FF81FC0003FE 00FC0003FC00FC0003F800FC0003F800FC0003F000FC0003F000FC0003F000FC0003F000 FC0003F000FC0003F000FC0003F000FC0003F000FC0003F000FC0003F000FC0003F000FC 0003F000FC0003F000FC0003F000FC0003F000FC007FFF81FFE0FFFFC3FFF0FFFFC7FFF0 FFFFC7FFF0FFFFC3FFF07FFF81FFE0242E7FAD27>I<000F0000001F8000003FC000003F C000003FC000003FC000001F8000000F0000000000000000000000000000000000000000 000000000000000000003FFF80007FFFC0007FFFC0007FFFC0007FFFC0003FFFC000000F C000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000F C000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000F C000000FC0003FFFFFE07FFFFFF0FFFFFFF8FFFFFFF87FFFFFF03FFFFFE01D2F7BAE27> I<7FFF8000FFFFC000FFFFC000FFFFC000FFFFC0007FFFC000000FC000000FC000000FC0 00000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC0 00000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC0 00000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC0 00000FC000000FC000000FC000000FC0007FFFFFF8FFFFFFFCFFFFFFFCFFFFFFFCFFFFFF FC7FFFFFF81E2E7CAD27>108 D<7F07C01F0000FF9FF07FC000FFFFF9FFE000FFFFFFFF F000FFFFFFFFF0007FFFFFFFF8000FF87FE1F8000FE03F80F8000FC03F00F8000FC03F00 F8000FC03F00F8000F803E00F8000F803E00F8000F803E00F8000F803E00F8000F803E00 F8000F803E00F8000F803E00F8000F803E00F8000F803E00F8000F803E00F8000F803E00 F8000F803E00F8000F803E00F8000F803E00F8000F803E00F8007FF07FC1FF00FFF8FFE3 FF80FFF9FFE7FF80FFF9FFE7FF80FFF8FFE3FF807FF07FC1FF002920819F27>I<7FE07F 0000FFF1FFC000FFF7FFE000FFFFFFF000FFFFFFF8007FFFFFF80003FF81FC0003FE00FC 0003FC00FC0003F800FC0003F800FC0003F000FC0003F000FC0003F000FC0003F000FC00 03F000FC0003F000FC0003F000FC0003F000FC0003F000FC0003F000FC0003F000FC0003 F000FC0003F000FC0003F000FC0003F000FC007FFF81FFE0FFFFC3FFF0FFFFC7FFF0FFFF C7FFF0FFFFC3FFF07FFF81FFE024207F9F27>I<001FE000007FF80001FFFE0003FFFF00 07FFFF800FFFFFC01FF03FE03FC00FF03F8007F07F0003F87E0001F87E0001F8FC0000FC FC0000FCFC0000FCFC0000FCFC0000FCFC0000FCFC0000FCFE0001FC7E0001F87F0003F8 7F0003F83F8007F03FC00FF01FF03FE00FFFFFC007FFFF8003FFFF0001FFFE00007FF800 001FE0001E207C9F27>I<7FE07F8000FFF1FFE000FFF7FFF000FFFFFFF800FFFFFFFC00 7FFFFFFE0003FF81FF0003FE007F8003F8003F8003F8001FC003F0000FC003F0000FC003 F0000FE003F00007E003F00007E003F00007E003F00007E003F00007E003F00007E003F0 000FE003F8000FC003F8001FC003FC001FC003FC003F8003FE007F8003FF83FF0003FFFF FE0003FFFFFC0003FFFFF80003F7FFF00003F3FFC00003F0FF000003F000000003F00000 0003F000000003F000000003F000000003F000000003F000000003F000000003F0000000 03F000000003F00000007FFF800000FFFFC00000FFFFC00000FFFFC00000FFFFC000007F FF80000023317F9F27>I<3FFC03FC007FFE0FFF00FFFE3FFF80FFFE7FFFC07FFEFFFFC0 3FFFFFFFC0007FFE1FC0007FF80F80007FE00200007FC00000007F800000007F80000000 7F000000007F000000007F000000007E000000007E000000007E000000007E000000007E 000000007E000000007E000000007E000000007E000000007E000000007E0000003FFFFF 80007FFFFFC000FFFFFFC000FFFFFFC0007FFFFFC0003FFFFF800022207E9F27>114 D<00FFF38007FFFFC00FFFFFC01FFFFFC03FFFFFC07FFFFFC0FF801FC0FE000FC0FC000F C0FC000780FE0000007F8000007FFC00003FFFE0001FFFFC0007FFFF0001FFFF80000FFF C000007FE000000FE0380003F07C0003F0FC0003F0FE0003F0FF0007F0FFC03FE0FFFFFF E0FFFFFFC0FFFFFF80FFFFFF00FBFFFC00707FF0001C207B9F27>I<001C0000003E0000 007E0000007E0000007E0000007E0000007E0000007E0000007E00003FFFFFF07FFFFFF8 FFFFFFF8FFFFFFF8FFFFFFF87FFFFFF0007E0000007E0000007E0000007E0000007E0000 007E0000007E0000007E0000007E0000007E0000007E0000007E0018007E003C007E007E 007E007E007E007E007E007E007F00FE007F00FC003FC3FC003FFFF8001FFFF0000FFFE0 0007FFC00003FF800000FE001F297EA827>I<7FE01FF800FFF03FFC00FFF03FFC00FFF0 3FFC00FFF03FFC007FF01FFC0003F000FC0003F000FC0003F000FC0003F000FC0003F000 FC0003F000FC0003F000FC0003F000FC0003F000FC0003F000FC0003F000FC0003F000FC 0003F000FC0003F000FC0003F000FC0003F000FC0003F000FC0003F001FC0003F003FC00 03F80FFC0003FFFFFFE001FFFFFFF000FFFFFFF0007FFFFFF0003FFCFFF0001FF07FE024 207F9F27>I<7FFC0FFF80FFFE1FFFC0FFFE1FFFC0FFFE1FFFC0FFFE1FFFC07FFC0FFF80 07E001F80003E001F00003E001F00003F003F00001F003E00001F003E00001F807E00000 F807C00000F807C00000F807C000007C0F8000007C0F8000007C0F8000003E1F0000003E 1F0000003E1F0000003F3F0000001F3E0000001F3E0000001FFE0000000FFC0000000FFC 0000000FFC00000007F800000007F800000003F0000022207E9F27>I<3FFC03FFC07FFE 07FFE0FFFF0FFFF0FFFF0FFFF07FFE07FFE03FFC03FFC00F80001F000F80001F000FC000 3F0007C0003E0007C0003E0007C0003E0007C0003E0007C0F83E0007C1FC3E0003E3FE7C 0003E3FE7C0003E3FE7C0003E3FE7C0003E7DE7C0003E7DE7C0001E7DF780001E7DF7800 01F7DF780001F7DF780001F78F780001FF8FF80000FF8FF00000FF8FF00000FF0FF00000 FF07F000007E03E00024207F9F27>I<7FFC0FFF80FFFE1FFFC0FFFE1FFFC0FFFE1FFFC0 FFFE1FFFC07FFC0FFF8003E001F80003E001F00003F001F00001F003F00001F803E00000 F803E00000F803E00000FC07C000007C07C000007C07C000007E0F8000003E0F8000003E 0F8000001F0F0000001F1F0000001F1F0000000F9F0000000F9E0000000FBE00000007BE 00000007FC00000003FC00000003FC00000003F800000001F800000001F800000001F000 000001F000000003F000000003E000000003E000000007E000000C07C000003F07C00000 7F8FC000007F9F8000007E7F8000007FFF0000007FFE0000003FFC0000003FF80000001F F000000007C000000022317E9F27>121 D E %EndDVIPSBitmapFont /Fl 133[29 33 37 50 33 42 21 29 29 37 37 37 42 58 21 37 1[21 42 37 25 33 37 33 37 37 51[25 42[42 2[{ TeXBase1Encoding ReEncodeFont}27 74.7198 /Times-BoldItalic rf %DVIPSBitmapFont: Fm cmsy9 9 8 /Fm 8 104 df<7FFFFFFFFFFCFFFFFFFFFFFEFFFFFFFFFFFE7FFFFFFFFFFC2F047A943C> 0 D<00000000000C00000000003E0000000000FE0000000003FC000000000FF000000000 3FC000000000FF0000000003FC000000000FF0000000003FC000000000FF0000000007FC 000000001FF0000000007FC000000001FF0000000007F8000000001FE0000000007F8000 000001FE0000000007F8000000001FE0000000007F8000000000FE0000000000FE000000 00007F80000000001FE00000000007F80000000001FE00000000007F80000000001FE000 00000007F80000000001FE00000000007FC0000000001FF00000000007FC0000000001FF 00000000003FC0000000000FF00000000003FC0000000000FF00000000003FC000000000 0FF00000000003FC0000000000FE00000000003E00000000000C00000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000007FFFFFFFFFFCFFFFFFFF FFFEFFFFFFFFFFFE7FFFFFFFFFFC2F3E7AB03C>20 D<600000000000F80000000000FE00 000000007F80000000001FE00000000007F80000000001FE00000000007F80000000001F E00000000007F80000000001FE00000000007FC0000000001FF00000000007FC00000000 01FF00000000003FC0000000000FF00000000003FC0000000000FF00000000003FC00000 00000FF00000000003FC0000000000FE0000000000FE0000000003FC000000000FF00000 00003FC000000000FF0000000003FC000000000FF0000000003FC000000000FF00000000 07FC000000001FF0000000007FC000000001FF0000000007F8000000001FE0000000007F 8000000001FE0000000007F8000000001FE0000000007F8000000000FE0000000000F800 000000006000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000007FFFFFFFFFFCFFFFFFFFFFFEFFFFFFFFFFFE7FFFFFFFFFFC2F3E 7AB03C>I<00000000300000000078000000007800000000F000000000F000000001E000 000001E000000003C000000003C0000000078000000007800000000F000000000F000000 001E000000001E000000003C000000003C0000000078000000007800000000F000000000 F000000001E000000001E000000003C000000003C0000000078000000007800000000F00 0000000F000000001E000000001E000000003C000000003C000000007800000000780000 0000F000000000F000000001E000000001E000000003C000000003C00000000780000000 07800000000F000000000F000000001E000000001E000000003C000000003C0000000078 000000007800000000F000000000F000000001E000000001E000000003C000000003C000 0000078000000007800000000F000000000F000000001E000000001E000000003C000000 003C0000000078000000007800000000F000000000F0000000006000000000254675B500 >54 D<600000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000 F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000 F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000 F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000 F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000 F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000FFFFC0 FFFFE0FFFFE07FFFC0134A74B722>98 D<0000C00001E00001E00001E00001E00001E000 01E00001E00001E00001E00001E00001E00001E00001E00001E00001E00001E00001E000 01E00001E00001E00001E00001E00001E00001E00001E00001E00001E00001E00001E000 01E00001E00001E00001E00001E00001E00001E00001E00001E00001E00001E00001E000 01E00001E00001E00001E00001E00001E00001E00001E00001E00001E00001E00001E000 01E00001E00001E00001E00001E00001E00001E00001E00001E00001E00001E00001E000 01E00001E00001E00001E07FFFE0FFFFE0FFFFE07FFFC0134A7EB722>I<000007E00000 3FE00000FFE00003FC000007F0000007E000000FC000001F8000001F8000001F8000001F 8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F 8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F 8000001F8000001F8000003F0000003F0000007E000001FC000007F80000FFE00000FF80 0000FFE0000007F8000001FC0000007E0000003F0000003F0000001F8000001F8000001F 8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F 8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F 8000001F8000001F8000001F8000000FC0000007E0000007F0000003FC000000FFE00000 3FE0000007E01B4B7BB726>102 D<7E000000FFC00000FFF0000007F8000000FC000000 7E0000003F0000001F8000001F8000001F8000001F8000001F8000001F8000001F800000 1F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F800000 1F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000000FC00000 0FC0000007E0000003F0000001FE0000007FE000001FE000007FE00001FE000003F00000 07E000000FC000000FC000001F8000001F8000001F8000001F8000001F8000001F800000 1F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F800000 1F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F800000 3F0000007E000000FC000007F80000FFF00000FFC000007E0000001B4B7BB726>I E %EndDVIPSBitmapFont /Fn 134[29 29 44 29 33 18 26 26 1[33 33 33 48 18 29 1[18 33 33 18 29 33 29 33 33 8[41 55 1[48 37 33 41 1[41 48 44 55 37 1[29 22 1[48 41 41 48 44 1[41 7[33 33 33 33 33 33 33 1[33 3[22 17 2[22 22 22 39[{TeXBase1Encoding ReEncodeFont}55 66.4176 /Times-Italic rf /Fo 75[22 28[66 33 1[29 29 24[29 33 33 48 33 33 18 26 22 33 33 33 33 52 18 33 18 18 33 33 22 29 33 29 33 29 3[22 1[22 41 48 48 63 48 48 41 37 44 1[37 48 48 59 41 48 26 22 48 48 37 41 48 44 44 48 5[18 18 33 33 33 33 33 33 33 33 33 33 1[17 22 17 2[22 22 1[52 7[22 26[37 37 2[{TeXBase1Encoding ReEncodeFont}79 66.4176 /Times-Roman rf /Fp 105[29 28[29 29 42 29 29 16 23 19 1[29 29 29 45 16 1[16 16 29 29 19 26 29 26 29 26 11[42 36 32 39 1[32 1[42 52 36 2[19 1[42 32 1[42 39 1[42 7[29 1[29 29 29 29 29 29 29 29 1[15 19 15 2[19 19 40[{TeXBase1Encoding ReEncodeFont}52 58.1154 /Times-Roman rf %DVIPSBitmapFont: Fq cmmi6 6 15 /Fq 15 122 df<00000C00001C00001C0000380000380000700000700000700000E00000 E00001C00001C0000380000380000380000700000700000E00000E00000E00001C00001C 0000380000380000700000700000700000E00000E00001C00001C00001C0000380000380 000700000700000700000E00000E00001C00001C00003800003800003800007000007000 00E00000E00000C0000016317CA420>61 D<0000003C000000007C000000007C00000000 FC00000000FC00000001FC00000003FC00000003FE000000077E0000000F7E0000000E7E 0000001C7E0000003C7E000000387E000000707F000000707F000000E03F000001E03F00 0001C03F000003803F000007803F000007003F00000E003F80000FFFFF80001FFFFF8000 3FFFFF800038001F800070001F8000F0001F8000E0001FC001C0001FC003C0000FC007C0 000FC0FFF800FFFEFFF001FFFEFFF001FFFC27247DA32E>65 D<00FFFFFF800000FFFFFF F00000FFFFFFFC000007E001FE00000FC0007F00000FC0001F00000FC0000F80000FC000 0FC0001F800007C0001F800007C0001F800007C0001F800007E0003F000007E0003F0000 07E0003F000007E0003F000007E0007E000007C0007E00000FC0007E00000FC0007E0000 0F8000FC00001F8000FC00001F8000FC00001F0000FC00003E0001F800007E0001F80000 7C0001F80000F80001F80001F00003F00007E00003F0001FC00003F000FF00007FFFFFFC 0000FFFFFFF00000FFFFFF8000002B227DA132>68 D<00FFFFFF0000FFFFFFE000FFFFFF F00007E001F8000FC000FC000FC0007E000FC0007E000FC0007E001F80007E001F80007E 001F80007E001F80007C003F0000FC003F0000F8003F0001F0003F0003E0007E001FC000 7FFFFF00007FFFFC00007E00000000FC00000000FC00000000FC00000000FC00000001F8 00000001F800000001F800000001F800000003F000000003F000000003F00000007FFF80 0000FFFF000000FFFF00000027227DA127>80 D<00FFFFFE0000FFFFFF8000FFFFFFE000 07E007F0000FC001F8000FC000FC000FC000FC000FC000FC001F8000FC001F8000FC001F 8000FC001F8001F8003F0001F0003F0003E0003F0007C0003F003F00007FFFFC00007FFF F800007E00FE00007E003F0000FC003F0000FC001F8000FC001F8000FC001F8001F8003F 0001F8003F0001F8003F0001F8003F0003F0007E0003F0007E0703F0007E077FFF803E0E FFFF003F0CFFFF001FF800000003F028237DA12E>82 D<0FFFFFFFFE0FFFFFFFFE0FFFFF FFFE1FC01F807E1E003F001E1C003F001E3C003F001C38003F001C38007E001C70007E00 1C70007E001C70007E001CE000FC00380000FC00000000FC00000000FC00000001F80000 0001F800000001F800000001F800000003F000000003F000000003F000000003F0000000 07E000000007E000000007E000000007E00000000FC00000000FC00000000FC000000FFF FF80000FFFFF80000FFFFF000027227EA124>84 D<0038007C007C007800700000000000 00000000000000000007801FE039E031F071F0E1F0E1F0E3E003E007C007C007C00F800F 801F0C1F0E1F1C3E1C3E183E381E700FE007800F237DA116>105 D<00000C00001E00003E00003E00001C0000000000000000000000000000000000000000 000007C0001FE00038F00070F800E0F800E0F801C0F801C0F80001F00001F00001F00001 F00003E00003E00003E00003E00007C00007C00007C00007C0000F80000F80000F80000F 80001F00001F00381F00783E00F83C00F8780070F0007FE0001F8000172D81A119>I<00 7C00000FF800000FF800000FF8000001F8000001F0000001F0000001F0000001F0000003 E0000003E0000003E0000003E0000007C00F0007C03F8007C0E18007C183800F8307800F 860F800F9C0F800FB007001FE000001FF800001FFF00001F3F80003E07C0003E07E0003E 03E1803E03E1C07C07C3807C07C3807C07C3007C03C700F803C600F801FC00700078001A 247DA221>I<001F0300FFCF01E0FF03C07F07807E0F003E1E003E3E003E3C007C7C007C 7C007C7C007CF800F8F800F8F800F8F800F8F801F07801F07803F03807F01E1FE00FFBE0 03E3E00003E00007C00007C00007C00007C0000F8000FFF800FFF801FFF818207E951C> 113 D<0F01F03F87F833CE1C73F81C63F03CE3F07CE3E07CE3E03807C00007C00007C000 07C0000F80000F80000F80000F80001F00001F00001F00001F00003E00003E00001C0000 16177D951D>I<078000001FE0038039E007C031F007C071F00F80E1F00F80E1F00F80E3 E00F8003E01F0007C01F0007C01F0007C01F000F803E000F803E000F803E300F803E380F 807C700F807C700F80FC700F81FC6007C3BCE003FF1FC000FC0F801D177D9525>117 D<07800000701FE00380F839E007C0F871F007C0F871F00F80F8E1F00F8078E1F00F8078 E3E00F807803E01F007007C01F007007C01F007007C01F00700F803E00E00F803E00E00F 803E00E00F803E01C00F803E01C00F803E01800F807E03800780FE070003E1DF0E0001FF 8FFC00007E03F80025177D952C>119 D<01F81E0007FC7F800F1EE3C01C0FC1C0380FC3 C0300F87C0700F87C0700F8380001F0000001F0000001F0000001F0000003E0000003E00 00003E0180303E01C0787C0380F87C0380F87C0700F0FC0E0071DE1C007F8FF8001F03E0 001A177D9523>I<078000001FE0038039E007C031F007C071F00F80E1F00F80E1F00F80 E3E00F8003E01F0007C01F0007C01F0007C01F000F803E000F803E000F803E000F803E00 0F807C000F807C000F80FC000F81FC0007C3F80003FFF80000FCF8000000F8000001F000 1E01F0003E03E0003E03C0003C078000380F00003C3E00001FF8000007E000001A217D95 20>I E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fr cmr9 9 24 /Fr 24 115 df<000007FC00000000007FFFC000000001FFFFF000000007FC07FC000000 0FE000FE0000003F80003F8000007F00001FC00000FE00000FE00001FC000007F00003F8 000003F80003F0000001F80007F0000001FC000FE0000000FE000FE0000000FE001FC000 00007F001FC00000007F003FC00000007F803F800000003F807F800000003FC07F800000 003FC07F800000003FC07F0700001C1FC0FF0700001C1FE0FF0700001C1FE0FF07FFFFFC 1FE0FF07FFFFFC1FE0FF07FFFFFC1FE0FF07FFFFFC1FE0FF07FFFFFC1FE0FF07FFFFFC1F E0FF0700001C1FE0FF0700001C1FE0FF0700001C1FE07F000000001FC07F800000003FC0 7F800000003FC07F800000003FC03F800000003F803F800000003F803FC00000007F801F C00000007F001FE0000000FF000FE0000000FE0007F0000001FC0007F0000001FC0003F8 000003F80001FC000007F00000FE00000FE000007F00001FC000003F80003F8000001FE0 00FF00000007FC07FC00000001FFFFF0000000007FFFC00000000007FC00000033377CB4 3C>2 D<001FFFFFF000001FFFFFF000001FFFFFF00000001FF0000000000FE000000000 0FE0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE000000000 7FF800000007FFFF8000003FFFFFF00000FF8FE7FC0003FC0FE0FF0007F00FE03F800FE0 0FE01FC01FC00FE00FE03F800FE007F07F800FE007F87F800FE007F8FF000FE003FCFF00 0FE003FCFF000FE003FCFF000FE003FCFF000FE003FCFF000FE003FCFF000FE003FC7F80 0FE007F87F800FE007F83F800FE007F01FC00FE00FE00FE00FE01FC007F00FE03F8003FC 0FE0FF0000FF8FE7FC00003FFFFFF0000007FFFF800000007FF8000000000FE000000000 0FE0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE000000000 1FF00000001FFFFFF000001FFFFFF000001FFFFFF0002E337CB237>8 D<0001C00003C0000780000F00001E00003C0000380000780000F00001E00001E00003C0 0003C0000780000780000F80000F00001F00001F00001E00003E00003E00003E00003C00 007C00007C00007C00007C00007C0000FC0000FC0000F80000F80000F80000F80000F800 00F80000F80000F80000F80000F80000F80000F80000FC0000FC00007C00007C00007C00 007C00007C00003C00003E00003E00003E00001E00001F00001F00000F00000F80000780 0007800003C00003C00001E00001E00000F000007800003800003C00001E00000F000007 800003C00001C0124A79B71E>40 DI<0000006000000000 0000F0000000000000F0000000000000F0000000000000F0000000000000F00000000000 00F0000000000000F0000000000000F0000000000000F0000000000000F0000000000000 F0000000000000F0000000000000F0000000000000F0000000000000F0000000000000F0 000000000000F0000000000000F0000000000000F0000000000000F0000000000000F000 0000000000F00000007FFFFFFFFFFFC0FFFFFFFFFFFFE0FFFFFFFFFFFFE07FFFFFFFFFFF C0000000F0000000000000F0000000000000F0000000000000F0000000000000F0000000 000000F0000000000000F0000000000000F0000000000000F0000000000000F000000000 0000F0000000000000F0000000000000F0000000000000F0000000000000F00000000000 00F0000000000000F0000000000000F0000000000000F0000000000000F0000000000000 F0000000000000F00000000000006000000033327CAB3C>43 D<000FE000007FFC0000FF FE0003F83F8007E00FC007C007C00F8003E01F8003F01F0001F03F0001F83F0001F83F00 01F87E0000FC7E0000FC7E0000FC7E0000FC7E0000FCFE0000FEFE0000FEFE0000FEFE00 00FEFE0000FEFE0000FEFE0000FEFE0000FEFE0000FEFE0000FEFE0000FEFE0000FEFE00 00FEFE0000FEFE0000FEFE0000FEFE0000FEFE0000FE7E0000FC7E0000FC7E0000FC7E00 00FC7E0000FC3F0001F83F0001F83F0001F81F0001F01F8003F00F8003E007C007C007E0 0FC003F83F8000FFFE00007FFC00000FE0001F347DB126>48 D<00070000000F0000001F 000000FF00000FFF0000FFFF0000FF3F0000F03F0000003F0000003F0000003F0000003F 0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F 0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F 0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F 0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000007F80007FFF FF807FFFFF807FFFFF8019327AB126>I<003FC00000FFF00003FFFC000780FE000E003F 001C001F8038001FC038000FE070000FE07C0007F0FF0007F0FF0007F8FF8007F8FF8003 F8FF8003F87F0003F87F0003F81C0007F8000007F8000007F0000007F0000007F000000F E000000FC000001FC000001F8000003F0000007E0000007C000000F8000001F0000003E0 000007C00000078000000F0000001E0000003C00000078003800F0003801E0003801C000 7003800070070000700E0000F01FFFFFF03FFFFFF07FFFFFF0FFFFFFE0FFFFFFE0FFFFFF E01D327CB126>I<001FE000007FFC0001FFFF0003E03F8007800FC00E000FE01C0007F0 1F0007F03F8007F83FC003F83FC003F83FC003F83FC003F81F8007F80F0007F0000007F0 000007F000000FE000000FE000001FC000001F8000003F000001FE00007FF800007FE000 007FFC0000003F0000000F80000007E0000007F0000003F0000003F8000003FC000001FC 000001FE000001FE3E0001FE7F0001FEFF8001FEFF8001FEFF8001FEFF8001FCFF0003FC 7E0003F8780003F8380007F01C0007E00F000FC007E03F8003FFFF0000FFFC00001FE000 1F347DB126>I<000003C000000007C000000007C00000000FC00000000FC00000001FC0 0000003FC00000003FC00000007FC0000000FFC0000000EFC0000001EFC0000003CFC000 00038FC00000078FC00000070FC000000E0FC000001E0FC000001C0FC00000380FC00000 780FC00000700FC00000F00FC00001E00FC00001C00FC00003C00FC00007800FC0000700 0FC0000F000FC0000E000FC0001C000FC0003C000FC00038000FC00078000FC000F0000F C000FFFFFFFF80FFFFFFFF80FFFFFFFF8000000FC00000000FC00000000FC00000000FC0 0000000FC00000000FC00000000FC00000000FC00000000FC00000001FE0000007FFFF80 0007FFFF800007FFFF8021337EB226>I<080000C01F800FC01FFFFFC01FFFFF801FFFFE 001FFFFC001FFFF0001FFFC0001C7C00001C0000001C0000001C0000001C0000001C0000 001C0000001C0000001C0000001C0000001C0FC0001C3FF8001CFFFC001DF07E001FC01F 001F000F801F000FC01E0007C01C0007E00C0007F0000003F0000003F0000003F0000003 F8000003F8000003F8180003F83E0003F87F0003F8FF0003F8FF0003F8FF0003F0FF0003 F0FE0007F0780007E0700007E078000FC038000F801C001F000E003E0007C0FC0003FFF8 0001FFE000007F80001D347CB126>I<0000FE000007FF80000FFFC0003F01E0007C0070 00F801F001F003F803E007F807C007F807C007F80F8007F81F8003F01F8001E03F000000 3F0000003F0000007F0000007E0080007E0FF8007E1FFE00FE3FFF00FE700F80FEE007C0 FFC003E0FF8001F0FF8001F8FF0001F8FF0000FCFF0000FCFE0000FCFE0000FEFE0000FE FE0000FEFE0000FE7E0000FE7E0000FE7E0000FE7E0000FE7E0000FE3F0000FC3F0000FC 3F0000FC1F0001F81F0001F80F8001F00F8003E007C003E003E007C001F81F8000FFFE00 003FFC00000FE0001F347DB126>I<000FE000007FFC0000FFFF0001F01F8003C007C007 8003E00F0001E01F0001F01E0001F03E0000F83E0000F83E0000F83E0000F83F0000F83F 0000F83F8001F01FC001F01FE003E00FF803C00FFE078007FF1F0003FFFE0001FFFC0000 FFF800003FFC00007FFF0001FFFF8003E1FFC007C0FFE00F803FF01F001FF83E0007F83E 0003FC7C0000FC7C0000FEF800007EF800007EF800003EF800003EF800003EF800003EF8 00003C7C00003C7C00007C3E0000783E0000F01F0001E00FC003C007F01F8001FFFF0000 7FFC00001FE0001F347DB126>56 D<000FE000007FF80000FFFE0001F83F0003E00F8007 C007C00F8003E01F0003E03F0001F03F0001F07E0001F87E0001F87E0001F8FE0000FCFE 0000FCFE0000FCFE0000FCFE0000FCFE0000FEFE0000FEFE0000FEFE0000FE7E0000FE7E 0001FE7E0001FE3F0001FE3F0003FE1F0003FE0F8006FE07C00EFE03E01CFE01FFF8FE00 FFF0FC003FE0FC000200FC000000FC000001F8000001F8000001F80F0001F01F8003F03F C003E03FC003E03FC007C03FC00F803F800F001F001E001E007C000F81F80007FFF00003 FFC000007F00001F347DB126>I<7FFFFFFFFFFFC0FFFFFFFFFFFFE0FFFFFFFFFFFFE07F FFFFFFFFFFC0000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000007FFFFFFFFFFFC0FFFFFFFFFFFFE0FFFFFFFF FFFFE07FFFFFFFFFFFC033147C9C3C>61 D69 D80 D91 D93 D<0000001F00001FC07F80007FF0FF8001FFFDE7C003F07F87C007C01F07C00F800F8380 1F800FC0001F0007C0003F0007E0003F0007E0003F0007E0003F0007E0003F0007E0003F 0007E0003F0007E0001F0007C0001F800FC0000F800F800007C01F000007F07E000007FF FC00000C7FF000000C1FC000001C000000001C000000001E000000001E000000000F0000 00000FFFFE000007FFFFC00007FFFFF00003FFFFF8000FFFFFFC001F0001FE003E00007F 007C00001F007C00001F80F800000F80F800000F80F800000F80F800000F80F800000F80 7C00001F007C00001F003F00007E001F8000FC000FF007F80003FFFFE00000FFFF800000 1FFC000022337EA126>103 D<07E0FFE0FFE0FFE00FE007E007E007E007E007E007E007 E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007 E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007 E00FF0FFFFFFFFFFFF10347EB315>108 D<03F01FC000FFF07FF000FFF1FFF800FFF3C0 FC0007F7007E0003FE007E0003FC003F0003F8003F0003F8003F0003F8003F0003F0003F 0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F00 03F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003F0003 F0003F0003F0003F0003F0003F0003F0003F0007F8007F80FFFFC7FFFCFFFFC7FFFCFFFF C7FFFC26217EA02B>110 D<0007F00000003FFE000000FFFF800001F80FC00003E003E0 0007C001F0000F8000F8001F8000FC001F00007C003F00007E003E00003E007E00003F00 7E00003F007E00003F00FE00003F80FE00003F80FE00003F80FE00003F80FE00003F80FE 00003F80FE00003F80FE00003F807E00003F007E00003F007F00007F003F00007E003F00 007E001F8000FC001F8000FC000FC001F80007E003F00003F80FE00000FFFF8000003FFE 00000007F0000021237EA126>I<03E07C00FFE0FF00FFE1FF80FFE39FC007E71FC003EE 1FC003EC0F8003FC070003F8000003F8000003F8000003F0000003F0000003F0000003F0 000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0000003F0 000003F0000003F0000003F0000003F0000003F0000007F80000FFFFE000FFFFE000FFFF E0001A217FA01E>114 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fs cmsy6 6 4 /Fs 4 51 df0 D<01E003F007F007F007F00FE00FE00FE00FC00FC01FC01F801F801F003F003F003E003E 007E007C007C0078007800F800F00030000C1A7E9B12>48 D<00FE00000FE00003FFC000 3FF8000FFFF000FE3E001F0FF801F007003C01FC07C003803000FE0F00018070003F1E00 00C060001F9C0000C0E0000FF8000060C0000FF0000060C00007F0000060C00003F80000 60C00001FC000060C00001FE000060C00003FE0000E06000073F0000C060000F1F8001C0 30001E0FE0018038007C07F007801C01F003FE1F000F8FE001FFFE0003FF80007FF80000 FE00000FE00033177C953D>I<0007FFF0001FFFF0007FFFF001F8000003E00000078000 000F0000001E0000001C0000003800000038000000700000007000000070000000E00000 00E0000000FFFFFFF0FFFFFFF0FFFFFFF0E0000000E00000007000000070000000700000 0038000000380000001C0000001E0000000F0000000780000003E0000001F80000007FFF F0001FFFF00007FFF01C237A9D2A>I E %EndDVIPSBitmapFont %DVIPSBitmapFont: Ft cmr6 6 9 /Ft 9 62 df<000C0038007000E001C003C0038007000F000E001E001E003C003C003C00 7800780078007800F800F800F800F800F800F800F800F800F800F800F800780078007800 78003C003C003C001E001E000E000F000700038003C001C000E000700038000C0E317AA4 18>40 DI<0000380000000038000000003800000000380000000038000000003800000000380000 000038000000003800000000380000000038000000003800000000380000000038000000 00380000000038000000003800000000380000FFFFFFFFFEFFFFFFFFFEFFFFFFFFFE0000 380000000038000000003800000000380000000038000000003800000000380000000038 000000003800000000380000000038000000003800000000380000000038000000003800 0000003800000000380000000038000027277C9F2F>43 D<00FF0003FFC00781E00F00F0 1E00783C003C3C003C78001E78001E78001E78001EF8001FF8001FF8001FF8001FF8001F F8001FF8001FF8001FF8001FF8001FF8001FF8001FF8001F78001E78001E7C003E3C003C 3C003C1E00780F00F00781E003FFC000FF0018227DA01E>48 D<00700000F00007F000FF F000FFF000F9F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001 F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001 F00001F00001F000FFFFE0FFFFE0FFFFE013217AA01E>I<01FC000FFF801FFFC03C0FE0 7003F07C01F8FE00F8FE00FCFE00FCFE007C7C007C3800FC0000FC0000F80001F80001F0 0003E00007C0000780000F00001E0000380000700001E01C03801C0700380E00381C0038 3FFFF87FFFF8FFFFF0FFFFF0FFFFF016217CA01E>I<00FE0003FFC007FFE00F03F01E00 F83F00FC3F007C3F807C3F007C1F00FC0C00F80000F80001F00003E0000FC001FF0001FF 000003E00000F800007C00007E00003E00003F7C003F7C003FFE003FFE003FFE007EFC00 7E7800FC3E01F81FFFF007FFC001FF0018227DA01E>I<0000E00001E00003E00007E000 07E0000FE0001FE0001FE0003BE00073E000E3E000E3E001C3E00383E00703E00703E00E 03E01C03E01C03E03803E07003E0E003E0FFFFFFFFFFFFFFFFFF0003E00003E00003E000 03E00003E00003E0007FFF007FFF007FFF18227DA11E>I61 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fu cmmi9 9 37 /Fu 37 122 df<00000007F0000000003FFC00000000FFFF00000001F81F80000003C007 C000000F8007C000001E0003E000003C0003E00000380003E00000700003E00000E00003 E00001C00007E00001C00007E00003800007E00007800007E0000700000FC0000700000F C0000E00001F80000E00001F00001C00003E00001C00003E00001C03FEFC00001C07FFF0 0000380FFFE000003807FFF000003803FEF800003800007C00007000007E00007000003E 00007000003F00007000003F0000E000003F0000E000003F0000E000003F0000E000003F 0001C000007F0001C000007F0001C000007F0001C000007F0003800000FE0003800000FE 0003800000FC0003800001FC0007C00001F80007C00003F80007C00003F00007E00007E0 000EE00007C0000EF0000F80000E78003F00000E3E00FE00001C1FFFF800001C07FFF000 001C01FF8000001C00000000003800000000003800000000003800000000003800000000 00700000000000700000000000700000000000700000000000E00000000000E000000000 00E00000000000E00000000000C000000000002B447FB42B>12 D<0000000C000000001C 000000001C000000001C0000000038000000003800000000380000000038000000007000 000000700000000070000000007000000000E000000000E000000000E000000000E00000 0001C000000001C000000001C00000007FFC000001FFFF80000FFFFFC0001FC387F0007E 0381F800FC07007C01F007007C03E007003E07C007003E0F800E003F1F800E001F3F000E 001F3F000E001F7E001C001F7E001C003FFC001C003FFC001C003FFC0038003FFC003800 3FFC0038007EF80038007EF8007000FCF8007000FCF8007001F8FC007001F07C00E003E0 7C00E007C03E00E00F803E00E03F001F81C07E000FE1C3F80003FFFFF00001FFFF800000 3FFE00000003800000000380000000038000000007000000000700000000070000000007 000000000E000000000E000000000E000000000E000000001C000000001C000000001C00 0000001800000028447DB32E>30 D<0000FF000007FFE0001FFFF0007FFFFC00FE00FC01 F0003C03C00018070000000E0000000E0000000E0000000E0000000E0000000703C00007 FFF80003FFFC0003FFF80007FFF0000F0000001E00000038000000380000007000000070 000000E0000000E0000000E0000000E00000C0F00001C0700003C0780007803F003F001F FFFE000FFFFC0003FFF00000FF80001E247EA124>34 D<1C003E007F00FF80FF80FF807F 003E001C0009097A8815>58 D<1C007E007F00FF80FF80FFC07FC07FC01DC001C001C001 C001C0038003800380070007000E000E001C003800700020000A187A8815>I<00000000 000C00000000003E0000000000FE0000000003FC000000000FF0000000003FC000000000 FF0000000003FC000000000FF0000000003FC000000001FF0000000007FC000000001FF0 000000007FC000000001FE0000000007F8000000001FE0000000007F8000000001FE0000 000007F8000000001FE0000000007F8000000000FE0000000000FE00000000007F800000 00001FE00000000007F80000000001FE00000000007F80000000001FE00000000007F800 00000001FE00000000007FC0000000001FF00000000007FC0000000001FF00000000003F C0000000000FF00000000003FC0000000000FF00000000003FC0000000000FF000000000 03FC0000000000FE00000000003E00000000000C2F2E7AA93C>I<000000300000007800 000078000000F0000000F0000000F0000001E0000001E0000001E0000003C0000003C000 0003C000000780000007800000078000000F0000000F0000000F0000001E0000001E0000 003C0000003C0000003C000000780000007800000078000000F0000000F0000000F00000 01E0000001E0000001E0000003C0000003C0000003C0000007800000078000000F000000 0F0000000F0000001E0000001E0000001E0000003C0000003C0000003C00000078000000 7800000078000000F0000000F0000000F0000001E0000001E0000001E0000003C0000003 C000000780000007800000078000000F0000000F0000000F0000001E0000001E0000001E 0000003C0000003C0000003C000000780000007800000078000000F0000000F000000060 0000001D4B7CB726>I<600000000000F80000000000FE00000000007F80000000001FE0 0000000007F80000000001FE00000000007F80000000001FE00000000007F80000000001 FF00000000007FC0000000001FF00000000007FC0000000000FF00000000003FC0000000 000FF00000000003FC0000000000FF00000000003FC0000000000FF00000000003FC0000 000000FE0000000000FE0000000003FC000000000FF0000000003FC000000000FF000000 0003FC000000000FF0000000003FC000000000FF0000000007FC000000001FF000000000 7FC000000001FF0000000007F8000000001FE0000000007F8000000001FE0000000007F8 000000001FE0000000007F8000000000FE0000000000F800000000006000000000002F2E 7AA93C>I<0000000007800000000000078000000000000F8000000000001F8000000000 001F8000000000003F8000000000003F8000000000007F800000000000FF800000000000 FFC00000000001FFC00000000001DFC000000000039FC000000000079FC000000000071F C0000000000E1FC0000000000E1FC0000000001C1FC0000000003C1FC000000000381FC0 00000000701FE000000000700FE000000000E00FE000000001E00FE000000001C00FE000 000003800FE000000003800FE000000007000FE00000000F000FE00000000E000FE00000 001C000FF00000001C000FF0000000380007F0000000780007F00000007FFFFFF0000000 FFFFFFF0000000FFFFFFF0000001C00007F0000003C00007F0000003800007F000000700 0007F8000007000007F800000E000003F800001E000003F800001C000003F80000380000 03F8000038000003F8000070000003F80000F0000003F80001F0000003F80007F8000007 FC007FFF0000FFFFE0FFFF8001FFFFF0FFFF0000FFFFE034367DB53A>65 D<0000000FF800180000007FFF0038000003FFFF807800000FF803E0F000003FC000F1F0 0000FF00007BF00001FC00003BF00003F800001FE00007E000001FE0000FC000000FE000 3F8000000FE0007F00000007C0007E00000007C000FC00000007C001FC00000007C003F8 000000078007F8000000078007F000000007800FF000000007800FE000000007001FE000 000007001FC000000007003FC000000000003FC000000000007F8000000000007F800000 0000007F800000000000FF000000000000FF000000000000FF000000000000FF00000000 0000FF000000000000FE000000000000FE000000000000FE000000003000FE0000000070 00FE000000007000FE000000007000FE00000000E000FE00000000E000FE00000001C000 7E00000001C0007F0000000380007F0000000700003F0000000700001F8000000E00001F C000001C00000FC0000078000007E00000F0000003F00003E0000001FC000F80000000FF 807F000000003FFFFC000000000FFFF00000000001FF0000000035377CB437>67 D<000FFFFFFFF80000000FFFFFFFFF0000000FFFFFFFFFC00000001FC0003FE00000001F C0000FF00000003F800003F80000003F800001FC0000003F800000FE0000003F8000007F 0000007F0000003F0000007F0000003F8000007F0000003F8000007F0000001F800000FE 0000001FC00000FE0000001FC00000FE0000001FC00000FE0000001FC00001FC0000001F C00001FC0000001FC00001FC0000001FC00001FC0000001FC00003F80000003FC00003F8 0000003FC00003F80000003FC00003F80000003FC00007F00000003F800007F00000007F 800007F00000007F800007F00000007F80000FE00000007F00000FE0000000FF00000FE0 000000FE00000FE0000001FE00001FC0000001FC00001FC0000001FC00001FC0000003F8 00001FC0000003F000003F80000007F000003F8000000FE000003F8000000FC000003F80 00001F8000007F0000003F0000007F0000007E0000007F000001FC0000007F000003F800 0000FE00000FF0000000FE00003FC0000001FE0001FF000000FFFFFFFFFC000000FFFFFF FFF0000000FFFFFFFF000000003A337DB23F>I<0007FFFFFFFFF8000FFFFFFFFFF8000F FFFFFFFFF800001FC0000FF800001FC00001F800003F800000F800003F800000F800003F 8000007800003F8000007800007F0000007000007F0000007000007F0000007000007F00 0000700000FE000000700000FE000000700000FE000600700000FE000700700001FC000E 00600001FC000E00000001FC000E00000001FC001E00000003F8001C00000003F8003C00 000003F800FC00000003FFFFFC00000007FFFFF800000007FFFFF800000007F001F80000 0007F000780000000FE000700000000FE000700000000FE000700000000FE00070000000 1FC000E00000001FC000E00000001FC000E00000001FC000000000003F8000000000003F 8000000000003F8000000000003F8000000000007F0000000000007F0000000000007F00 00000000007F000000000000FE000000000000FE000000000001FE00000000007FFFFE00 000000FFFFFF00000000FFFFFE0000000035337DB231>70 D<0000000FF800180000007F FF0038000003FFFF807800000FF803E0F000003FC000F1F00000FF00007BF00001FC0000 3BF00003F800001FE00007E000001FE0000FC000000FE0003F8000000FE0007F00000007 C0007E00000007C000FC00000007C001FC00000007C003F8000000078007F80000000780 07F000000007800FF000000007800FE000000007001FE000000007001FC000000007003F C000000000003FC000000000007F8000000000007F8000000000007F800000000000FF00 0000000000FF000000000000FF000000000000FF000000000000FF000000000000FE0000 07FFFFC0FE000007FFFFC0FE000007FFFF80FE00000007F800FE00000007F000FE000000 07F000FE00000007F000FE0000000FE000FE0000000FE0007F0000000FE0007F0000000F E0007F0000001FC0003F8000001FC0001F8000001FC0001FC000003FC0000FC000007F80 0007E00000FF800003F80001EF800001FC0007C7800000FF803F030000003FFFFE010000 000FFFF00000000001FF8000000035377CB43C>I<00000007FC00000000007FFFC00000 0001FFFFF00000000FF807F80000001FC001FE0000007F00007F000000FC00003F800003 F800001F800007F000001FC0000FE000000FE0001FC0000007E0003F80000007F0007F00 000007F000FE00000007F000FE00000003F801FC00000003F803F800000003F803F80000 0003F807F000000003F807F000000003F80FF000000003F80FE000000003F81FE0000000 07F81FC000000007F83FC000000007F83FC000000007F83FC000000007F87F800000000F F07F800000000FF07F800000000FF07F800000001FE07F800000001FE07F000000001FE0 FF000000003FC0FF000000003FC0FF000000003F80FF000000007F807F000000007F007F 00000000FF007F00000001FE007F00000001FC007F80000003F8003F80000007F8003F80 000007F0001FC000000FE0001FC000001FC0000FE000003F80000FE00000FE000007F000 01FC000003F80007F8000001FE001FE0000000FF807F800000003FFFFE000000000FFFF8 0000000001FF8000000035377DB43A>79 D<0007FFFFFFF000000FFFFFFFFE00000FFFFF FFFF0000001FC0007FC000001FC0001FE000003F800007F000003F800007F000003F8000 03F800003F800003F800007F000003F800007F000003FC00007F000003FC00007F000003 FC0000FE000007F80000FE000007F80000FE000007F80000FE000007F00001FC00000FF0 0001FC00000FE00001FC00001FC00001FC00003FC00003F800003F800003F80000FE0000 03F80003FC000003F8000FF8000007FFFFFFE0000007FFFFFF00000007FFFFF800000007 F000000000000FE000000000000FE000000000000FE000000000000FE000000000001FC0 00000000001FC000000000001FC000000000001FC000000000003F8000000000003F8000 000000003F8000000000003F8000000000007F0000000000007F0000000000007F000000 0000007F000000000000FE000000000000FE000000000001FE00000000007FFFF8000000 00FFFFFC00000000FFFFF80000000036337DB231>I<000FFFFFFF8000000FFFFFFFF800 000FFFFFFFFE0000001FC001FF0000001FC0003FC000003F80001FE000003F80000FE000 003F800007F000003F800007F000007F000007F000007F000007F800007F000007F80000 7F000007F80000FE00000FF00000FE00000FF00000FE00000FF00000FE00001FE00001FC 00001FC00001FC00003FC00001FC00003F800001FC00007F000003F80001FE000003F800 03F8000003F8003FE0000003FFFFFF80000007FFFFFE00000007FFFFFC00000007F0007F 00000007F0003F8000000FE0001F8000000FE0000FC000000FE0000FE000000FE0000FE0 00001FC0000FE000001FC0000FE000001FC0000FE000001FC0000FE000003F80001FE000 003F80001FE000003F80001FE000003F80001FC000007F00003FC000007F00003FC00000 7F00003FC00C007F00003FC00E00FE00003FC01C00FE00003FC01C01FE00001FC038FFFF FC001FE070FFFFFC000FE0F0FFFFF80007FFE00000000003FF8000000000007F0037357D B23A>82 D<000000FF0018000007FFE03800001FFFF07800003F00F8F00000FC003CF000 01F0000FF00003E0000FF00007C00007E00007800007E0000F000003E0001F000003E000 1E000003C0003E000003C0003E000003C0003E000003C0007E00000380007E0000038000 7E00000380007F00000000007F00000000007F80000000003FF0000000003FFF00000000 1FFFF00000001FFFFE0000000FFFFF80000007FFFFC0000003FFFFE0000000FFFFF00000 000FFFF000000000FFF8000000000FF80000000003FC0000000001FC0000000001FC0000 000000FC0000000000FC000C000000FC000E000000FC001C000000F8001C000000F8001C 000000F8001C000000F0003C000001F0003C000001E0003E000003E0003E000003C0007F 00000780007F00000F00007F80001E00007BE0007C0000F1FC03F80000E07FFFE00000E0 1FFF800000C003FE0000002D377CB42F>I<07FFFFFFFFFFC00FFFFFFFFFFFC00FFFFFFF FFFFC00FF000FE003FC01F8000FE0007C01F0001FC0007C01E0001FC0003803C0001FC00 03803C0001FC000380380003F8000380380003F8000380700003F8000780700003F80007 00700007F0000700E00007F0000700E00007F0000700E00007F0000700C0000FE0000600 00000FE000000000000FE000000000000FE000000000001FC000000000001FC000000000 001FC000000000001FC000000000003F8000000000003F8000000000003F800000000000 3F8000000000007F0000000000007F0000000000007F0000000000007F000000000000FE 000000000000FE000000000000FE000000000000FE000000000001FC000000000001FC00 0000000001FC000000000001FC000000000003F8000000000003F8000000000003F80000 00000003F8000000000007F0000000000007F000000000000FF0000000001FFFFFF80000 003FFFFFFC0000003FFFFFF800000032337EB22D>I87 D<0003FFFFC007FFFC0007FFFFC00FFFFC 0003FFFF800FFFFC00000FFC0001FF8000000FF00000FC00000007F80000F000000007F8 0001E000000003FC0003C000000003FC00078000000001FC000F0000000001FE000E0000 000001FE001C0000000000FF00380000000000FF007000000000007F80E000000000007F 81C000000000003F83C000000000003FC78000000000003FCF0000000000001FFE000000 0000001FFC0000000000000FF80000000000000FF000000000000007F000000000000007 F800000000000007F800000000000007FC0000000000000FFC0000000000001DFE000000 00000039FE00000000000070FE000000000000E0FF000000000001E0FF000000000003C0 7F800000000007807F80000000000F003FC0000000001E003FC0000000003C001FC00000 000078001FE000000000F0001FE000000001E0000FF000000003C0000FF0000000038000 07F800000007000007F80000000E000003F80000003E000003FC0000007E000003FC0000 03FE000007FE00007FFFC0007FFFF800FFFFE0007FFFF8007FFFC0007FFFF8003E337EB2 3F>I<0001F800000007FE0000001FFF1C00003F07BE00007C03FE0000F801FE0001F001 FE0003F000FC0007E000FC000FC000FC000FC000FC001FC001F8001F8001F8003F8001F8 003F8001F8007F0003F0007F0003F0007F0003F0007F0003F0007E0007E000FE0007E000 FE0007E0C0FE0007E0E0FE000FC1C07E000FC1C07E000FC1C07E001FC1C03E003FC3803E 007FC3801F00EFC7800F83C7C70007FF83FE0003FF01FC0000FC00F80023227EA029>97 D<00000001F00000007FF8000000FFF00000007FF000000003F000000003F000000007E0 00000007E000000007E000000007E00000000FC00000000FC00000000FC00000000FC000 00001F800000001F800000001F800000001F800000003F000001F83F000007FE3F00001F FF3F00003F07FE00007C03FE0000F801FE0001F001FE0003F000FC0007E000FC000FC000 FC000FC000FC001FC001F8001F8001F8003F8001F8003F8001F8007F0003F0007F0003F0 007F0003F0007F0003F0007E0007E000FE0007E000FE0007E0C0FE0007E0E0FE000FC1C0 7E000FC1C07E000FC1C07E001FC1C03E003FC3803E007FC3801F00EFC7800F83C7C70007 FF83FE0003FF01FC0000FC00F80025357EB328>100 D<0000FE000007FF80001FFFC000 7F03E000FC00F001F000F003E000F007E000F00FC000F01F8000F03F8001E03F8003C07F 001F807FFFFF007FFFFE00FFFFF000FE000000FE000000FE000000FE000000FC000000FC 000000FC000000FC000000FC0000107C0000387E0000707E0001E03E0003C01F000F800F 80FF0007FFFC0003FFF00000FF00001D227DA024>I<0001C00003E00007E0000FE0000F E00007C00003800000000000000000000000000000000000000000000000000000000000 0000F00003FC0007FE000F1F001C1F001C1F00381F80383F00703F00703F00707E00E07E 00607E0000FC0000FC0000FC0001F80001F80003F00003F00003F00007E06007E07007E0 E00FC0E00FC0E00FC1C01F81C00F83800F83800F8F0007FE0003FC0000F00014337EB11A >105 D<0000001C0000007E0000007E000000FE000000FE0000007C0000003800000000 000000000000000000000000000000000000000000000000000000000000000000000000 00003F0000007F800001FFC00003C3E0000783F0000703F0000E03F0001C03F0001C03F0 003803F0003803F0007007E0003007E0000007E0000007E000000FC000000FC000000FC0 00000FC000001F8000001F8000001F8000001F8000003F0000003F0000003F0000003F00 00007E0000007E0000007E0000007E000000FC000000FC000000FC000000FC000001F800 0001F8000001F8000001F8001C03F0003E03F0007F07E0007F07C000FE0F80007C1F0000 787E00003FFC00001FF000000FC000001F4281B11F>I<0007C0000001FFE0000003FFC0 000001FFC00000000FC00000000FC00000001F800000001F800000001F800000001F8000 00003F000000003F000000003F000000003F000000007E000000007E000000007E000000 007E00000000FC00000000FC001F0000FC007F8000FC01FFC001F803E1C001F80783E001 F80E07E001F81C0FE003F0381FC003F0701FC003F0E00F8003F1C0070007E780000007EF 00000007FC00000007FF8000000FFFF000000FFFF800000FC3FC00000FC07E00001F803F 00001F803F00001F803F01801F803F01C03F003F03803F003F03803F003F03803F003F07 007E003F07007E003F07007E001F0E007E001F1C00FC000FFC007C0007F800380003E000 23357DB328>I<01E000FE0007F00007F803FF801FFC000FFC0FFFC07FFE001E3E1F07E0 F83F001C3F3C03F1E01F80383F7001F3800F80383FE001FF000FC0303FC001FE000FC070 3F8001FC000FC0703F8001FC000FC0703F0001F8000FC0E07F0003F8001F80607E0003F0 001F80007E0003F0001F80007E0003F0001F8000FC0007E0003F0000FC0007E0003F0000 FC0007E0003F0000FC0007E0007E0001F8000FC0007E0001F8000FC0007E0001F8000FC0 00FC0C01F8000FC000FC0E03F0001F8000FC1C03F0001F8001F81C03F0001F8001F81C03 F0001F8001F03807E0003F0003F03807E0003F0001F07007E0003F0001F07007E0003F00 01F1E00FC0007E0000FFC007C0003E00007F800380001C00001E003F227EA044>109 D<01E000FE000007F803FF80000FFC0FFFC0001E3E1F07E0001C3F3C03F000383F7001F0 00383FE001F800303FC001F800703F8001F800703F8001F800703F0001F800E07F0003F0 00607E0003F000007E0003F000007E0003F00000FC0007E00000FC0007E00000FC0007E0 0000FC000FC00001F8000FC00001F8000FC00001F8001F818001F8001F81C003F0001F83 8003F0003F038003F0003F038003F0003E070007E0007E070007E0003E0E0007E0003E0E 0007E0003E3C000FC0001FF80007C0000FF00003800003C0002A227EA02E>I<001F003F 00003F80FFC0007FC1FFE000E3E3C1F001E3F700F801C3FE007C01C3FC007C0383F8007E 0383F0007E0383F0007E0383F0007F0707E0007F0307E0007F0007E0007F0007E0007E00 0FC000FE000FC000FE000FC000FE000FC000FE001F8001FC001F8001FC001F8001F8001F 8003F8003F0003F0003F0003F0003F0007E0003F000FC0007F800F80007F801F00007FC0 3E00007FE0FC0000FCFFF80000FC7FE00000FC1F800000FC00000001F800000001F80000 0001F800000001F800000003F000000003F000000003F000000003F000000007E0000000 07E00000007FFF000000FFFF800000FFFF000000283083A027>112 D<0001F8030007FE07001FFF0F003F079E007C03FE00F801FE01F001FE03F000FC07E000 FC0FC000FC0FC000FC1FC001F81F8001F83F8001F83F8001F87F0003F07F0003F07F0003 F07F0003F07E0007E0FE0007E0FE0007E0FE0007E0FE000FC07E000FC07E000FC07E001F C03E003F803E007F801F00FF800F83DF8007FFBF0003FF3F0000FC3F0000003F0000007E 0000007E0000007E0000007E000000FC000000FC000000FC000000FC000001F8000001F8 00007FFFC0007FFFE0007FFFC020307EA022>I<03E007E007F01FF00FF83FF81C7C781C 387EE03C387FC07E387F80FE707F01FC707F01FC707E00F8707E0070E0FC000060FC0000 00FC000000FC000001F8000001F8000001F8000001F8000003F0000003F0000003F00000 03F0000007E0000007E0000007E0000007E000000FC000000FC000000FC000000FC00000 1F8000000F800000070000001F227EA023>I<000700000F80001F80001F80001F80003F 00003F00003F00003F00007E00007E00007E00007E0000FC0000FC00FFFFF8FFFFFCFFFF F801F80001F80001F80003F00003F00003F00003F00007E00007E00007E00007E0000FC0 000FC0000FC0000FC0001F80001F80001F80301F80383F00703F00703F00E03F00E03F01 C03F03803F07801F0F000FFE0007F80003F00016307EAE1C>116 D<00F800000001FE0001C003FF0003E0070F8007E00E0F8007E01C0F8007E0380FC007E0 380F800FC0701F800FC0701F800FC0703F000FC0E03F001F80603F001F80007E001F8000 7E001F80007E003F0000FC003F0000FC003F0000FC003F0001F8007E0001F8007E0001F8 007E0601F8007E0701F800FC0E01F000FC0E01F000FC0E01F000FC0C01F801FC1C01F803 FC1C00F807FC3800FC1E7C78007FFC3FF0001FF81FE00007E0078028227EA02C>I<00F0 000E0003FC001F0007FE003F800F1F007F801C1F007F801C1F003F80381F801F80381F00 0F80703F000F80703F000F80707E000780E07E000700607E00070000FC00070000FC0007 0000FC000E0001F8000E0001F8000E0001F8001C0003F0001C0003F0001C0003F0003800 03F000380003F000300003F000700003F000E00003F000E00003F001C00003F003800001 F807800000FC1F0000007FFE0000003FF800000007E0000021227EA025>I<00F0000000 070003FC0003800F8007FE0007C01F800F1F000FC03FC01C1F000FC03FC01C1F000FC01F C0381F800FC00FC0381F001F8007C0703F001F8007C0703F001F8007C0707E001F8003C0 E07E003F000380607E003F00038000FC003F00038000FC003F00038000FC007E00070001 F8007E00070001F8007E00070001F8007E00070003F000FC000E0003F000FC000E0003F0 00FC000E0003F000FC001C0003F000FC001C0003F000FC00380003F000FC00380003F001 FC00700003F001FC00700001F003FC00E00001F807FE01C00000FE0F3F078000007FFE1F FF0000001FFC0FFE00000007F001F8000032227EA037>I<000F801F00003FE07FC000FF F0FFE001E0F9E0F003C07F80F007007F81F807007F03F80E007E07F01E007E07F01C007E 03E01C007E01C03800FC00001800FC00000000FC00000000FC00000001F800000001F800 000001F800000001F800000003F000000003F000000003F000C00003F000E01C07E001C0 3E07E001C07F07E003807F07E00380FE0FE00700FC0FE00F00781DE01E007839F07C003F F0FFF8001FE07FE00007C01F800025227EA02C>I<00F000000003FC0001C007FE0003E0 0F1F0007E01C1F0007E01C1F0007E0381F8007E0381F000FC0703F000FC0703F000FC070 7E000FC0E07E001F80607E001F8000FC001F8000FC001F8000FC003F0001F8003F0001F8 003F0001F8003F0003F0007E0003F0007E0003F0007E0003F0007E0003F000FC0003E000 FC0003E000FC0003E001FC0003F001F80003F003F80001F007F80000F81FF800007FFFF0 00003FFBF000000FC3F000000003F000000007E000000007E00007000FC0001F800FC000 1F801F80003F801F00003F803F00003F007E00003E00FC00003C01F800001E07E000000F FFC0000007FF00000001F800000023317EA026>I E %EndDVIPSBitmapFont /Fv 104[75 2[33 33 24[33 37 37 54 37 37 21 29 25 37 37 37 37 58 21 37 21 21 37 37 25 33 37 33 37 33 3[25 1[25 1[54 54 71 1[54 46 42 50 1[42 54 54 66 46 54 29 25 54 54 42 46 54 50 50 54 5[21 21 37 37 37 37 37 37 37 37 37 37 21 19 25 19 2[25 25 25 36[42 2[{TeXBase1Encoding ReEncodeFont}74 74.7198 /Times-Roman rf /Fw 134[42 1[58 42 46 25 42 29 46 46 46 46 66 21 42 1[21 46 46 25 42 46 42 46 42 9[71 2[46 50 54 2[58 54 62 46 2[21 54 58 2[54 54 54 54 7[42 42 42 42 42 42 42 42 42 42 1[21 25 3[25 25 37[46 2[{ TeXBase1Encoding ReEncodeFont}53 74.7198 /Helvetica-Bold rf /Fx 211[23 44[{TeXBase1Encoding ReEncodeFont}1 90.9091 /Times-Roman rf %DVIPSBitmapFont: Fy cmtt10 10.95 18 /Fy 18 121 df<0F001F803FC07FE0FFF0FFF0FFF0FFF07FE03FC01F800F000C0C6E8B30 >46 D<00001FE0000000FFF8000003FFFE000007FFFF00001FFFFF80003FFFFFC0007FF0 3FE000FF800FE001FE0007F003FC0003F003F801FBF807F007FFF80FE00FFFF80FC01FFF FC1FC03FFFFC1F807FFFFC3F80FF0FFC3F00FC03FC3F01FC03FE7F01F801FE7E03F801FE 7E03F000FE7E03F000FEFE07F000FEFC07E0007EFC07E0007EFC07E0007EFC07E0007EFC 07E0007EFC07E0007EFC07E0007EFC07E0007EFC07E0007EFC07E0007EFE07F000FE7E03 F000FC7E03F000FC7E03F801FC7F01F801F83F01FC03F83F00FC03F03F80FF0FF01F807F FFE01FC03FFFC00FC01FFF800FE00FFF0007F007FE0003F801F80003FC00007C01FE0000 FE00FF8003FE007FF01FFE003FFFFFFC001FFFFFF00007FFFFE00003FFFFC00000FFFE00 00001FF000273A7CB830>64 D<001FFC00000000FFFF80000003FFFFC0000007FFFFF000 000FFFFFF800000FFFFFFC00001FF80FFE00001FF001FF00001FF000FF00001FF0007F80 000FE0003F800007C0003FC0000380001FC0000000001FC0000000001FC0000000001FC0 000000FFFFC000000FFFFFC000007FFFFFC00001FFFFFFC00003FFFFFFC0000FFFFFFFC0 001FFFC01FC0003FFC001FC0007FE0001FC0007F80001FC000FF00001FC000FE00001FC0 00FE00001FC000FE00001FC000FE00001FC000FF00003FC000FF00003FC0007F80007FC0 007FC001FFC0003FF80FFFFFC01FFFFFFFFFC00FFFFFFFFFE007FFFFE7FFE003FFFFC3FF C000FFFF007FC0003FF00000002B2A7CA830>97 D<3FFC000000007FFC00000000FFFE00 000000FFFE000000007FFE000000003FFE0000000000FE0000000000FE0000000000FE00 00000000FE0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE00 00000000FE0000000000FE03FE000000FE1FFF800000FE3FFFE00000FEFFFFF00000FFFF FFF80000FFFFFFFC0000FFFE07FE0000FFF001FF0000FFC000FF8000FF80007F8000FF80 003FC000FF00001FC000FE00001FE000FE00000FE000FE00000FE000FE00000FF000FE00 0007F000FE000007F000FE000007F000FE000007F000FE000007F000FE000007F000FE00 0007F000FE000007F000FE00000FF000FE00000FF000FE00000FE000FF00000FE000FF00 001FE000FF80001FC000FF80003FC000FFC0007F8000FFE000FF0000FFF003FF0000FFFC 0FFE0000FFFFFFFC0000FFFFFFF80000FEFFFFF000007C3FFFC000003C1FFF0000000003 FC00002C3980B730>I<0000FFC0000007FFF800001FFFFE00007FFFFF0000FFFFFF8001 FFFFFF8003FF80FFC007FC007FC00FF8007FC00FE0007FC01FE0003F803FC0001F003F80 000E007F800000007F000000007F00000000FF00000000FE00000000FE00000000FE0000 0000FE00000000FE00000000FE00000000FE00000000FE00000000FF000000007F000000 007F000000007F800000003F800007C03FC0000FE01FE0000FE01FF0001FE00FF8001FC0 07FE003FC003FFC0FF8001FFFFFF0000FFFFFE00007FFFFC00001FFFF8000007FFF00000 01FF8000232A7AA830>I<000001FFE000000003FFE000000007FFF000000007FFF00000 0003FFF000000001FFF00000000007F00000000007F00000000007F00000000007F00000 000007F00000000007F00000000007F00000000007F00000000007F00000000007F00000 03FE07F000001FFF87F000003FFFE7F00000FFFFF7F00001FFFFFFF00003FFFFFFF00007 FF03FFF0000FFC00FFF0000FF0003FF0001FE0001FF0003FC0000FF0003F80000FF0007F 800007F0007F000007F0007F000007F000FF000007F000FF000007F000FE000007F000FE 000007F000FE000007F000FE000007F000FE000007F000FE000007F000FE000007F000FE 000007F000FF000007F0007F00000FF0007F00000FF0007F80000FF0003F80001FF0003F C0001FF0001FE0003FF0001FF0007FF0000FF801FFF00007FE07FFFFC003FFFFFFFFE001 FFFFF7FFF000FFFFE7FFF0007FFFC3FFE0001FFF03FFC00007FC0000002C397DB730>I< 0000FF00000007FFE000001FFFF800007FFFFC0000FFFFFE0001FFFFFF0003FF01FF8007 FC007FC00FF8003FC01FE0001FE01FC0000FE03FC0000FF03F800007F07F800007F07F00 0007F07F000003F8FF000003F8FE000003F8FFFFFFFFF8FFFFFFFFF8FFFFFFFFF8FFFFFF FFF8FFFFFFFFF0FFFFFFFFF0FE00000000FF000000007F000000007F000000007F800000 003F800001F03FC00001F01FE00003F80FF00003F80FF80007F807FE001FF003FF807FE0 01FFFFFFE000FFFFFFC0003FFFFF80001FFFFE000003FFF80000007FC000252A7CA830> I<0001E000000003F000000007F80000000FFC0000000FFC0000000FFC0000000FFC0000 0007F800000003F000000001E00000000000000000000000000000000000000000000000 000000000000000000000000000000000000001FFFF800003FFFF800007FFFFC00007FFF FC00003FFFFC00001FFFFC00000001FC00000001FC00000001FC00000001FC00000001FC 00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC00 000001FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC0000 0001FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC000000 01FC00003FFFFFFFC07FFFFFFFC0FFFFFFFFE0FFFFFFFFE07FFFFFFFC03FFFFFFFC02339 7AB830>105 D<7FFFF80000FFFFF80000FFFFFC0000FFFFFC0000FFFFFC00007FFFFC00 000001FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC0000 0001FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC000000 01FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001 FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC 00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC00 000001FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC0000 0001FC00007FFFFFFFF0FFFFFFFFF8FFFFFFFFF8FFFFFFFFF8FFFFFFFFF87FFFFFFFF025 387BB730>108 D<0000FC007E00007FC3FF01FF80007FCFFF87FFC000FFFFFFCFFFE000 FFFFFFDFFFE0007FFFFFFFFFF0007FFF0FFF87F00007FC07FE03F80007FC07FE03F80007 F803FC01F80007F803FC01F80007F003F801F80007F003F801F80007F003F801F80007E0 03F001F80007E003F001F80007E003F001F80007E003F001F80007E003F001F80007E003 F001F80007E003F001F80007E003F001F80007E003F001F80007E003F001F80007E003F0 01F80007E003F001F80007E003F001F80007E003F001F80007E003F001F80007E003F001 F80007E003F001F80007E003F001F80007E003F001F80007E003F001F8007FFE0FFF07FF 807FFE1FFF0FFF80FFFF1FFF8FFFC0FFFF1FFF8FFFC07FFE1FFF0FFF807FFE0FFF07FF80 322881A730>I<000001FE00003FFC0FFF80007FFC3FFFE000FFFE7FFFF000FFFFFFFFF8 007FFFFFFFF8003FFFFE07FC0000FFF001FC0000FFE001FE0000FFC001FE0000FF8000FE 0000FF8000FE0000FF0000FE0000FF0000FE0000FE0000FE0000FE0000FE0000FE0000FE 0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE 0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE 0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE003FFFF81FFF F87FFFFC1FFFFCFFFFFE3FFFFEFFFFFE3FFFFE7FFFFC1FFFFC3FFFF81FFFF82F2880A730 >I<0001FF0000000FFFE000003FFFF800007FFFFC0000FFFFFE0003FFFFFF8003FF01FF 8007FC007FC00FF8003FE01FE0000FF01FE0000FF03FC00007F83F800003F87F800003FC 7F000001FC7F000001FC7F000001FCFE000000FEFE000000FEFE000000FEFE000000FEFE 000000FEFE000000FEFE000000FEFE000000FEFF000001FE7F000001FC7F000001FC7F80 0003FC3F800003F83FC00007F83FE0000FF81FF0001FF00FF8003FE00FFC007FE007FF01 FFC003FFFFFF8001FFFFFF00007FFFFC00003FFFF800000FFFE0000001FF0000272A7CA8 30>I<000003FE00003FFC1FFF80007FFC3FFFE000FFFEFFFFF000FFFFFFFFF8007FFFFF FFFC003FFFFE07FE0000FFF001FF0000FFC000FF8000FF80007F8000FF80003FC000FF00 001FC000FE00001FE000FE00000FE000FE00000FE000FE00000FF000FE000007F000FE00 0007F000FE000007F000FE000007F000FE000007F000FE000007F000FE000007F000FE00 0007F000FE00000FF000FE00000FF000FE00000FE000FF00000FE000FF00001FE000FF80 001FC000FF80003FC000FFC0007F8000FFE000FF0000FFF003FF0000FFFC0FFE0000FFFF FFFC0000FFFFFFF80000FEFFFFF00000FE3FFFC00000FE1FFF000000FE03FC000000FE00 00000000FE0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE00 00000000FE0000000000FE0000000000FE0000000000FE0000000000FE0000000000FE00 0000003FFFF80000007FFFFC000000FFFFFE000000FFFFFE0000007FFFFC0000003FFFF8 0000002C3C80A730>I<00000007F8003FFF803FFE007FFF80FFFF00FFFFC3FFFF80FFFF C7FFFFC07FFFCFFFFFC03FFFDFFC3FC0001FFFE03FC0001FFF801F80001FFE000F00001F FC000000001FFC000000001FF8000000001FF0000000001FF0000000001FE0000000001F E0000000001FE0000000001FE0000000001FC0000000001FC0000000001FC0000000001F C0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC0000000001F C0000000001FC0000000001FC0000000001FC0000000001FC0000000001FC00000003FFF FFFC00007FFFFFFE0000FFFFFFFF0000FFFFFFFF00007FFFFFFE00003FFFFFFC00002A28 7EA730>114 D<001FFC0E0001FFFF9F0007FFFFFF000FFFFFFF001FFFFFFF003FFFFFFF 007FF007FF007F0001FF00FE0000FF00FC00007F00FC00007F00FC00007F00FC00007F00 FE00003E007F000000007FE00000003FFF0000001FFFFC00000FFFFF800007FFFFE00001 FFFFF800007FFFFC000003FFFE0000000FFF00000000FF803C00003F807E00001FC0FE00 001FC0FE00000FC0FF00000FC0FF00000FC0FF80000FC0FF80001FC0FFC0001F80FFE000 7F80FFFC03FF00FFFFFFFE00FFFFFFFC00FDFFFFF800FCFFFFF000F83FFFC000700FFE00 00222A79A830>I<0007800000000F800000001FC00000001FC00000001FC00000001FC0 0000001FC00000001FC00000001FC00000001FC00000001FC000003FFFFFFFE07FFFFFFF E0FFFFFFFFF0FFFFFFFFF07FFFFFFFE07FFFFFFFE0001FC00000001FC00000001FC00000 001FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC0000000 1FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001FC00000001F C00000001FC000F8001FC000F8001FC001FC001FC001FC001FC001FC001FC001FC001FE0 03FC000FE003F8000FF007F8000FFC1FF00007FFFFE00003FFFFC00001FFFF800000FFFF 0000007FFC0000001FF00026337EB130>I<3FFC003FFC007FFC007FFC00FFFE00FFFE00 FFFE00FFFE007FFE007FFE003FFE003FFE0000FE0000FE0000FE0000FE0000FE0000FE00 00FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE00 00FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE00 00FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE00 00FE0000FE0000FE0001FE0000FE0001FE0000FE0003FE0000FE0003FE0000FF000FFE00 007FC07FFFF8007FFFFFFFFC003FFFFFFFFE001FFFFFFFFE000FFFFE7FFC0007FFF87FF8 0000FFC000002F2880A630>I<3FFF81FFFC007FFFC3FFFE00FFFFC3FFFF00FFFFC3FFFF 007FFFC3FFFE003FFF81FFFC0000FE007F0000007F007F0000007F80FE0000003F81FC00 00001FC3F80000000FE3F80000000FE7F000000007FFE000000003FFC000000001FFC000 000000FF8000000000FF00000000007E00000000007F0000000000FF0000000001FF8000 000001FFC000000003F7E000000007E7E00000000FE3F00000000FC1F80000001F81FC00 00003F80FE0000007F007E0000007E007F000000FE003F800001FC001FC0007FFF80FFFF 00FFFFC1FFFF00FFFFE3FFFF80FFFFE3FFFF80FFFFC1FFFF007FFF80FFFF0029277DA630 >120 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fz cmsy10 10.95 2 /Fz 2 104 df<0000007F000003FF00001FFF00003FE000007F800000FE000001FC0000 03F8000003F8000007F0000007F0000007F0000007F0000007F0000007F0000007F00000 07F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F00000 07F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F00000 07F0000007F0000007F000000FE000000FE000001FC000001F8000007F000000FE000007 FC0000FFF00000FF800000FFF0000007FC000000FE0000007F0000001F8000001FC00000 0FE000000FE0000007F0000007F0000007F0000007F0000007F0000007F0000007F00000 07F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F00000 07F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F00000 07F0000007F0000007F0000003F8000003F8000001FC000000FE0000007F8000003FE000 001FFF000003FF0000007F205B7AC32D>102 D<7E000000FFE00000FFF8000007FE0000 00FF0000003F8000001FC000000FE000000FE0000007F0000007F0000007F0000007F000 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 0007F0000007F0000007F0000007F0000007F0000007F0000003F8000003F8000001FC00 0000FC0000007E0000003F8000001FE0000007FF000001FF000007FF00001FE000003F80 00007E000000FC000001FC000003F8000003F8000007F0000007F0000007F0000007F000 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000 0007F0000007F0000007F0000007F0000007F0000007F000000FE000000FE000001FC000 003F800000FF000007FE0000FFF80000FFE000007E000000205B7AC32D>I E %EndDVIPSBitmapFont /FA 134[40 40 1[40 45 25 35 35 1[45 45 45 66 3[25 2[25 40 1[40 1[45 11[66 51 45 14[66 61 1[56 20[23 44[{ TeXBase1Encoding ReEncodeFont}23 90.9091 /Times-Italic rf /FB 135[45 2[51 25 1[30 2[51 51 76 20 2[20 1[51 25 51 2[51 51 13[61 66 1[61 1[66 6[71 2[66 66 61 61 18[25 46[{TeXBase1Encoding ReEncodeFont}24 90.9091 /Helvetica rf /FC 138[73 40 66 47 1[73 73 73 106 33 2[33 73 73 40 66 73 66 1[66 12[73 80 5[100 77[{TeXBase1Encoding ReEncodeFont}20 119.552 /Helvetica-Bold rf end %%EndProlog %%BeginSetup %%Feature: *Resolution 600dpi TeXDict begin %%EndSetup %%Page: 1 1 1 0 bop 321 149 a FC(Thread)34 b(Sc)o(heduling)g(f)n(or)e(Multipr)n (ogrammed)i(Multipr)n(ocessor)n(s)831 374 y FB(Nimar)25 b(S)n(.)g(Aror)o(a)126 b(Rober)t(t)24 b(D)-6 b(.)25 b(Blumof)m(e)125 b(C)m(.)25 b(Greg)f(Plaxton)799 487 y FA(Department)h(of)f(Computer)g (Science)o(,)h(Univer)o(sity)h(of)d(T)-8 b(e)n(xas)24 b(at)f(A)n(ustin)1190 600 y Fz(f)p Fy(nimar)p Fx(,)p Fy(rdb)p Fx(,)p Fy(plaxton)p Fz(g)p Fy(@cs.utexas)o(.ed)o(u)-150 897 y Fw(Abstract)-150 1023 y Fv(W)-6 b(e)24 b(present)h(a)f(user)o (-le)n(v)o(el)h(thread)g(scheduler)g(for)g(shared-memory)h(mul-)-150 1106 y(tiprocessors,)c(and)g(we)f(analyze)i(its)d(performance)j(under)f (multiprogram-)-150 1190 y(ming.)52 b(W)-6 b(e)27 b(model)i (multiprogramming)h(with)e(tw)o(o)g(scheduling)i(le)n(v)o(els:)-150 1273 y(our)22 b(scheduler)h(runs)f(at)f(user)o(-le)n(v)o(el)h(and)g (schedules)h(threads)f(onto)g(a)g(\002x)o(ed)-150 1356 y(collection)27 b(of)f(processes,)j(while)d(belo)n(w)-5 b(,)29 b(the)d(operating-system)i(k)o(ernel)-150 1439 y(schedules)22 b(processes)f(onto)g(a)f(\002x)o(ed)h(collection)g(of)f (processors.)28 b(W)-6 b(e)20 b(con-)-150 1522 y(sider)31 b(the)g(k)o(ernel)g(to)g(be)g(an)h(adv)o(ersary)-5 b(,)34 b(and)e(our)f(goal)g(is)g(to)g(schedule)-150 1605 y(threads)20 b(onto)g(processes)h(such)f(that)g(we)f(mak)o(e)h(ef)n(\002cient)g(use) g(of)f(whate)n(v)o(er)-150 1688 y(processor)h(resources)g(are)f(pro)o (vided)h(by)f(the)g(k)o(ernel.)-73 1771 y(Our)29 b(thread)g(scheduler)i (is)d(a)h(non-blocking)j(implementation)e(of)f(the)-150 1854 y(w)o(ork-stealing)24 b(algorithm.)36 b(F)o(or)23 b(an)o(y)h(multithreaded)g(computation)g(with)-150 1937 y(w)o(ork)18 b Fu(T)65 1945 y Ft(1)117 1937 y Fv(and)g(critical-path)f (length)i Fu(T)870 1945 y Fs(1)934 1937 y Fv(,)f(and)g(for)f(an)o(y)h (number)h Fu(P)28 b Fv(of)18 b(pro-)-150 2020 y(cesses,)32 b(our)e(scheduler)g(e)o(x)o(ecutes)g(the)f(computation)i(in)e(e)o (xpected)h(time)-150 2103 y Fu(O)r Fr(\()p Fu(T)-15 2111 y Ft(1)20 2103 y Fu(=P)107 2111 y Fq(A)177 2103 y Fr(+)19 b Fu(T)301 2111 y Fs(1)366 2103 y Fu(P)6 b(=P)508 2111 y Fq(A)559 2103 y Fr(\))p Fv(,)22 b(where)h Fu(P)884 2111 y Fq(A)956 2103 y Fv(is)e(the)i(a)o(v)o(erage)f(number)h(of)g (pro-)-150 2186 y(cessors)17 b(allocated)g(to)g(the)f(computation)i(by) f(the)g(k)o(ernel.)23 b(This)16 b(time)g(bound)-150 2269 y(is)22 b(optimal)h(to)g(within)f(a)h(constant)g(f)o(actor)m(,)h(and)f (achie)n(v)o(es)h(linear)e(speedup)-150 2352 y(whene)n(v)o(er)e Fu(P)30 b Fv(is)18 b(small)h(relati)n(v)o(e)f(to)h(the)g(a)o(v)o(erage) h(parallelism)e Fu(T)1554 2360 y Ft(1)1589 2352 y Fu(=T)1672 2360 y Fs(1)1737 2352 y Fv(.)-150 2519 y Fw(1)74 b(Intr)o(oduction)-150 2646 y Fv(F)o(or)18 b(shared-memory)j(multiprocessors,)e(parallel)g (applications)h(use)f(mul-)-150 2729 y(tiple)e(threads)i(and)f(are)g (coded)h(using)g(a)e(parallelizing)h(compiler)m(,)g(a)g(threads)-150 2812 y(library)-5 b(,)17 b(or)g(a)g(multithreaded)h(language)h(such)e (as)g(Cilk)g([7,)g(18])g(or)g(Ja)o(v)n(a)g([3].)-150 2895 y(In)24 b(addition)h(to)e(supporting)j(multithreaded)f (applications,)g(multiproces-)-150 2978 y(sors)h(also)h(support)g (multiprogrammed)g(w)o(orkloads)h(in)e(which)g(a)h(mix)f(of)-150 3061 y(serial)e(and)g(parallel,)h(interacti)n(v)o(e)f(and)g(batch)h (applications)g(may)f(e)o(x)o(ecute)-150 3144 y(concurrently)-5 b(.)25 b(A)18 b(major)h(f)o(actor)g(in)f(the)h(performance)h(of)f(such) g(w)o(orkloads)-150 3227 y(is)g(the)g(operation)g(of)g(the)g(thread)h (scheduler)l(.)-73 3310 y(Prior)e(w)o(ork)h(on)g(thread)g(scheduling)h ([4,)e(5)q(,)g(8,)g(11)q(,)g(12)q(])g(has)h(dealt)f(e)o(xclu-)-150 3393 y(si)n(v)o(ely)23 b(with)f(non-multiprogrammed)j(en)m(vironments)f (in)e(which)h(a)f(multi-)-150 3476 y(threaded)28 b(computation)h(e)o(x) o(ecutes)f(on)g Fu(P)38 b Fv(dedicated)28 b(processors.)50 b(Such)-150 3559 y(scheduling)30 b(algorithms)f(dynamically)h(map)g (threads)f(onto)g(the)g(proces-)-150 3642 y(sors)j(with)f(the)g(goal)h (of)f(achie)n(ving)i Fu(P)11 b Fv(-fold)31 b(speedups.)62 b(Though)33 b(such)-150 3725 y(algorithms)26 b(will)e(w)o(ork)i(in)f (some)g(multiprogrammed)i(en)m(vironments,)h(in)-150 3808 y(particular)18 b(those)g(that)f(emplo)o(y)i(static)e(space)h (partitioning)g([13)q(,)f(26)q(])g(or)h(co-)-150 3891 y(scheduling)k([15)q(,)e(26)q(,)h(29],)g(the)o(y)g(do)h(not)f(w)o(ork)h (in)e(the)h(multiprogrammed)-150 3974 y(en)m(vironments)32 b(being)f(supported)h(by)f(modern)h(shared-memory)g(multi-)-150 4057 y(processors)g(and)g(operating)g(systems)g([9,)f(13)q(,)f(14)q(,)h (20].)60 b(The)31 b(problem)p -150 4119 801 4 v -45 4187 a Fp(This)21 b(research)h(is)f(supported)h(in)h(part)f(by)g(the)g (Defense)g(Adv)o(anced)f(Research)g(Projects)-150 4253 y(Agenc)o(y)d(\(D)n(ARP)-5 b(A\))18 b(under)g(Grant)h(F30602-97-1-0150) h(from)f(the)f(U.S.)f(Air)i(F)o(orce)f(Research)-150 4320 y(Laboratory)l(.)30 b(In)18 b(addition,)i(Gre)o(g)f(Plaxton)g(is)f (supported)g(by)h(the)f(National)h(Science)f(F)o(ounda-)-150 4386 y(tion)h(under)h(Grant)f(CCR\2269504145.)30 b(Multiprocessor)19 b(computing)h(f)o(acilities)f(were)g(pro)o(vided)-150 4453 y(through)c(a)g(generous)f(donation)h(by)g(Sun)g(Microsystems.) -150 4851 y Fo(This)f(paper)i(appears)g(in)f(the)g Fn(Pr)m(oceedings)h (of)f(the)g(T)-6 b(enth)16 b(Annual)f(A)n(CM)-150 4926 y(Symposium)25 b(on)g(P)-5 b(ar)o(allel)25 b(Algorithms)g(and)f(Ar)n(c) o(hitectur)n(es)i(\(SP)-6 b(AA\))p Fo(,)-150 5001 y(Puerto)18 b(V)-7 b(allarta,)19 b(Me)o(xico,)f(June)f(1998.)2049 897 y Fv(lies)i(in)g(the)g(assumption)i(that)e(a)g(\002x)o(ed)g (collection)h(of)f(processors)i(are)e(fully)2049 980 y(a)o(v)n(ailable)g(to)g(perform)g(a)g(gi)n(v)o(en)h(computation.)2126 1063 y(In)f(a)h(multiprogrammed)h(en)m(vironment,)g(a)f(parallel)f (computation)i(runs)2049 1146 y(on)f(a)f(collection)h(of)f(processors)h (that)f(gro)n(ws)h(and)g(shrinks)g(o)o(v)o(er)f(time.)24 b(Ini-)2049 1229 y(tially)18 b(the)h(computation)h(may)f(be)g(the)g (only)h(one)f(running,)h(and)f(it)f(may)h(use)2049 1312 y(all)27 b Fu(P)38 b Fv(processors.)49 b(A)27 b(moment)h(later)m(,)h (someone)g(may)f(launch)g(another)2049 1395 y(computation,)21 b(possibly)f(a)g(serial)f(computation,)i(that)e(runs)h(on)g(some)h (pro-)2049 1478 y(cessor)l(.)i(In)16 b(this)g(case,)i(the)e(parallel)h (computation)g(gi)n(v)o(es)g(up)g(one)h(processor)2049 1561 y(and)h(continues)g(running)g(on)g(the)f(remaining)h Fu(P)25 b Fm(\000)14 b Fr(1)k Fv(processors.)24 b(Later)m(,)17 b(if)2049 1644 y(the)g(serial)g(computation)i(terminates)e(or)g(w)o (aits)g(for)g(I/O,)f(the)h(parallel)g(com-)2049 1727 y(putation)23 b(can)g(resume)f(its)g(use)h(of)f(all)g(processors.)34 b(In)22 b(general,)h(other)g(se-)2049 1810 y(rial)16 b(and)h(parallel)g(computations)h(may)f(use)g(processors)h(in)e(a)h (time-v)n(arying)2049 1893 y(manner)k(that)e(is)g(be)o(yond)j(our)e (control.)26 b(Thus,)19 b(we)h(assume)g(that)g(an)g(adv)o(er)o(-)2049 1976 y(sary)g(controls)g(the)g(set)g(of)g(processors)h(on)f(which)g(a)g (parallel)f(computation)2049 2059 y(runs.)2126 2142 y(Speci\002cally)-5 b(,)44 b(rather)39 b(than)h(mapping)h(threads)f(to)g(processors,)45 b(our)2049 2225 y(thread)20 b(scheduler)h(maps)f(threads)g(to)f(a)h (\002x)o(ed)f(collection)h(of)g Fu(P)30 b Fv(processes,)2049 2308 y(and)d(an)f(adv)o(ersary)i(maps)e(processes)i(to)e(processors.)46 b(Thus,)28 b(we)e(model)2049 2391 y(a)21 b(multiprogrammed)i(en)m (vironment)g(with)e(tw)o(o)h(le)n(v)o(els)f(of)h(scheduling.)32 b(A)2049 2474 y(user)o(-le)n(v)o(el)17 b(scheduler)h(\227)f(our)h (scheduler)g(\227)f(maps)g(threads)h(to)f(processes,)2049 2557 y(and)j(belo)n(w)g(this)g(le)n(v)o(el,)f(the)h(k)o(ernel)g(\227)f (an)h(adv)o(ersary)h(\227)e(maps)h(processes)2049 2640 y(to)29 b(processors.)53 b(In)28 b(this)h(en)m(vironment,)j(we)c (cannot)i(e)o(xpect)f(to)g(achie)n(v)o(e)2049 2723 y Fu(P)11 b Fv(-fold)24 b(speedups,)i(because)f(the)f(k)o(ernel)g(may)h (run)f(our)g(computation)h(on)2049 2806 y(fe)n(wer)15 b(than)h Fu(P)25 b Fv(processors.)e(Rather)m(,)16 b(we)f(let)f Fu(P)3277 2814 y Fq(A)3342 2806 y Fv(denote)i(the)g(time-a)o(v)o(erage) 2049 2889 y(number)26 b(of)f(processors)h(on)g(which)f(the)h(k)o(ernel) f(e)o(x)o(ecutes)h(our)g(computa-)2049 2972 y(tion,)19 b(and)g(we)g(stri)n(v)o(e)g(to)g(achie)n(v)o(e)g(a)g Fu(P)3038 2980 y Fq(A)3088 2972 y Fv(-fold)g(speedup.)2126 3055 y(As)f(with)g(much)i(pre)n(vious)f(w)o(ork,)g(we)g(model)g(a)f (multithreaded)i(compu-)2049 3138 y(tation)27 b(as)h(a)f(directed)h(ac) o(yclic)g(graph,)i(or)e Fl(dag)p Fv(.)49 b(Each)28 b(node)g(in)g(the)f (dag)2049 3221 y(represents)32 b(a)f(single)h(instruction,)i(and)e(the) g(edges)g(represent)g(ordering)2049 3304 y(constraints.)46 b(The)26 b(nodes)i(of)e(a)g(thread)h(are)f(link)o(ed)i(by)e(edges)i (that)e(form)2049 3387 y(a)g(chain)h(corresponding)h(to)e(the)g (dynamic)h(instruction)f(e)o(x)o(ecution)h(order)2049 3470 y(of)17 b(the)g(thread.)23 b(In)18 b(addition,)g(when)f(an)h (instruction)g(in)f(one)g(thread)h(spa)o(wns)2049 3553 y(a)e(ne)n(w)h(thread,)g(then)g(the)f(dag)h(has)g(an)f(edge)h(from)g (the)f(\223spa)o(wning\224)i(node)f(in)2049 3636 y(the)j(\002rst)f (thread)h(to)g(the)g(\002rst)f(node)h(in)g(the)g(ne)n(w)g(thread.)26 b(Lik)o(e)n(wise,)20 b(when-)2049 3719 y(e)n(v)o(er)e(threads)h (synchronize)h(such)f(that)e(an)i(instruction)f(in)g(one)h(thread)f (can-)2049 3803 y(not)j(be)g(e)o(x)o(ecuted)g(until)g(after)f(some)h (instruction)g(in)g(another)g(thread,)g(then)2049 3886 y(the)j(dag)h(contains)g(an)f(edge)h(from)f(the)g(node)h(representing)g (the)g(latter)e(in-)2049 3969 y(struction)c(to)g(the)g(node)h (representing)g(the)g(former)f(instruction.)24 b(The)18 b Fl(w)o(ork)2049 4052 y Fu(T)2094 4060 y Ft(1)2152 4052 y Fv(of)25 b(the)f(computation)i(is)d(the)i(number)g(of)f(nodes)h(in)g (the)f(dag,)i(and)f(the)2049 4135 y Fl(critical-path)18 b(length)g Fu(T)2704 4143 y Fs(1)2787 4135 y Fv(is)g(the)h(length)g(of) f(a)h(longest)g(\(directed\))g(path)g(in)2049 4218 y(the)24 b(dag.)38 b(The)24 b(ratio)f Fu(T)2673 4226 y Ft(1)2708 4218 y Fu(=T)2791 4226 y Fs(1)2880 4218 y Fv(is)g(called)h(the)g Fl(av)o(erage)h(parallelism)p Fv(.)38 b(The)2049 4301 y(dag)18 b(is)f(generated)i(dynamically)f(during)g(e)o(x)o(ecution,)h (and)f(a)f(scheduler)h(op-)2049 4384 y(erates)k(in)g(an)g(on-line)h(f)o (ashion.)33 b(When)22 b(all)g(of)g(the)g(parents)h(of)f(a)g(node)h(are) 2049 4467 y(e)o(x)o(ecuted)f(we)g(say)f(that)h(the)f(node)h(is)f Fl(ready)p Fv(,)i(and)f(only)g(ready)g(nodes)g(may)2049 4550 y(be)d(e)o(x)o(ecuted.)2126 4633 y(W)-6 b(e)29 b(mak)o(e)h(tw)o(o) f(assumptions)i(related)e(to)g(the)g(structure)h(of)f(the)g(dag.)2049 4716 y(First,)g(we)g(assume)g(that)f(each)h(node)h(has)f(out-de)o(gree) g(at)g(most)f Fr(2)p Fv(.)52 b(This)2049 4799 y(assumption)19 b(is)e(consistent)i(with)e(our)h(con)m(v)o(ention)i(that)e(a)f(node)i (represents)2049 4882 y(a)c(single)h(instruction.)22 b(Second,)16 b(we)f(assume)h(that)f(the)g(dag)h(has)g(e)o(xactly)f(one) 2049 4965 y Fl(root)k Fv(node)h(with)f(in-de)o(gree)g Fr(0)g Fv(and)h(one)g Fl(\002nal)e Fv(node)h(with)g(out-de)o(gree)h Fr(0)p Fv(.)2126 5048 y(W)-6 b(e)20 b(present)i(a)f(non-blocking)j (implementation)e(of)f(the)g(w)o(ork-stealing)2049 5131 y(algorithm)c([8],)f(and)h(we)f(analyze)h(the)f(performance)h(of)g (this)f(non-blocking)2049 5214 y(w)o(ork)k(stealer)f(in)g (multiprogrammed)i(en)m(vironments.)26 b(In)19 b(this)g(implemen-)2049 5297 y(tation,)27 b(all)e(concurrent)h(data)g(structures)g(are)f (non-blocking)j([23)q(,)d(24])h(so)2049 5380 y(that)d(if)f(the)h(k)o (ernel)h(preempts)f(a)g(process,)i(it)d(does)i(not)f(hinder)g(other)h (pro-)p eop %%Page: 2 2 2 1 bop -150 -75 a Fv(cesses,)29 b(for)e(e)o(xample)g(by)h(holding)g (locks.)47 b(Moreo)o(v)o(er)m(,)30 b(this)c(implemen-)-150 8 y(tation)g(mak)o(es)g(use)h(of)e(\223yield\224)i(system)f(calls)f (that)h(constrain)g(the)g(k)o(ernel)-150 91 y(adv)o(ersary)g(in)g(a)f (manner)h(that)f(models)h(the)g(beha)o(vior)g(of)f Fk(yield)h Fv(system)-150 174 y(calls)c(found)h(in)f(current)g(multiprocessor)h (operating)g(systems.)33 b(W)-6 b(e)21 b(sho)n(w)-150 257 y(that)h(for)h(an)o(y)g(multithreaded)g(computation)h(with)f(w)o (ork)g Fu(T)1432 265 y Ft(1)1488 257 y Fv(and)h(critical-)-150 340 y(path)30 b(length)g Fu(T)269 348 y Fs(1)334 340 y Fv(,)i(the)e(non-blocking)i(w)o(ork)e(stealer)g(runs)g(in)g(e)o (xpected)-150 423 y(time)c Fu(O)r Fr(\()p Fu(T)144 431 y Ft(1)178 423 y Fu(=P)265 431 y Fq(A)338 423 y Fr(+)d Fu(T)466 431 y Fs(1)530 423 y Fu(P)6 b(=P)672 431 y Fq(A)724 423 y Fr(\))p Fv(.)43 b(This)26 b(bound)i(is)d(optimal)h(to)g(within)g (a)-150 506 y(constant)j(f)o(actor)g(and)h(achie)n(v)o(es)f(linear)g (speedup)h(\227)e(that)g(is,)j(e)o(x)o(ecution)-150 589 y(time)19 b Fu(O)r Fr(\()p Fu(T)137 597 y Ft(1)171 589 y Fu(=P)258 597 y Fq(A)309 589 y Fr(\))g Fv(\227)f(whene)n(v)o(er)i Fu(P)32 b Fr(=)21 b Fu(O)r Fr(\()p Fu(T)1054 597 y Ft(1)1089 589 y Fu(=T)1172 597 y Fs(1)1237 589 y Fr(\))p Fv(.)i(W)-6 b(e)18 b(also)h(sho)n(w)h(that)-150 672 y(for)f(an)o(y)h Fu(")i(>)f Fr(0)p Fv(,)f(with)e(probability)i(at)f(least)g Fr(1)f Fm(\000)f Fu(")p Fv(,)i(the)g(e)o(x)o(ecution)h(time)f(is)-150 755 y Fu(O)r Fr(\()p Fu(T)-15 763 y Ft(1)20 755 y Fu(=P)107 763 y Fq(A)175 755 y Fr(+)d(\()p Fu(T)326 763 y Fs(1)408 755 y Fr(+)h(lg)r(\(1)p Fu(=")p Fr(\)\))p Fu(P)6 b(=P)890 763 y Fq(A)941 755 y Fr(\))p Fv(.)-73 838 y(This)22 b(result)h(impro)o (v)o(es)h(on)f(pre)n(vious)i(results)d([8)q(])g(in)h(tw)o(o)g(w)o(ays.) 36 b(First,)-150 921 y(we)16 b(consider)h(arbitrary)e(multithreaded)i (computations)g(as)f(opposed)i(to)e(the)-150 1004 y(special)28 b(case)g(of)g(\223fully)g(strict\224)f(computations.)52 b(Second,)30 b(we)e(consider)-150 1087 y(multiprogrammed)f(en)m (vironments)g(as)e(opposed)j(to)d(dedicated)i(en)m(viron-)-150 1170 y(ments.)47 b(A)27 b(multiprogrammed)h(en)m(vironment)h(is)d(a)h (generalization)h(of)f(a)-150 1253 y(dedicated)d(en)m(vironment,)h (because)f(we)e(can)h(vie)n(w)g(a)g(dedicated)h(en)m(viron-)-150 1336 y(ment)e(as)h(a)f(multiprogrammed)h(en)m(vironment)h(in)e(which)g (the)h(k)o(ernel)g(e)o(x)o(e-)-150 1419 y(cutes)g(the)f(computation)i (on)f Fu(P)33 b Fv(dedicated)24 b(processors.)35 b(Moreo)o(v)o(er)m(,) 24 b(note)-150 1502 y(that)h(in)h(this)f(case,)i(we)f(ha)o(v)o(e)f Fu(P)703 1510 y Fq(A)787 1502 y Fr(=)34 b Fu(P)11 b Fv(,)26 b(and)g(our)g(bound)h(for)f(multipro-)-150 1585 y(grammed)g(en)m (vironments)h(specializes)e(to)g(match)g(the)g Fu(O)r Fr(\()p Fu(T)1475 1593 y Ft(1)1510 1585 y Fu(=P)33 b Fr(+)21 b Fu(T)1756 1593 y Fs(1)1821 1585 y Fr(\))-150 1668 y Fv(bound)h(established)g(earlier)e(for)h(fully)g(strict)f (computations)i(e)o(x)o(ecuting)g(in)-150 1751 y(dedicated)e(en)m (vironments.)-73 1834 y(Our)28 b(non-blocking)i(w)o(ork)f(stealer)f (has)g(been)h(implemented)h(and)e(nu-)-150 1917 y(merous)22 b(performance)g(studies)g(ha)o(v)o(e)f(been)h(conducted)h([9].)29 b(These)22 b(stud-)-150 2000 y(ies)17 b(sho)n(w)g(that)g(application)g (performance)h(conforms)g(to)f(the)g Fu(O)r Fr(\()p Fu(T)1610 2008 y Ft(1)1645 2000 y Fu(=P)1732 2008 y Fq(A)1791 2000 y Fr(+)-150 2083 y Fu(T)-105 2091 y Fs(1)-40 2083 y Fu(P)6 b(=P)102 2091 y Fq(A)153 2083 y Fr(\))25 b Fv(bound)j(and)f(that)e(the) h(constant)h(hidden)g(in)f(the)g(big-Oh)g(no-)-150 2166 y(tation)d(is)f(small,)h(roughly)h(1.)34 b(Moreo)o(v)o(er)m(,)24 b(these)f(studies)g(sho)n(w)h(that)e(non-)-150 2249 y(blocking)g(data)f (structures)g(and)g(the)g(use)g(of)g(yields)g(are)f(essential)h(in)g (prac-)-150 2332 y(tice.)29 b(If)21 b(an)o(y)g(of)g(these)h (implementation)g(mechanisms)g(are)f(omitted,)g(then)-150 2415 y(performance)f(de)o(grades)g(dramatically)g(for)e Fu(P)1076 2423 y Fq(A)1148 2415 y Fu(<)j(P)11 b Fv(.)-73 2498 y(The)16 b(remainder)h(of)f(this)f(paper)i(is)f(or)o(ganized)h(as) f(follo)n(ws.)22 b(In)16 b(Section)g(2,)-150 2581 y(we)28 b(formalize)g(our)h(model)g(of)f(multiprogrammed)i(en)m(vironments.)52 b(W)-6 b(e)-150 2664 y(also)17 b(pro)o(v)o(e)h(a)e(lo)n(wer)h(bound)i (implying)e(that)g(the)g(performance)h(of)f(the)g(non-)-150 2747 y(blocking)29 b(w)o(ork)f(stealer)g(is)f(optimal)h(to)f(within)h (a)f(constant)i(f)o(actor)l(.)49 b(W)-6 b(e)-150 2830 y(present)25 b(the)g(non-blocking)i(w)o(ork)e(stealer)g(in)f(Section)h (3,)h(and)f(we)g(pro)o(v)o(e)-150 2914 y(an)i(important)f(structural)h (lemma)f(that)g(is)g(needed)i(for)e(the)h(analysis.)46 b(In)-150 2997 y(Section)26 b(4)g(we)g(establish)h(optimal)f(upper)h (bounds)h(on)e(the)g(performance)-150 3080 y(of)f(the)g(w)o(ork)h (stealer)f(under)h(v)n(arious)f(assumptions)i(with)d(respect)i(to)f (the)-150 3163 y(k)o(ernel.)46 b(In)27 b(Section)f(5,)i(we)e(consider)h (related)g(w)o(ork.)46 b(In)26 b(Section)g(6)h(we)-150 3246 y(of)n(fer)19 b(some)g(concluding)i(remarks.)-150 3413 y Fw(2)74 b(Multipr)o(ogramming)-150 3539 y Fv(W)-6 b(e)23 b(model)h(a)g(multiprogrammed)g(en)m(vironment)h(with)f(a)f(k)o (ernel)h(that)g(be-)-150 3622 y(ha)o(v)o(es)17 b(as)f(an)h(adv)o (ersary)-5 b(.)24 b(Whereas)17 b(a)f(user)o(-le)n(v)o(el)g(scheduler)i (maps)f(threads)-150 3705 y(onto)33 b(a)f(\002x)o(ed)h(collection)f(of) h Fu(P)43 b Fv(processes,)36 b(a)c(k)o(ernel-le)n(v)o(el)i(scheduler) -150 3788 y(maps)c(processes)h(onto)f(processors.)57 b(In)29 b(this)h(section,)i(we)e(de\002ne)g(e)o(x)o(e-)-150 3872 y(cution)i(schedules,)j(and)d(we)f(pro)o(v)o(e)h(upper)h(and)f(lo) n(wer)f(bounds)i(on)f(the)-150 3955 y(length)c(of)f(e)o(x)o(ecution)h (schedules.)49 b(These)27 b(bounds)i(are)e(straightforw)o(ard)-150 4038 y(and)19 b(are)f(included)h(primarily)f(to)g(gi)n(v)o(e)g(the)g (reader)h(a)f(better)g(understanding)-150 4121 y(of)24 b(the)f(model)i(of)e(computation)i(and)g(the)e(central)h(issues)g(that) g(we)f(intend)-150 4204 y(to)29 b(address.)54 b(The)29 b(lo)n(wer)f(bound)j(demonstrates)f(the)f(optimality)g(of)g(the)-150 4287 y Fu(O)r Fr(\()p Fu(T)-15 4295 y Ft(1)20 4287 y Fu(=P)107 4295 y Fq(A)174 4287 y Fr(+)16 b Fu(T)295 4295 y Fs(1)360 4287 y Fu(P)6 b(=P)502 4295 y Fq(A)553 4287 y Fr(\))18 b Fv(upper)i(bound)g(that)e(we)h(will)f(establish)h(for)f (our)-150 4370 y(non-blocking)j(w)o(ork)f(stealer)l(.)-73 4453 y(The)k(k)o(ernel)h(operates)g(in)g(discrete)f Fl(steps)p Fv(,)i(numbered)g(from)e(1,)i(as)e(fol-)-150 4536 y(lo)n(ws.)38 b(At)23 b(each)h(step)g Fu(i)p Fv(,)h(the)f(k)o(ernel)g(chooses)h(an)o (y)f(subset)h(of)e(the)h Fu(P)35 b Fv(pro-)-150 4619 y(cesses,)29 b(and)f(then)f(these)g(chosen)h(processes)g(are)f(allo)n (wed)g(to)g(e)o(x)o(ecute)h(a)-150 4702 y(single)15 b(instruction.)22 b(W)-6 b(e)15 b(let)f Fu(p)644 4710 y Fq(i)684 4702 y Fv(denote)i(the)f(number)h(of)f(chosen)h(processes,)-150 4785 y(and)j(we)f(say)g(that)h(these)f Fu(p)539 4793 y Fq(i)583 4785 y Fv(processes)h(are)f Fl(sc)o(heduled)h Fv(at)f(step)g Fu(i)p Fv(.)23 b(The)18 b(k)o(er)o(-)-150 4868 y(nel)29 b(may)g(choose)g(to)g(schedule)h(an)o(y)f(number)g(of)g (processes)g(between)h Fr(0)-150 4951 y Fv(and)c Fu(P)11 b Fv(,)26 b(so)f Fr(0)34 b Fm(\024)f Fu(p)383 4959 y Fq(i)442 4951 y Fm(\024)g Fu(P)11 b Fv(.)42 b(W)-6 b(e)24 b(can)i(vie)n(w)f(the)h(k)o(ernel)g(as)f(producing)i(a)-150 5034 y Fl(k)n(ernel)d(sc)o(hedule)f Fv(that)h(maps)h(each)f(positi)n(v) o(e)g(inte)o(ger)h(to)e(a)h(subset)h(of)f(the)-150 5117 y(processes.)29 b(That)21 b(is,)f(a)h(k)o(ernel)g(schedule)h(maps)f (each)h(step)e Fu(i)h Fv(to)g(the)f(set)h(of)-150 5200 y(processes)h(that)e(are)h(scheduled)h(at)f(step)g Fu(i)p Fv(,)g(and)g Fu(p)1169 5208 y Fq(i)1215 5200 y Fv(is)g(the)f(size)h(of) g(that)f(set.)2049 -75 y(The)f Fl(processor)h(av)o(erage)g Fu(P)2804 -67 y Fq(A)2873 -75 y Fv(o)o(v)o(er)g Fu(T)29 b Fv(steps)19 b(is)f(de\002ned)i(as)2786 134 y Fu(P)2835 142 y Fq(A)2906 134 y Fr(=)3006 86 y(1)p 2997 117 56 4 v 2997 185 a Fu(T)3113 32 y Fq(T)3076 57 y Fj(X)3086 231 y Fq(i)p Ft(=1)3208 134 y Fu(p)3247 142 y Fq(i)3292 134 y Fu(:)650 b Fv(\(1\))2049 340 y(Though)20 b(our)g(analysis)f(is)g (based)h(on)g(this)e(step-by-step,)i(synchronous)i(e)o(x-)2049 423 y(ecution)i(model,)h(our)e(w)o(ork)h(stealer)f(is)g(asynchronous)j (and)e(does)g(not)g(de-)2049 506 y(pend)19 b(on)g(synchron)o(y)h(for)e (correctness.)24 b(The)18 b(synchronous)j(model)e(admits)2049 589 y(the)j(possibility)h(that)f(at)g(a)g(step)h Fu(i)p Fv(,)g(tw)o(o)f(or)g(more)h(processes)g(may)g(e)o(x)o(ecute)2049 672 y(instructions)18 b(that)f(reference)h(a)f(common)h(memory)g (location.)23 b(W)-6 b(e)17 b(assume)2049 755 y(that)i(the)g(ef)n(fect) g(of)g(step)g Fu(i)g Fv(is)f(equi)n(v)n(alent)j(to)e(some)g(serial)g(e) o(x)o(ecution)h(of)f(the)2049 838 y Fu(p)2088 846 y Fq(i)2138 838 y Fv(instructions)24 b(e)o(x)o(ecuted)h(by)g(the)f Fu(p)3050 846 y Fq(i)3100 838 y Fv(scheduled)h(processes,)h(where)f (the)2049 921 y(order)g(of)g(e)o(x)o(ecution)g(is)f(determined)i(in)e (some)i(arbitrary)e(manner)i(by)f(the)2049 1004 y(k)o(ernel.)2126 1087 y(Gi)n(v)o(en)30 b(a)g(k)o(ernel)h(schedule,)j(an)c Fl(ex)o(ecution)g(sc)o(hedule)g Fv(speci\002es,)j(for)2049 1170 y(each)27 b(step)f Fu(i)p Fv(,)i(the)e(particular)g(subset)h(of)f (at)g(most)g Fu(p)3451 1178 y Fq(i)3503 1170 y Fv(ready)h(nodes)g(to)f (be)2049 1253 y(e)o(x)o(ecuted)j(by)g(the)f Fu(p)2601 1261 y Fq(i)2655 1253 y Fv(scheduled)i(processes)f(at)f(step)g Fu(i)p Fv(.)51 b(W)-6 b(e)28 b(de\002ne)h(the)2049 1336 y Fl(length)c Fv(of)i(an)f(e)o(x)o(ecution)i(schedule)f(to)g(be)f(the)h (number)g(of)g(steps)f(in)h(the)2049 1419 y(schedule.)45 b(An)25 b(e)o(x)o(ecution)i(schedule)g(is)e(determined)i(both)f(by)g (the)g(user)o(-)2049 1502 y(le)n(v)o(el)17 b(scheduler)h(and)f(by)g (the)g(k)o(ernel.)23 b(Speci\002cally)-5 b(,)17 b(an)g(on-line)g(user)o (-le)n(v)o(el)2049 1585 y(scheduler)27 b(does)f(not)g(kno)n(w)g(the)g (k)o(ernel)g(schedule)h(for)e(future)h(steps.)43 b(At)2049 1668 y(each)25 b(step,)g(a)f(user)o(-le)n(v)o(el)f(scheduler)i(can)g (determine)f(what)g(instruction)h(a)2049 1751 y(process)f(should)g(e)o (x)o(ecute)g(ne)o(xt,)g(b)o(ut)f(it)g(has)g(no)h(w)o(ay)f(to)g (determine)h(when)2049 1834 y(the)18 b(k)o(ernel)h(will)e(actually)h (let)f(the)h(process)h(e)o(x)o(ecute)g(that)e(ne)o(xt)i(instruction.) 2126 1917 y(The)32 b(follo)n(wing)h(theorem)g(sho)n(ws)h(that)e Fu(T)3279 1925 y Ft(1)3313 1917 y Fu(=P)3400 1925 y Fq(A)3483 1917 y Fv(and)i Fu(T)3669 1925 y Fs(1)3733 1917 y Fu(P)6 b(=P)3875 1925 y Fq(A)3959 1917 y Fv(are)2049 2000 y(both)27 b(lo)n(wer)f(bounds)i(on)e(the)g(length)h(of)f(an)o(y)h(e)o(x)o (ecution)g(schedule.)46 b(The)2049 2083 y(lo)n(wer)32 b(bound)h(of)f Fu(T)2606 2091 y Ft(1)2640 2083 y Fu(=P)2727 2091 y Fq(A)2809 2083 y Fv(holds)h(re)o(gardless)f(of)g(the)f(k)o (ernel)i(schedule,)2049 2166 y(while)d(the)g(lo)n(wer)g(bound)i(of)e Fu(T)2918 2174 y Fs(1)2982 2166 y Fu(P)6 b(=P)3124 2174 y Fq(A)3205 2166 y Fv(holds)31 b(only)g(for)f(some)g(k)o(ernel)2049 2249 y(schedules.)f(That)20 b(is,)g(there)g(e)o(xists)h(k)o(ernel)g (schedules)g(such)h(that)e(an)o(y)h(e)o(x)o(e-)2049 2332 y(cution)c(schedule)i(has)e(length)g(at)g(least)g Fu(T)3120 2340 y Fs(1)3185 2332 y Fu(P)6 b(=P)3327 2340 y Fq(A)3378 2332 y Fv(.)22 b(Moreo)o(v)o(er)m(,)c(there)f(e)o(xist)2049 2415 y(such)22 b(k)o(ernel)g(schedules)g(with)f Fu(P)2928 2423 y Fq(A)2999 2415 y Fv(ranging)h(from)f Fu(P)32 b Fv(do)n(wn)22 b(to)f(v)n(alues)h(ar)o(-)2049 2498 y(bitrarily)17 b(close)h(to)f(0.)23 b(These)17 b(lo)n(wer)h(bounds)h(imply)e (corresponding)j(lo)n(wer)2049 2581 y(bounds)h(on)e(the)g(performance)h (of)f(an)o(y)h(user)o(-le)n(v)o(el)e(scheduler)l(.)2049 2703 y Fw(Theorem)h(1)41 b Fi(Consider)28 b(any)f(multithr)m(eaded)h (computation)g(with)e(work)2049 2786 y Fu(T)2094 2794 y Ft(1)2153 2786 y Fi(and)g(critical-path)f(length)h Fu(T)2945 2794 y Fs(1)3010 2786 y Fi(,)f(and)h(any)g(number)g Fu(P)35 b Fi(of)25 b(pr)m(ocesses.)2049 2869 y(Then)d(for)g(any)h(k)o (ernel)f(sc)o(hedule)o(,)i(e)o(very)e(e)o(xecution)h(sc)o(hedule)g(has) f(length)2049 2952 y(at)d(least)g Fu(T)2331 2960 y Ft(1)2365 2952 y Fu(=P)2452 2960 y Fq(A)2503 2952 y Fi(,)f(wher)m(e)i Fu(P)2788 2960 y Fq(A)2857 2952 y Fi(is)e(the)h(pr)m(ocessor)i(aver)o (a)o(g)o(e)f(o)o(ver)g(the)f(length)2049 3035 y(of)35 b(the)h(sc)o(hedule)o(.)74 b(In)36 b(addition,)k(for)35 b(any)i(number)f Fu(P)3614 3003 y Fs(0)3603 3050 y Fq(A)3689 3035 y Fi(of)f(the)h(form)2049 3118 y Fu(T)2094 3126 y Fs(1)2159 3118 y Fu(P)6 b(=)p Fr(\()p Fu(k)26 b Fr(+)c Fu(T)2475 3126 y Fs(1)2540 3118 y Fr(\))k Fi(wher)m(e)h Fu(k)h Fi(is)e(a)h(nonne)m(gative)h(inte)m(g)o(er)-8 b(,)29 b(ther)m(e)e(e)o(xists)f(a)2049 3201 y(k)o(ernel)j(sc)o(hedule)f (suc)o(h)h(that)f(e)o(very)g(e)o(xecution)g(sc)o(hedule)h(has)g(length) f(at)2049 3284 y(least)19 b Fu(T)2254 3292 y Fs(1)2319 3284 y Fu(P)6 b(=P)2461 3292 y Fq(A)2512 3284 y Fi(,)18 b(and)i Fu(P)2729 3292 y Fq(A)2798 3284 y Fi(is)e(in)h(the)g(r)o(ang)o (e)h Fm(b)p Fu(P)3338 3252 y Fs(0)3327 3300 y Fq(A)3378 3284 y Fm(c)h(\024)g Fu(P)3563 3292 y Fq(A)3635 3284 y Fm(\024)g Fu(P)3776 3252 y Fs(0)3765 3300 y Fq(A)3815 3284 y Fi(.)2049 3406 y(Pr)m(oof:)74 b Fv(The)18 b(processor)h(a)o(v)o (erage)f(o)o(v)o(er)g(the)f(length)h Fu(T)28 b Fv(of)18 b(the)f(schedule)i(is)2049 3489 y(de\002ned)h(by)f(Equation)h(\(1\),)e (so)h(we)g(ha)o(v)o(e)2786 3698 y Fu(T)32 b Fr(=)2984 3649 y(1)p 2954 3681 100 4 v 2954 3748 a Fu(P)3003 3756 y Fq(A)3113 3596 y(T)3076 3621 y Fj(X)3086 3795 y Fq(i)p Ft(=1)3208 3698 y Fu(p)3247 3706 y Fq(i)3292 3698 y Fu(:)650 b Fv(\(2\))2049 3926 y(F)o(or)42 b(both)i(lo)n(wer)e(bounds,)50 b(we)43 b(bound)h Fu(T)54 b Fv(by)43 b(bounding)3763 3866 y Fj(P)3850 3887 y Fq(T)3850 3953 y(i)p Ft(=1)3966 3926 y Fu(p)4005 3934 y Fq(i)4031 3926 y Fv(.)2049 4018 y(The)30 b(lo)n(wer)f(bound)i(of)f Fu(T)2745 4026 y Ft(1)2779 4018 y Fu(=P)2866 4026 y Fq(A)2946 4018 y Fv(is)f(immediate)h(from)g (the)g(lo)n(wer)f(bound)2049 4058 y Fj(P)2137 4079 y Fq(T)2137 4145 y(i)p Ft(=1)2253 4118 y Fu(p)2292 4126 y Fq(i)2358 4118 y Fm(\025)41 b Fu(T)2504 4126 y Ft(1)2538 4118 y Fv(,)31 b(which)f(follo)n(ws)f(from)g(the)g(f)o(act)g(that)g(an) o(y)h(e)o(x)o(ecution)2049 4201 y(schedule)19 b(is)e(required)h(to)f(e) o(x)o(ecute)i(all)d(of)i(the)f(nodes)i(in)e(the)h(multithreaded)2049 4284 y(computation.)23 b(F)o(or)15 b(the)h(lo)n(wer)g(bound)h(of)f Fu(T)3197 4292 y Fs(1)3261 4284 y Fu(P)6 b(=P)3403 4292 y Fq(A)3454 4284 y Fv(,)16 b(we)g(pro)o(v)o(e)g(the)g(lo)n(wer)2049 4385 y(bound)2254 4325 y Fj(P)2342 4345 y Fq(T)2342 4412 y(i)p Ft(=1)2458 4385 y Fu(p)2497 4393 y Fq(i)2545 4385 y Fm(\025)21 b Fu(T)2671 4393 y Fs(1)2735 4385 y Fu(P)11 b Fv(.)2126 4468 y(W)-6 b(e)14 b(construct)i(a)e(k)o(ernel)i(schedule)g (that)f(forces)g(e)n(v)o(ery)g(e)o(x)o(ecution)h(sched-)2049 4551 y(ule)i(to)g(satisfy)g(this)f(bound)j(as)e(follo)n(ws.)k(Let)c Fu(k)i Fv(be)e(as)g(de\002ned)g(in)g(the)g(state-)2049 4634 y(ment)g(of)f(the)g(lemma.)23 b(The)18 b(k)o(ernel)g(schedule)g (sets)g Fu(p)3432 4642 y Fq(i)3479 4634 y Fr(=)j(0)c Fv(for)h Fr(1)j Fm(\024)g Fu(i)h Fm(\024)f Fu(k)r Fv(,)2049 4717 y(sets)j Fu(p)2224 4725 y Fq(i)2281 4717 y Fr(=)31 b Fu(P)j Fv(for)24 b Fu(k)g Fr(+)c(1)32 b Fm(\024)f Fu(i)g Fm(\024)g Fu(k)23 b Fr(+)e Fu(T)3208 4725 y Fs(1)3273 4717 y Fv(,)k(and)g(sets)f Fu(p)3624 4725 y Fq(i)3681 4717 y Fr(=)31 b Fm(b)p Fu(P)3866 4685 y Fs(0)3855 4733 y Fq(A)3905 4717 y Fm(c)24 b Fv(for)2049 4800 y Fu(k)g Fr(+)d Fu(T)2239 4808 y Fs(1)2336 4800 y Fu(<)31 b(i)p Fv(.)40 b(An)o(y)25 b(e)o(x)o(ecution)h(schedule)g(has)e(length)i Fu(T)42 b Fm(\025)32 b Fu(k)23 b Fr(+)e Fu(T)3966 4808 y Fs(1)4031 4800 y Fv(,)2049 4898 y(so)h(we)f(ha)o(v)o(e)g(the)h(lo)n (wer)f(bound)2914 4838 y Fj(P)3002 4859 y Fq(T)3002 4925 y(i)p Ft(=1)3118 4898 y Fu(p)3157 4906 y Fq(i)3209 4898 y Fm(\025)26 b Fu(T)3340 4906 y Fs(1)3404 4898 y Fu(P)11 b Fv(.)30 b(It)21 b(remains)h(only)g(to)2049 4981 y(sho)n(w)d(that)f Fu(P)2402 4989 y Fq(A)2471 4981 y Fv(is)g(in)g(the)h(desired)g(range.)k (The)c(processor)g(a)o(v)o(erage)g(for)g(the)2049 5064 y(\002rst)j Fu(k)g Fr(+)e Fu(T)2375 5072 y Fs(1)2463 5064 y Fv(steps)j(is)g Fu(T)2753 5072 y Fs(1)2818 5064 y Fu(P)6 b(=)p Fr(\()p Fu(k)23 b Fr(+)d Fu(T)3129 5072 y Fs(1)3194 5064 y Fr(\))29 b(=)g Fu(P)3402 5033 y Fs(0)3391 5080 y Fq(A)3441 5064 y Fv(.)35 b(F)o(or)22 b(all)h(subsequent)2049 5147 y(steps)e Fu(i)j(>)g(k)c Fr(+)e Fu(T)2536 5155 y Fs(1)2601 5147 y Fv(,)i(we)g(ha)o(v)o(e)g Fu(p)2944 5155 y Fq(i)2994 5147 y Fr(=)k Fm(b)p Fu(P)3172 5116 y Fs(0)3161 5163 y Fq(A)3212 5147 y Fm(c)p Fv(.)j(Thus,)20 b Fu(P)3529 5155 y Fq(A)3600 5147 y Fv(f)o(alls)g(within)g(the)2049 5230 y(desired)f(range.)p 4008 5230 42 42 v 2126 5347 a(W)-6 b(e)20 b(say)h(that)g(an)g(e)o(x)o(ecution)h(schedule)g(is)e Fl(greedy)i Fv(if)e(at)h(each)g(step)g Fu(i)g Fv(the)2049 5430 y(number)f(of)e(ready)h(nodes)h(e)o(x)o(ecuted)g(is)e(equal)h(to)g (the)f(minimum)h(of)g Fu(p)3898 5438 y Fq(i)3942 5430 y Fv(and)1929 5679 y Fw(2)p eop %%Page: 3 3 3 2 bop -150 -75 a Fv(the)23 b(number)g(of)g(ready)g(nodes.)35 b(Note)23 b(that)g(an)f(on-line)h(user)o(-le)n(v)o(el)g(sched-)-150 8 y(uler)29 b(cannot)g(al)o(w)o(ays)h(produce)g(greedy)g(e)o(x)o (ecution)f(schedules,)k(because)-150 91 y(some)d(amount)h(of)e (scheduling)i(o)o(v)o(erhead)g(is)f(often)g(una)o(v)o(oidable.)56 b(The)-150 174 y(follo)n(wing)19 b(theorem)h(about)g(greedy)g(e)o(x)o (ecution)g(schedules)g(also)f(holds)h(for)-150 257 y(le)n(v)o(el-by-le) n(v)o(el)31 b(\(Brent)f([10]\))g(e)o(x)o(ecution)h(schedules,)j(with)c (only)g(tri)n(vial)-150 340 y(changes)20 b(to)f(the)g(proof.)-150 499 y Fw(Theorem)g(2)i(\(Greed)o(y)e(Sc)o(hedules\))38 b Fi(Consider)32 b(any)h(multithr)m(eaded)-150 582 y(computation)25 b(with)d(work)i Fu(T)616 590 y Ft(1)673 582 y Fi(and)g(critical-path)f (length)h Fu(T)1459 590 y Fs(1)1524 582 y Fi(,)g(any)f(num-)-150 665 y(ber)c Fu(P)30 b Fi(of)19 b(pr)m(ocesses,)g(and)h(any)g(k)o(ernel) g(sc)o(hedule)o(.)k(Any)19 b(gr)m(eedy)h(e)o(xecution)-150 748 y(sc)o(hedule)h(has)g(length)g(at)f(most)g Fu(T)745 756 y Ft(1)779 748 y Fu(=P)866 756 y Fq(A)935 748 y Fr(+)d Fu(T)1057 756 y Fs(1)1122 748 y Fr(\()p Fu(P)29 b Fm(\000)17 b Fr(1\))p Fu(=P)1462 756 y Fq(A)1513 748 y Fi(,)j(wher)m(e)h Fu(P)1801 756 y Fq(A)-150 831 y Fi(is)e(the)g(pr)m(ocessor)h(aver)o(a)o (g)o(e)g(o)o(ver)g(the)f(length)g(of)g(the)g(sc)o(hedule)o(.)-150 991 y(Pr)m(oof:)74 b Fv(Consider)20 b(an)o(y)f(greedy)h(e)o(x)o (ecution)g(schedule,)g(and)f(let)g Fu(T)29 b Fv(denote)-150 1074 y(its)19 b(length.)25 b(As)20 b(in)f(the)g(proof)i(of)e(Theorem)h (1,)g(we)f(bound)i Fu(T)30 b Fv(by)20 b(bounding)-150 1112 y Fj(P)-62 1132 y Fq(T)-62 1199 y(i)p Ft(=1)54 1172 y Fu(p)93 1180 y Fq(i)119 1172 y Fv(.)42 b(F)o(or)24 b(each)i(step)g Fu(i)33 b Fr(=)g(1)p Fu(;)14 b(:)f(:)g(:)g(;)g(T)e Fv(,)26 b(we)f(collect)h Fu(p)1453 1180 y Fq(i)1503 1172 y Fv(tok)o(ens,)i(one)-150 1255 y(from)17 b(each)g(process)g(that)g(is) f(scheduled)i(at)e(step)h Fu(i)p Fv(,)g(and)g(then)g(we)g(bound)h(the) -150 1338 y(total)k(number)i(of)f(tok)o(ens)g(collected.)35 b(Moreo)o(v)o(er)m(,)25 b(we)d(collect)h(the)g(tok)o(ens)-150 1421 y(in)18 b(tw)o(o)g(b)o(uck)o(ets:)24 b(a)18 b Fl(w)o(ork)g(b)o(uc) o(k)n(et)g Fv(and)h(an)f Fl(idle)g(b)o(uc)o(k)n(et)p Fv(.)23 b(Consider)18 b(a)g(step)h Fu(i)-150 1504 y Fv(and)k(a)g (process)g(that)g(is)f(scheduled)i(at)e(step)h Fu(i)p Fv(.)34 b(If)22 b(the)h(process)g(e)o(x)o(ecutes)h(a)-150 1587 y(node)18 b(of)f(the)h(computation,)g(then)g(it)e(puts)i(its)e (tok)o(en)i(into)f(the)h(w)o(ork)f(b)o(uck)o(et,)-150 1670 y(and)25 b(otherwise)g(we)g(say)g(that)f(the)h(process)g(is)f (idle)h(and)g(it)f(puts)h(its)f(tok)o(en)-150 1753 y(into)h(the)f(idle) g(b)o(uck)o(et.)41 b(After)24 b(the)g(last)g(step,)i(the)f(w)o(ork)g(b) o(uck)o(et)g(contains)-150 1836 y(e)o(xactly)17 b Fu(T)126 1844 y Ft(1)177 1836 y Fv(tok)o(ens)h(\227)e(one)i(tok)o(en)f(for)g (each)g(node)h(of)f(the)g(computation.)23 b(It)-150 1919 y(remains)17 b(only)g(to)f(pro)o(v)o(e)h(that)f(the)h(idle)f(b)o(uck)o (et)h(contains)h(at)e(most)g Fu(T)1629 1927 y Fs(1)1694 1919 y Fr(\()p Fu(P)i Fm(\000)-150 2002 y Fr(1\))h Fv(tok)o(ens.)-73 2085 y(Consider)g(a)g(step)h(during)f(which)h(some)f(process)h(places)g (a)f(tok)o(en)h(in)f(the)-150 2168 y(idle)i(b)o(uck)o(et.)29 b(W)-6 b(e)20 b(refer)h(to)f(such)i(a)f(step)g(as)f(an)h Fl(idle)g(step)p Fv(.)29 b(At)20 b(an)h(idle)g(step)-150 2251 y(we)e(ha)o(v)o(e)g(an)g(idle)g(process)g(and)h(since)f(the)g (schedule)h(is)f(greedy)-5 b(,)20 b(it)e(follo)n(ws)-150 2334 y(that)k(e)n(v)o(ery)g(ready)g(node)h(is)e(e)o(x)o(ecuted)i(at)f (an)g(idle)f(step.)32 b(This)21 b(observ)n(ation)-150 2417 y(leads)16 b(to)g(tw)o(o)h(further)f(observ)n(ations.)23 b(First,)16 b(at)f(e)n(v)o(ery)i(step)f(there)h(is)e(at)h(least)-150 2500 y(one)23 b(ready)h(node,)g(so)e(of)h(the)g Fu(p)682 2508 y Fq(i)730 2500 y Fv(processes)h(scheduled)g(at)e(an)h(idle)f (step)h Fu(i)p Fv(,)-150 2583 y(at)d(most)h Fu(p)129 2591 y Fq(i)173 2583 y Fm(\000)d Fr(1)24 b Fm(\024)g Fu(P)29 b Fm(\000)18 b Fr(1)i Fv(could)i(be)e(idle.)28 b(Second,)21 b(for)f(each)h(step)g Fu(i)p Fv(,)f(let)-150 2666 y Fu(G)-90 2674 y Fq(i)-41 2666 y Fv(denote)25 b(the)e(sub-dag)h (of)f(the)h(computation)g(consisting)g(of)f(just)g(those)-150 2749 y(nodes)j(that)f(ha)o(v)o(e)h(not)f(yet)g(been)h(e)o(x)o(ecuted)h (after)d(step)i Fu(i)p Fv(.)42 b(If)24 b(step)h Fu(i)h Fv(is)e(an)-150 2832 y(idle)f(step,)h(then)g(e)n(v)o(ery)g(node)g(with) f(in-de)o(gree)h Fr(0)f Fv(in)g Fu(G)1316 2840 y Fq(i)p Fs(\000)p Ft(1)1444 2832 y Fv(gets)h(e)o(x)o(ecuted)-150 2915 y(at)c(step)h Fu(i)p Fv(,)g(so)f(a)h(longest)g(path)g(in)f Fu(G)794 2923 y Fq(i)841 2915 y Fv(is)g(one)h(node)h(shorter)f(than)g (a)f(longest)-150 2998 y(path)c(in)g Fu(G)128 3006 y Fq(i)p Fs(\000)p Ft(1)233 2998 y Fv(.)21 b(Since)16 b(the)g(longest)g (path)g(in)f Fu(G)1070 3006 y Ft(0)1121 2998 y Fv(has)h(length)g Fu(T)1483 3006 y Fs(1)1548 2998 y Fv(,)f(there)h(can)-150 3081 y(be)22 b(at)f(most)h Fu(T)229 3089 y Fs(1)315 3081 y Fv(idle)g(steps.)31 b(Putting)22 b(these)f(tw)o(o)h(observ)n(ations)h (together)m(,)-150 3164 y(we)18 b(conclude)h(that)f(after)g(the)g(last) f(step,)h(the)g(idle)g(b)o(uck)o(et)g(contains)h(at)f(most)-150 3247 y Fu(T)-105 3255 y Fs(1)-40 3247 y Fr(\()p Fu(P)27 b Fm(\000)17 b Fr(1\))i Fv(tok)o(ens.)p 1809 3247 42 42 v -73 3364 a(Theorems)33 b(1)g(and)g(2)g(sho)n(w)g(that)g(for)g (some)g(k)o(ernel)g(schedules,)k(an)o(y)-150 3447 y(greedy)23 b(e)o(x)o(ecution)h(schedule)g(is)e(within)g(a)g(f)o(actor)h(of)f(tw)o (o)h(of)f(optimal.)34 b(In)-150 3530 y(addition,)16 b(though)g(we)e (shall)h(not)f(pro)o(v)o(e)i(it,)e(for)h(an)o(y)g(k)o(ernel)g (schedule,)h(some)-150 3613 y(greedy)i(e)o(x)o(ecution)g(schedule)g(is) f(optimal.)23 b(W)-6 b(e)16 b(remark)h(that)g(the)g(latter)g(f)o(act) -150 3696 y(does)29 b(not)g(imply)g(the)f(e)o(xistence)i(of)e(a)h (polynomial-time)g(algorithm)g(for)-150 3779 y(computing)21 b(an)e(optimal)h(e)o(x)o(ecution)g(schedule.)26 b(In)20 b(f)o(act,)f(the)g(related)h(deci-)-150 3862 y(sion)f(problem)h(is)e (NP-complete)h([33)q(].)-150 4029 y Fw(3)74 b(Non-b)o(loc)o(king)17 b(w)o(ork)j(stealing)-150 4156 y Fv(In)g(this)g(section)g(we)g(re)n (vie)n(w)g(the)h(w)o(ork-stealing)f(algorithm)h([8],)f(and)g(then)-150 4239 y(describe)i(our)f(non-blocking)i(implementation,)f(which)f(in)m (v)o(olv)o(es)g(the)g(use)-150 4322 y(of)28 b(a)g(yield)g(system)h (call)f(and)g(a)g(non-blocking)j(implementation)e(of)f(the)-150 4405 y(concurrent)18 b(data)f(structures.)23 b(W)-6 b(e)16 b(conclude)j(this)d(section)h(with)g(an)g(impor)o(-)-150 4488 y(tant)i(\223structural)g(lemma\224)g(that)g(is)f(used)i(in)f(our) g(analysis.)-150 4632 y Fw(3.1)74 b(The)19 b(w)o(ork-stealing)e (algorithm)-150 4742 y Fv(In)f(the)h(w)o(ork-stealing)g(algorithm,)g (each)g(process)h(maintains)e(its)g(o)n(wn)h(pool)-150 4825 y(of)f(ready)g(threads)g(from)g(which)g(it)f(obtains)h(w)o(ork.)23 b(If)15 b(the)g(pool)i(of)e(a)h(process)-150 4908 y(becomes)29 b(empty)-5 b(,)30 b(that)e(process)h(becomes)f(a)g(thief)g(and)g (steals)g(a)f(thread)-150 4991 y(from)22 b(the)g(pool)g(of)g(a)f (victim)h(process)g(chosen)h(at)f(random.)33 b(Each)21 b(pool)i(of)-150 5074 y(threads)17 b(is)e(maintained)i(as)f(a)g (double-ended)i(queue,)g(or)d Fl(deque)p Fv(,)i(which)f(has)-150 5157 y(a)j(bottom)g(and)h(a)f(top.)-73 5240 y(T)-6 b(o)18 b(obtain)h(w)o(ork,)f(a)g(process)i(pops)f(the)f(ready)h(thread)g(from) f(the)g(bottom)-150 5323 y(of)29 b(its)f(deque)i(and)g(commences)h(e)o (x)o(ecuting)f(that)e(thread.)54 b(The)29 b(process)2049 -75 y(continues)18 b(to)g(e)o(x)o(ecute)f(that)h(thread)f(until)g(the)h (thread)f(either)g(blocks)i(or)e(ter)o(-)2049 8 y(minates,)25 b(at)f(which)h(point)f(the)g(process)h(returns)g(to)f(the)g(deque)h(to) f(obtain)2049 91 y(another)i(ready)h(thread.)43 b(During)26 b(the)g(course)g(of)g(e)o(x)o(ecuting)g(a)g(thread,)h(if)2049 174 y(the)22 b(thread)g(creates)g(a)g(ne)n(w)g(thread)g(or)g(unblocks)i (a)d(block)o(ed)j(thread,)e(then)2049 257 y(the)27 b(process)g(pushes)h (the)e(ne)n(wly)h(ready)g(thread)g(onto)g(the)g(bottom)g(of)f(its)2049 340 y(deque.)36 b(As)23 b(an)g(alternati)n(v)o(e,)h(the)f(process)h (may)f(preempt)h(the)f(thread)g(that)2049 423 y(it)h(w)o(as)h(w)o (orking)h(on,)g(push)g(that)f(thread)g(onto)h(the)f(bottom)g(of)g(its)f (deque,)2049 506 y(and)f(commence)i(e)o(x)o(ecuting)e(the)g(ne)n(wly)h (ready)f(thread.)35 b(This)23 b(alternati)n(v)o(e)2049 589 y(admits)g(optimizations)h(in)f(thread)h(management)g(such)g(as)f (lazy-task)h(cre-)2049 672 y(ation)d([18,)f(19)q(,)g(27)q(].)27 b(So)20 b(long)h(as)g(the)f(deque)i(of)f(a)f(process)h(is)f(non-empty) -5 b(,)2049 755 y(the)19 b(process)h(manipulates)g(the)f(deque)h(in)e (a)h(LIFO)f(\(stack-lik)o(e\))h(manner)l(.)2126 838 y(When)30 b(a)g(process)h(goes)g(to)f(obtain)h(w)o(ork)g(by)f(popping)i(a)e (thread)h(of)n(f)2049 921 y(the)22 b(bottom)g(of)g(its)f(deque,)j(if)d (it)g(\002nds)h(that)g(its)f(deque)i(is)e(empty)-5 b(,)23 b(then)g(the)2049 1004 y(process)c(becomes)h(a)f(thief.)j(It)c(picks)h (a)g(victim)f(process)h(at)g(random)g(\(using)2049 1087 y(a)27 b(uniform)g(distrib)o(ution\))g(and)h(attempts)e(to)h(obtain)h (w)o(ork)f(by)h(remo)o(ving)2049 1170 y(the)17 b(thread)h(at)f(the)g (top)h(of)f(the)g(deque)i(of)e(the)g(victim)g(process.)24 b(If)16 b(the)i(deque)2049 1253 y(of)23 b(the)g(victim)g(process)h(is)f (empty)-5 b(,)24 b(then)g(the)f(thief)g(picks)g(another)h(victim)2049 1336 y(process)d(and)h(tries)d(again.)29 b(The)20 b(thief)g(repeatedly) i(attempts)e(to)h(steal)f(until)2049 1419 y(it)d(\002nds)i(a)f(victim)g (whose)g(deque)i(is)d(non-empty)-5 b(,)20 b(at)e(which)g(point)h(the)f (thief)2049 1502 y(\223reforms\224)25 b(\(i.e.,)h(ceases)f(to)g(be)g(a) g(thief\))g(and)g(commences)i(w)o(ork)e(on)h(the)2049 1585 y(stolen)21 b(thread)h(as)f(described)h(abo)o(v)o(e.)31 b(Since)21 b(steals)f(tak)o(e)i(place)g(at)e(the)i(top)2049 1668 y(of)d(the)g(victim')l(s)f(deque,)i(stealing)f(operates)h(in)f(a)g (FIFO)e(manner)l(.)2126 1751 y(The)22 b(details)f(of)h(our)g(w)o (ork-stealing)h(scheduler)g(are)f(presented)h(in)e(Fig-)2049 1834 y(ure)15 b(1.)22 b(In)14 b(our)h(non-blocking)i(implementation,)f (each)f(process)h(performs)f(a)2049 1917 y Fk(yield)i Fv(system)f(call)f(between)i(e)n(v)o(ery)g(pair)e(of)h(consecuti)n(v)o (e)i(steal)d(attempts.)2049 2000 y(W)-6 b(e)25 b(describe)i(the)e (semantics)h(of)g(the)g Fk(yield)g Fv(system)g(call)g(later)f(in)g (Sec-)2049 2083 y(tion)k(4.4.)54 b(These)29 b(system)g(calls)g(are)g (not)h(needed)g(for)f(correctness,)j(b)o(ut)2049 2166 y(as)23 b(we)f(shall)h(see)g(in)f(Section)h(4.4,)g(the)g(yields)g(are)g (sometimes)g(needed)h(in)2049 2249 y(order)19 b(to)g(pre)n(v)o(ent)h (the)f(k)o(ernel)h(from)e(starving)i(a)f(process.)2049 2393 y Fw(3.2)74 b(Speci\002cation)16 b(of)21 b(the)f(deque)e(methods) 2049 2503 y Fv(In)33 b(this)g(section)h(we)f(de)n(v)o(elop)h(a)f (speci\002cation)h(for)f(the)g(deque)i(object,)2049 2586 y(discussed)c(informally)f(abo)o(v)o(e.)57 b(The)29 b(deque)i(supports) g(three)f(methods:)2049 2669 y Fk(pushBottom)p Fv(,)21 b Fk(popBottom)p Fv(,)g(and)f Fk(popTop)p Fv(.)26 b(A)19 b Fk(pushTop)h Fv(method)h(is)e(not)2049 2752 y(supported,)h(because)g (it)e(is)h(not)g(needed)h(by)f(the)g(w)o(ork-stealing)h(algorithm.)2049 2835 y(A)f(deque)i(implementation)g(is)e(de\002ned)i(to)f(be)g Fl(constant-time)f Fv(if)g(and)h(only)2049 2918 y(if)d(each)h(of)f(the) g(three)h(methods)g(terminates)f(within)g(a)g(constant)h(number)h(of) 2049 3001 y(instructions.)26 b(Belo)n(w)20 b(we)g(de\002ne)g(the)g (\223ideal\224)g(semantics)h(of)f(these)g(meth-)2049 3084 y(ods.)52 b(An)o(y)28 b(constant-time)h(deque)h(implementation)f (meeting)f(the)h(ideal)2049 3167 y(semantics)19 b(is)g(w)o(ait-free)g ([24].)k(Unfortunately)-5 b(,)20 b(we)f(are)g(not)g(a)o(w)o(are)g(of)g (an)o(y)2049 3250 y(constant-time)i(w)o(ait-free)f(deque)h (implementation.)28 b(F)o(or)20 b(this)g(reason,)h(we)2049 3333 y(go)h(on)g(to)f(de\002ne)h(a)f(\223relax)o(ed\224)h(semantics)g (for)f(the)h(deque)g(methods.)31 b(An)o(y)2049 3416 y(constant-time)18 b(deque)g(implementation)g(meeting)f(the)h(relax)o(ed)f(semantics)2049 3499 y(is)h(non-blocking)i([23)q(,)e(24])g(and)h(is)f(suf)n(\002cient)g (for)g(us)h(to)f(pro)o(v)o(e)g(our)h(perfor)o(-)2049 3582 y(mance)h(bounds.)2126 3665 y(W)-6 b(e)20 b(no)n(w)h(de\002ne)g (the)g(ideal)f(deque)i(semantics.)29 b(T)-6 b(o)20 b(do)h(so,)g(we)g (\002rst)f(de-)2049 3748 y(\002ne)f(whether)g(a)g(gi)n(v)o(en)h(set)f (of)g(in)m(v)o(ocations)h(of)f(the)g(deque)i(methods)f(meets)2049 3831 y(the)f(ideal)h(semantics.)25 b(W)-6 b(e)19 b(vie)n(w)g(an)h(in)m (v)o(ocation)g(of)f(a)h(deque)g(method)g(as)g(a)2049 3914 y(4-tuple)h(specifying:)27 b(\(i\))20 b(the)g(name)h(of)f(the)h (deque)g(method)h(in)m(v)o(ok)o(ed)f(\(i.e.,)2049 3997 y Fk(pushBottom)p Fv(,)h Fk(popBottom)p Fv(,)g(or)e Fk(popTop)p Fv(\),)i(\(ii\))d(the)h(initiation)g(time,)g(\(iii\))2049 4080 y(the)28 b(completion)h(time,)h(and)e(\(i)n(v\))g(the)g(return)g (v)n(alue)h(\(if)e(an)o(y\).)51 b(A)28 b(set)g(of)2049 4163 y(in)m(v)o(ocations)e(meets)f(the)g(ideal)g(semantics)g(if)f(and)i (only)g(if)e(there)h(e)o(xists)g(a)2049 4246 y Fl(linearization)f(time) g Fv(for)g(each)h(in)m(v)o(ocation)h(such)f(that:)34 b(\(i\))24 b(the)h(lineariza-)2049 4329 y(tion)d(time)g(lies)f(between) i(the)f(initiation)g(time)g(and)g(the)g(completion)h(time,)2049 4412 y(\(ii\))g(no)h(tw)o(o)g(linearization)g(times)g(coincide,)i(and)e (\(iii\))f(the)h(return)g(v)n(alues)2049 4495 y(are)e(consistent)h (with)f(a)g(serial)f(e)o(x)o(ecution)j(of)e(the)g(method)h(in)m(v)o (ocations)g(in)2049 4578 y(the)k(order)g(gi)n(v)o(en)h(by)f(the)g (linearization)g(times.)46 b(A)26 b(deque)i(implementa-)2049 4661 y(tion)21 b(meets)h(the)f(ideal)h(semantics)g(if)f(and)h(only)g (if)f(for)g(an)o(y)h(e)o(x)o(ecution,)h(the)2049 4744 y(associated)d(set)f(of)g(in)m(v)o(ocations)h(meets)f(the)g(ideal)h (semantics.)k(W)-6 b(e)18 b(remark)2049 4827 y(that)e(a)f(deque)i (implementation)g(meets)f(the)f(ideal)h(semantics)g(if)g(and)g(only)g (if)2049 4910 y(each)k(of)e(the)h(three)h(deque)g(methods)g(is)e Fi(linearizable)p Fv(,)h(as)g(de\002ned)h(in)f([22].)2126 4993 y(It)24 b(is)g(con)m(v)o(enient)i(to)e(de\002ne)h(a)f(set)g(of)g (in)m(v)o(ocations)i(to)e(be)h Fl(good)g Fv(if)f(and)2049 5076 y(only)30 b(if)f(no)h(tw)o(o)g Fk(pushBottom)i Fv(or)e Fk(popBottom)h Fv(in)m(v)o(ocations)g(are)e(con-)2049 5160 y(current.)k(Note)22 b(that)g(an)o(y)h(set)e(of)i(in)m(v)o (ocations)f(associated)h(with)f(some)h(e)o(x-)2049 5243 y(ecution)j(of)g(the)g(w)o(ork-stealing)h(algorithm)f(is)f(good)i (since)f(the)g(\(unique\))2049 5326 y(o)n(wner)h(of)f(each)h(deque)h (is)e(the)g(only)h(process)g(to)f(e)n(v)o(er)h(perform)g(either)f(a) 2049 5409 y Fk(pushBottom)f Fv(or)e Fk(popBottom)h Fv(on)f(that)g (deque.)36 b(Thus,)23 b(for)g(present)g(pur)o(-)1929 5679 y Fw(3)p eop %%Page: 4 4 4 3 bop 410 -147 3100 4 v 408 1269 4 1416 v 600 40 a Fh(//)36 b(Assign)h(root)g(thread)g(to)f(process)h(zero.)459 115 y(1)106 b(Thread*)38 b(assignedThread)h(=)d(NULL;)459 190 y(2)106 b(if)36 b(\(self)h(==)f(processZero\))459 264 y(3)177 b(assignedThread)39 b(=)d(rootThread;)600 339 y(//)g(Run)g(scheduling)j(loop.)459 414 y(4)106 b(while)37 b(\(!computationDone\))k Fg(f)671 488 y Fh(//)36 b(Deque)h(is)e(empty)i (but)f(we)g(may)g(have)h(an)f(assigned)h(thread.)459 563 y(5)177 b(while)37 b(\(assignedThread)i(!=)d(NULL\))h Fg(f)459 638 y Fh(6)248 b(dispatch)37 b(\(assignedThread\);)499 b(//)36 b(Execute)h(until)g(terminate)h(or)e(block.)459 713 y(7)248 b(assignedThread)39 b(=)c(self->popBottom\(\);)182 b(//)36 b(Get)g(next)g(thread.)671 787 y Fg(g)671 862 y Fh(//)g(Deque)h(is)e(empty)i(and)f(we)g(have)h(no)e(assigned)j (thread,)f(so)f(try)g(to)g(steal.)459 937 y(8)177 b(yield\(\);)1202 b(//)36 b(Before)h(steal,)g(yield)g(processor.)459 1011 y(9)177 b(Process*)38 b(victim)f(=)e(randomProcess\(\);)287 b(//)36 b(Select)h(victim)g(process)g(at)f(random.)459 1086 y(10)142 b(assignedThread)39 b(=)d(victim->deque.popTop\(\);)77 b(//)36 b(Try)g(to)g(steal)h(thread.)600 1161 y Fg(g)p 3507 1269 V 410 1272 3100 4 v -150 1395 a Ff(Figure)28 b(1)p Fo(:)40 b(The)27 b(non-blocking)i(w)o(ork)e(stealer)l(.)52 b(All)27 b Fe(P)35 b Fo(processes)28 b(e)o(x)o(ecute)h(this)e (scheduling)i(loop.)50 b(Each)27 b(process)g(is)g(represented)i(with)e (a)g Fh(Process)h Fo(data)g(structure,)-150 1470 y(stored)21 b(in)f(shared)h(memory)l(,)f(that)h(contains)h(the)f(deque)g(of)f(the)h (process,)g(and)g(each)g(process)g(has)f(a)g(pri)n(v)n(ate)j(v)n (ariable)g Fh(self)d Fo(that)i(points)f(to)f(its)g Fh(Process)i Fo(structure.)31 b(Initially)l(,)-150 1545 y(all)25 b(deques)h(are)f (empty)g(and)g(the)g Fh(computationDone)k Fo(\003ag,)d(which)f(is)g (stored)g(in)g(shared)g(memory)l(,)h(is)e(not)h(set.)43 b(The)25 b(root)g(thread)h(is)e(assigned)i(to)f(an)f(arbitrary)j (process,)-150 1619 y(designated)f Fh(processZero)p Fo(,)h(prior)d(to)f (entering)j(the)e(main)f(scheduling)j(loop.)40 b(The)23 b(scheduling)i(loop)f(terminates)i(when)d(a)h(thread)g(e)o(x)o(ecutes)i (the)e(\002nal)g(node)g(and)f(sets)h(the)-150 1694 y Fh(computationDone)d Fo(\003ag.)-150 1850 y Fv(poses,)h(it)d(is)i(suf)n (\002cient)f(to)h(design)g(a)g(constant-time)g(w)o(ait-free)f(deque)i (im-)-150 1933 y(plementation)g(that)g(meets)f(the)h(ideal)f(semantics) h(on)g(an)o(y)g(good)h(set)e(of)h(in-)-150 2016 y(v)o(ocations.)35 b(Unfortunately)-5 b(,)25 b(we)e(do)g(not)g(kno)n(w)h(ho)n(w)f(to)g(do) g(this.)35 b(On)23 b(the)-150 2099 y(positi)n(v)o(e)e(side,)g(we)f(are) h(able)g(to)g(establish)f(optimal)h(performance)h(bounds)-150 2182 y(for)j(the)g(w)o(ork-stealing)h(algorithm)g(e)n(v)o(en)g(if)e (the)i(deque)g(implementation)-150 2265 y(satis\002es)18 b(only)i(a)f(relax)o(ed)g(v)o(ersion)h(of)f(the)g(ideal)g(semantics.) -73 2348 y(In)28 b(the)f(relax)o(ed)i(semantics,)h Fk(popTop)f Fv(is)e(allo)n(wed)h(to)g Fi(abort)h Fv(\(i.e.,)g(re-)-150 2431 y(turn)19 b(a)g(special)g(v)n(alue)g Fk(ABORT)p Fv(\))h(under)f(certain)g(circumstances.)24 b(More)19 b(for)o(-)-150 2514 y(mally)-5 b(,)22 b(a)f(set)g(of)h(in)m(v)o (ocations)g(meets)f(the)h(relax)o(ed)g(semantics)f(if)g(and)h(only)-150 2597 y(if)c(there)h(e)o(xists)g(a)g(set)g(of)g(linearization)g(times)f (for)h(the)g(non-aborting)i(in)m(v)o(o-)-150 2680 y(cations)d(such)g (that:)23 b(\(a\))17 b(conditions)h(\(i\))f(through)i(\(iii\))d(of)i (the)g(ideal)f(seman-)-150 2763 y(tics)h(are)g(satis\002ed,)g(and)h (\(b\))f(for)h(each)g(aborted)g Fk(popTop)g Fv(in)m(v)o(ocation)g Fu(x)p Fv(,)f(the)-150 2846 y(linearization)24 b(time)g(of)f(some)i(in) m(v)o(ocation)f(remo)o(ving)h(the)f(top-most)g(item)-150 2929 y(from)j(the)g(deque)i(f)o(alls)d(between)i(the)f(initiation)g (and)h(completion)g(times)-150 3012 y(of)d Fu(x)p Fv(.)41 b(Informally)-5 b(,)26 b(condition)h(\(b\))d(says)i(that)f(it)f(is)h (okay)h(for)f Fk(popTop)h Fv(to)-150 3095 y(abort)c(as)g(long)h(as)f (some)h(concurrent)g Fk(popBottom)h Fv(or)e Fk(popTop)h Fv(succeeds)-150 3178 y(in)k(remo)o(ving)h(an)g(item)e(from)h(the)h (top)f(of)g(the)g(deque.)49 b(In)27 b(the)g(ne)o(xt)h(sec-)-150 3261 y(tion)d(we)h(pro)o(vide)g(a)f(constant-time)h(non-blocking)i (deque)e(implementa-)-150 3345 y(tion)15 b(that)f(meets)h(the)g(relax)o (ed)g(semantics)g(on)g(an)o(y)g(good)h(set)f(of)f(in)m(v)o(ocations.) -150 3428 y(Our)20 b(implementation)i(is)e(not)h(w)o(ait-free,)f (because)h(we)g(do)g(not)f(consider)i(a)-150 3511 y(call)d(to)f Fk(popTop)i Fv(that)f(aborts)g(as)g(ha)o(ving)h(successfully)g (completed.)-150 3654 y Fw(3.3)74 b(The)19 b(deque)g(implementation) -150 3764 y Fv(The)31 b(deques)i(support)f(concurrent)h(method)f(in)m (v)o(ocations,)j(and)d(we)f(im-)-150 3847 y(plement)25 b(the)f(deques)i(using)f(non-blocking)i(synchronization.)42 b(Such)24 b(an)-150 3930 y(implementation)30 b(requires)g(the)g(use)g (of)f(a)h(uni)n(v)o(ersal)g(primiti)n(v)o(e)f(such)i(as)-150 4013 y(compare-and-sw)o(ap)h(or)d(load-link)o(ed/store-conditional)j ([24].)54 b(Almost)-150 4096 y(all)26 b(modern)h(microprocessors)g(ha)o (v)o(e)f(such)h(instructions.)45 b(In)26 b(our)h(deque)-150 4179 y(implementation)32 b(we)f(emplo)o(y)h(a)f(compare-and-sw)o(ap)j (instruction,)g(b)o(ut)-150 4262 y(this)16 b(instruction)h(can)g(be)g (replaced)g(with)f(a)g(load-link)o(ed/store-conditional)-150 4345 y(pair)j(in)g(a)g(straightforw)o(ard)g(manner)h([28].)-73 4428 y(The)26 b(compare-and-sw)o(ap)k(instruction)d Fk(cas)g Fv(operates)g(as)g(follo)n(ws.)46 b(It)-150 4511 y(tak)o(es)19 b(three)g(operands:)25 b(a)18 b(re)o(gister)h Fk(addr)g Fv(that)f(holds)i(an)f(address)g(and)h(tw)o(o)-150 4594 y(other)g(re)o(gisters,)e Fk(old)i Fv(and)g Fk(new)p Fv(,)g(holding)g(arbitrary)f(v)n(alues.)25 b(The)20 b(instruc-)-150 4677 y(tion)h Fk(cas)40 b(\(addr,)h(old,)f(new\))22 b Fv(compares)g(the)g(v)n(alue)g(stored)f(in)h(mem-)-150 4760 y(ory)f(location)g Fk(addr)h Fv(with)e Fk(old)p Fv(,)i(and)f(if)f(the)o(y)i(are)e(equal,)i(the)f(v)n(alue)g(stored)-150 4843 y(in)c(memory)i(location)f Fk(addr)g Fv(is)f(sw)o(apped)i(with)e Fk(new)p Fv(.)23 b(In)17 b(this)g(case,)h(we)f(say)-150 4926 y(the)23 b Fk(cas)g Fl(succeeds)p Fv(.)35 b(Otherwise,)23 b(it)f(loads)h(the)g(v)n(alue)g(stored)g(in)g(memory)-150 5009 y(location)29 b Fk(addr)h Fv(into)e Fk(new)p Fv(,)j(without)e (modifying)h(the)f(memory)g(location)-150 5092 y Fk(addr)p Fv(.)53 b(In)29 b(this)f(case,)j(we)e(say)g(the)f Fk(cas)i Fl(fails)p Fv(.)51 b(This)29 b(whole)g(operation)-150 5175 y(\227)19 b(comparing)i(and)f(then)g(either)f(sw)o(apping)i(or)e (loading)i(\227)e(is)g(performed)-150 5258 y(atomically)f(with)f (respect)h(to)f(all)g(other)h(memory)h(operations.)k(W)-6 b(e)18 b(can)g(de-)-150 5341 y(tect)i(whether)i(the)e Fk(cas)h Fv(f)o(ails)g(or)g(succeeds)h(by)f(comparing)h Fk(old)f Fv(with)f Fk(new)-150 5424 y Fv(after)f(the)g Fk(cas)p Fv(.)24 b(If)19 b(the)o(y)g(are)g(equal,)h(then)f(the)g Fk(cas)h Fv(succeeded;)h(otherwise,)2300 2596 y @beginspecial 0 @llx 0 @lly 384 @urx 210 @ury 1800 @rwi @setspecial %%BeginDocument: deque-vars.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: deque-vars.fig %%Creator: fig2dev Version 3.1 Patchlevel 1 %%CreationDate: Tue Apr 7 09:39:16 1998 %%For: rdb@senna.cs.utexas.edu (Robert D. Blumofe,TAY 4.118,512 471 9557,512 458 3847,) %%Orientation: Portrait %%BoundingBox: 0 0 384 210 %%Pages: 0 %%BeginSetup %%IncludeFeature: *PageSize Letter %%EndSetup %%EndComments /$F2psDict 200 dict def F2psDictbeginF2psDict begin F2psDictbeginF2psDict /mtrx matrix put /col-1 {} def /col0 {0.000 0.000 0.000 srgb} bind def /col1 {0.000 0.000 1.000 srgb} bind def /col2 {0.000 1.000 0.000 srgb} bind def /col3 {0.000 1.000 1.000 srgb} bind def /col4 {1.000 0.000 0.000 srgb} bind def /col5 {1.000 0.000 1.000 srgb} bind def /col6 {1.000 1.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def /col8 {0.000 0.000 0.560 srgb} bind def /col9 {0.000 0.000 0.690 srgb} bind def /col10 {0.000 0.000 0.820 srgb} bind def /col11 {0.530 0.810 1.000 srgb} bind def /col12 {0.000 0.560 0.000 srgb} bind def /col13 {0.000 0.690 0.000 srgb} bind def /col14 {0.000 0.820 0.000 srgb} bind def /col15 {0.000 0.560 0.560 srgb} bind def /col16 {0.000 0.690 0.690 srgb} bind def /col17 {0.000 0.820 0.820 srgb} bind def /col18 {0.560 0.000 0.000 srgb} bind def /col19 {0.690 0.000 0.000 srgb} bind def /col20 {0.820 0.000 0.000 srgb} bind def /col21 {0.560 0.000 0.560 srgb} bind def /col22 {0.690 0.000 0.690 srgb} bind def /col23 {0.820 0.000 0.820 srgb} bind def /col24 {0.500 0.190 0.000 srgb} bind def /col25 {0.630 0.250 0.000 srgb} bind def /col26 {0.750 0.380 0.000 srgb} bind def /col27 {1.000 0.500 0.500 srgb} bind def /col28 {1.000 0.630 0.630 srgb} bind def /col29 {1.000 0.750 0.750 srgb} bind def /col30 {1.000 0.880 0.880 srgb} bind def /col31 {1.000 0.840 0.000 srgb} bind def end save -89.0 253.0 translate 1 -1 scale /clp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /l {lineto} bind def /m {moveto} bind def /n {newpath} bind def /s {stroke} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /DrawEllipse { /endangle exch def /startangle exch def /yrad exch def /xrad exch def /y exch def /x exch def /savematrix mtrx currentmatrix def x y tr xrad yrad sc 0 0 1 startangle endangle arc closepath savematrix setmatrix } def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def %%EndProlog F2psBegin10setmiterlimit0.060000.06000scF2psBegin 10 setmiterlimit 0.06000 0.06000 sc % Polyline n 1680 1125 m 1575 1125 1575 4095 105 arcto 4 {pop} repeat 1575 4200 6420 4200 105 arcto 4 {pop} repeat 6525 4200 6525 1230 105 arcto 4 {pop} repeat 6525 1125 1680 1125 105 arcto 4 {pop} repeat clp gs 0.80 setgray ef gr 7.500 slw % Polyline n 1605 1050 m 1500 1050 1500 4020 105 arcto 4 {pop} repeat 1500 4125 6345 4125 105 arcto 4 {pop} repeat 6450 4125 6450 1155 105 arcto 4 {pop} repeat 6450 1050 1605 1050 105 arcto 4 {pop} repeat clp gs col7 1.00 shd ef gr gs col-1 s gr 0.000 slw % Polyline n 2475 1575 m 3675 1575 l 3675 2175 l 2475 2175 l clp gs 0.80 setgray ef gr % Ellipse n 7426 3226 450 150 0 360 DrawEllipse gs 0.80 setgray ef gr % Ellipse n 7426 2026 450 150 0 360 DrawEllipse gs 0.80 setgray ef gr % Ellipse n 7426 2626 450 150 0 360 DrawEllipse gs 0.80 setgray ef gr % Polyline n 4875 1575 m 6075 1575 l 6075 3900 l 4875 3900 l clp gs 0.80 setgray ef gr % Polyline n 2476 2776 m 3676 2776 l 3676 3076 l 2476 3076 l clp gs 0.80 setgray ef gr 7.500 slw % Ellipse n 7351 3151 450 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col-1 s gr % Polyline n 2401 2701 m 3601 2701 l 3601 3001 l 2401 3001 l clp gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 7351 1951 450 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col-1 s gr % Ellipse n 7351 2551 450 150 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col-1 s gr % Polyline n 2400 1500 m 3600 1500 l 3600 2100 l 2400 2100 l clp gs col7 1.00 shd ef gr gs col0 s gr % Polyline n 4800 1500 m 6000 1500 l 6000 3900 l 4800 3900 l clp gs col7 1.00 shd ef gr gs col-1 s gr % Polyline n 5400 2250 m 6900 1950 l gs col-1 s gr 15.000 slw n 6752.91 1948.82 m 6900.00 1950.00 l 6764.68 2007.66 l 6782.83 1974.03 l 6752.91 1948.82 l clp gs 0.00 setgray ef gr gs col-1 s gr 7.500 slw % Polyline n 5397 2536 m 6900 2550 l gs col-1 s gr 15.000 slw n 6756.29 2518.66 m 6900.00 2550.00 l 6755.73 2578.66 l 6780.51 2549.38 l 6756.29 2518.66 l clp gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5400 2850 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr 7.500 slw % Polyline n 4800 1800 m 6000 1800 l gs col-1 s gr 15.000 slw % Ellipse n 3300 1950 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr 7.500 slw % Polyline n 3300 1950 m 4800 2250 l gs col-1 s gr 15.000 slw n 4664.68 2192.34 m 4800.00 2250.00 l 4652.91 2251.18 l 4682.83 2226.97 l 4664.68 2192.34 l clp gs 0.00 setgray ef gr gs col-1 s gr % Ellipse n 5400 2550 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr 7.500 slw % Polyline n 4800 2100 m 6000 2100 l gs col-1 s gr % Polyline n 4800 3300 m 6000 3300 l gs col-1 s gr % Polyline n 4800 3600 m 6000 3600 l gs col-1 s gr % Polyline n 4800 2400 m 6000 2400 l gs col-1 s gr 15.000 slw % Ellipse n 5400 2250 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr 7.500 slw % Polyline n 2400 1800 m 3600 1800 l gs col-1 s gr % Polyline n 4800 3000 m 6000 3000 l gs col-1 s gr 15.000 slw % Ellipse n 3001 2851 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr 7.500 slw % Polyline n 3000 2850 m 4800 3150 l gs col-1 s gr 15.000 slw n 4662.89 3096.73 m 4800.00 3150.00 l 4653.03 3155.92 l 4682.13 3130.77 l 4662.89 3096.73 l clp gs 0.00 setgray ef gr gs col-1 s gr 7.500 slw % Polyline n 5397 2836 m 6900 3150 l gs col-1 s gr 15.000 slw n 6765.18 3091.19 m 6900.00 3150.00 l 6752.91 3149.92 l 6783.04 3125.96 l 6765.18 3091.19 l clp gs 0.00 setgray ef gr gs col-1 s gr 7.500 slw % Polyline n 4800 2700 m 6000 2700 l gs col-1 s gr 0.000 slw % Interp Spline n 4275 3975 m 4730.81 3762.36 4937.06 3687.36 5100 3675 curveto 5289.29 3660.64 5662.03 3836.70 5850 3825 curveto 5966.57 3817.74 6207.89 3589.70 6300 3675 curveto 6360.05 3730.61 6300.01 3908.53 6225 3975 curveto 6078.33 4104.97 5763.12 4041.40 5625 4050 curveto 5487.94 4058.53 5162.83 4065.13 5025 4050 curveto 4905.87 4036.92 4737.12 3999.42 4350 3900 curveto gs col7 1.00 shd ef gr /Times-Italic findfont 270.00 scalefont setfont 6975 1650 m gs 1 -1 sc (threads) col-1 show gr /Courier-Bold findfont 270.00 scalefont setfont 4800 1425 m gs 1 -1 sc (deq) col-1 show gr /Courier-Bold findfont 270.00 scalefont setfont 2250 2925 m gs 1 -1 sc ( bot) dup stringwidth pop neg 0 rmoveto col-1 show gr /Courier-Bold findfont 270.00 scalefont setfont 2250 1725 m gs 1 -1 sc ( age) dup stringwidth pop neg 0 rmoveto col-1 show gr /Courier-Bold findfont 270.00 scalefont setfont 1500 900 m gs 1 -1 sc (Deque) col-1 show gr /Courier findfont 270.00 scalefont setfont 2475 2025 m gs 1 -1 sc (top) col-1 show gr /Courier findfont 270.00 scalefont setfont 2475 1725 m gs 1 -1 sc (tag) col-1 show gr F2psBegin10setmiterlimit0.060000.06000scF2psEnd restore %%EndDocument @endspecial 2049 2737 a Ff(Figure)k(2)p Fo(:)36 b(A)24 b Fh(Deque)h Fo(object)h(contains)g(an)f(array)g Fh(deq)g Fo(of)f(pointers)i(to)f(threads,)2049 2812 y(a)h(v)n(ariable)i Fh(bot)f Fo(that)g(is)e(the)i(inde)o(x)g(belo)n(w)g(the)f(bottom)h (thread,)i(and)d(a)g(v)n(ariable)2049 2886 y Fh(age)c Fo(that)h(contains)h(tw)o(o)e(\002elds:)32 b Fh(top)p Fo(,)22 b(the)h(inde)o(x)g(of)f(the)g(top)g(thread,)i(and)f Fh(tag)p Fo(,)g(a)2049 2961 y(\223uniqui\002er\224)h(needed)e(to)f (ensure)h(correct)g(operation.)35 b(The)20 b(v)n(ariable)k Fh(age)d Fo(\002ts)g(in)g(a)2049 3036 y(single)g(w)o(ord)f(of)f(memory) h(that)h(can)f(be)g(operated)i(on)d(with)h(atomic)h Fh(load)p Fo(,)g Fh(store)p Fo(,)2049 3110 y(and)d Fh(cas)f Fo(instructions.)2049 3252 y Fv(it)h(f)o(ailed.)2126 3335 y(In)g(order)g(to)g(implement)g(a)g (deque)h(of)e(threads)i(in)f(a)f(non-blocking)j(man-)2049 3418 y(ner)k(using)g Fk(cas)p Fv(,)h(we)e(emplo)o(y)i(an)f(array)g(of)f (pointers)h(to)g(threads,)h(and)f(we)2049 3501 y(store)d(the)g(indices) h(of)f(the)g(top)g(and)h(bottom)g(entries)f(in)f(the)i(v)n(ariables)f Fk(top)2049 3584 y Fv(and)g Fk(bot)g Fv(respecti)n(v)o(ely)-5 b(,)21 b(as)g(sho)n(wn)g(in)g(Figure)f(2.)28 b(An)20 b(additional)h(v)n(ariable)2049 3667 y Fk(tag)g Fv(is)f(required)i(for) e(correct)h(operation,)h(as)e(described)i(belo)n(w)-5 b(.)29 b(The)20 b Fk(tag)2049 3751 y Fv(and)f Fk(top)g Fv(v)n(ariables)g(are)g(implemented)g(as)g(\002elds)f(of)g(a)h (structure)f Fk(age)p Fv(,)h(and)2049 3834 y(this)h(structure)h(must)g (\002t)e(within)h(a)h(single)g(w)o(ord,)g(which)g(we)f(de\002ne)h(as)g (the)2049 3917 y(maximum)h(number)g(of)f(bits)g(that)g(can)g(be)g (transfered)h(to)f(and)h(from)f(mem-)2049 4000 y(ory)k(atomically)f (with)g Fk(load)p Fv(,)j Fk(store)p Fv(,)f(and)f Fk(cas)g Fv(instructions.)40 b(The)24 b Fk(age)2049 4083 y Fv(structure)19 b(\002ts)f(easily)h(within)g(either)g(a)g(32-bit)g(or)g(a)f(64-bit)i(w) o(ord)f(size.)2126 4166 y(The)24 b(tag)g(\002eld)f(is)h(needed)h(to)f (address)h(the)f(follo)n(wing)g(potential)g(prob-)2049 4249 y(lem.)63 b(Suppose)34 b(that)e(a)g(thief)g(process)h(is)f (preempted)i(after)e(e)o(x)o(ecuting)2049 4332 y(Line)25 b(5)g(b)o(ut)f(before)i(e)o(x)o(ecuting)f(Line)g(8)g(of)g Fk(popTop)p Fv(.)42 b(Subsequent)26 b(oper)o(-)2049 4415 y(ations)e(may)f(empty)h(the)g(deque)g(and)h(then)e(b)o(uild)h(it)e(up) i(again)g(so)f(that)h(the)2049 4498 y(top)h(inde)o(x)g(points)g(to)f (the)h(same)f(location.)40 b(When)25 b(the)g(thief)f(process)h(re-)2049 4581 y(sumes)h(and)f(e)o(x)o(ecutes)h(Line)e(8,)j(the)e Fk(cas)g Fv(will)f(succeed)i(because)g(the)g(top)2049 4664 y(inde)o(x)g(has)g(been)g(restored)g(to)f(its)g(pre)n(vious)h(v)n (alue.)44 b(But)25 b(the)g(thread)h(that)2049 4747 y(the)20 b(thief)f(obtained)i(at)f(Line)f(5)h(is)f(no)i(longer)f(the)g(correct)g (thread.)26 b(The)20 b(tag)2049 4830 y(\002eld)25 b(eliminates)g(this)g (problem,)i(because)g(e)n(v)o(ery)f(time)e(the)i(top)f(inde)o(x)h(is) 2049 4913 y(reset)17 b(\(Line)g(11)h(of)g Fk(popBottom)p Fv(\),)h(the)f(tag)f(is)g(changed.)24 b(This)18 b(changing)h(of)2049 4996 y(the)g(tag)h(will)e(cause)i(the)g(thief)t(')l(s)f Fk(cas)h Fv(to)f(f)o(ail.)24 b(F)o(or)19 b(simplicity)-5 b(,)19 b(in)g(Figure)h(3)2049 5079 y(we)e(sho)n(w)g(the)g(tag)g(being)h (manipulated)g(as)f(a)f(counter)m(,)i(with)f(a)f(ne)n(w)i(tag)f(be-) 2049 5162 y(ing)23 b(selected)g(by)g(incrementing)g(the)g(old)f(tag)h (\(Line)f(12)h(of)f Fk(popBottom)p Fv(\).)2049 5245 y(Such)c(a)f(tag)h (might)f(wrap)h(around,)h(so)f(in)f(practice,)h(we)f(implement)h(the)g (tag)2049 5328 y(by)h(adapting)h(the)f(\223bounded)j(tags\224)d (algorithm)g([28)q(].)2126 5411 y(W)-6 b(e)37 b(claim)g(that)g(the)h (deque)g(implementation)g(presented)h(abo)o(v)o(e)f(is)1929 5679 y Fw(4)p eop %%Page: 5 5 5 4 bop 150 -147 1420 4 v 148 3758 4 3905 v 306 40 a Fh(void)36 b(pushBottom)i(\(Thread*)g(thr\))306 115 y Fg(f)200 190 y Fh(1)141 b(localBot)38 b(=)d(bot;)200 264 y(2)141 b(deq[localBot])39 b(=)d(thr;)200 339 y(3)141 b(localBot++;)200 414 y(4)g(bot)36 b(=)g(localBot;)306 488 y Fg(g)p 200 648 1320 5 v 306 799 a Fh(Thread*)h(popTop\(\))306 874 y Fg(f)200 948 y Fh(1)141 b(oldAge)37 b(=)f(age;)200 1023 y(2)141 b(localBot)38 b(=)d(bot;)200 1098 y(3)141 b(if)36 b(\(localBot)i(<=)e(oldAge.top\))200 1173 y(4)212 b(return)37 b(NULL;)200 1247 y(5)141 b(thr)36 b(=)g(deq[oldAge.top];) 200 1322 y(6)141 b(newAge)37 b(=)f(oldAge;)200 1397 y(7)141 b(newAge.top++;)200 1471 y(8)g(cas\(age,)38 b(oldAge,)f(newAge\))200 1546 y(9)141 b(if)36 b(\(oldAge)h(==)f(newAge\))200 1621 y(10)177 b(return)37 b(thr;)200 1696 y(11)106 b(return)37 b(ABORT;)306 1770 y Fg(g)p 200 1930 V 306 2081 a Fh(Thread*)g (popBottom\(\))306 2156 y Fg(f)200 2230 y Fh(1)141 b(localBot)38 b(=)d(bot;)200 2305 y(2)141 b(if)36 b(\(localBot)i(==)e(0\))200 2380 y(3)212 b(return)37 b(NULL;)200 2454 y(4)141 b(localBot--;)200 2529 y(5)g(bot)36 b(=)g(localBot;)200 2604 y(6)141 b(thr)36 b(=)g(deq[localBot];)200 2679 y(7)141 b(oldAge)37 b(=)f(age;)200 2753 y(8)141 b(if)36 b(\(localBot)i(>)e(oldAge.top\))200 2828 y(9)212 b(return)37 b(thr;)200 2903 y(10)106 b(bot)36 b(=)g(0;)200 2977 y(11)106 b(newAge.top)38 b(=)e(0;)200 3052 y(12)106 b(newAge.tag)38 b(=)e(oldAge.tag)i(+)e(1;)200 3127 y(13)106 b(if)36 b(\(localBot)i(==)e(oldAge.top\))i Fg(f)200 3202 y Fh(14)177 b(cas\(age,)37 b(oldAge,)h(newAge\))447 3276 y(if)e(\(oldAge)h(==)f(newAge\))200 3351 y(15)247 b(return)37 b(thr;)376 3426 y Fg(g)200 3500 y Fh(16)106 b(age)36 b(=)g(newAge;)200 3575 y(17)106 b(return)37 b(NULL;)306 3650 y Fg(g)p 1568 3758 4 3905 v 150 3761 1420 4 v -150 3884 a Ff(Figure)19 b(3)p Fo(:)k(The)18 b(three)h Fh(Deque)g Fo(methods.)25 b(Each)18 b Fh(Deque)h Fo(object)h(resides)f(in)g(shared)-150 3959 y(memory)e(along)h(with)f (its)g(instance)i(v)n(ariables)h Fh(age)p Fo(,)c Fh(bot)p Fo(,)h(and)g Fh(deq)p Fo(;)h(the)g(remaining)-150 4034 y(v)n(ariables)24 b(in)e(this)g(code)g(are)g(pri)n(v)n(ate.)36 b(The)22 b Fh(load)p Fo(,)g Fh(store)p Fo(,)h(and)f Fh(cas)g Fo(instructions)-150 4108 y(operate)k(atomically)l(.)45 b(On)24 b(a)g(multiprocessor)j(that)e(does)g(not)g(support)g (sequential)-150 4183 y(consistenc)o(y)l(,)d(e)o(xtra)g (memory-operation)g(ordering)g(instructions)g(may)e(be)g(needed.)-150 4258 y(The)e(w)o(ork-stealing)i(algorithm)g(performs)e(the)h(same)e (action)j(whether)f Fh(popTop)g Fo(re-)-150 4333 y(turns)c Fh(NULL)h Fo(or)e Fh(ABORT)p Fo(.)i(Thus,)e(for)h(the)g(purposes)h(of)f (the)g(w)o(ork-stealing)j(algorithm,)-150 4407 y(we)f(may)g(assume)g (that)h Fh(ABORT)g Fo(is)f(equal)i(to)e Fh(NULL)p Fo(.)-150 4563 y Fv(constant-time,)30 b(non-blocking,)i(and)c(meets)g(the)g (relax)o(ed)g(semantics)g(on)-150 4646 y(an)o(y)21 b(good)h(set)f(of)g (in)m(v)o(ocations.)29 b(Due)21 b(to)g(space)g(constraints,)h(the)e (proof)i(of)-150 4729 y(this)d(claim)h(is)f(omitted.)26 b(The)19 b(claim)h(greatly)g(simpli\002es)f(the)g(performance)-150 4812 y(analysis)g(of)g(the)g(w)o(ork-stealing)h(algorithm.)j(F)o(or)18 b(e)o(xample,)h(by)h(enforcing)-150 4895 y(the)h(linearizability)f(of)h (all)g(the)f(non-aborting)j(in)m(v)o(ocations,)f(the)f(claim)f(al-)-150 4978 y(lo)n(ws)25 b(us)g(to)g(vie)n(w)g(such)h(in)m(v)o(ocations)f(as)g (atomic.)41 b(Under)26 b(this)e(vie)n(w)-5 b(,)27 b(the)-150 5061 y(precise)22 b(state)e(of)i(the)f(deque)h(at)f(an)o(y)h(gi)n(v)o (en)g(point)g(in)f(the)g(e)o(x)o(ecution)h(has)g(a)-150 5144 y(clear)g(de\002nition)h(in)g(terms)f(of)h(the)f(usual)h(serial)f (semantics)h(of)g(the)g(deque)-150 5227 y(methods)d Fk(pushBottom)p Fv(,)h Fk(popBottom)p Fv(,)f(and)g Fk(popTop)p Fv(.)2419 617 y @beginspecial 0 @llx 0 @lly 404 @urx 246 @ury 1512 @rwi @setspecial %%BeginDocument: structure.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: structure.fig %%Creator: fig2dev Version 3.1 Patchlevel 1 %%CreationDate: Mon Mar 30 17:06:49 1998 %%For: rdb@senna.cs.utexas.edu (Robert D. Blumofe,TAY 4.118,512 471 9557,512 458 3847,) %%Orientation: Portrait %%BoundingBox: 0 0 404 246 %%Pages: 0 %%BeginSetup %%IncludeFeature: *PageSize Letter %%EndSetup %%EndComments /$F2psDict 200 dict def F2psDictbeginF2psDict begin F2psDictbeginF2psDict /mtrx matrix put /col-1 {} def /col0 {0.000 0.000 0.000 srgb} bind def /col1 {0.000 0.000 1.000 srgb} bind def /col2 {0.000 1.000 0.000 srgb} bind def /col3 {0.000 1.000 1.000 srgb} bind def /col4 {1.000 0.000 0.000 srgb} bind def /col5 {1.000 0.000 1.000 srgb} bind def /col6 {1.000 1.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def /col8 {0.000 0.000 0.560 srgb} bind def /col9 {0.000 0.000 0.690 srgb} bind def /col10 {0.000 0.000 0.820 srgb} bind def /col11 {0.530 0.810 1.000 srgb} bind def /col12 {0.000 0.560 0.000 srgb} bind def /col13 {0.000 0.690 0.000 srgb} bind def /col14 {0.000 0.820 0.000 srgb} bind def /col15 {0.000 0.560 0.560 srgb} bind def /col16 {0.000 0.690 0.690 srgb} bind def /col17 {0.000 0.820 0.820 srgb} bind def /col18 {0.560 0.000 0.000 srgb} bind def /col19 {0.690 0.000 0.000 srgb} bind def /col20 {0.820 0.000 0.000 srgb} bind def /col21 {0.560 0.000 0.560 srgb} bind def /col22 {0.690 0.000 0.690 srgb} bind def /col23 {0.820 0.000 0.820 srgb} bind def /col24 {0.500 0.190 0.000 srgb} bind def /col25 {0.630 0.250 0.000 srgb} bind def /col26 {0.750 0.380 0.000 srgb} bind def /col27 {1.000 0.500 0.500 srgb} bind def /col28 {1.000 0.630 0.630 srgb} bind def /col29 {1.000 0.750 0.750 srgb} bind def /col30 {1.000 0.880 0.880 srgb} bind def /col31 {1.000 0.840 0.000 srgb} bind def end save -110.0 348.0 translate 1 -1 scale /clp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /l {lineto} bind def /m {moveto} bind def /n {newpath} bind def /s {stroke} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /DrawEllipse { /endangle exch def /startangle exch def /yrad exch def /xrad exch def /y exch def /x exch def /savematrix mtrx currentmatrix def x y tr xrad yrad sc 0 0 1 startangle endangle arc closepath savematrix setmatrix } def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def %%EndProlog F2psBegin10setmiterlimit0.060000.06000sc7.500slwF2psBegin 10 setmiterlimit 0.06000 0.06000 sc 7.500 slw % Interp Spline n 4650 1950 m 4467.69 2068.17 4411.44 2143.17 4425 2250 curveto 4448.16 2432.41 4755.57 2399.55 4800 2550 curveto 4816.46 2605.73 4797.71 2661.98 4725 2775 curveto gs col0 s gr 15.000 slw n 4828.14 2670.13 m 4725.00 2775.00 l 4777.68 2637.67 l 4790.43 2674.58 l 4828.14 2670.13 l clp gs 0.00 setgray ef gr gs col0 s gr 7.500 slw % Interp Spline n 4665 2982 m 4482.69 3100.17 4426.44 3175.17 4440 3282 curveto 4463.16 3464.41 4770.57 3431.55 4815 3582 curveto 4831.46 3637.73 4812.71 3693.98 4740 3807 curveto gs col0 s gr 15.000 slw n 4843.14 3702.13 m 4740.00 3807.00 l 4792.68 3669.67 l 4805.43 3706.58 l 4843.14 3702.13 l clp gs 0.00 setgray ef gr gs col0 s gr 7.500 slw % Interp Spline n 4665 4032 m 4482.69 4150.17 4426.44 4225.17 4440 4332 curveto 4463.16 4514.41 4770.57 4481.55 4815 4632 curveto 4831.46 4687.73 4812.71 4743.98 4740 4857 curveto gs col0 s gr 15.000 slw n 4843.14 4752.13 m 4740.00 4857.00 l 4792.68 4719.67 l 4805.43 4756.58 l 4843.14 4752.13 l clp gs 0.00 setgray ef gr gs col0 s gr 7.500 slw % Polyline n 4650 5100 m 5775 5475 l gs col0 s gr 15.000 slw n 5647.88 5401.00 m 5775.00 5475.00 l 5628.90 5457.92 l 5661.66 5437.55 l 5647.88 5401.00 l clp gs 0.00 setgray ef gr gs col0 s gr 7.500 slw % Polyline n 4650 4050 m 5775 4425 l gs col0 s gr 15.000 slw n 5647.88 4351.00 m 5775.00 4425.00 l 5628.90 4407.92 l 5661.66 4387.55 l 5647.88 4351.00 l clp gs 0.00 setgray ef gr gs col0 s gr 7.500 slw % Polyline n 4650 3000 m 5775 3375 l gs col0 s gr 15.000 slw n 5647.88 3301.00 m 5775.00 3375.00 l 5628.90 3357.92 l 5661.66 3337.55 l 5647.88 3301.00 l clp gs 0.00 setgray ef gr gs col0 s gr 7.500 slw % Polyline n 4800 1950 m 5775 2325 l gs col0 s gr 15.000 slw n 5651.37 2245.31 m 5775.00 2325.00 l 5629.83 2301.31 l 5663.50 2282.42 l 5651.37 2245.31 l clp gs 0.00 setgray ef gr gs col0 s gr 7.500 slw % Ellipse n 4650 3000 237 237 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 6000 3450 237 237 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 6000 4500 237 237 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 4650 4050 237 237 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 6000 2400 237 237 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 4650 5100 237 237 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 4650 1950 237 237 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr % Ellipse n 6000 5550 237 237 0 360 DrawEllipse gs col7 1.00 shd ef gr gs col0 s gr /Times-Roman findfont 240.00 scalefont setfont 4714 5239 m gs 1 -1 sc (0) col-1 show gr /Times-Italic findfont 360.00 scalefont setfont 4503 5178 m gs 1 -1 sc (u) col-1 show gr /Times-Roman findfont 240.00 scalefont setfont 4714 4189 m gs 1 -1 sc (1) col-1 show gr /Times-Italic findfont 360.00 scalefont setfont 4503 4128 m gs 1 -1 sc (u) col-1 show gr /Times-Roman findfont 240.00 scalefont setfont 4715 3140 m gs 1 -1 sc (2) col-1 show gr /Times-Italic findfont 360.00 scalefont setfont 4504 3079 m gs 1 -1 sc (u) col-1 show gr /Times-Roman findfont 240.00 scalefont setfont 4730 2090 m gs 1 -1 sc (3) col-1 show gr /Times-Italic findfont 360.00 scalefont setfont 5886 2466 m gs 1 -1 sc (v) col-1 show gr /Times-Roman findfont 240.00 scalefont setfont 6050 3590 m gs 1 -1 sc (2) col-1 show gr /Times-Italic findfont 360.00 scalefont setfont 5870 4565 m gs 1 -1 sc (v) col-1 show gr /Times-Roman findfont 240.00 scalefont setfont 6049 4639 m gs 1 -1 sc (1) col-1 show gr /Times-Italic findfont 360.00 scalefont setfont 5870 5615 m gs 1 -1 sc (v) col-1 show gr /Times-Roman findfont 240.00 scalefont setfont 6049 5689 m gs 1 -1 sc (0) col-1 show gr % Arc n 4790.70 2466.87 917.77 -131.55 168.30 arcn gs col-1 s gr % Arc n 4790.70 4584.13 917.77 131.55 -168.30 arc gs col-1 s gr % Arc n 2986.60 2836.91 923.89 48.23 -11.48 arcn gs col-1 s gr % Arc n 2990.01 4213.75 920.62 -48.34 11.54 arc gs col-1 s gr /Times-Italic findfont 360.00 scalefont setfont 3451 3826 m gs 1 -1 sc (parents) dup stringwidth pop neg 0 rmoveto col-1 show gr /Times-Italic findfont 360.00 scalefont setfont 3451 3451 m gs 1 -1 sc (designated) dup stringwidth pop neg 0 rmoveto col-1 show gr % Arc n 6066.77 2700.58 628.13 -50.77 12.08 arc gs col-1 s gr % Arc n 6063.58 4199.09 631.18 50.62 -11.99 arcn gs col-1 s gr % Arc n 7308.03 2959.06 639.78 129.74 -168.54 arc gs col-1 s gr % Arc n 7301.52 3940.23 633.54 -129.45 168.37 arcn gs col-1 s gr /Times-Italic findfont 360.00 scalefont setfont 7051 3751 m gs 1 -1 sc (deque) col-1 show gr /Times-Italic findfont 360.00 scalefont setfont 7051 3376 m gs 1 -1 sc (nodes in) col-1 show gr /Times-Roman findfont 240.00 scalefont setfont 6065 2540 m gs 1 -1 sc (3) col-1 show gr /Times-Italic findfont 360.00 scalefont setfont 4519 2029 m gs 1 -1 sc (u) col-1 show gr /Times-Italic findfont 360.00 scalefont setfont 5871 3516 m gs 1 -1 sc (v) col-1 show gr /Times-Italic findfont 360.00 scalefont setfont 6450 5625 m gs 1 -1 sc (assigned node) col-1 show gr F2psBegin10setmiterlimit0.060000.06000sc7.500slwF2psEnd restore %%EndDocument @endspecial 2049 758 a Ff(Figure)14 b(4)p Fo(:)19 b(The)14 b(structure)i(of)d(the)i(nodes)f(in)g(the)g(deque)h(of)f(some)g (process.)20 b(Node)14 b Fe(v)4015 767 y Ft(0)2049 833 y Fo(is)26 b(the)h(assigned)g(node.)49 b(Nodes)26 b Fe(v)2903 842 y Ft(1)2938 833 y Fo(,)i Fe(v)3017 842 y Ft(2)3052 833 y Fo(,)f(and)g Fe(v)3252 842 y Ft(3)3313 833 y Fo(are)g(the)f (nodes)h(in)g(the)f(deque)2049 908 y(ordered)d(from)e(bottom)h(to)f (top.)34 b(F)o(or)22 b Fe(i)28 b Fd(=)g(0)p Fe(;)11 b Fd(1)p Fe(;)h Fd(2)p Fe(;)g Fd(3)p Fo(,)22 b(node)g Fe(u)3552 918 y Fq(i)3599 908 y Fo(is)f(the)h(designated)2049 983 y(parent)g(of)f(node)g Fe(v)2494 993 y Fq(i)2521 983 y Fo(.)30 b(Then)21 b(nodes)g Fe(u)2941 992 y Ft(3)2976 983 y Fo(,)f Fe(u)3054 992 y Ft(2)3089 983 y Fo(,)g Fe(u)3167 992 y Ft(1)3202 983 y Fo(,)h(and)g Fe(u)3397 992 y Ft(0)3451 983 y Fo(lie)h(\(in)f(that)h(order\))f(on)g(a)2049 1057 y(root-to-leaf)f(path)e(in)f(the)h(enabling)h(tree.)2049 1196 y Fw(3.4)74 b(A)20 b(structural)f(lemma)2049 1306 y Fv(In)i(this)g(section)h(we)f(establish)h(a)f(k)o(e)o(y)h(lemma)g (that)f(is)g(used)h(in)f(the)g(perfor)o(-)2049 1389 y(mance)j(analysis) g(of)f(our)h(w)o(ork-stealing)g(scheduler)l(.)38 b(Before)23 b(stating)h(the)2049 1472 y(lemma,)19 b(we)g(pro)o(vide)g(a)g(number)h (of)f(technical)h(de\002nitions.)2126 1555 y(F)o(or)30 b(our)i(analysis,)i(we)d(ignore)g(threads)h(and)f(treat)g(a)g (multithreaded)2049 1638 y(computation)i(as)f(a)g(dag,)j(where)d(each)g (node)h(of)f(the)g(dag)g(corresponds)2049 1721 y(to)c(one)h (instruction)g(of)f(the)h(computation.)52 b(W)-6 b(e)28 b(treat)g(the)g(deques)i(as)e(if)2049 1804 y(the)o(y)20 b(contain)h(ready)g(nodes)h(instead)e(of)g(ready)h(threads,)g(and)g(we) f(treat)g(the)2049 1887 y(scheduler)k(as)f(if)g(it)f(operates)i(on)g (nodes)g(instead)f(of)g(threads.)37 b(In)23 b(particu-)2049 1970 y(lar)m(,)17 b(we)g(replace)h(each)g(ready)g(thread)g(in)f(a)g (deque)i(with)e(its)f(currently)i(ready)2049 2053 y(node)23 b(\227)e(that)g(is,)h(the)f(node)i(representing)g(the)e(instruction)h (addressed)h(by)2049 2136 y(the)f(current)h(v)n(alue)f(of)g(the)h (thread')l(s)f(program)h(counter)l(.)33 b(In)22 b(addition,)h(if)f(a) 2049 2219 y(process)g(is)f(e)o(x)o(ecuting)i(a)e(thread,)h(then)g(we)f (de\002ne)h(the)f Fl(assigned)h(node)g Fv(of)2049 2302 y(the)j(process)g(to)g(be)g(the)f(currently)i(ready)f(node)h(of)e(the)h (assigned)h(thread.)2049 2385 y(Applied)d(to)f(nodes)i(instead)f(of)f (threads,)i(the)e(scheduler)i(operates)f(as)f(fol-)2049 2468 y(lo)n(ws.)51 b(If)28 b(a)g(process)h(does)g(not)g(ha)o(v)o(e)f (an)h(assigned)g(node,)j(then)c(it)g(pops)2049 2552 y(the)21 b(bottom-most)g(node)h(of)n(f)e(its)g(deque,)i(and)f(that)g(node)g (becomes)h(the)f(as-)2049 2635 y(signed)h(node.)30 b(If)21 b(the)g(deque)h(is)f(empty)-5 b(,)22 b(then)f(it)f(pops)i(the)f (top-most)h(node)2049 2718 y(of)n(f)e(the)h(deque)g(of)f(a)g(randomly)i (chosen)f(victim,)f(and)h(that)f(node)i(becomes)2049 2801 y(the)d(assigned)i(node.)k(The)20 b(process)g(then)g(e)o(x)o (ecutes)g(the)f(assigned)i(node.)k(If)2049 2884 y(e)o(x)o(ecution)g(of) g(the)f(assigned)h(node)h(enables)f(tw)o(o)f(child)h(nodes,)h(then)f (one)2049 2967 y(child)i(is)g(pushed)h(onto)f(the)g(bottom)h(of)f(the)g (deque)h(and)f(the)g(other)h(child)2049 3050 y(becomes)22 b(the)e(assigned)h(node.)29 b(If)20 b(one)h(child)f(is)g(enabled,)i (then)e(that)h(child)2049 3133 y(becomes)f(the)f(assigned)h(node.)k(If) 18 b(no)h(child)g(is)f(enabled,)i(then)f(the)g(process)2049 3216 y(has)h(no)f(assigned)i(node,)f(and)g(it)e(returns)i(to)f(its)g (deque)h(or)f(becomes)i(a)e(thief)2049 3299 y(to)g(obtain)g(an)h (assigned)g(node.)2126 3382 y(Though)27 b(each)g(node)g(of)g(the)f(dag) h(represents)g(one)g(instruction)f(and)h(is)2049 3465 y(therefore)21 b(e)o(x)o(ecuted)h(atomically)-5 b(,)21 b(for)f(the)h(case)f(of)h(a)f(node)i(whose)f(e)o(x)o(ecu-)2049 3548 y(tion)j(enables)h(tw)o(o)f(children,)h(we)f(de\002ne)g(the)g(e)o (x)o(ecution)h(to)f Fi(occur)i Fv(at)e(the)2049 3631 y(linearization)19 b(time)g(of)g(the)g(ensuing)h Fk(pushBottom)p Fv(.)2126 3714 y(If)f(the)i(e)o(x)o(ecution)g(of)f(node)h Fu(u)f Fv(enables)h(node)g Fu(v)s Fv(,)f(then)h(we)f(call)g(the)g(edge) 2049 3797 y Fr(\()p Fu(u;)13 b(v)s Fr(\))20 b Fv(an)g Fl(enabling)f(edge)p Fv(,)i(and)g(we)e(call)h Fu(u)g Fv(the)g Fl(designated)g(parent)g Fv(of)g Fu(v)s Fv(.)2049 3880 y(Note)26 b(that)f(e)n(v)o(ery)i(node)f(e)o(xcept)h(the)e(root)h (node)h(has)f(e)o(xactly)g(one)g(desig-)2049 3963 y(nated)18 b(parent,)f(so)g(the)h(subgraph)g(of)f(the)g(dag)h(consisting)g(of)f (only)h(enabling)2049 4046 y(edges)k(forms)f(a)g(rooted)h(tree)f(that)g (we)g(call)g(the)g Fl(enabling)g(tree)p Fv(.)30 b(Note)21 b(that)2049 4129 y(each)27 b(e)o(x)o(ecution)h(of)e(the)g(computation)i (may)f(ha)o(v)o(e)g(a)f(dif)n(ferent)h(enabling)2049 4212 y(tree.)34 b(If)22 b Fu(d)p Fr(\()p Fu(u)p Fr(\))g Fv(is)g(the)h(depth)g(of)g(a)f(node)i Fu(u)f Fv(in)f(the)h(enabling)g (tree,)g(then)g(its)2049 4295 y Fl(w)o(eight)15 b Fv(is)g(de\002ned)i (as)f Fu(w)r Fr(\()p Fu(u)p Fr(\))21 b(=)g Fu(T)2954 4303 y Fs(1)3024 4295 y Fm(\000)5 b Fu(d)p Fr(\()p Fu(u)p Fr(\))p Fv(.)21 b(The)15 b(root)h(of)g(the)g(dag,)g(which)2049 4378 y(is)h(also)g(the)g(root)h(of)f(the)g(enabling)i(tree,)e(has)g (weight)h Fu(T)3491 4386 y Fs(1)3556 4378 y Fv(.)k(Our)17 b(analysis)h(of)2049 4461 y(Section)h(4)g(emplo)o(ys)h(a)f(potential)g (function)h(based)g(on)f(the)g(node)h(weights.)2126 4544 y(As)29 b(illustrated)f(in)h(Figure)g(4,)j(the)d(structural)g(lemma)g (states)g(that)g(for)2049 4627 y(an)o(y)e(deque,)j(at)d(all)f(times)h (during)g(the)g(e)o(x)o(ecution)h(of)f(the)g(w)o(ork-stealing)2049 4710 y(algorithm,)e(the)f(designated)h(parents)f(of)g(the)g(nodes)h(in) e(the)h(deque)h(lie)e(on)2049 4793 y(some)k(root-to-leaf)f(path)g(of)g (the)g(enabling)h(tree.)44 b(Moreo)o(v)o(er)m(,)29 b(the)d(order)o(-) 2049 4876 y(ing)f(of)f(these)h(designated)g(parents)g(along)g(this)f (path)h(corresponds)h(to)f(the)2049 4959 y(top-to-bottom)g(ordering)h (of)e(the)h(nodes)h(in)e(the)h(deque.)41 b(As)24 b(a)g(corollary)-5 b(,)2049 5042 y(we)24 b(observ)o(e)i(that)f(the)f(weights)h(of)g(the)f (nodes)i(in)e(the)h(deque)h(are)e(strictly)2049 5125 y(decreasing)c(from)f(top)g(to)g(bottom.)2049 5264 y Fw(Lemma)h(3)h(\(Structural)d(Lemma\))41 b Fi(Let)16 b Fu(k)i Fi(be)e(the)g(number)i(of)e(nodes)h(in)2049 5347 y(a)e(given)h(deque)g(at)f(some)g(time)f(in)h(the)g (\(linearized\))g(e)o(xecution)h(of)f(the)g(work-)2049 5430 y(stealing)23 b(algorithm,)i(and)f(let)e Fu(v)2915 5438 y Ft(1)2950 5430 y Fu(;)13 b(:)g(:)h(:)f(;)g(v)3158 5439 y Fq(k)3219 5430 y Fi(denote)24 b(those)g(nodes)g(or)m(der)m(ed) 1929 5679 y Fw(5)p eop %%Page: 6 6 6 5 bop -150 -75 a Fi(fr)m(om)19 b(the)g(bottom)h(of)f(the)h(deque)g (to)f(the)h(top.)k(Let)19 b Fu(v)1207 -67 y Ft(0)1261 -75 y Fi(denote)h(the)f(assigned)-150 8 y(node)27 b(if)e(ther)m(e)h(is) f(one)o(.)44 b(In)26 b(addition,)i(for)e Fu(i)34 b Fr(=)g(0)p Fu(;)14 b(:)f(:)g(:)g(;)h(k)r Fi(,)27 b(let)e Fu(u)1600 16 y Fq(i)1652 8 y Fi(denote)-150 91 y(the)e(designated)h(par)m(ent)g (of)f Fu(v)643 99 y Fq(i)670 91 y Fi(.)34 b(Then)24 b(for)e Fu(i)30 b Fr(=)e(1)p Fu(;)14 b(:)f(:)g(:)g(;)g(k)r Fi(,)24 b(node)g Fu(u)1655 99 y Fq(i)1704 91 y Fi(is)e(an)-150 174 y(ancestor)27 b(of)f Fu(u)261 182 y Fq(i)p Fs(\000)p Ft(1)392 174 y Fi(in)g(the)g(enabling)h(tr)m(ee)o(.)44 b(Mor)m(eo)o(ver)-8 b(,)29 b(though)f(we)e(may)-150 257 y(have)d Fu(u)57 265 y Ft(0)118 257 y Fr(=)j Fu(u)248 265 y Ft(1)283 257 y Fi(,)c(for)f Fu(i)27 b Fr(=)g(2)p Fu(;)13 b Fr(3)p Fu(;)h(:)f(:)g(:)g(;)g(k)r Fi(,)22 b(we)g(have)g Fu(u)1247 265 y Fq(i)p Fs(\000)p Ft(1)1379 257 y Fm(6)p Fr(=)k Fu(u)1509 265 y Fq(i)1557 257 y Fi(\227)c(that)f(is,)-150 340 y(the)e(ancestor)h(r)m(elationship)g(is)f(pr)m(oper)-8 b(.)-150 499 y(Pr)m(oof)14 b(sk)o(etc)o(h:)76 b Fv(Fix)14 b(a)g(particular)h(deque.)23 b(The)14 b(deque)i(state)e(and)i(assigned) -150 582 y(node)29 b(change)h(only)f(when)g(the)g(assigned)g(node)h(is) e(e)o(x)o(ecuted)h(or)g(a)f(non-)-150 665 y(aborting)19 b(in)m(v)o(ocation)f(occurs.)24 b(W)-6 b(e)17 b(pro)o(v)o(e)i(the)f (claim)f(by)h(induction)h(on)g(the)-150 748 y(number)h(of)f (assigned-node)j(e)o(x)o(ecutions)e(and)f(non-aborting)i(in)m(v)o (ocations.)-150 831 y(When)28 b(e)o(x)o(ecution)h(be)o(gins,)i(the)d (claim)g(holds)h(v)n(acuously)-5 b(.)53 b(W)-6 b(e)27 b(no)n(w)i(as-)-150 914 y(sume)24 b(that)f(the)h(claim)f(holds)h (before)g(a)g(gi)n(v)o(en)g(assigned-node)i(e)o(x)o(ecution)-150 997 y(or)c(non-aborting)i(in)m(v)o(ocation,)f(and)g(sho)n(w)g(that)f (it)f(holds)i(after)l(.)33 b(The)22 b(most)-150 1080 y(interesting)g(case)h(is)f(when)h(the)f(e)o(x)o(ecution)h(of)g(the)f (assigned)h(node)h Fu(v)1699 1088 y Ft(0)1756 1080 y Fv(en-)-150 1163 y(ables)18 b(tw)o(o)g(children)g Fu(x)f Fv(and)i Fu(y)s Fv(,)e(with)g Fu(x)g Fv(being)i(pushed)g(onto)g(the)e (bottom)i(of)-150 1246 y(the)k(deque)g(and)g Fu(y)i Fv(becoming)f(the)f (ne)n(w)f(assigned)i(node.)35 b(These)22 b(changes)-150 1329 y(to)f(the)h(deque)h(and)f(assigned)g(node)h(occur)f(atomically)g (\(in)f(the)g(linearized)-150 1412 y(e)o(x)o(ecution\).)50 b(Observing)29 b(that)e Fr(\()p Fu(v)776 1420 y Ft(0)811 1412 y Fu(;)13 b(x)p Fr(\))27 b Fv(and)h Fr(\()p Fu(v)1148 1420 y Ft(0)1183 1412 y Fu(;)13 b(y)s Fr(\))27 b Fv(are)g(both)i (enabling)-150 1495 y(edges,)21 b(it)f(is)g(straightforw)o(ard)g(to)h (v)o(erify)f(that)g(if)g(the)g(lemma)g(holds)h(before)-150 1579 y(the)h(node)h(e)o(x)o(ecution,)g(then)g(it)e(also)h(holds)g (after)l(.)32 b(This)22 b(case)g(gi)n(v)o(es)g(rise)g(to)-150 1662 y(the)h(possibility)h(that)f(the)g(bottom-most)h(node)h(in)e(the)g (deque)i(and)f(the)f(as-)-150 1745 y(signed)e(node)f(both)h(ha)o(v)o(e) e(the)h(same)g(designated)h(parent.)26 b(Other)20 b(cases)g(are)-150 1828 y(check)o(ed)h(in)e(a)f(similar)h(f)o(ashion.)p 1809 1828 42 42 v -150 2021 a Fw(Cor)o(ollar)q(y)f(4)41 b Fi(If)28 b Fu(v)392 2029 y Ft(0)427 2021 y Fu(;)13 b(v)498 2029 y Ft(1)533 2021 y Fu(;)g(:)g(:)g(:)h(;)f(v)741 2030 y Fq(k)808 2021 y Fi(ar)m(e)29 b(as)g(de\002ned)h(in)e(the)h (statement)g(of)-150 2104 y(Lemma)e(3,)i(then)f(we)e(have)i Fu(w)r Fr(\()p Fu(v)739 2112 y Ft(0)774 2104 y Fr(\))37 b Fm(\024)g Fu(w)r Fr(\()p Fu(v)1062 2112 y Ft(1)1097 2104 y Fr(\))g Fu(<)f(:)13 b(:)h(:)37 b(<)g(w)r Fr(\()p Fu(v)1608 2113 y Fq(k)q Fs(\000)p Ft(1)1724 2104 y Fr(\))g Fu(<)-150 2187 y(w)r Fr(\()p Fu(v)-26 2196 y Fq(k)12 2187 y Fr(\))p Fi(.)p 1809 2187 V -150 2387 a Fw(4)74 b(Anal)o(ysis)18 b(of)j(the)e(w)o(ork)h(stealer)-150 2513 y Fv(In)30 b(this)f(section)h(we)g(establish)g(optimal)g(bounds)h (on)f(the)g(running)h(time)-150 2596 y(of)22 b(the)h(non-blocking)i(w)o (ork)e(stealer)f(under)h(v)n(arious)g(assumptions)h(about)-150 2679 y(the)d(k)o(ernel.)30 b(It)20 b(should)i(be)g(emphasized)g(that)f (the)g(w)o(ork)h(stealer)e(performs)-150 2762 y(correctly)f(for)g(an)o (y)h(k)o(ernel.)25 b(W)-6 b(e)18 b(consider)i(v)n(arious)g (restrictions)f(on)h(k)o(ernel)-150 2846 y(beha)o(vior)c(in)f(order)g (to)g(demonstrate)h(en)m(vironments)h(in)e(which)g(the)h(running)-150 2929 y(time)j(of)f(the)h(w)o(ork)h(stealer)f(is)f(optimal.)-73 3012 y(The)26 b(follo)n(wing)h(de\002nitions)g(will)f(pro)o(v)o(e)h(to) g(be)g(useful)g(in)f(our)h(analy-)-150 3095 y(sis.)c(An)c(instruction)g (in)g(the)g(sequence)i(e)o(x)o(ecuted)f(by)f(some)h(process)g Fu(q)h Fv(is)e(a)-150 3178 y Fl(milestone)h Fv(if)f(and)i(only)g(if)e (one)i(of)f(the)g(follo)n(wing)h(tw)o(o)f(conditions)h(holds:)-150 3261 y(\(i\))k(e)o(x)o(ecution)h(of)g(a)f(node)i(by)e(process)i Fu(q)h Fv(occurs)e(at)f(that)h(instruction,)h(or)-150 3344 y(\(ii\))c(a)h Fk(popTop)i Fv(in)m(v)o(ocation)f(completes.)39 b(It)24 b(is)g(straightforw)o(ard)g(to)g(ar)o(gue)-150 3427 y(that)c(a)g(gi)n(v)o(en)h(process)f(may)h(e)o(x)o(ecute)g(at)e (most)h(some)h(constant)g(number)g(of)-150 3510 y(instructions)26 b(between)h(successi)n(v)o(e)g(milestones.)44 b(Throughout)27 b(this)f(sec-)-150 3593 y(tion,)d(we)f(let)g Fu(C)27 b Fv(denote)d(a)e(suf)n(\002ciently)g(lar)o(ge)h(constant)g(such)g (that)f(in)g(an)o(y)-150 3676 y(sequence)28 b(of)f Fu(C)k Fv(consecuti)n(v)o(e)d(instructions)f(e)o(x)o(ecuted)h(by)f(a)f (process,)j(at)-150 3759 y(least)19 b(one)g(is)g(a)g(milestone.)-73 3842 y(The)c(remainder)h(of)g(this)f(section)h(is)f(or)o(ganized)i(as)e (follo)n(ws.)22 b(Section)16 b(4.1)-150 3925 y(reduces)31 b(the)g(analysis)g(to)f(bounding)j(the)d(number)i(of)e(\223thro)n (ws\224.)58 b(Sec-)-150 4008 y(tion)32 b(4.2)f(de\002nes)h(a)g (potential)g(function)g(that)f(is)h(central)f(to)h(all)f(of)g(our)-150 4091 y(upper)o(-bound)g(ar)o(guments.)56 b(Sections)29 b(4.3)h(and)g(4.4)f(present)h(our)g(upper)-150 4174 y(bounds)21 b(for)d(dedicated)i(and)g(multiprogrammed)g(en)m(vironments.)-150 4317 y Fw(4.1)74 b(Thr)o(o)o(ws)-150 4427 y Fv(In)20 b(this)h(section)f(we)h(sho)n(w)g(that)f(the)g(e)o(x)o(ecution)i(time)e (of)g(our)h(w)o(ork)g(stealer)-150 4510 y(is)26 b Fu(O)r Fr(\()p Fu(T)61 4518 y Ft(1)96 4510 y Fu(=P)183 4518 y Fq(A)257 4510 y Fr(+)c Fu(S=P)473 4518 y Fq(A)524 4510 y Fr(\))p Fv(,)28 b(where)e Fu(S)31 b Fv(is)26 b(the)h(number)g(of)g (\223thro)n(ws\224,)i(that)-150 4593 y(is,)17 b(steal)h(attempts)g (satisfying)g(a)g(technical)h(condition)g(stated)f(belo)n(w)-5 b(.)23 b(This)-150 4676 y(goal)15 b(cannot)g(be)g(achie)n(v)o(ed)h (without)e(restricting)h(the)f(k)o(ernel,)i(so)f(in)f(addition)-150 4759 y(to)22 b(pro)o(ving)h(this)e(bound)j(on)e(e)o(x)o(ecution)h (time,)f(we)f(shall)h(state)g(and)g(justify)-150 4842 y(certain)d(k)o(ernel)h(restrictions.)-73 4925 y(One)j(fundamental)h (obstacle)g(pre)n(v)o(ents)f(us)g(from)g(pro)o(ving)h(the)f(desired) -150 5008 y(performance)39 b(bound)g(within)f(the)f(\(unrestricted\))h (multiprogramming)-150 5092 y(model)27 b(of)e(Section)h(2.)45 b(The)25 b(problem)i(is)f(that)g(the)g(k)o(ernel)g(may)h(bias)f(the) -150 5175 y(random)17 b(steal)e(attempts)h(to)n(w)o(ards)h(the)f(empty) g(deques.)23 b(In)16 b(particular)m(,)g(con-)-150 5258 y(sider)i(the)g(steal)f(attempts)h(initiated)f(within)h(some)g(\002x)o (ed)g(interv)n(al)g(of)g(steps.)2049 -75 y(The)k(adv)o(ersary)i(can)e (bias)h(these)f(steal)g(attempts)g(to)n(w)o(ards)h(the)g(empty)g(de-) 2049 8 y(ques)16 b(by)f(delaying)h(those)g(steal)f(attempts)g(that)g (choose)h(non-empty)h(deques)2049 91 y(as)i(victims)g(so)g(that)g(the)o (y)g(occur)g(after)g(the)g(end)g(of)g(the)g(interv)n(al.)2126 174 y(T)-6 b(o)16 b(address)i(this)e(issue,)h(we)g(restrict)f(the)h(k)o (ernel)g(to)g(schedule)g(in)g Fl(rounds)2049 257 y Fv(rather)k(than)h (steps.)30 b(A)21 b(process)h(that)f(is)g(scheduled)h(in)f(a)g (particular)h(round)2049 340 y(gets)i(to)h(e)o(x)o(ecute)g(between)g Fr(2)p Fu(C)k Fv(and)c Fr(3)p Fu(C)30 b Fv(instructions)25 b(without)f(preemp-)2049 423 y(tion,)19 b(where)h Fu(C)k Fv(is)18 b(the)i(constant)g(de\002ned)g(at)f(the)g(be)o(ginning)i(of)e (Section)g(4.)2049 506 y(The)24 b(precise)g(number)i(of)e(instructions) g(that)g(a)g(process)h(e)o(x)o(ecutes)g(during)2049 589 y(a)20 b(round)h(is)f(determined)h(by)g(the)f(k)o(ernel)h(in)f(an)g (arbitrary)h(manner)l(.)27 b(W)-6 b(e)20 b(as-)2049 672 y(sume)d(that)g(the)g(process)h(e)o(x)o(ecutes)g(these)f Fr(2)p Fu(C)22 b Fv(to)17 b Fr(3)p Fu(C)22 b Fv(instructions)17 b(in)g(serial)2049 755 y(order)m(,)i(b)o(ut)f(we)g(allo)n(w)g(the)h (instruction)f(streams)h(of)f(dif)n(ferent)g(processes)i(to)2049 838 y(be)27 b(interlea)o(v)o(ed)f(arbitrarily)-5 b(,)28 b(as)e(determined)h(by)g(the)f(k)o(ernel.)46 b(W)-6 b(e)26 b(claim)2049 921 y(that)e(our)g(requirement)h(that)f(processes)h(be)g (scheduled)g(in)f(rounds)h(of)f Fr(2)p Fu(C)2049 1004 y Fv(to)j Fr(3)p Fu(C)33 b Fv(instructions)28 b(is)f(a)g(reasonable)i (one.)49 b(Because)28 b(of)f(the)g(o)o(v)o(erhead)2049 1087 y(associated)d(with)f(conte)o(xt-switching,)i(practical)e(k)o (ernels)h(tend)g(to)f(assign)2049 1170 y(processes)18 b(to)f(processors)i(for)e(some)h(nontri)n(vial)f(scheduling)i(quantum.) 24 b(In)2049 1253 y(f)o(act,)29 b(a)e(typical)g(scheduling)i(quantum)f (is)f(orders)h(of)f(magnitude)h(higher)2049 1336 y(than)k(the)f(modest) h(v)n(alue)g(of)f Fu(C)37 b Fv(needed)32 b(to)f(achie)n(v)o(e)i(our)e (performance)2049 1419 y(bounds.)2126 1502 y(Recall)16 b(that)h(a)g(steal)g(attempt)g(e)o(x)o(ecuted)h(by)f(some)h(process)f Fu(q)j Fv(completes)2049 1585 y(at)25 b(a)g(milestone.)43 b(W)-6 b(e)24 b(de\002ne)i(such)g(a)f(steal)g(attempt)g(to)g(be)h(a)f Fl(thro)n(w)g Fv(if)f(it)2049 1668 y(completes)g(at)f Fu(q)s Fv(')l(s)g(second)h(milestone)g(in)f(a)g(round.)37 b(Such)24 b(a)f(thro)n(w)g(com-)2049 1751 y(pletes)h(in)g(the)g(same)g (round)h(as)f(the)g(round)h(in)f(which)g(the)g(identity)g(of)g(the)2049 1834 y(associated)30 b(random)f(victim)g(is)f(determined.)53 b(This)29 b(property)g(is)f(useful)2049 1917 y(because)20 b(it)d(ensures)i(that)f(the)h(random)g(victim)f(distrib)o(ution)g (cannot)h(be)g(bi-)2049 2000 y(ased)d(by)g(the)g(k)o(ernel.)23 b(The)15 b(follo)n(wing)i(lemma)e(bounds)j(the)d(e)o(x)o(ecution)i (time)2049 2083 y(in)i(terms)g(of)f(the)h(number)h(of)f(thro)n(ws.)2049 2206 y Fw(Lemma)h(5)41 b Fi(Consider)19 b(any)g(multithr)m(eaded)g (computation)g(with)e(work)i Fu(T)4016 2214 y Ft(1)2049 2289 y Fi(being)31 b(e)o(xecuted)f(by)g(the)g(non-bloc)o(king)i(work)e (stealer)-8 b(.)56 b(Then)30 b(the)g(e)o(xe-)2049 2372 y(cution)d(time)f(is)h(at)f(most)h Fu(O)r Fr(\()p Fu(T)2881 2380 y Ft(1)2915 2372 y Fu(=P)3002 2380 y Fq(A)3076 2372 y Fr(+)c Fu(S=P)3293 2380 y Fq(A)3343 2372 y Fr(\))p Fi(,)28 b(wher)m(e)f Fu(S)k Fi(denotes)d(the)2049 2455 y(number)20 b(of)f(thr)m(ows.)2049 2578 y(Pr)m(oof:)74 b Fv(As)15 b(in)h(the)f(proof)h(of)f(Theorem)h(2,)g(we)f(bound)i(the)e (e)o(x)o(ecution)h(time)2049 2676 y(by)23 b(using)h(Equation)f(\(2\))g (and)g(bounding)3168 2616 y Fj(P)3255 2637 y Fq(T)3255 2703 y(i)p Ft(=1)3372 2676 y Fu(p)3411 2684 y Fq(i)3436 2676 y Fv(.)35 b(At)22 b(each)h(round,)i(we)2049 2759 y(collect)j(a)f(tok)o(en)i(from)f(each)h(scheduled)g(process.)50 b(W)-6 b(e)28 b(will)f(sho)n(w)h(that)2049 2842 y(the)23 b(total)h(number)g(of)f(tok)o(ens)i(collected)f(is)f Fu(T)3285 2850 y Ft(1)3340 2842 y Fr(+)d Fu(S)t Fv(.)36 b(Since)24 b(each)g(round)2049 2926 y(consists)h(of)f(at)g(most)h Fr(3)p Fu(C)k Fv(steps,)d(this)e(bound)i(on)f(the)f(number)h(of)g(tok)o (ens)2049 3009 y(implies)19 b(the)g(desired)g(time)g(bound.)2126 3092 y(When)e(a)g(process)h Fu(q)i Fv(is)d(scheduled)h(in)f(a)g(round,) i(it)d(e)o(x)o(ecutes)i(at)f(least)g(tw)o(o)2049 3175 y(milestones,)30 b(and)f(the)f(process)h(places)g(its)e(tok)o(en)i(in)f (one)h(of)f(tw)o(o)g(b)o(uck-)2049 3258 y(ets,)g(as)e(determined)i(by)f (the)f(second)i(milestone.)46 b(There)26 b(are)h(tw)o(o)f(types)2049 3341 y(of)f(milestones.)43 b(If)25 b Fu(q)s Fv(')l(s)g(second)i (milestone)e(marks)h(the)g(occurrence)g(of)g(a)2049 3424 y(node)21 b(e)o(x)o(ecution,)f(then)h Fu(q)h Fv(places)e(its)f(tok)o (en)i(in)f(the)g Fl(w)o(ork)g(b)o(uc)o(k)n(et)p Fv(.)25 b(Clearly)2049 3507 y(there)20 b(are)f(at)g(most)h Fu(T)2611 3515 y Ft(1)2664 3507 y Fv(tok)o(ens)h(in)e(the)h(w)o(ork)g(b)o(uck)o (et.)25 b(The)19 b(second)i(type)f(of)2049 3590 y(milestone)d(marks)f (the)h(completion)g(of)f(a)h(steal)f(attempt,)g(and)h(if)f Fu(q)s Fv(')l(s)g(second)2049 3673 y(milestone)k(is)e(of)i(this)e (type,)i(then)f Fu(q)j Fv(places)e(its)f(tok)o(en)h(in)f(the)g Fl(steal)g(b)o(uc)o(k)n(et)p Fv(.)2049 3756 y(In)24 b(this)g(case,)i (we)e(observ)o(e)i(that)e(the)g(steal)g(attempt)g(is)g(a)g(thro)n(w)-5 b(,)26 b(so)f(there)2049 3839 y(are)19 b(e)o(xactly)g Fu(S)k Fv(tok)o(ens)d(in)f(the)g(steal)g(b)o(uck)o(et.)p 4008 3839 V 2049 4010 a Fw(4.2)74 b(The)19 b(potential)f(function)2049 4120 y Fv(As)28 b(ar)o(gued)g(in)g(Section)f(4.1,)j(it)d(remains)h (only)h(to)e(analyze)i(the)f(number)2049 4203 y(of)f(thro)n(ws.)49 b(W)-6 b(e)27 b(perform)g(this)g(analysis)h(using)g(an)g(amortization)g (ar)o(gu-)2049 4286 y(ment)22 b(based)i(on)e(a)h(potential)f(function)h (that)f(decreases)i(as)e(the)g(algorithm)2049 4369 y(progresses.)39 b(Our)24 b(high-le)n(v)o(el)g(strate)o(gy)g(is)g(to)f(di)n(vide)i(the)f (e)o(x)o(ecution)h(into)2049 4452 y(phases)e(and)g(sho)n(w)f(that)g (the)g(potential)g(decreases)h(by)g(at)e(least)h(a)g(constant)2049 4535 y(fraction)d(in)g(each)g(phase)h(with)f(constant)g(probability)-5 b(.)2126 4618 y(W)f(e)16 b(de\002ne)h(the)f(potential)h(function)g(in)f (terms)h(of)f(node)i(weights.)k(Recall)2049 4701 y(that)15 b(each)g(node)h Fu(u)f Fv(has)g(a)g(weight)f Fu(w)r Fr(\()p Fu(u)p Fr(\))22 b(=)f Fu(T)3234 4709 y Fs(1)3300 4701 y Fm(\000)q Fu(d)p Fr(\()p Fu(u)p Fr(\))p Fv(,)15 b(where)g Fu(d)p Fr(\()p Fu(u)p Fr(\))f Fv(is)h(the)2049 4784 y(depth)h(of)e (node)i Fu(u)f Fv(in)g(the)g(enabling)h(tree.)21 b(At)14 b(an)o(y)i(gi)n(v)o(en)f(round)h Fu(i)p Fv(,)g(we)e(de\002ne)2049 4867 y(the)30 b(potential)g(by)g(assigning)h(potential)f(to)f(each)i (ready)f(node.)56 b(Let)30 b Fu(R)4024 4875 y Fq(i)2049 4950 y Fv(denote)22 b(the)f(set)g(of)g(ready)h(nodes)g(at)f(the)g(be)o (ginning)i(of)e(round)h Fu(i)p Fv(.)30 b(A)21 b(ready)2049 5033 y(node)27 b(is)f(either)g(assigned)h(to)f(a)g(process)h(or)f(it)f (is)h(in)g(the)g(deque)h(of)f(some)2049 5116 y(process.)52 b(F)o(or)28 b(each)h(ready)g(node)g Fu(u)f Fv(in)g Fu(R)3222 5124 y Fq(i)3249 5116 y Fv(,)i(we)e(de\002ne)h(the)f(associated)2049 5199 y(potential)19 b Fu(\036)2375 5207 y Fq(i)2401 5199 y Fr(\()p Fu(u)p Fr(\))g Fv(as)2413 5386 y Fu(\036)2459 5394 y Fq(i)2485 5386 y Fr(\()p Fu(u)p Fr(\))j(=)2692 5271 y Fj(\032)2795 5343 y Fr(3)2833 5311 y Ft(2)p Fq(w)q Ft(\()p Fq(u)p Ft(\))p Fs(\000)p Ft(1)3160 5343 y Fv(if)d Fu(u)g Fv(is)f(assigned;)2795 5437 y Fr(3)2833 5405 y Ft(2)p Fq(w)q Ft(\()p Fq(u)p Ft(\))3160 5437 y Fv(otherwise.)1929 5679 y Fw(6)p eop %%Page: 7 7 7 6 bop -150 -75 a Fv(Then)19 b(the)g(potential)g(at)g(round)h Fu(i)f Fv(is)g(de\002ned)g(as)569 87 y Fr(\010)624 95 y Fq(i)672 87 y Fr(=)768 10 y Fj(X)753 185 y Fq(u)p Fs(2)p Fq(R)878 196 y Fc(i)916 87 y Fu(\036)962 95 y Fq(i)988 87 y Fr(\()p Fu(u)p Fr(\))g Fu(:)-150 316 y Fv(When)f(e)o(x)o(ecution)h (be)o(gins,)g(the)f(only)h(ready)g(node)g(is)f(the)g(root)g(node)h (which)-150 399 y(has)25 b(weight)h Fu(T)248 407 y Fs(1)337 399 y Fv(and)g(is)f(assigned)h(to)f(some)g(process,)i(so)f(we)f(start)f (with)-150 482 y Fr(\010)-95 490 y Ft(0)-20 482 y Fr(=)40 b(3)118 450 y Ft(2)p Fq(T)184 458 y Fb(1)246 450 y Fs(\000)p Ft(1)328 482 y Fv(.)53 b(When)29 b(e)o(x)o(ecution)g(terminates,)i (there)e(are)g(no)g(ready)-150 565 y(nodes,)20 b(so)f(the)g(\002nal)f (potential)h(is)g Fr(0)p Fv(.)-73 648 y(Throughout)i(the)e(e)o(x)o (ecution,)i(the)e(potential)h(ne)n(v)o(er)g(increases.)25 b(That)19 b(is,)-150 731 y(for)j(each)g(round)h Fu(i)p Fv(,)f(we)g(ha)o(v)o(e)g Fr(\010)704 739 y Fq(i)p Ft(+1)834 731 y Fm(\024)27 b Fr(\010)976 739 y Fq(i)1002 731 y Fv(.)32 b(The)21 b(w)o(ork)i(stealer)e(performs)-150 814 y(only)k(tw)o(o)g(actions)g(that)f(may)h(change)h(the)f(potential,) h(and)f(both)g(of)g(them)-150 897 y(decrease)i(the)f(potential.)45 b(The)26 b(\002rst)f(action)i(that)f(changes)h(the)f(potential)-150 980 y(is)f(the)g(remo)o(v)n(al)g(of)g(a)g(node)h Fu(u)f Fv(from)g(a)g(deque)i(when)e Fu(u)g Fv(is)g(assigned)h(to)f(a)-150 1063 y(process)g(\(Lines)f(7)g(and)h(10)g(of)f(the)g(scheduling)i (loop\).)39 b(In)24 b(this)g(case,)i(the)-150 1157 y(potential)c (decreases)h(by)g Fu(\036)584 1165 y Fq(i)610 1157 y Fr(\()p Fu(u)p Fr(\))c Fm(\000)h Fu(\036)859 1165 y Fq(i)p Ft(+1)962 1157 y Fr(\()p Fu(u)p Fr(\))27 b(=)g(3)1218 1125 y Ft(2)p Fq(w)q Ft(\()p Fq(u)p Ft(\))1403 1157 y Fm(\000)19 b Fr(3)1520 1125 y Ft(2)p Fq(w)q Ft(\()p Fq(u)p Ft(\))p Fs(\000)p Ft(1)1791 1157 y Fr(=)-150 1240 y(\(2)p Fu(=)p Fr(3\))p Fu(\036)70 1248 y Fq(i)97 1240 y Fr(\()p Fu(u)p Fr(\))p Fv(,)i(which)g(is)g(positi)n(v)o(e.)30 b(The)21 b(second)h(action)f(that)g(changes)i(the)-150 1323 y(potential)i(is)f(the)g(e)o(x)o(ecution)i(of)e(an)h(assigned)h (node)f Fu(u)p Fv(.)40 b(If)24 b(the)h(e)o(x)o(ecution)-150 1406 y(of)e Fu(u)f Fv(enables)i(tw)o(o)f(children,)h(then)f(one)g (child)g Fu(x)f Fv(is)h(placed)g(in)g(the)g(deque)-150 1489 y(and)29 b(the)g(other)h Fu(y)h Fv(becomes)f(the)f(assigned)h (node.)53 b(Thus,)32 b(the)c(potential)-150 1572 y(decreases)20 b(by)134 1708 y Fu(\036)180 1716 y Fq(i)206 1708 y Fr(\()p Fu(u)p Fr(\))d Fm(\000)g Fu(\036)450 1716 y Fq(i)p Ft(+1)553 1708 y Fr(\()p Fu(x)p Fr(\))f Fm(\000)h Fu(\036)796 1716 y Fq(i)p Ft(+1)899 1708 y Fr(\()p Fu(y)s Fr(\))217 1833 y(=)82 b(3)397 1797 y Ft(2)p Fq(w)q Ft(\()p Fq(u)p Ft(\))p Fs(\000)p Ft(1)658 1833 y Fm(\000)17 b Fr(3)773 1797 y Ft(2)p Fq(w)q Ft(\()p Fq(x)p Ft(\))954 1833 y Fm(\000)g Fr(3)1069 1797 y Ft(2)p Fq(w)q Ft(\()p Fq(y)r Ft(\))p Fs(\000)p Ft(1)217 1941 y Fr(=)82 b(3)397 1905 y Ft(2)p Fq(w)q Ft(\()p Fq(u)p Ft(\))p Fs(\000)p Ft(1)658 1941 y Fm(\000)17 b Fr(3)773 1905 y Ft(2\()p Fq(w)q Ft(\()p Fq(u)p Ft(\))p Fs(\000)p Ft(1\))1082 1941 y Fm(\000)g Fr(3)1197 1905 y Ft(2\()p Fq(w)q Ft(\()p Fq(u)p Ft(\))p Fs(\000)p Ft(1\))p Fs(\000)p Ft(1)217 2077 y Fr(=)82 b(3)397 2041 y Ft(2)p Fq(w)q Ft(\()p Fq(u)p Ft(\))p Fs(\000)p Ft(1)654 1987 y Fj(\020)704 2077 y Fr(1)17 b Fm(\000)846 2029 y Fr(1)p 846 2060 39 4 v 846 2128 a(3)911 2077 y Fm(\000)998 2029 y Fr(1)p 998 2060 V 998 2128 a(9)1047 1987 y Fj(\021)217 2263 y Fr(=)369 2215 y(5)p 369 2246 V 369 2314 a(9)418 2263 y Fu(\036)464 2271 y Fq(i)490 2263 y Fr(\()p Fu(u)p Fr(\))h Fu(;)-150 2426 y Fv(which)g(is)f(positi)n (v)o(e.)23 b(If)17 b(the)g(e)o(x)o(ecution)h(of)g Fu(u)f Fv(enables)h(fe)n(wer)g(than)g(tw)o(o)f(chil-)-150 2509 y(dren,)f(then)g(the)g(potential)g(decreases)h(e)n(v)o(en)f(more.)22 b(Thus,)16 b(the)g(e)o(x)o(ecution)h(of)-150 2592 y(a)i(node)h Fu(u)f Fv(at)f(round)i Fu(i)f Fv(decreases)h(the)f(potential)g(by)h(at) e(least)h Fr(\(5)p Fu(=)p Fr(9\))p Fu(\036)1676 2600 y Fq(i)1703 2592 y Fr(\()p Fu(u)p Fr(\))p Fv(.)-73 2675 y(T)-6 b(o)27 b(f)o(acilitate)g(the)h(analysis,)i(we)d(partition)h(the) f(potential)h(among)h(the)-150 2758 y(processes)f(and)g(we)g (separately)g(consider)g(the)f(processes)i(whose)f(deque)-150 2841 y(is)22 b(empty)i(and)f(the)g(processes)h(whose)g(deque)g(is)e (non-empty)-5 b(.)36 b(At)23 b(the)g(be-)-150 2924 y(ginning)j(of)f (round)h Fu(i)p Fv(,)h(for)e(an)o(y)g(process)h Fu(q)s Fv(,)g(let)f Fu(R)1193 2932 y Fq(i)1219 2924 y Fr(\()p Fu(q)s Fr(\))g Fv(denote)h(the)f(set)g(of)-150 3007 y(ready)20 b(nodes)g(that)f(are)h(in)f Fu(q)s Fv(')l(s)g(deque)h(along)g(with)f (the)h(ready)g(node,)g(if)e(an)o(y)-5 b(,)-150 3090 y(that)21 b(is)g(assigned)h(to)f Fu(q)s Fv(.)30 b(W)-6 b(e)21 b(say)g(that)g (each)h(node)g Fu(u)f Fv(in)g Fu(R)1395 3098 y Fq(i)1422 3090 y Fr(\()p Fu(q)s Fr(\))f Fi(belongs)j Fv(to)-150 3173 y(process)d Fu(q)s Fv(.)j(Then)c(the)g(potential)g(that)g(we)g (associate)g(with)g Fu(q)i Fv(is)481 3336 y Fr(\010)536 3344 y Fq(i)563 3336 y Fr(\()p Fu(q)s Fr(\))g(=)817 3259 y Fj(X)762 3435 y Fq(u)p Fs(2)p Fq(R)887 3446 y Fc(i)913 3435 y Ft(\()p Fq(q)r Ft(\))1004 3336 y Fu(\036)1050 3344 y Fq(i)1076 3336 y Fr(\()p Fu(u)p Fr(\))d Fu(:)-150 3568 y Fv(In)e(addition,)h(let)e Fu(A)356 3576 y Fq(i)398 3568 y Fv(denote)i(the)f(set)f(of)h(processes)h(whose)g(deque)g(is)e (empty)-150 3651 y(at)24 b(the)h(be)o(ginning)h(of)e(round)i Fu(i)p Fv(,)f(and)g(let)f Fu(D)1015 3659 y Fq(i)1066 3651 y Fv(denote)h(the)g(set)f(of)h(all)e(other)-150 3734 y(processes.)h(W)-6 b(e)19 b(partition)f(the)h(potential)h Fr(\010)1012 3742 y Fq(i)1057 3734 y Fv(into)f(tw)o(o)g(parts)463 3870 y Fr(\010)518 3878 y Fq(i)566 3870 y Fr(=)i(\010)702 3878 y Fq(i)729 3870 y Fr(\()p Fu(A)817 3878 y Fq(i)843 3870 y Fr(\))c(+)g(\010)1022 3878 y Fq(i)1048 3870 y Fr(\()p Fu(D)1141 3878 y Fq(i)1168 3870 y Fr(\))i Fu(;)-150 4006 y Fv(where)-41 4153 y Fr(\010)14 4161 y Fq(i)41 4153 y Fr(\()p Fu(A)129 4161 y Fq(i)155 4153 y Fr(\))i(=)299 4076 y Fj(X)287 4251 y Fq(q)r Fs(2)p Fq(A)405 4262 y Fc(i)444 4153 y Fr(\010)499 4161 y Fq(i)526 4153 y Fr(\()p Fu(q)s Fr(\))149 b Fv(and)h Fr(\010)1084 4161 y Fq(i)1111 4153 y Fr(\()p Fu(D)1204 4161 y Fq(i)1231 4153 y Fr(\))21 b(=)1377 4076 y Fj(X)1363 4251 y Fq(q)r Fs(2)p Fq(D)1485 4262 y Fc(i)1523 4153 y Fr(\010)1578 4161 y Fq(i)1605 4153 y Fr(\()p Fu(q)s Fr(\))e Fu(;)-150 4382 y Fv(and)h(we)e(analyze)i (the)f(tw)o(o)g(parts)g(separately)-5 b(.)-73 4465 y(W)f(e)15 b(no)n(w)h(wish)g(to)g(sho)n(w)g(that)g(whene)n(v)o(er)h Fu(P)26 b Fv(or)16 b(more)g(thro)n(ws)g(tak)o(e)g(place)-150 4548 y(o)o(v)o(er)29 b(a)f(sequence)i(of)e(rounds,)k(the)c(potential)h (decreases)g(by)g(a)f(constant)-150 4631 y(fraction)18 b(with)g(constant)h(probability)-5 b(.)24 b(This)18 b(claim)g(will)f (be)h(pro)o(v)o(ed)i(in)e(tw)o(o)-150 4714 y(stages.)42 b(First,)25 b(we)g(sho)n(w)g(that)g Fr(3)p Fu(=)p Fr(4)h Fv(of)f(the)g(potential)h Fr(\010)1389 4722 y Fq(i)1415 4714 y Fr(\()p Fu(D)1508 4722 y Fq(i)1535 4714 y Fr(\))f Fv(is)f(sitting)-150 4797 y(\223e)o(xposed\224)29 b(at)d(the)h(top)g (of)f(the)h(deques)h(where)f(it)f(is)g(accessible)h(to)g(steal)-150 4880 y(attempts.)j(Second,)22 b(we)f(use)g(a)g(\223balls)g(and)h (weighted)g(bins\224)f(ar)o(gument)h(to)-150 4963 y(sho)n(w)c(that)g Fr(1)p Fu(=)p Fr(2)h Fv(of)e(this)h(e)o(xposed)h(potential)f(is)f (stolen)h(with)f Fr(1)p Fu(=)p Fr(4)i Fv(probabil-)-150 5046 y(ity)-5 b(.)23 b(The)c(potential)g Fr(\010)436 5054 y Fq(i)463 5046 y Fr(\()p Fu(A)551 5054 y Fq(i)577 5046 y Fr(\))f Fv(is)h(considered)h(separately)-5 b(.)-150 5181 y Fw(Lemma)20 b(6)h(\(T)-6 b(op-Hea)o(vy)17 b(Deques\))39 b Fi(Consider)21 b(any)f(r)m(ound)g Fu(i)g Fi(and)g(any)-150 5264 y(pr)m(ocess)30 b Fu(q)j Fi(in)c Fu(D)321 5272 y Fq(i)348 5264 y Fi(.)55 b(The)30 b(top-most)g(node)h Fu(u)e Fi(in)h Fu(q)s Fi(')m(s)f(deque)i(contrib)o(utes)-150 5347 y(at)c(least)g Fr(3)p Fu(=)p Fr(4)g Fi(of)g(the)g(potential)g (associated)h(with)f Fu(q)s Fi(.)46 b(That)27 b(is,)h(we)f(have)-150 5430 y Fu(\036)-104 5438 y Fq(i)-78 5430 y Fr(\()p Fu(u)p Fr(\))21 b Fm(\025)g Fr(\(3)p Fu(=)p Fr(4\)\010)357 5438 y Fq(i)385 5430 y Fr(\()p Fu(q)s Fr(\))p Fi(.)2049 -75 y(Pr)m(oof:)74 b Fv(This)27 b(lemma)g(follo)n(ws)h(directly)f(from)g (the)g(Structural)g(Lemma)2049 8 y(\(Lemma)e(3\),)g(and)h(in)e (particular)h(from)g(Corollary)g(4.)40 b(Suppose)26 b(the)f(top-)2049 91 y(most)g(node)i Fu(u)e Fv(in)g Fu(q)s Fv(')l(s)g(deque)i(is)e(also)g (the)h(only)g(node)g(in)f Fu(q)s Fv(')l(s)g(deque,)j(and)2049 174 y(in)22 b(addition,)h Fu(u)f Fv(has)g(the)g(same)g(designated)i (parent)e(as)g(the)g(node)h Fu(y)h Fv(that)e(is)2049 257 y(assigned)e(to)f Fu(q)s Fv(.)k(In)c(this)f(case,)h(we)g(ha)o(v)o (e)2558 414 y Fr(\010)2613 422 y Fq(i)2640 414 y Fr(\()p Fu(q)s Fr(\))82 b(=)h Fu(\036)3008 422 y Fq(i)3034 414 y Fr(\()p Fu(u)p Fr(\))17 b(+)g Fu(\036)3278 422 y Fq(i)3304 414 y Fr(\()p Fu(y)s Fr(\))2819 539 y(=)83 b(3)3000 503 y Ft(2)p Fq(w)q Ft(\()p Fq(u)p Ft(\))3183 539 y Fr(+)16 b(3)3297 503 y Ft(2)p Fq(w)q Ft(\()p Fq(y)r Ft(\))p Fs(\000)p Ft(1)2819 647 y Fr(=)83 b(3)3000 611 y Ft(2)p Fq(w)q Ft(\()p Fq(u)p Ft(\))3183 647 y Fr(+)16 b(3)3297 611 y Ft(2)p Fq(w)q Ft(\()p Fq(u)p Ft(\))p Fs(\000)p Ft(1)2819 784 y Fr(=)2972 735 y(4)p 2972 767 V 2972 834 a(3)3020 784 y Fu(\036)3066 792 y Fq(i)3092 784 y Fr(\()p Fu(u)p Fr(\))j Fu(:)2049 968 y Fv(In)e(all)f(other)i(cases,)f Fu(u)g Fv(contrib)o(utes)g(an)h(e)n(v)o(en)f(lar)o(ger)g(fraction)g(of) g(the)g(poten-)2049 1051 y(tial)h(associated)i(with)e Fu(q)s Fv(.)p 4008 1051 42 42 v 2049 1243 a Fw(Lemma)i(7)h(\(Balls)e (and)h(W)m(eighted)e(Bins\))40 b Fi(Suppose)k(that)e Fu(P)53 b Fi(balls)2049 1326 y(ar)m(e)30 b(thr)m(own)g(independently)i (and)e(uniformly)g(at)g(r)o(andom)h(into)f Fu(P)40 b Fi(bins,)2049 1409 y(wher)m(e)20 b(for)g Fu(i)i Fr(=)h(1)p Fu(;)13 b(:)g(:)g(:)h(;)f(P)e Fi(,)19 b(bin)g Fu(i)h Fi(has)g(a)g(weight)f Fu(W)3424 1417 y Fq(i)3450 1409 y Fi(.)25 b(The)19 b(total)h(weight)f(is)2049 1507 y Fu(W)32 b Fr(=)2235 1446 y Fj(P)2322 1467 y Fq(P)2322 1534 y(i)p Ft(=1)2438 1507 y Fu(W)2511 1515 y Fq(i)2537 1507 y Fi(.)23 b(F)-8 b(or)19 b(eac)o(h)h(bin)f Fu(i)p Fi(,)f(de\002ne)j(the)e(r)o(andom)h(variable)f Fu(X)3926 1515 y Fq(i)3972 1507 y Fi(as)2390 1734 y Fu(X)2453 1742 y Fq(i)2501 1734 y Fr(=)2582 1619 y Fj(\032)2686 1691 y Fu(W)2759 1699 y Fq(i)2868 1691 y Fi(if)f(some)h(ball)g(lands)h(in)e (bin)i Fu(i)p Fi(;)2686 1774 y Fr(0)144 b Fi(otherwise)o(.)2049 1971 y(If)18 b Fu(X)28 b Fr(=)2285 1911 y Fj(P)2373 1932 y Fq(P)2373 1998 y(i)p Ft(=1)2489 1971 y Fu(X)2552 1979 y Fq(i)2579 1971 y Fi(,)18 b(then)i(for)f(any)g Fu(\014)k Fi(in)c(the)g(r)o(ang)o(e)h Fr(0)i Fu(<)f(\014)26 b(<)21 b Fr(1)p Fi(,)e(we)g(have)2049 2063 y Fr(Pr)13 b Fm(f)p Fu(X)28 b Fm(\025)21 b Fu(\014)t(W)11 b Fm(g)21 b Fu(>)g Fr(1)d Fm(\000)f Fr(1)p Fu(=)p Fr(\(\(1)h Fm(\000)e Fu(\014)t Fr(\))p Fu(e)p Fr(\))p Fi(.)2049 2221 y(Pr)m(oof:)74 b Fv(F)o(or)21 b(each)g(bin)g Fu(i)p Fv(,)g(consider)h(the)f(random)g (v)n(ariable)h Fu(W)3745 2229 y Fq(i)3789 2221 y Fm(\000)c Fu(X)3930 2229 y Fq(i)3957 2221 y Fv(.)28 b(It)2049 2304 y(tak)o(es)21 b(on)f(the)g(v)n(alue)h Fu(W)2680 2312 y Fq(i)2726 2304 y Fv(when)g(no)f(ball)g(lands)h(in)f(bin)g Fu(i)p Fv(,)g(and)h(otherwise)f(it)2049 2387 y(is)f Fr(0)p Fv(.)k(Thus,)c(we)f(ha)o(v)o(e)2498 2590 y Fr(E)13 b([)q Fu(W)2658 2598 y Fq(i)2701 2590 y Fm(\000)j Fu(X)2840 2598 y Fq(i)2867 2590 y Fr(])83 b(=)g Fu(W)3187 2598 y Fq(i)3226 2500 y Fj(\020)3275 2590 y Fr(1)18 b Fm(\000)3428 2542 y Fr(1)p 3418 2573 60 4 v 3418 2641 a Fu(P)3487 2500 y Fj(\021)3537 2514 y Fq(P)2971 2736 y Fm(\024)83 b Fu(W)3187 2744 y Fq(i)3213 2736 y Fu(=e)19 b(:)2049 2893 y Fv(It)h(follo)n(ws)h(that)g Fr(E)13 b([)p Fu(W)28 b Fm(\000)16 b Fu(X)6 b Fr(])26 b Fm(\024)f Fu(W)r(=e)p Fv(.)j(From)21 b(Mark)o(o)o(v')l(s)h(Inequality)g(we)2049 2976 y(ha)o(v)o(e)d(that)2370 3164 y Fr(Pr)13 b Fm(f)p Fu(W)28 b Fm(\000)16 b Fu(X)28 b(>)21 b Fr(\(1)c Fm(\000)g Fu(\014)t Fr(\))p Fu(W)11 b Fm(g)21 b Fu(<)3325 3115 y Fr(E)13 b([)q Fu(W)27 b Fm(\000)17 b Fu(X)6 b Fr(])p 3325 3147 355 4 v 3341 3215 a(\(1)17 b Fm(\000)g Fu(\014)t Fr(\))p Fu(W)3708 3164 y(:)2049 3372 y Fv(Thus,)i(we)g(conclude)h Fr(Pr)13 b Fm(f)q Fu(X)27 b(<)21 b(\014)t(W)11 b Fm(g)21 b Fu(<)g Fr(1)p Fu(=)p Fr(\(\(1)d Fm(\000)f Fu(\014)t Fr(\))p Fu(e)p Fr(\))p Fv(.)p 4008 3372 42 42 v 2126 3489 a(W)-6 b(e)26 b(no)n(w)i(sho)n(w)f(that)g(whene)n(v)o(er)h Fu(P)37 b Fv(or)27 b(more)g(thro)n(ws)g(occur)m(,)i(the)e(po-)2049 3572 y(tential)i(decreases)i(by)f(a)f(constant)h(fraction)g(of)f Fr(\010)3433 3580 y Fq(i)3460 3572 y Fr(\()p Fu(D)3553 3580 y Fq(i)3580 3572 y Fr(\))g Fv(with)g(constant)2049 3655 y(probability)-5 b(.)2049 3813 y Fw(Lemma)20 b(8)41 b Fi(Consider)24 b(any)g(r)m(ound)g Fu(i)f Fi(and)h(any)g(later)f(r)m (ound)h Fu(j)j Fi(suc)o(h)d(that)2049 3896 y(at)16 b(least)h Fu(P)27 b Fi(thr)m(ows)16 b(occur)i(at)e(r)m(ounds)i(fr)m(om)e Fu(i)g Fi(\(inclusive\))h(to)f Fu(j)21 b Fi(\(e)o(xclusive\).)2049 3979 y(Then)e(we)g(have)2518 4160 y Fr(Pr)2614 4069 y Fj(n)2669 4160 y Fr(\010)2724 4168 y Fq(i)2768 4160 y Fm(\000)e Fr(\010)2900 4168 y Fq(j)2954 4160 y Fm(\025)3045 4111 y Fr(1)p 3045 4142 39 4 v 3045 4210 a(4)3093 4160 y(\010)3148 4168 y Fq(i)3175 4160 y Fr(\()p Fu(D)3268 4168 y Fq(i)3295 4160 y Fr(\))3325 4069 y Fj(o)3401 4160 y Fu(>)3492 4111 y Fr(1)p 3492 4142 V 3492 4210 a(4)3559 4160 y Fu(:)2049 4351 y Fi(Pr)m(oof:)74 b Fv(W)-6 b(e)17 b(\002rst)g(use)h(the)f(T)-6 b(op-Hea)o(vy)19 b(Deques)f(Lemma)f(to)h (sho)n(w)g(that)f(if)2049 4434 y(a)g(thro)n(w)g(tar)o(gets)g(a)f (process)i(with)f(a)g(non-empty)h(deque)g(as)f(its)g(victim,)f(then) 2049 4517 y(the)26 b(potential)h(decreases)g(by)f(at)g(least)g Fr(1)p Fu(=)p Fr(2)h Fv(of)f(the)g(potential)h(associated)2049 4600 y(with)g(that)g(victim)f(process.)49 b(W)-6 b(e)26 b(then)i(consider)g(the)f Fu(P)38 b Fv(thro)n(ws)27 b(as)g(ball)2049 4683 y(tosses,)i(and)e(we)f(use)h(the)g(Balls)f(and)h(W)-6 b(eighted)27 b(Bins)g(Lemma)g(to)f(sho)n(w)2049 4766 y(that)17 b(with)g(more)g(than)h Fr(1)p Fu(=)p Fr(4)g Fv(probability)-5 b(,)18 b(the)g(total)f(potential)g(decreases)h(by) 2049 4849 y Fr(1)p Fu(=)p Fr(4)h Fv(of)f(the)h(potential)f(associated)h (with)f(all)g(processes)h(with)f(a)g(non-empty)2049 4932 y(deque.)2126 5015 y(Consider)25 b(an)o(y)f(process)h Fu(q)i Fv(in)d Fu(D)3004 5023 y Fq(i)3031 5015 y Fv(,)h(and)g(let)e Fu(u)h Fv(denote)h(the)g(node)g(at)f(the)2049 5098 y(top)g(of)f Fu(q)s Fv(')l(s)g(deque)h(at)f(round)h Fu(i)p Fv(.)37 b(From)22 b(the)i(T)-6 b(op-Hea)o(vy)24 b(Deques)g(Lemma)2049 5181 y(\(Lemma)29 b(6\),)j(we)d(ha)o(v)o(e)h Fu(\036)2774 5189 y Fq(i)2800 5181 y Fr(\()p Fu(u)p Fr(\))41 b Fm(\025)g Fr(\(3)p Fu(=)p Fr(4\)\010)3275 5189 y Fq(i)3302 5181 y Fr(\()p Fu(q)s Fr(\))p Fv(.)54 b(No)n(w)-5 b(,)32 b(consider)e(an)o (y)2049 5264 y(thro)n(w)e(that)g(occurs)g(at)g(a)f(round)i Fu(k)41 b Fm(\025)d Fu(i)p Fv(,)29 b(and)g(suppose)g(this)f(thro)n(w)g (tar)o(-)2049 5347 y(gets)36 b(process)g Fu(q)i Fv(as)e(the)g(victim.) 72 b(W)-6 b(e)36 b(consider)g(tw)o(o)g(cases.)73 b(In)36 b(the)2049 5430 y(\002rst)27 b(case,)j(the)e(thro)n(w)g(is)f (successful)i(with)e Fk(popTop)i Fv(returning)f(a)g(node.)1929 5679 y Fw(7)p eop %%Page: 8 8 8 7 bop -150 -75 a Fv(If)31 b(the)h(returned)h(node)g(is)e(node)i Fu(u)p Fv(,)i(then)d(after)g(round)h Fu(k)r Fv(,)i(node)e Fu(u)e Fv(has)-150 8 y(been)f(assigned)h(and)f(possibly)h(already)f(e)o (x)o(ecuted.)57 b(At)29 b(the)g(v)o(ery)h(least,)-150 91 y(node)f Fu(u)g Fv(has)f(been)h(assigned,)j(and)d(the)f(potential)h (has)g(decreased)g(by)g(at)-150 174 y(least)23 b Fr(\(2)p Fu(=)p Fr(3\))p Fu(\036)230 182 y Fq(i)257 174 y Fr(\()p Fu(u)p Fr(\))p Fv(.)35 b(If)23 b(the)g(returned)g(node)h(is)f(not)g (node)i Fu(u)p Fv(,)e(then)h(node)g Fu(u)-150 257 y Fv(has)i(already)h (been)f(assigned)h(and)g(possibly)g(already)f(e)o(x)o(ecuted.)45 b(Again,)-150 340 y(the)29 b(potential)g(has)h(decreased)g(by)f(at)g (least)g Fr(\(2)p Fu(=)p Fr(3\))p Fu(\036)1284 348 y Fq(i)1311 340 y Fr(\()p Fu(u)p Fr(\))p Fv(.)52 b(In)29 b(the)g(other)-150 423 y(case,)22 b(the)f(thro)n(w)g(is)g(unsuccessful) i(with)e Fk(popTop)h Fv(returning)g(either)f Fk(NULL)-150 506 y Fv(or)28 b Fk(ABORT)p Fv(.)h(If)e Fk(popTop)i Fv(returns)g Fk(NULL)p Fv(,)f(then)g Fu(q)s Fv(')l(s)g(deque)h(w)o(as)f(empty)h(at) -150 589 y(some)f(time)g(during)h(round)g Fu(k)r Fv(,)g(so)f(node)h Fu(u)f Fv(has)g(already)h(been)g(assigned)-150 672 y(and)e(possibly)h (e)o(x)o(ecuted.)47 b(Y)-7 b(et)26 b(again,)j(the)d(potential)h(has)g (decreased)h(by)-150 755 y(at)23 b(least)h Fr(\(2)p Fu(=)p Fr(3\))p Fu(\036)308 763 y Fq(i)335 755 y Fr(\()p Fu(u)p Fr(\))p Fv(.)36 b(Finally)-5 b(,)24 b(if)g Fk(popTop)g Fv(returns)g Fk(ABORT)p Fv(,)g(then)g(some)-150 838 y(other)33 b Fk(popTop)h Fv(or)e Fk(popBottom)j Fv(returned)e(a)g(top-most)g(node) h(at)e(some)-150 921 y(time)22 b(during)i(round)f Fu(k)r Fv(,)h(and)f(after)f(round)i Fu(k)r Fv(,)f(node)h Fu(u)e Fv(has)h(been)h(assigned)-150 1004 y(and)j(possibly)g(already)g(e)o(x)o (ecuted.)46 b(In)26 b(all)g(cases,)i(the)e(potential)h(has)g(de-)-150 1087 y(creased)f(by)h(at)e(least)g Fr(\(2)p Fu(=)p Fr(3\))p Fu(\036)661 1095 y Fq(i)688 1087 y Fr(\()p Fu(u)p Fr(\))p Fv(.)43 b(Thus,)27 b(if)e(a)h(thief)f(tar)o(gets)h(process)g Fu(q)-150 1170 y Fv(as)c(the)g(victim)f(at)h(a)g(round)g Fu(k)30 b Fm(\025)c Fu(i)p Fv(,)c(then)h(the)e(potential)i(drops)f(by)h (at)e(least)-150 1253 y Fr(\(2)p Fu(=)p Fr(3\))p Fu(\036)70 1261 y Fq(i)97 1253 y Fr(\()p Fu(u)p Fr(\))g Fm(\025)g Fr(\(2)p Fu(=)p Fr(3\)\(3)p Fu(=)p Fr(4\)\010)706 1261 y Fq(i)735 1253 y Fr(\()p Fu(q)s Fr(\))g(=)g(\(1)p Fu(=)p Fr(2\)\010)1163 1261 y Fq(i)1191 1253 y Fr(\()p Fu(q)s Fr(\))p Fv(.)-73 1336 y(W)-6 b(e)29 b(no)n(w)h(consider)h(all)e Fu(P)40 b Fv(processes)31 b(and)g Fu(P)40 b Fv(thro)n(ws)30 b(that)g(occur)g(at)-150 1419 y(or)39 b(after)f(round)h Fu(i)p Fv(.)82 b(F)o(or)38 b(each)h(process)h Fu(q)h Fv(in)d Fu(D)1278 1427 y Fq(i)1305 1419 y Fv(,)43 b(if)38 b(one)h(or)f(more)-150 1502 y(of)c(the)g Fu(P)45 b Fv(thro)n(ws)35 b(tar)o(gets)e Fu(q)k Fv(as)e(the)f(victim,)j(then)e(the)f(potential)h (de-)-150 1585 y(creases)27 b(by)g Fr(\(1)p Fu(=)p Fr(2\)\010)422 1593 y Fq(i)450 1585 y Fr(\()p Fu(q)s Fr(\))p Fv(.)45 b(If)26 b(we)g(think)h(of)f(each)h(thro)n(w)g(as)f(a)h(ball)f(toss,) -150 1668 y(then)f(we)f(ha)o(v)o(e)h(an)g(instance)g(of)f(the)h(Balls)f (and)h(W)-6 b(eighted)24 b(Bins)h(Lemma)-150 1751 y(\(Lemma)34 b(7\).)69 b(F)o(or)34 b(each)h(process)g Fu(q)i Fv(in)d Fu(D)1079 1759 y Fq(i)1106 1751 y Fv(,)k(we)c(assign)h(it)e(a)i(weight) -150 1834 y Fu(W)-77 1842 y Fq(q)-2 1834 y Fr(=)42 b(\(1)p Fu(=)p Fr(2\)\010)329 1842 y Fq(i)356 1834 y Fr(\()p Fu(q)s Fr(\))p Fv(,)32 b(and)e(for)f(each)h(other)g(process)g Fu(q)j Fv(in)c Fu(A)1571 1842 y Fq(i)1597 1834 y Fv(,)j(we)d(as-)-150 1917 y(sign)20 b(it)f(a)h(weight)g Fu(W)404 1925 y Fq(q)461 1917 y Fr(=)j(0)p Fv(.)j(The)20 b(weights)g(sum)g(to)g Fu(W)33 b Fr(=)23 b(\(1)p Fu(=)p Fr(2\)\010)1655 1925 y Fq(i)1683 1917 y Fr(\()p Fu(D)1776 1925 y Fq(i)1802 1917 y Fr(\))p Fv(.)-150 2000 y(Using)k Fu(\014)41 b Fr(=)36 b(1)p Fu(=)p Fr(2)28 b Fv(in)e(Lemma)h(7,)i(we)e(conclude)h (that)f(the)f(potential)i(de-)-150 2083 y(creases)f(by)g(at)f(least)g Fu(\014)t(W)46 b Fr(=)36 b(\(1)p Fu(=)p Fr(4\)\010)927 2091 y Fq(i)955 2083 y Fr(\()p Fu(D)1048 2091 y Fq(i)1074 2083 y Fr(\))26 b Fv(with)g(probability)i(greater)-150 2166 y(than)19 b Fr(1)f Fm(\000)f Fr(1)p Fu(=)p Fr(\(\(1)h Fm(\000)e Fu(\014)t Fr(\))p Fu(e)p Fr(\))21 b Fu(>)g Fr(1)p Fu(=)p Fr(4)p Fv(.)p 1809 2166 42 42 v -150 2343 a Fw(4.3)74 b(Anal)o(ysis)18 b(f)o(or)h(dedicated)f(en)m(vir)o(onments) -150 2453 y Fv(In)32 b(this)f(section)h(we)g(analyze)g(the)g (performance)h(of)f(the)g(non-blocking)-150 2536 y(w)o(ork)38 b(stealer)g(in)g(dedicated)g(en)m(vironments.)82 b(In)38 b(a)f(dedicated)i(\(non-)-150 2619 y(multiprogrammed\))26 b(en)m(vironment,)i(all)c Fu(P)35 b Fv(processes)26 b(are)f(scheduled)i (in)-150 2702 y(each)20 b(round,)f(so)g(we)g(ha)o(v)o(e)g Fu(P)614 2710 y Fq(A)686 2702 y Fr(=)i Fu(P)11 b Fv(.)-150 2862 y Fw(Theorem)19 b(9)41 b Fi(Consider)28 b(any)f(multithr)m(eaded)h (computation)g(with)e(work)-150 2945 y Fu(T)-105 2953 y Ft(1)-53 2945 y Fi(and)19 b(critical-path)f(length)g Fu(T)717 2953 y Fs(1)800 2945 y Fi(being)h(e)o(xecuted)f(by)g(the)g (non-bloc)o(king)-150 3028 y(work)30 b(stealer)f(with)g Fu(P)40 b Fi(pr)m(ocesses)31 b(in)e(a)h(dedicated)g(en)m(vir)m(onment.) 56 b(The)-150 3111 y(e)o(xpected)19 b(e)o(xecution)g(time)e(is)h Fu(O)r Fr(\()p Fu(T)780 3119 y Ft(1)815 3111 y Fu(=P)26 b Fr(+)14 b Fu(T)1047 3119 y Fs(1)1112 3111 y Fr(\))p Fi(.)22 b(Mor)m(eo)o(ver)-8 b(,)20 b(for)e(any)h Fu(")i(>)-150 3194 y Fr(0)p Fi(,)d(the)g(e)o(xecution)g(time)f(is)g Fu(O)r Fr(\()p Fu(T)684 3202 y Ft(1)719 3194 y Fu(=P)23 b Fr(+)12 b Fu(T)946 3202 y Fs(1)1024 3194 y Fr(+)g(lg)r(\(1)p Fu(=")p Fr(\)\))17 b Fi(with)g(pr)m(obability)-150 3277 y(at)i(least)g Fr(1)e Fm(\000)g Fu(")p Fi(.)-150 3436 y(Pr)m(oof:)74 b Fv(Lemma)21 b(5)g(bounds)i(the)d(e)o(x)o(ecution)i (time)e(in)h(terms)g(of)f(the)h(num-)-150 3519 y(ber)c(of)g(thro)n(ws.) 23 b(W)-6 b(e)16 b(shall)h(pro)o(v)o(e)h(that)f(the)g(e)o(xpected)h (number)g(of)f(thro)n(ws)g(is)-150 3602 y Fu(O)r Fr(\()p Fu(T)-15 3610 y Fs(1)50 3602 y Fu(P)11 b Fr(\))p Fv(,)20 b(and)h(that)f(the)g(number)i(of)e(thro)n(ws)h(is)f Fu(O)r Fr(\(\()p Fu(T)1338 3610 y Fs(1)1421 3602 y Fr(+)e(lg)q(\(1)p Fu(=")p Fr(\)\))p Fu(P)11 b Fr(\))-150 3685 y Fv(with)19 b(probability)g(at)g(least)f Fr(1)g Fm(\000)f Fu(")p Fv(.)-73 3768 y(W)-6 b(e)18 b(analyze)h(the)g(number)g(of)g(thro)n(ws)g (by)g(breaking)h(the)e(e)o(x)o(ecution)i(into)-150 3851 y Fl(phases)h Fv(of)f Fr(\002\()p Fu(P)11 b Fr(\))19 b Fv(thro)n(ws.)28 b(W)-6 b(e)20 b(sho)n(w)h(that)f(with)g(constant)i (probability)-5 b(,)21 b(a)-150 3935 y(phase)c(causes)g(the)g (potential)f(to)g(drop)h(by)g(a)f(constant)i(f)o(actor)m(,)e(and)h (since)g(we)-150 4018 y(kno)n(w)h(that)f(the)g(potential)h(starts)e(at) h Fr(\010)847 4026 y Ft(0)903 4018 y Fr(=)22 b(3)1023 3986 y Ft(2)p Fq(T)1089 3994 y Fb(1)1150 3986 y Fs(\000)p Ft(1)1250 4018 y Fv(and)c(ends)g(at)e(zero,)i(we)-150 4101 y(can)24 b(use)f(this)g(f)o(act)h(to)f(analyze)h(the)g(number)g (of)f(phases.)37 b(The)24 b(\002rst)e(phase)-150 4184 y(be)o(gins)30 b(at)e(round)j Fu(t)387 4192 y Ft(1)461 4184 y Fr(=)41 b(1)29 b Fv(and)g(ends)h(at)f(the)g(\002rst)f(round)i Fu(t)1510 4152 y Fs(0)1510 4197 y Ft(1)1573 4184 y Fv(such)g(that)-150 4267 y(at)23 b(least)g Fu(P)34 b Fv(thro)n(ws)24 b(occur)g(during)g (the)g(interv)n(al)f(of)h(rounds)g Fr([)p Fu(t)1527 4275 y Ft(1)1562 4267 y Fu(;)13 b(t)1624 4235 y Fs(0)1624 4280 y Ft(1)1658 4267 y Fr(])p Fv(.)37 b(The)-150 4350 y(second)20 b(phase)g(be)o(gins)g(at)e(round)i Fu(t)771 4358 y Ft(2)827 4350 y Fr(=)h Fu(t)936 4318 y Fs(0)936 4363 y Ft(1)987 4350 y Fr(+)c(1)p Fv(,)i(and)h(so)f(on.)-73 4433 y(Consider)28 b(a)f(phase)h(be)o(ginning)h(at)d(round)j Fu(i)p Fv(,)g(and)f(let)e Fu(j)32 b Fv(be)27 b(the)h(round)-150 4516 y(at)37 b(which)i(the)f(ne)o(xt)g(phase)g(be)o(gins.)81 b(W)-6 b(e)37 b(will)g(sho)n(w)h(that)g(we)g(ha)o(v)o(e)-150 4599 y Fr(Pr)13 b Fm(f)p Fr(\010)38 4607 y Fq(j)93 4599 y Fm(\024)21 b Fr(\(3)p Fu(=)p Fr(4\)\010)403 4607 y Fq(i)431 4599 y Fm(g)j Fu(>)g Fr(1)p Fu(=)p Fr(4)p Fv(.)k(Recall)20 b(that)h(the)f(potential)h(can)f(be)h(parti-)-150 4682 y(tioned)d(as)f Fr(\010)188 4690 y Fq(i)236 4682 y Fr(=)22 b(\010)373 4690 y Fq(i)399 4682 y Fr(\()p Fu(A)487 4690 y Fq(i)513 4682 y Fr(\))11 b(+)g(\010)680 4690 y Fq(i)707 4682 y Fr(\()p Fu(D)800 4690 y Fq(i)827 4682 y Fr(\))p Fv(.)22 b(Since)17 b(the)g(phase)i(contains)f(at)f(least)-150 4765 y Fu(P)27 b Fv(thro)n(ws,)17 b(Lemma)g(8)f(implies)g(that)h Fr(Pr)c Fm(f)p Fr(\010)1014 4773 y Fq(i)1058 4765 y Fm(\000)k Fr(\010)1190 4773 y Fq(j)1244 4765 y Fm(\025)k Fr(\(1)p Fu(=)p Fr(4\)\010)1554 4773 y Fq(i)1582 4765 y Fr(\()p Fu(D)1675 4773 y Fq(i)1702 4765 y Fr(\))p Fm(g)g Fu(>)-150 4848 y Fr(1)p Fu(=)p Fr(4)p Fv(.)41 b(W)-6 b(e)24 b(need)h(to)f(sho)n (w)h(that)g(the)f(potential)h(also)f(drops)i(by)f(a)f(constant)-150 4931 y(fraction)d(of)f Fr(\010)240 4939 y Fq(i)267 4931 y Fr(\()p Fu(A)355 4939 y Fq(i)381 4931 y Fr(\))p Fv(.)28 b(Consider)21 b(a)f(process)i Fu(q)h Fv(in)d Fu(A)1239 4939 y Fq(i)1265 4931 y Fv(.)28 b(If)20 b Fu(q)j Fv(does)f(not)f(ha)o (v)o(e)-150 5014 y(an)26 b(assigned)g(node,)i(then)e Fr(\010)628 5022 y Fq(i)654 5014 y Fr(\()p Fu(q)s Fr(\))34 b(=)f(0)p Fv(.)43 b(If)25 b Fu(q)j Fv(has)e(an)f(assigned)i(node)f Fu(u)p Fv(,)-150 5097 y(then)h Fr(\010)60 5105 y Fq(i)87 5097 y Fr(\()p Fu(q)s Fr(\))36 b(=)h Fu(\036)363 5105 y Fq(i)389 5097 y Fr(\()p Fu(u)p Fr(\))p Fv(.)47 b(In)26 b(this)h(case,)i(process)f Fu(q)i Fv(e)o(x)o(ecutes)d(node)h Fu(u)f Fv(at)-150 5180 y(round)e Fu(i)e Fv(and)i(the)e(potential)h (drops)h(by)f(at)f(least)g Fr(\(5)p Fu(=)p Fr(9\))p Fu(\036)1373 5188 y Fq(i)1400 5180 y Fr(\()p Fu(u)p Fr(\))p Fv(.)37 b(Summing)-150 5263 y(o)o(v)o(er)17 b(each)g(process)g Fu(q)i Fv(in)d Fu(A)575 5271 y Fq(i)601 5263 y Fv(,)h(we)f(ha)o(v)o(e)h Fr(\010)950 5271 y Fq(i)984 5263 y Fm(\000)7 b Fr(\010)1106 5271 y Fq(j)1160 5263 y Fm(\025)21 b Fr(\(5)p Fu(=)p Fr(9\)\010)1470 5271 y Fq(i)1498 5263 y Fr(\()p Fu(A)1586 5271 y Fq(i)1612 5263 y Fr(\))p Fv(.)h(Thus,)-150 5346 y(no)i(matter)f(ho)n(w)h Fr(\010)367 5354 y Fq(i)417 5346 y Fv(is)f(partitioned)h(between)h Fr(\010)1165 5354 y Fq(i)1191 5346 y Fr(\()p Fu(A)1279 5354 y Fq(i)1305 5346 y Fr(\))e Fv(and)i Fr(\010)1545 5354 y Fq(i)1571 5346 y Fr(\()p Fu(D)1664 5354 y Fq(i)1691 5346 y Fr(\))p Fv(,)f(we)-150 5429 y(ha)o(v)o(e)19 b Fr(Pr)13 b Fm(f)q Fr(\010)196 5437 y Fq(i)240 5429 y Fm(\000)j Fr(\010)371 5437 y Fq(j)426 5429 y Fm(\025)21 b Fr(\(1)p Fu(=)p Fr(4\)\010)736 5437 y Fq(i)763 5429 y Fm(g)h Fu(>)f Fr(1)p Fu(=)p Fr(4)p Fv(.)2126 -75 y(W)-6 b(e)16 b(shall)g(say)h(that)g(a)f(phase)h(is)g Fl(successful)e Fv(if)h(it)g(causes)h(the)g(potential)g(to)2049 8 y(drop)h(by)g(at)f(least)g(a)g Fr(1)p Fu(=)p Fr(4)i Fv(fraction.)k(A)17 b(phase)h(is)f(successful)h(with)f(probabil-)2049 101 y(ity)f(at)g(least)f Fr(1)p Fu(=)p Fr(4)p Fv(.)24 b(Since)15 b(the)i(potential)f(starts)g(at)f Fr(\010)3387 109 y Ft(0)3444 101 y Fr(=)21 b(3)3563 69 y Ft(2)p Fq(T)3629 77 y Fb(1)3691 69 y Fs(\000)p Ft(1)3789 101 y Fv(and)c(ends)2049 184 y(at)f Fr(0)g Fv(\(and)h(is)f(al)o(w)o(ays)h(an)f(inte)o(ger\),)h (the)f(number)h(of)f(successful)h(phases)g(is)f(at)2049 267 y(most)j Fr(\(2)p Fu(T)2326 275 y Fs(1)2408 267 y Fm(\000)d Fr(1\))e(log)2665 285 y Ft(4)p Fq(=)p Ft(3)2774 267 y Fr(3)22 b Fu(<)f Fr(8)p Fu(T)2998 275 y Fs(1)3063 267 y Fv(.)i(The)c(e)o(xpected)h(number)g(of)f(phases)2049 350 y(needed)27 b(to)e(obtain)h Fr(8)p Fu(T)2664 358 y Fs(1)2754 350 y Fv(successful)g(phases)g(is)f(at)g(most)g Fr(32)p Fu(T)3755 358 y Fs(1)3821 350 y Fv(.)42 b(Thus,)2049 433 y(the)21 b(e)o(xpected)h(number)g(of)e(phases)i(is)e Fu(O)r Fr(\()p Fu(T)3202 441 y Fs(1)3268 433 y Fr(\))p Fv(,)g(and)h(because)h(each)g(phase)2049 516 y(contains)17 b Fu(O)r Fr(\()p Fu(P)11 b Fr(\))16 b Fv(thro)n(ws,)h(the)g(e)o (xpected)g(number)h(of)e(thro)n(ws)h(is)e Fu(O)r Fr(\()p Fu(T)3876 524 y Fs(1)3942 516 y Fu(P)c Fr(\))p Fv(.)2049 599 y(W)-6 b(e)18 b(no)n(w)i(turn)f(to)g(the)g(high)g(probability)h (bound.)2126 682 y(Suppose)d(the)g(e)o(x)o(ecution)h(tak)o(es)f Fu(n)22 b Fr(=)f(32)p Fu(T)3247 690 y Fs(1)3321 682 y Fr(+)9 b Fu(m)16 b Fv(phases.)23 b(Each)17 b(phase)2049 765 y(succeeds)i(with)f(probability)g(at)g(least)f Fu(p)k Fr(=)g(1)p Fu(=)p Fr(4)p Fv(,)e(so)f(the)g(e)o(xpected)h(number)2049 848 y(of)k(successes)i(is)e(at)g(least)g Fu(np)30 b Fr(=)g(8)p Fu(T)3042 856 y Fs(1)3127 848 y Fr(+)21 b Fu(m=)p Fr(4)p Fv(.)36 b(W)-6 b(e)23 b(no)n(w)h(compute)h(the)2049 931 y(probability)f(that)f(the)h(number)g Fu(X)30 b Fv(of)23 b(successes)i(is)e(less)g(than)h Fr(8)p Fu(T)3832 939 y Fs(1)3897 931 y Fv(.)36 b(W)-6 b(e)2049 1014 y(use)19 b(the)g(Chernof)n(f)h(bound)g([2)q(,)e(Theorem)h(A.13],)2595 1188 y Fr(Pr)13 b Fm(f)q Fu(X)27 b(<)21 b(np)c Fm(\000)g Fu(a)p Fm(g)k Fu(<)h(e)3297 1151 y Fs(\000)3370 1131 y Fc(a)3402 1114 y Fa(2)p 3354 1140 96 4 v 3354 1172 a(2)p Fc(np)3482 1188 y Fu(;)2049 1325 y Fv(with)d Fu(a)k Fr(=)f Fu(m=)p Fr(4)p Fv(.)k(Thus)19 b(if)g(we)h(choose)h Fu(m)h Fr(=)h(32)p Fu(T)3397 1333 y Fs(1)3480 1325 y Fr(+)17 b(16)d(ln\(1)p Fu(=")p Fr(\))p Fv(,)19 b(then)2049 1408 y(we)g(ha)o(v)o(e)2485 1585 y Fr(Pr)13 b Fm(f)p Fu(X)28 b(<)21 b Fr(8)p Fu(T)2873 1593 y Fs(1)2938 1585 y Fm(g)84 b Fu(<)e(e)3238 1543 y Fs(\000)3354 1515 y Fa(\()p Fc(m=)p Fa(4\))3508 1498 y(2)p 3296 1532 305 4 v 3296 1566 a(16)p Fc(T)3387 1574 y Fb(1)3448 1566 y Fa(+)p Fc(m=)p Fa(2)3060 1750 y Fm(\024)g Fu(e)3238 1708 y Fs(\000)3334 1680 y Fa(\()p Fc(m=)p Fa(4\))3488 1663 y(2)p 3296 1697 263 4 v 3296 1732 a Fc(m=)p Fa(2+)p Fc(m=)p Fa(2)3060 1868 y Fr(=)g Fu(e)3238 1832 y Fs(\000)3299 1812 y Fc(m)p 3296 1821 57 4 v 3296 1853 a Fa(16)3060 1996 y Fm(\024)g Fu(e)3238 1960 y Fs(\000)3296 1932 y Fa(16)11 b(ln\(1)p Fc(=")p Fa(\))p 3296 1949 247 4 v 3391 1981 a(16)3060 2104 y Fr(=)82 b Fu(")19 b(:)2049 2241 y Fv(Thus,)k(the)g(probability)g(that)g(the)f(e)o(x)o(ecution)i (tak)o(es)f Fr(64)p Fu(T)3559 2249 y Fs(1)3645 2241 y Fr(+)c(16)14 b(ln\(1)p Fu(=")p Fr(\))2049 2324 y Fv(phases)31 b(or)e(more)h(is)g(less)f(than)h Fu(")p Fv(.)55 b(W)-6 b(e)29 b(conclude)j(that)d(the)h(number)h(of)2049 2407 y(thro)n(ws)18 b(is)f Fu(O)r Fr(\(\()p Fu(T)2500 2415 y Fs(1)2577 2407 y Fr(+)12 b(lg)r(\(1)p Fu(=")p Fr(\)\))p Fu(P)f Fr(\))17 b Fv(with)g(probability)h(at)g(least)f Fr(1)12 b Fm(\000)g Fu(")p Fv(.)p 4008 2407 42 42 v 2049 2580 a Fw(4.4)74 b(Anal)o(ysis)18 b(f)o(or)h(m)o(ultipr)o(ogrammed)f (en)m(vir)o(onments)2049 2690 y Fv(W)-6 b(e)27 b(no)n(w)h(generalize)g (the)g(analysis)f(of)h(the)f(pre)n(vious)i(section)f(to)f(bound)2049 2773 y(the)h(e)o(x)o(ecution)h(time)e(of)h(the)g(non-blocking)i(w)o (ork)e(stealer)g(in)g(multipro-)2049 2856 y(grammed)g(en)m(vironments.) 51 b(Recall)27 b(that)g(in)g(a)h(multiprogrammed)g(en)m(vi-)2049 2939 y(ronment,)c(the)f(k)o(ernel)h(is)e(an)h(adv)o(ersary)h(that)f (may)g(choose)h(not)f(to)g(sched-)2049 3022 y(ule)j(some)g(of)f(the)h (processes)g(at)g(some)g(or)f(all)g(rounds.)45 b(In)25 b(particular)m(,)i(at)2049 3105 y(each)19 b(round)h Fu(i)p Fv(,)e(the)h(k)o(ernel)g(schedules)h Fu(p)3122 3113 y Fq(i)3166 3105 y Fv(processes)g(of)f(its)f(choosing.)24 b(W)-6 b(e)2049 3188 y(consider)24 b(three)g(dif)n(ferent)f(classes)h (of)f(adv)o(ersaries,)i(with)e(each)h(class)g(be-)2049 3271 y(ing)c(more)g(po)n(werful)h(than)f(the)g(pre)n(vious,)h(and)f(we) g(consider)h(increasingly)2049 3354 y(po)n(werful)j(forms)g(of)f(the)h (yield)f(system)h(call.)36 b(In)24 b(all)e(cases,)j(we)e(\002nd)h(that) 2049 3437 y(the)19 b(e)o(xpected)h(e)o(x)o(ecution)g(time)f(is)f Fu(O)r Fr(\()p Fu(T)3104 3445 y Ft(1)3139 3437 y Fu(=P)3226 3445 y Fq(A)3294 3437 y Fr(+)e Fu(T)3415 3445 y Fs(1)3480 3437 y Fu(P)6 b(=P)3622 3445 y Fq(A)3673 3437 y Fr(\))p Fv(.)2126 3520 y(W)-6 b(e)20 b(pro)o(v)o(e)h(our)g(upper)h(bounds)g (for)e(multiprogrammed)i(en)m(vironments)2049 3604 y(using)j(the)f (results)g(of)h(Section)f(4.2)g(and)h(the)f(same)h(general)g(approach)h (as)2049 3687 y(is)i(used)h(to)g(pro)o(v)o(e)g(Theorem)g(9.)51 b(The)29 b(only)g(place)g(in)f(which)h(the)f(proof)2049 3770 y(of)d(Theorem)h(9)f(depends)i(on)e(the)g(assumption)i(of)e(a)g (dedicated)h(en)m(viron-)2049 3853 y(ment)d(is)g(in)f(the)h(analysis)h (of)f(progress)h(being)f(made)h(by)f(those)h(processes)2049 3936 y(in)g(the)g(set)f Fu(A)2410 3944 y Fq(i)2436 3936 y Fv(.)37 b(In)24 b(particular)m(,)h(in)f(pro)o(ving)h(Theorem)f(9,)h (we)e(considered)2049 4019 y(a)f(round)h Fu(i)e Fv(and)i(an)o(y)f (process)h Fu(q)h Fv(in)e Fu(A)3047 4027 y Fq(i)3073 4019 y Fv(,)g(and)g(we)g(sho)n(wed)h(that)f(at)f(round)i Fu(i)p Fv(,)2049 4102 y(the)i(potential)h(decreases)g(by)g(at)f(least)g Fr(\(5)p Fu(=)p Fr(9\)\010)3333 4110 y Fq(i)3360 4102 y Fr(\()p Fu(q)s Fr(\))p Fv(,)h(because)h(process)f Fu(q)2049 4185 y Fv(e)o(x)o(ecutes)21 b(its)f(assigned)h(node,)g(if)f(an)o(y)-5 b(.)27 b(This)20 b(conclusion)i(is)e(not)g(v)n(alid)h(in)f(a)2049 4268 y(multiprogrammed)f(en)m(vironment,)g(because)g(the)f(k)o(ernel)g (may)h(choose)g(not)2049 4351 y(to)g(schedule)i(process)f Fu(q)i Fv(at)d(round)i Fu(i)p Fv(.)j(F)o(or)19 b(this)g(reason,)h(we)f (need)h(the)g(yield)2049 4434 y(system)f(calls.)2126 4517 y(The)25 b(use)i(of)e(yield)h(system)g(calls)g(ne)n(v)o(er)g (constrains)h(the)e(k)o(ernel)i(in)e(its)2049 4600 y(choice)g(of)g(the) f(number)h Fu(p)2761 4608 y Fq(i)2812 4600 y Fv(of)f(processes)h(that)g (it)e(schedules)j(at)e(a)h(step)f Fu(i)p Fv(.)2049 4683 y(Y)l(ield)e(calls)g(constrain)h(the)g(k)o(ernel)g(only)g(in)f(its)g (choice)h(of)f Fi(whic)o(h)h Fu(p)3878 4691 y Fq(i)3926 4683 y Fv(pro-)2049 4766 y(cesses)e(it)e(schedules.)29 b(W)-6 b(e)20 b(wish)g(to)g(a)o(v)o(oid)g(constraining)i(the)e(k)o (ernel)h(in)f(its)2049 4849 y(choice)i(of)e(the)h(number)h(of)f (processes)h(that)e(it)h(schedules,)h(because)g(doing)2049 4932 y(so)27 b(w)o(ould)h(admit)e(tri)n(vial)g(solutions.)48 b(F)o(or)26 b(e)o(xample,)j(if)d(we)h(could)h(force)2049 5015 y(the)c(k)o(ernel)h(to)e(schedule)j(only)e(one)h(process,)g(then)g (all)e(we)h(ha)o(v)o(e)g(to)g(do)g(is)2049 5098 y(mak)o(e)g(ef)n (\002cient)e(use)i(of)e(one)i(processor)m(,)h(and)e(we)g(need)h(not)f (w)o(orry)g(about)2049 5181 y(parallel)d(e)o(x)o(ecution)h(or)g (speedup.)29 b(In)20 b(general,)h(whene)n(v)o(er)g(processors)h(are) 2049 5264 y(a)o(v)n(ailable)f(and)h(the)f(k)o(ernel)h(wishes)f(to)g (schedule)h(our)g(processes)g(on)f(those)2049 5347 y(processors,)e(our) f(user)o(-le)n(v)o(el)f(scheduler)i(should)g(be)f(prepared)h(to)e(mak)o (e)i(ef-)2049 5430 y(\002cient)f(use)i(of)f(those)g(processors.)1929 5679 y Fw(8)p eop %%Page: 9 9 9 8 bop -150 -75 a Fw(4.4.1)73 b(Benign)19 b(ad)o(ver)o(sar)q(y)-150 35 y Fv(A)25 b Fl(benign)g Fv(adv)o(ersary)i(is)e(able)g(to)g(choose)i (only)f(the)g(number)g Fu(p)1588 43 y Fq(i)1639 35 y Fv(of)g(pro-)-150 118 y(cesses)e(that)f(are)g(scheduled)i(at)e(each)h (round)h Fu(i)p Fv(.)36 b(It)23 b(cannot)h(choose)g(which)-150 201 y(processes)17 b(are)g(scheduled.)24 b(The)16 b(processes)h(are)g (chosen)g(at)f(random.)24 b(W)m(ith)-150 284 y(a)18 b(benign)i(adv)o (ersary)-5 b(,)19 b(the)g(yield)f(system)h(calls)f(are)h(not)f(needed,) i(so)f(Line)f(8)-150 367 y(of)h(the)g(scheduling)h(loop)g(\(Figure)f (1\))f(can)i(be)f(remo)o(v)o(ed.)-150 514 y Fw(Theorem)g(10)41 b Fi(Consider)19 b(any)g(multithr)m(eaded)g(computation)h(with)e(work) -150 597 y Fu(T)-105 605 y Ft(1)-53 597 y Fi(and)h(critical-path)f (length)g Fu(T)717 605 y Fs(1)800 597 y Fi(being)h(e)o(xecuted)f(by)g (the)g(non-bloc)o(king)-150 680 y(work)i(stealer)g(with)f Fu(P)31 b Fi(pr)m(ocesses)20 b(in)g(a)g(multipr)m(o)o(gr)o(ammed)h(en)m (vir)m(onment.)-150 763 y(In)34 b(addition,)39 b(suppose)c(the)f(k)o (ernel)h(is)f(a)g(benign)h(adver)o(sary)l(,)40 b(and)35 b(the)-150 846 y(yield)e(system)g(call)f(does)i(nothing)o(.)66 b(The)33 b(e)o(xpected)g(e)o(xecution)h(time)e(is)-150 929 y Fu(O)r Fr(\()p Fu(T)-15 937 y Ft(1)20 929 y Fu(=P)107 937 y Fq(A)178 929 y Fr(+)20 b Fu(T)303 937 y Fs(1)368 929 y Fu(P)6 b(=P)510 937 y Fq(A)561 929 y Fr(\))p Fi(.)37 b(Mor)m(eo)o(ver)-8 b(,)26 b(for)d(any)h Fu(")30 b(>)g Fr(0)p Fi(,)25 b(the)e(e)o(xecution)-150 1012 y(time)15 b(is)h Fu(O)r Fr(\()p Fu(T)195 1020 y Ft(1)229 1012 y Fu(=P)316 1020 y Fq(A)372 1012 y Fr(+)5 b(\()p Fu(T)512 1020 y Fs(1)582 1012 y Fr(+)g(lg)q(\(1)p Fu(=")p Fr(\)\))p Fu(P)h(=P)1051 1020 y Fq(A)1102 1012 y Fr(\))16 b Fi(with)f(pr)m (obability)h(at)g(least)-150 1095 y Fr(1)h Fm(\000)g Fu(")p Fi(.)-150 1243 y(Pr)m(oof:)74 b Fv(As)27 b(in)g(the)g(proof)h (of)f(Theorem)g(9,)i(we)e(bound)i(the)e(number)h(of)-150 1326 y(thro)n(ws)f(by)g(sho)n(wing)g(that)f(in)h(each)g(phase,)i(the)d (potential)h(decreases)g(by)-150 1409 y(a)g(constant)i(f)o(actor)f (with)f(constant)h(probability)-5 b(.)50 b(W)-6 b(e)27 b(consider)h(a)g(phase)-150 1492 y(that)c(be)o(gins)i(at)e(round)i Fu(i)p Fv(.)40 b(The)24 b(potential)h(is)f Fr(\010)1122 1500 y Fq(i)1181 1492 y Fr(=)32 b(\010)1328 1500 y Fq(i)1355 1492 y Fr(\()p Fu(A)1443 1500 y Fq(i)1469 1492 y Fr(\))21 b(+)g(\010)1656 1500 y Fq(i)1683 1492 y Fr(\()p Fu(D)1776 1500 y Fq(i)1802 1492 y Fr(\))p Fv(.)-150 1575 y(From)26 b(Lemma)g(8,)i(we)e(kno)n(w)h(that)f(the)g(potential)g(decreases)i(by)e (at)g(least)-150 1658 y Fr(\(1)p Fu(=)p Fr(4\)\010)79 1666 y Fq(i)107 1658 y Fr(\()p Fu(D)200 1666 y Fq(i)226 1658 y Fr(\))c Fv(with)g(probability)h(more)g(than)f Fr(1)p Fu(=)p Fr(4)p Fv(.)35 b(It)21 b(remains)i(to)f(pro)o(v)o(e)-150 1741 y(that)c(with)g(constant)h(probability)f(the)h(potential)f(also)g (decreases)i(by)e(a)g(con-)-150 1824 y(stant)h(fraction)g(of)g Fr(\010)397 1832 y Fq(i)424 1824 y Fr(\()p Fu(A)512 1832 y Fq(i)537 1824 y Fr(\))p Fv(.)-73 1907 y(Consider)h(a)f(process)h Fu(q)j Fv(in)c Fu(A)703 1915 y Fq(i)729 1907 y Fv(.)24 b(If)19 b Fu(q)j Fv(is)d(scheduled)i(at)f(some)f(round)i(dur)o(-)-150 1990 y(ing)j(the)g(phase,)i(then)e(the)h(potential)f(decreases)h(by)f (at)g(least)g Fr(\(5)p Fu(=)p Fr(9\)\010)1727 1998 y Fq(i)1754 1990 y Fr(\()p Fu(q)s Fr(\))-150 2073 y Fv(as)f(in)g(Theorem) g(9.)35 b(During)24 b(the)e(phase,)j(at)e(least)f Fu(P)34 b Fv(thro)n(ws)23 b(occur)m(,)h(so)f(at)-150 2156 y(least)e Fu(P)31 b Fv(processes)22 b(are)f(scheduled,)i(with)e(some)h(processes) g(possibly)g(be-)-150 2239 y(ing)h(scheduled)h(multiple)e(times.)34 b(These)22 b(scheduled)i(processes)g(are)e(cho-)-150 2322 y(sen)27 b(at)g(random,)j(so)d(we)g(can)g(treat)g(them)g(lik)o(e)g (random)h(ball)f(tosses)g(and)-150 2405 y(appeal)20 b(to)g(the)g(Balls) f(and)h(W)-6 b(eighted)20 b(Bins)f(Lemma)h(\(Lemma)f(7\).)25 b(In)20 b(f)o(act,)-150 2488 y(this)g(selection)g(of)g(processes)g(at)g (random)h(is)e(not)h(the)g(same)g(as)g(ball)g(tosses,)-150 2571 y(because)25 b(the)o(y)f(are)g(not)h(all)e(independent:)35 b(A)24 b(process)h(cannot)g(be)f(sched-)-150 2654 y(uled)i(more)g(than) h(once)f(in)g(a)g(gi)n(v)o(en)h(round.)45 b(But)25 b(this)h(dependence) i(only)-150 2737 y(increases)18 b(the)g(probability)h(that)e(a)h(bin)g (recei)n(v)o(es)g(a)g(ball.)k(F)o(or)c(each)g(process)-150 2820 y Fu(q)k Fv(in)e Fu(A)42 2828 y Fq(i)68 2820 y Fv(,)f(we)h(assign) g(it)f(weight)h Fu(W)776 2828 y Fq(q)833 2820 y Fr(=)i(\(5)p Fu(=)p Fr(9\)\010)1144 2828 y Fq(i)1172 2820 y Fr(\()p Fu(q)s Fr(\))p Fv(,)d(and)i(for)e(each)h(other)-150 2903 y(process)j Fu(q)i Fv(in)d Fu(D)298 2911 y Fq(i)324 2903 y Fv(,)h(we)f(assign)g(it)g(weight)g Fu(W)1045 2911 y Fq(q)1106 2903 y Fr(=)27 b(0)p Fv(.)33 b(The)22 b(total)g(weight)g(is) -150 2986 y Fu(W)38 b Fr(=)27 b(\(5)p Fu(=)p Fr(9\)\010)277 2994 y Fq(i)305 2986 y Fr(\()p Fu(A)393 2994 y Fq(i)419 2986 y Fr(\))p Fv(,)22 b(so)h(using)g Fu(\014)32 b Fr(=)27 b(1)p Fu(=)p Fr(2)d Fv(in)e(Lemma)g(7,)h(we)f(conclude)-150 3069 y(that)f(the)h(potential)g(decreases)g(by)g(at)f(least)h Fu(\014)t(W)36 b Fr(=)26 b(\(5)p Fu(=)p Fr(18\)\010)1525 3077 y Fq(i)1553 3069 y Fr(\()p Fu(A)1641 3077 y Fq(i)1667 3069 y Fr(\))21 b Fv(with)-150 3152 y(probability)f(greater)f(than)g Fr(1)p Fu(=)p Fr(4)p Fv(.)-73 3235 y(The)h(e)n(v)o(ent)h(that)f(the)h (potential)f(decreases)i(by)f Fr(\(5)p Fu(=)p Fr(18\)\010)1436 3243 y Fq(i)1464 3235 y Fr(\()p Fu(A)1552 3243 y Fq(i)1578 3235 y Fr(\))e Fv(is)h(inde-)-150 3318 y(pendent)k(of)f(the)f(e)n(v)o (ent)h(that)g(the)g(potential)f(decreases)i(by)f Fr(\(1)p Fu(=)p Fr(4\)\010)1655 3326 y Fq(i)1683 3318 y Fr(\()p Fu(D)1776 3326 y Fq(i)1802 3318 y Fr(\))p Fv(,)-150 3401 y(because)e(the)f(random)h(choices)f(of)g(which)h(processes)f(to)g (schedule)h(are)f(in-)-150 3484 y(dependent)32 b(of)e(the)g(random)h (choices)g(of)f(victims.)57 b(Thus,)32 b(both)f(e)n(v)o(ents)-150 3567 y(occur)i(with)e(probability)i(greater)f(than)h Fr(1)p Fu(=)p Fr(16)p Fv(,)j(and)d(we)e(conclude)j(that)-150 3650 y(the)19 b(potential)h(decreases)g(by)g(at)f(least)g Fr(\(1)p Fu(=)p Fr(4\)\010)1098 3658 y Fq(i)1145 3650 y Fv(with)g(probability)h(greater)-150 3733 y(than)g Fr(1)p Fu(=)p Fr(16)p Fv(.)26 b(The)20 b(remainder)g(of)f(the)h(proof)g (is)f(the)g(same)h(as)g(that)f(of)h(Theo-)-150 3816 y(rem)f(9,)g(b)o (ut)f(with)h(dif)n(ferent)g(constants.)p 1809 3816 42 42 v -150 3992 a Fw(4.4.2)73 b(Ob)o(livious)18 b(ad)o(ver)o(sar)q(y) -150 4102 y Fv(An)f Fl(oblivious)g Fv(adv)o(ersary)g(is)g(able)g(to)f (choose)i(both)g(the)f(number)g Fu(p)1605 4110 y Fq(i)1648 4102 y Fv(of)g(pro-)-150 4185 y(cesses)j(and)g(which)f Fu(p)423 4193 y Fq(i)468 4185 y Fv(processes)i(are)e(scheduled)i(at)e (each)h(round)g Fu(i)p Fv(,)f(b)o(ut)g(is)-150 4268 y(required)d(to)g (mak)o(e)g(these)g(decisions)h(in)e(an)h(of)n(f-line)g(manner)l(.)22 b(Speci\002cally)-5 b(,)-150 4351 y(before)22 b(the)g(e)o(x)o(ecution)h (be)o(gins)g(the)f(obli)n(vious)h(adv)o(ersary)g(commits)f(itself)-150 4434 y(to)d(a)g(complete)g(k)o(ernel)h(schedule.)-73 4517 y(T)-6 b(o)39 b(deal)g(with)g(an)g(obli)n(vious)i(adv)o(ersary)-5 b(,)45 b(we)39 b(emplo)o(y)h(a)f(directed)-150 4600 y(yield)27 b([1,)g(25)q(])f(that)h(we)g(call)g Fk(yieldTo)p Fv(.)48 b(If)27 b(at)f(round)i Fu(i)f Fv(process)h Fu(q)i Fv(calls)-150 4683 y Fk(yieldTo)p Fr(\()p Fu(r)r Fr(\))p Fv(,)16 b(then)f(the)f(k)o (ernel)i(cannot)f(schedule)h(process)f Fu(q)i Fv(again)e(until)f(it) -150 4766 y(has)h(scheduled)i(process)e Fu(r)r Fv(.)22 b(More)15 b(precisely)-5 b(,)16 b(the)f(k)o(ernel)h(cannot)g(schedule) -150 4849 y(process)j Fu(q)i Fv(at)c(a)h(round)h Fu(j)26 b(>)21 b(i)d Fv(unless)h(there)f(e)o(xists)g(a)g(round)h Fu(k)r Fv(,)e Fu(i)22 b Fm(\024)f Fu(k)j Fm(\024)d Fu(j)t Fv(,)-150 4932 y(such)30 b(that)e(process)i Fu(r)g Fv(is)f(scheduled)h (at)f(round)h Fu(k)r Fv(.)52 b(Of)29 b(course,)j(this)c(re-)-150 5015 y(quirement)c(may)g(be)g(inconsistent)g(with)f(the)g(k)o(ernel)h (schedule.)38 b(Suppose)-150 5098 y(process)18 b Fu(q)i Fv(is)c(scheduled)j(at)e(rounds)h Fu(i)f Fv(and)h Fu(j)t Fv(,)g(and)f(process)h Fu(r)h Fv(is)e(not)g(sched-)-150 5181 y(uled)e(at)f(an)o(y)h(round)h Fu(k)23 b Fr(=)e Fu(i;)14 b(:)f(:)g(:)g(;)g(j)t Fv(.)22 b(In)15 b(this)f(case,)h(if)f Fu(q)j Fv(calls)e Fk(yieldTo)p Fr(\()p Fu(r)r Fr(\))g Fv(at)-150 5264 y(round)i Fu(i)p Fv(,)e(then)h(because)h Fu(q)h Fv(cannot)f(be)e(scheduled)i(at)f(round)g Fu(j)k Fv(as)15 b(the)h(sched-)-150 5347 y(ule)24 b(calls)f(for)m(,)i(we)f (schedule)h(process)f Fu(r)i Fv(instead.)38 b(That)24 b(is,)g(we)g(schedule)-150 5430 y(process)i Fu(r)h Fv(in)e(place)g(of)h Fu(q)s Fv(.)41 b(Observ)o(e)26 b(that)f(this)g(change)h(in)f(the)h (schedule)2049 -75 y(does)18 b(not)g(change)h(the)f(number)h(of)f (processes)h(scheduled)g(at)e(an)o(y)h(round;)h(it)2049 8 y(only)h(changes)g(which)f(processes)h(are)f(scheduled.)2126 91 y(The)h(non-blocking)i(w)o(ork)f(stealer)e(uses)i Fk(yieldTo)g Fv(to)f(yield)g(to)g(the)g(last)2049 174 y(chosen)27 b(victim)f(process)g(before)g(the)g(ne)o(xt)g(steal)g (attempt.)43 b(Speci\002cally)-5 b(,)2049 257 y(Line)19 b(8)g(of)g(the)g(scheduling)h(loop)g(\(Figure)e(1\))h(is)g Fk(yieldTo\(victim\))p Fv(.)2049 416 y Fw(Theorem)g(11)41 b Fi(Consider)19 b(any)g(multithr)m(eaded)g(computation)h(with)e(work) 2049 499 y Fu(T)2094 507 y Ft(1)2146 499 y Fi(and)h(critical-path)f (length)g Fu(T)2916 507 y Fs(1)2999 499 y Fi(being)h(e)o(xecuted)f(by)g (the)g(non-bloc)o(king)2049 582 y(work)i(stealer)g(with)f Fu(P)31 b Fi(pr)m(ocesses)20 b(in)g(a)g(multipr)m(o)o(gr)o(ammed)h(en)m (vir)m(onment.)2049 665 y(In)g(addition,)i(suppose)g(that)f(the)f(k)o (ernel)h(is)f(an)h(oblivious)g(adver)o(sary)l(,)i(and)2049 748 y(the)17 b(yield)g(system)g(call)g(is)f Fk(yieldTo\(victim\))p Fi(.)26 b(The)17 b(e)o(xpected)g(e)o(xecution)2049 831 y(time)i(is)g Fu(O)r Fr(\()p Fu(T)2401 839 y Ft(1)2436 831 y Fu(=P)2523 839 y Fq(A)2591 831 y Fr(+)e Fu(T)2713 839 y Fs(1)2778 831 y Fu(P)6 b(=P)2920 839 y Fq(A)2971 831 y Fr(\))p Fi(.)25 b(Mor)m(eo)o(ver)-8 b(,)21 b(for)e(any)h Fu(")j(>)f Fr(0)p Fi(,)d(the)h(e)o(xe-)2049 914 y(cution)e(time)e(is)h Fu(O)r Fr(\()p Fu(T)2600 922 y Ft(1)2635 914 y Fu(=P)2722 922 y Fq(A)2783 914 y Fr(+)10 b(\()p Fu(T)2928 922 y Fs(1)3003 914 y Fr(+)g(lg)r(\(1)p Fu(=")p Fr(\)\))p Fu(P)c(=P)3478 922 y Fq(A)3529 914 y Fr(\))17 b Fi(with)f(pr)m(obability)2049 997 y(at)j(least)g Fr(1)e Fm(\000)g Fu(")p Fi(.)2049 1157 y(Pr)m(oof:)74 b Fv(As)27 b(in)h(the)f(proof)h(of)f(Theorem)h(10,) h(it)d(remains)i(to)f(pro)o(v)o(e)h(that)2049 1240 y(in)k(each)i (phase,)i(the)d(potential)g(decreases)g(by)g(a)g(constant)g(fraction)g (of)2049 1323 y Fr(\010)2104 1331 y Fq(i)2131 1323 y Fr(\()p Fu(A)2219 1331 y Fq(i)2245 1323 y Fr(\))25 b Fv(with)h(constant)h(probability)-5 b(.)45 b(Again,)27 b(if)e Fu(q)k Fv(in)d Fu(A)3624 1331 y Fq(i)3676 1323 y Fv(is)f(scheduled)2049 1406 y(at)c(a)g(round)h(during)g(the)f(phase)h (then)f(the)g(potential)h(decreases)g(by)f(at)g(least)2049 1489 y Fr(\(5)p Fu(=)p Fr(9\)\010)2278 1497 y Fq(i)2306 1489 y Fr(\()p Fu(q)s Fr(\))p Fv(.)46 b(Thus,)28 b(if)f(we)f(can)i(sho) n(w)f(that)g(in)f(each)i(phase)f(at)g(least)f Fu(P)2049 1572 y Fv(processes)g(chosen)f(at)f(random)i(are)e(scheduled,)j(then)e (we)g(can)g(appeal)g(to)2049 1655 y(the)19 b(Balls)f(and)i(W)-6 b(eighted)19 b(Bins)g(Lemma.)2126 1738 y(Whereas)d(pre)n(viously)h(we)f (de\002ned)h(a)f(phase)h(to)e(contain)i(at)f(least)g Fu(P)26 b Fv(steal)2049 1821 y(attempts,)34 b(we)d(no)n(w)g(de\002ne)h (a)f(phase)h(to)f(contain)g(at)g(least)g Fr(2)p Fu(P)42 b Fv(thro)n(ws.)2049 1904 y(W)m(ith)25 b(at)h(least)g Fr(2)p Fu(P)37 b Fv(thro)n(ws,)28 b(at)e(least)g Fu(P)37 b Fv(of)26 b(these)h(thro)n(ws)f(ha)o(v)o(e)h(the)f(fol-)2049 1987 y(lo)n(wing)31 b(property:)47 b(The)31 b(thro)n(w)g(w)o(as)g (performed)g(by)g(a)g(process)g Fu(q)j Fv(at)c(a)2049 2070 y(round)g Fu(j)k Fv(during)c(the)f(phase,)j(and)e(process)g Fu(q)i Fv(also)d(performed)h(another)2049 2153 y(thro)n(w)25 b(at)f(a)g(round)h Fu(k)34 b(>)d(j)t Fv(,)26 b(also)f(during)g(the)f (phase.)40 b(W)-6 b(e)24 b(say)h(that)f(such)2049 2236 y(a)30 b(thro)n(w)g(is)g Fl(f)o(ollo)n(w)o(ed)p Fv(.)57 b(Observ)o(e)30 b(that)g(in)g(this)f(case,)k(process)e Fu(q)i Fv(called)2049 2319 y Fk(yieldTo\(victim\))25 b Fv(at)c(some)i(round)f(between)h(rounds)g Fu(j)j Fv(and)c Fu(k)r Fv(.)32 b(Since)2049 2402 y(process)23 b Fu(q)j Fv(is)c(scheduled)i(at)f(round)g Fu(k)r Fv(,)g(the)g(victim)g(process)g (is)f(scheduled)2049 2485 y(at)g(some)h(round)h(between)f Fu(j)k Fv(and)c Fu(k)r Fv(.)33 b(Thus,)24 b(for)e(e)n(v)o(ery)h(thro)n (w)g(that)f(is)g(fol-)2049 2568 y(lo)n(wed,)f(there)f(is)g(a)g (randomly)h(chosen)h(victim)d(process)i(that)f(is)g(scheduled)2049 2651 y(during)g(the)f(phase.)2126 2734 y(Consider)29 b(a)g(phase)h(that)f(starts)f(at)h(round)h Fu(i)p Fv(,)h(and)f (partition)f(the)g(steal)2049 2817 y(attempts)20 b(into)h(tw)o(o)f (sets,)h Fu(F)30 b Fv(and)22 b Fu(G)p Fv(,)e(such)h(that)f(e)n(v)o(ery) h(thro)n(w)g(in)f Fu(F)31 b Fv(is)20 b(fol-)2049 2900 y(lo)n(wed,)i(and)g(each)g(set)g(contains)g(at)f(least)g Fu(P)32 b Fv(thro)n(ws.)f(Because)22 b(the)g(phase)2049 2983 y(contains)28 b(at)e(least)g Fr(2)p Fu(P)38 b Fv(thro)n(ws)27 b(and)g(at)g(least)f Fu(P)37 b Fv(of)27 b(them)g(are)g(follo)n(wed,) 2049 3066 y(such)22 b(a)f(partition)h(is)f(possible.)31 b(Lemma)21 b(8)h(tells)f(us)g(that)g(the)h(thro)n(ws)g(in)f Fu(G)2049 3149 y Fv(cause)g(the)f(potential)h(to)f(decrease)h(by)g(at)f (least)g Fr(\(1)p Fu(=)p Fr(4\)\010)3538 3157 y Fq(i)3566 3149 y Fr(\()p Fu(D)3659 3157 y Fq(i)3685 3149 y Fr(\))g Fv(with)g(prob-)2049 3232 y(ability)k(greater)h(than)g Fr(1)p Fu(=)p Fr(4)p Fv(.)42 b(It)24 b(remains)h(to)f(pro)o(v)o(e)i (that)e(the)h(thro)n(ws)g(in)f Fu(F)2049 3315 y Fv(cause)c(the)f (potential)g(to)g(decrease)g(by)h(a)f(constant)g(fraction)h(of)e Fr(\010)3776 3323 y Fq(i)3803 3315 y Fr(\()p Fu(A)3891 3323 y Fq(i)3917 3315 y Fr(\))p Fv(.)2126 3398 y(The)k(thro)n(ws)g(in)g Fu(F)32 b Fv(gi)n(v)o(e)23 b(rise)f(to)g(at)f(least)h Fu(P)33 b Fv(randomly)23 b(chosen)g(victim)2049 3481 y(processes,)h(each)f(of)g(which)f(is)g(scheduled)i(during)g(the)e (phase.)35 b(Thus,)23 b(we)2049 3564 y(treat)c(these)g Fu(P)29 b Fv(random)20 b(choices)g(as)f(ball)g(tosses,)g(assigning)h (each)g(process)2049 3647 y Fu(q)27 b Fv(in)d Fu(A)2250 3655 y Fq(i)2300 3647 y Fv(a)g(weight)h Fu(W)2658 3655 y Fq(q)2723 3647 y Fr(=)32 b(\(5)p Fu(=)p Fr(9\)\010)3044 3655 y Fq(i)3071 3647 y Fr(\()p Fu(q)s Fr(\))p Fv(,)25 b(and)g(each)g(other)g(process)g Fu(q)i Fv(in)2049 3730 y Fu(D)2112 3738 y Fq(i)2162 3730 y Fv(a)d(weight)g Fu(W)2519 3738 y Fq(q)2583 3730 y Fr(=)31 b(0)p Fv(.)37 b(W)-6 b(e)24 b(then)g(appeal)g(to)g(the)g(Balls)f(and)h(W)-6 b(eighted)2049 3813 y(Bins)20 b(Lemma)g(with)f Fu(\014)28 b Fr(=)23 b(1)p Fu(=)p Fr(2)e Fv(to)f(conclude)h(that)f(the)g(thro)n (ws)h(in)f Fu(F)30 b Fv(cause)2049 3896 y(the)f(potential)f(to)h (decrease)g(by)g(at)g(least)f Fu(\014)t(W)50 b Fr(=)39 b(\(5)p Fu(=)p Fr(18\)\010)3717 3904 y Fq(i)3745 3896 y Fr(\()p Fu(A)3833 3904 y Fq(i)3859 3896 y Fr(\))28 b Fv(with)2049 3980 y(probability)18 b(greater)g(than)g Fr(1)p Fu(=)p Fr(4)p Fv(.)24 b(Note)18 b(that)f(if)h(the)f(adv)o (ersary)i(is)e(not)h(obli)n(v-)2049 4063 y(ious,)j(then)g(we)g(cannot)h (treat)e(these)h(randomly)h(chosen)g(victim)f(processes)2049 4146 y(as)16 b(ball)f(tosses,)i(because)g(the)f(adv)o(ersary)h(can)f (bias)g(the)g(choices)g(a)o(w)o(ay)h(from)2049 4229 y(processes)h(in)f Fu(A)2485 4237 y Fq(i)2511 4229 y Fv(.)22 b(In)17 b(particular)m(,)g (upon)h(seeing)f(a)g(thro)n(w)g(by)g(process)h Fu(q)i Fv(tar)o(-)2049 4312 y(get)k(a)g(process)g(in)g Fu(A)2608 4320 y Fq(i)2657 4312 y Fv(as)g(the)g(victim,)h(an)f(adapti)n(v)o(e)g (adv)o(ersary)h(may)f(stop)2049 4395 y(scheduling)h(process)f Fu(q)s Fv(.)37 b(In)24 b(this)f(case)h(the)g(thro)n(w)f(will)g(not)h (be)g(follo)n(wed,)2049 4478 y(and)c(hence,)g(will)e(not)h(be)h(in)f (the)g(set)g Fu(F)11 b Fv(.)23 b(The)c(obli)n(vious)i(adv)o(ersary)f (has)f(no)2049 4561 y(such)h(po)n(wer)l(.)2126 4644 y(The)h(victims)g (tar)o(geted)g(by)g(thro)n(ws)g(in)g Fu(F)32 b Fv(are)21 b(independent)i(of)e(the)g(vic-)2049 4727 y(tims)e(tar)o(geted)h(by)h (thro)n(ws)f(in)g Fu(G)p Fv(,)f(so)i(we)e(conclude)j(that)d(the)h (potential)h(de-)2049 4810 y(creases)d(by)g(at)f(least)g Fr(\(1)p Fu(=)p Fr(4\)\010)2828 4818 y Fq(i)2873 4810 y Fv(with)g(probability)h(greater)g(than)g Fr(1)p Fu(=)p Fr(16)p Fv(.)24 b(The)2049 4893 y(remainder)g(of)f(the)g(proof)h(is)f (the)g(same)g(as)g(that)g(of)h(Theorem)f(9,)h(b)o(ut)f(with)2049 4976 y(dif)n(ferent)c(constants.)p 4008 4976 V 2049 5153 a Fw(4.4.3)73 b(Adaptive)18 b(ad)o(ver)o(sar)q(y)2049 5263 y Fv(An)h Fl(adaptiv)o(e)i Fv(adv)o(ersary)f(selects)g(both)f(the) h(number)g Fu(p)3510 5271 y Fq(i)3555 5263 y Fv(of)g(processes)g(and) 2049 5346 y(which)f(of)g(the)g Fu(p)2480 5354 y Fq(i)2524 5346 y Fv(processes)h(e)o(x)o(ecute)f(at)f(each)i(round)g Fu(i)p Fv(,)e(and)h(it)f(may)h(do)h(so)1929 5679 y Fw(9)p eop %%Page: 10 10 10 9 bop -150 -75 a Fv(in)25 b(an)g(on-line)h(f)o(ashion.)42 b(The)25 b(adapti)n(v)o(e)h(adv)o(ersary)g(is)f(constrained)h(only)-150 8 y(by)19 b(the)g(requirement)h(to)f(obe)o(y)h(yield)f(system)g(calls.) -73 91 y(T)-6 b(o)20 b(deal)h(with)g(an)g(adapti)n(v)o(e)g(adv)o (ersary)-5 b(,)22 b(we)f(emplo)o(y)h(a)e(po)n(werful)i(yield)-150 174 y(that)15 b(we)g(call)f Fk(yieldToAll)p Fv(.)24 b(If)15 b(at)g(round)h Fu(i)f Fv(process)h Fu(q)h Fv(calls)e Fk(yieldToAll)p Fv(,)-150 257 y(then)22 b(the)g(k)o(ernel)h(cannot)g (schedule)g(process)g Fu(q)i Fv(again)d(until)f(it)h(has)g(sched-)-150 340 y(uled)f(e)n(v)o(ery)h(other)f(process.)31 b(More)21 b(precisely)-5 b(,)22 b(the)f(k)o(ernel)h(cannot)g(sched-)-150 423 y(ule)k(process)g Fu(q)j Fv(at)c(a)h(round)h Fu(j)39 b(>)34 b(i)p Fv(,)27 b(unless)g(for)e(e)n(v)o(ery)i(other)f(process)h Fu(r)r Fv(,)-150 506 y(there)18 b(e)o(xists)g(a)g(round)i Fu(k)488 514 y Fq(r)540 506 y Fv(in)e(the)g(range)h Fu(i)j Fm(\024)f Fu(k)1078 514 y Fq(r)1134 506 y Fm(\024)g Fu(j)t Fv(,)d(such)h(that)f(process)h Fu(r)-150 589 y Fv(is)e(scheduled)h(at)f (round)i Fu(k)535 597 y Fq(r)569 589 y Fv(.)j(Note)c(that)f Fk(yieldToAll)i Fv(does)f(not)f(constrain)-150 672 y(the)j(adv)o (ersary)g(in)g(its)f(choice)h(of)g(the)g(number)g(of)g(processes)h (scheduled)g(at)-150 755 y(an)o(y)j(round.)38 b(It)23 b(constrains)i(the)e(adv)o(ersary)i(only)f(in)g(its)e(choice)j(of)e (which)-150 838 y(processes)d(it)e(schedules.)-73 921 y(The)29 b(non-blocking)j(w)o(ork)e(stealer)f(calls)h Fk(yieldToAll)h Fv(before)f(each)-150 1004 y(steal)18 b(attempt.)23 b(Speci\002cally)-5 b(,)18 b(Line)g(8)h(of)g(the)f (scheduling)i(loop)f(\(Figure)g(1\))-150 1087 y(is)g Fk(yieldToAll\(\))p Fv(.)-150 1228 y Fw(Theorem)g(12)41 b Fi(Consider)19 b(any)g(multithr)m(eaded)g(computation)h(with)e(work) -150 1311 y Fu(T)-105 1319 y Ft(1)-53 1311 y Fi(and)h(critical-path)f (length)g Fu(T)717 1319 y Fs(1)800 1311 y Fi(being)h(e)o(xecuted)f(by)g (the)g(non-bloc)o(king)-150 1394 y(work)i(stealer)g(with)f Fu(P)31 b Fi(pr)m(ocesses)20 b(in)g(a)g(multipr)m(o)o(gr)o(ammed)h(en)m (vir)m(onment.)-150 1477 y(In)k(addition,)j(suppose)f(the)e(k)o(ernel)i (is)e(an)g(adaptive)i(adver)o(sary)l(,)h(and)f(the)-150 1560 y(yield)f(system)g(call)f(is)h Fk(yieldToAll)p Fi(.)45 b(The)26 b(e)o(xpected)h(e)o(xecution)f(time)f(is)-150 1643 y Fu(O)r Fr(\()p Fu(T)-15 1651 y Ft(1)20 1643 y Fu(=P)107 1651 y Fq(A)178 1643 y Fr(+)20 b Fu(T)303 1651 y Fs(1)368 1643 y Fu(P)6 b(=P)510 1651 y Fq(A)561 1643 y Fr(\))p Fi(.)37 b(Mor)m(eo)o(ver)-8 b(,)26 b(for)d(any)h Fu(")30 b(>)g Fr(0)p Fi(,)25 b(the)e(e)o(xecution)-150 1726 y(time)15 b(is)h Fu(O)r Fr(\()p Fu(T)195 1734 y Ft(1)229 1726 y Fu(=P)316 1734 y Fq(A)372 1726 y Fr(+)5 b(\()p Fu(T)512 1734 y Fs(1)582 1726 y Fr(+)g(lg)q(\(1)p Fu(=")p Fr(\)\))p Fu(P)h(=P)1051 1734 y Fq(A)1102 1726 y Fr(\))16 b Fi(with)f(pr)m(obability)h(at)g(least)-150 1809 y Fr(1)h Fm(\000)g Fu(")p Fi(.)-150 1951 y(Pr)m(oof:)74 b Fv(As)15 b(in)f(the)h(proofs)g(of)g(Theorems)g(10)g(and)g(11,)h(it)e (remains)h(to)f(ar)o(gue)-150 2034 y(that)21 b(in)h(each)g(phase)g(the) g(potential)f(decreases)i(by)f(a)f(constant)h(fraction)g(of)-150 2117 y Fr(\010)-95 2125 y Fq(i)-68 2117 y Fr(\()p Fu(A)20 2125 y Fq(i)46 2117 y Fr(\))29 b Fv(with)g(constant)h(probability)-5 b(.)56 b(W)-6 b(e)30 b(de\002ne)f(a)h(phase)h(to)e(contain)-150 2200 y(at)f(least)g Fr(2)p Fu(P)35 b Fr(+)24 b(1)k Fv(thro)n(ws.)51 b(Consider)28 b(a)g(phase)h(be)o(ginning)h(at)e(round)h Fu(i)p Fv(.)-150 2283 y(Some)15 b(process)h Fu(q)i Fv(e)o(x)o(ecuted)f (at)e(least)g(three)g(thro)n(ws)h(during)g(the)f(phase,)i(so)e(it)-150 2366 y(called)h Fk(yieldToAll)j Fv(at)d(some)g(round)i(before)e(the)h (third)f(thro)n(w)-5 b(.)22 b(Since)16 b Fu(q)j Fv(is)-150 2449 y(scheduled)d(at)f(some)g(round)g(after)g(its)f(call)g(to)g Fk(yieldToAll)p Fv(,)k(e)n(v)o(ery)d(process)-150 2532 y(is)29 b(scheduled)j(at)d(least)h(once)g(during)h(the)f(phase.)56 b(Thus,)33 b(the)c(potential)-150 2615 y(decreases)24 b(by)g(at)g(least)f Fr(\(5)p Fu(=)p Fr(9\)\010)724 2623 y Fq(i)751 2615 y Fr(\()p Fu(A)839 2623 y Fq(i)865 2615 y Fr(\))p Fv(.)37 b(The)23 b(remainder)h(of)g(the)f(proof)h(is)-150 2698 y(the)19 b(same)g(as)g(that)g(of)g(Theorem)g(9.)p 1809 2698 42 42 v -150 2896 a Fw(5)74 b(Related)19 b(w)o(ork)-150 3022 y Fv(Prior)39 b(w)o(ork)g(on)h(thread)g(scheduling)h(has)e(not)h (considered)h(multipro-)-150 3105 y(grammed)31 b(en)m(vironments,)j(b)o (ut)c(in)g(addition)h(to)f(pro)o(ving)i(time)d(bounds,)-150 3188 y(some)e(of)f(this)g(w)o(ork)h(has)g(considered)h(bounds)g(on)f (other)f(metrics)h(of)f(in-)-150 3271 y(terest,)18 b(such)g(as)h(space) g(and)f(communication.)25 b(F)o(or)17 b(the)i(restricted)f(class)g(of) -150 3354 y(\223fully)25 b(strict\224)g(multithreaded)h(computations,)i (the)e(w)o(ork)g(stealing)f(algo-)-150 3437 y(rithm)17 b(is)f(ef)n(\002cient)h(with)f(respect)h(to)g(both)h(space)f(and)h (communication)g([8].)-150 3520 y(Moreo)o(v)o(er)m(,)27 b(when)f(coupled)g(with)f(\223dag-consistent\224)i(distrib)o(uted)e (shared)-150 3604 y(memory)-5 b(,)25 b(w)o(ork)f(stealing)f(is)g(also)g (ef)n(\002cient)g(with)g(respect)h(to)f(page)h(f)o(aults)-150 3687 y([6].)31 b(F)o(or)21 b(these)g(reasons,)i(w)o(ork)f(stealing)g (is)f(practical)g(and)i(v)n(ariants)f(ha)o(v)o(e)-150 3770 y(been)29 b(implemented)h(in)e(man)o(y)h(systems)g([7)q(,)e(16)q (,)h(17)q(,)g(21)q(,)f(30)q(,)h(34)q(].)51 b(F)o(or)-150 3853 y(general)30 b(multithreaded)g(computations,)j(other)d(scheduling) g(algorithms)-150 3936 y(ha)o(v)o(e)19 b(also)f(been)h(sho)n(wn)h(to)e (be)g(simultaneously)i(ef)n(\002cient)e(with)g(respect)h(to)-150 4019 y(time)h(and)h(space)g([4,)e(5)q(,)g(11)q(,)h(12].)27 b(Of)20 b(particular)g(interest)g(here)g(is)g(the)h(idea)-150 4102 y(of)26 b(deri)n(ving)h(parallel)f(schedules)i(from)e(serial)g (schedules)h([4,)f(5],)h(which)-150 4185 y(produces)20 b(strong)g(upper)f(bounds)h(on)g(time)e(and)h(space.)24 b(The)19 b(practical)g(ap-)-150 4268 y(plication)k(and)h(possible)g (adaptation)g(of)f(this)g(idea)g(to)g(multiprogrammed)-150 4351 y(en)m(vironments)d(is)f(an)g(open)h(question.)-73 4434 y(Prior)j(w)o(ork)i(that)f(has)g(considered)i(multiprogrammed)f (en)m(vironments)-150 4517 y(has)20 b(focused)h(on)f(the)g(k)o (ernel-le)n(v)o(el)h(scheduler)l(.)27 b(W)m(ith)19 b(coscheduling)j (\(also)-150 4600 y(called)17 b(gang)h(scheduling\))h([15)q(,)d(29)q (],)h(all)g(of)g(the)g(processes)i(belonging)g(to)e(a)-150 4683 y(computation)h(are)e(scheduled)i(simultaneously)-5 b(,)18 b(thereby)f(gi)n(ving)g(the)f(com-)-150 4766 y(putation)25 b(the)f(illusion)g(of)h(running)g(on)g(a)f(dedicated)h(machine.)40 b(Interest-)-150 4849 y(ingly)-5 b(,)18 b(it)f(has)h(recently)g(been)h (sho)n(wn)f(that)g(coscheduling)h(can)f(be)g(achie)n(v)o(ed)-150 4932 y(with)24 b(little)g(or)h(no)g(modi\002cation)g(to)g(e)o(xisting)g (multiprocessor)h(operating)-150 5015 y(systems)20 b([14)q(,)f(31)q(].) 26 b(Unfortunately)-5 b(,)20 b(for)g(some)h(job)f(mix)o(es,)g (coscheduling)-150 5098 y(is)g(not)h(appropriate.)29 b(F)o(or)20 b(e)o(xample,)h(a)f(job)h(mix)g(consisting)g(of)g(one)g (paral-)-150 5181 y(lel)f(computation)i(and)f(one)g(serial)f (computation)i(cannot)g(be)f(coscheduled)-150 5264 y(ef)n(\002ciently) -5 b(.)39 b(W)m(ith)24 b(process)h(control)f([32)q(],)h(processors)g (are)g(dynamically)-150 5347 y(partitioned)19 b(among)i(the)e(running)h (computations)g(so)f(that)g(each)h(computa-)-150 5430 y(tion)k(runs)h(on)g(a)f(set)g(of)h(processors)g(that)f(gro)n(ws)h(and) g(shrinks)g(o)o(v)o(er)f(time,)2049 -75 y(and)16 b(each)h(computation)g (creates)e(and)i(kills)e(processes)i(so)f(that)f(the)h(number)2049 8 y(of)22 b(processes)i(matches)e(the)h(number)g(of)f(processors.)34 b(W)-6 b(e)22 b(are)g(not)h(a)o(w)o(are)2049 91 y(of)e(an)o(y)h (commercial)g(operating)h(system)f(that)f(supports)h(process)h (control,)2049 174 y(b)o(ut)j(it)f(is)h(a)g(natural)g(complement)h(for) f(our)h(non-blocking)h(w)o(ork)e(stealer)l(.)2049 257 y(In)19 b(particular)m(,)f(with)h(w)o(ork)g(stealing,)g(adding)h(and)f (remo)o(ving)h(processes)g(is)2049 340 y(easy)-5 b(,)29 b(and)e(with)g(our)g(non-blocking)i(implementation,)g(we)d(can)i(be)f (lazy)2049 423 y(about)e(remo)o(ving)h(processes,)g(because)g(the)e (penalty)h(for)g(operating)g(with)2049 506 y(more)19 b(processes)h(than)g(processors)g(is)e(small.)2049 673 y Fw(6)74 b(Conc)o(lusion)2049 800 y Fv(Whereas)37 b(traditional)h (thread)f(schedulers)i(demonstrate)f(poor)g(perfor)o(-)2049 883 y(mance)22 b(in)f(multiprogrammed)i(en)m(vironments)g([9,)e(13)q(,) f(14)q(,)h(20],)h(the)f(non-)2049 966 y(blocking)k(w)o(ork)g(stealer)e (e)o(x)o(ecutes)i(with)e(guaranteed)j(high)e(performance)2049 1049 y(in)29 b(such)h(en)m(vironments.)55 b(By)29 b(implementing)g(the) h(w)o(ork-stealing)f(algo-)2049 1132 y(rithm)j(with)f(non-blocking)k (deques)e(and)g(judicious)g(use)f(of)g(yield)h(sys-)2049 1215 y(tem)15 b(calls,)g(the)g(non-blocking)i(w)o(ork)f(stealer)f(e)o (x)o(ecutes)g(an)o(y)h(multithreaded)2049 1298 y(computation)25 b(with)e(w)o(ork)h Fu(T)2823 1306 y Ft(1)2880 1298 y Fv(and)g(critical-path)f(length)h Fu(T)3650 1306 y Fs(1)3715 1298 y Fv(,)g(using)g(an)o(y)2049 1381 y(number)d Fu(P)30 b Fv(of)20 b(processes,)g(in)g(e)o(xpected)h(time)e Fu(O)r Fr(\()p Fu(T)3431 1389 y Ft(1)3466 1381 y Fu(=P)3553 1389 y Fq(A)3621 1381 y Fr(+)f Fu(T)3744 1389 y Fs(1)3808 1381 y Fu(P)6 b(=P)3950 1389 y Fq(A)4001 1381 y Fr(\))p Fv(,)2049 1464 y(where)22 b Fu(P)2302 1472 y Fq(A)2374 1464 y Fv(is)g(the)g(a)o(v)o(erage)h(number)g(of)f(processors)h(on)g (which)f(the)g(com-)2049 1547 y(putation)j(e)o(x)o(ecutes.)38 b(Thus,)26 b(it)d(achie)n(v)o(es)i(linear)f(speedup)h(\227)e(that)h (is,)h(e)o(x-)2049 1630 y(ecution)i(time)e Fu(O)r Fr(\()p Fu(T)2588 1638 y Ft(1)2623 1630 y Fu(=P)2710 1638 y Fq(A)2761 1630 y Fr(\))g Fv(\227)g(whene)n(v)o(er)i(the)f(number)h(of)f (processes)h(is)2049 1713 y(small)15 b(relati)n(v)o(e)g(to)g(the)g(a)o (v)o(erage)g(parallelism)g Fu(T)3277 1721 y Ft(1)3311 1713 y Fu(=T)3394 1721 y Fs(1)3475 1713 y Fv(of)g(the)g(computation.) 2049 1796 y(Moreo)o(v)o(er)m(,)k(this)e(bound)i(holds)f(e)n(v)o(en)h (when)f(the)g(number)g(of)g(processes)h(e)o(x-)2049 1879 y(ceeds)30 b(the)g(number)h(of)f(processors)g(and)h(e)n(v)o(en)f(when)h (the)e(computation)2049 1962 y(runs)c(on)g(a)f(set)h(of)f(processors)i (that)e(gro)n(ws)h(and)h(shrinks)f(o)o(v)o(er)g(time.)39 b(W)-6 b(e)2049 2045 y(pro)o(v)o(e)18 b(this)f(result)g(under)i(the)e (assumption)i(that)e(the)g(k)o(ernel,)h(which)g(sched-)2049 2128 y(ules)h(processes)h(on)f(processors)i(and)e(determines)h Fu(P)3443 2136 y Fq(A)3493 2128 y Fv(,)e(is)h(an)g(adv)o(ersary)-5 b(.)2126 2211 y(In)24 b(addition)h(to)f(the)g(analytical)g(results)g (reported)h(here,)g(we)f(also)h(ha)o(v)o(e)2049 2294 y(empirical)j(results)f([9])h(that)f(attest)g(to)h(the)g(practical)g (application)g(of)g(the)2049 2377 y(non-blocking)23 b(w)o(ork)f (stealer)l(.)30 b(W)-6 b(e)20 b(ha)o(v)o(e)i(implemented)g(a)f (prototype)h Fk(C++)2049 2460 y Fv(threads)28 b(library)g(using)g(the)f (non-blocking)j(w)o(ork)e(stealer)l(.)49 b(This)27 b(library)2049 2543 y(emplo)o(ys)g(a)e(combination)i(of)f(the)f(UNIX)g Fk(priocntl)i Fv(\(priority)e(control\))2049 2626 y(and)d Fk(yield)f Fv(system)h(calls)e(to)h(implement)g(a)g Fk(yieldToAll)p Fv(.)31 b(The)21 b(empiri-)2049 2709 y(cal)h(results)f(sho)n(w)i(that)e (application)i(performance)g(does)f(conform)h(to)e(our)2049 2792 y(analytical)d(bound)i(and)f(that)f(the)g(constant)h(hidden)g (inside)g(the)f(big-Oh)g(no-)2049 2875 y(tation)h(is)f(small)h(\227)f (roughly)j Fr(1)p Fv(.)2126 2958 y(In)38 b(the)h(near)f(future,)44 b(we)38 b(plan)h(to)f(transfer)g(this)h(technology)h(into)2049 3041 y(production-quality)28 b(systems)f(and)g(in)m(v)o(estigate)g(its) f(application)h(to)f(real-)2049 3124 y(time)21 b(and)i(multimedia)f (systems.)32 b(Lik)o(ely)22 b(tar)o(gets)g(for)f(technology)j(trans-) 2049 3207 y(fer)g(include)h(the)f(Cilk)g([7,)g(18)q(])g(and)h(Ja)o(v)n (a)f([3])g(multithreaded)i(languages,)2049 3290 y(a)c(POSIX)f(threads)i (library)-5 b(,)23 b(and)g(a)f(parallelizing)h(compiler)l(.)33 b(W)-6 b(e)22 b(conjec-)2049 3373 y(ture)f(that)f(if)h(our)g(user)o (-le)n(v)o(el)f(thread)i(scheduler)f(is)g(coupled)h(with)e(a)h(k)o (ernel)2049 3456 y(scheduler)27 b(that)f(can)g(deli)n(v)o(er)g (guarantees)h(on)g Fu(P)3353 3464 y Fq(A)3403 3456 y Fv(,)g(then)f(we)g(can)g(deli)n(v)o(er)2049 3539 y(end-to-end)19 b(e)o(x)o(ecution-time)g(guarantees)h(for)d(real-time)h(and)h (multimedia)2049 3622 y(applications.)46 b(Our)27 b(scheduler)g(ef)n (fecti)n(v)o(ely)g(relie)n(v)o(es)f(the)h(k)o(ernel)g(of)f(an)o(y)2049 3705 y(load-balancing)i(b)o(urden,)h(allo)n(wing)e(the)f(k)o(ernel)i (to)e(focus)h(on)g(aggre)o(gate)2049 3788 y(resource)20 b(allocation)f(with)g(respect)g(to)g(the)g Fu(P)3252 3796 y Fq(A)3321 3788 y Fv(metric.)2049 3956 y Fw(Ac)o(kno)o (wledgments)2049 4082 y Fv(Coming)37 b(up)g(with)f(a)h(correct)g (non-blocking)i(implementation)e(of)g(the)2049 4165 y(deque)27 b(data)e(structure)h(w)o(as)g(not)g(easy)-5 b(,)27 b(and)f(we)g(ha)o(v) o(e)f(se)n(v)o(eral)h(people)h(to)2049 4248 y(thank.)d(K)n(eith)18 b(Randall)h(of)g(MIT)f(found)i(a)e(b)o(ug)h(in)g(an)g(early)g(v)o (ersion)g(of)f(our)2049 4331 y(implementation,)33 b(and)d(Mark)g(Moir)g (of)f(The)g(Uni)n(v)o(ersity)h(of)g(Pittsb)o(ur)o(gh)2049 4414 y(suggested)19 b(ideas)f(that)f(lead)h(us)g(to)f(a)h(correct)g (implementation.)23 b(K)n(eith)18 b(also)2049 4497 y(ga)o(v)o(e)h(us)h (v)n(aluable)h(feedback)g(on)f(a)f(draft)h(of)f(this)h(paper)l(.)25 b(W)-6 b(e)19 b(thank)i(Dion-)2049 4580 y(isios)k(P)o(apadopoulos)i(of) f(UT)e(Austin,)j(who)f(has)g(been)g(collaborating)g(on)2049 4663 y(our)d(implementation)g(and)f(empirical)h(study)f(of)h(the)f (non-blocking)i(w)o(ork)2049 4746 y(stealer)l(.)43 b(Finally)-5 b(,)27 b(we)f(thank)h(Charles)e(Leiserson)i(and)f(Matteo)g(Frigo)g(of) 2049 4829 y(MIT)e(and)g(Geeta)g(T)-6 b(arachandani)26 b(of)e(UT)f(Austin)h(for)g(listening)g(patiently)2049 4913 y(as)19 b(we)g(tried)f(to)h(hash)h(out)f(some)g(of)g(our)h(early)f (ideas.)2049 5080 y Fw(Ref)o(erences)2082 5198 y Fo([1])42 b(M.)16 b(Accetta,)j(R.)d(Baron,)h(W)-6 b(.)15 b(Bolosk)o(y)l(,)i(D.)f (Golub,)h(R.)f(Rashid,)h(A.)f(T)-5 b(e)n(v)n(anian,)2201 5273 y(and)22 b(M.)f(Y)-7 b(oung.)37 b(Mach:)31 b(A)21 b(ne)n(w)h(k)o(ernel)h(foundation)h(for)d(UNIX)g(de)n(v)o(elop-)2201 5347 y(ment.)e(In)14 b Fn(Pr)m(oceedings)i(of)f(the)g(Summer)g(1986)g (USENIX)f(Confer)n(ence)p Fo(,)j(pages)2201 5422 y(93\226112,)h(July)f (1986.)1908 5679 y Fw(10)p eop %%Page: 11 11 11 10 bop -117 -75 a Fo([2])42 b(Noga)27 b(Alon)f(and)h(Joel)g(H.)f (Spencer)l(.)56 b Fn(The)26 b(Pr)m(obabilistic)j(Method)p Fo(.)56 b(John)2 -1 y(W)m(ile)o(y)18 b(&)f(Sons,)f(1992.)-117 107 y([3])42 b(K)n(en)23 b(Arnold)g(and)g(James)f(Gosling.)42 b Fn(The)23 b(J)n(ava)g(Pr)m(o)o(gr)o(amming)g(Langua)o(g)o(e)p Fo(.)2 182 y(Addison-W)-5 b(esle)o(y)l(,)18 b(1996.)-117 290 y([4])42 b(Guy)17 b(E.)f(Blelloch,)j(Phillip)g(B.)d(Gibbons,)h(and) h(Y)-7 b(ossi)16 b(Matias.)25 b(Pro)o(v)n(ably)19 b(ef)n(\002-)2 365 y(cient)i(scheduling)h(for)d(languages)j(with)e(\002ne-grained)i (parallelism.)34 b(In)19 b Fn(Pr)m(o-)2 439 y(ceedings)24 b(of)e(the)h(7th)f(Annual)g(A)n(CM)g(Symposium)h(on)f(P)-5 b(ar)o(allel)23 b(Algorithms)2 514 y(and)17 b(Ar)n(c)o(hitectur)n(es)p Fo(,)i(pages)e(1\22612,)g(Santa)i(Barbara,)f(California,)i(July)d (1995.)-117 622 y([5])42 b(Guy)32 b(E.)e(Blelloch,)37 b(Phillip)c(B.)e(Gibbons,)36 b(Y)-7 b(ossi)31 b(Matias,)36 b(and)c(Girija)h(J.)2 697 y(Narlikar)l(.)e(Space-ef)n(\002cient)23 b(scheduling)d(of)f(parallelism)i(with)e(synchroniza-)2 772 y(tion)g(v)n(ariables.)31 b(In)19 b Fn(Pr)m(oceedings)h(of)e(the)h (9th)g(Annual)g(A)n(CM)f(Symposium)i(on)2 846 y(P)-5 b(ar)o(allel)19 b(Algorithms)f(and)f(Ar)n(c)o(hitectur)n(es)p Fo(,)i(pages)f(12\22623,)g(Ne)n(wport,)h(Rhode)2 921 y(Island,)f(June)f(1997.)-117 1029 y([6])42 b(Robert)26 b(D.)e(Blumofe,)j(Matteo)g(Frigo,)g(Christopher)g(F)-5 b(.)23 b(Joer)o(g,)k(Charles)f(E.)2 1104 y(Leiserson,)d(and)g(K)n(eith) g(H.)e(Randall.)41 b(An)21 b(analysis)j(of)d(dag-consistent)k(dis-)2 1178 y(trib)o(uted)18 b(shared-memory)g(algorithms.)23 b(In)16 b Fn(Pr)m(oceedings)i(of)f(the)g(8th)f(Annual)2 1253 y(A)n(CM)31 b(Symposium)h(on)e(P)-5 b(ar)o(allel)32 b(Algorithms)g(and)e(Ar)n(c)o(hitectur)n(es)p Fo(,)36 b(pages)2 1328 y(297\226308,)18 b(P)o(adua,)f(Italy)l(,)h(June)f(1996.) -117 1436 y([7])42 b(Robert)36 b(D.)d(Blumofe,)39 b(Christopher)d(F)-5 b(.)33 b(Joer)o(g,)38 b(Bradle)o(y)e(C.)e(K)o(uszmaul,)2 1510 y(Charles)28 b(E.)d(Leiserson,)k(K)n(eith)e(H.)f(Randall,)k(and)d (Y)-7 b(uli)26 b(Zhou.)53 b(Cilk:)41 b(An)2 1585 y(ef)n(\002cient)23 b(multithreaded)h(runtime)e(system.)34 b Fn(J)n(ournal)22 b(of)f(P)-5 b(ar)o(allel)21 b(and)g(Dis-)2 1660 y(trib)o(uted)e (Computing)p Fo(,)f(37\(1\):55\22669,)h(August)e(1996.)-117 1768 y([8])42 b(Robert)32 b(D.)e(Blumofe)i(and)f(Charles)h(E.)d (Leiserson.)69 b(Scheduling)33 b(multi-)2 1843 y(threaded)23 b(computations)h(by)d(w)o(ork)g(stealing.)39 b(In)21 b Fn(Pr)m(oceedings)i(of)e(the)h(35th)2 1917 y(Annual)31 b(Symposium)h(on)f(F)-7 b(oundations)32 b(of)f(Computer)h(Science)h (\(FOCS\))p Fo(,)2 1992 y(pages)18 b(356\226368,)g(Santa)g(Fe,)e(Ne)n (w)i(Me)o(xico,)g(No)o(v)o(ember)g(1994.)-117 2100 y([9])42 b(Robert)18 b(D.)e(Blumofe)i(and)f(Dionisios)h(P)o(apadopoulos.)26 b(The)17 b(performance)i(of)2 2175 y(w)o(ork)g(stealing)i(in)e (multiprogrammed)i(en)m(vironments)h(\(e)o(xtended)f(abstract\).)2 2249 y(In)26 b Fn(Pr)m(oceedings)h(of)f(the)g(1998)g(A)n(CM)f (SIGMETRICS)h(International)i(Con-)2 2324 y(fer)n(ence)23 b(on)d(Measur)n(ement)j(and)e(Modeling)i(of)e(Computer)h(Systems,)g(P) -5 b(oster)2 2399 y(Session)p Fo(,)18 b(Madison,)f(W)m(isconsin,)h (June)g(1998.)-150 2507 y([10])42 b(Richard)17 b(P)-7 b(.)14 b(Brent.)21 b(The)15 b(parallel)j(e)n(v)n(aluation)h(of)c (general)i(arithmetic)i(e)o(xpres-)2 2581 y(sions.)24 b Fn(J)n(ournal)19 b(of)e(the)h(A)n(CM)p Fo(,)e(21\(2\):201\226206,)j (April)f(1974.)-150 2689 y([11])42 b(F)-5 b(.)19 b(W)-5 b(arren)20 b(Burton.)34 b(Guaranteeing)23 b(good)e(space)g(bounds)f (for)g(parallel)i(pro-)2 2764 y(grams.)39 b(T)-5 b(echnical)25 b(Report)e(92-10,)g(Simon)f(Fraser)g(Uni)n(v)o(ersity)l(,)j(School)e (of)2 2839 y(Computing)c(Science,)f(No)o(v)o(ember)g(1992.)-150 2947 y([12])42 b(F)-5 b(.)17 b(W)-5 b(arren)19 b(Burton)g(and)g(Da)o (vid)f(J.)g(Simpson.)28 b(Space)19 b(ef)n(\002cient)i(e)o(x)o(ecution)g (of)2 3021 y(deterministic)g(parallel)e(programs.)25 b(Unpublished)19 b(manuscript,)f(1994.)-150 3129 y([13])42 b(Mark)17 b(Cro)o(v)o(ella,)h(Prakash)g(Das,)e(Czarek)i(Dubnicki,)f (Thomas)f(LeBlanc,)i(and)2 3204 y(Ev)n(angelos)h(Markatos.)27 b(Multiprogramming)21 b(on)c(multiprocessors.)28 b(In)17 b Fn(Pr)m(o-)2 3279 y(ceedings)26 b(of)f(the)f(Thir)n(d)g(IEEE)f (Symposium)i(on)f(P)-5 b(ar)o(allel)25 b(and)g(Distrib)o(uted)2 3354 y(Pr)m(ocessing)p Fo(,)18 b(December)g(1991.)-150 3461 y([14])42 b(Andrea)19 b(C.)e(Dusseau,)i(Remzi)f(H.)f(Arpaci,)i (and)g(Da)o(vid)f(E.)e(Culler)l(.)29 b(Ef)n(fecti)n(v)o(e)2 3536 y(distrib)o(uted)e(scheduling)f(of)f(parallel)i(w)o(orkloads.)48 b(In)24 b Fn(Pr)m(oceedings)i(of)f(the)2 3611 y(A)n(CM)h(SIGMETRICS)g (International)k(Confer)n(ence)e(on)e(Measur)n(ement)i(and)2 3686 y(Modeling)22 b(of)d(Computer)i(Systems)p Fo(,)g(pages)f (25\22636,)g(Philadelphia,)k(Pennsyl-)2 3760 y(v)n(ania,)19 b(May)e(1996.)-150 3868 y([15])42 b(Dror)24 b(G.)f(Feitelson)j(and)e (Larry)g(Rudolph.)47 b(Coscheduling)27 b(based)e(on)e(run-)2 3943 y(time)f(identi\002cation)j(of)d(acti)n(vity)i(w)o(orking)f(sets.) 37 b Fn(International)25 b(J)n(ournal)d(of)2 4018 y(P)-5 b(ar)o(allel)18 b(Pr)m(o)o(gr)o(amming)p Fo(,)f(23\(2\):135\226160,)i (April)f(1995.)-150 4126 y([16])42 b(Raphael)16 b(Fink)o(el)f(and)e (Udi)h(Manber)l(.)j(DIB)c(\227)h(A)e(distrib)o(uted)k(implementation)2 4200 y(of)i(backtracking.)29 b Fn(A)n(CM)18 b(T)l(r)o(ansactions)h(on)f (Pr)m(o)o(gr)o(amming)g(Langua)o(g)o(es)h(and)2 4275 y(Systems)p Fo(,)f(9\(2\):235\226256,)g(April)g(1987.)-150 4383 y([17])42 b(V)l(incent)29 b(W)-6 b(.)26 b(Freeh,)k(Da)o(vid)e(K.)e (Lo)n(wenthal,)31 b(and)d(Gre)o(gory)g(R.)e(Andre)n(ws.)2 4458 y(Distrib)o(uted)c(Filaments:)29 b(Ef)n(\002cient)21 b(\002ne-grain)h(parallelism)g(on)e(a)g(cluster)i(of)2 4532 y(w)o(orkstations.)48 b(In)24 b Fn(Pr)m(oceedings)i(of)e(the)g(F)m (ir)o(st)g(Symposium)h(on)f(Oper)o(ating)2 4607 y(Systems)18 b(Design)f(and)g(Implementation)p Fo(,)j(pages)e(201\226213,)f(Montere) o(y)l(,)h(Cali-)2 4682 y(fornia,)g(No)o(v)o(ember)g(1994.)-150 4790 y([18])42 b(Matteo)18 b(Frigo,)e(Charles)h(E.)d(Leiserson,)j(and)f (K)n(eith)h(H.)e(Randall.)23 b(The)16 b(imple-)2 4865 y(mentation)h(of)e(the)h(Cilk-5)g(multithreaded)i(language.)k(In)14 b Fn(Pr)m(oceedings)j(of)e(the)2 4939 y(1998)j(A)n(CM)g(SIGPLAN)f (Confer)n(ence)j(on)e(Pr)m(o)o(gr)o(amming)g(Langua)o(g)o(e)i(Design)2 5014 y(and)d(Implementation)k(\(PLDI\))p Fo(,)16 b(Montreal,)j(Canada,) f(June)f(1998.)-150 5122 y([19])42 b(Seth)14 b(Copen)g(Goldstein,)i (Klaus)e(Erik)f(Schauser)m(,)j(and)d(Da)o(vid)h(E.)e(Culler)l(.)18 b(Lazy)2 5197 y(threads:)40 b(Implementing)27 b(a)f(f)o(ast)g(parallel) i(call.)52 b Fn(J)n(ournal)27 b(of)e(P)-5 b(ar)o(allel)26 b(and)2 5271 y(Distrib)o(uted)19 b(Computing)p Fo(,)f(37\(1\):5\22620,) h(August)e(1996.)2049 -75 y([20])42 b(Anoop)21 b(Gupta,)i(Andre)n(w)e (T)m(uck)o(er)m(,)i(and)e(Shigeru)h(Urushibara.)38 b(The)20 b(impact)2201 -1 y(of)d(operating)j(system)e(scheduling)h(policies)h (and)e(synchronization)j(methods)2201 74 y(on)26 b(the)h(performance)h (of)e(parallel)i(applications.)56 b(In)26 b Fn(Pr)m(oceedings)i(of)e (the)2201 149 y(1991)18 b(A)n(CM)f(SIGMETRICS)g(Confer)n(ence)j(on)d (Measur)n(ement)i(and)e(Modeling)2201 224 y(of)g(Computer)i(Systems)p Fo(,)e(May)h(1991.)2049 332 y([21])42 b(Robert)21 b(H.)e(Halstead,)k (Jr)l(.)33 b(Implementation)23 b(of)d(Multilisp:)29 b(Lisp)20 b(on)g(a)g(mul-)2201 406 y(tiprocessor)l(.)45 b(In)23 b Fn(Confer)n(ence)j(Recor)n(d)c(of)i(the)f(1984)h(A)n(CM)f(Symposium)h (on)2201 481 y(Lisp)g(and)f(Functional)j(Pr)m(o)o(gr)o(amming)p Fo(,)f(pages)g(9\22617,)g(Austin,)g(T)-5 b(e)o(xas,)26 b(Au-)2201 556 y(gust)17 b(1984.)2049 664 y([22])42 b(M.)26 b(Herlihy)i(and)f(J.)f(W)m(ing.)55 b(Axioms)27 b(for)g(concurrent)i (objects.)57 b(In)26 b Fn(Pr)m(o-)2201 738 y(ceedings)21 b(of)e(the)h(14th)f(A)n(CM)g(Symposium)h(on)e(Principles)j(of)e(Pr)m(o) o(gr)o(amming)2201 813 y(Langua)o(g)o(es)p Fo(,)g(pages)e(13\22626,)h (January)g(1987.)2049 921 y([23])42 b(Maurice)18 b(Herlihy)l(.)k(A)16 b(methodology)h(for)f(implementing)j(highly)e(concurrent)2201 996 y(data)h(structures.)24 b(In)17 b Fn(Pr)m(oceedings)h(of)f(the)g (Second)h(A)n(CM)e(SIGPLAN)g(Sympo-)2201 1070 y(sium)23 b(on)g(Principles)h(and)f(Pr)o(actice)h(of)f(P)-5 b(ar)o(allel)24 b(Pr)m(o)o(gr)o(amming)f(\(PP)-5 b(oPP\))p Fo(,)2201 1145 y(pages)18 b(197\226206,)g(Seattle,)h(W)-5 b(ashington,)18 b(March)g(1990.)2049 1253 y([24])42 b(Maurice)25 b(Herlihy)l(.)44 b(W)-5 b(ait-free)24 b(synchronization.)47 b Fn(A)n(CM)23 b(T)l(r)o(ansactions)i(on)2201 1328 y(Pr)m(o)o(gr)o(amming)17 b(Langua)o(g)o(es)i(and)d(Systems)p Fo(,)h(11\(1\):124\226149,)i (January)f(1991.)2049 1436 y([25])42 b(M.)22 b(Frans)h(Kaashoek,)j(Da)o (wson)d(R.)g(Engler)m(,)i(Gre)o(gory)e(R.)g(Ganger)m(,)i(H)t(\264)-26 b(ector)2201 1510 y(M.)14 b(Brice)h(no,)g(Russell)g(Hunt,)g(Da)o(vid)g (Mazi)t(\036)-26 b(eres,)16 b(Thomas)e(Pinckne)o(y)l(,)i(Robert)2201 1585 y(Grimm,)22 b(John)f(Jannotti,)j(and)d(K)n(enneth)j(Mack)o(enzie.) 40 b(Application)25 b(perfor)o(-)2201 1660 y(mance)i(and)f(\003e)o (xibility)i(on)d(e)o(xok)o(ernel)k(systems.)51 b(In)25 b Fn(Pr)m(oceedings)i(of)f(the)2201 1735 y(Sixteenth)h(A)n(CM)d (Symposium)h(on)g(Oper)o(ating)g(Systems)g(Principles)p Fo(,)i(Saint-)2201 1809 y(Malo,)18 b(France,)g(October)g(1997.)2049 1917 y([26])42 b(Charles)18 b(E.)e(Leiserson,)h(Zahi)g(S.)f(Ab)o (uhamdeh,)h(Da)o(vid)h(C.)e(Douglas,)h(Carl)h(R.)2201 1992 y(Fe)o(ynman,)29 b(Mahesh)f(N.)d(Ganmukhi,)30 b(Jef)n(fre)o(y)e(V) -9 b(.)26 b(Hill,)j(W)-6 b(.)26 b(Daniel)i(Hillis,)2201 2067 y(Bradle)o(y)23 b(C.)e(K)o(uszmaul,)i(Mar)o(garet)g(A.)d(St.)h (Pierre,)i(Da)o(vid)f(S.)e(W)-5 b(ells,)22 b(Mon-)2201 2141 y(ica)16 b(C.)d(W)-5 b(ong,)15 b(Sha)o(w-W)-5 b(en)14 b(Y)-7 b(ang,)16 b(and)f(Robert)g(Zak.)j(The)d(netw)o(ork)h(architec-) 2201 2216 y(ture)k(of)f(the)h(Connection)i(Machine)g(CM-5.)31 b(In)19 b Fn(Pr)m(oceedings)i(of)e(the)h(F)-7 b(ourth)2201 2291 y(Annual)26 b(A)n(CM)f(Symposium)i(on)e(P)-5 b(ar)o(allel)27 b(Algorithms)f(and)f(Ar)n(c)o(hitectur)n(es)p Fo(,)2201 2366 y(pages)18 b(272\226285,)g(San)f(Die)o(go,)g(California,)j(June)d (1992.)2049 2473 y([27])42 b(Eric)15 b(Mohr)m(,)g(Da)o(vid)h(A.)e (Kranz,)h(and)h(Robert)g(H.)e(Halstead,)i(Jr)l(.)j(Lazy)c(task)h(cre-) 2201 2548 y(ation:)23 b(A)15 b(technique)k(for)e(increasing)h(the)f (granularity)i(of)e(parallel)i(programs.)2201 2623 y Fn(IEEE)27 b(T)l(r)o(ansactions)i(on)f(P)-5 b(ar)o(allel)29 b(and)f(Distrib)o(uted)i(Systems)p Fo(,)h(2\(3\):264\226)2201 2698 y(280,)17 b(July)g(1991.)2049 2806 y([28])42 b(Mark)21 b(Moir)l(.)34 b(Practical)23 b(implementations)g(of)d(non-blocking)j (synchroniza-)2201 2880 y(tion)c(primiti)n(v)o(es.)27 b(In)18 b Fn(Pr)m(oceedings)h(of)f(the)g(16th)g(A)n(CM)g(Symposium)g (on)g(Prin-)2201 2955 y(ciples)27 b(of)e(Distrib)o(uted)h(Computing)p Fo(,)j(Santa)d(Barbara,)i(California,)h(August)2201 3030 y(1997.)2049 3138 y([29])42 b(John)15 b(K.)e(Ousterhout.)20 b(Scheduling)d(techniques)g(for)e(concurrent)h(systems.)j(In)2201 3212 y Fn(Pr)m(oceedings)f(of)f(the)g(3r)n(d)f(International)j(Confer)n (ence)g(on)d(Distrib)o(uted)i(Com-)2201 3287 y(puting)h(Systems)p Fo(,)e(May)g(1982.)2049 3395 y([30])42 b(Jaswinder)20 b(P)o(al)e(Singh,)h(Anoop)g(Gupta,)g(and)f(Marc)h(Le)n(v)o(o)o(y)l(.)28 b(P)o(arallel)21 b(visual-)2201 3470 y(ization)e(algorithms:)k (Performance)c(and)e(architectural)22 b(implications.)k Fn(IEEE)2201 3544 y(Computer)p Fo(,)18 b(27\(7\):45\22655,)h(July)e (1994.)2049 3652 y([31])42 b(P)o(atrick)18 b(G.)d(Sobalv)n(arro)k(and)d (W)m(illiam)i(E.)d(W)-5 b(eihl.)22 b(Demand-based)c(cosched-)2201 3727 y(uling)23 b(of)f(parallel)j(jobs)d(on)g(multiprogrammed)i (multiprocessors.)41 b(In)22 b Fn(Pr)m(o-)2201 3802 y(ceedings)h(of)d (the)i(IPPS)d('95)i(W)-6 b(orkshop)21 b(on)g(J)n(ob)g(Sc)o(heduling)i (Str)o(ate)m(gies)g(for)2201 3877 y(P)-5 b(ar)o(allel)18 b(Pr)m(ocessing)p Fo(,)g(April)f(1995.)2049 3984 y([32])42 b(Andre)n(w)26 b(T)m(uck)o(er)g(and)g(Anoop)f(Gupta.)50 b(Process)26 b(control)h(and)e(scheduling)2201 4059 y(issues)17 b(for)g(multiprogrammed)i(shared-memory)f(multiprocessors.)26 b(In)16 b Fn(Pr)m(o-)2201 4134 y(ceedings)k(of)f(the)g(T)-5 b(welfth)20 b(A)n(CM)e(Symposium)h(on)f(Oper)o(ating)i(Systems)f(Prin-) 2201 4209 y(ciples)27 b(\(SOSP\))p Fo(,)d(pages)i(159\226166,)i (Litch\002eld)f(P)o(ark,)g(Arizona,)h(December)2201 4283 y(1989.)2049 4391 y([33])42 b(Jef)n(fre)o(y)27 b(D.)e(Ullman.)52 b(NP-complete)27 b(scheduling)h(problems.)52 b Fn(J)n(ournal)27 b(of)2201 4466 y(Computer)18 b(and)g(System)g(Sciences)p Fo(,)h(10:384\226393,)f(1975.)2049 4574 y([34])42 b(Mark)21 b(T)-5 b(.)19 b(V)-7 b(ande)n(v)o(oorde)22 b(and)e(Eric)h(S.)e (Roberts.)35 b(W)-5 b(orkCre)n(ws:)28 b(An)20 b(abstrac-)2201 4649 y(tion)d(for)e(controlling)k(parallelism.)24 b Fn(International)19 b(J)n(ournal)e(of)f(P)-5 b(ar)o(allel)16 b(Pr)m(o-)2201 4723 y(gr)o(amming)p Fo(,)h(17\(4\):347\226366,)i(August)f(1988.)1908 5679 y Fw(11)p eop %%Trailer end userdict /end-hook known{end-hook}if %%EOF