%!PS-Adobe-2.0 %%Creator: dvips(k) 5.78 Copyright 1998 Radical Eye Software (www.radicaleye.com) %%Title: paper.dvi %%Pages: 49 %%PageOrder: Ascend %%BoundingBox: 0 0 612 792 %%DocumentFonts: Times-Bold Times-Roman Times-Italic Courier %%EndComments %DVIPSCommandLine: dvips paper %DVIPSParameters: dpi=300 %DVIPSSource: TeX output 2001.05.16:0850 %%BeginProcSet: tex.pro %! /TeXDict 250 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 300 300 (paper.dvi) @start %DVIPSBitmapFont: Fa cmsy8 8 1 /Fa 1 1 df0 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fb cmmi6 6 5 /Fb 5 121 df<072018E0306060606060C0C0C0C0C0C841C862D03C600D0B7E8A11>97 D<00E001B001A00300030003001FE003000600060006000600060006000C000C000C000C 0008005800D00060000C167D900F>102 D<71F1F09A1A189C1C18981818181818303030 303030303032303062606064606038170B7E8A1B>109 D<71F09A189C18981818183030 303030323062606460380F0B7E8A13>I<0F381144218C218001800300030003084310C7 3079C00E0B7F8A11>120 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fc cmr6 6 3 /Fc 3 111 df<1F00618040C08060C0600060006000C00180030006000C00102020207F C0FFC00B107F8F0F>50 D108 D110 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fd cmex10 10 3 /Fd 3 89 df22 D<0038003800380038003800380038003800380038003800380038003800380038003800 380038003800380038003800380038003800380038003800380038003800380038003800 380038003800380038003800380038003800380038003800380038003800380038003800 380038003800380038003800380038003800380038003800380038003800380038003800 380038003800380038003800380038003800380038003800380038003800380038003800 38003800380038003800380038FFF8FFF8FFF80D63808118>I88 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fe cmr8 8 4 /Fe 4 62 df<07C018303018701C600C600CE00EE00EE00EE00EE00EE00EE00EE00EE00E 600C600C701C30181C7007C00F157F9412>48 D<06000E00FE000E000E000E000E000E00 0E000E000E000E000E000E000E000E000E000E000E000E00FFE00B157D9412>I<0F8030 E040708030C038E0384038003800700070006000C00180030006000C08080810183FF07F F0FFF00D157E9412>I61 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Ff cmmi8 8 12 /Ff 12 121 df<07FF0000E00000E00000E00000E00001C00001C00001C00001C0000380 000380000380000380000700000700080700080700100E00100E00300E00200E00601C01 E0FFFFC015177F9618>76 D<0030004800880188010803100210061006200C400C400C80 0D001A001C001800180038005800880008100C6007800D1780960E>96 D<071018F0307060706060C060C060C06080C080C480C4C1C446C838700E0E7E8D13>I< 07C01C20301060106020FFC0C000C000C000C000C010402060C01F000C0E7E8D10>101 D<000E0013003700360030006000600060006003FC00C000C000C000C000C00180018001 8001800180030003000300030002006600E600CC007800101D7E9611>I<030003800300 0000000000000000000000001C002400460046008C000C00180018001800310031003200 32001C0009177F960C>105 D<00180038001000000000000000000000000001C0022004 300430086000600060006000C000C000C000C001800180018001806300E300C60078000D 1D80960E>I<1F0006000600060006000C000C000C000C00181C1866188E190C32003C00 3F00318060C060C460C460C4C0C8C0700F177E9612>I<383C1E0044C663004702810046 0301008E0703000C0603000C0603000C060300180C0600180C0620180C0C20180C0C4030 1804C0301807001B0E7F8D1F>109 D<383C0044C6004702004602008E06000C06000C06 000C0600180C00180C40181840181880300980300E00120E7F8D15>I<07C00C20187018 7038001E000FC003E000606060E060C0C0C1803F000C0E7E8D10>115 D<0F1F0011A18020C38020C300418000018000018000018000030000030200C30200E704 00C5080078F000110E7F8D14>120 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fg cmr10 10.95 14 /Fg 14 112 df<00008000000001C000000001C000000003E000000003E000000005F000 000004F000000008F80000000878000000107C000000103C000000203E000000201E0000 00401F000000400F000000800F80000080078000010007C000010003C000020003E00002 0001E000040001F000040000F000080000F80008000078001000007C001000003C002000 003E002000001E007FFFFFFF007FFFFFFF00FFFFFFFF8021207E9F26>1 D<0040008001000300060004000C001800180038003000300070006000600060006000E0 00E000E000E000E000E000E000E000E000E000E000E00060006000600060007000300030 003800180018000C000400060003000100008000400A2E7BA112>40 D<8000400020003000180008000C00060006000700030003000380018001800180018001 C001C001C001C001C001C001C001C001C001C001C001C001800180018001800380030003 000700060006000C000800180030002000400080000A2E7EA112>I<0003000000030000 000300000003000000030000000300000003000000030000000300000003000000030000 00030000000300000003000000030000FFFFFFFCFFFFFFFC000300000003000000030000 000300000003000000030000000300000003000000030000000300000003000000030000 0003000000030000000300001E207E9A23>43 D<03F0000E1C001C0E0018060038070070 0380700380700380700380F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F0 03C0F003C0F003C0F003C0F003C07003807003807003807807803807001806001C0E000E 1C0003F000121F7E9D17>48 D<008003800F80F380038003800380038003800380038003 80038003800380038003800380038003800380038003800380038003800380038007C0FF FE0F1E7C9D17>I<03F0000C1C00100E00200700400780800780F007C0F803C0F803C0F8 03C02007C00007C0000780000780000F00000E00001C0000380000700000600000C00001 80000300000600400C00401800401000803FFF807FFF80FFFF80121E7E9D17>I<000600 000600000E00000E00001E00002E00002E00004E00008E00008E00010E00020E00020E00 040E00080E00080E00100E00200E00200E00400E00C00E00FFFFF0000E00000E00000E00 000E00000E00000E00000E0000FFE0141E7F9D17>52 D61 D91 D93 D<0000E003E3300E3C301C1C30380E00780F00780F00780F00780F00780F0038 0E001C1C001E380033E0002000002000003000003000003FFE001FFF801FFFC03001E060 0070C00030C00030C00030C000306000603000C01C038003FC00141F7F9417>103 D<1C00FC001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C 001C001C001C001C001C001C001C001C001C001C001C001C001C00FF8009207F9F0C> 108 D<01F800070E001C03803801C03801C07000E07000E0F000F0F000F0F000F0F000F0 F000F0F000F07000E07000E03801C03801C01C0380070E0001F80014147F9317>111 D E %EndDVIPSBitmapFont /Fh 134[25 25 1[25 28 17 19 22 1[28 25 28 41 14 2[14 28 25 17 22 28 22 1[25 10[36 1[33 28 36 39 30 39 36 47 33 2[19 1[39 30 33 36 36 13[25 25 25 25 25 1[14 12 17 42[28 2[{TeXBase1Encoding ReEncodeFont}45 49.8132 /Times-Bold rf %DVIPSBitmapFont: Fi cmsy10 10.95 5 /Fi 5 104 df0 D<03F0000FFC001FFE003FFF007FFF 807FFF80FFFFC0FFFFC0FFFFC0FFFFC0FFFFC0FFFFC07FFF807FFF803FFF001FFE000FFC 0003F00012127E9317>15 D<000000C0000003C000000F0000001C00000070000001E000 00078000001E00000078000001E00000038000000E0000003C000000F0000000F0000000 3C0000000E0000000380000001E0000000780000001E0000000780000001E00000007000 00001C0000000F00000003C0000000C00000000000000000000000000000000000000000 0000000000000000000000007FFFFF80FFFFFFC01A267C9C23>20 D<000F0038006000E001C001C001C001C001C001C001C001C001C001C001C001C001C001 C001C0038007001E00F8001E000700038001C001C001C001C001C001C001C001C001C001 C001C001C001C001C001C000E000600038000F102D7DA117>102 DI E %EndDVIPSBitmapFont /Fj 130[27 1[27 27 27 27 27 27 27 27 27 27 1[27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 1[27 1[27 27 27 1[27 27 27 1[27 27 27 27 1[27 27 27 27 27 27 1[27 27 27 27 27 27 27 27 27 1[27 27 27 1[27 27 3[27 1[27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 2[27 34[{ TeXBase1Encoding ReEncodeFont}76 45.4545 /Courier rf %DVIPSBitmapFont: Fk cmmi10 10.95 17 /Fk 17 122 df<003E00007FC00083C001018001000001800001800001C00000C00000E0 0000E00000700000780000780001BC00071E000E1E001C0E00180E00380F00700F007007 00700700E00600E00E00E00E00E00C00E00C006018006018003030001860000F80001221 7EA014>14 D<70F8F8F87005057C840D>58 D<70F0F8F878080808101010202040050E7C 840D>I<0000400000C0000180000180000180000300000300000300000600000600000C 00000C00000C0000180000180000180000300000300000600000600000600000C00000C0 0000C0000180000180000180000300000300000600000600000600000C00000C00000C00 00180000180000300000300000300000600000600000600000C00000C00000122D7EA117 >61 D<01FFFFE000001E003800001E000E00001E000700001E000700003C000380003C00 0380003C0001C0003C0001C000780001C000780001C000780001C000780001C000F00003 C000F00003C000F00003C000F00003C001E000078001E000078001E000070001E0000F00 03C0000E0003C0001E0003C0001C0003C00038000780007000078000E000078001C00007 800700000F001C0000FFFFF00000221F7E9E26>68 D<01FFF800001F0000001E0000001E 0000001E0000003C0000003C0000003C0000003C00000078000000780000007800000078 000000F0000000F0000000F0000000F0000001E0000001E0000001E0000001E0004003C0 008003C0008003C0018003C0010007800300078003000780060007800E000F007C00FFFF FC001A1F7E9E1F>76 D<01FF001FF8001F0003C0001F8001000017800100001780010000 23C002000023C002000021E002000021E002000041F004000040F004000040F004000040 780400008078080000807C080000803C080000803C080001001E100001001E100001000F 100001000F100002000FA000020007A000020007A000020003E000040003C000040003C0 00040001C0000C0001C0001E00008000FFC0008000251F7E9E25>78 D<01FFFF80001E00F0001E0038001E001C001E001C003C001E003C001E003C001E003C00 1E0078003C0078003C00780078007800F000F001C000F0070000FFF80000F00E0001E007 0001E0078001E0038001E003C003C0078003C0078003C0078003C0078007800F0007800F 0207800F0207800F040F800704FFF80308000001F01F207E9E23>82 D<0FFFFFFC1E03C0381803C0181003C0082003C008200780086007800840078008400780 08800F0010000F0000000F0000000F0000001E0000001E0000001E0000001E0000003C00 00003C0000003C0000003C00000078000000780000007800000078000000F0000000F000 0000F0000000F0000001F000007FFFC0001E1F7F9E1B>84 D<000700000C800018400030 4000304000604000608000C08000C08001C1000181000382000384000384000708000710 000710000720000E40000E80000F00000E00000E00000E00001E00002C00004E00008601 0006030006040002180001E0001220809F13>96 D<01E0000FE00001C00001C00001C000 01C0000380000380000380000380000700000700000701E00706100E08700E10F00E20F0 0E20601C40001D80001E00001FC000387000383800383800381C20703840703840703840 701880E01880600F0014207E9F18>107 D<1E07802318C023A06043C070438070438070 8700E00700E00700E00700E00E01C00E01C00E01C00E03821C03841C07041C07081C0308 3803101801E017147E931B>110 D<03C1E004621804741C08781C08701E08701E10E01E 00E01E00E01E00E01E01C03C01C03C01C03C01C0380380780380700380E003C1C0072380 071E000700000700000E00000E00000E00000E00001C00001C0000FFC000171D819317> 112 D<1C1E002621004743804787804707804703008E00000E00000E00000E00001C0000 1C00001C00001C000038000038000038000038000070000030000011147E9315>114 D<018001C0038003800380038007000700FFF807000E000E000E000E001C001C001C001C 003800380038003810702070207040708031001E000D1C7F9B10>116 D<03C1C00C62201034701038F02038F020386040700000700000700000700000E00000E0 0000E00000E02061C040F1C040F1C080E2C080446300383C0014147E931A>120 D<1E00602300702300E04380E04300E04700E08701C00E01C00E01C00E01C01C03801C03 801C03801C03801C07001807001C07001C0F000C3E0003CE00000E00000E00001C00F018 00F03800E07000C0600041C0003F0000141D7E9316>I E %EndDVIPSBitmapFont /Fl 134[23 23 33 23 25 15 18 20 1[25 23 25 38 13 25 15 13 25 23 15 20 25 20 25 23 9[45 33 33 30 25 33 1[28 35 33 1[30 35 1[18 1[35 28 30 33 33 1[33 1[23 4[15 7[23 23 2[11 15 11 41[25 2[{TeXBase1Encoding ReEncodeFont}50 45.4545 /Times-Bold rf /Fm 134[20 1[30 20 23 13 18 18 1[23 23 23 33 13 2[13 23 23 13 20 23 20 23 23 8[28 3[25 23 2[28 2[38 25 2[15 33 2[28 33 30 28 28 19[15 42[23 2[{TeXBase1Encoding ReEncodeFont}36 45.4545 /Times-Italic rf /Fn 104[45 23 1[20 20 24[20 23 23 33 23 23 13 18 15 23 23 23 23 35 13 23 13 13 23 23 15 20 23 20 23 20 3[15 1[15 28 33 33 43 33 33 28 25 30 33 25 33 33 40 28 33 18 15 33 33 25 28 33 30 30 33 1[20 3[13 13 23 23 23 23 23 23 23 23 23 23 13 11 15 11 26 1[15 15 15 1[38 33[25 25 2[{TeXBase1Encoding ReEncodeFont}82 45.4545 /Times-Roman rf /Fo 135[30 2[33 20 23 27 1[33 30 33 50 17 2[17 33 30 20 27 33 27 1[30 12[40 33 43 1[37 47 2[40 1[30 23 1[47 37 40 43 43 40 43 11[30 30 30 30 30 46[33 2[{ TeXBase1Encoding ReEncodeFont}39 59.7758 /Times-Bold rf /Fp 134[25 1[36 1[25 14 19 17 1[25 25 25 39 14 25 1[14 25 25 2[25 2[22 9[47 9[44 30 4[36 1[30 1[33 1[36 10[25 3[25 25 25 3[12 44[{TeXBase1Encoding ReEncodeFont}29 49.8132 /Times-Roman rf /Fq 139[24 28 32 2[36 1[60 20 2[20 1[36 24 32 1[32 40 36 12[48 40 52 1[44 3[48 5[44 1[52 2[52 65[{TeXBase1Encoding ReEncodeFont}21 71.731 /Times-Bold rf end %%EndProlog %%BeginSetup %%Feature: *Resolution 300dpi TeXDict begin %%EndSetup %%Page: 1 1 1 0 bop 192 469 a Fq(Scalable)17 b(Log)g(Files)h(f)n(or)f(P)o(arallel)h (Pr)o(ogram)e(T)-5 b(race)17 b(Data)851 560 y(DRAFT)491 686 y Fp(Anthon)o(y)12 b(Chan,)h(W)n(illiam)f(Gropp,)g(and)g(Ewing)h (Lusk)836 788 y(May)g(16,)f(2001)0 973 y Fo(1)60 b(Intr)o(oduction)0 1077 y Fn(A)10 b(po)o(werful)g(technique)g(for)g(understanding)e(the)j (beha)o(vior)e(and)i(performance)g(of)g(parallel)f(programs)g(is)g(the) g(visualiza-)0 1133 y(tion)h(of)h(trace)h(\002les)f(\(also)g(called)g (log)g(\002les\))g(collected)f(during)g(the)h(e)o(x)o(ecution)g(of)g (the)g(program.)18 b(A)12 b(trace)h(\002le)g(contains)0 1190 y(se)o(v)o(eral)e(basic)g(elements.)k(T)l(ypically)m(,)c(these)g (are)h(generated)f(during)f(the)h(e)o(x)o(ecution)g(of)h(a)f(program)h (by)f(v)o(ery)h(short)e(code)0 1246 y(sequences)f(\(so)g(as)h(to)f (minimize)g(the)h(perturbation)e(of)h(the)g(e)o(x)o(ecution)g(caused)h (by)f(the)g(tracing)g([7]\),)i(and)e(are)h(either)g(writ-)0 1303 y(ten)h(to)h(disk)e(\(b)o(uf)o(fered,)j(of)f(course\))f(or)h(to)f (memory)i(as)f(the)o(y)f(are)i(generated.)i(T)n(race\002les)e (typically)d(contain)h(sequences)0 1359 y(of)j Fm(e)o(vents)p Fn(;)g(an)g(e)o(v)o(ent)f(has)h(a)g(timestamp)f(and)g(some)h(data.)21 b(A)14 b(collection)e(of)i(e)o(v)o(ents)f(for)g(a)h(single)f(process,)h (thread,)g(or)0 1416 y(processor)d(is)f(sometimes)h(called)g(a)g Fm(timeline)p Fn(.)71 1472 y(Such)g Fm(post)f(mortem)h Fn(analysis)f(based)h(on)g(trace)g(\002les)h(has)f(been)g(an)h (important)e(tool)g([5,)i Fl(?)p Fn(,)f Fl(?)p Fn(,)h(9,)g(4)o(,)g(3,)g Fl(?)p Fn(,)f(6,)h(1,)g(8)o(,)g(10,)0 1528 y Fl(?)p Fn(,)h Fl(?)p Fn(])g(for)f(performance)i(analysis.)j(Man)o(y)c(of)g(these)f (tools)g(display)f(a)i(trace)g(\002le)g(as)f(a)h(GANTT)f(chart,)i(with) d(the)i Fk(x)p Fn(-axis)0 1585 y(representing)g(time)h(and)g(the)g Fk(y)r Fn(-axis)f(process)h(or)g(thread)g(number)n(.)22 b(Ho)o(we)o(v)o(er)n(,)16 b(as)e(parallel)f(programs)h(use)g (increasing)0 1641 y(numbers)f(of)h(processes)f(or)g(threads)g(and)g (run)g(for)h(longer)f(times,)h(the)f(amount)g(of)h(data)f(that)g(is)g (collected)f(into)h(a)h(trace)0 1698 y(\002le)d(can)h(become)g(e)o (xtremely)f(lar)o(ge,)h(e)o(xceeding)f(hundreds)f(of)h(me)o(gabytes.)71 1754 y(One)16 b(reaction)h(to)f(the)h(problem)g(of)g(displaying)d(this) i(amount)g(of)h(data)g(has)g(been)g(to)f(summarize)i(the)f(data;)i(for) 0 1811 y(e)o(xample,)g(displaying)c(total)h(e)o(v)o(ent)h(counts)f(and) h(distrib)o(ution)o(s)d(of)j(times)g(within)e(each)j(state.)31 b(Unfortunately)m(,)17 b(it)g(is)0 1867 y(sometimes)10 b(necessary)g(to)g(e)o(xamine)h(the)f(detailed)f(beha)o(vior)h(of)g(a)h (program)g(to)f(understand)f(it.)k(Indeed,)e(o)o(v)o(er)g(the)f(years,) 0 1924 y(we)16 b(ha)o(v)o(e)g(continued)e(to)i(\002nd)f(most)h(useful)f (the)g(ability)f(to)i(e)o(xamine)g(small)f(time)h(interv)o(als)f(in)g (considerable)g(detail.)0 1980 y(The)g(GANNT)e(chart)i(approach,)h(in)e (which)g(the)g(\223state\224)h(of)f(a)h(process)g(is)f(represented)g (by)g(a)h(colored)g(bar)f(e)o(xtending)0 2037 y(o)o(v)o(er)g(a)g(time)f (interv)o(al)g(and)g(can)h(be)f(compared)h(visually)e(with)g(the)h (states)g(of)g(other)h(processes)e(at)i(the)f(same)h(time,)g(has)0 2093 y(pro)o(v)o(en)f(ef)o(fecti)o(v)o(e.)21 b(Man)o(y)14 b(tools)e(\(see)i([10)o(],)h(for)e(e)o(xample\))h(augment)f(this)g(vie) o(w)f(with)h(further)g(detail)f(such)h(as)g(arro)o(ws)0 2149 y(to)g(sho)o(w)g(messages)g(and)h(popup)e(windo)o(ws)g(to)h (display)g(detail)g(data)g(on)g(process)h(states)e(or)i(messages.)22 b(Ho)o(we)o(v)o(er)n(,)14 b(the)0 2206 y(basic)f(problem)h(of)g Fm(scalability)e Fn(arises)h(e)o(v)o(en)h(when)g(the)f(simplest)g(form) h(of)g(GANNT)g(chart)g(is)f(being)g(displayed,)g(and)0 2262 y(the)e(issues)f(discussed)f(in)i(this)f(paper)i(can)f(be)g (thought)f(of)h(in)f(this)h(conte)o(xt.)71 2319 y(Therefore)17 b(we)h(state)f(the)g(general)g(problem)g(we)g(address)g(as)h(follo)o (ws.)31 b(W)l(e)18 b(assume)f(that)g(a)g(parallel)g(program)0 2375 y(produces)12 b(as)g(it)g(runs)g(a)h(lar)o(ge)g(v)o(olume)f(of)h (data)f(on)g(program)h(beha)o(vior)n(,)g(including)d(states)i(of)g (processes)g(v)o(arying)g(o)o(v)o(er)0 2432 y(time.)k(W)l(e)d(make)f (no)f(assumptions)f(about)h(the)g(lengths)g(\(in)g(time\))h(of)g(those) f(states.)k(W)l(e)e(wish)d(to)i(design)e(a)j(system)e(that)0 2488 y(will)g(support)g(the)h(graphical)f(display)g(of)h(this)f(data)h (in)g(a)h(scalable)e(way)m(.)17 b(Scalable)c(display)d(means)j(that)e (the)h(CPU)h(time)964 2613 y(1)p eop %%Page: 2 2 2 1 bop 0 286 a Fn(and)13 b(memory)h(requirements)e(for)h(display)f(of) h(some)g(time)g(interv)o(al)f(about)g(a)i(particular)e(time)h(depend)g (on)f(the)h(number)0 343 y(of)f(graphical)g(objects)f(to)h(be)g (displayed)f(and)h(not)f(on)h(the)g(total)f(amount)h(of)g(program)h (data)f(nor)g(on)g(the)g(particular)f(time)0 399 y(chosen.)375 624 y @beginspecial 0 @llx 0 @lly 380 @urx 56 @ury 2880 @rwi @setspecial %%BeginDocument: intermediate.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: intermediate.eps %%Creator: fig2dev Version 3.2 Patchlevel 1a %%CreationDate: Mon Jan 24 13:32:50 2000 %%For: lusk@donner.mcs.anl.gov (Rusty Lusk,) %%Orientation: Portrait %%BoundingBox: 0 0 380 56 %%Pages: 0 %%BeginSetup %%EndSetup %%Magnification: 1.0000 %%EndComments /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind 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 -125.0 199.0 translate 1 -1 scale /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} 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 /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} 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 /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def %%EndProlog $F2psBegin 10 setmiterlimit n -1000 4312 m -1000 -1000 l 9412 -1000 l 9412 4312 l cp clip n 0.06000 0.06000 sc /Times-Roman ff 180.00 scf sf 2850 2775 m gs 1 -1 sc (Parallel) dup sw pop 2 div neg 0 rm col0 sh gr /Times-Roman ff 180.00 scf sf 2850 3000 m gs 1 -1 sc (Program) dup sw pop 2 div neg 0 rm col0 sh gr /Times-Roman ff 180.00 scf sf 5250 2775 m gs 1 -1 sc (Intermediate) dup sw pop 2 div neg 0 rm col0 sh gr /Times-Roman ff 180.00 scf sf 5250 3000 m gs 1 -1 sc (system) dup sw pop 2 div neg 0 rm col0 sh gr /Times-Roman ff 180.00 scf sf 7650 2775 m gs 1 -1 sc (Display) dup sw pop 2 div neg 0 rm col0 sh gr /Times-Roman ff 180.00 scf sf 7650 3000 m gs 1 -1 sc (Program) dup sw pop 2 div neg 0 rm col0 sh gr % Polyline 7.500 slw n 2205 2400 m 2100 2400 2100 3195 105 arcto 4 {pop} repeat 2100 3300 3495 3300 105 arcto 4 {pop} repeat 3600 3300 3600 2505 105 arcto 4 {pop} repeat 3600 2400 2205 2400 105 arcto 4 {pop} repeat cp gs col0 s gr % Polyline n 4605 2400 m 4500 2400 4500 3195 105 arcto 4 {pop} repeat 4500 3300 5895 3300 105 arcto 4 {pop} repeat 6000 3300 6000 2505 105 arcto 4 {pop} repeat 6000 2400 4605 2400 105 arcto 4 {pop} repeat cp gs col0 s gr % Polyline n 7005 2400 m 6900 2400 6900 3195 105 arcto 4 {pop} repeat 6900 3300 8295 3300 105 arcto 4 {pop} repeat 8400 3300 8400 2505 105 arcto 4 {pop} repeat 8400 2400 7005 2400 105 arcto 4 {pop} repeat cp gs col0 s gr % Polyline gs clippath 4380 2820 m 4500 2850 l 4380 2880 l 4515 2880 l 4515 2820 l cp clip n 3600 2850 m 4500 2850 l gs col0 s gr gr % arrowhead n 4380 2820 m 4500 2850 l 4380 2880 l col0 s % Polyline gs clippath 6780 2820 m 6900 2850 l 6780 2880 l 6915 2880 l 6915 2820 l cp clip n 6000 2850 m 6900 2850 l gs col0 s gr gr % arrowhead n 6780 2820 m 6900 2850 l 6780 2880 l col0 s $F2psEnd rs %%EndDocument @endspecial 740 722 a(Figure)g(1:)i(High-le)o(v)o(el)d(vie)o(w)71 886 y(In)j(this)g(paper)h(we)g(describe)f(an)h(architecture)f(for)h (the)f(\223intermediate)h(system\224)f(that)g(links)f(the)i(parallel)f (program)0 942 y(producing)8 b(the)i(data)f(with)g(the)g(graphical)g (display)g(program)h(\(See)g(Figure)g(1\).)k(By)c(de\002ning)f(the)g (appropriate)g(API')n(s,)h(we)0 999 y(will)i(keep)h(the)g(architecture) f(independent)g(of)h(either)g(the)g(mechanism)g(for)g(collecting)f (data)h(or)g(the)g(display)f(program.)0 1055 y(W)l(e)g(do)f(anticipate) g(being)f(able)i(to)f(link)f(speci\002c)h(systems,)g(ho)o(we)o(v)o(er)n (.)k(On)c(the)g(trace)h(data)g(production)d(side,)i(we)h(e)o(xpect)0 1112 y(to)f(be)h(able)f(to)g(utilize)g(the)g(MPI)h(pro\002ling)f (interface)g(or)h(the)f(UTE)g(\002les)h(produced)e(by)i(IBM')n(s)f (AIX-based)h(system.)i(On)0 1168 y(the)9 b(display)g(side,)g(we)h(e)o (xpect)g(to)f(support)f(a)i(system)f(like)g(Jumpshot)f([10].)14 b(A)9 b(rough)g(approximation)f(of)i(its)f(appearance)0 1224 y(\(minus)i(the)g(colors\))f(is)h(sho)o(wn)f(in)g(Figure)h(2.)221 1778 y @beginspecial 0 @llx 0 @lly 362 @urx 119 @ury 3620 @rwi @setspecial %%BeginDocument: virtual.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: virtual.eps %%Creator: fig2dev Version 3.2 Patchlevel 0-beta3 %%CreationDate: Mon Jan 10 15:34:39 2000 %%For: gropp@fire.mcs.anl.gov (William Gropp,C235,2524318,) %%Orientation: Portrait %%BoundingBox: 0 0 362 119 %%Pages: 0 %%BeginSetup %%EndSetup %%Magnification: 1.0000 %%EndComments /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind 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 -71.0 149.0 translate 1 -1 scale /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} 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 /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} 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 /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def %%EndProlog $F2psBegin 10 setmiterlimit n -1000 3475 m -1000 -1000 l 8212 -1000 l 8212 3475 l cp clip 0.06000 0.06000 sc % Polyline 7.500 slw n 1200 600 m 7200 600 l 7200 2100 l 1200 2100 l cp gs col0 s gr % Polyline 30.000 slw n 1275 675 m 1500 675 l gs col0 s gr % Polyline n 1650 750 m 2100 750 l gs col0 s gr % Polyline n 1275 900 m 2175 900 l gs col0 s gr % Polyline n 1950 1050 m 2850 1050 l gs col0 s gr % Polyline n 1575 1200 m 2400 1200 l gs col0 s gr % Polyline n 1950 1350 m 1800 1350 l 2250 1350 l gs col0 s gr % Polyline n 1275 1350 m 1425 1350 l gs col0 s gr % Polyline n 2550 1350 m 2850 1350 l gs col0 s gr % Polyline n 3210 1050 m 3240 1050 l gs col0 s gr % Polyline n 3060 1050 m 3090 1050 l gs col0 s gr % Polyline n 3675 1050 m 3450 1050 l gs col0 s gr % Polyline n 2925 900 m 3750 900 l gs col0 s gr % Polyline n 2400 1500 m 5325 1500 l gs col0 s gr % Polyline n 3000 1350 m 3075 1350 l gs col0 s gr % Polyline n 3825 1350 m 3900 1350 l gs col0 s gr % Polyline n 4425 1350 m 4500 1350 l gs col0 s gr % Polyline n 1275 1500 m 1425 1500 l gs col0 s gr % Polyline n 1800 1650 m 1950 1650 l gs col0 s gr % Polyline n 2400 1950 m 2550 1950 l gs col0 s gr % Polyline n 3600 1950 m 3750 1950 l gs col0 s gr % Polyline n 4425 1800 m 4575 1800 l gs col0 s gr % Polyline n 5925 1500 m 6075 1500 l gs col0 s gr % Polyline n 6075 1650 m 6225 1650 l gs col0 s gr % Polyline n 6600 1950 m 6750 1950 l gs col0 s gr % Polyline n 6600 1050 m 6750 1050 l gs col0 s gr % Polyline n 5700 750 m 5850 750 l gs col0 s gr % Polyline n 2250 750 m 3075 750 l gs col0 s gr % Polyline n 3900 1950 m 4725 1950 l gs col0 s gr % Polyline n 1650 1800 m 2475 1800 l gs col0 s gr % Polyline n 2775 1950 m 3225 1950 l gs col0 s gr % Polyline n 4950 1950 m 5400 1950 l gs col0 s gr % Polyline n 5535 1500 m 5565 1500 l gs col0 s gr % Polyline n 4035 1350 m 4065 1350 l gs col0 s gr % Polyline n 4185 1350 m 4215 1350 l gs col0 s gr % Polyline n 4635 1350 m 4665 1350 l gs col0 s gr % Polyline n 4875 1350 m 5025 1350 l gs col0 s gr % Polyline n 3825 750 m 3675 750 l 4125 750 l gs col0 s gr % Polyline n 3300 750 m 3450 750 l gs col0 s gr % Polyline n 6825 1500 m 6975 1500 l gs col0 s gr % Polyline n 1275 1950 m 1875 1950 l gs col0 s gr % Polyline n 4125 900 m 4650 900 l gs col0 s gr % Polyline n 4650 750 m 4800 750 l gs col0 s gr % Polyline n 4275 750 m 4425 750 l gs col0 s gr % Polyline n 5025 750 m 5175 750 l gs col0 s gr % Polyline n 5325 750 m 5475 750 l gs col0 s gr % Polyline n 3600 1200 m 6750 1200 l gs col0 s gr % Polyline n 2100 1650 m 4875 1650 l gs col0 s gr % Polyline n 3825 1050 m 4050 1050 l 4125 1050 l gs col0 s gr % Polyline n 4350 1050 m 4425 1050 l gs col0 s gr % Polyline n 4575 1050 m 5025 1050 l gs col0 s gr % Polyline n 5175 1050 m 5325 1050 l gs col0 s gr % Polyline n 3300 1800 m 3450 1800 l gs col0 s gr % Polyline n 5475 1800 m 5925 1800 l gs col0 s gr % Polyline n 6075 1800 m 6150 1800 l gs col0 s gr % Polyline n 6225 1800 m 6300 1800 l gs col0 s gr % Polyline n 6375 1800 m 6450 1800 l gs col0 s gr % Polyline 7.500 slw n 2850 1050 m 3000 1350 l gs col0 s gr % Polyline n 3450 1050 m 4425 1800 l gs col0 s gr % Polyline n 2100 1650 m 6600 1050 l gs col0 s gr % Polyline [60] 0 sd n 3150 525 m 5025 525 l 5025 2175 l 3150 2175 l cp gs col0 s gr [] 0 sd % Polyline n 2775 1950 m 3300 1800 l gs col0 s gr % Polyline n 4650 900 m 5325 750 l gs col0 s gr /Helvetica ff 180.00 scf sf 4125 2475 m gs 1 -1 sc (Visible Window) dup sw pop 2 div neg 0 rm col0 sh gr $F2psEnd rs %%EndDocument @endspecial 0 1876 a(Figure)h(2:)j(Example)d(of)g(a)g(log)f(\002le)h (display)m(.)k(Only)11 b(the)g(data)h(within)f(the)g(dashed)h(box)f(is) h(displayed;)e(the)i(visualization)0 1932 y(program)g(must)g(render)g (all)g(data)f(as)i(if)e(the)h(entire)g(data)g(is)f(displayed,)g (clipped)g(to)h(the)f(dashed)h(box.)k(This)11 b(includes)f(the)0 1989 y(rectangles)h(that)g(enter)h(and)g(e)o(xit)f(the)h(dashed)f(box,) h(and)f(the)h(lines)f(connecting)f(the)h(rectangles.)16 b(Note)11 b(that)g(in)h(practice,)0 2045 y(the)f(time)g(interv)o(al)f (sho)o(wn)g(by)h(the)g(visible)e(windo)o(w)h(may)i(be)f(only)f(1\045)h (or)g(less)g(of)g(the)g(entire)g(trace)h(\002le.)71 2149 y(Jumpshot)k(works)h(by)h(pro)o(viding)e(an)j(end)f(user)g(\002rst)g (with)f(a)h Fm(Pr)n(e)o(vie)o(w)h Fn(interface.)35 b(This)17 b(is)h(a)h(mechanism)f(for)0 2206 y(displaying)8 b(data)j(from)g(the)g (entire)f(run)g(in)h(a)g(way)f(that)g(trades)g(a)o(way)h(details)f(of)g (display)g(for)h(the)f(ability)f(to)h(e)o(xamine)h(the)0 2262 y(entire)h(run)g(and)g(select)g(a)g(time)g(\(instant\))f(of)h (interest.)k(Once)d(the)e(user)h(selects)g(a)h(time,)f(jumpshot)f (chooses)g(an)h(interv)o(al)0 2319 y(of)e(time)g(containing)e(that)h (time)h(and)g(pro)o(vides)e(a)j(detailed)e(vie)o(w)g(of)h(that)f (interv)o(al.)k(Scalability)8 b(is)i(achie)o(v)o(ed)g(by)f(allo)o(wing) 0 2375 y(jumpshot)h(to)h(choose)g(the)h(width)e(of)i(the)f(time)h (interv)o(al)e(and)i(thus)e(the)i(number)f(of)h(graphical)f(objects)g (to)g(be)g(displayed.)0 2432 y(W)l(e)f(describe)f(Jumpshot)f(here)h (only)f(to)h(make)h(concrete)f(the)g(requirements)g(of)g(the)g (intermediate)g(system.)k(In)c(particular)n(,)0 2488 y(the)g(system)g(needs)g(a)h(way)f(to)g(manage)h(summary)g(data)g(that) f(will)f(be)i(used)f(in)g(the)g(Pre)o(vie)o(w)m(.)14 b(More)c(importantly)m(,)f(it)g(needs)964 2613 y(2)p eop %%Page: 3 3 3 2 bop 0 286 a Fn(to)9 b(be)h(able)g(to)f(rapidly)g(pro)o(vide)g (\(without)f(reading)h(lar)o(ge)h(amounts)f(of)h(the)g(\002le\))g(to)f (the)h(Display)e(Program)i(the)g(graphical)0 343 y(objects)i(in)g(a)h (gi)o(v)o(en)f(time)g(interv)o(al.)18 b(When)12 b(the)g(objects)g(e)o (xtend)g(be)o(yond)g(the)h(interv)o(al)e(being)h(displayed,)g(that)g (portion)0 399 y(of)k(them)f(that)g(intersects)f(the)i(interv)o(al)e (must)h(be)h(displayed.)26 b(The)15 b(main)h(idea)f(of)h(this)e(paper)i (\(the)f(\223bounding)f(box\224)0 456 y(approach\))d(is)g(our)g (solution)e(to)h(this)g(problem.)71 512 y(One)20 b(possible)f (architecture)h(for)g(the)h(intermediate)e(system)h(would)f(be)i(a)g Fm(\002le)f Fn(with)f(a)i(speci\002ed)f(format)h(for)0 569 y(supporting)9 b(both)i(the)g(necessary)h(inde)o(xing)e(scheme)j (for)e(directly)g(accessing)g(a)h(contiguous)e(section)g(of)i(the)g (\002le)g(based)0 625 y(on)d(time)h(and)f(some)h(mechanism)g(for)f (accessing)g(objects)g(that)g(e)o(xtend)g(o)o(v)o(er)h(long)f(periods)f (of)i(time.)j(W)l(e)e(originally)c(took)0 682 y(this)j(approach,)h (calling)f(the)g(\002le)h(format)h(SLOG)e(\(for)i(scalable)e(log)g (\002le\),)i(no)o(w)e(called)h(SLOG-1.)j(The)c(speci\002cation)g(of)0 738 y(API')n(s)g(for)g(reading)g(and)g(writing)e(this)i(\002le)g(is)g (a)g(better)g(approach,)g(since)g(it)g(frees)g(the)g(\002le)h(format)f (itself)f(for)i(independent)0 795 y(optimization)g(\(such)i(as)h (compression\).)20 b(This)12 b(approach)h(was)g(used)g(in)g(the)g (later)g(stages)g(of)g(SLOG-1)g(\(see)h(Figure)f(3.)0 851 y(Dif)o(ferent)f(data)h(sources)e(were)i(accomodated)g(by)f(ha)o (ving)g(completely)f(independent)g(programs)h(that)g(wrote)g(SLOG-1)0 907 y(\002les.)225 1124 y @beginspecial 0 @llx 0 @lly 506 @urx 56 @ury 3600 @rwi @setspecial %%BeginDocument: slog1.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: slog1.eps %%Creator: fig2dev Version 3.2 Patchlevel 1a %%CreationDate: Mon Jan 24 14:11:53 2000 %%For: lusk@donner.mcs.anl.gov (Rusty Lusk,) %%Orientation: Portrait %%BoundingBox: 0 0 506 56 %%Pages: 0 %%BeginSetup %%EndSetup %%Magnification: 1.0000 %%EndComments /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind 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 -53.0 199.0 translate 1 -1 scale /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} 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 /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} 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 /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def %%EndProlog $F2psBegin 10 setmiterlimit n -1000 4312 m -1000 -1000 l 10312 -1000 l 10312 4312 l cp clip n 0.06000 0.06000 sc /Times-Roman ff 180.00 scf sf 1500 2700 m gs 1 -1 sc (Original) dup sw pop 2 div neg 0 rm col0 sh gr /Times-Roman ff 180.00 scf sf 1500 2925 m gs 1 -1 sc (Data ) dup sw pop 2 div neg 0 rm col0 sh gr /Times-Roman ff 180.00 scf sf 1500 3150 m gs 1 -1 sc (Source) dup sw pop 2 div neg 0 rm col0 sh gr /Times-Roman ff 180.00 scf sf 5100 2775 m gs 1 -1 sc (SLOG) dup sw pop 2 div neg 0 rm col0 sh gr /Times-Roman ff 180.00 scf sf 5100 3000 m gs 1 -1 sc (Program) dup sw pop 2 div neg 0 rm col0 sh gr /Times-Roman ff 180.00 scf sf 6900 2700 m gs 1 -1 sc (\(complete\)) dup sw pop 2 div neg 0 rm col0 sh gr /Times-Roman ff 180.00 scf sf 6900 2925 m gs 1 -1 sc (SLOG) dup sw pop 2 div neg 0 rm col0 sh gr /Times-Roman ff 180.00 scf sf 6900 3150 m gs 1 -1 sc (File) dup sw pop 2 div neg 0 rm col0 sh gr /Times-Roman ff 180.00 scf sf 8700 2625 m gs 1 -1 sc (Display) dup sw pop 2 div neg 0 rm col0 sh gr /Times-Roman ff 180.00 scf sf 8700 2850 m gs 1 -1 sc (Program) dup sw pop 2 div neg 0 rm col0 sh gr /Times-Roman ff 180.00 scf sf 8700 3075 m gs 1 -1 sc (\(Jumpshot\)) dup sw pop 2 div neg 0 rm col0 sh gr % Polyline 7.500 slw n 6300 2400 m 7500 2400 l 7500 3300 l 6300 3300 l cp gs col0 s gr % Polyline n 1005 2400 m 900 2400 900 3195 105 arcto 4 {pop} repeat 900 3300 1995 3300 105 arcto 4 {pop} repeat 2100 3300 2100 2505 105 arcto 4 {pop} repeat 2100 2400 1005 2400 105 arcto 4 {pop} repeat cp gs col0 s gr % Polyline n 2805 2400 m 2700 2400 2700 3195 105 arcto 4 {pop} repeat 2700 3300 3795 3300 105 arcto 4 {pop} repeat 3900 3300 3900 2505 105 arcto 4 {pop} repeat 3900 2400 2805 2400 105 arcto 4 {pop} repeat cp gs col0 s gr % Polyline n 4605 2400 m 4500 2400 4500 3195 105 arcto 4 {pop} repeat 4500 3300 5595 3300 105 arcto 4 {pop} repeat 5700 3300 5700 2505 105 arcto 4 {pop} repeat 5700 2400 4605 2400 105 arcto 4 {pop} repeat cp gs col0 s gr % Polyline n 8205 2400 m 8100 2400 8100 3195 105 arcto 4 {pop} repeat 8100 3300 9195 3300 105 arcto 4 {pop} repeat 9300 3300 9300 2505 105 arcto 4 {pop} repeat 9300 2400 8205 2400 105 arcto 4 {pop} repeat cp gs col0 s gr % Polyline gs clippath 2580 2820 m 2700 2850 l 2580 2880 l 2715 2880 l 2715 2820 l cp clip n 2100 2850 m 2700 2850 l gs col0 s gr gr % arrowhead n 2580 2820 m 2700 2850 l 2580 2880 l col0 s % Polyline gs clippath 4380 2820 m 4500 2850 l 4380 2880 l 4515 2880 l 4515 2820 l cp clip n 3900 2850 m 4500 2850 l gs col0 s gr gr % arrowhead n 4380 2820 m 4500 2850 l 4380 2880 l col0 s % Polyline gs clippath 6180 2820 m 6300 2850 l 6180 2880 l 6315 2880 l 6315 2820 l cp clip n 5700 2850 m 6300 2850 l gs col0 s gr gr % arrowhead n 6180 2820 m 6300 2850 l 6180 2880 l col0 s % Polyline gs clippath 7980 2820 m 8100 2850 l 7980 2880 l 8115 2880 l 8115 2820 l cp clip n 7500 2850 m 8100 2850 l gs col0 s gr gr % arrowhead n 7980 2820 m 8100 2850 l 7980 2880 l col0 s /Times-Roman ff 180.00 scf sf 3300 2700 m gs 1 -1 sc (Raw Trace File) dup sw pop 2 div neg 0 rm col0 sh gr 3300 2925 m gs 1 -1 sc (\(e.g., UTE) dup sw pop 2 div neg 0 rm col0 sh gr 3300 3150 m gs 1 -1 sc (or CLOG\)) dup sw pop 2 div neg 0 rm col0 sh gr $F2psEnd rs %%EndDocument @endspecial 807 1222 a(Figure)f(3:)i(SLOG-1)71 1387 y(In)f(SLOG-2)h(we)g(de\002ne)g(also)f(an)h(input)f(API)h(for)g(the)f (program)h(\(the)g(\223SLOG)g(Program\224\))h(that)e(writes)g(the)g (SLOG)0 1444 y(\002le)i(\(if)h(it)e(e)o(xists\),)h Fm(and)h Fn(we)f(allo)o(w)g(more)g(\003e)o(xibility)f(between)g(the)h(SLOG)g (Program)h(and)f(the)g(Display)e(Program.)24 b(In)0 1500 y(particular)16 b(we)i(will)e(describe)h(ho)o(w)m(,)h(instead)e(of)h (single)f(complete)h(SLOG)g(\002le,)i(the)e(SLOG)g(program)g(could)g (write)0 1557 y(instead)c(an)h(SLOG)g(Annotation)d(File,)k(which)e(can) h(be)g(used)g(in)f(conjunction)f(with)h(the)g(original)g(data)h(to)f (pro)o(vide)g(the)0 1613 y(necessary)j(scalability)e(functionality)g (to)i(the)g(Display)e(Program.)30 b(The)16 b(use)g(of)h(annotations)c (allo)o(ws)i(this)g(approach)0 1669 y(to)g(be)i(retro\002tted)e(onto)g (an)o(y)h(e)o(xisting)e(trace-\002le)j(collection)d(system,)j(and)f (allo)o(ws)f(the)g(dif)o(ferent)h(annotations)e(to)h(be)0 1726 y(generated)h(\(emphasizing)f(dif)o(ferent)h(features\))g(for)h(a) f(single)f(collection)f(of)j(trace)f(\002les.)29 b(F)o(or)17 b(e)o(xample,)h(one)e(set)g(of)0 1782 y(annotations)11 b(might)h(or)o(ganize)h(the)g(display)e(around)i(processes)f(and)h (another)n(,)h(quite)e(dif)o(ferent)h(one,)g(may)h(use)f(threads)0 1839 y(or)c(e)o(v)o(en)g(user)o(-tasks.)k(In)c(addition,)f(by)h(using)f (annotations,)g(it)g(is)h(easy)g(to)g(pro)o(vide)f(a)i(way)e(for)h(the) g(user)g(to)g(add)g(and)g(record)0 1895 y(annotations)e(about)i(a)h (particular)f(run.)k(The)c(ke)o(y)g(ideas)h(of)f(this)f(paper)i(apply)f (to)g(both)f(complete)h(SLOG)h(\002les)f(and)g(SLOG)0 1952 y(Annotation)f(\002les.)14 b(W)l(e)e(focus)e(on)g(the)g(API')n(s)h (used)f(to)g(access)h(data,)g(rather)f(than)g(\002le)h(formats.)j(The)d (complete)f(model)h(is)0 2008 y(gi)o(v)o(en)f(in)g(Section)g(2.)k (Section)c(3)h(describes)e(the)i(scalable)f(implementation)f(of)i(the)f (annotations,)f(including)f(a)j(one-pass)0 2065 y(algorithm)e(for)i (their)e(creation.)14 b(A)c(one-pass)g(algorithm)f(is)h(essential)f (since)h(we)g(assume)g(that)g(the)g(size)g(of)g(the)g(trace)h(\002les)0 2121 y(is)g(e)o(xtremely)g(lar)o(ge.)71 2178 y(Section)h(4)i(describes) e(some)i(enhancements)f(that)f(further)i(impro)o(v)o(e)f(the)g(SLOG)g (\002le,)i(along)d(with)h(an)g(analysis)f(of)0 2234 y(the)i(design)f (choices.)23 b(Finally)m(,)14 b(Section)g(5)g(sho)o(ws)f(the)h(results) f(of)h(some)g(e)o(xperiments)g(with)f(our)h(implementation)f(of)0 2290 y(SLOG.)964 2613 y(3)p eop %%Page: 4 4 4 3 bop 0 286 a Fo(2)60 b(T)-5 b(erms)0 390 y Fn(A)20 b(system)f(whose)g(end)h(result)f(is)g(the)g(graphical)g(display)g(of)h (performance)g(data)g(may)g(consist)e(of)i(a)g(number)g(of)0 446 y(dif)o(ferent)8 b(\002les)h(and)f(programs.)13 b(In)c(addition,)e (well-de\002ned)h(interfaces)g(between)g(v)o(arious)g(components)f (allo)o(w)h(dif)o(ferent)0 503 y(con\002guration)j(of)h(\002les)g(and)h (programs)f(to)g(produce)f(the)h(same)h(end)f(result.)17 b(In)12 b(Figure)h(4)f(we)g(sho)o(w)g(our)g(vie)o(w)f(of)i(these)0 559 y(components.)h(It)e(is)f(important)f(to)i(realize)f(that)g(not)g (all)g(these)h(components)e(need)i(be)f(present)g(in)g(a)h(gi)o(v)o(en) f(instantiation)0 616 y(of)g(this)f(v)o(ery)i(general)f(architecture.)0 1764 y @beginspecial 0 @llx 0 @lly 729 @urx 407 @ury 4680 @rwi @setspecial %%BeginDocument: overview.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: overview.eps %%Creator: fig2dev Version 3.2 Patchlevel 0-beta3 %%CreationDate: Tue Jan 25 09:19:43 2000 %%For: gropp@fire.mcs.anl.gov (William Gropp,C235,2524318,) %%Orientation: Portrait %%BoundingBox: 0 0 729 407 %%Pages: 0 %%BeginSetup %%EndSetup %%Magnification: 1.0000 %%EndComments /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind 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 -8.0 433.0 translate 1 -1 scale /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} 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 /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} 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 $F2psBegin 10 setmiterlimit n -1000 8212 m -1000 -1000 l 13280 -1000 l 13280 8212 l cp clip 0.06000 0.06000 sc /Times-Roman ff 180.00 scf sf 3750 4575 m gs 1 -1 sc (SLOG) dup sw pop 2 div neg 0 rm col0 sh gr /Times-Roman ff 180.00 scf sf 3750 4800 m gs 1 -1 sc (PROGRAM) dup sw pop 2 div neg 0 rm col0 sh gr % Polyline 7.500 slw n 3105 4200 m 3000 4200 3000 4995 105 arcto 4 {pop} repeat 3000 5100 4395 5100 105 arcto 4 {pop} repeat 4500 5100 4500 4305 105 arcto 4 {pop} repeat 4500 4200 3105 4200 105 arcto 4 {pop} repeat cp gs col0 s gr /Times-Roman ff 180.00 scf sf 10650 4575 m gs 1 -1 sc (Display) dup sw pop 2 div neg 0 rm col0 sh gr /Times-Roman ff 180.00 scf sf 10650 4800 m gs 1 -1 sc (Program) dup sw pop 2 div neg 0 rm col0 sh gr % Polyline n 10005 4200 m 9900 4200 9900 4995 105 arcto 4 {pop} repeat 9900 5100 11295 5100 105 arcto 4 {pop} repeat 11400 5100 11400 4305 105 arcto 4 {pop} repeat 11400 4200 10005 4200 105 arcto 4 {pop} repeat cp gs col0 s gr /Times-Roman ff 180.00 scf sf 7050 5475 m gs 1 -1 sc (Complete) dup sw pop 2 div neg 0 rm col0 sh gr /Times-Roman ff 180.00 scf sf 7050 5700 m gs 1 -1 sc (SLOG file) dup sw pop 2 div neg 0 rm col0 sh gr % Polyline n 6300 5100 m 7800 5100 l 7800 6000 l 6300 6000 l cp gs col0 s gr /Times-Roman ff 180.00 scf sf 3750 2925 m gs 1 -1 sc (Interface for) dup sw pop 2 div neg 0 rm col0 sh gr /Times-Roman ff 180.00 scf sf 3750 3150 m gs 1 -1 sc (obtaining) dup sw pop 2 div neg 0 rm col0 sh gr /Times-Roman ff 180.00 scf sf 3750 3375 m gs 1 -1 sc (drawable objects) dup sw pop 2 div neg 0 rm col0 sh gr /Times-Roman ff 180.00 scf sf 4702 6000 m gs 1 -1 sc (Interface for) col0 sh gr /Times-Roman ff 180.00 scf sf 4650 6225 m gs 1 -1 sc (writing SLOG) col0 sh gr /Times-Roman ff 180.00 scf sf 5032 6450 m gs 1 -1 sc (File) col0 sh gr /Times-Roman ff 180.00 scf sf 7050 3300 m gs 1 -1 sc (SLOG) dup sw pop 2 div neg 0 rm col0 sh gr /Times-Roman ff 180.00 scf sf 7050 3750 m gs 1 -1 sc (File) dup sw pop 2 div neg 0 rm col0 sh gr /Times-Roman ff 180.00 scf sf 7050 3525 m gs 1 -1 sc (Annotation) dup sw pop 2 div neg 0 rm col0 sh gr % Polyline n 6300 3000 m 7800 3000 l 7800 3900 l 6300 3900 l cp gs col0 s gr /Times-Roman ff 180.00 scf sf 982 1575 m gs 1 -1 sc (Drawable) col0 sh gr /Times-Roman ff 180.00 scf sf 930 1800 m gs 1 -1 sc (Object File) col0 sh gr /Times-Roman ff 180.00 scf sf 1350 6600 m gs 1 -1 sc (Dynamic) dup sw pop 2 div neg 0 rm col0 sh gr /Times-Roman ff 180.00 scf sf 1350 7050 m gs 1 -1 sc (source) dup sw pop 2 div neg 0 rm col0 sh gr /Times-Roman ff 180.00 scf sf 1350 6825 m gs 1 -1 sc (drawable object) dup sw pop 2 div neg 0 rm col0 sh gr /Times-Roman ff 180.00 scf sf 1350 5100 m gs 1 -1 sc (Category) dup sw pop 2 div neg 0 rm col0 sh gr /Times-Roman ff 180.00 scf sf 1350 5325 m gs 1 -1 sc (Description) dup sw pop 2 div neg 0 rm col0 sh gr /Times-Roman ff 180.00 scf sf 1350 5550 m gs 1 -1 sc (Data) dup sw pop 2 div neg 0 rm col0 sh gr /Times-Roman ff 195.00 scf sf 11250 2867 m gs 1 -1 sc (Interface for ) dup sw pop 2 div neg 0 rm col0 sh gr % Polyline gs clippath 9834 4290 m 9883 4403 l 9787 4327 l 9885 4455 l 9933 4419 l cp clip n 7800 3450 m 9150 3450 l 9900 4425 l gs col0 s gr gr % arrowhead n 9834 4290 m 9883 4403 l 9787 4327 l col0 s /Times-Roman ff 180.00 scf sf 975 3525 m gs 1 -1 sc (Event file) col0 sh gr /Times-Roman ff 180.00 scf sf 10650 6675 m gs 1 -1 sc (DISPLAY) dup sw pop 2 div neg 0 rm col0 sh gr /Times-Roman ff 195.00 scf sf 11250 3117 m gs 1 -1 sc (Scalable Access) dup sw pop 2 div neg 0 rm col0 sh gr /Times-Roman ff 195.00 scf sf 11250 3367 m gs 1 -1 sc (to file of drawable objects) dup sw pop 2 div neg 0 rm col0 sh gr % Arc gs n 10309.6 4609.6 1164.8 -95.4 110.6 arcn gs col0 s gr gr % Arc gs n 5051.5 5179.4 621.2 -47.0 106.5 arc gs col0 s gr gr % Arc gs n 3705.7 4462.5 1456.2 -115.7 115.7 arcn gs col0 s gr gr % Arc gs n 5225.0 3850.0 559.0 -79.7 63.4 arc gs col0 s gr gr % Polyline gs clippath 2972 4053 m 2989 4175 l 2916 4076 l 2978 4225 l 3033 4202 l cp clip n 2100 2025 m 3000 4200 l gs col0 s gr gr % arrowhead n 2972 4053 m 2989 4175 l 2916 4076 l col0 s % Polyline gs clippath 2888 5200 m 2983 5121 l 2936 5236 l 3033 5106 l 2985 5070 l cp clip n 2100 6300 m 3000 5100 l gs col0 s gr gr % arrowhead n 2888 5200 m 2983 5121 l 2936 5236 l col0 s % Polyline gs clippath 6182 5457 m 6275 5537 l 6155 5511 l 6300 5584 l 6327 5530 l cp clip n 4500 4650 m 6300 5550 l gs col0 s gr gr % arrowhead n 6182 5457 m 6275 5537 l 6155 5511 l col0 s % Polyline gs clippath 9753 4680 m 9875 4660 l 9777 4735 l 9926 4672 l 9902 4617 l cp clip n 7800 5550 m 9900 4650 l gs col0 s gr gr % arrowhead n 9753 4680 m 9875 4660 l 9777 4735 l col0 s % Polyline gs clippath 10680 5853 m 10650 5973 l 10620 5853 l 10620 6015 l 10680 6015 l cp clip n 10650 5100 m 10650 6000 l gs col0 s gr gr % arrowhead n 10680 5853 m 10650 5973 l 10620 5853 l col0 s % Polyline gs clippath 9842 4061 m 9884 4177 l 9793 4095 l 9884 4229 l 9933 4196 l cp clip n 2100 1650 m 8175 1650 l 9900 4200 l gs col0 s gr gr % arrowhead n 9842 4061 m 9884 4177 l 9793 4095 l col0 s % Polyline gs clippath 2855 4839 m 2975 4812 l 2882 4893 l 3027 4820 l 3000 4766 l cp clip n 2100 5250 m 3000 4800 l gs col0 s gr gr % arrowhead n 2855 4839 m 2975 4812 l 2882 4893 l col0 s % Polyline n 9600 6000 m 11700 6000 l 11700 7200 l 9600 7200 l cp gs col0 s gr % Polyline gs clippath 6152 3549 m 6274 3534 l 6173 3605 l 6325 3548 l 6304 3492 l cp clip n 4500 4200 m 6300 3525 l gs col0 s gr gr % arrowhead n 6152 3549 m 6274 3534 l 6173 3605 l col0 s % Polyline gs clippath 1320 2247 m 1350 2127 l 1380 2247 l 1380 2085 l 1320 2085 l cp clip n 1350 2100 m 1350 3000 l gs col0 s gr gr % arrowhead n 1320 2247 m 1350 2127 l 1380 2247 l col0 s % Polyline n 600 3000 m 2100 3000 l 2100 3900 l 600 3900 l cp gs col0 s gr % Polyline gs clippath 2894 4393 m 2977 4485 l 2861 4443 l 2996 4533 l 3029 4483 l cp clip n 2100 3900 m 3000 4500 l gs col0 s gr gr % arrowhead n 2894 4393 m 2977 4485 l 2861 4443 l col0 s % Polyline n 600 1200 m 2100 1200 l 2100 2100 l 600 2100 l cp gs col0 s gr % Polyline n 705 6300 m 600 6300 600 7095 105 arcto 4 {pop} repeat 600 7200 1995 7200 105 arcto 4 {pop} repeat 2100 7200 2100 6405 105 arcto 4 {pop} repeat 2100 6300 705 6300 105 arcto 4 {pop} repeat cp gs col0 s gr % Polyline n 600 4800 m 2100 4800 l 2100 5700 l 600 5700 l cp gs col0 s gr % Rotated Ellipse gs 9204 2557 tr -50.002 rot n 0 0 638 300 0 360 DrawEllipse 50.002 rot gs col0 s gr gr /Times-Roman ff 180.00 scf sf 9750 2100 m gs 1 -1 sc (for any particular SLOG) col0 sh gr % Polyline gs clippath 10015 3979 m 10038 4100 l 9961 4005 l 10029 4151 l 10084 4126 l cp clip n 600 3375 m 300 3000 l 300 900 l 900 600 l 8400 600 l 10050 4125 l gs col0 s gr gr % arrowhead n 10015 3979 m 10038 4100 l 9961 4005 l col0 s % Polyline gs clippath 10094 3903 m 10114 4025 l 10039 3927 l 10104 4076 l 10158 4052 l cp clip n 600 6675 m 300 6300 l 150 2400 l 150 675 l 600 450 l 8550 450 l 10125 4050 l gs col0 s gr gr % arrowhead n 10094 3903 m 10114 4025 l 10039 3927 l col0 s /Times-Roman ff 180.00 scf sf 9750 1875 m gs 1 -1 sc (Only one source used) col0 sh gr /Times-Roman ff 180.00 scf sf 9750 2325 m gs 1 -1 sc (Annotation File) col0 sh gr $F2psEnd rs %%EndDocument @endspecial 525 1862 a(Figure)g(4:)j(Components)c(of)h(an)h (SLOG-based)e(system)71 2018 y(The)17 b(central)g(component)g(is)g(the) g Fl(SLOG)i(Pr)o(ogram)p Fn(,)g(whose)e(function)f(it)h(is)g(to)g (contrib)o(ute)f(scalability)f(to)i(the)0 2075 y(system.)41 b(It)20 b(is)g(written)f(in)h(terms)g(of)g(two)g(API')n(s.)41 b(Its)20 b(input)f(comes)h(from)h(the)f Fl(Drawable)g(Object)h(API)p Fn(.)f(The)0 2131 y(fundamental)12 b(function)f(in)h(this)f(API)i(is)e (the)i Fj(get)p 811 2131 14 2 v 17 w(next)p 936 2131 V 17 w(drawable)p 1169 2131 V 19 w(object)h Fn(function.)i(It)d(can)f (be)h(implemented)0 2187 y(in)e(a)g(v)o(ariety)g(of)g(ways:)68 2281 y Fi(\017)23 b Fn(There)d(may)h(be)g(a)g(pre-e)o(xisting)e(\002le) h(whose)g(records)h(consists)d(of)j(dra)o(wable)f(objects.)41 b(W)l(e)21 b(call)f(this)f(the)114 2338 y Fl(Drawable)e(Object)j(File)p Fn(,)g(or)e(DOF)l(.)i(In)e(this)f(case,)k(the)d Fj(get)p 1158 2338 V 17 w(next)p 1283 2338 V 18 w(drawable)p 1517 2338 V 18 w(object)i Fn(function)d(just)114 2394 y(returns)10 b(the)h(ne)o(xt)g(record.)68 2488 y Fi(\017)23 b Fn(There)11 b(may)g(be)g(no)g(Dra)o(wable)f(Object)h(File,)g(b)o(ut)f(rather)i(a)f (more)g(primiti)o(v)o(e)f(\002le)i(of)f(timestamped)f(e)o(v)o(ents,)h (which)964 2613 y(4)p eop %%Page: 5 5 5 4 bop 114 286 a Fn(we)15 b(will)e(call)i(an)g Fl(Event)g(File)p Fn(.)24 b(In)15 b(this)f(case)h(the)f Fj(get)p 1024 286 14 2 v 17 w(next)p 1149 286 V 18 w(drawable)p 1383 286 V 18 w(object)j Fn(function)c(may)j(read)f(a)114 343 y(record)10 b(from)h(the)f(e)o(v)o(ent)g(\002le)h(and)f(if)h(it)e (completes)h(a)h(dra)o(wable)f(object,)g(return)g(that)g(dra)o(wable)g (object,)g(otherwise)114 399 y(stack)g(the)h(e)o(v)o(ent)g(and)f(read)i (the)e(ne)o(xt)h(e)o(v)o(ent,)g(continuing)e(until)g(it)i(has)f (assembled)h(a)g(complete)g(dra)o(wable)g(object.)68 493 y Fi(\017)23 b Fn(The)16 b Fj(get)p 285 493 V 17 w(next)p 410 493 V 17 w(drawable)p 643 493 V 19 w(object)i Fn(function)d(may)i(alternati)o(v)o(ely)e(be)h(reading)g(from)h(a)f (stream)h(that)f(is)114 550 y(being)11 b(written)f(by)h(another)h (program.)k(That)11 b(program)h(may)g(be)g(writing)e(either)h(dra)o (wable)h(objects)e(or)i(e)o(v)o(ents)f(or)114 606 y(both)g(onto)h(its)g (end)h(of)g(the)f(stream.)20 b(In)13 b(the)g(case)g(of)g(e)o(v)o(ents)f (that)g(do)h(not)f(comprise)h(dra)o(wable)f(objects,)h(again)f(a)114 663 y(stacking)d(and)i(matching)g(algorithm)f(comes)i(into)e(play)m(.)0 756 y(Dra)o(wable)17 b(objects)f(are)h(objects)f(destined)g(to)g(be)h (represented)g(as)g(\(virtual\))f(single)g(graphical)g(objects)g(in)g (the)h(\002nal)0 813 y(display)m(.)12 b(Examples)e(would)e(be)i (program)g(states)f(to)g(be)h(dra)o(wn)g(as)g(rectangles,)g(message)g (transmissions)e(to)h(be)h(dra)o(wn)g(as)0 869 y(arro)o(ws,)j(or)f (collecti)o(v)o(e)g(operations)f(to)h(be)g(dra)o(wn)h(as)f(polygons.)k (The)c(important)g(property)f(that)h(the)o(y)g(all)g(share)h(is)f(that) 0 926 y(the)o(y)h(ha)o(v)o(e)h(some)g(bounded)e(e)o(xtent)h(in)g(time.) 21 b(The)13 b(word)g(\223virtual\224)g(is)g(used)g(because)g(the)g (display)f(may)i(be)g(only)e(able)0 982 y(to)g(sho)o(w)f(part)h(of)g (one)h(of)f(these)g(objects)f(at)h(a)h(time.)k(One)12 b(of)h(the)f(central)g(problems)f(of)i(scalable)f(display)e(is)i(to)g (be)g(able)0 1039 y(to)f(cope)h(with)f(objects)g(that)g(ha)o(v)o(e)h(a) g(comparati)o(v)o(ely)f(long)g(e)o(xtent)g(in)g(time,)i(longer)e(than)g (the)h(time)f(interv)o(al)g(that)g(can)h(be)0 1095 y(vie)o(wed)e(at)i (once)f(in)g(the)f(display)m(.)71 1152 y(In)e(all)h(three)g(of)f(the)h (abo)o(v)o(e)g(cases,)h(an)f(important)e(feature)j(is)e(that)g(the)h (matching)f(of)h(e)o(v)o(ent)f(records)h(to)f(form)i(dra)o(wable)0 1208 y(objects)e(\(e.g.,)i(the)f(matching)f(of)h(a)g Fj(start)p 696 1208 V 18 w(send)h Fn(e)o(v)o(ent)e(with)g(an)h Fj(end)p 1160 1208 V 17 w(send)h Fn(e)o(v)o(ent)f(to)f(form)h(a)g(dra)o (wable)g Fj(MPI)p 1827 1208 V 17 w(Send)0 1264 y Fn(state\),)k(which)e (requires)h(a)h(stack)f(of)h(e)o(v)o(ents,)f(is)g Fm(not)h Fn(done)f(in)g(the)g Fl(SLOG)i(Pr)o(ogram)e Fn(b)o(ut)g(rather)g(in)g (one)g(of)h(the)f(se)o(v)o(eral)0 1321 y(possible)d(implementations)h (of)h(the)g(SLOG)g(Input)f(API.)71 1377 y(The)h(output)f(of)i(the)f Fl(SLOG)j(Pr)o(ogram)d Fn(can)h(be)g(either)f(a)h Fl(complete)g(SLOG)i (\002le)p Fn(,)e(containing)e(all)h(the)h(data)f(needed)0 1434 y(by)g(the)g(display)f(program,)i(or)g(it)e(can)i(be)g(an)f Fl(SLOG)i(annotation)e(\002le)p Fn(,)h(which)f(is)g(designed)f(to)h(be) h(used)e(in)h(conjunction)0 1490 y(with)f(a)i(dra)o(wable)f(object)f (\002le)h(to)g(produce)g(the)g(display)m(.)71 1547 y(Finally)i(the)i Fl(Display)e(Pr)o(ogram)p Fn(,)j(using)d(an)i(API)g(for)g(reading)g (the)f(data)h(necessary)f(to)h(graphically)e(represent)i(a)0 1603 y(particular)9 b(time)h(interv)o(al,)g(reads)g(and)g(renders)f (subsets)g(of)h(the)g(dra)o(wable)f(objects)g(around)g(a)i(time)f (selected)f(by)h(the)f(user)n(.)0 1660 y(W)l(e)14 b(term)h(the)e(whole) g(system)h Fm(scalable)e Fn(if)i(the)g(time)f(and)h(memory)h (requirements)e(necessary)h(to)f(display)f(some)i(time)0 1716 y(interv)o(al)8 b(\(whose)g(duration)f(is)h(chosen)g(by)h(the)f (display)f(program,)j(not)e(the)h(user\))f(around)g(a)h(gi)o(v)o(en)g (time)f(is)g(approximately)0 1773 y(independent)i(of)i(the)f(total)g (number)h(of)g(e)o(v)o(ents)f(or)g(graphical)h(objects)e(that)h(are)i (produced)e(by)g(the)g(original)g(sources.)k(In)0 1829 y(a)g(scalable)f(system,)h(the)f(time)g(and)g(memory)h(requirements)f (for)h(display)e(of)h(a)h(time)f(interv)o(al)f(is)h(proportional)f(to)g (the)0 1885 y(number)i(of)g(visible)e(dra)o(wable)i(objects)f(whose)g (duration)g(o)o(v)o(erlaps)h(that)f(time)h(interv)o(al,)g(and)g(is)f (independent)f(of)i(the)0 1942 y(total)10 b(number)h(of)g(dra)o(wable)f (objects)g(or)h(the)g(location)e(of)i(the)g(time)f(interv)o(al)g (within)f(the)i(total)f(time)h(interv)o(al)f(of)g(the)h(run.)0 1998 y(Scalability)j(is)h(achie)o(v)o(ed)g(by)g(letting)e(the)i(user)h (pick)e(the)h(time)h(\(instant)d(in)i(time\))h(b)o(ut)e(not)h(the)g (duration)f(of)h(the)g(time)0 2055 y(interv)o(al)10 b(around)h(it.)71 2111 y(In)20 b(order)g(to)g(display)f(the)h(dra)o(wable)g(objects,)i (the)f(Display)d(Program)k(needs)e(to)g(consider)f(se)o(v)o(eral)i (types)e(of)0 2168 y(information:)68 2262 y Fi(\017)k Fn(The)10 b(information)g(speci\002c)h(to)f(each)i(object,)e (consisting)f(of)i(the)f(start)h(and)f(end)h(time)g(of)g(the)f(object)g (\(used)h(by)f(the)114 2318 y(SLOG)15 b(program)h(to)g(pro)o(vide)f (scalable)g(access)h(to)g(the)f(data\),)j(along)d(with)f(the)i(other)f (graphical)g(coordinates)114 2374 y(needed)j(to)h(dra)o(w)g(the)g (object.)36 b(In)19 b(addition,)h(a)f(dra)o(wable)f(object)g(may)i(ha)o (v)o(e)f(a)g(byte)g(string)e(that)i(contains)114 2431 y(information)c(needed)h(to)f(pro)o(vide)h(other)g(\(usually)e (non-graphical\))h(information)g(about)h(the)f(object,)i(such)f(as)114 2487 y(the)f(location)f(in)g(the)i(source)f(code)g(where)g(the)h (object)e(was)h(added)g(to)g(the)g(trace)h(\002le)f(or)h(the)f (parameters)g(of)h(a)964 2613 y(5)p eop %%Page: 6 6 6 5 bop 114 286 a Fn(routine)12 b(call.)20 b(Since)13 b(man)o(y)h(dif)o(ferent)f(dra)o(wables)f(will)g(be)i(rendered)f(in)g (the)g(same)g(way)m(,)h(a)g(dra)o(wable)e(speci\002es)114 343 y(which)e Fm(cate)n(gory)h Fn(it)f(belongs)g(to.)68 436 y Fi(\017)23 b Fn(Information)10 b(common)h(to)g(all)g(objects)e (of)j(the)e(same)i(cate)o(gory)m(,)f(such)g(as)g(the)g(shape,)g(color)n (,)g(label,)g(the)g(format)g(of)114 492 y(the)d(object-speci\002c)g (data,)i(and)e(a)i(speci\002cation)d(of)i(ho)o(w)f(to)h(display)e(the)i (object-speci\002c)f(data.)13 b(\(E.g.,)d(a)f Fj(printf)114 549 y Fn(string\).)j(This)c(information)g(will)g(be)i(used)e(for)i(the) f(Le)o(gend)g(and)g(the)g(Popups)f(in)h(the)g(Display)f(Program.)14 b(T)l(o)9 b(allo)o(w)114 605 y(the)h(user)g(to)g(in)n(v)o(oke)f(a)h(v)o (ariety)g(of)g(actions)f(when)h(a)h(particular)e(dra)o(wable)h(object)g (is)g(selected,)g(each)h(cate)o(gory)f(can)114 661 y(specify)g(a)i (collection)d(of)j Fm(methods)p Fn(.)68 754 y Fi(\017)23 b Fn(Methods)11 b(simply)g(describe)h(the)g(action)f(to)g(take)h(with)f (the)h(byte)f(string)g(attached)h(to)g(a)g(dra)o(wable.)17 b(The)11 b(simplest)114 811 y(method)i(displays)f(the)i(byte)g(string)e (as)i(te)o(xt.)23 b(More)15 b(sophisticated)c(methods)i(may)i(display)d (the)i(parameters)h(to)114 867 y(a)e(routine,)f(complete)h(with)e (labels,)i(popup)e(a)i(source)g(code)g(bro)o(wser)f(highlightin)o(g)e (the)i(location)g(in)g(the)g(source)114 924 y(code)f(that)h(added)f (the)h(dra)o(wable)f(to)h(the)f(trace)h(\002le,)h(or)f(e)o(v)o(en)g (produce)f(an)h(alternati)o(v)o(e)f(format)h(for)g(the)g(graphical)114 980 y(display)d(\(e.g.,)k(the)e(bebit)f(problem\).)68 1073 y Fi(\017)23 b Fn(The)10 b(graphical)f(coordinates)g(themselv)o (es)g(come)i(in)e(two)g(types.)k(The)d(\002rst)g(is)g(the)f(time)h(v)o (alue,)h(of)f(which)f(the)h(start)114 1129 y(and)i(end)g(time)g(are)i (two)d(e)o(xamples.)18 b(Since)13 b(the)f(typical)f(display)g(of)h(a)h (trace)g(\002le)g(is)f(two-dimensional,)e(with)h(the)114 1186 y(time)f(axis)h(going)e(left)i(to)f(right)g(across)g(the)h (display)m(,)f(we)h(will)e(call)i(the)f(other)h(coordinate)e(type)i (the)f Fm(y)h(coor)n(dinate)p Fn(.)114 1242 y(Further)n(,)k(the)f(y)h (coordinate)e(is)h(discrete;)h(a)g(typical)e(display)g(may)i(ha)o(v)o (e)f(only)g(16)g(to)g(64)g(distinct)e(y)i(v)o(alues.)23 b(In)114 1299 y(addition,)9 b(the)i(y)g(v)o(alue)f(may)i(be)f(a)g (small)g(positi)o(v)o(e)f(inte)o(ger)n(,)h(such)f(as)h(the)g(number)g (of)g(the)g(process,)g(starting)f(from)114 1355 y(zero,)16 b(or)e(it)g(may)g(be)h(a)f(more)h(comple)o(x)g(v)o(alue,)g(such)f(as)g (a)h(tuple)e(that)h(includes)f(the)h(node)g(id,)h(cpu)f(id,)h(process) 114 1412 y(id,)c(and)h(thread)f(id)h(\(still)e(speci\002ed)h(as)h(an)g (inte)o(ger\).)j(In)d(order)g(to)f(handle)g(this)g(more)h(comple)o(x)g (case,)g(we)g(allo)o(w)f(a)114 1468 y(le)o(v)o(el)f(of)g(indirection)f (in)h(the)g(y)h(coordinate)e(v)o(alues.)14 b(Each)c(dra)o(wable)g (object)g(speci\002es)g(y)h(coordinates)e(as)h(inte)o(ger)114 1525 y(v)o(alues)h(and)h(in)g(addition)e(speci\002es)i(ho)o(w)g(to)f (map)i(these)f(v)o(alues)f(to)h(a)g(small)g(positi)o(v)o(e)f(inte)o (ger)n(.)16 b(A)d(trace)f(\002le)h(may)114 1581 y(de\002ne)g(se)o(v)o (eral)g(such)f(maps,)i(such)e(as)h(one)g(for)g(MPI)h(process)e(rank,)h (one)g(for)g(node)g(number)n(,)g(and)g(one)g(for)g(each)114 1637 y(thread.)20 b(This)12 b(is)h(accomplished)g(with)f(a)i Fm(coor)n(dinate)e(map)p Fn(.)20 b(If)13 b(no)g(coordinate)g(map)h(is)e (pro)o(vided,)i(the)f(ob)o(vious)114 1694 y(identity)c(map)j(is)e(used) h(\(this)f(is)h(appropriate)f(for)h(trace)h(\002les)f(that)g(use)g(MPI) h(process)f(rank)g(as)g(the)g(y)g(coordinate\).)71 1785 y(F)o(or)k(scalability)m(,)g(it)g(is)g(important)f(that)g(the)h (Display)f(Program)i(ha)o(v)o(e)g(a)f Fm(pr)n(e)o(vie)o(w)h Fn(function)e(that)h(aids)g(the)g(user)g(in)0 1842 y(picking)9 b(a)j(time)f(\(not)f(a)h(time)g(interv)o(al\))f(to)g(look)g(at.)k(The)d (data)g(\(for)g(e)o(xample,)h(statistics)c(on)j(the)g(distrib)o(ution)c (of)k(objects)0 1898 y(in)g(the)g(\002le\))g(necessary)g(to)g(pro)o (vide)g(the)f(pre)o(vie)o(w)h(are)h(in)f(the)f(Complete)i(SLOG)f(File)g (or)g(the)g(SLOG)g(Annotation)e(File.)0 2022 y Fh(2.1)50 b(Examples)0 2109 y Fn(W)l(e)11 b(ha)o(v)o(e)f(e)o(xperience)h(with)e (two)g(approximate)h(instantiations)d(of)j(the)g(architecture)g (described)f(here,)i(although)e(neither)0 2166 y(one)j(is)f(a)i (perfect)f(match.)17 b(Each)12 b(of)g(them)g(uses)g(Jumpshot)e([10])i (as)g(its)f(display)g(program.)17 b(W)l(e)c(refer)g(to)e(the)h(v)o (ersion)f(of)0 2222 y(April,)g(2000)f(as)h(SLOG-1.)0 2345 y Fl(2.1.1)45 b(SLOG-1)13 b(with)e(UTE)h(Files)0 2432 y Fn(W)l(e)k(ha)o(v)o(e)g(published)e(an)i(interface)f(for)h (writing)e(complete)i(SLOG-1)f(\002les)h(that)f(are)h(read)g(by)f (Jumpshot.)27 b(IBM)16 b(has)0 2488 y(written)d(a)i(program)f(that)g (uses)f(this)g(interface,)i(although)e(it)g(is)h(not)f(currently)h (architected)f(like)h(the)f(SLOG)h(Program)964 2613 y(6)p eop %%Page: 7 7 7 6 bop 0 286 a Fn(described)12 b(abo)o(v)o(e.)20 b(It)13 b(contains)f(the)h(stacking)e(algorithm)h(to)h(read)g(UTE)f(\002les,)i (whose)e(records)h(are)h(not)e(the)h(graphical)0 343 y(objects)e(to)h(be)h(displayed)d(by)j(Jumpshot.)j(The)c(e)o(v)o(ent)g (\002les)h(that)e(are)i(processed)f(into)f(UTE)h(\002les)h(are)g (produced)e(by)h(the)0 399 y(AIX)f(trace)h(mechanism.)0 522 y Fl(2.1.2)45 b(SLOG-1)13 b(with)e(CLOG)0 609 y Fn(W)l(e)h(ha)o(v)o (e)g(also)e(written)g(a)i(pro\002ling)e(library)h(that)f(uses)h(the)g (MPI)h(pro\002ling)e(interface)h(to)g(implement)g(dynamic)g(logging)0 666 y(of)e(e)o(v)o(ents)g(that)g(occur)h(in)f(MPI)h(programs.)k(At)9 b(the)g(time)g(of)h Fj(MPI)p 1034 666 14 2 v 17 w(Finalize)p Fn(,)i(logs)d(located)f(on)h(v)o(arious)g(processes)g(are)0 722 y(mer)o(ged)i(into)e(a)i(stream,)g(and)g(records)f(are)h(written)e (out)h(to)g(an)g(SLOG)h(File)f(using)f(the)h(SLOG-1)g(API.)i(Thus)d (code)h(inside)0 779 y(the)i(pro\002ling)e(v)o(ersion)i(of)g Fj(MPI)p 516 779 V 17 w(Finalize)i Fn(plays)d(the)h(role)g(of)g(the)f (SLOG)h(Program,)h(although)e(it)g(does)h(not)f(yet)g(use)0 835 y(a)g Fj(get)p 115 835 V 17 w(next)p 240 835 V 17 w(drawable)p 473 835 V 19 w(object)h Fn(interface,)f(b)o(ut)f(rather)g (does)g(the)g(stacking)f(and)i(matching)e(itself)h(in)g(open)g(code.)0 960 y Fh(2.2)50 b(T)-5 b(erm)14 b(De\002nitions)0 1047 y Fn(At)f(some)h(risk)f(of)h(redundanc)o(y)m(,)g(we)f(list)g(here)h (the)f(components)g(described)g(narrati)o(v)o(ely)f(abo)o(v)o(e.)22 b(T)m(erms)14 b(in)f(bold)g(face)0 1103 y(refer)f(to)f(other)g(items)f (in)h(this)f(glossary)m(.)0 1210 y Fl(Display)g(Pr)o(ogram)22 b Fn(The)11 b(end)g(result)f(on)h(the)g(screen.)k(W)l(e)c(e)o(xpect)h (it)e(to)h(support)f(at)h(least:)168 1303 y Fi(\017)23 b Fn(A)14 b Fl(Pr)o(e)o(view)g Fn(representing)f(the)h(whole)f(run,)i (which)e(the)h(user)g(can)h(use)e(to)h(help)g(choose)f(a)h(time)h(v)o (alue)e(of)214 1360 y(interest.)168 1433 y Fi(\017)23 b Fn(A)14 b Fl(T)o(imeline)g(V)n(iew)f Fn(or)h Fl(GANNT)h(Chart)f Fn(display)e(of)i(the)g(graphical)f(objects)g(or)h(portions)e(of)i (them)g(that)214 1489 y(fall)d(within)g(a)i(time)f(interv)o(al)f (containing)g(the)h(chosen)g(time.)17 b(The)c(o)o(v)o(erarching)f(goal) g(of)g(the)g(project)g(is)g(to)214 1546 y(make)f(this)f(display)g (scalable)g(in)h(the)g(sense)g(de\002ned)g(abo)o(v)o(e.)168 1619 y Fi(\017)23 b Fn(A)11 b Fl(Legend)h Fn(that)f(labels)f(graphical) h(objects)f(in)g(the)h(Display)m(.)168 1692 y Fi(\017)23 b Fn(An)11 b(optional)e(set)i(of)g Fl(P)o(opups)p Fn(,)h(containing)d (te)o(xt)i(data)g(about)f(the)h(object.)168 1765 y Fi(\017)23 b Fn(A)15 b(display)f(of)h Fl(Drawable)g(Objects)p Fn(,)j(each)e(of)f (which)g(is)f(a)i(single)e(graphical)h(object.)26 b(It)15 b(has)g(an)h(e)o(xtent)214 1822 y(in)g(time)h(gi)o(v)o(en)g(by)f(its)h (starting)e(time)i(and)g(duration.)31 b(It)17 b(may)g(also)f(ha)o(v)o (e)i(attached)f(to)f(it)h(a)g(byte)g(sting)214 1878 y(representing)g (data)g(associated)h(with)f(this)f(instance)i(of)g(the)f(object.)35 b(It)18 b(has)f(an)h(object)g(cate)o(gory)g(that)214 1934 y(connects)d(it)h(to)g(the)g Fl(Category)g(Description)g(Data)g Fn(and)g(speci\002es)g(what)g(type)g(of)g(graphical)g(object)g(it)214 1991 y(is)i(to)g(be)g(rendered)h(as,)i(along)d(with)f(suf)o(\002cient)h (data)g(to)h(render)f(the)h(object.)35 b(It)19 b(has)f(at)h(least)f (one)g(y-)214 2047 y(coordinate)e(that)h(is)h(used)f(to)g(place)h(the)f (dra)o(wable)h(object)f(on)g(the)g(correct)h(timeline\(s\))f(\(the)h (name)g(y-)214 2104 y(coordinate)11 b(is)h(used)g(because)g(it)g (matches)g(the)g(usual)g(display)e(\(Figure)j(1\).)k(The)c Fl(SLOG)g(Input)h(API)d Fn(will)214 2160 y(enable)k Fj(get)p 432 2160 V 17 w(next)p 557 2160 V 18 w(drawable)p 791 2160 V 18 w(object)j Fn(and)d(related)g(routines)g(to)g(access)h(all)f (information)f(in)h(the)214 2217 y(Dra)o(wable)c(Object)f(and)h (interpret)f(it.)k(Its)d(is)g(important)f(to)h(realize)g(that)g(the)g (Dra)o(wable)g(Object)f(is)h(a)g(virtual)214 2273 y(object)f(de\002ned) h(by)g(the)g Fl(SLOG)i(Input)f(API)e Fn(and)h(there)h(may)f(or)g(may)h (not)e(be)i(a)f Fl(Drawable)g(Object)i(File)p Fn(.)214 2338 y(The)8 b(most)g(common)h(dra)o(wable)f(object)g(is)g(a)h Fm(state)p Fn(,)f(de\002ned)h(as)f(a)h(duration)e(\(or)i(interv)o(al\)) f(in)g(time.)13 b(States)c(are)214 2394 y(usually)g(dra)o(wn)i(as)g (rectangles.)j(A)d(more)g(comple)o(x)g(object)f(might)h(be)g(a)g (sequence)g(of)g(separate)g(rectangles)214 2451 y(on)f(a)i(single)e (timeline)g(representing)g(periods)h(where)g(a)g(thread)g(is)g(running) f(during)g(a)h(state.)964 2613 y(7)p eop %%Page: 8 8 8 7 bop 114 286 a Fn(The)11 b Fl(display)f(pr)o(ogram)h Fn(uses)g(the)g Fl(SLOG)h(Input)g(API)f Fn(to)g(read)g(from)h(the)f (SLOG)g(\002le.)0 375 y Fl(SLOG)i(Pr)o(ogram)22 b Fn(A)15 b(program)g(whose)f(function)g(it)g(is)g(to)h(add)f(scalability)f(to)i (the)f(system.)25 b(It)15 b(uses)g(a)g(well-de\002ned)114 431 y(API)e(to)f(obtain)f(a)i(set)g(of)g(dra)o(wable)f(objects)g(and)g (another)g(to)g(write)h(out)f(either)g(a)h Fl(complete)g(SLOG)h(File)e Fn(or)h(an)114 488 y Fl(SLOG)f(Annotation)f(File)p Fn(.)114 576 y Fl(Complete)g(SLOG)h(File)22 b Fn(A)c(single)d(\002le)j (containing)d(all)i(information)f(necessary)h(as)g(input)e(for)j(the)f Fl(Display)214 632 y(Pr)o(ogram)p Fn(.)114 700 y Fl(SLOG)12 b(Annotation)f(File)22 b Fn(A)15 b(\002le)h(containing)d(just)h(the)h (\223scalability\224)f(part)h(of)g(the)g Fl(Drawable)f(Object)j Fn(data.)214 756 y(In)c(this)g(con\002guration,)g(the)g(data)h(is)f (left)g(in)g(either)g(a)h Fl(Drawable)g(Object)h(File)e Fn(or)g(the)g Fl(Event)h(File)p Fn(.)21 b(The)214 813 y Fl(Display)9 b(Pr)o(ogram)i Fn(accesses)h(the)e(data)i(through)d(the) i Fl(SLOG)i(Input)f(API)p Fn(.)23 901 y(The)f(SLOG)g(Program)h(uses)e (two)g(APIs)i(to)e(read)i(and)f(write)g(data:)114 989 y Fl(DO)g(Input)h(API)22 b Fn(\(Dra)o(wable)15 b(Object)g(Input)f (API\))i(The)f(programming)g(interface)f(for)i(deli)o(v)o(ering)e Fl(Drawable)214 1046 y(Objects)e Fn(to)f(the)g Fl(SLOG)h(Pr)o(ogram)p Fn(.)114 1113 y Fl(SLOG)g(Output)h(API)22 b Fn(The)13 b(programming)g(interface)g(for)g(storing)f(dra)o(wable)g(objects)g (and)h(other)g(data)g(into)f(an)214 1170 y Fl(SLOG)g(File)f Fn(or)g(into)f(an)h Fl(SLOG)i(Annotation)e(File)p Fn(.)23 1258 y(SLOG)h(Program)h(input)e(consists)g(of)h(dra)o(wable)h(objects)e (and)h(related)h(information.)k(Depending)11 b(on)h(the)g(implemen-)114 1315 y(tation)e(of)h(the)g Fl(SLOG)h(Input)g(API)p Fn(,)f(the)g (sources)g(may)h(be)114 1403 y Fl(Drawable)e(Object)j(File)22 b Fn(A)11 b(\002le)h(whose)e(records)h(are)h(dra)o(wable)f(objects.)i (Its)e(e)o(xistence)g(is)f(optional.)114 1470 y Fl(Event)h(File)22 b Fn(A)16 b(\002le)g(\(optional\))f(of)h(lo)o(wer)f(le)o(v)o(el)h(data) g(\(not)f(assembled)h(into)f Fl(Drawable)g(Objects)p Fn(\))i(that)f(may)214 1527 y(be)f(used)f(directly)g(by)h(the)g Fl(SLOG)i(Input)e(API)g Fn(or)g(may)h(be)f(processed)f(by)h(a)g (separate)h(program)f(into)f(a)214 1583 y Fl(Drawable)c(Object)j(File)p Fn(.)114 1651 y Fl(Dynamic)d(Drawable)h(Object)i(Sour)o(ce)23 b Fn(A)18 b(program)h(that)e(emits)h(a)g(stream)g(of)h Fl(Drawable)e(Objects)i Fn(that)f(is)214 1707 y(consumed)f(by)g(the)g Fl(SLOG)i(Pr)o(ogram)p Fn(.)33 b(It)17 b(may)h(ob)o(viate)f(the)h(need) f(for)h(an)o(y)f(input)g(\002les)g(to)g(e)o(xist)g(for)214 1764 y(the)11 b Fl(SLOG)h(Pr)o(ogram)p Fn(.)114 1852 y(In)i(the)h(typical)e(case,)k(the)d(dra)o(wable)g(objects)g(belong)g (to)g(a)h(relati)o(v)o(ely)f(small)g(number)h(of)f(cate)o(gories,)i (such)e(as)114 1909 y Fj(write)p Fn(,)f Fj(MPI)p 357 1909 14 2 v 17 w(Send)p Fn(,)g(or)e Fj(User-routine)p Fn(.)18 b(These)11 b(are)g(described)g(by)114 1997 y Fl(Category)f(Description)h(Data)22 b Fn(This)12 b(is)f(another)h (optional)f(\002le.)17 b(Precisely)12 b(ho)o(w)g(this)f(data)h(is)g (deli)o(v)o(ered)g(to)f(the)214 2053 y Fl(SLOG)i(Pr)o(ogram)f Fn(is)g(de\002ned)g(by)f(the)h Fl(SLOG)i(Input)f(API)p Fn(.)f(The)g(data)g(is)f(that)h(common)g(to)g(all)g(dra)o(wable)214 2110 y(objects)g(of)i(the)f(same)h(cate)o(gory)m(,)g(such)f(as)h (shape,)g(color)n(,)g(label,)g(data)f(format)h(of)f (instance-speci\002c)g(data,)214 2166 y(and)e(a)g(speci\002er)h(for)f (ho)o(w)f(that)h(data)g(is)g(to)f(be)i(displayed.)0 2288 y Fh(2.3)50 b(SLOG-2)11 b(Plans)0 2375 y Fn(An)i(important)f(part)h(of) g(SLOG-2)f(is)h(a)g(precise)g(description)f(of)h(the)f(all)h(the)g(v)o (arious)f(APIs;)h(see)h(Appendix)d(A,)i(B,)h(and)0 2432 y(C.)f(These)f(APIs)h(will)e(encourage)h(multiple)f(instantiations)e (of)j(this)g(architecture.)17 b(Besides)12 b(de\002ning)f(the)h (architecture)0 2488 y(more)g(clearly)m(,)f(there)g(will)g(be)g(two)f (completely)g(ne)o(w)h(features:)964 2613 y(8)p eop %%Page: 9 9 9 8 bop 68 286 a Fi(\017)23 b Fn(The)14 b(structure)g(of)g(an)h(SLOG)f (File)g(will)g(be)g(completely)g(dif)o(ferent)g(from)h(that)f(of)g (SLOG-1.)24 b(In)15 b(order)f(to)g(deal)114 343 y(with)e(graphical)h (objects)f(that)g(span)h(\223long\224)g(periods)f(of)h(time,)i(we)e (will)f(use)h(what)g(we)h(call)f(a)g(\223bounding)f(box\224)114 399 y(approach,)19 b(described)f(later)f(in)h(this)f(paper)n(.)34 b(Pseudo)17 b(records,)j(the)d(mechanism)h(used)g(for)g(this)f(purpose) g(in)114 456 y(SLOG-1,)11 b(will)f(eliminated.)j(Associations)c(will)g (be)j(replaced)f(by)f(a)i(more)f(general)g(notion)f(of)h(dra)o(wable)g (object.)68 550 y Fi(\017)23 b Fn(W)l(e)16 b(will)e(e)o(xplore)i(the)f (idea)h(of)f(ha)o(ving)g(the)g(SLOG)h(Program)g(emit)g(an)f(SLOG)h (Annotation)d(File)j(to)f(be)h(used)114 606 y(in)d(conjunction)g(with)g (an)h(original)f(Ev)o(ent)h(File)g(or)g(Dra)o(wable)g(Object)g(File,)h (thus)e(sa)o(ving)h(both)f(time)h(and)g(disk)114 663 y(space.)g(The)d(fundamental)f(idea)h(of)f(bounding)f(box)o(es)h(is)h (independent)e(of)i(whether)f(the)h(SLOG)f(Program)i(writes)114 719 y(a)j(complete)g(SLOG)g(\002le)g(or)h(an)f(SLOG)g(Annotation)e (File.)26 b(W)l(e)15 b(hope)g(to)g(be)g(able)g(thus)f(to)h(add)f (scalability)g(to)114 775 y(e)o(xisting)8 b(Dra)o(wable)i(Object)g (Files)f(such)h(as)g(those)f(produced)h(by)g(other)f(tools)g(such)h(as) g(V)-5 b(ampir)10 b(or)g(PICL,)i(as)e(well)114 832 y(as)h(unprocessed)f (UTE)h(\002les.)0 926 y(There)g(will)f(be)i(se)o(v)o(eral)f(adv)o (antages)f(to)h(con)n(v)o(erting)f(to)h(SLOG-2:)68 1020 y Fi(\017)23 b Fn(The)14 b(architecture)h(of)g(the)f(system)h(will)e (be)i(cleaner)n(,)i(with)d(the)g(SLOG)h(program')n(s)f(role)h (simpli\002ed)f(to)g(adding)114 1076 y(scalability)m(,)9 b(while)g(the)i(assembly)e(of)i(dra)o(wable)f(objects)g(will)f(be)i(mo) o(v)o(ed)g(to)f(the)g(other)g(side)g(of)g(the)h(SLOG)f(Input)114 1132 y(API,)i(which)e(in)h(turn)f(can)i(ha)o(v)o(e)f(multiple)f (implementations.)68 1226 y Fi(\017)23 b Fn(The)11 b(elimination)e(of)i (pseudo)f(records)i(sa)o(v)o(es)f(space,)h(comple)o(xity)m(,)e(and)h (time.)68 1320 y Fi(\017)23 b Fn(Only)12 b(one)i(pass)e(through)h(the)g (Dra)o(wable)g(Objects)f(will)h(be)g(necessary)m(,)i(sa)o(ving)d(time)i (when)f(the)g(SLOG)g(File)h(is)114 1377 y(created.)g(It)d(will)e(be)i (easy)g(to)f(do)h(this)e(if)i(the)f(SLOG)h(Input)f(API)h(has)g(a)g (routine)e(to)i(get)f(the)g(total)g(run)h(time,)g(b)o(ut)f(we)114 1433 y(describe)g(later)i(ho)o(w)e(it)h(will)f(be)h(possible)e(e)o(v)o (en)j(if)f(the)g(SLOG)g(\002le)g(is)g(being)f(created)i(during)e(the)h (run.)68 1527 y Fi(\017)23 b Fn(SLOG)11 b(Annotation)d(Files)j(will)f (allo)o(w)g(one)h(to)g(use)g(SLOG)g(and)f(Jumpshot)g(with)g(e)o (xisting)g(\002le)h(formats,)h(such)e(as)114 1583 y(UTE,)h(without)e (copying)g(their)i(data)g(into)f(a)i(Complete)f(SLOG)g(File.)0 1706 y Fl(Note:)45 b Fn(In)13 b(SLOG-2,)g(responsibility)c(for)k (determining)e(which)h(graphical)g(objects)f(will)g(be)i(displayed)e (is)h(mo)o(v)o(ed)h(out)0 1763 y(of)g(the)f(SLOG)g(Program)i(and)e (into)f(the)i(implementation)e(of)h(the)h(SLOG)f(Input)g(API.)h(Ho)o(w) f(to)g(render)h(them)g(is)f(mo)o(v)o(ed)0 1819 y(into)g(the)g(Display)f (Program.)19 b(This)12 b(is)g(dif)o(ferent)g(from)h(the)g(SLOG-1)f(vie) o(wpoint)e(that)i(assembly)g(of)h(dra)o(wable)f(objects)0 1876 y(is)j(done)g(jointly)f(by)h(the)g(SLOG)h(Program)g(and)g(the)f (Display)f(Program.)29 b(This)14 b(clari\002es)i(and)f(simpli\002es)g (the)g(SLOG)0 1932 y(Program)f(and)f(pro)o(vides)f(more)h(\003e)o (xibility)f(in)g(the)h(interfaces,)h(b)o(ut)e(may)h(require)g(changes)g (to)g(the)f(ways)h(we)g(currently)0 1988 y(do)e(things)e(in)i(the)g (IBM)h(collaboration.)71 2045 y(An)k(illustrati)o(v)o(e)e(e)o(xample)i (is)g(gi)o(v)o(en)g(by)f(\223bebit\224)h(processing.)28 b(Where)17 b(are)g(little)d(interv)o(als)h(combined)h(into)f(big)0 2101 y(interv)o(als?)23 b(Do)14 b(the)h(v)o(arious)e(types)h(of)h (fragments)f(\(dif)o(ferent)h(bebit)e(v)o(alues\))h(belong)g(to)g(dif)o (ferent)g(cate)o(gories)h(or)f(the)0 2158 y(same)k(cate)o(gory?)33 b(The)o(y)17 b(should)f(because)h(the)o(y)g(ha)o(v)o(e)h(the)f(same)h (color)f(and)h(label;)h(the)o(y)e(shouldn')o(t)f(because)h(the)o(y)0 2214 y(contain)10 b(dif)o(ferent)h(data.)j(In)d(the)g(SLOG-2)g (approach,)g(there)h(are)g(two)e(alternati)o(v)o(es:)68 2308 y Fi(\017)23 b Fn(If)11 b(we)g(want)g(both)f(big)g(interv)o(als)g (and)h(fragments)g(as)g(dra)o(wable)g(objects,)f(then)h(the)o(y)f(are)i (of)f(dif)o(ferent)g(cate)o(gories,)114 2365 y(and)f(both)f(go)i(into)e (the)h(SLOG)g(File.)k(Jumpshot)9 b(displays)g(either)h(the)g(big)g (ones)g(or)h(all)f(the)g(types)g(of)g(little)f(ones)h(or)114 2421 y(both.)964 2613 y(9)p eop %%Page: 10 10 10 9 bop 68 286 a Fi(\017)23 b Fn(W)l(e)15 b(de\002ne)g(a)g(ne)o(w)f (single)f(dra)o(wable)i(object,)g(consisting)d(of)i(lots)g(of)h (rectangles.)23 b(\(So)15 b(the)g(geometric)f(data)h(is)114 343 y(v)o(ariable)10 b(and)h(lar)o(ge.\))k(Jumpshot)10 b(kno)o(ws)f(two)i(dif)o(ferent)f(ways)h(to)f(render)i(this)e(object.)0 437 y(Ho)o(w)h(to)f(deal)h(with)g(cpu/node/thread)e(ids)h(is)h(left)g (entirely)f(to)h(Jumpshot.)71 493 y(W)l(e)g(need)h(four)f(API')n(s)g (altogether:)68 587 y Fi(\017)23 b Fn(One)17 b(to)g(read)h(a)g (trace\002le.)35 b(Implementations)16 b(will)g(be)i(specialized)f(for)h (reading)f(v)o(arious)f(trace\002les)i(\(UTE,)114 643 y(CLOG,)11 b(ALOG,)g(etc.\))68 737 y Fi(\017)23 b Fn(One)11 b(to)f(write)h(an)g(SLOG2)g(\002le.)k(The)c(implementation)f(of)h(this) f(will)g(create)i(the)f(tree.)68 831 y Fi(\017)23 b Fn(One)11 b(to)f(read)i(an)f(SLOG2)g(\002le.)k(Implementation)10 b(in)h(C,)h(for)f(testing.)68 925 y Fi(\017)23 b Fn(Another)10 b(one)h(to)g(read)g(an)h(SLOG2)e(\002le.)15 b(Implementation)10 b(in)h(Ja)o(v)o(a,)g(for)h(Jumpshot.)71 1019 y(The)e(DO)g(API,)i (described)e(in)g(Appendix)f(B,)i(is)g(designed)e(to)h Fm(not)h Fn(impose)f(a)h(particular)f(structure)f(for)i(the)g(dra)o (wable)0 1075 y(objects)16 b(on)g(the)h(user)n(.)31 b(Instead,)18 b(each)f(dra)o(wable)g(object)f(is)g(described)h(by)f(some)h(te)o(xt)g (\(stored)f(at)h Fj(text)p 1772 1075 14 2 v 17 w(base)29 b(+)0 1132 y(text)p 111 1132 V 17 w(pos)p Fn(\),)13 b(coordinates)c (\(stored)i(at)g Fj(coord)p 785 1132 V 17 w(base)29 b(+)e(coord)p 1128 1132 V 18 w(pos)p Fn(\),)12 b(a)g(cate)o(gory)m(,)f(and)g(a)g (time)g(range.)j(The)d(API)0 1188 y(makes)16 b(it)f(easy)g(to)h(read)g (these)f(into)f(either)i(a)g(single)e(struct)h(representing)g(a)h(dra)o (wable)f(or)h(into)e(separate)i(arrays)g(for)0 1245 y(coordinate)9 b(and)i(character)g(data.)j(The)c(routine)g Fj(SLOG)p 889 1245 V 17 w(Peek)p 1014 1245 V 17 w(next)p 1139 1245 V 18 w(drawable)j Fn(makes)d(it)g(possible)f(to)h(preallocate)0 1301 y(space)h(for)h(the)f(ne)o(xt)g(dra)o(wable.)71 1357 y(The)e(SLOG)g(Output)e(API)j(is)f(described)f(in)h(Appendix)f(C)h (and)g(the)g(SLOG)g(Input)g(API)g(is)g(described)f(in)h(Appendix)f(D.) 71 1414 y(Records)14 b(are)g(vie)o(wed)f(as)h(graphical)g(objects.)21 b(The)14 b(object)f(types)g(are)i(rectangle,)f(line,)h(arro)o(w)m(,)g (and)e(polygon.)21 b(In)0 1470 y(addition,)11 b(there)h(is)g(a)h (special)e(object)h(type)g(called)g(\223bebit)f(rectangle\224)h(that)g (describes)f(a)i(collection)e(of)h(rectangles)g(that)0 1527 y(can)i(be)f(displayed)f(either)i(as)f(a)h(single)e(rectangle)i (or)f(as)h(indi)o(vidual)d(rectangles.)21 b(Each)13 b(record)h(may)g (ha)o(v)o(e)g(additional)0 1583 y(data)d(that)g(can)g(be)g(displayed)f (by)h(calling)f(the)h(routine)f(to)h(create)g(a)h(te)o(xt)f (description)e(of)i(the)g(record.)71 1640 y(T)l(ypically)m(,)h(a)h (visualization)d(program)j(such)f(as)h(Jumpshot)e([10])i(will)f(access) h(a)g(range)g(of)g(records,)g(so)f(an)o(y)h(imple-)0 1696 y(mentation)d(of)h(these)g(methods)g(should)e(assume)i(that)g (most)g(read)g(operations)f(access)h(successi)o(v)o(e)g(records.)71 1753 y(SLOG-1)j(had)h(the)g(concept)g(of)g(related)g(records.)26 b(While)14 b(this)g(helps)h(describe)f(some)i(relationships,)e (managing)0 1809 y(record)i(relationships)c(adds)j(signi\002cant)f (comple)o(xity)g(to)h(the)g(system.)26 b(In)16 b(SLOG-2,)g(there)g(are) f(no)g(related)h(records;)0 1866 y(instead,)11 b(there)h(are)g(comple)o (x)g(dra)o(wable)f(objects.)k(In)d(other)f(words,)g(what)g(in)h(SLOG-1) f(was)g(se)o(v)o(eral)h(related)g(dra)o(wable)0 1922 y(objects)h(is)g(in)h(SLOG-2)f(a)h(single)f(b)o(ut)g(more)i(comple)o(x) f(dra)o(wable)f(object.)22 b(This)12 b(pro)o(vides)h(a)i(cleaner)n(,)g (more)g(modular)0 1978 y(interface.)0 2103 y Fh(2.4)50 b(P)o(opup)12 b(Methods)0 2190 y Fn(The)j(popup)f(methods)h(describe)g (ho)o(w)f(the)h(dra)o(wing)g(program)h(should)d(interpret)i(the)g(byte) g(string)f(of)h(data)g(that)g(each)0 2247 y(dra)o(wable)10 b(object)g(may)h(ha)o(v)o(e.)j(In)c(the)h(simplest)e(case,)i(the)f (byte)g(string)f(contains)g(printable)g(characters)i(and)g(the)f (method)0 2303 y(pops)h(up)h(a)g(simple)f(te)o(xt)h(box)f(containing)f (this)h(data.)17 b(A)12 b(more)g(comple)o(x)g(method)g(may)g(kno)o(w)f (ho)o(w)h(to)f(format)i(the)e(data)0 2360 y(with)f(labels)h(or)g (access)g(a)h(source)f(code)g(bro)o(wser)n(.)952 2613 y(10)p eop %%Page: 11 11 11 10 bop 217 1466 a @beginspecial 0 @llx 0 @lly 364 @urx 294 @ury 3640 @rwi @setspecial %%BeginDocument: bb.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: bb.eps %%Creator: fig2dev Version 3.2 Patchlevel 0-beta3 %%CreationDate: Sun Jul 23 09:40:14 2000 %%For: gropp@fire.mcs.anl.gov (William Gropp,C235,2524318,) %%Orientation: Portrait %%BoundingBox: 0 0 364 294 %%Pages: 0 %%BeginSetup %%EndSetup %%Magnification: 1.0000 %%EndComments /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind 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 -70.0 297.0 translate 1 -1 scale /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} 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 /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} 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 /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def %%EndProlog $F2psBegin 10 setmiterlimit n -1000 5950 m -1000 -1000 l 8222 -1000 l 8222 5950 l cp clip 0.06000 0.06000 sc % Polyline 7.500 slw n 4200 75 m 4200 2700 l gs col5 s gr % Polyline 15.000 slw n 1950 2550 m 1950 2700 l 2700 2700 l 2700 2550 l gs col0 s gr % Polyline n 2700 2325 m 2700 2475 l 3450 2475 l 3450 2325 l gs col0 s gr % Polyline n 3450 2550 m 3450 2700 l 4200 2700 l 4200 2550 l gs col0 s gr % Polyline n 4200 2325 m 4200 2475 l 4950 2475 l 4950 2325 l gs col0 s gr % Polyline n 4950 2550 m 4950 2700 l 5700 2700 l 5700 2550 l gs col0 s gr % Polyline n 5700 2325 m 5700 2475 l 6450 2475 l 6450 2325 l gs col0 s gr % Polyline n 6450 2550 m 6450 2700 l 7200 2700 l 7200 2550 l gs col0 s gr % Polyline n 1200 3075 m 1200 3225 l 2700 3225 l 2700 3075 l gs col0 s gr % Polyline n 2700 3300 m 2700 3450 l 4200 3450 l 4200 3300 l gs col0 s gr % Polyline n 4200 3075 m 4200 3225 l 5700 3225 l 5700 3075 l gs col0 s gr % Polyline n 1200 2325 m 1200 2475 l 1950 2475 l 1950 2325 l gs col0 s gr % Polyline n 5700 3300 m 5700 3450 l 7200 3450 l 7200 3300 l gs col0 s gr % Polyline n 4200 4050 m 4200 4200 l 7200 4200 l 7200 4050 l gs col0 s gr % Polyline 7.500 slw n 1200 600 m 7200 600 l 7200 2100 l 1200 2100 l cp gs col0 s gr % Polyline [60] 0 sd n 3150 525 m 5025 525 l 5025 2175 l 3150 2175 l cp gs col0 s gr [] 0 sd % Polyline n 4200 4800 m 5700 4200 l 6450 3450 l 6825 2700 l gs col0 s gr % Polyline n 6450 3450 m 6075 2475 l gs col0 s gr % Polyline n 5700 4200 m 4950 3225 l 5325 2700 l gs col0 s gr % Polyline n 4575 2475 m 4950 3225 l gs col0 s gr % Polyline n 4200 4800 m 2700 3975 l 3450 3450 l 3825 2700 l gs col0 s gr % Polyline n 3450 3450 m 3075 2475 l gs col0 s gr % Polyline 15.000 slw n 1200 3825 m 1200 3975 l 4200 3975 l 4200 3825 l gs col0 s gr % Polyline 7.500 slw n 1875 3225 m 1500 2475 l gs col0 s gr % Polyline n 2700 3975 m 1875 3225 l 2250 2700 l gs col0 s gr % Polyline n 3600 1950 m 3750 1950 l gs col6 s gr % Polyline n 4350 1050 m 4425 1050 l gs col6 s gr % Polyline 30.000 slw n 1275 1950 m 1875 1950 l gs col6 s gr % Polyline n 1650 750 m 2100 750 l gs col1 s gr % Polyline n 1275 900 m 2175 900 l gs col1 s gr % Polyline n 1575 1200 m 2400 1200 l gs col1 s gr % Polyline n 1800 1650 m 1950 1650 l gs col1 s gr % Polyline n 2925 900 m 3750 900 l gs col1 s gr % Polyline n 4575 1050 m 5025 1050 l gs col1 s gr % Polyline n 1275 1500 m 1425 1500 l gs col6 s gr % Polyline n 1275 1350 m 1425 1350 l gs col6 s gr % Polyline n 1275 675 m 1500 675 l gs col6 s gr % Polyline n 3825 750 m 3675 750 l 4125 750 l gs col6 s gr % Polyline n 3825 1050 m 4050 1050 l 4125 1050 l gs col6 s gr % Polyline n 4275 750 m 4425 750 l gs col6 s gr % Polyline n 4650 750 m 4800 750 l gs col6 s gr % Polyline n 5175 1050 m 5325 1050 l gs col6 s gr % Polyline n 5925 1500 m 6075 1500 l gs col6 s gr % Polyline n 6075 1650 m 6225 1650 l gs col6 s gr % Polyline n 6075 1800 m 6150 1800 l gs col6 s gr % Polyline 7.500 slw n 2400 1950 m 2550 1950 l gs col6 s gr % Polyline 30.000 slw n 6825 1500 m 6975 1500 l gs col6 s gr % Polyline n 2250 750 m 3075 750 l gs col2 s gr % Polyline n 6600 1950 m 6750 1950 l gs col6 s gr % Polyline n 2550 1350 m 2850 1350 l gs col2 s gr % Polyline n 5475 1800 m 5925 1800 l gs col2 s gr % Polyline n 4125 900 m 4650 900 l gs col4 s gr % Polyline n 3600 1200 m 6750 1200 l gs col4 s gr % Polyline n 2400 1500 m 5325 1500 l gs col4 s gr % Polyline n 2100 1650 m 4875 1650 l gs col4 s gr % Polyline n 3900 1950 m 4725 1950 l gs col4 s gr % Polyline n 1950 1350 m 1800 1350 l 2250 1350 l gs col1 s gr % Polyline n 1650 1800 m 2475 1800 l gs col1 s gr % Polyline n 3300 750 m 3450 750 l gs col1 s gr % Polyline n 4875 1350 m 5025 1350 l gs col1 s gr % Polyline n 6375 1800 m 6450 1800 l gs col1 s gr % Polyline n 3060 1050 m 3090 1050 l gs col6 s gr % Polyline n 3210 1050 m 3240 1050 l gs col6 s gr % Polyline n 5025 750 m 5175 750 l gs col6 s gr % Polyline n 6225 1800 m 6300 1800 l gs col6 s gr % Polyline n 5535 1500 m 5565 1500 l gs col6 s gr % Polyline n 4950 1950 m 5400 1950 l gs col6 s gr % Polyline n 6600 1050 m 6750 1050 l gs col6 s gr % Polyline n 5325 750 m 5475 750 l gs col6 s gr % Polyline n 5700 750 m 5850 750 l gs col6 s gr % Polyline n 3675 1050 m 3450 1050 l gs col6 s gr % Polyline n 4425 1800 m 4575 1800 l gs col6 s gr % Polyline n 3000 1350 m 3075 1350 l gs col6 s gr % Polyline n 2775 1950 m 3225 1950 l gs col6 s gr % Polyline n 4035 1350 m 4065 1350 l gs col6 s gr % Polyline n 4425 1350 m 4500 1350 l gs col6 s gr % Polyline n 4635 1350 m 4665 1350 l gs col6 s gr % Polyline n 3825 1350 m 3900 1350 l gs col6 s gr % Polyline n 3300 1800 m 3450 1800 l gs col1 s gr % Polyline 7.500 slw n 4650 900 m 5325 750 l gs col1 s gr % Polyline n 2775 1950 m 3300 1800 l gs col6 s gr % Polyline n 2850 1050 m 3000 1350 l gs col6 s gr % Polyline n 2100 1650 m 6600 1050 l gs col4 s gr % Polyline n 3450 1050 m 4425 1800 l gs col4 s gr % Polyline n 1950 375 m 1950 2325 l gs col5 s gr % Polyline n 2700 225 m 2700 2475 l gs col5 s gr % Polyline n 3450 375 m 3450 2325 l gs col5 s gr % Polyline n 4950 375 m 4950 2325 l gs col5 s gr % Polyline n 5700 225 m 5700 2475 l gs col5 s gr % Polyline n 6450 375 m 6450 2325 l gs col5 s gr % Polyline 30.000 slw n 4185 1350 m 4215 1350 l gs col4 s gr % Polyline n 1950 1050 m 2850 1050 l gs col2 s gr /Helvetica ff 180.00 scf sf 5025 2550 m gs 1 -1 sc (Level 3) col6 sh gr /Helvetica ff 180.00 scf sf 4500 3450 m gs 1 -1 sc (Level 2) col1 sh gr /Helvetica ff 180.00 scf sf 4425 4050 m gs 1 -1 sc (Level 1) col2 sh gr /Helvetica ff 180.00 scf sf 4350 4950 m gs 1 -1 sc (Level 0) col4 sh gr $F2psEnd rs %%EndDocument @endspecial 0 1564 a Fn(Figure)13 b(5:)18 b(Bounding)12 b(box)o(es)h(for)g(the)g(log)g(\002le)g(in)g(Figure)g(2.)21 b(The)13 b(\002gure)h(sho)o(ws)e(the)h(interv)o(als)f(de\002ned)h(as)g (bounding)0 1620 y(box)o(es)f(as)g(horizontal)f(brackets,)h(along)f (with)h(the)g(hierarchy)g(of)g(bounding)e(box)o(es.)17 b(Colors)12 b(indicate)f(the)h(assignement)0 1677 y(of)f(graphical)g (objects)f(to)h(bounding)e(box)h(le)o(v)o(els.)0 1815 y Fo(3)60 b(SLOG)14 b(Annotations)0 1919 y Fn(The)g(goal)f(in)g(SLOG)h (is)f(to)g(enable)h(the)f(display)f(of)i(graphical)f(objects)g (described)g(by)g(one)h(or)g(more)g(trace)g(\002les.)22 b(One)0 1975 y(way)11 b(to)f(look)h(at)g(this)f(is)g(that)h(we)g(wish)g (to)f(display)g(a)i(small)e(re)o(gion)h(of)g(a)h(much)f(lar)o(ger)h (picture,)f(as)g(sho)o(wn)f(in)h(Figure)g(2.)71 2032 y(A)j(common)h(way)f(to)g(or)o(ganize)h(data)f(of)h(this)f(kind)f(for)i (graphical)f(display)f(is)h(to)g(de\002ne)h(bounding)e(box)o(es.)24 b(This)0 2088 y(approach)17 b(pro)o(vides)f(a)h(simple)g(and)g(ef)o (\002cient)g(way)f(to)h(access)g(only)f(the)h(data)g(necessary)f(to)h (dra)o(w)g(the)g(re)o(gion)g(that)0 2144 y(o)o(v)o(erlaps)11 b(the)g(bounding)e(box)o(es.)14 b(This)c(approach)h(is)g(sho)o(wn)f (schematically)g(in)h(Figure)g(5.)71 2201 y(Perhaps)g(the)g(best)f(way) h(to)f(describe)h(the)g(SLOG)g(annotation)e(for)j(the)e(trace)i(data)f (is)g(to)f(describe)h(the)g(algorithm)f(for)0 2257 y(computing)j(the)h (tree)g(sho)o(wn)f(in)h(Figure)g(5.)24 b(F)o(or)15 b(simplicity)m(,)e (we)i(will)e(assume)h(that)g(the)g(trace)g(records)h(co)o(v)o(er)g(a)f (time)0 2314 y(interv)o(al)e Fg([0)p Fk(;)c(T)e Fg(])12 b Fn(and)h(that)f(the)h(data)g(in)g(the)g(original)f(trace)i(\002le)f (consists)f(of)h(rectangles)g(sorted)f(by)h(end)g(time.)21 b(That)12 b(is,)0 2370 y(each)f(rectangle)g(is)f(described)h(by)f(a)i (thread)e(number)h(\()p Fk(y)i Fn(coordinate)d(in)h(the)g (visualization\))d(and)j(a)g(time)g(interv)o(al)f Fg([)p Fk(t)1864 2377 y Ff(s)1882 2370 y Fk(;)e(t)1919 2377 y Ff(e)1937 2370 y Fg(])0 2427 y Fn(\()p Fk(x)j Fn(coordinate)g(in)f (the)h(visualization\).)h(The)f(rectangles)g(are)h(sorted)e(by)h(end)g (time,)h Fk(t)1363 2434 y Ff(e)1381 2427 y Fn(.)71 2483 y(The)19 b(SLOG)h(annotations)d(simply)i(form)i(a)f(binary)f(tree,)j (de\002ned)e(recursi)o(v)o(ely)f(as)h(follo)o(ws.)39 b(The)19 b(root)h(node)952 2613 y(11)p eop %%Page: 12 12 12 11 bop 0 286 a Fn(represents)9 b(the)g(time)h(interv)o(al)f Fg([0)p Fk(;)f(T)e Fg(])p Fn(.)12 b(F)o(or)e(an)o(y)g(node,)f (representing)g(the)g(time)h(interv)o(al)e Fg([)p Fk(t)1447 293 y Fe(1)1467 286 y Fk(;)g(t)1504 293 y Fe(2)1523 286 y Fg(])p Fn(,)j(there)e(are)i(two)d(children)0 343 y(representing)j (the)g(time)h(interv)o(als)e Fg([)p Fk(t)593 350 y Fe(1)613 343 y Fk(;)638 329 y Fe(1)p 638 335 18 2 v 638 358 a(2)660 343 y Fg(\()p Fk(t)694 350 y Fe(1)725 343 y Fg(+)h Fk(t)787 350 y Fe(2)807 343 y Fg(\)])g Fn(and)g Fg([)944 329 y Fe(1)p 944 335 V 944 358 a(2)967 343 y Fg(\()p Fk(t)1001 350 y Fe(1)1031 343 y Fg(+)g Fk(t)1093 350 y Fe(2)1113 343 y Fg(\))p Fk(;)d(t)1168 350 y Fe(2)1187 343 y Fg(])p Fn(.)15 b(A)d(node)f(is)g(a)h(leaf)g(of)g(the)g(tree)g(if)f(the)h(size) f(of)0 399 y(the)g(time)h(interv)o(al)e(is)h(less)f(than)h(or)h(equal)f (to)g Fg(\001)p Fk(T)792 406 y Ff(min)858 399 y Fn(.)k(\(W)l(e)d (describe)f(a)h(number)f(of)h(generalizations)e(to)g(this)h (de\002nition)0 456 y(in)g(Section)f(4.\))15 b(Records)c (\(rectangles\))g(are)h(placed)f(into)f(the)h(smallest)f(\(in)h(time)g (interv)o(al\))f(containing)g(node.)71 512 y(T)l(o)h(display)f(an)o(y)i (graphical)f(objects)f(around)h(an)o(y)g(chosen)g(time,)h(only)f(a)h (subset)e(of)i(the)f(nodes)f(of)i(the)f(tree)h(must)f(be)0 569 y(read.)j(Speci\002cally)m(,)d(to)f(display)f(a)i(time)f Fk(t)p Fn(,)i(only)d(the)h(nodes)g(of)g(the)g(tree)h(whose)f(time)g (interv)o(als)f(intersect)h(with)f(this)g(time)0 625 y(must)h(be)g(read)h(and)f(displayed)e(\(if)j Fk(t)f Fn(is)g(near)h(either)e(end)h(of)h(an)f(interv)o(al,)g(we)g(may)h (choose)e(to)h(read)h(the)e(adjacent)h(interv)o(al)0 682 y(in)h(order)g(to)g(pro)o(vide)f(a)i(more)g(informati)o(v)o(e)e (display\).)71 738 y(Under)e(the)h(assumption)e(that)h(records)h(are)g (uniformly)f(distrib)o(uted)f(throughout)f(the)j(trace)g(\002le,)h(the) f(v)o(alue)f(of)h Fg(\001)p Fk(T)1884 745 y Ff(min)0 795 y Fn(can)15 b(be)g(computed)f(as)h(follo)o(ws.)23 b(Assume)15 b(that,)g(for)g(ef)o(\002cient)g(display)m(,)f(the)h(data)f (read)h(should)f(be)g(limited)g(to)g Fk(n)1866 802 y Ff(max)1939 795 y Fn(.)0 851 y(Further)n(,)f(assume)g(that)e(the)i (size)f(of)g(the)g(\002le)h(is)f Fk(n)794 858 y Ff(f)817 851 y Fn(,)h(the)f(display)f(will)g(sho)o(w)h(only)f(a)i(single)e(time) i(interv)o(al)e(at)h(an)o(y)h(time.)0 907 y(Then)746 1017 y Fg(\001)p Fk(T)811 1024 y Ff(min)889 1017 y Fg(=)942 1004 y Fe(1)p 942 1010 V 942 1033 a(2)965 1017 y Fk(T)6 b Fg(2)1021 914 y Fd(\026)1050 945 y Fc(ln)1107 923 y Fb(n)1126 932 y(f)p 1086 940 83 2 v 1086 956 a(n)1105 960 y(max)p 1050 963 124 2 v 1088 984 a Fc(ln)g(2)1178 914 y Fd(\027)0 1093 y Fn(\(The)j(e)o(xtra)g(factor)g(of)f(two)g(allo)o (ws)g(the)g(display)f(program)i(to)g(read)g(two)f(leaf)h(nodes,)g (since)f(an)o(y)h(time)g(interv)o(al)f(of)h(duration)0 1150 y Fg(\001)p Fk(T)65 1157 y Ff(min)143 1150 y Fn(will)h(intersect)g (with)g(at)h(most)g(2)g(leaf)h(nodes.\))71 1206 y(In)e(the)g (annotation)f(model,)i(the)f(lea)o(v)o(es)h(of)f(the)g(tree)h(are)g (desribed)f(by)g(a)h(start)f(and)g(end)g(position)f(within)f(a)j(trace) g(\002le;)0 1263 y(there)j(may)g(be)g(at)f(most)h(one)f(\002le)h(for)g (each)g(timeline)f(\(this)g(requirement)h(can)g(be)f(relax)o(ed)h(by)g (de\002ning)f(a)h(virtual)e(\002le;)0 1319 y(after)g(all,)f(the)g(only) f(access)i(to)e(the)h(trace)h(\223\002le\224)g(is)f(through)e(the)i (API\).)h(In)g(this)e(case,)i(the)f(SLOG)g(\002le)g(contains)f(only)g (the)0 1376 y(non-leaf)h(nodes)f(of)h(the)g(tree.)k(As)c(we)g(sho)o(w)f (in)h(Section)g(4.5,)g(the)g(resulting)f(SLOG)h(\002le)g(can)h(be)f (quite)f(small.)0 1498 y Fh(3.1)50 b(Single)12 b(Pass)h(Cr)o(eation)e (of)h(SLOG)g(File)0 1585 y Fn(Assume)h(that)g(we)h(ha)o(v)o(e)f(a)h (trace)g(\002le)g(containing)e(records,)i(sorted)f(by)g(end-time.)21 b(Recall)13 b(that)g(a)h(record)g(represents)f(a)0 1641 y(single)c(dra)o(wable)h(object)f(of)i(with)e(a)i(kno)o(wn)e(start)g (and)i(end)f(time;)g(the)g(simplest)f(such)h(object)f(is)h(a)h(state,)f (often)g(dra)o(wn)g(as)0 1698 y(a)h(rectangle.)j(W)l(e)d(wish)f(to)g (create)h(an)g(SLOG)g(annotation)d(for)j(this)f(\002le)h(in)f(a)h (single)e(pass.)14 b(W)l(e)d(will)f(further)g(assume)h(that)0 1754 y(most)f(records)h(will)f(\002t)g(in)h(the)f(lea)o(v)o(es)h (\(i.e.,)h(their)e(duration)g(is)g(less)g(than)g Fg(\001)p Fk(T)1234 1761 y Ff(min)1300 1754 y Fn(\).)15 b(Our)10 b(algorithm)g(creates)h(a)g(postorder)0 1811 y(representation)h(of)h (the)g(tree;)h(that)f(is,)h(when)f(mo)o(ving)f(sequentially)f(through)h (the)h(SLOG)g(annotation,)f(the)h(tree)h(nodes)0 1867 y(are)e(visited)d(in)i(postorder)f(\(children)h(before)g(parents\).)71 1924 y(Let)g(the)h(root)g(of)g(the)g(tree)g(ha)o(v)o(e)g(le)o(v)o(el)g (0)g(and)g(de\002ne)g(the)g(le)o(v)o(el)g(of)g(the)g(children)f(of)h(a) h(node)e(a)i(one)f(greater)g(than)f(the)0 1980 y(le)o(v)o(el)f(of)h (that)f(node.)k(The)c(tree)h(has)f(le)o(v)o(els)g Fg(0)h Fn(through)e Fk(L)p Fn(.)14 b(F)o(or)e(each)f(le)o(v)o(el)f Fk(`)p Fn(,)h(let)f(there)h(be)g(a)g(list)e(of)i(records)f Fk(R)1770 1987 y Ff(`)1786 1980 y Fn(,)i(initially)0 2037 y(empty)m(.)i(In)9 b(addition,)g(for)g(each)h(le)o(v)o(el)g Fk(`)p Fn(,)g(there)g(is)f(a)h(time)f(interv)o(al)g Fg(\001)p Fk(T)1120 2044 y Ff(`)1146 2037 y Fn(that)g(speci\002es)g(the)g(time)h (interv)o(al)e(for)i(the)f(current)0 2093 y(tree)i(node)g(on)f(le)o(v)o (el)h Fk(`)p Fn(.)j(Finally)m(,)c(we)h(keep)g(track)g(of)g(the)f (location)g(of)h(the)f(data)h(in)g(each)g(node)f(of)h(the)g(tree)g (within)e(the)i(\002le)0 2149 y(in)g(a)h Fm(dir)n(ectory)p Fn(;)e(this)h(directory)g(has)g Fg(2)617 2133 y Ff(L)653 2149 y Fi(\000)g Fg(1)g Fn(entries,)g(and)h(is)f(relati)o(v)o(ely)f (small.)15 b(The)d(directory)e(should)g(be)i(in)f(preorder)0 2206 y(to)i(simplify)f(searches.)20 b(In)13 b(order)h(to)e(simplify)g (the)h(description,)f(each)i(node)f(on)g(le)o(v)o(el)g Fk(`)g Fn(is)g(co)o(v)o(ers)g(a)h(time)f(interv)o(al)f(of)0 2262 y(length)e Fg(2)148 2246 y Fa(\000)p Ff(`)191 2262 y Fk(T)c Fn(.)15 b(Section)10 b(4,)h(point)f(5)h(discusses)e(an)i (alternati)o(v)o(e)g(that)f(limits)g(the)g(amount)h(of)g(memory)g(used) g(by)f(each)i(leaf)0 2319 y(node.)71 2375 y(The)f(algorithm)f(to)g (write)h(an)h(SLOG)f(\002le)g(is)g(sho)o(wn)f(in)g(Figure)h(6.)71 2432 y(W)l(e)16 b(could)f(also)g(write)g(the)g(directory)g(at)h(the)f (be)o(ginning)f(of)i(the)f(\002le,)j(since)d(we)h(kno)o(w)f(ho)o(w)g (long)f(it)h(is,)i(b)o(ut)e(for)0 2488 y(reasons)c(discussed)e(belo)o (w)m(,)i(we)g(put)f(it)h(at)g(the)g(end.)j(Normally)m(,)d(the)g(lists)e Fk(R)1215 2495 y Ff(`)1243 2488 y Fn(can)i(be)g(maintained)f(in)h (memory)m(,)h(with)e(the)952 2613 y(12)p eop %%Page: 13 13 13 12 bop 114 474 a Fn(for)11 b Fk(`)i Fg(=)g(0)p Fk(;)8 b Fg(1)p Fk(;)g(:)g(:)f(:)t(;)h(L)j Fn(do)f Fi(f)214 549 y Fn(Set)h Fk(R)318 556 y Ff(`)345 549 y Fn(to)g(empty)214 613 y(Set)g Fg(\001)p Fk(T)348 620 y Ff(`)375 613 y Fn(to)g Fg([0)p Fk(;)d Fg(2)502 597 y Fa(\000)p Ff(`)544 613 y Fk(T)e Fg(])114 689 y Fi(g)114 764 y Fn(Open)k(trace)i(\002le)114 839 y(while)e(not)g(done)h Fi(f)214 914 y Fn(read)g(the)g(ne)o(xt)g (record)h Fk(r)q Fn(.)214 979 y(accumulate)f(an)o(y)g(statistics)e(or)i (coordinate)g(mapping)f(data)h(on)g Fk(r)214 1043 y Fn(for)g Fk(`)i Fg(=)g Fk(L;)8 b(L)h Fi(\000)h Fg(1)p Fk(;)e(:)g(:)g(:)d(;)j Fg(0)i Fn(do)h Fi(f)299 1108 y Fn(if)g(the)g(end)g(time)g(of)g Fk(r)h Fn(e)o(xceeds)g(the)f(end)g(time)g(of)g Fg(\001)p Fk(T)1161 1115 y Ff(`)1177 1108 y Fn(,)h(then)e Fi(f)376 1165 y Fn(Write)h Fk(R)526 1172 y Ff(`)553 1165 y Fn(out.)j(Record)d (the)g(location)f(of)h Fk(R)1088 1172 y Ff(`)1116 1165 y Fn(in)f(the)h(\002le)h(in)e(directory)h Fk(D)q Fn(.)j(Set)e Fk(R)1690 1172 y Ff(`)1717 1165 y Fn(to)f(empty)m(.)376 1221 y(Set)g Fg(\001)p Fk(T)510 1228 y Ff(`)538 1221 y Fn(to)f(the)h(ne)o(xt)g(time)g(interv)o(al)g(\(add)g Fg(2)1097 1205 y Fa(\000)p Ff(`)1140 1221 y Fk(T)18 b Fn(to)10 b(the)h(interv)o(al\).)299 1278 y Fi(g)299 1334 y Fn(if)g(the)g(time)g(e)o(xtent)g(of)g Fk(r)h Fn(is)f(contained)f (within)f Fg(\001)p Fk(T)1123 1341 y Ff(`)1139 1334 y Fn(,)j(then)f Fi(f)376 1390 y Fn(Add)g Fk(r)h Fn(to)e Fk(R)580 1397 y Ff(`)376 1447 y Fn(break)h(from)h(for)f(loop)299 1503 y Fi(g)214 1568 y(g)114 1643 y(g)114 1718 y Fn(for)g Fk(`)i Fg(=)g Fk(L;)8 b(L)h Fi(\000)h Fg(1)p Fk(;)e(:)g(:)g(:)d(;)j Fg(0)i Fn(do)h Fi(f)214 1794 y Fn(Write)f(out)h(list)f Fk(R)500 1801 y Ff(`)516 1794 y Fn(.)k(Record)e(the)f(location)f(of)h Fk(R)993 1801 y Ff(`)1020 1794 y Fn(in)g(the)g(\002le)g(in)g(directory) g Fk(D)q Fn(.)114 1869 y Fi(g)114 1944 y Fn(Write)f(out)h(an)o(y)g (gathered)g(statistics)e(or)i(other)g(summary)g(data)114 2019 y(Write)f(out)h(the)g(directory)f Fk(D)q Fn(.)114 2094 y(Write)g(out)h(the)g(of)o(fset)g(\(from)g(the)g(end)g(of)h(the)e (\002le\))i(to)f(summary)g(data)114 2169 y(Write)f Fg(2)251 2153 y Ff(L)287 2169 y Fi(\000)h Fg(1)g Fn(\(the)g(number)g(of)g (directory)g(entries\))g(as)g(an)g(inte)o(ger)346 2280 y(Figure)g(6:)j(One-pass)c(algorithm)g(to)h(create)h(an)f(SLOG)g (\002le)h(from)f(a)h(trace)g(\002le)952 2613 y(13)p eop %%Page: 14 14 14 13 bop 0 286 a Fn(e)o(x)o(ecption)10 b(of)g Fk(R)269 293 y Ff(L)294 286 y Fn(.)k(Note,)d(ho)o(we)o(v)o(er)n(,)f(that)g (elements)g(added)f(to)h Fk(R)1053 293 y Ff(L)1089 286 y Fn(can)g(instead)f(be)h(written)g(directly)f(to)g(the)h(output)f (\002le.)0 343 y(Since)k(the)f(number)h(of)f(elements)g(added)h(to)f (the)g(other)g(lists)f(is)h(likely)f(to)h(be)h(small,)g(those)e(lists)g (can)i(be)g(maintained)f(in)0 399 y(memory)m(.)19 b(If)12 b(for)h(some)f(reason)g(the)h(lists)d Fk(R)714 406 y Ff(`)743 399 y Fn(cannot)i(be)g(maintained)g(in)f(memory)m(,)j (separate)f(temporary)f(\002les)g(may)h(be)0 456 y(used)e(for)g(them.)j (In)e(this)e(case,)i(some)f(elements)g(may)h(need)f(to)f(be)i(written)e (to)h(disk)f(twice.)71 512 y(Reading)g(all)h(of)g(the)g(tree)h(nodes)e (for)i(a)f(gi)o(v)o(en)g(interv)o(al)f(in)h(an)g(SLOG)g(\002le)g (consists)f(of)h(these)g(steps:)57 590 y(1.)23 b(Position)9 b(at)i(the)g(end)g(of)g(the)g(\002le.)57 677 y(2.)23 b(Read)11 b(the)g(v)o(alue)g(of)g Fk(L)p Fn(.)57 765 y(3.)23 b(Mo)o(v)o(e)12 b(backwards)e Fg(2)458 748 y Ff(L)494 765 y Fi(\000)g Fg(1)h Fn(\(\002x)o(ed-sized\))h(records)f (and)g(read)h(the)e(directory)m(.)57 852 y(4.)23 b(F)o(or)15 b(each)f(node)g(whose)g(time)g(interv)o(al)g(intersects)f(with)g(the)h (desired)g(time)h(interv)o(al,)f(read)h(the)f(corresponding)114 909 y(node.)71 986 y(The)9 b(preceeding)g(discussion)e(has)i(assumed)g (that)g(the)g(trace)h(\002le)g(already)g(contains)e(the)h(necessary)g (records)h(describ-)0 1043 y(ing)i(rectangles)f(and)i(other)f (graphical)f(objects.)17 b(In)12 b(practice,)h(a)g(trace)g(\002le)f (contains)f(only)h(e)o(v)o(ents,)g(along)g(with)f(enough)0 1099 y(information)d(to)h(generate)h(the)f(states,)g(periods,)g(and)h (associations)d(that)i(we)g(wish)g(to)g(display)m(.)j(W)l(e)e(note)f (that)g(the)g(process)0 1156 y(to)i(con)n(v)o(ert)g(e)o(v)o(ents)g (into)g(displayable)e(objects)h(can)i(be)g(mer)o(ged)g(with)e(the)h (code)h(to)f(access)g(the)g(ne)o(xt)h(record)f(\(e)o(xploiting)0 1212 y(the)i(sequential)f(access)h(to)g(the)f(trace)i(\002le)g(needed)f (by)f(the)h(algorithm)f(in)h(Figure)g(6\),)h(preserving)e(the)h (one-pass)f(nature)0 1269 y(of)f(this)f(algorithm.)71 1325 y(The)16 b(abo)o(v)o(e)i(algorithm)d(subdi)o(vides)g(the)h(data)h (along)f(the)h(single)f(dimension)f(of)i(time.)31 b(Subdi)o(visions)14 b(in)j(more)0 1381 y(dimensions)11 b(are)i(possible.)i(F)o(or)e(e)o (xample,)h(a)e(2-D)g(\(quad)g(tree\))h(decomposition)d(that)i(uses)g (the)g(v)o(ertical)g(axis)g(\(process)0 1438 y(or)j(thread\))h(as)f (the)g(second)g(dimension)f(simpli\002es)h(v)o(ertical)g(scrolling)e (and)j(scalability)d(in)i(the)g(number)h(of)f(separate)0 1494 y(threads.)21 b(A)14 b(3-D)g(\(oct-tree\))g(decomposition)d(could) i(use)h(thread)f(in)h(process)f(as)h(the)f(third)g(coordinate)g(\(with) g(process)0 1551 y(the)g(second\))f(or)h(it)f(could)g(use)h(record)g (cate)o(gory)g(as)g(the)f(third)g(coordinate.)18 b(The)13 b(annotation)e(model)i(makes)g(it)f(easy)h(to)0 1607 y(e)o(xperiment)e(with)f(man)o(y)i(dif)o(ferent)f(graphical)f (representations)g(of)h(the)g(same)h(data.)0 1750 y Fo(4)60 b(Re\002nements)0 1854 y Fn(The)11 b(SLOG)g(API)h(and)f(algorithm)f (can)h(be)h(enhanced)f(in)f(a)i(number)f(of)g(ways.)0 1975 y Fh(4.1)50 b(Computing)11 b(Data)h(to)g(Impr)o(ove)g(Display)0 2062 y Fn(During)f(the)i(pass)f(o)o(v)o(er)h(the)f(original)f(data)h (that)g(creates)h(the)f(SLOG)h(annotations,)e(additional)f(data)i(can)h (be)g(computed)0 2119 y(that)h(can)i(impro)o(v)o(e)f(the)g(quality)f (and)h(the)f(performance)i(\(i.e.,)i(speed)d(at)g(which)f(objects)g (are)i(dra)o(wn\))f(of)g(the)g(display)m(.)0 2175 y(Because)d(the)f (\002le)g(of)g(trace)h(data)f(may)h(be)f(lar)o(ge,)h(it)e(is)h (important)f(to)h(perform)h(these)f(operations)e(in)i(a)h(single)e (pass.)57 2262 y(1.)23 b(Data)15 b(for)h(the)g(pre)o(vie)o(w)f(can)h (be)g(collected)f(during)f(the)i(e)o(x)o(ecution)f(of)h(the)f(SLOG)h (algorithm.)27 b(F)o(or)16 b(e)o(xample,)114 2319 y(the)11 b(number)i(of)f(objects)f(on)g(each)i(v)o(ertical)f(line)f(for)h(each)h (time)f(interv)o(al)f(\(possibly)f(using)g(more)j(interv)o(als)e(than) 114 2375 y(lea)o(v)o(es)g(in)g(the)g(SLOG)g(tree\).)k(Alternati)o(v)o (es)10 b(that)g(weight)g(by)h(the)g(area)h(are)g(possible.)h(The)e (point)f(is)h(that)f(this)g(data)114 2432 y(can)g(easily)g(be)h (accumulated)f(while)g(reading)g(the)g(dra)o(wable)g(objects.)j (Combining)c(objects)h(by)g(cate)o(gories)g(\(e.g.,)114 2488 y(communication)g(or)h(computation\))f(for)h(the)g(pre)o(vie)o(w)g (may)g(pro)o(vide)g(a)g(more)h(managable)f(\002gure.)952 2613 y(14)p eop %%Page: 15 15 15 14 bop 57 286 a Fn(2.)23 b(Since)9 b(dra)o(wable)h(objects)e(may)i (be)g(nested)f(\(common)h(with)f(rectangles\),)h(ha)o(ving)e(the)i (\223stack)f(le)o(v)o(el\224)h(of)f(an)h(object)114 343 y(is)g(v)o(ery)h(helpful)f(in)h(the)f(display)m(.)j(Since)e(this)f(is)h (easily)f(computed)g(by)h(the)g(implementation)e(of)i(the)g(SLOG)g (input)114 399 y(API,)j(this)f(information)g(should)g(be)h(carried)g (through)f(to)g(the)h(display)e(program.)23 b(Of)15 b(course,)f(a)h (stack)e(le)o(v)o(el)h(of)114 456 y(\223none\224)e(\(not)f(nested\))h (or)g(\(perhaps?\))18 b(unkno)o(wn)10 b(may)j(be)f(pro)o(vided.)17 b(An)12 b(alternati)o(v)o(e)f(v)o(alue)h(could)f(be)i(\223depth\224)114 512 y(\(commonly)c(used)h(by)f(2-d)h(dra)o(wing)f(programs)h(to)f (decide)h(what)f(object)g(is)h(dra)o(wn)g(on)f(top)g(of)h(other)n(,)g (o)o(v)o(erlapping)114 569 y(\(b)o(ut)j(not)h(necessarily)f(nested\))h (objects\).)22 b(\(Nesting)13 b(le)o(v)o(el)h(is)g(more)h(precisely)e (what)h(the)g(SLOG)g(Input)f(API)i(is)114 625 y(computing.)20 b(\223Depth\224)13 b(is)g(more)h(likely)e(to)h(be)h(something)e(the)h (Display)f(Program)i(might)f(want)g(to)g(manipulate)114 682 y(for)e(itself.)i(-)f(RL\))57 775 y(3.)23 b(In)14 b(some)g(cases,)i(dra)o(wable)e(objects,)g(e)o(v)o(en)h(states,)f(will) f(o)o(v)o(erlap)i(without)d(nesting.)22 b(In)14 b(this)f(case,)j(the)e (objects)114 832 y(can)g(be)g(laid)f(out)g(by)g(computing)f(a)j(v)o (ertical)e(of)o(fset)h(that)f(separates)g(the)h(objects)e(in)i(the)f(y) h(coordinate.)21 b(This)13 b(is)114 888 y(particularly)d(appropriate)g (for)h(rectangles)g(\(states\).)114 963 y(Question:)g(what)g(to)g(do)g (about)f(arro)o(ws)h(in)g(this)f(case?)k(Ho)o(w)d(are)h(the)o(y)f (attached)g(to)f(the)h(\223correct\224)h(state?)57 1057 y(4.)23 b(F)o(or)13 b(v)o(ery)g(comple)o(x)f(displays,)g(a)h(le)o(v)o (el-of-detail)e(\(LOD\))h(feature)h(may)g(be)g(important.)k(F)o(or)c(e) o(xample,)h(in)e(cases)114 1114 y(where)i(a)g(lar)o(ge)g(number)g(of)f (states)g(cro)o(wd)h(into)f(a)h(small)f(interv)o(al)g(of)h(time)g (could)e(be)i(represented)g(by)f(a)h(single)114 1170 y(stippled)7 b(rectangle)i(rather)g(than)g(dra)o(wing)g(a)g(lar)o(ge)h (number)f(of)g(\(white-bordered)f(in)h(upshot/nupsho)o(t/j)o(umpsho)o (t\))114 1227 y(rectangles.)31 b(Zooming)16 b(into)f(this)h(would)g(e)o (v)o(entually)f(replace)j(the)e(stippled)f(rectangle)i(with)f(the)h (indi)o(vidual)114 1283 y(states.)24 b(Note)15 b(that)f(LOD)h (information)e(is)i(another)f(type)h(of)g(annotation)e(and)h(can)i(be)f (computed)f(at)h(the)g(same)114 1340 y(time)c(as)g(the)g(other)g (annotations)e(by)h(keeping)g(track)i(of)f(adjacent)g(states)f(per)h(v) o(ertical)g(coordinate.)114 1415 y(A)17 b(simple)g(LOD)g(algorithm)f (would)g(compare)i(the)f(location/e)o(xtent)e(of)i(each)h(dra)o(wable)f (object)g(to)g(a)g(virtual)114 1471 y(bitmap)10 b(and)h(render)g(its)f (bounding)f(box)i(on)f(that)h(bitmap.)i(If)f(the)e(bounding)f(box)i(is) f(less)h(then)f(3)h(pix)o(els)f(in)h(e)o(xtent)114 1528 y(and)g(there)h(is)g(already)g(an)g(object)f(in)g(that)g(location)g(on) g(the)h(virtual)f(bitmap,)h(then)f(the)h(object)f(would)f(be)i(marked) 114 1584 y(as)g(undisplayable)e(at)j(that)f(resolution,)f(and)h(the)g (virtual)g(bitmap)g(would)f(be)h(marked)h(as)f(ha)o(ving)g(a)h(small)f (object)114 1641 y(at)f(the)g(appropriate)f(location.)114 1716 y(Objects)k(are)i(then)e(sorted)h(by)g(LOD)g(before)g(being)g (written)f(out;)i(that)f(is,)h(objects)e(that)g(are)i(undisplayable)d (at)114 1772 y(a)h(particular)g(le)o(v)o(el)g(of)g(detail)g(are)h (written)e(after)i(objects)e(that)h(are)h(displayable)e(at)h(each)h(le) o(v)o(el)f(of)g(detail.)23 b(This)114 1829 y(allo)o(ws)14 b(a)i(visualization)d(program)i(to)g(read)h(only)f(the)g(displayable)f (objects,)h(along)g(with)g(a)g(way)g(to)g(represent)114 1885 y(\223multiple)10 b(objects)g(here\224)i(\(through)e(the)g (virtual)g(bitmap\).)114 1960 y(Question:)j(Is)f(there)g(an)o(yway)f (to)h(e)o(xploit)f(this)f(in)i(the)g(annotation)e(form?)17 b(That)11 b(is,)h(since)g(we)g(can')o(t)g(re-order)g(the)114 2017 y(data,)f(is)g(there)g(an)o(y)g(way)g(to)g(e)o(xploit)f(it?)114 2092 y(Note:)23 b(Anthon)o(y)15 b(has)h(proposed)g(an)g(alternati)o(v)o (e)g(form)h(of)f(LOD)g(that)g(permits)g(continuous)e(zooming)i(of)g (the)114 2148 y(image)11 b(by)f(adding)g(\223shado)o(w)g(object\224)g (information)g(to)g(each)h(le)o(v)o(el)g(in)f(the)h(tree,)g(not)f(just) g(to)g(the)h(leaf)g(nodes.)i(One)114 2205 y(complication)h(is)g(that,)j (since)e(the)g(shado)o(w)f(objects)g(are)i(more)g(closely)f(related)g (to)g(the)g(dra)o(wable,)h(there)g(may)114 2261 y(need)c(to)f(be)h(one) g(set)g(of)g(shado)o(w)f(objects)g(for)h(each)h(coordinate)e(map)h (\(i.e.,)i(for)e(each)h(assignment)e(of)h(objects)f(to)114 2318 y(timelines\).)57 2411 y(5.)23 b(W)l(e)12 b(can)g(accumulate)f (records)h(until)e(we)i(reach)g(a)g(limit)e(\(based)h(on)h(memory)g (size\).)j(W)l(e)d(then)f(end)h(that)f(leaf)g(and)114 2468 y(be)o(gin)h(a)g(ne)o(w)h(leaf.)18 b(Note)12 b(that)g(the)g (duration)f(of)i(a)g(leaf)g(in)f(this)f(model)h(is)g(not)g(constant;)f (we)i(might)f(want)f(to)i(try)952 2613 y(15)p eop %%Page: 16 16 16 15 bop 114 286 a Fn(to)10 b(encourage)i(lea)o(v)o(es)f(to)g(ha)o(v)o (e)h(the)e(same)i(duration.)h(Note)e(that)g(in)g(this)f(model,)h(we)h Fm(do)f Fn(get)g(a)g(\(nearly\))g(balanced)114 343 y(tree)i(because)h (we)g(simply)e(group)h(lea)o(v)o(e)h(by)f(twos,)g(then)g(group)g(those) f(nodes)h(by)g(twos,)g(and)g(so)g(on.)21 b(If)14 b(instead)114 399 y(lea)o(v)o(es)g(do)h(ha)o(v)o(e)g(a)g(duration)e(that)h(is)h(of)f (the)h(form)g Fk(T)5 b(=)p Fg(2)1034 383 y Ff(k)1069 399 y Fn(for)15 b(some)g Fk(k)q Fn(,)h(then)e(dif)o(ferent)g(lea)o(v)o (es)h(may)g(represent)114 456 y(dif)o(ferent)10 b(v)o(alues)h(of)g Fk(k)q Fn(.)j(Which)d(should)f(we)h(do?)0 580 y Fh(4.2)50 b(Enhanced)12 b(Data)g(Repr)o(esentations)57 668 y Fn(1.)23 b(Cate)o(gories)16 b(of)g(cate)o(gories)g(can)g(be)g(added.)29 b(This)15 b(allo)o(ws)g(the)h(display)f(program)h(to)g(quickly)e (select)i(\223all)g(OS)114 724 y(records\224)11 b(or)g(\223all)g (point-to-point)d(communication)i(records.)m(\224)k(By)e(de\002ning)e (a)h(cate)o(gory)h(as)f(containing)e(either)i(a)114 780 y(single)g(dra)o(wable)h(object)g(or)h(a)g(list)e(of)i(cate)o(gories,)g (we)g(can)g(add)f(this)g(without)f(changing)g(the)h(API)h(used)g(for)f (the)114 837 y(SLOG)g(algorithm.)k(That)11 b(is)h(each)h(dra)o(wable)e (object)h(needs)g(only)f(specify)g(the)h(cate)o(gory)g(that)g (describes)f(ho)o(w)h(it)114 893 y(is)e(rendered.)15 b(\(should)10 b(we)i(use)f(a)h(dif)o(ferent)f(term)h(for)f(cate)o (gories)g(of)h(cate)o(gories)f(to)g(emphasize)g(that)g(a)h(dra)o(wable) 114 950 y(object)f(belongs)g(to)h(a)g(single)f(cate)o(gory?)18 b(Dif)o(ferent)12 b(term)g(simpli\002es)g(API.)h(\226RL\))f(\(WDG)g(-)h (I)f(suggest)f(cate)o(gory)114 1006 y(collection)e(or)i(cate)o(gory)h (group,)e(de\002ned)i(recursi)o(v)o(ely)e(as)h(either)g(a)h(cate)o (gory)f(or)g(a)h(cate)o(gory)f(group.\))57 1100 y(2.)23 b(Cate)o(gory)11 b(descriptions)e(should)h(include)g(transparenc)o(y)h (as)g(part)g(of)g(the)g(color)g(v)o(alue.)57 1194 y(3.)23 b(The)14 b(\223rectangles\224)g(for)g(states)g(are)h(really)f(a)g (\223line)g(with)g(height\224)f(where)h(the)g(height)f(may)i(be)g (assigned)e(by)g(the)114 1250 y(dra)o(wing)f(program)h(\(possibly)e (using)h(the)h(stack)g(le)o(v)o(el)g(information\).)19 b(Question:)c(What)e(about)f(arro)o(ws,)i(where)114 1307 y(the)g(width)g(of)h(the)f(arro)o(w)h(\(or)g(color?\))25 b(is)14 b(chosen)g(to)h(re\003ect)g(the)g(communication)f(v)o(olume)g (or)h(other)g(metric?)114 1363 y(Does)c(this)f(apply)h(to)g(single)g (cate)o(gories)g(as)h(well?)i(F)o(or)f(e)o(xample,)f(turn)f(of)o(f)h (all)f(b)o(ut)g(one)g(cate)o(gory)m(,)h(then)f(assign)g(a)114 1420 y(color)f(to)f(those)h(states)f(based)h(on)g(some)h(v)o(alue)e (associated)h(with)f(each)i(instance)e(\(W)l(e)i(can)g(get)f(a)h(v)o (alue)e(by)h(calling)114 1476 y(a)h(routine)f(pro)o(vided)h(by)f(the)h (trace-\002le)h(creator)g(with)e(the)h(data-string\).)57 1570 y(4.)23 b(Should)8 b(there)i(be)g(a)g(way)f(to)g(establish)f(a)i (relationship)e(between)h(instances)f(of)i(dra)o(wable)f(objects?)k(F)o (or)d(e)o(xample,)114 1626 y(the)h(objects)f(representing)h(a)h (particular)f(send,)g(recei)o(v)o(e,)i(and)e(the)h(arro)o(w)f(between)h (them)f(\(e.g.,)i(gi)o(v)o(en)e(a)h(recei)o(v)o(e,)114 1683 y(\002nd)h(and)g(blink)e(the)i(matching)g(send\).)20 b(\(The)13 b(notion)e(of)j(\223association\224)d(has)i(pro)o(v)o(en)g (thorn)o(y)m(.)20 b(Ev)o(en)13 b(if)g(systems)114 1739 y(are)e(truely)g(likely)e(to)h(collect)h(such)f(data,)h(it)g(is)f(not)h (clear)g(that)f(it)h(has)g(to)f(be)h(more)h(than)e(just)g(optional)f (data.)14 b(-)e(RL\))57 1833 y(5.)23 b(W)l(e)9 b(should)f(consider)g (separating)h(the)g(rendering)f(from)i(the)f(sorting,)f(allo)o(wing)g (completely)g(arbitrary)h(rendering)114 1890 y(of)14 b(displayed)f(objects.)23 b(This)13 b(follo)o(ws)g(the)h(approach)g(of) g(XML)h(of)f(separating)g(all)g(content)f(description)g(from)114 1946 y(presentation)8 b(information.)k(W)l(e)f(do)e(ha)o(v)o(e)i(to)e (blur)g(this)g(a)h(little)f(because)g(we)h(use)g(geometric)g (information)e(to)i(sort)114 2003 y(the)f(dra)o(wable)g(objects,)h(b)o (ut)f(properties)f(like)h(the)g(color)g(should)f(be)i(considered)f (separate.)14 b(In)9 b(fact,)h(the)g(rendering)114 2059 y(method)g(could)h(be)g(dynamically)f(loaded)h(by)f(the)h(vie)o(wer)n (.)57 2153 y(6.)23 b(W)l(e')n(v)o(e)9 b(discussed)e(the)h(display)f(of) i(dra)o(wable)f(objects.)13 b(But)8 b(these)g(are)i(usually)d(or)o (ganized)h(by)g(process,)h(thread,)g(or)114 2209 y(some)j(other)f (\223container)n(.)m(\224)k(Ho)o(w)c(should)f(the)i(container)f(be)h (labeled)f(and)h(rendered?)k(F)o(or)c(e)o(xample,)h(should)d(the)114 2266 y(\223main)k(thread\224)h(be)f(rendered)h(dif)o(ferently)e(from)i (other)f(threads?)24 b(User)o(-generated)14 b(v)o(ersus)g (system-generated)114 2322 y(threads?)952 2613 y(16)p eop %%Page: 17 17 17 16 bop 117 1287 a @beginspecial 0 @llx 0 @lly 412 @urx 251 @ury 4120 @rwi @setspecial %%BeginDocument: slogblock.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: slogblock.eps %%Creator: fig2dev Version 3.2 Patchlevel 1a %%CreationDate: Wed Sep 20 16:06:32 2000 %%For: gropp@donner.mcs.anl.gov (William Gropp,C235,2524318,) %%Orientation: Portrait %%BoundingBox: 0 0 412 251 %%Pages: 0 %%BeginSetup %%EndSetup %%Magnification: 1.0000 %%EndComments /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind 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 -14.0 312.0 translate 1 -1 scale /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} 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 /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} 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 /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def %%EndProlog $F2psBegin 10 setmiterlimit n -1000 6187 m -1000 -1000 l 8099 -1000 l 8099 6187 l cp clip n 0.06000 0.06000 sc % Polyline 7.500 slw n 2362 1050 m 3337 1050 l 3337 1500 l 2362 1500 l cp gs col0 s gr /Helvetica ff 210.00 scf sf 2850 1357 m gs 1 -1 sc (Treenode) dup sw pop 2 div neg 0 rm col0 sh gr % Polyline n 3412 1050 m 4387 1050 l 4387 1500 l 3412 1500 l cp gs col0 s gr /Helvetica ff 210.00 scf sf 3900 1357 m gs 1 -1 sc (Treenode) dup sw pop 2 div neg 0 rm col0 sh gr % Polyline n 4462 1050 m 5437 1050 l 5437 1500 l 4462 1500 l cp gs col0 s gr /Helvetica ff 210.00 scf sf 4950 1357 m gs 1 -1 sc (Treenode) dup sw pop 2 div neg 0 rm col0 sh gr % Polyline n 5737 1050 m 6712 1050 l 6712 1500 l 5737 1500 l cp gs col0 s gr /Helvetica ff 210.00 scf sf 6225 1357 m gs 1 -1 sc (Treenode) dup sw pop 2 div neg 0 rm col0 sh gr % Polyline n 1275 1050 m 2250 1050 l 2250 1500 l 1275 1500 l cp gs col0 s gr % Polyline n 1500 1800 m 2700 1800 l 2700 2400 l 1500 2400 l cp gs col0 s gr % Polyline n 2775 1800 m 3750 1800 l 3750 2400 l 2775 2400 l cp gs col0 s gr % Polyline n 3825 1800 m 5775 1800 l 5775 2400 l 3825 2400 l cp gs col0 s gr % Polyline n 1500 2550 m 2850 2550 l 2850 3150 l 1500 3150 l cp gs col0 s gr % Polyline n 2925 2550 m 4275 2550 l 4275 3150 l 2925 3150 l cp gs col0 s gr % Polyline n 4350 2550 m 6000 2550 l 6000 3150 l 4350 3150 l cp gs col0 s gr % Polyline n 2325 3750 m 4425 3750 l 4425 4275 l 2325 4275 l cp gs col0 s gr % Polyline n 1275 3750 m 2250 3750 l 2250 4275 l 1275 4275 l cp gs col0 s gr % Polyline n 4500 3750 m 6600 3750 l 6600 4275 l 4500 4275 l cp gs col0 s gr % Polyline n 1275 4650 m 3075 4650 l 3075 5175 l 1275 5175 l cp gs col0 s gr % Polyline n 3150 4650 m 4875 4650 l 4875 5175 l 3150 5175 l cp gs col0 s gr % Polyline n 4950 4650 m 6675 4650 l 6675 5175 l 4950 5175 l cp gs col0 s gr % Polyline gs clippath 1272 2031 m 1397 2094 l 1258 2105 l 1432 2140 l 1447 2066 l cp clip n 6750 1275 m 6754 1276 l 6762 1278 l 6775 1281 l 6794 1285 l 6818 1291 l 6846 1297 l 6874 1305 l 6903 1312 l 6930 1319 l 6954 1327 l 6976 1334 l 6996 1340 l 7013 1347 l 7028 1354 l 7041 1360 l 7052 1368 l 7063 1375 l 7068 1379 l 7072 1384 l 7077 1389 l 7081 1393 l 7084 1398 l 7086 1404 l 7087 1409 l 7087 1414 l 7086 1420 l 7084 1426 l 7081 1432 l 7076 1438 l 7069 1444 l 7061 1450 l 7050 1456 l 7038 1463 l 7024 1469 l 7008 1475 l 6990 1481 l 6970 1487 l 6948 1493 l 6924 1499 l 6898 1505 l 6870 1511 l 6839 1516 l 6806 1521 l 6772 1527 l 6735 1532 l 6695 1536 l 6654 1541 l 6609 1546 l 6563 1550 l 6531 1553 l 6498 1555 l 6464 1558 l 6429 1561 l 6392 1563 l 6354 1566 l 6314 1568 l 6273 1571 l 6231 1573 l 6187 1575 l 6142 1578 l 6095 1580 l 6047 1582 l 5997 1585 l 5947 1587 l 5894 1589 l 5841 1591 l 5787 1593 l 5731 1596 l 5674 1598 l 5616 1600 l 5558 1602 l 5498 1604 l 5438 1605 l 5377 1607 l 5315 1609 l 5253 1611 l 5191 1613 l 5129 1614 l 5066 1616 l 5003 1617 l 4940 1619 l 4878 1620 l 4815 1622 l 4753 1623 l 4691 1624 l 4629 1626 l 4568 1627 l 4507 1628 l 4447 1629 l 4388 1630 l 4329 1631 l 4270 1632 l 4212 1633 l 4155 1634 l 4098 1635 l 4042 1635 l 3986 1636 l 3930 1637 l 3875 1637 l 3875 1638 l 3818 1638 l 3761 1639 l 3704 1640 l 3647 1640 l 3590 1641 l 3533 1641 l 3476 1642 l 3419 1643 l 3362 1643 l 3305 1644 l 3247 1645 l 3190 1645 l 3132 1646 l 3075 1647 l 3017 1648 l 2960 1648 l 2903 1649 l 2846 1650 l 2789 1651 l 2733 1652 l 2677 1653 l 2621 1654 l 2566 1656 l 2512 1657 l 2459 1658 l 2406 1660 l 2354 1661 l 2303 1663 l 2253 1664 l 2205 1666 l 2157 1668 l 2111 1670 l 2065 1672 l 2021 1674 l 1979 1676 l 1937 1678 l 1897 1680 l 1858 1683 l 1821 1685 l 1784 1688 l 1749 1691 l 1716 1693 l 1683 1696 l 1652 1699 l 1622 1702 l 1592 1706 l 1564 1709 l 1538 1712 l 1538 1713 l 1496 1718 l 1457 1725 l 1420 1731 l 1385 1739 l 1352 1746 l 1321 1754 l 1292 1762 l 1264 1771 l 1238 1780 l 1214 1789 l 1192 1799 l 1171 1809 l 1153 1819 l 1136 1829 l 1121 1839 l 1108 1850 l 1096 1860 l 1087 1870 l 1079 1880 l 1072 1890 l 1068 1900 l 1064 1910 l 1062 1919 l 1061 1928 l 1061 1937 l 1062 1945 l 1064 1953 l 1067 1961 l 1071 1968 l 1075 1975 l 1084 1986 l 1094 1996 l 1107 2006 l 1122 2015 l 1141 2024 l 1162 2033 l 1187 2041 l 1215 2050 l 1246 2059 l 1279 2067 l 1312 2075 l 1344 2083 l 1373 2089 l 1395 2094 l 1425 2100 l gs col0 s gr gr % arrowhead 15.000 slw n 1272 2031 m 1397 2094 l 1258 2105 l 1265 2068 l 1272 2031 l cp gs 0.00 setgray ef gr col0 s % Polyline 7.500 slw gs clippath 1340 2801 m 1472 2848 l 1335 2876 l 1512 2888 l 1518 2814 l cp clip n 5850 2100 m 5854 2101 l 5862 2103 l 5875 2106 l 5894 2110 l 5918 2116 l 5946 2122 l 5974 2130 l 6003 2137 l 6030 2144 l 6054 2152 l 6076 2159 l 6096 2165 l 6113 2172 l 6128 2179 l 6141 2185 l 6152 2193 l 6163 2200 l 6173 2209 l 6182 2218 l 6189 2229 l 6196 2239 l 6202 2251 l 6207 2263 l 6210 2275 l 6213 2288 l 6214 2300 l 6215 2312 l 6214 2324 l 6213 2336 l 6210 2346 l 6208 2357 l 6204 2366 l 6200 2375 l 6198 2380 l 6195 2384 l 6192 2388 l 6188 2392 l 6183 2396 l 6177 2400 l 6169 2404 l 6160 2408 l 6150 2412 l 6137 2416 l 6122 2419 l 6105 2423 l 6086 2426 l 6064 2429 l 6039 2432 l 6012 2435 l 5981 2438 l 5948 2441 l 5911 2443 l 5872 2446 l 5829 2448 l 5784 2450 l 5735 2452 l 5683 2454 l 5628 2456 l 5570 2457 l 5508 2459 l 5443 2460 l 5373 2461 l 5300 2463 l 5259 2463 l 5216 2464 l 5172 2464 l 5127 2465 l 5080 2465 l 5032 2466 l 4983 2466 l 4932 2467 l 4880 2467 l 4826 2468 l 4771 2468 l 4714 2469 l 4657 2469 l 4598 2470 l 4537 2470 l 4476 2470 l 4414 2471 l 4350 2471 l 4286 2472 l 4220 2472 l 4154 2472 l 4087 2473 l 4020 2473 l 3952 2474 l 3883 2474 l 3815 2474 l 3746 2475 l 3677 2475 l 3608 2475 l 3539 2476 l 3470 2476 l 3402 2476 l 3334 2477 l 3267 2477 l 3200 2478 l 3134 2478 l 3069 2478 l 3005 2479 l 2941 2479 l 2879 2480 l 2818 2480 l 2758 2480 l 2700 2481 l 2642 2481 l 2586 2482 l 2531 2482 l 2478 2483 l 2426 2483 l 2376 2484 l 2327 2484 l 2279 2485 l 2233 2485 l 2188 2486 l 2145 2486 l 2103 2487 l 2063 2487 l 2063 2488 l 1990 2489 l 1922 2490 l 1858 2491 l 1798 2493 l 1741 2494 l 1688 2496 l 1638 2498 l 1591 2500 l 1547 2502 l 1506 2505 l 1469 2507 l 1435 2510 l 1404 2513 l 1375 2516 l 1350 2519 l 1328 2523 l 1308 2527 l 1291 2530 l 1276 2534 l 1264 2538 l 1254 2543 l 1246 2547 l 1239 2552 l 1234 2556 l 1231 2561 l 1228 2566 l 1226 2571 l 1226 2576 l 1225 2582 l 1225 2588 l 1225 2600 l 1226 2614 l 1228 2629 l 1231 2646 l 1235 2663 l 1239 2680 l 1244 2698 l 1251 2716 l 1257 2733 l 1265 2749 l 1273 2764 l 1282 2777 l 1290 2789 l 1300 2800 l 1310 2809 l 1321 2817 l 1334 2824 l 1349 2829 l 1366 2834 l 1385 2838 l 1406 2841 l 1429 2844 l 1451 2847 l 1471 2848 l 1500 2850 l gs col0 s gr gr % arrowhead 15.000 slw n 1340 2801 m 1472 2848 l 1335 2876 l 1337 2839 l 1340 2801 l cp gs 0.00 setgray ef gr col0 s % Polyline 7.500 slw gs clippath 1061 4782 m 1173 4865 l 1034 4852 l 1201 4915 l 1227 4845 l cp clip n 6675 3975 m 6676 3975 l 6679 3977 l 6688 3982 l 6703 3990 l 6723 4001 l 6747 4014 l 6773 4029 l 6799 4045 l 6824 4060 l 6847 4074 l 6867 4088 l 6885 4101 l 6900 4113 l 6914 4125 l 6926 4137 l 6938 4150 l 6942 4156 l 6947 4162 l 6952 4169 l 6956 4175 l 6959 4182 l 6962 4189 l 6965 4196 l 6966 4203 l 6967 4211 l 6967 4218 l 6965 4226 l 6963 4234 l 6960 4241 l 6955 4249 l 6948 4257 l 6940 4265 l 6931 4273 l 6920 4281 l 6907 4289 l 6893 4297 l 6877 4305 l 6859 4312 l 6840 4320 l 6818 4327 l 6795 4334 l 6770 4341 l 6743 4347 l 6715 4354 l 6684 4360 l 6651 4366 l 6617 4371 l 6580 4377 l 6541 4382 l 6500 4388 l 6471 4391 l 6440 4394 l 6408 4397 l 6375 4401 l 6340 4404 l 6304 4407 l 6267 4410 l 6228 4413 l 6188 4416 l 6146 4419 l 6103 4421 l 6059 4424 l 6013 4427 l 5966 4430 l 5918 4432 l 5868 4435 l 5817 4437 l 5765 4440 l 5711 4442 l 5657 4445 l 5601 4447 l 5544 4449 l 5487 4451 l 5429 4454 l 5370 4456 l 5310 4458 l 5250 4460 l 5190 4461 l 5129 4463 l 5068 4465 l 5007 4467 l 4945 4468 l 4884 4470 l 4823 4471 l 4762 4473 l 4701 4474 l 4640 4475 l 4580 4477 l 4520 4478 l 4460 4479 l 4401 4480 l 4343 4481 l 4284 4482 l 4226 4483 l 4169 4484 l 4112 4485 l 4056 4485 l 3999 4486 l 3943 4487 l 3888 4487 l 3888 4488 l 3830 4488 l 3772 4489 l 3714 4490 l 3656 4490 l 3598 4491 l 3539 4491 l 3481 4492 l 3422 4493 l 3363 4493 l 3303 4494 l 3244 4495 l 3184 4495 l 3125 4496 l 3065 4497 l 3005 4497 l 2945 4498 l 2885 4499 l 2825 4500 l 2766 4500 l 2706 4501 l 2648 4502 l 2589 4503 l 2532 4504 l 2474 4505 l 2418 4506 l 2363 4507 l 2308 4509 l 2254 4510 l 2202 4511 l 2150 4513 l 2100 4514 l 2051 4516 l 2003 4517 l 1957 4519 l 1911 4521 l 1868 4522 l 1825 4524 l 1784 4526 l 1745 4528 l 1707 4530 l 1670 4532 l 1635 4535 l 1601 4537 l 1568 4539 l 1537 4542 l 1507 4544 l 1478 4547 l 1450 4550 l 1408 4555 l 1368 4560 l 1331 4565 l 1296 4571 l 1263 4577 l 1233 4583 l 1204 4590 l 1177 4597 l 1153 4604 l 1130 4611 l 1109 4619 l 1091 4627 l 1074 4635 l 1059 4643 l 1046 4652 l 1035 4660 l 1025 4668 l 1017 4677 l 1011 4685 l 1006 4693 l 1003 4701 l 1001 4709 l 999 4716 l 999 4724 l 1000 4731 l 1002 4738 l 1004 4744 l 1006 4751 l 1009 4757 l 1013 4763 l 1020 4774 l 1030 4785 l 1041 4795 l 1054 4805 l 1070 4815 l 1088 4826 l 1108 4836 l 1130 4846 l 1152 4856 l 1171 4864 l 1200 4875 l gs col0 s gr gr % arrowhead 15.000 slw n 1061 4782 m 1173 4865 l 1034 4852 l 1048 4817 l 1061 4782 l cp gs 0.00 setgray ef gr col0 s /Helvetica ff 210.00 scf sf 1200 1200 m gs 1 -1 sc (Slog File) dup sw pop neg 0 rm col0 sh gr /Helvetica ff 210.00 scf sf 1200 1455 m gs 1 -1 sc (Structure) dup sw pop neg 0 rm col0 sh gr /Helvetica ff 210.00 scf sf 1800 1350 m gs 1 -1 sc (Header) dup sw pop 2 div neg 0 rm col0 sh gr /Helvetica ff 210.00 scf sf 5550 1350 m gs 1 -1 sc (...) dup sw pop 2 div neg 0 rm col0 sh gr /Helvetica ff 210.00 scf sf 2100 2100 m gs 1 -1 sc (Global) dup sw pop 2 div neg 0 rm col0 sh gr /Helvetica ff 210.00 scf sf 2100 2355 m gs 1 -1 sc (Category) dup sw pop 2 div neg 0 rm col0 sh gr /Helvetica ff 180.00 scf sf 3225 2100 m gs 1 -1 sc (Global) dup sw pop 2 div neg 0 rm col0 sh gr /Helvetica ff 210.00 scf sf 4800 2025 m gs 1 -1 sc (Method) dup sw pop 2 div neg 0 rm col0 sh gr /Helvetica ff 210.00 scf sf 4800 2280 m gs 1 -1 sc (Definitions) dup sw pop 2 div neg 0 rm col0 sh gr /Helvetica ff 210.00 scf sf 2175 2775 m gs 1 -1 sc (Tree) dup sw pop 2 div neg 0 rm col0 sh gr /Helvetica ff 210.00 scf sf 2175 3030 m gs 1 -1 sc (Directory) dup sw pop 2 div neg 0 rm col0 sh gr /Helvetica ff 210.00 scf sf 3600 2925 m gs 1 -1 sc (Annotations) dup sw pop 2 div neg 0 rm col0 sh gr /Helvetica ff 210.00 scf sf 5175 2925 m gs 1 -1 sc (Postamble) dup sw pop 2 div neg 0 rm col0 sh gr /Helvetica ff 180.00 scf sf 3225 2355 m gs 1 -1 sc (Coord Map) dup sw pop 2 div neg 0 rm col0 sh gr /Helvetica ff 210.00 scf sf 1200 3900 m gs 1 -1 sc (Treenode) dup sw pop neg 0 rm col0 sh gr /Helvetica ff 210.00 scf sf 1200 4155 m gs 1 -1 sc (Structure) dup sw pop neg 0 rm col0 sh gr /Helvetica ff 210.00 scf sf 1725 4125 m gs 1 -1 sc (Header) dup sw pop 2 div neg 0 rm col0 sh gr /Helvetica ff 210.00 scf sf 3375 3975 m gs 1 -1 sc (Local) dup sw pop 2 div neg 0 rm col0 sh gr /Helvetica ff 210.00 scf sf 3375 4200 m gs 1 -1 sc (Category Info) dup sw pop 2 div neg 0 rm col0 sh gr /Helvetica ff 210.00 scf sf 5550 3975 m gs 1 -1 sc (Local) dup sw pop 2 div neg 0 rm col0 sh gr /Helvetica ff 210.00 scf sf 5550 4230 m gs 1 -1 sc (Coord Map) dup sw pop 2 div neg 0 rm col0 sh gr /Helvetica ff 210.00 scf sf 2175 4875 m gs 1 -1 sc (Simple) dup sw pop 2 div neg 0 rm col0 sh gr /Helvetica ff 210.00 scf sf 2175 5130 m gs 1 -1 sc (Drawables) dup sw pop 2 div neg 0 rm col0 sh gr /Helvetica ff 210.00 scf sf 4050 4875 m gs 1 -1 sc (Other Coords) dup sw pop 2 div neg 0 rm col0 sh gr /Helvetica ff 210.00 scf sf 4050 5130 m gs 1 -1 sc (Block) dup sw pop 2 div neg 0 rm col0 sh gr /Helvetica ff 210.00 scf sf 5775 4875 m gs 1 -1 sc (Popup Data) dup sw pop 2 div neg 0 rm col0 sh gr /Helvetica ff 210.00 scf sf 5775 5130 m gs 1 -1 sc (Block) dup sw pop 2 div neg 0 rm col0 sh gr $F2psEnd rs %%EndDocument @endspecial 0 1385 a Fn(Figure)14 b(7:)20 b(Block)13 b(diagram)i(of)f(a)h(complete)f(SLOG2)f(\002le.)24 b(Note)14 b(that)f(SLOG2)h(does)g(not)f(de\002ne)i(a)f(\002le)h(format;)g(this)0 1441 y(block)c(diagram)g(sho)o(ws)g(one)g(possible)f(or)o(ganization)g (to)h(illustrate)f(both)g(the)i(contents)e(of)i(the)f(\002le)h(and)f(a) h(structure)f(that)0 1497 y(allo)o(ws)f(the)h(creation)g(of)g(an)g (SLOG2)g(\002le)g(in)g(a)h(single)e(pass.)0 1636 y Fh(4.3)50 b(Real-time)12 b(File)h(Generation)57 1723 y Fn(1.)23 b(If)13 b(the)f(length)g(of)g(time)h Fk(T)19 b Fn(is)12 b(not)g(kno)o(wn,)g(the)h(algorithm)e(in)h(Figure)h(6)g(can)g(still)e (be)h(used)h(with)e(a)i(fe)o(w)g(changes.)114 1780 y(Speci\002cally)m (,)18 b(the)f(total)f(number)h(of)g(le)o(v)o(els)g(is)f(not)g(kno)o (wn;)j(as)e(a)g(\223leaf)r(\224)h(node)f(list)e Fk(R)1570 1787 y Ff(L)1613 1780 y Fn(\002lls)i(up)f(\(reaches)i(a)114 1836 y(maximum)12 b(memory)g(limit\),)f(a)h(ne)o(w)f(time)g(interv)o (al)g(is)f(created,)j(possibly)c(incrementing)h(the)h(number)h(of)f(le) o(v)o(els.)114 1892 y(In)f(other)h(words,)f(one)g(starts)g(with)g(a)h (single)e(le)o(v)o(el)i(\()p Fk(L)h Fg(=)h(0)p Fn(\))e(and)f(add)h(le)o (v)o(els)f(as)h(needed.)j(The)c(resulting)f(tree)i(will)114 1949 y(not)g(necessarily)h(be)g(full.)17 b(This)12 b(is)f(the)h(reason) h(for)f(placing)g(the)g(directory)f(at)i(the)f(end)g(of)g(the)g (\002le,)h(since)f(in)g(this)114 2005 y(case,)g(the)e(number)i(of)f(le) o(v)o(els)g(is)f(not)h(kno)o(wn)f(a)h(priori.)0 2130 y Fh(4.4)50 b(File)13 b(Repr)o(esentation)0 2217 y Fn(Ev)o(en)h(though) e(we)i(ha)o(v)o(e)h(de\002ned)f(SLOG2)f(in)h(terms)g(of)g(the)f(APIs)h (used)g(to)f(read)i(and)e(write)h(the)g(\002les,)h(it)e(is)g(useful)h (to)0 2274 y(discuss)f(one)h(possible)f(representation)g(of)h(an)h (SLOG2)f(\002le,)i(such)d(as)i(that)f(in)g(Figure)g(7.)24 b(Other)14 b(representations)f(are)0 2330 y(possible;)c(the)i(API)g (describes)g(the)g(objects,)f(not)h(the)g(way)f(data)h(is)g(stored)g (in)f(a)i(\002le.)71 2386 y(The)j(\002le)g(format)h(described)e(here)i (e)o(xploits)d(the)i(post)f(mortum)i(nature)f(of)g(the)g(SLOG)g (\002les.)26 b(This)14 b(allo)o(ws)g(us)h(to)0 2443 y(collect)c(data)g (into)f(logical)g(groups,)g(rather)i(than)e(forming)h(it)g(as)g(a)g (stream)h(of)f(records.)952 2613 y(17)p eop %%Page: 18 18 18 17 bop 0 286 a Fl(header)24 b Fn(The)10 b(\002le)h(header)n(,)h (containing)c(information)i(on)g(the)g(v)o(ersion)g(of)h(SLOG,)g(name)g (of)g(the)f(program)h(and)f(the)h(user)n(,)114 343 y(and)g(other)f (data)h(about)g(the)g(\002le.)0 432 y Fl(tr)o(eenode)24 b Fn(Block)11 b(of)g(data)g(corresponding)f(to)g Fk(R)800 410 y Ff(j)800 447 y(`)819 432 y Fn(.)0 522 y Fl(global)g(category)h (inf)o(o)22 b Fn(Information)11 b(on)g(the)g(cate)o(gory)g (de\002nitions)e(used)i(in)g(one)g(or)g(more)h(treenode.)0 612 y Fl(global)e(coord)i(map)22 b Fn(Information)11 b(on)f(the)h(y)g(coordinate)g(mapping)f(for)h(coordinates)f(in)h(one)g (or)g(more)h(treenode.)0 701 y Fl(method)g(de\002nition)23 b Fn(Information)10 b(on)h(the)g(methods)g(that)f(should)g(be)h(in)n(v) o(oked)f(for)h(the)g(popup)f(data.)0 791 y Fl(tr)o(ee)i(dir)o(ectory)23 b Fn(Block)10 b(of)g(of)o(fsets)f(to)g(the)g(be)o(ginning)f(of)i(each)g (treenode,)g(along)f(with)g(the)g(start)h(and)f(end)h(times)f(of)h (each)114 847 y(tree)h(node.)j(The)d(of)o(fsets)f(are)i(8-byte)f(inte)o (gers,)g(in)f(bytes,)h(relati)o(v)o(e)g(to)g(the)g(be)o(ginning)e(of)i (the)g(\002le.)0 937 y Fl(annotations)22 b Fn(Block)10 b(of)g(te)o(xt)g(that)f(records)h(the)g(vie)o(wing)e(history)h(and)h (user)o(-pro)o(vided)f(annotations)f(about)h(the)h(SLOG2)114 993 y(\002le.)15 b(This)c(block)f(is)h(at)h(the)f(end)h(of)f(the)g (\002le)h(\(e)o(xcept)g(for)g(the)f(postamble\))g(so)g(that)g (annotations)e(can)j(be)f(added)h(to)114 1050 y(lar)o(ge)f(\002les)g (without)e(re)o(writing)h(the)h(\002le.)0 1139 y Fl(postamble)22 b Fn(Contains)9 b(\002)o(v)o(e)i(4)f(byte)g(inte)o(gers)f(indicating)g (the)h(location)e(\(relati)o(v)o(e)i(to)g(the)g(end)g(of)g(the)g (\002le\))h(of)f(the)g(global-)114 1196 y(cate)o(gory-info,)15 b(global-coord-map,)g(method-de\002nition,)f(treedirectory)g(and)g(the) h(annotation)e(blocks.)24 b(F)o(our)o(-)114 1252 y(byte)10 b(inte)o(gers)h(are)h(suf)o(\002cient)e(here)i(because)f(these)g (objects)f(are)h(relati)o(v)o(ely)g(small)g(and)f(are)i(near)g(the)f (postamble.)114 1309 y(Ho)o(we)o(v)o(er)n(,)g(we)h(could)e(use)h (8-byte)f(inte)o(gers)h(for)g(consistenc)o(y)f(with)g(treedirectory)h (of)o(fsets.)71 1402 y(The)j(ordering)g(of)h(the)g(blocks)e(is)i (chosen)f(to)g(make)h(it)f(easy)h(to)g(write)f(an)h(SLOG)g(\002le)g (with)f(a)h(single)e(pass.)25 b(W)n(ith)0 1459 y(the)14 b(e)o(xception)f(of)g(the)h(treenode,)h(each)f(of)g(these)f(blocks)g (is)g(relati)o(v)o(ely)g(small.)22 b(It)14 b(may)g(be)g(appropriate)f (to)g(use)h(XML)0 1515 y(to)e(describe)g(each)h(of)g(these)f(blocks,)h (allo)o(wing)d(XML-parsers)j(and)f(XML)h(tools)e(to)i(look)e(at)i(the)f (structure)g(of)h(SLOG2)0 1572 y(\002les.)i(An)c(alternate)h(form)g (that)f(stores)f(the)h(treenode)h(data)f(in)g(a)h(separate)g (\(binary\))f(\002le)g(could)g(use)g(XML)h(for)g(all)f(of)g(the)0 1628 y(other)g(elements;)f(this)g(v)o(ersion)h(would)e(not)i(require)g (the)g(postamble)f(block.)71 1685 y(The)g(treenode)g(is)g(a)h(special)f (case.)15 b(Because)c(a)g(treenode)f(represents)g(the)g(smallest)g (sensible)f(unit)h(of)g(data,)h(it)f(makes)0 1741 y(sense)h(to)g(di)o (vide)e(the)i(data)g(within)f(a)h(treenode)g(into)f(groups:)0 1824 y Fl(header)24 b Fn(This)14 b(contains)h(information)g(on)g(the)h (location)e(of)i(the)g(other)f(parts)h(of)g(this)e(treenode)i(\(e.g.,)i (the)e(of)o(fsets)f(of)114 1881 y(the)e(starts)h(of)g(each)g(block)f (and)h(sizes)g(in)f(terms)i(of)f(the)f(number)h(of)h(records\))f(along) f(with)g(information)g(on)g(the)114 1937 y(compression)d(method)g (\(see)i(belo)o(w\).)0 2027 y Fl(local)e(category)h(inf)o(o)23 b Fn(Cate)o(gory)16 b(de\002nitions)e(for)i(dra)o(wable)g(objects)f(in) h(this)f(treenode)h(only)m(.)28 b(In)16 b(man)o(y)h(cases,)g(this)114 2083 y(block)10 b(will)g(be)h(empty)m(.)0 2173 y Fl(local)f(coord)i (map)22 b Fn(Coordinate)15 b(mapping)f(information)g(for)h(this)f (treenode)g(only)m(.)25 b(In)15 b(man)o(y)h(cases,)g(this)e(block)g (will)114 2229 y(be)e(empty)m(.)19 b(One)13 b(e)o(xample)g(where)g(it)f (will)f(not)h(be)h(empty)f(is)h(when)f(indi)o(vidual)e(threads)i(are)h (being)f(created)h(and)114 2286 y(destroyed,)d(and)h(some)g(threads)g (e)o(xist)f(only)g(for)i(the)f(duration)e(of)j(this)e(treenode.)0 2375 y Fl(simple)h(drawables)22 b Fn(The)11 b(most)f(basic)g (information)g(on)h(the)f(dra)o(wables.)k(This)c(is)g(an)h(array)g(of)g (\002x)o(ed-length)f(structures)114 2432 y(containing)e(only)h(the)g (start)h(and)f(end)h(times,)g(cate)o(gory)g(id,)g(y)g(coordinate,)g (and)g(of)o(fsets)f(into)g(the)g(ne)o(xt)h(two)f(blocks.)114 2488 y(This)h(allo)o(ws)g(rapid)g(dra)o(wing)h(of)g(dra)o(wables)g (that)f(are)i(simple)f(states)f(\(rectangles\).)952 2613 y(18)p eop %%Page: 19 19 19 18 bop 0 286 a Fl(other)12 b(coords)f(block)23 b Fn(This)10 b(block)h(contains)e(all)i(of)h(the)f(other)f(coordinate)h(v)o(alues,)g (both)f(time)h(and)g(y)m(,)h(that)e(are)i(needed)114 343 y(to)e(describe)h(more)h(comple)o(x)f(dra)o(wables.)0 437 y Fl(popup)h(data)f(block)23 b Fn(This)10 b(block)h(contains)f(all) g(of)i(the)f(data)g(that)f(is)h(used)g(by)f(the)h(popup)f(methods.)71 531 y(The)e(choice)h(of)g(a)h(small)e(number)h(of)g(blocks)f(each)i (containing)d(all)h(entries)h(of)g(the)g(v)o(arious)f(data)g(elements)h (simpli\002es)0 587 y(the)k(task)g(of)g(reading)g(the)g(data)g(into)f (the)h(data)h(structures)e(within)f(a)j(display)e(program.)21 b(That)12 b(is,)i(a)g(program)f(can)h(read)0 643 y(the)d(header)g (\(\002x)o(ed)g(length\);)f(allocate)g(storage)h(for)g(the)f(records)h (based)g(on)f(information)g(in)g(the)h(header)n(,)h(and)e(read)i(all)e (of)0 700 y(the)h(data)g(in)g(a)g(single)f(operation.)71 756 y(T)n(race)j(\002le)g(formats,)g(particularly)e(for)h(lar)o(ge)h (amounts)e(of)i(data,)f(often)g(choose)g(to)g(de\002ne)h(each)f(data)h (\002eld)f(with)f(as)0 813 y(fe)o(w)k(bits)e(as)i(possible)d(in)i (order)h(to)f(reduce)h(\002le)g(size.)24 b(Because)15 b(the)f(SLOG)h(\002le)f(is)g(\(often\))h(generated)f(after)h(the)f(run) 0 869 y(of)g(a)h(program,)h(we)e(can)h(use)f(a)g(dif)o(ferent)g (approach)g(based)g(on)g(applying)f(data)h(compression)f(to)h(each)h (treenode)e(as)i(a)0 926 y(block.)h(The)c(treenode)g(header)g (indicates)f(which)h(type)f(of)h(compression)f(has)h(been)g(used)g(on)f (the)h(rest)g(of)g(the)g(treenode.)0 982 y(Among)d(the)g(possibilities) d(are)11 b(no)e(compression,)g(prede\002ned)h(static)e(compression)h (\(in)g(other)g(words,)g(the)h(con)n(v)o(entional)0 1039 y(trace-\002le)h(approach)f(based)g(on)g(de\002ning)f(the)h(number)h (of)f(bits)f(for)i(each)f(\002eld\),)h(and)f(dynamic)g(compression,)g (using)f(for)0 1095 y(e)o(xample)j(the)g(algorithms)e(used)h(in)g(the)h Fj(gzip)h Fn(program)f(\(see,)g(for)g(e)o(xample,)h([2,)f(Section)f (9.1.2])h(for)g(a)g(description)e(of)0 1152 y(the)f(gzip)f (algorithm\).)13 b(Dynamic)c(compression)f(allo)o(ws)f(us)i(to)f (eliminate)h(the)g(compromises)f(of)h(\002eld)g(lengths)f(that)g (static)0 1208 y(compression)j(schemes)h(must)f(make.)17 b(An)11 b(additional)f(adv)o(antage)h(of)h(dynamic)g(compression,)f (particularly)g(when)g(the)0 1264 y(\002le)j(is)f(accessed)h(o)o(v)o (er)g(a)g(slo)o(w)e(network,)h(is)g(that)g(it)g(can)h(reduce)g(the)f (time)h(to)f(read)h(the)f(data,)i(e)o(v)o(en)f(when)f(the)g(time)h(to)0 1321 y(decompress)d(the)g(\002le)g(is)g(included.)71 1377 y(An)d(SLOG)g(Annotation)e(\002le)j(is)f(almost)g(the)g(same.)14 b(The)9 b(only)e(dif)o(ferences)i(are)g(\(a\))g(the)f(block)g(of)h (treenodes)f(contains)0 1434 y(only)h(non-lea)o(v)o(es)h(of)h(the)f (tree,)i(\(b\))e(the)g(treedirectory)g(describes)g(the)g(location)g(of) g(the)g(treenodes)g(that)g(are)h(lea)o(v)o(es)g(of)f(the)0 1490 y(tree)k(in)f(terms)g(of)g(a)h(location)e(in)h(another)g(\002le,)h (and)f(\(c\))h(the)f(treedirectory)g(speci\002es)g(the)g(method)g(used) g(to)g(access)g(the)0 1547 y(treenodes.)i(Note)c(that)g(if)g(we)h(use)f (an)h(XML)g(representation)e(of)i(the)f(SLOG)h(\002le)f(that)g(places)h Fm(all)e Fn(of)i(the)f(treenodes)g(into)0 1603 y(a)h(separate)f (\002le,)h(the)f(same)g(format)h(can)f(be)h(used)e(for)i(both)e (complete)h(SLOG)g(\002les)g(and)g(SLOG)g(annotation)e(\002les.)0 1728 y Fh(4.5)50 b(Quantifying)10 b(Data)i(Motion)325 2277 y @beginspecial 0 @llx 0 @lly 312 @urx 110 @ury 3120 @rwi @setspecial %%BeginDocument: sanalysis.eps %!PS-Adobe-2.0 EPSF-2.0 %%Title: sanalysis.eps %%Creator: fig2dev Version 3.2 Patchlevel 0-beta3 %%CreationDate: Tue Mar 7 10:13:24 2000 %%For: gropp@fire.mcs.anl.gov (William Gropp,C235,2524318,) %%Orientation: Portrait %%BoundingBox: 0 0 312 110 %%Pages: 0 %%BeginSetup %%EndSetup %%Magnification: 1.0000 %%EndComments /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind 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 -138.0 167.0 translate 1 -1 scale /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} 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 /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} 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 /reencdict 12 dict def /ReEncode { reencdict begin /newcodesandnames exch def /newfontname exch def /basefontname exch def /basefontdict basefontname findfont def /newfont basefontdict maxlength dict def basefontdict { exch dup /FID ne { dup /Encoding eq { exch dup length array copy newfont 3 1 roll put } { exch newfont 3 1 roll put } ifelse } { pop pop } ifelse } forall newfont /FontName newfontname put newcodesandnames aload pop 128 1 255 { newfont /Encoding get exch /.notdef put } for newcodesandnames length 2 idiv { newfont /Encoding get 3 1 roll put } repeat newfontname newfont definefont pop end } def /isovec [ 8#200 /grave 8#201 /acute 8#202 /circumflex 8#203 /tilde 8#204 /macron 8#205 /breve 8#206 /dotaccent 8#207 /dieresis 8#210 /ring 8#211 /cedilla 8#212 /hungarumlaut 8#213 /ogonek 8#214 /caron 8#220 /dotlessi 8#230 /oe 8#231 /OE 8#240 /space 8#241 /exclamdown 8#242 /cent 8#243 /sterling 8#244 /currency 8#245 /yen 8#246 /brokenbar 8#247 /section 8#250 /dieresis 8#251 /copyright 8#252 /ordfeminine 8#253 /guillemotleft 8#254 /logicalnot 8#255 /endash 8#256 /registered 8#257 /macron 8#260 /degree 8#261 /plusminus 8#262 /twosuperior 8#263 /threesuperior 8#264 /acute 8#265 /mu 8#266 /paragraph 8#267 /periodcentered 8#270 /cedilla 8#271 /onesuperior 8#272 /ordmasculine 8#273 /guillemotright 8#274 /onequarter 8#275 /onehalf 8#276 /threequarters 8#277 /questiondown 8#300 /Agrave 8#301 /Aacute 8#302 /Acircumflex 8#303 /Atilde 8#304 /Adieresis 8#305 /Aring 8#306 /AE 8#307 /Ccedilla 8#310 /Egrave 8#311 /Eacute 8#312 /Ecircumflex 8#313 /Edieresis 8#314 /Igrave 8#315 /Iacute 8#316 /Icircumflex 8#317 /Idieresis 8#320 /Eth 8#321 /Ntilde 8#322 /Ograve 8#323 /Oacute 8#324 /Ocircumflex 8#325 /Otilde 8#326 /Odieresis 8#327 /multiply 8#330 /Oslash 8#331 /Ugrave 8#332 /Uacute 8#333 /Ucircumflex 8#334 /Udieresis 8#335 /Yacute 8#336 /Thorn 8#337 /germandbls 8#340 /agrave 8#341 /aacute 8#342 /acircumflex 8#343 /atilde 8#344 /adieresis 8#345 /aring 8#346 /ae 8#347 /ccedilla 8#350 /egrave 8#351 /eacute 8#352 /ecircumflex 8#353 /edieresis 8#354 /igrave 8#355 /iacute 8#356 /icircumflex 8#357 /idieresis 8#360 /eth 8#361 /ntilde 8#362 /ograve 8#363 /oacute 8#364 /ocircumflex 8#365 /otilde 8#366 /odieresis 8#367 /divide 8#370 /oslash 8#371 /ugrave 8#372 /uacute 8#373 /ucircumflex 8#374 /udieresis 8#375 /yacute 8#376 /thorn 8#377 /ydieresis] def /Helvetica /Helvetica-iso isovec ReEncode /Times-Roman /Times-Roman-iso isovec ReEncode /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def %%EndProlog $F2psBegin 10 setmiterlimit n -1000 3775 m -1000 -1000 l 8486 -1000 l 8486 3775 l cp clip 0.06000 0.06000 sc /Times-Roman-iso ff 180.00 scf sf 5475 2685 m gs 1 -1 sc (t) col0 sh gr /Symbol ff 180.00 scf sf 5363 2700 m gs 1 -1 sc (d) col0 sh gr /Symbol ff 180.00 scf sf 2700 2775 m gs 1 -1 sc (D) col0 sh gr /Helvetica-iso ff 180.00 scf sf 2850 2775 m gs 1 -1 sc (T) col0 sh gr % Polyline 7.500 slw n 2400 1650 m 2325 1650 l 2325 1950 l 2400 1950 l gs col0 s gr % Polyline [60] 0 sd n 2400 1500 m 2400 2100 l gs col0 s gr [] 0 sd % Polyline n 2400 2100 m 2325 2100 l 2325 2400 l 2400 2400 l gs col0 s gr % Polyline n 3225 2100 m 3300 2100 l 3300 2400 l 3150 2400 l gs col0 s gr % Polyline [60] 0 sd n 2400 1950 m 2400 2550 l gs col0 s gr [] 0 sd % Polyline [60] 0 sd n 3225 1950 m 3225 2475 l gs col0 s gr [] 0 sd % Polyline n 2400 1125 m 2325 1125 l 2325 1425 l 2400 1425 l gs col0 s gr % Polyline [60] 0 sd n 2400 975 m 2400 1575 l gs col0 s gr [] 0 sd % Polyline n 4275 1650 m 4350 1650 l 4350 1950 l 4275 1950 l gs col0 s gr % Polyline [60] 0 sd n 4275 1500 m 4275 2025 l gs col0 s gr [] 0 sd % Polyline n 4425 1650 m 4350 1650 l 4350 1950 l 4425 1950 l gs col0 s gr % Polyline [60] 0 sd n 4425 1500 m 4425 2100 l gs col0 s gr [] 0 sd % Polyline n 6300 1650 m 6375 1650 l 6375 1950 l 6300 1950 l gs col0 s gr % Polyline [60] 0 sd n 6300 1500 m 6300 2025 l gs col0 s gr [] 0 sd % Polyline n 6300 1125 m 6375 1125 l 6375 1425 l 6300 1425 l gs col0 s gr % Polyline [60] 0 sd n 6300 975 m 6300 1500 l gs col0 s gr [] 0 sd % Polyline n 5475 2100 m 5400 2100 l 5400 2400 l 5475 2400 l gs col0 s gr % Polyline n 6300 2100 m 6375 2100 l 6375 2400 l 6300 2400 l gs col0 s gr % Polyline [60] 0 sd n 5475 1950 m 5475 2550 l gs col0 s gr [] 0 sd % Polyline [60] 0 sd n 6300 1950 m 6300 2475 l gs col0 s gr [] 0 sd % Polyline n 4425 2100 m 4350 2100 l 4350 2400 l 4500 2400 l gs col0 s gr % Polyline n 5325 2100 m 5400 2100 l 5400 2400 l 5250 2400 l gs col0 s gr % Polyline [60] 0 sd n 4425 1950 m 4425 2550 l gs col0 s gr [] 0 sd % Polyline [60] 0 sd n 5325 1950 m 5325 2475 l gs col0 s gr [] 0 sd % Polyline n 3375 2100 m 3300 2100 l 3300 2400 l 3450 2400 l gs col0 s gr % Polyline n 4200 2100 m 4350 2100 l 4350 2400 l 4200 2400 l gs col0 s gr % Polyline [60] 0 sd n 3375 1950 m 3375 2550 l gs col0 s gr [] 0 sd % Polyline [60] 0 sd n 4275 1950 m 4275 2475 l gs col0 s gr [] 0 sd % Polyline n 3225 1950 m 3375 1950 l 3375 1650 l 3225 1650 l cp gs 0.50 setgray ef gr gs col0 s gr % Polyline n 2400 2100 m 3225 2100 l 3225 2400 l 2400 2400 l cp gs 0.50 setgray ef gr gs col0 s gr % Polyline n 4275 1425 m 4425 1425 l 4425 1125 l 4275 1125 l cp gs 0.50 setgray ef gr gs col0 s gr % Polyline n 5325 1950 m 5475 1950 l 5475 1650 l 5325 1650 l cp gs 0.50 setgray ef gr gs col0 s gr % Polyline n 4425 2100 m 5325 2100 l 5325 2400 l 4425 2400 l cp gs 0.50 setgray ef gr gs col0 s gr % Polyline n 3375 2100 m 4275 2100 l 4275 2400 l 3375 2400 l cp gs 0.50 setgray ef gr gs col0 s gr % Polyline n 5475 2100 m 6300 2100 l 6300 2400 l 5475 2400 l cp gs 0.50 setgray ef gr gs col0 s gr % Polyline gs clippath 3153 2670 m 3273 2700 l 3153 2730 l 3315 2730 l 3315 2670 l cp clip n 3000 2700 m 3300 2700 l gs col0 s gr gr % arrowhead n 3153 2670 m 3273 2700 l 3153 2730 l col0 s % Polyline gs clippath 2547 2730 m 2427 2700 l 2547 2670 l 2385 2670 l 2385 2730 l cp clip n 2625 2700 m 2400 2700 l gs col0 s gr gr % arrowhead n 2547 2730 m 2427 2700 l 2547 2670 l col0 s /Helvetica-iso ff 180.00 scf sf 6603 2333 m gs 1 -1 sc (Level L) col0 sh gr /Helvetica-iso ff 180.00 scf sf 6595 1882 m gs 1 -1 sc (Level L-1) col0 sh gr /Helvetica-iso ff 180.00 scf sf 6610 1395 m gs 1 -1 sc (Level L-2) col0 sh gr $F2psEnd rs %%EndDocument @endspecial 0 2375 a Fn(Figure)i(8:)20 b(An)o(y)14 b(record)g(whose)g (time-center)g(falls)f(within)g(the)h(gre)o(y)g(area)h(is)f(assigned)f (to)h(the)g(corresponding)e(node.)0 2431 y(Note)f(that)f(most)h(of)g (the)g(records)g(are)h(assigned)e(to)h(leaf)g(nodes.)952 2613 y(19)p eop %%Page: 20 20 20 19 bop 71 286 a Fn(One)12 b(feature)h(of)g(the)g(simple)f(approach)h (described)f(in)g(Section)g(3)h(is)f(that)h(some)f(objects,)h(e)o(v)o (en)g(though)e(the)o(y)i(ha)o(v)o(e)0 343 y(v)o(ery)e(short)f (duration,)g(will)f(be)i(forced)g(into)f(lo)o(wer)g(\(closer)g(to)h (the)f(root\))g(le)o(v)o(els)g(of)h(the)g(tree)g(because)f(the)o(y)h (ha)o(v)o(e)g(the)f(bad)0 399 y(luck)h(to)f(cross)h(the)g(joint)f (between)h(two)f(leaf)i(box)o(es.)i(F)o(or)e(e)o(xample,)g(an)o(y)f (dra)o(wable)g(object)f(that)h(starts)f(before)i Fk(T)5 b(=)p Fg(2)10 b Fn(and)0 456 y(ends)j(after)h Fk(T)5 b(=)p Fg(2)12 b Fn(will)g(be)i(forced)f(into)g(the)g(root)f(node,)i(no) f(matter)h(ho)o(w)e(short)h(its)f(duration.)19 b(In)14 b(principle,)f(this)f(could)0 512 y(create)i(problems)f(for)h(the)f (SLOG2)g(format)h(by)f(mo)o(ving)g(too)f(man)o(y)i(dra)o(wable)g (objects)e(out)h(of)g(the)g(leaf)h(nodes)f(of)g(the)0 569 y(tree.)h(F)o(ortunately)m(,)c(we)g(can)h(sho)o(w)e(that)h(in)f (man)o(y)i(cases)f(this)f(is)h(not)g(a)g(problem;)g(further)n(,)h(a)f (small)g(change)g(to)g(the)g(format)0 625 y(allo)o(ws)g(SLOG2)h(to)f (handle)h(all)g(b)o(ut)f(v)o(ery)i(pathalogical)d(cases.)71 682 y(Note)k(that)h(if)g(there)g(is)g(a)g(limit)g(on)g(the)f(number)i (of)f(objects)f(\(box)o(es,)i(arro)o(ws,)g(etc.\))24 b(that)13 b(can)i(cross)e(an)o(y)i(point)e(in)0 738 y(time,)e(then)e (the)h(number)g(of)h(objects)e(in)h(the)f(lo)o(wer)o(-le)o(v)o(el)h (\(non-leaf\))g(bounding)e(box)o(es)i(can)g(be)h(bounded.)h(If)f(only)e (states)0 795 y(or)16 b(periods)f(are)i(included,)f(this)f(can)i(be)f (often)f(be)i(ef)o(fecti)o(v)o(ely)e(bounded.)28 b(Ho)o(we)o(v)o(er)n (,)17 b(if)f(dra)o(wable)g(objects)f(include)0 851 y(connections)8 b(between)i(send)g(and)g(recei)o(v)o(e)g(e)o(v)o(ents)g(or)g (non-blocking)e(I/O)i(operations,)f(the)h(number)g(of)g(objects)f(that) h(can)0 907 y(cross)h(a)g(particular)g(time)g(line)g(can)g(be)g(v)o (ery)h(lar)o(ge.)71 964 y(W)l(e)e(can)f(estimate)g(the)h(number)f(of)h (records)f(in)g(each)h(node)f(for)h(some)f(simple)g(situations.)i (Consider)e(the)g(case)h(where)0 1020 y(all)i(records)g(ha)o(v)o(e)h (the)f(same)h(duration)d Fk(\016)r(t)j Fn(and)f(are)h(uniformly)e (distrib)o(uted)f(throughout)g(the)i(trace)h(\002le.)18 b(Consider)11 b(\002rst)0 1077 y(the)h(algorithm)g(in)g(Figure)g(6,)i (where)e(the)h(time)f(interv)o(als)f(for)i(each)g(node)f(on)h(a)g(le)o (v)o(el)f(are)h(disjoint)d(\(non-o)o(v)o(erlapping\).)0 1133 y(Let)k(the)f(le)o(v)o(els)h(be)g Fg(0)p Fk(;)8 b(:)g(:)g(:)t(;)g(L)p Fn(,)14 b(so)g(that)f(there)h(are)h Fg(2)835 1117 y Ff(L)875 1133 y Fn(lea)o(v)o(es.)22 b(F)o(or)15 b(each)f(leaf)g(interv)o(al)f(of)h(width)f Fg(\001)p Fk(T)1663 1140 y Ff(min)1729 1133 y Fn(,)i(an)o(y)f(record)0 1190 y(whose)f(center)h(starts)369 1176 y Fe(1)p 369 1182 18 2 v 369 1205 a(2)392 1190 y Fk(\016)r(t)g Fn(past)f(the)g(be)o (ginning)f(of)h(the)g(leaf)r(')n(s)h(time)g(interv)o(al)e(and)h(before) 1490 1176 y Fe(1)p 1490 1182 V 1490 1205 a(2)1513 1190 y Fk(\016)r(t)h Fn(before)f(the)h(end)f(of)g(the)0 1246 y(leaf)r(')n(s)e(time)f(interv)o(al)f(will)h(be)g(placed)g(within)f (that)h(interv)o(al.)j(Thus,)d(if)g(there)h(are)g Fk(N)k Fn(records,)c(all)f(b)o(ut)g Fk(N)5 b(\016)r(t=)p Fg(\001)p Fk(T)1803 1253 y Ff(min)1879 1246 y Fn(will)0 1303 y(be)12 b(placed)f(in)g(the)h(leaf)f(nodes.)k(Of)d(the)f(remaining)g(records,)h Fk(N)5 b(\016)r(t=)p Fg(2\001)p Fk(T)1183 1310 y Ff(min)1261 1303 y Fn(will)10 b(be)i(placed)f(in)g(the)h(nodes)e(at)i(the)f(ne)o (xt)0 1359 y(le)o(v)o(el,)g Fk(N)5 b(\016)r(t=)p Fg(4\001)p Fk(T)300 1366 y Ff(min)377 1359 y Fn(in)11 b(the)g(ne)o(xt,)g(do)o(wn)f (to)h(le)o(v)o(el)g(0.)j(This)c(is)h(illustrated)e(in)i(Figure)g(8.)71 1416 y(The)h(number)h(of)g(records)g(read)h(to)e(display)f(an)o(y)i (time)g(can)h(be)f(calculated)f(as)h(follo)o(ws.)18 b(Since)13 b(the)g(display)e(of)i(an)o(y)0 1472 y(time)c(requires)g(reading)g(all) g(time)h(interv)o(als)e(that)g(intersect)h(that)g(time,)h(one)f(interv) o(al)f(on)h(each)h(le)o(v)o(el)f(is)g(read.)14 b(The)c(amount)0 1528 y(of)h(data)g(\(not)g(counting)e(the)i(leaf)h(node\))f(is)f (simply)604 1612 y Ff(L)p Fa(\000)p Fe(1)609 1625 y Fd(X)606 1717 y Ff(k)q Fe(=0)736 1634 y Fk(N)5 b(\016)r(t)p 686 1655 180 2 v 686 1696 a Fg(2)709 1683 y Ff(L)734 1696 y Fg(\001)p Fk(T)799 1703 y Ff(min)883 1665 y Fg(=)13 b Fk(L)1017 1634 y(N)5 b(\016)r(t)p 967 1655 V 967 1696 a Fg(2)990 1683 y Ff(L)1016 1696 y Fg(\001)p Fk(T)1081 1703 y Ff(min)1165 1665 y Fg(=)13 b Fk(L)1249 1634 y(N)p 1249 1655 42 2 v 1253 1696 a(T)1295 1665 y(\016)r(t:)0 1799 y Fn(Ho)o(we)o(v)o(er)n(,)i(man)o(y)f(of)g(these)f(records)h(are)h (unneeded.)21 b(Consider)13 b(the)h(time)g Fk(t)j Fg(=)h(0)p Fn(.)k(Only)13 b(the)h(\002rst)f(leaf)h(must)g(be)g(read)0 1856 y(to)i(pro)o(vide)f(all)h(of)g(the)g(necessary)g(data;)i(these)d (additional)f(records)i(are)h(required)f(only)f(because)h(the)o(y)g (crossed)f(the)0 1912 y(arti\002cial)c(boundaries)f(that)g(were)i (de\002ned)f(between)g(lea)o(v)o(es.)j(In)e(the)e(worst)g(case,)i(only) 776 2031 y Fg(2)854 2000 y Fk(N)5 b(\016)r(t)p 804 2021 180 2 v 804 2062 a Fg(2)827 2049 y Ff(L)852 2062 y Fg(\001)p Fk(T)917 2069 y Ff(min)1001 2031 y Fg(=)13 b(2)1077 2000 y Fk(N)p 1077 2021 42 2 v 1081 2062 a(T)1123 2031 y(\016)r(t:)0 2147 y Fn(records)h(must)g(be)h(read;)h(these)e(correspond)f(to)h(the)g (interv)o(als)f(at)i(the)f(left)g(and)g(right)f(end)i(of)f(a)h(leaf)f (node.)24 b(Thus,)14 b(the)0 2204 y(number)d(of)g(unnecessary)g (records)g(that)g(must)f(be)i(read)f(is)852 2322 y Fg(\()p Fk(L)e Fi(\000)i Fg(2\))1002 2292 y Fk(N)p 1002 2312 V 1006 2354 a(T)1048 2322 y(\016)r(t:)0 2432 y Fn(In)i(man)o(y)g (cases,)g(this)f(will)f(be)i(a)g(small)g(number)n(.)18 b(F)o(or)13 b(e)o(xample,)h(consider)e(the)g(case)h(where)g(the)g(dra)o (wable)f(objects)g(do)0 2488 y(not)h(o)o(v)o(erlap.)22 b(Then)13 b Fk(N)5 b(\016)r(t)18 b Fi(\024)f Fk(T)6 b Fn(,)15 b(and)f(this)e(e)o(xpression)h(is)g(bounded)g(by)g Fk(L)f Fi(\000)g Fg(2)p Fn(.)22 b(Since)14 b Fk(L)j Fg(=)h(log)1618 2499 y Fe(2)1638 2488 y Fg(\()p Fk(T)5 b(=)p Fg(\001)p Fk(T)1776 2495 y Ff(min)1841 2488 y Fg(\))p Fn(,)14 b(this)952 2613 y(20)p eop %%Page: 21 21 21 20 bop 0 286 a Fn(number)12 b(will)f(rarely)h(be)g(lar)o(ge.)17 b(If)c(the)f(de)o(gree)g(of)g(o)o(v)o(erlap)h(is)e Fk(p)p Fn(,)i(for)f(e)o(xample,)h(there)f(are)h Fk(p)f Fn(processes)f(or)h (threads,)g(the)0 343 y(number)f(scales)f(linearly)f(with)h(the)g(de)o (gree)i(of)e(o)o(v)o(erlap.)k(Further)n(,)e(the)e(number)g(of)h(dra)o (wable)f(objects)g(at)g(an)o(y)h(time)g(must)0 399 y(be)h(smaller)f (that)g(the)g(number)g(of)h(a)o(v)o(ailable)f(pix)o(els)f(\(in)h(the)g (v)o(ertical)h(dimension\))e(for)i(the)f(graphical)g(representation)f (to)0 456 y(be)h(meaningful.)j(This)c(also)h(pro)o(vides)f(a)h(bound)f (on)h(the)g(number)g(of)g(o)o(v)o(erlapping)g(objects)f(in)g(a)i Fm(useful)e Fn(SLOG2)h(\002le.)71 512 y(Ho)o(we)o(v)o(er)n(,)j(if)f (too)g(man)o(y)h(dra)o(wable)f(objects)f(of)i(short)e(duration)g(cross) h(the)g(boundaries)f(between)h(tree)h(nodes,)f(the)0 569 y(amount)g(of)g(unnecessary)f(data)h(that)f(must)h(be)g(read)g (could)f(become)i(lar)o(ge.)19 b(T)l(o)14 b(handle)e(this)g(case,)i(we) f(can)g(generalize)0 625 y(the)e(bounding)e(box)i(notion)f(to)h (include)f(o)o(v)o(erlapping)h(bounding)e(box)o(es.)15 b(F)o(or)d(e)o(xample,)g(if)g(the)f(bounding)e(box)o(es)i(at)g(the)0 682 y(lea)o(v)o(es)g(of)f(the)h(tree)g(o)o(v)o(erlap)f(by)g Fk(\016)r(t)p Fn(,)i(then)e(an)o(y)h(dra)o(wable)f(object)g(of)g (duration)g(no)g(more)h(than)f Fk(\016)r(t)h Fn(can)g(be)g(placed)f(in) g(some)0 738 y(leaf)h(node.)j(More)e(comple)o(x)f(distrib)o(utions)d (of)j(duration)f(can)h(be)g(analyzed)g(and)g(used)g(to)f(guide)g(the)h (amount)g(of)g(o)o(v)o(erlap)0 795 y(at)g(each)h(le)o(v)o(el.)i(This)c (handles)g(the)h(pathalogical)f(case)h(mentioned)g(abo)o(v)o(e.)0 941 y Fo(5)60 b(Experiments)0 1044 y Fn(Sho)o(w)11 b(some)g(results,)f (with)h(\002le)g(size)g(and)g(access)h(times.)i(Emphasize)c (scalability)m(.)0 1191 y Fo(A)60 b(APIs)0 1294 y Fn(All)11 b(of)h(these)f(APIs)h(ha)o(v)o(e)g(some)g(sense)g(of)g(\223current\224) g(record.)k(The)c(simplicity)e(of)h(this)g(outweighs)f(possible)g (problems)0 1351 y(with)i(multi-threaded)g(applications,)g(particular)g (since)h(it)f(is)h(unlikely)d(that)j(application)e(would)g(use)i (multiple)f(threads)0 1407 y(to)f(access)h(or)f(modify)g(an)o(y)h(of)f (the)g(trace)h(\002les.)j(Applications)9 b(that)i(need)g(to)g(use)h (threads)f(can)g(use)g(con)n(v)o(entional)f(thread)0 1464 y(synchronization)f(techniques)g(to)i(guarantee)g(correct)h(beha)o (vior)n(.)71 1520 y(All)e(routines)g(are)i(listed)e(alphabetically)m(.) 0 1666 y Fo(B)60 b(Input)15 b(API)g(f)o(or)f(Reading)h(fr)o(om)f(F)o (or)o(eign)e(T)l(race)h(Files)0 1770 y Fn(The)f(input)f(API)i(for)f (reading)g(trace)h(\002les)f(assumes)g(only)g(that)f(the)h(\002le)h (describes)f(dra)o(wable)g(objects;)f(these)h(may)h(ha)o(v)o(e)0 1826 y(to)g(be)g(assembled)g(by)g(the)g(implementation)f(of)i(this)e (API.)i(Cate)o(gory)f(and)g(method)g(information)g(may)g(or)h(may)f (not)g(be)0 1883 y(present)h(in)f(the)h(trace)h(\002le)f(\(e.g.,)j (cate)o(gory)d(information)f(is)g(present)h(in)g(clog)f(\002les)i(b)o (ut)e(method)h(information)f(is)g(not\).)0 1939 y(There)e(is)g(no)g (coordinate)f(map)i(information)e(here)h(because)h(no)e(trace)i(\002le) f(currently)g(pro)o(vides)f(that)h(information.)p 0 1996 1950 9 v 0 2052 a Fl(TRA)n(CE)p Fj(_)p Fl(Category)p Fj(_)p Fl(head)p Fj(_)p Fl(t)h Fn(\227)f(Structure)g(de\002ning)g(the)g (basic)f(information)g(about)h(a)g(cate)o(gory)0 2197 y Fh(Synopsis)0 2285 y Fj(typedef)29 b(struct)g({)55 2341 y(int)f(category_index;)55 2397 y(int)g(shape;)55 2454 y(int)g(red,)g(green,)h(blue,)g(alpha;)952 2613 y Fn(21)p eop %%Page: 22 22 22 21 bop 0 286 a Fj(})28 b(TRACE_Category_)q(head)q(_t;)0 444 y Fl(category)p Fj(_)p Fl(index)375 500 y Fn(inte)o(ger)11 b(v)o(alue)g(by)f(which)h(records)g(will)f(identify)g(themselv)o(es)h (as)g(belonging)e(to)i(this)375 557 y(cate)o(gory)0 602 y Fl(shape)339 b Fn(Shape)11 b(of)h(the)f(cate)o(gory)m(.)j(This)c(is)h (an)g(inte)o(ger)g(de\002ned)g(by)g(the)g(dra)o(wing)f(program;)h(the) 450 658 y(v)o(alue)g(0)g(is)f(reserv)o(ed)i(for)f(a)h(basic)f(state)f (\(a)i(rectangle)f(along)f(a)i(timeline\))0 703 y Fl(r)o(ed,)h(gr)o (een,)f(blue)375 759 y Fn(Color)f(of)g(the)g(shape;)g(each)g(is)g(in)g (the)f(range)i([0,255])0 815 y Fl(alpha)341 b Fn(T)n(ransparenc)o(y)11 b(v)o(alue,)g(in)g(the)g(range)g(of)h([0,255].)i(Some)e(display)d (programs)i(may)h(ignore)450 872 y(this)e(v)o(alue.)p 0 947 1950 9 v 0 1004 a Fl(TRA)n(CE)p Fj(_)p Fl(Close)g Fn(\227)i(Close)f(a)h(trace)f(\002le)0 1148 y Fh(Synopsis)0 1235 y Fj(int)28 b(TRACE_Close\()j(TRACE_file)f(*fp)e(\))0 1480 y Fh(Input)12 b(Parameter)0 1568 y Fl(fp)410 b Fn(Pointer)11 b(to)f(a)i(trace)g(\002le)f(handle)0 1712 y Fh(Notes)0 1799 y Fn(The)g(pointer)f Fj(fp)i Fn(is)f(set)g(to)f(null)g(on)h(a)h (successful)e(close.)p 0 1918 V 0 1974 a Fl(TRA)n(CE)p Fj(_)p Fl(Get)p Fj(_)p Fl(next)p Fj(_)p Fl(category)i Fn(\227)g(Get)f(the)g(ne)o(xt)g(cate)o(gory)g(description)0 2119 y Fh(Synopsis)0 2206 y Fj(int)28 b(TRACE_Get_nex)q(t_ca)q(teg)q (ory\()j(const)e(TRACE_file)h(fp,)736 2262 y(TRACE_Catego)q(ry_h)q(ead) q(_t)g(*head,)300 2319 y(char)e(*label_base,)j(int)d(*label_pos,)i (const)f(int)f(max_label,)300 2375 y(char)g(*legend_base)q(,)i(int)e (*legend_pos,)300 2432 y(const)h(int)f(max_legend,)300 2488 y(char)g(category_met)q(hods)q([][)q(],)952 2613 y Fn(22)p eop %%Page: 23 23 23 22 bop 300 286 a Fj(char)28 b(category_met)q(hod_)q(ext)q(ra[])q([]) i(\))0 538 y Fh(Input)12 b(Parameter)0 625 y Fl(fp)410 b Fn(T)n(race)12 b(\002le)g(handle)0 771 y Fh(Input/Output)d (Parameters)0 858 y Fl(label)p Fj(_)p Fl(pos)263 b Fn(On)11 b(input,)f(the)h(\002rst)g(a)o(v)o(ailable)f(position)f(in)i Fj(label_base)30 b Fn(On)11 b(output,)f(changed)h(to)450 914 y(indicate)f(the)h(ne)o(w)g(\002rst)g(a)o(v)o(ailable)g(position.)0 959 y Fl(legend)p Fj(_)p Fl(pos)231 b Fn(On)11 b(input,)f(the)h (\002rst)g(a)o(v)o(ailable)f(position)f(in)i Fj(legend_base)30 b Fn(On)11 b(output,)f(changed)h(to)450 1016 y(indicate)f(the)h(ne)o(w) g(\002rst)g(a)o(v)o(ailable)g(position.)0 1151 y Fh(Output)f (Parameters)0 1238 y Fl(head)357 b Fn(Contains)10 b(basic)h(cate)o (gory)g(info)g(\(see)g(the)g(description)e(of)450 1295 y Fj(TRACE_Categor)q(y_he)q(ad_t)q Fn(\))0 1338 y Fl(label)p Fj(_)p Fl(base)243 b Fn(Pointer)11 b(to)f(storage)h(to)g(hold)f(label)h (information)0 1394 y Fl(max)p Fj(_)p Fl(label)245 b Fn(Size)12 b(of)f Fj(label_base)0 1451 y Fl(legend)p Fj(_)p Fl(base)211 b Fn(Pointer)11 b(to)f(storage)h(to)g(hold)f(le)o (gend)h(information)0 1507 y Fl(max)p Fj(_)p Fl(legend)213 b Fn(Size)12 b(of)f Fj(legend_base)0 1564 y Fl(category)p Fj(_)p Fl(methods)375 1620 y Fn(Null-terminated)f(array)h(of)h (null-terminated)d(strings)h(describing)g(methods)g(used)h(to)375 1677 y(process)g(record-speci\002c)g(data.)0 1721 y Fl(category)p Fj(_)p Fl(method)p Fj(_)p Fl(extra)375 1778 y Fn(Extra)g(data)g(for)g (each)h(method)0 1923 y Fh(Notes)0 2010 y Fn(The)f(interface)g(to)g (this)f(\(and)h(similar)f(routines)g(such)h(as)g Fj(TRACE_Get_nex)q (t_d)q(rawa)q(ble)p Fn(\))k(is)c(designed)f(to)g(gi)o(v)o(e)0 2067 y(\003e)o(xibility)f(in)i(ho)o(w)g(data)g(is)f(read.)15 b(See)d Fj(SLOG2_Get_nex)q(t_c)q(ateg)q(ory)j Fn(for)c(more)h(details.) p 0 2185 1950 9 v 0 2242 a Fl(TRA)n(CE)p Fj(_)p Fl(Get)p Fj(_)p Fl(next)p Fj(_)p Fl(drawable)h Fn(\227)e(Get)g(the)g(ne)o(xt)g (dra)o(wable)0 2387 y Fh(Synopsis)0 2474 y Fj(int)28 b(TRACE_Get_nex)q(t_dr)q(awa)q(ble\()j(const)e(TRACE_file)h(fp,)952 2613 y Fn(23)p eop %%Page: 24 24 24 23 bop 736 286 a Fj(double)29 b(*starttime,)i(double)d(*endtime,)736 343 y(int)g(*category_in)q(dex)q(,)736 399 y(int)g(*nt_coords,)j (double)e(*tcoord_base,)736 456 y(int)f(*tcoord_pos,)j(const)e(int)f (tcoord_max,)736 512 y(int)g(*ny_coords,)j(int)d(*ycoord_base,)736 569 y(int)g(*ycoord_pos,)j(const)e(int)f(ycoord_max,)736 625 y(char)h(*byte_base,)h(int)e(*byte_pos,)736 682 y(const)h(int)f (byte_max)i(\))0 933 y Fh(Input)12 b(Parameter)0 1020 y Fl(fp)410 b Fn(T)n(race)12 b(\002le)g(handle)0 1077 y Fl(tcoord)p Fj(_)p Fl(max)213 b Fn(Size)12 b(of)f Fj(tcoord_base)0 1133 y Fl(ycoord)p Fj(_)p Fl(max)205 b Fn(Size)12 b(of)f Fj(ycoord_base)0 1190 y Fl(byte)p Fj(_)p Fl(max)256 b Fn(Size)12 b(of)f Fj(byte_base)0 1335 y Fh(Input/Output)e(Parameters)0 1422 y Fl(tcoord)p Fj(_)p Fl(pos)231 b Fn(On)11 b(input,)f(the)h (\002rst)g(free)h(location)e(in)h Fj(tcoord_base)p Fn(.)17 b(Updated)10 b(on)h(output)f(to)h(the)f(ne)o(w)450 1479 y(\002rst)h(free)h(location.)0 1514 y Fl(ycoord)p Fj(_)p Fl(pos)223 b Fn(The)11 b(same,)h(for)g Fj(ycoord_base)0 1571 y Fl(byte)p Fj(_)p Fl(pos)274 b Fn(The)11 b(same,)h(for)g Fj(byte_base)0 1716 y Fh(Output)e(Parameters)0 1803 y Fl(starttime,)h(endtime)375 1860 y Fn(time)g(range)g(for)h(dra)o(wable) 0 1916 y Fl(category)p Fj(_)p Fl(index)375 1973 y Fn(inde)o(x)f(of)g (the)g(cate)o(gory)g(that)g(this)f(dra)o(wable)g(belongs)g(to)0 2029 y Fl(nt)p Fj(_)p Fl(coords)254 b Fn(Number)11 b(of)h(time)f (coordinates)0 2086 y Fl(tcoord)p Fj(_)p Fl(base)211 b Fn(pointer)10 b(to)h(storage)f(to)h(hold)f(time)i(coordinates)0 2142 y Fl(ycoord)p Fj(_)p Fl(base)203 b Fn(pointer)10 b(to)h(storage)f(to)h(hold)f(y)h(coordinates)0 2198 y Fl(byte)p Fj(_)p Fl(base)254 b Fn(pointer)10 b(to)h(storage)f(to)h (hold)f(bytes)0 2344 y Fh(Question)0 2431 y Fn(Should)g(the)h (information)f(that)h(is)f(also)h(returned)g(by)g Fj(TRACE_Peek_next)q (_dra)q(wab)q(le)30 b Fn(also)11 b(be)g(returned)g(by)0 2487 y(this)f(routine?)952 2613 y(24)p eop %%Page: 25 25 25 24 bop 0 286 1950 9 v 0 343 a Fl(TRA)n(CE)p Fj(_)p Fl(Get)p Fj(_)p Fl(next)p Fj(_)p Fl(method)13 b Fn(\227)f(Get)f(the)g (ne)o(xt)g(method)g(description)0 488 y Fh(Synopsis)0 575 y Fj(int)28 b(TRACE_Get_nex)q(t_me)q(tho)q(d\()i(const)f (TRACE_file)h(fp,)682 632 y(char)e(method_name[])q(,)i(char)f (method_extra[],)682 688 y(int)f(*method_id)i(\))0 940 y Fh(Input)12 b(Parameter)0 1027 y Fl(fp)410 b Fn(T)n(race)12 b(\002le)g(handle)0 1172 y Fh(Output)e(Parameters)0 1260 y Fl(method)p Fj(_)p Fl(name)0 1316 y(method)p Fj(_)p Fl(extra)0 1372 y(method)p Fj(_)p Fl(id)0 1518 y Fh(Note)0 1605 y Fn(A)h(typical)f(trace)i(\002le)f(may)h(ha)o(v)o(e)g Fm(no)e Fn(methods.)0 1750 y Fh(Question)0 1837 y Fn(Should)g(methods)h (ha)o(v)o(e)g(ids)g(so)f(that)h(cate)o(gories)g(can)g(refer)h(to)f (them)g(by)g(id)g(instead)f(of)h(by)g(name?)0 1894 y(Ho)o(w)g(do)f(we)i (ensure)f(that)f(the)h(data)g(areas)h(are)g(lar)o(ge)f(enough?)p 0 2013 V 0 2069 a Fl(TRA)n(CE)p Fj(_)p Fl(Get)p Fj(_)p Fl(position)g Fn(\227)h(Return)f(the)g(current)g(position)e(in)i(an)g (trace)h(\002le)0 2214 y Fh(Synopsis)0 2302 y Fj(int64_t)29 b(TRACE_Get_pos)q(iti)q(on\()i(TRACE_file)f(fp)d(\))952 2613 y Fn(25)p eop %%Page: 26 26 26 25 bop 0 286 a Fh(Input)12 b(Parameter)0 374 y Fl(fp)410 b Fn(T)n(race)12 b(2)f(\002le)h(handle)0 519 y Fh(Retur)o(n)g(V)-5 b(alue)0 606 y Fn(Current)11 b(position)e(of)i(\002le.)k(Returns)c Fj(-1)h Fn(on)e(error)n(.)0 751 y Fh(Notes)0 839 y Fn(This)g(routine)g (and)h Fj(TRACE_Set_po)q(siti)q(on)k Fn(are)c(used)g(in)g(the)g (construction)e(of)i(an)g(annotated)f(Slog)h(\002le.)k(In)c(an)0 895 y(annotated)f(Slog)h(\002le,)h(the)f(Slog)f(\002le)i(records)f(the) g(location)f(in)g(the)h(original)f(trace)i(\002le)f(of)g(the)g (records,)h(rather)f(than)0 951 y(making)g(a)g(copy)g(of)g(the)g (records.)p 0 1070 1950 9 v 0 1127 a Fl(TRA)n(CE)p Fj(_)p Fl(Get)p Fj(_)p Fl(total)p Fj(_)p Fl(time)h Fn(\227)f(Return)h(the)e (time)i(range)f(co)o(v)o(ered)h(by)f(an)g(trace)h(\002le)0 1272 y Fh(Synopsis)0 1359 y Fj(int)28 b(TRACE_Get_tot)q(al_t)q(ime)q (\()i(const)f(TRACE_file)h(fp,)627 1416 y(double)f(*starttime,)h (double)f(*endtime)h(\))0 1667 y Fh(Input)12 b(Parameter)0 1754 y Fl(fp)410 b Fn(Slog)11 b(2)g(\002le)g(handle)0 1900 y Fh(Output)f(Parameters)0 1987 y Fl(starttime)273 b Fn(T)n(ime)12 b(when)f(log)f(\002le)h(be)o(gins)g(\(no)g(e)o(v)o(ent) g(before)g(this)f(time\))0 2043 y Fl(endtime)294 b Fn(T)n(ime)12 b(when)f(log)f(\002le)h(end)g(\(no)g(e)o(v)o(ent)g(after)h(this)e (time\))0 2189 y Fh(Questions)0 2276 y Fn(Do)h(we)g(want)g(to)f (require)h(this?)i(In)f(some)f(cases,)g(it)g(may)h(be)f(dif)o(\002cult) f(to)h(return)g(this)f(time.)p 0 2394 V 0 2451 a Fl(TRA)n(CE)p Fj(_)p Fl(Open)i Fn(\227)g(Open)f(a)g(trace)h(\002le)g(for)f(input)952 2613 y(26)p eop %%Page: 27 27 27 26 bop 0 286 a Fh(Synopsis)0 374 y Fj(TRACE_file)30 b(TRACE_Open\()g(const)f(char)f(filename[])i(\))0 625 y Fh(Input)12 b(Parameter)0 712 y Fl(\002lename)286 b Fn(Name)12 b(of)f(\002le)h(to)e(open.)0 858 y Fh(Retur)o(n)i(V)-5 b(alue)0 945 y Fn(T)n(race)12 b(\002le)g(handle)0 1090 y Fh(Notes)0 1177 y Fn(The)f(\002le)g(is)g(opened)g(for)g(reading)g (only)m(.)0 1323 y Fh(Questions)0 1410 y Fn(This)f(does)h(not)f(handle) h(the)g(case)g(where)h(the)f(trace)g(\002le)h(is)e(actually)h(a)g (collection)f(of)h(\002les)g(or)h(a)f(non-\002le)g(\(e.g.,)h(a)0 1466 y(socket\).)h(An)e(easy)g(\002x)h(for)f(this)f(is)h(to)f(change)i Fj(filename)h Fn(to)e Fj(filespec)i Fn(and)e(de\002ne)h(that)e(as)i(an) f(arbitrary)g(string.)0 1523 y(Then)g(an)o(y)g(string)f(tha)h(the)g Fj(TRACE_Open)j Fn(command)e(accepts)f(can)g(be)g(used.)j(Since)e(the)e (Slog)h(program)h(will)e(only)0 1579 y(pass)h(this)f(string)g(through)f (\(e.g.,)k(from)f(the)e(command-line)h(to)g(this)f(call\),)i(it)e(need) i(not)e(be)h(a)h(\002le)f(name.)0 1636 y(Possible)f(interpretations)f (of)i Fj(filespec)j Fn(include)c(a)h(\002lename,)i(an)e(indirect)f (\002le)i(\(i.e.,)g(a)g(\002le)f(that)g(contains)e(the)0 1692 y(names)i(of)h(other)e(\002les\),)i(a)g(colon)e(separated)h(list)f (of)h(\002les)g(\(i.e.,)i Fj(file1:file2:fi)q(le3)p Fn(\))q(,)h(a)e (\002le)f(pattern)g(\(i.e.,)0 1748 y Fj(file\045d)p Fn(\),)i(an)o(y)f (of)f(the)g(abo)o(v)o(e)g(along)g(with)f(other)h(options)e(\(for)j(the) e(trace)i(\002le)g(reader\),)g(such)f(as)g(limits)f(on)h(the)g(time)0 1805 y(range)g(or)h(node)e(numbers)h(to)g(accept,)h(or)f(e)o(v)o(en)g (a)h(shell)e(command)i(\(i.e.,)g Fj(find)28 b(.)55 b(-name)29 b('*.log')g Fn(\).)p 0 1924 1950 9 v 0 1980 a Fl(TRA)n(CE)p Fj(_)p Fl(P)o(eek)p Fj(_)p Fl(next)p Fj(_)p Fl(drawable)12 b Fn(\227)g(Peek)g(at)f(the)g(ne)o(xt)g(dra)o(wable)0 2125 y Fh(Synopsis)0 2213 y Fj(int)28 b(TRACE_Peek_ne)q(xt_d)q(raw)q (able)q(\()i(const)f(TRACE_file)h(fp,)736 2269 y(double)f(*starttime,)i (double)d(*endtime,)736 2326 y(int)g(*nt_coords,)j(int)d(*ny_coords,)i (int)e(*n_bytes)i(\))952 2613 y Fn(27)p eop %%Page: 28 28 28 27 bop 0 286 a Fh(Input)12 b(Parameter)0 374 y Fl(fp)410 b Fn(T)n(race)12 b(\002le)g(handle)0 519 y Fh(Output)e(Parameters)0 606 y Fl(starttime,)h(endtime)375 663 y Fn(time)g(range)g(for)h(dra)o (wable)0 719 y Fl(nt)p Fj(_)p Fl(coords)254 b Fn(Number)11 b(of)h(time)f(coordinates)0 775 y Fl(ny)p Fj(_)p Fl(coords)246 b Fn(Number)11 b(of)h(y)f(coordinates)0 832 y Fl(n)p Fj(_)p Fl(bytes)297 b Fn(Number)11 b(of)h(data)f(bytes)0 977 y Fh(Notes)0 1064 y Fn(This)f(routine)g(allo)o(ws)g(the)h(calling)f (code)h(to)g(allocate)g(space)g(for)h(the)e(v)o(ariable-length)g(data)h (in)g(a)g(dra)o(wable)g(before)0 1121 y(calling)f Fj(TRACE_Get_nex)q (t_dr)q(awa)q(ble)p Fn(.)18 b(The)11 b(time)g(range)g(allo)o(ws)f(the)h (SLOG2)g(algorithm)f(to)h(determine)0 1177 y(which)f(treenode)h(a)h (dra)o(wable)f(should)e(be)j(placed)f(in)f(\(which)h(may)g(in\003uence) g(where)h(in)f(memory)g(the)g(data)g(is)g(read)h(by)0 1234 y Fj(TRACE_Get_nex)q(t_dr)q(awab)q(le)p Fn(\).)p 0 1352 1950 9 v 0 1409 a Fl(TRA)n(CE)p Fj(_)p Fl(P)o(eek)p Fj(_)p Fl(next)p Fj(_)p Fl(kind)h Fn(\227)f(Determine)f(the)g(kind)f (of)h(the)g(ne)o(xt)g(record)0 1554 y Fh(Synopsis)0 1641 y Fj(TRACE_Rec_Kin)q(d_t)31 b(TRACE_Peek_next)q(_ki)q(nd\()g(const)d (TRACE_file)i(fp)e(\))0 1893 y Fh(Input)12 b(Parameter)0 1980 y Fl(fp)410 b Fn(T)n(race)12 b(\002le)g(handle)0 2125 y Fh(Retur)o(n)g(V)-5 b(alue)0 2213 y Fn(T)l(ype)11 b(of)g(ne)o(xt)g(record.)k(The)c(kind)f Fj(TRACE_EOF)p Fn(,)k(which)d(has)g(the)g(v)o(alue)f Fj(0)p Fn(,)i(is)f(returned)g(at) g(end-of-\002le.)952 2613 y(28)p eop %%Page: 29 29 29 28 bop 0 286 a Fh(Notes)0 374 y Fn(The)11 b(structure)f(and)g (ordering)g(of)h(data)g(in)f(a)h(foreign)f(trace)i(\002le)f(is)f(not)g (de\002ned.)k(This)c(routine)g(allo)o(ws)f(us)h(to)h(\002nd)f(out)g (the)0 430 y(type)h(of)g(the)g(ne)o(xt)g(record)g(and)g(then)g(use)g (the)g(appropriate)f Fj(TRACE_Get_xxx)15 b Fn(routine)10 b(to)h(read)g(it.)j(A)0 486 y(high-performance)d(implementation)f(of)h (these)g(routines)f(will)g(likely)f(use)i(b)o(uf)o(fered)g(I/O.)p 0 605 1950 9 v 0 662 a Fl(TRA)n(CE)p Fj(_)p Fl(Rec)p Fj(_)p Fl(Kind)p Fj(_)p Fl(t)i Fn(\227)e(T)l(ypes)g(of)g(records)h(in)e (a)i(trace)g(\002le)0 807 y Fh(Synopsis)0 951 y Fj(typedef)29 b(enum)g({TRACE_EOF=0,)382 1007 y(TRACE_DRAWABLE)q(,)382 1063 y(TRACE_CATEGORY)q(,)382 1120 y(TRACE_METHOD})i(TRACE_Rec_Kind_)q (t;)p 0 1345 V 0 1401 a Fl(TRA)n(CE)p Fj(_)p Fl(Set)p Fj(_)p Fl(position)11 b Fn(\227)h(Set)f(the)g(current)g(position)e(of)j (a)f(trace)h(\002le)0 1547 y Fh(Synopsis)0 1634 y Fj(void)28 b(TRACE_Set_po)q(siti)q(on\()j(TRACE_file)f(fp,)e(int64_t)h(offset)g (\))0 1885 y Fh(Input)12 b(Parameters)0 1973 y Fl(fp)410 b Fn(T)n(race)12 b(\002le)g(handle)0 2029 y Fl(offset)344 b Fn(Position)9 b(to)i(set)g(\002le)g(at)0 2238 y Fo(C)60 b(SLOG2)14 b(Output)h(API)0 2341 y Fn(The)g(SLOG2)g(Output)f(API)i(is)f (designed)g(to)g(be)g(used)g(by)g(the)h(Slog)f(program)g(to)g(create)i (Slog)e(2)g(\002les.)27 b(This)15 b(API)h(is)0 2398 y(or)o(ganized)11 b(around)f(the)h(concepts)f(de\002ned)i(in)e(Section)h(3,)h (particularly)d(the)i(tree)h(nodes)e(and)h(tree)h(directory)m(.)952 2613 y(29)p eop %%Page: 30 30 30 29 bop 71 286 a Fn(The)14 b(SLOG2)g(Output)e(API)j(does)f Fm(not)g Fn(de\002ne)h(the)f(order)g(of)h(data)f(in)g(an)g(SLOG2)g (\002le.)24 b(Ho)o(we)o(v)o(er)n(,)15 b(the)f(follo)o(wing)0 343 y(structure)j(\(see)h(also)f(Figure)h(7\))g(allo)o(ws)e(for)i(both) f(single-pass)f(creation)h(and)h(relati)o(v)o(ely)e(easy)i(read)g (access)g(to)f(the)0 399 y(resulting)9 b(\002le.)0 493 y Fl(header)114 599 y(cookie)22 b Fn(type)11 b(of)g(\002le,)h(e.g.,)g (SLOG)f(annotation)e(\002le,)j(SLOG)f(complete)g(\002le)114 672 y Fl(version)21 b Fn(to)11 b(ensure)g(compatibility)e(with)h (Display)g(program)114 746 y Fl(textlen)23 b Fn(length)10 b(of)h(follo)o(wing)e(description)g(\002eld)114 819 y Fl(description)23 b Fn(te)o(xt)16 b(string)f(describing)h(the)g(\002le) h(\(e.g.,)i(\223trace)f(of)e(a.out)h(on)f(July)g(3,)i(2000,)g(on)e(big) g(blue)g(with)214 875 y(dataset)10 b(3\224\))114 948 y Fl(\002lespec)23 b Fn(\002le)13 b(speci\002cation)e(string)h(used)g (with)f Fj(TRACE)p 1035 948 14 2 v 18 w(Open)p Fn(.)20 b(This)11 b(\002eld)i(is)f(required)g(for)h(the)g(Slog)f(annota-)214 1005 y(tion)e(format)h(and)g(optional)f(otherwise.)0 1111 y Fl(tr)o(ee)i(nodes)23 b Fn(the)11 b(slog)f(records.)k(This)d(is) f(the)h(b)o(ulk)f(of)i(the)f(data)g(in)f(the)h(\002le)0 1205 y Fl(category)g(inf)o(ormation)22 b Fn(set)11 b(of)g(cate)o(gory)g (description)e(records)0 1298 y Fl(coordinate)i(maps)23 b Fn(set)11 b(of)g(coordinate)f(maps;)h(for)g(e)o(xample,)h(for)g (process,)f(thread,)g(and)g(MPI)h(rank)f(vie)o(ws.)0 1392 y Fl(method)h(de\002nitions)23 b Fn(information)13 b(about)i(and)f(for)i(the)e(methods)h(used)f(to)h(interpret)f(and/or)g (display)g(the)h(dra)o(wable)114 1449 y(objects.)0 1543 y Fl(tr)o(ee)d(dir)o(ectory)23 b Fn(The)11 b(hierarchy)g(of)g (describing)f(the)h(tree)h(of)f(nodes)0 1636 y Fl(annotations)22 b Fn(An)o(y)11 b(user)o(-de\002ned)g(annotations)e(added)i(to)g(an)g (SLOG2)g(\002le)0 1730 y Fl(postamble)114 1836 y(category)p 284 1836 V 16 w(offset)22 b Fn(of)o(fset)11 b(from)h(end)f(to)f(cate)o (gory)i(information)114 1910 y Fl(tr)o(ee)p 191 1910 V 17 w(offset)23 b Fn(of)o(fset)10 b(from)i(end)f(back)g(to)g(be)o (ginning)e(of)j(tree)114 1983 y Fl(annote)p 248 1983 V 16 w(offset)23 b Fn(of)o(fset)11 b(from)g(the)g(end)g(to)g(the)g (annotations)114 2056 y Fl(coord)p 228 2056 V 16 w(offset)23 b Fn(of)o(fset)11 b(from)g(the)g(end)g(to)g(the)g(coordinate)f(maps)114 2129 y Fl(method)p 263 2129 V 16 w(offset)23 b Fn(of)o(fset)11 b(from)h(the)f(end)g(to)f(the)h(method)g(descriptions)71 2235 y(This)i(\002le)h(can)h(be)f(created)h(in)e(one)i(pass,)f(since)g (the)g(tree)h(information)e(is)g(added)h(at)h(the)f(end)g(of)g(the)g (\002le,)h(and)f(the)0 2291 y(of)o(fsets)f(in)h(the)g(postamble)f(allo) o(w)g(a)i(program)f(to)g(seek)g(to)g(the)g(tree)g(and)g(display)f(data) h(without)e(reading)i(through)e(the)0 2348 y(\002le.)j(The)c(tree)h (nodes)f(ha)o(v)o(e)h(\002le)f(of)o(fsets)g(in)g(them)g(\(see)h(the)f (description)f(of)h Fj(SLOG)p 1336 2348 V 18 w(Treenode)p Fn(\))j(so)d(then)g(one)g(can)g(use)0 2404 y(them)g(to)g(seek)g(to)g (speci\002c)g(frames)h(in)f(the)g(\002le.)71 2461 y(A)g(cate)o(gory)g (record)g(includes)952 2613 y(30)p eop %%Page: 31 31 31 30 bop 82 286 a Fj(category)29 b(id)f(\(small)h(int\))82 343 y(category)g(name)g(length)82 399 y(category)g(name)g(\(string\))82 456 y(shape)f(\(rectangle,)j(polygon,)e(arrow,)g(set-of-rectan)q(gles)q (,)h(etc.)f(\))327 512 y(set-of)g(rects)g(is)f(for)g("bebit)h (handling")82 569 y(color)f(\(r,g,b,alpha)q(?\))85 b(default,)30 b(can)e(be)f(changed)j(by)d(display)82 625 y(textlength)j(of)e (following)h(text)82 682 y(text)f(for)g(display)h(\(sprintf)h(format,)f (with)f(\045s's,)h(\\n's\))82 738 y(methods)g(to)f(use)g(\(methods)h (are)f(the)h(popup)f(methods)h(\(e.g.,)g(popup)g(args,)82 795 y(popup)f(source)h(code,)g(etc.\))71 901 y Fn(A)11 b(data)g(record)g(has)82 1007 y Fj(category)82 1064 y(...)55 b(\(as)28 b(in)g(slog-read)i(api\))82 1176 y(the)e(instance-speci)q (fic)j(data)d(is)g(the)g(concatenation)j(of)82 1233 y(null-terminate)q (d)f(strings,)g(to)d(be)h(merged)h(with)g(the)f(category-specif)q(ic)82 1289 y(sprintf)h(string.)56 b(Note)29 b(that)f(regardless)i(of)e(the)g (what)g(is)g(stored)h(in)82 1346 y(the)f(file,)h(what)f(is)g(presented) h(back)g(through)g(the)f(API)g(is)g(string)h(data.)71 1452 y Fn(The)9 b(coordinate)g(class)h(de\002nition)e(allo)o(ws)g(an)i (SLOG)g(\002le)g(to)g(de\002ne)g(se)o(v)o(eral)g(mappings)e(of)i(y)g (coordinate)f(\(the)h(non-)0 1509 y(time)k(coordinate\))f(to)h(an)g (inte)o(ger)g(inde)o(x)f(\(the)h(timeline)f(inde)o(x\),)i(along)e(with) g(a)h(timeline)g(label.)22 b(This)13 b(allo)o(ws)g(uni\002ed)0 1565 y(process/thread/node)e(ids)h(to)g(be)i(used)e(in)h(the)f(SLOG2)h (\002le,)h(and)f(for)g(a)g(single)f(SLOG2)h(\002le)g(to)f(pro)o(vide)h (mappings)f(to)0 1621 y(node,)h(process,)h(or)f(thread)g(vie)o(ws,)g (with)f(an)h(arbitrary)g(labeling.)19 b(If)13 b(no)g(coordinate)f (class)h(de\002ntion)f(is)g(pro)o(vided,)h(the)0 1678 y(identity)h(mapping)h(is)g(used)g(\(coordinates)g(used)g(as)h (de\002ned)g(in)f(the)h(\002le,)h(with)e(the)g(timeline)g(labels)g (de\002ned)h(by)f(the)0 1734 y(character)d(v)o(ersion)e(of)i(the)f(v)o (alue\).)71 1791 y(The)g(method)f(de\002nition)g(passes)g(to)h(the)g (in)n(v)o(ocation)f(of)h(each)h(method)e(the)h(follo)o(wing)e(three)i (v)o(alues:)57 1885 y(1.)23 b(The)11 b Fj(method)p 361 1885 14 2 v 18 w(extra)h Fn(string)e(\(e)o(v)o(ery)i(use)f(of)g(that)g (method\))57 1978 y(2.)23 b(The)15 b(cate)o(gory-speci\002ed)h Fj(extra)p 687 1978 V 17 w(data)i Fn(string)c(\(e)o(v)o(ery)i(use)g(of) g(that)f(method)g(by)g(dra)o(wable)h(objects)f(in)g(that)114 2035 y(cate)o(gory\))57 2129 y(3.)23 b(The)11 b(byte)f(string)g(on)h (the)g(dra)o(wable)g(object.)71 2222 y(F)o(or)k(e)o(xample,)h(a)f (method)g(that)f(displays)e(the)j(ar)o(guments)f(for)h(a)g(method)f (might)g(use)h(a)g(cate)o(gory-speci\002ed)f Fj(ex-)0 2279 y(tra)p 84 2279 V 17 w(data)k Fn(string)e(containing,)h(for)g(e)o (xample,)j Fj("count)29 b(=)e(\045d\\nrank)j(=)d(\045d\\ntag)i(=)f (\045d")p Fn(.)33 b(A)17 b(method)0 2335 y(that)e(pops)g(up)g(a)h (source)f(code)h(box)e(might)h(ha)o(v)o(e)h(a)g Fj(method)p 1025 2335 V 18 w(extra)h Fn(string)e(that)g(contains)f(the)h(name)h(of) g(the)f(e)o(x)o(e-)0 2392 y(cutable)c(\002le;)h(the)g(cate)o (gory-speci\002ed)f(string)g(would)f(be)i(empty)m(,)g(and)g(the)f(byte) g(string)g(of)h(the)f(dra)o(wable)h(object)f(would)0 2448 y(contain)f(the)h(address)g(in)f(the)h(program)h(where)f(the)g (dra)o(wable)g(object)f(was)h(logged.)952 2613 y(31)p eop %%Page: 32 32 32 31 bop 71 286 a Fn(Methods)9 b(are)i(in)n(v)o(oked)d(in)i(the)f (order)i(the)o(y)e(are)i(speci\002ed)f(to)f(the)h(cate)o(gory)m(.)k (The)o(y)c(return)g(the)g(number)g(of)g(bytes)f(that)0 343 y(the)o(y)i(ha)o(v)o(e)h(read)h(from)f(the)f(byte)g(string.)k(The)c (byte)g(string)f(passed)h(to)h(each)g(method)f(always)f(starts)h(at)g (the)h(ne)o(xt)f(unused)0 399 y(byte.)71 456 y(The)f(de\002nition)f (\002eld)i(in)f(a)h(method)g(speci\002cation)e(may)j(be)e(used)h(to)f (specify)g(the)h(location)e(of)i(a)g(Ja)o(v)o(a)g(class)f(or)h(DLL)0 512 y(that)g(implements)f(the)h(method,)g(or)g(a)h(URL)f(of)g(a)h(page) f(that)g(describes)f(the)h(beha)o(vior)f(of)i(the)f(method.)p 0 569 1950 9 v 0 625 a Fl(SLOG2)p Fj(_)p Fl(Write)p Fj(_)p Fl(category)i Fn(\227)f(Add)f(a)g(cate)o(gory)g(description)f(to)g(an)i (Slog)e(\002le)0 768 y Fh(Synopsis)0 856 y Fj(int)28 b(SLOG2_Write_c)q(ateg)q(ory)q(\()i(const)f(SLOG2_File)h(fp,)655 912 y(const)e(SLOG2_Categor)q(y_h)q(ead)j(*head,)655 968 y(int)d(category_text_l)q(eng)q(th,)655 1025 y(const)g(char)h (category_text[])q(,)655 1081 y(const)f(char)h(methods[][],)655 1138 y(const)f(char)h(method_extra[][)q(])h(\))0 1375 y Fh(Input)12 b(Parameters)0 1462 y Fl(fp)410 b Fn(Slog)11 b(\002le)g(handle)g(+)g(head)g(-)g(Contains)f(basic)h(cate)o(gory)g (info)g(\(see)g(the)g(description)f(of)450 1518 y Fj(SLOG2_Categor)q (y_he)q(ad_t)q Fn(\))0 1561 y Fl(category)p Fj(_)p Fl(text)p Fj(_)p Fl(length)375 1618 y Fn(Number)h(of)h(characters)f(in)g Fj(category_text)0 1674 y Fl(category)p Fj(_)p Fl(text)183 b Fn(T)m(e)o(xt)11 b(describing)f(the)g(cate)o(gory)m(,)i(suitable)e (for)h(use)g(in)g(a)g(le)o(gend)0 1731 y Fl(methods)286 b Fn(Null-terminated)10 b(array)h(of)h(null-terminated)d(strings)h (describing)g(methods)g(used)h(to)450 1787 y(process)g (record-speci\002c)g(data.)0 1832 y Fl(method)p Fj(_)p Fl(extra)176 b Fn(Extra)11 b(data)g(for)g(each)h(method.)0 1975 y Fh(Notes)0 2062 y Fn(A)f Fj(category_inde)q(x)j Fn(of)e Fj(-1)f Fn(may)h(be)f(used)g(to)g(indicate)f(that)h(no)f(more)i (cate)o(gory)f(descriptions)e(will)i(be)g(made.)0 2119 y(Once)g(that)g(has)g(been)g(done,)g(it)g(is)f(in)n(v)o(alid)g(to)h (call)g Fj(SLOG2_Write_ca)q(tego)q(ry)k Fn(on)10 b(that)h(\002le)g (handle.)0 2175 y(Methods)f(pro)o(vide)h(a)h(way)e(for)i(a)f(cate)o (gory)g(to)g(specify)g(ho)o(w)f(to)h(process)g(data)g(that)f(each)i (record)f(pro)o(vides.)j(F)o(or)0 2232 y(e)o(xample,)e(with)e(each)i (record)f(generated)g(by)g(a)h(call)f(to)f(a)i(routine,)e(there)i (could)e(be)h(data)g(consisting)e(of)i(the)g(program)0 2288 y(counter)n(,)g(follo)o(wing)e(by)i(the)g(ar)o(guments)g(to)g(the) f(routine.)k(The)d(cate)o(gory)g(could)f(specify)h(two)f(methods)g(for) i(this;)d(the)0 2345 y(\002rst)i(would)f(read)h(the)g(program)g (counter)g(v)o(alue)g(and)g(pop)f(up)h(a)h(source-code)f(bro)o(wser;)f (the)h(second)f(method)h(could)0 2401 y(pop)g(up)f(a)i(box)e (containing)g(te)o(xt)h(listing)e(the)i(ar)o(guments)f(to)h(the)g (routine)f(\(by)h(name\).)k(More)d(comple)o(x)f(methods,)g(for)0 2458 y(e)o(xample,)h(could)e(pop)h(up)g(graphical)f(displays)g(of)h (array)h(ar)o(guments)e(to)h(the)g(routine.)952 2613 y(32)p eop %%Page: 33 33 33 32 bop 0 286 a Fh(Module)0 374 y Fn(SLOG2)11 b(Output)p 0 492 1950 9 v 0 549 a Fl(SLOG2)p Fj(_)p Fl(Write)p Fj(_)p Fl(coord)p Fj(_)p Fl(class)i Fn(\227)f(Write)e(out)h(a)g(coordinate)g (class)f(description)0 694 y Fh(Synopsis)0 781 y Fj(int)28 b(SLOG2_Write_c)q(oord)q(_cl)q(ass\()j(const)e(SLOG2_File)h(fp,)e (const)g(char)h(class_name[],)736 838 y(int)f(ncoords,)736 894 y(const)h(int)f(in_coord_val[)q(],)i(int)f(out_coord_val[])q(,)736 951 y(const)g(char)f(coord_label[)q(][])j(\))0 1202 y Fh(Input)12 b(Parameters)0 1289 y Fl(fp)410 b Fn(Slog)11 b(\002le)g(handle)0 1346 y Fl(class)p Fj(_)p Fl(name)225 b Fn(Name)12 b(of)f(the)g(coordinate)f(class)0 1402 y Fl(ncoords)296 b Fn(Number)11 b(of)h(coordinates)d(in)i Fj(in_coord_val)k Fn(and)c Fj(out_coord_val)0 1459 y Fl(in)p Fj(_)p Fl(coord)p Fj(_)p Fl(val,)g(out)p Fj(_)p Fl(coord)p Fj(_)p Fl(val)375 1515 y Fn(Coordinate)f(pairs)h(to)g (match.)j(F)o(or)e Fj(j)g Fn(between)f Fj(0)g Fn(and)g Fj(ncoords-1)p Fn(,)j(the)d(v)o(alue)g(of)375 1572 y Fj(in_coord_val[)q(j])p Fn(,)k(speci\002ed)c(as)g(a)h Fj(y)27 b Fn(coordinate)10 b(in)h(a)h(record,)f(is)g(mapped)g(to)g(the) 375 1628 y(v)o(alue)g Fj(out_coord_val[j)q(])p Fn(.)0 1670 y Fl(coord)p Fj(_)p Fl(label)218 b Fn(T)m(e)o(xt)11 b(describing)f(the)g(coordinate,)h(suitable)f(for)h(use)g(in)g(a)g(le)o (gend.)0 1816 y Fh(Notes)0 1903 y Fn(This)f(routine)g(allo)o(ws)g(an)h (slog)g(\002le)g(to)g(de\002ne)g(se)o(v)o(eral)h(dif)o(ferent)e(vie)o (ws)h(of)g(the)g(data.)j(F)o(or)e(e)o(xample,)g(a)f(record)h(may)0 1959 y(contain,)f(for)g(the)g Fj(y)g Fn(coordinate,)g(the)g(node,)g (process,)g(and)g(thread)g(id)g(that)f(generated)h(the)g(record.)k (Coordinate)10 b(classes)0 2016 y(allo)o(w)g(an)h(slog)g(\002le)g(to)g (de\002ne)g(dif)o(ferent)g(ways)f(to)h(map)h(the)f(node/process/thread) d(id)j(into)f(a)i Fj(y)f Fn(coordinate.)j(Using)0 2072 y(three)d(calls)g(to)g(this)f(routine,)g(an)h(Slog)g(\002le)h(could)e (de\002ne)h(a)h(node,)f(process,)g(and)g(thread)g(vie)o(w)g(of)g(the)g (data.)j(The)0 2129 y Fj(coord_label)g Fn(allo)o(ws)c(a)i(display)d (program,)j(such)f(as)g(Jumpshot,)f(to)h(sho)o(w)f(the)h(user)g(what)g (dif)o(ferent)f(coordinate)0 2185 y(vie)o(ws)g(are)i(a)o(v)o(ailable.)0 2241 y(If)g(no)e(coordinate)h(class)f(is)h(de\002ned,)h(a)f(default)f (coordinate)h(class)f(is)h(de\002ned)g(that)g(pro)o(vides)f(the)h (identity)e(mapping)0 2298 y(\(the)i(output)f(coordinate)g(v)o(alues)g (are)i(the)f(same)h(as)f(the)g(input)f(v)o(alues;)g(e.g.,)i(the)f Fj(y)h Fn(coordinates)d(in)i(the)g(dra)o(wable)0 2354 y(objects)f(are)i(used)f(directly\).)0 2411 y(Note)g(that)f(the)h(code) g(that)g(makes)g(use)g(of)g(the)g(coordinate)f(map)i(needs)f(to)f(pro)o (vide)h(an)g(ef)o(\002cient)g(way)g(to)g(locate)g(the)0 2467 y Fj(in_coord_val)k Fn(so)10 b(that)h(the)g(correct)g Fj(out_coord_va)q(l)j Fn(can)e(be)f(found.)j(F)o(or)d(e)o(xample,)h(a)g (hash)f(function)e(may)952 2613 y(33)p eop %%Page: 34 34 34 33 bop 0 286 a Fn(be)11 b(used.)j(As)d(a)g(special)g(case,)h(there)f (may)h(be)f(other)g(prede\002ned)g(maps)g(besides)g(the)g(identity)e (map)i(\(e.g.,)i(a)e(simple)0 343 y(thread)p Fj(_)p Fn(id)g(to)f(out)p Fj(_)p Fn(coord)p Fj(_)p Fn(v)o(al)g(mapping\).)0 488 y Fh(Rationale)0 575 y Fn(One)h(reason)g(for)g(this)f(routine)h(is)f (that)h(the)g(thread-vie)o(w)f(is)h(dif)o(\002cult)f(for)h(a)h(display) e(program)h(to)g(manage,)h(particularly)0 632 y(if)f(threads)g(are)h (created)f(and)g(destroyed)f(frequently)m(.)j(The)e(program)h(in)e(the) h(best)g(position)e(to)h(create)i(a)g(mapping)e(of)0 688 y(thread)h(ids)f(to)h Fj(y)h Fn(coordinates)e(is)g(the)h(program)h (that)e(creates)i(the)f(Slog2)f(\002le,)i(since)f(it)f(must)h(read)h(e) o(v)o(ery)f(record.)0 834 y Fh(Question)0 921 y Fn(This)f(assumes)h (that)f(we)h(can)h(create)g(a)f(single)f(int)g(containing)f(the)i (original)f Fj(y)h Fn(coordinate.)i(F)o(or)f(a)f(node/process/thread)0 977 y(v)o(alue,)g(we)g(might)g(ha)o(v)o(e)g(a)h(more)g(than)e(an)i (int')n(s)d(worth)h(of)i(bits.)h(The)e(reason)g(that)f(we)i(lea)o(v)o (e)f(it)g(at)g(an)g(int)g(it)f(that)h(there)0 1034 y(will)f(ne)o(v)o (er)i(be)f(more)h(than)e(an)i(int')n(s)d(worth)h(of)h Fm(signi\002cant)e Fn(bits;)h(that)g(is,)h(there)h(will)e(ne)o(v)o(er)h (be)h(more)f(than)g(4)g(billion)0 1090 y(distinct)e Fj(y)j Fn(v)o(alues.)0 1235 y Fh(Module)0 1323 y Fn(SLOG2)f(Output)p 0 1441 1950 9 v 0 1498 a Fl(SLOG2)p Fj(_)p Fl(Write)p Fj(_)p Fl(dir)j Fn(\227)d(Write)g(an)h(entire)e(Slog2)h(tree)g (directory)0 1643 y Fh(Synopsis)0 1730 y Fj(int)28 b(SLOG2_Write_d)q (ir\()j(const)d(SLOG2_File)i(fp,)545 1787 y(const)f(SLOG2_Treedir)q (_nod)q(e)h(dir[],)545 1843 y(int)f(n_nodes)g(\))0 2095 y Fh(Input)12 b(Parameters)0 2182 y Fl(fp)410 b Fn(slog2)10 b(\002le)h(handle)0 2238 y Fl(dir)392 b Fn(T)n(ree)12 b(directory)0 2295 y Fl(n)p Fj(_)p Fl(nodes)287 b Fn(Number)11 b(of)h(nodes)e(in)h Fj(dir)952 2613 y Fn(34)p eop %%Page: 35 35 35 34 bop 0 286 a Fh(Module)0 374 y Fn(SLOG2)11 b(Output)p 0 492 1950 9 v 0 549 a Fl(SLOG2)p Fj(_)p Fl(Write)p Fj(_)p Fl(drawable)p Fj(_)p Fl(object)j Fn(\227)e(Add)f(a)g(dra)o(wable)g (object)g(to)f(an)i(slog)e(\002le)0 694 y Fh(Synopsis)0 781 y Fj(int)28 b(SLOG2_Write_d)q(rawa)q(ble)q(_obj)q(ect\()j(const)e (SLOG2_File)h(fp,)600 838 y(double)f(starttime,)h(double)f(endtime,)600 894 y(int)f(category_inde)q(x,)600 951 y(int)g(nt_coords,)i(const)f (double)g(t_coord[],)600 1007 y(int)f(ny_coords,)i(const)f(int)f (y_coord[],)600 1063 y(int)g(ntext,)h(const)g(char)f(text[])h(\))0 1315 y Fh(Input)12 b(Parameters)0 1402 y Fl(fp)410 b Fn(Slog)11 b(\002le)g(handle)0 1459 y Fl(starttime,)g(endtime)375 1515 y Fn(time)g(range)g(for)h(object)0 1572 y Fl(category)p Fj(_)p Fl(index)375 1628 y Fn(Cate)o(gory)f(that)g(this)f(object)g (belongs)g(to)0 1685 y Fl(nt)p Fj(_)p Fl(coords)254 b Fn(Number)11 b(of)h(time)f(\()p Fj(x)p Fn(\))h(coordinates.)h(May)e(be) h Fj(0)f Fn(if)g Fj(starttime)30 b Fn(and)11 b Fj(endtime)i Fn(are)450 1741 y(suf)o(\002cient)0 1777 y Fl(t)p Fj(_)p Fl(coords)279 b Fn(T)n(ime)12 b(coordinates)0 1833 y Fl(ny)p Fj(_)p Fl(coords)246 b Fn(Number)11 b(of)h(y)f(coordinates.)i (Must)d(be)i(at)f(least)g Fj(1)p Fn(.)0 1890 y Fl(y)p Fj(_)p Fl(coord)289 b Fn(Y)11 b(coordinates)0 1946 y Fl(ntext)352 b Fn(Number)11 b(of)h(bytes)e(of)h(data)g(for)h(this)e (object.)j(May)f(be)f Fj(0)0 2002 y Fl(text)377 b Fn(Data)11 b(bytes)f(for)i(this)e(object.)j(This)e(data)g(is)f(input)g(to)h(the)g (methods)f(de\002ned)h(by)g(the)450 2059 y(cate)o(gory)m(.)0 2194 y Fh(Notes)0 2281 y Fn(The)g Fj(y)h Fn(v)o(alues)e(may)i(be)f (simple)g(v)o(alues)f(between)h Fj(0)g Fn(and)g(a)h(small)f(inte)o(ger) g(or)g(the)o(y)g(may)g(be)h(more)g(complicated)0 2337 y(inte)o(gers,)f(representing,)f(for)i(e)o(xample,)g(a)f (node/process/thread)e(id)i(tuple.)i(In)f(the)e(latter)h(case,)h(one)f (or)g(more)0 2394 y(coordinate)f(maps)i(should)d(be)i(de\002ned)h(with) e Fj(SLOG2_Write_co)q(ord_)q(clas)q(s)p Fn(.)952 2613 y(35)p eop %%Page: 36 36 36 35 bop 0 286 a Fh(Module)0 374 y Fn(SLOG2)11 b(Output)p 0 492 1950 9 v 0 549 a Fl(SLOG2)p Fj(_)p Fl(Write)p Fj(_)p Fl(end)p Fj(_)p Fl(treenode)k Fn(\227)d(End)e(writing)g(a)h(tree)h (node)0 694 y Fh(Synopsis)0 781 y Fj(int)28 b(SLOG2_Write_e)q(nd_t)q (ree)q(node)q(\()i(const)f(SLOG2_File)h(fp)e(\))0 1033 y Fh(Input)12 b(Parameter)0 1120 y Fl(fp)410 b Fn(Slog)11 b(\002le)g(handle)0 1265 y Fh(Module)0 1352 y Fn(SLOG2)g(Output)0 1498 y Fh(Question)0 1585 y Fn(Should)f(this)g(return)h(a)h(position)d (or)i(a)g(length)f(for)i(the)f(directory?)p 0 1704 V 0 1760 a Fl(SLOG2)p Fj(_)p Fl(Write)p Fj(_)p Fl(header)j Fn(\227)e(Write)f(the)g(Slog2)f(\002le)i(header)0 1905 y Fh(Synopsis)0 1993 y Fj(int)28 b(SLOG2_Write_h)q(eade)q(r\()j(const)d (SLOG2_File)i(fp,)600 2049 y(const)f(char)f(description[])j(\))0 2301 y Fh(Input)12 b(Parameters)0 2388 y Fl(fp)410 b Fn(Slog)11 b(\002le)g(handle)0 2444 y Fl(description)233 b Fn(Null)10 b(terminated)h(description)e(te)o(xt)952 2613 y(36)p eop %%Page: 37 37 37 36 bop 0 286 a Fh(Notes)0 374 y Fn(This)10 b(routine)g(should)g(be)h (called)g(before)h(an)o(y)f(other)g(slog2)e(output)h(routines.)j(This)d (v)o(ersion)h(also)f(writes)h(the)g(cookie)0 430 y(and)g(v)o(ersion)f (number)i(of)f(the)g(library)f(to)h(the)g(\002le)g(header)n(.)0 575 y Fh(Questions)0 663 y Fn(If)h(we)f(require)g(that)g(this)f(be)h (called)g(\002rst,)g(should)f(we)h(mer)o(ge)h(it)f(with)f(Open?)0 808 y Fh(Module)0 895 y Fn(SLOG2)h(Output)p 0 1014 1950 9 v 0 1070 a Fl(SLOG2)p Fj(_)p Fl(Write)p Fj(_)p Fl(method)p Fj(_)p Fl(desc)k Fn(\227)c(Add)g(a)h(method)e(description)g(to)g(an)i (Slog)e(\002le)0 1216 y Fh(Synopsis)0 1303 y Fj(int)28 b(SLOG2_Write_m)q(etho)q(d_d)q(esc\()j(const)e(SLOG2_File)h(fp,)736 1359 y(int)e(ntext,)h(const)g(char)f(text[],)736 1416 y(const)h(char)f(common_extra)q([],)736 1472 y(const)h(char)f (definition[])j(\))0 1724 y Fh(Input)12 b(Parameters)0 1811 y Fl(fp)410 b Fn(Slog)11 b(\002le)g(handle)0 1867 y Fl(ntext)352 b Fn(Number)11 b(of)h(characters)f(in)g Fj(text)0 1924 y Fl(text)377 b Fn(name)12 b(of)f(the)g(method)0 1980 y Fl(common)p Fj(_)p Fl(extra)375 2037 y Fn(Common)h(data)f(used)f (by)h(this)f(method)0 2093 y Fl(de\002nition)266 b Fn(De\002nition)10 b(of)h(the)g(method.)j(This)c(may)m(,)i(for)f(e)o(xample,)h(be)g(the)e (URL)i(for)f(the)g(Ja)o(v)o(a)g(class)450 2149 y(that)g(implements)f (the)h(method.)0 2284 y Fh(Notes)0 2371 y Fn(This)f(is)h(intended)f(to) g(pro)o(vide)h(a)h(common)f(method)g(description)e(for)i(methods)g (that)f(are)i(used)f(by)g(man)o(y)g(cate)o(gory)0 2428 y(descriptions.)h(E.g.,)g(the)f(source-code)g(bro)o(wser)g(pop)f(up)h (method)g(needs)g(the)f(name)i(and)f(location)f(of)h(the)g(e)o(x)o (ecutable)0 2484 y(and)g(the)g(location)f(of)h(the)g(source)g(\002les,) g(along)g(with)f(the)h(name)h(of)f(the)g(program)g(to)g(\002nd)g(the)g (correct)g(point)f(in)h(the)952 2613 y(37)p eop %%Page: 38 38 38 37 bop 0 286 a Fn(source)11 b(\002le.)k(Rather)c(than)g(ha)o(v)o(e)g Fm(e)o(very)h Fn(cate)o(gory)g(description)d(include)h(this)g (information,)h(this)f(routine)g(allo)o(ws)g(a)0 343 y(named)i(method)e(to)h(share)g(data)g(across)g(all)g(cate)o(gories.)0 488 y Fh(Module)0 575 y Fn(SLOG2)g(Output)0 720 y Fh(Question)0 807 y Fn(Do)g(we)g(need)g Fj(ntext)p Fn(,)j(or)d(should)e(we)j(assume)f (null-terminated)f(strings?)p 0 926 1950 9 v 0 983 a Fl(SLOG2)p Fj(_)p Fl(Write)p Fj(_)p Fl(start)p Fj(_)p Fl(tr)o(eenode)15 b Fn(\227)d(Be)o(gin)f(writing)f(a)h(tree)h(node)0 1128 y Fh(Synopsis)0 1215 y Fj(int)28 b(SLOG2_Write_s)q(tart)q(_tr)q (eeno)q(de\()j(const)d(SLOG2_File)i(fp)e(\))0 1465 y Fh(Input)12 b(Parameter)0 1552 y Fl(fp)410 b Fn(Slog)11 b(\002le)g(handle)0 1697 y Fh(Notes)0 1784 y Fn(This)f(routine)g(is)h (called)g(before)g(writing)f(the)h(contents)f(of)h(a)h(single)e(tree)h (node.)j(When)d(the)g(treenode)g(is)f(complete,)0 1840 y Fj(SLOG2_Write_e)q(nd_t)q(reen)q(ode)15 b Fn(must)c(be)g(called.)0 1986 y Fh(Module)0 2073 y Fn(SLOG2)g(Output)0 2218 y Fh(Question)0 2305 y Fn(Should)f(this)g(return)h(a)h(position)d(\()p Fj(int64_t)p Fn(\))k(for)e(the)g(directory?)0 2361 y(Currently)m(,)g (there)g(are)h(no)f(routines)f(for)h(writing)f(the)h(local)f(cate)o (gory)i(or)f(coordinate)f(map)i(information)e(\(local)h(as)g(in)0 2418 y(local)g(to)f(the)h(treenode\).)j(Do)d(we)h(need)f(them?)952 2613 y(38)p eop %%Page: 39 39 39 38 bop 0 286 a Fo(D)60 b(SLOG2)14 b(Input)i(API)0 390 y Fn(The)11 b(SLOG2)g(Input)f(API)i(is)e(used)h(to)g(read)g(an)h (Slog)e(\002le,)i(and)f(is)g(intended)f(for)h(use)g(by)g(programs)g (such)g(as)g(Jumpshot.)71 446 y(This)f(list)g(is)g(incomplete,)h(and)g (does)g(not)f(match)i(all)f(the)f(capabilities)g(of)h(the)g(slog2)f (output)f(api.)p 0 503 1950 9 v 0 559 a Fl(SLOG2)p Fj(_)p Fl(Close)j Fn(\227)g(Close)e(an)i(Slog)e(2)i(\002le)0 705 y Fh(Synopsis)0 792 y Fj(int)28 b(SLOG2_Close\()j(SLOG2_File)f(*fp) e(\))0 1043 y Fh(Input)12 b(Parameter)0 1131 y Fl(fp)410 b Fn(Pointer)11 b(to)f(an)i(Slog)e(2)h(\002le)h(handle.)0 1276 y Fh(Notes)0 1363 y Fj(fp)g Fn(is)f(set)f(to)h(null)f(by)h(this)f (routine.)p 0 1482 V 0 1538 a Fl(SLOG2)p Fj(_)p Fl(Get)p Fj(_)p Fl(drawable)p Fj(_)p Fl(text)k Fn(\227)e(Get)f(a)g(te)o(xt)g (string)f(describing)g(a)h(particular)g(dra)o(wable)g(object)0 1684 y Fh(Synopsis)0 1771 y Fj(void)28 b(SLOG2_Get_dr)q(awab)q(le_)q (text)q(\()i(SLOG2_File)g(fp,)764 1827 y(int)e(category,)h(const)g (char)f(*drawable_te)q(xt,)764 1884 y(char)g(*instance_tex)q(t,)i (const)f(int)f(text_max)i(\))0 2135 y Fh(Input)12 b(Parameters)0 2222 y Fl(fp)410 b Fn(Slog)11 b(2)g(\002le)g(handle)0 2279 y Fl(category)283 b Fn(Cate)o(gory)11 b(inde)o(x)g(of)g(dra)o (wable)0 2335 y Fl(drawable)p Fj(_)p Fl(text)168 b Fn(T)m(e)o(xt)11 b(from)h(dra)o(wable)0 2392 y Fl(text)p Fj(_)p Fl(max)266 b Fn(Maximum)12 b(size)f(of)g Fj(instance_text)952 2613 y Fn(39)p eop %%Page: 40 40 40 39 bop 0 286 a Fh(Output)10 b(Parameter)0 374 y Fl(instance)p Fj(_)p Fl(text)191 b Fn(T)m(e)o(xt)11 b(describing)f(this)g(particular) g(dra)o(wable,)h(as)h(formatted)f(acording)f(to)h(the)g(rules)f(of)i (the)450 430 y(cate)o(gory)m(.)0 566 y Fh(Question)0 653 y Fn(Is)f(this)f(superceeded)h(by)g(the)g(general)g(cate)o(gory)g (method)g(approach,)g(or)h(is)e(this)g(an)i(important)e(special)g (case?)15 b(E.g.,)d(is)0 709 y(this)e(basically)g(the)h(default)f (method)h(case?)p 0 828 1950 9 v 0 884 a Fl(SLOG2)p Fj(_)p Fl(Get)p Fj(_)p Fl(header)j Fn(\227)e(Read)g(the)f(header)g(of)h(an)f (Slog)g(2)g(\002le)0 1030 y Fh(Synopsis)0 1117 y Fj(int)28 b(SLOG2_Get_hea)q(der\()j(const)e(SLOG2_File)h(fp,)573 1173 y(char)e(description[])q(,)i(int)e(maxdesclen,)573 1230 y(int)g(*version)h(\))0 1481 y Fh(Input)12 b(Parameters)0 1568 y Fl(fp)410 b Fn(Slog)11 b(2)g(\002le)g(handle)0 1625 y Fl(maxdesclen)225 b Fn(Length)10 b(of)h(the)g(array)h Fj(description)0 1770 y Fh(Output)e(Parameters)0 1857 y Fl(description)233 b Fn(Character)12 b(string)e(describing)g(the)h (SLOG)g(\002le)0 1914 y Fl(version)308 b Fn(V)-5 b(ersion)10 b(number)h(of)h(SLOG2)e(\002le)0 2059 y Fh(Retur)o(n)i(V)-5 b(alue)0 2146 y Fn(Zero)11 b(on)g(success.)j(If)d Fj(maxdesclen)j Fn(is)d(too)g(small)f(to)h(hold)f(the)h(description,)f(the)h(return)g (v)o(alue)g(is)f(the)h(ne)o(gati)o(v)o(e)g(of)0 2203 y(the)g(length)f(needed.)k(A)d(positi)o(v)o(e)f(v)o(alue)g(is)h(a)h (standard)e(Unix)g Fj(errno)j Fn(v)o(alue)e(corresponding)e(to)i(the)g (error)n(.)952 2613 y(40)p eop %%Page: 41 41 41 40 bop 0 286 a Fh(Question)0 374 y Fn(Do)11 b(we)g(want)g(a)g (routine)f(that)h(returns)f(v)o(alues)h(of)g Fj(maxdesclen)j Fn(\(and)d(the)g(size)g(of)g(the)g(directory)g(tree)g(etc.\)?)0 430 y(What)g(error)g(v)o(alue)g(do)g(we)g(return)g(if)g(the)g(v)o (ersion)g(number)g(in)g(the)g(\002le)g(doesn')o(t)f(match)i(the)f(one)g (that)f(the)h(library)g(is)0 486 y(e)o(xpecting?)p 0 605 1950 9 v 0 662 a Fl(SLOG2)p Fj(_)p Fl(Get)p Fj(_)p Fl(next)p Fj(_)p Fl(category)j Fn(\227)e(Read)f(the)g(ne)o(xt)g(cate)o (gory)g(description)0 806 y Fh(Synopsis)0 893 y Fj(int)28 b(SLOG2_Get_nex)q(t_ca)q(teg)q(ory\()j(const)e(SLOG2_File)h(fp,)736 950 y(SLOG_Categor)q(y_he)q(ad_)q(t)g(*head,)300 1006 y(char)e(*text_base,)j(int)d(*text_pos,)i(const)e(int)g(max_text,)300 1063 y(char)g(*legend_base)q(,)i(int)e(*legend_pos,)300 1119 y(const)h(int)f(max_legend)i(\))0 1277 y Fn(cate)o(gory)p Fj(_)p Fn(inde)o(x)11 b Fg(=)g Fn(-1)h(means)f(no)g(more)h(cate)o (gories)0 1421 y Fh(Notes)0 1509 y Fn(This)e(routine)g(is)h(structured) f(this)g(way)h(to)g(gi)o(v)o(e)f(the)h(maximum)h(\003e)o(xibility)d(in) i(reading)g(the)g(data.)j(F)o(or)e(e)o(xample,)g(one)0 1565 y(approach)f(could)f(de\002ne)i(a)f(cate)o(gory)g(structure,)g (such)g(as)82 1655 y Fj(typedef)29 b(struct)g({)191 1711 y(SLOG2_Category)q(_he)q(ad_t)i(head;)191 1768 y(char)d(text[MAX_TEX)q (T];)191 1824 y(char)g(legend[MAX_L)q(EGEN)q(D];)109 1880 y(})g(Category_t;)0 1970 y Fn(and)11 b(call)g(this)f(routine)g(as) 82 2060 y Fj(Category_t)30 b(*p;)82 2116 y(int)e(pos)g(=)g(0,)f(lpos)i (=)e(0;)82 2173 y(p)g(=)h(\(Category_t)i(*\)malloc\()g(sizeof\(Categor) q(y_t)q(\))g(\);)82 2229 y(SLOG2_Get_next)q(_cat)q(ego)q(ry\()h(fp,)d (&p->head)709 2286 y(p->text,)i(&pos,)e(MAX_TEXT,)764 2342 y(p->legend,)i(&lpos,)f(MAX_LEGEND)h(\);)0 2432 y Fn(Alternately)m(,)10 b(the)h(cate)o(gories)g(can)h(be)f(stored)f(in) h(common)g(storage,)g(particularly)f(for)i(the)f(te)o(xt)g(and)g(le)o (gend.)i(F)o(or)0 2488 y(e)o(xample,)952 2613 y(41)p eop %%Page: 42 42 42 41 bop 27 286 a Fj(typedef)29 b(struct)g({)136 343 y(SLOG2_Catego)q(ry_h)q(ead)q(_t)h(head;)136 399 y(int)e(text_pos,)i (text_len,)g(legend_pos,)g(legend_len)g(})136 456 y(Category_t;)82 560 y(Category_t)g(p[MAX_CATEGORY)q(];)82 616 y(char)192 b(text[MAX_TOTAL)q(_TEX)q(T],)31 b(legend[MAX_LEG)q(END_)q(TEX)q(T];)82 672 y(int)d(pos)g(=)g(0,)f(lpos)i(=)e(0;)82 729 y(int)h(catnum;)82 785 y(...)82 842 y(p[catnum].text)q(_pos)j(=)d(pos;)82 898 y(p[catnum].lege)q(nd_p)q(os)j(=)c(lpos;)82 955 y(SLOG2_Get_next)q (_cat)q(ego)q(ry\()k(fp,)d(&p[catnum].hea)q(d,)709 1011 y(text,)h(&pos,)f(MAX_TOTAL_TE)q(XT,)764 1068 y(legend,)h(&lpos,)g (MAX_LEGEND_TEX)q(T)h(\);)82 1124 y(p[catnum].text)q(_len)h(=)d(pos)g (-)f(p[catnum].tex)q(t_p)q(os;)82 1181 y(p[catnum].lege)q(nd_l)q(en)k (=)c(lpos)h(-)g(p[catnum].leg)q(end_)q(pos;)82 1237 y(catnum)h(++;)0 1341 y Fn(The)11 b(reason)g(for)g(this)f(\003e)o(xibility)g(is)h(to)f (allo)o(w)h(\002x)o(ed-length)f(representations)f(for)j(most)f(of)g(a)g (cate)o(gory)h(and)f(allo)o(w)f(the)0 1397 y(code)h(reading)g(the)g (slog)f(2)h(\002le)g(to)g(decide)g(where)h(to)e(place)i(the)e(v)o (ariable-length)g(data.)0 1542 y Fh(Rationale)0 1629 y Fn(The)h Fj(SLOG_Category)q(_hea)q(d_t)k Fn(pro)o(vides)10 b(a)i(reasonable)e(comprimise)h(between)g(specifying)f(each)i(element)f (of)0 1686 y(the)g(head)g(\(e.g.,)i(six)d(separate)h(ar)o(guments)g (for)h(each)f(of)g(the)g(\002elds)g(in)g(the)g Fj(SLOG_Category_)q (head)q(_t)p Fn(\))k(and)0 1742 y(de\002ning)10 b(a)i(single)e(cate)o (gory)h(structure)f(that)h(contains)f(the)h(te)o(xt)g(and)g(le)o(gend)f (\002elds.)p 0 1861 1950 9 v 0 1917 a Fl(SLOG2)p Fj(_)p Fl(Get)p Fj(_)p Fl(next)p Fj(_)p Fl(drawable)k Fn(\227)e(Get)f(the)g (ne)o(xt)g(dra)o(wable)g(object)0 2062 y Fh(Synopsis)0 2149 y Fj(int)28 b(SLOG2_Get_nex)q(t_dr)q(awa)q(ble\()j(const)e (SLOG2_File)h(fp,)736 2206 y(double)f(*starttime,)i(double)d(*endtime,) 736 2262 y(int)g(*category_in)q(dex)q(,)736 2319 y(int)g(*ncoords,)i (double)f(*coord_base,)736 2375 y(int)f(*coord_pos,)736 2432 y(const)h(int)f(coord_max,)736 2488 y(char)h(*text_base,)h(int)e (*text_pos,)952 2613 y Fn(42)p eop %%Page: 43 43 43 42 bop 736 286 a Fj(const)29 b(int)f(text_max)i(\))0 538 y Fh(Input)12 b(Parameters)0 625 y Fl(fp)410 b Fn(Slog)11 b(2)g(\002le)g(handle)0 682 y Fl(coord)p Fj(_)p Fl(base)226 b Fn(Pointer)11 b(to)f(storage)h(for)g(coordinates)f(\(see)i Fj(coord_pos)p Fn(\))0 738 y Fl(coord)p Fj(_)p Fl(max)228 b Fn(Size)12 b(of)f Fj(coord_base)0 795 y Fl(text)p Fj(_)p Fl(base)264 b Fn(Pointer)11 b(to)f(storage)h(for)g(te)o(xt)g(\(see)h Fj(text_base)p Fn(\))0 851 y Fl(text)p Fj(_)p Fl(max)266 b Fn(Size)12 b(of)f Fj(text_base)0 996 y Fh(In/Out)g(Parameters)0 1083 y Fl(coord)p Fj(_)p Fl(pos)0 1140 y(text)p Fj(_)p Fl(post)0 1285 y Fh(Output)f(Parameters)0 1372 y Fl(starttime,endtime) 375 1429 y Fn(Be)o(ginning)g(and)h(endtime)g(time)g(of)g(dra)o(wable)0 1485 y Fl(category)p Fj(_)p Fl(index)375 1542 y Fn(Cate)o(gory)g(that)g (this)f(dra)o(wable)h(belongs)e(to)0 1598 y Fl(ncoords)296 b Fn(Number)11 b(of)h(coordinates)d(for)j(this)e(dra)o(wable)0 1744 y Fh(Notes)p 0 1893 1950 9 v 0 1949 a Fl(SLOG2)p Fj(_)p Fl(Get)p Fj(_)p Fl(position)j Fn(\227)f(Return)f(the)g(current)g (position)d(in)j(an)g(Slog2)g(\002le)0 2028 y Fh(Synopsis)0 2115 y Fj(int64_t)29 b(SLOG2_Get_pos)q(iti)q(on\()i(const)d(SLOG2_File) i(fp)e(\))0 2367 y Fh(Input)12 b(Parameter)0 2454 y Fl(fp)410 b Fn(Slog)11 b(2)g(\002le)g(handle)952 2613 y(43)p eop %%Page: 44 44 44 43 bop 0 286 a Fh(Retur)o(n)12 b(V)-5 b(alue)0 374 y Fn(Current)11 b(position)e(of)i(\002le.)0 517 y Fh(Question)0 604 y Fn(The)g(slog2)f(output)f(api)i(also)g(has)g(this)f(routine.)j (Do)e(the)o(y)g(need)g(to)g(be)g(dif)o(ferent?)p 0 722 1950 9 v 0 779 a Fl(SLOG2)p Fj(_)p Fl(Get)p Fj(_)p Fl(total)p Fj(_)p Fl(time)i Fn(\227)f(Return)f(the)g(time)g(range)g(co)o(v)o(ered) h(by)f(an)g(Slog)g(2)g(\002le)0 922 y Fh(Synopsis)0 1009 y Fj(int)28 b(SLOG2_Get_tot)q(al_t)q(ime)q(\()i(const)f(SLOG2_File)h (fp,)655 1065 y(double)e(*starttime,)j(double)e(*endtime)g(\))0 1300 y Fh(Input)12 b(Parameter)0 1387 y Fl(fp)410 b Fn(Slog)11 b(2)g(\002le)g(handle)0 1530 y Fh(Output)f(Parameters)0 1617 y Fl(starttime)273 b Fn(T)n(ime)12 b(when)f(log)f(\002le)h(be)o (gins)g(\(no)g(e)o(v)o(ent)g(before)g(this)f(time\))0 1674 y Fl(endtime)294 b Fn(T)n(ime)12 b(when)f(log)f(\002le)h(end)g (\(no)g(e)o(v)o(ent)g(after)h(this)e(time\))p 0 1793 V 0 1849 a Fl(SLOG2)p Fj(_)p Fl(Open)k Fn(\227)e(Open)e(an)i(Slog)e(2)h (\002le)0 1992 y Fh(Synopsis)0 2079 y Fj(SLOG2_File)30 b(SLOG2_Open\()g(const)f(char)f(filename[],)j(char)d(mode)g(\))0 2314 y Fh(Input)12 b(Parameters)0 2401 y Fl(\002lename)286 b Fn(Name)12 b(of)f(the)g(\002le)g(to)g(read)h(or)f(write)0 2458 y Fl(mode)344 b Fn(')p Fj(r')12 b Fn(for)f(reading)g(and)g(')p Fj(w')h Fn(for)f(writing)952 2613 y(44)p eop %%Page: 45 45 45 44 bop 0 286 a Fh(Retur)o(n)12 b(V)-5 b(alue)0 374 y Fn(A)11 b(handle)g(to)f(an)i(SLOG2)e(\002le.)0 519 y Fh(Question)0 606 y Fn(The)h Fj(mode)h Fn(was)f(added)g(since)g(the)g (SLOG2)f(output)g(API)i(de\002nes)f(the)g(same)g(routine.)j(Do)d(we)g (want)f(to)h(use)g(the)g(same)0 663 y(routine)f(\(and)h(make)h(these)e (all)h(part)g(of)g(a)h(single)e(slog2)g(library\))h(or)g(do)g(we)g (want)f(dif)o(ferent)h(routines?)i(If)e(so,)g(we)h(may)0 719 y(want)e(a)i(dif)o(ferent)f(pre\002x,)g(e.g.,)i(slog2in)c(and)i (slog2out)e(instead)h(of)h(just)f(slog2.)p 0 838 1950 9 v 0 894 a Fl(SLOG2)p Fj(_)p Fl(P)o(eek)p Fj(_)p Fl(next)p Fj(_)p Fl(drawable)k Fn(\227)e(Peek)f(at)h(the)e(ne)o(xt)h(dra)o(wable) 0 1039 y Fh(Synopsis)0 1127 y Fj(int)28 b(SLOG2_Peek_ne)q(xt_d)q(raw)q (able)q(\()i(const)f(SLOG2_File)h(fp,)764 1183 y(double)f(*starttime,)h (double)f(*endtime,)764 1240 y(int)f(*nt_coords,)i(int)e(*ny_coords,) 764 1296 y(int)g(*n_text)h(\))0 1548 y Fh(Input)12 b(Parameter)0 1635 y Fl(fp)410 b Fn(Slog)11 b(2)g(\002le)g(handle)0 1780 y Fh(Output)f(Parameters)0 1867 y Fl(starttime,)h(endtime)375 1924 y Fn(time)g(limits)f(of)h(dra)o(wable)0 1980 y Fl(nt)p Fj(_)p Fl(coords)254 b Fn(number)11 b(of)g(t)g(coordinates)0 2037 y Fl(ny)p Fj(_)p Fl(coords)246 b Fn(number)11 b(of)g(y)h (coordinates)0 2093 y Fl(n)p Fj(_)p Fl(text)325 b Fn(number)11 b(of)g(bytes)g(in)f(te)o(xt)p 0 2212 V 0 2268 a Fl(SLOG2)p Fj(_)p Fl(Read)p Fj(_)p Fl(dir)j Fn(\227)f(Read)g(an)f(Slog)g(2)g (directory)f(structure)952 2613 y(45)p eop %%Page: 46 46 46 45 bop 0 286 a Fh(Synopsis)0 374 y Fj(int)28 b(SLOG2_Read_di)q(r\()i (const)f(SLOG2_File)h(fp,)e(SLOG2_Treenod)q(e)i(dir[],)518 430 y(int)e(maxtree,)i(int)e(*n_nodes)h(\))0 682 y Fh(Input)12 b(Parameters)0 769 y Fl(fp)410 b Fn(Slog)11 b(2)g(\002le)g(handle)0 825 y Fl(maxtr)o(ee)292 b Fn(Size)12 b(of)f(the)g(array)g Fj(dir)0 971 y Fh(Output)f(Parameters)0 1058 y Fl(dir)392 b Fn(Array)11 b(describing)f(the)h(Slog)g(2)g(directory)f(\(see)i (Notes\))0 1114 y Fl(n)p Fj(_)p Fl(nodes)287 b Fn(The)11 b(number)g(of)g(nodes)g(in)g Fj(dir)0 1260 y Fh(Notes)0 1347 y Fn(An)g(Slog)g(2)g(\002le)g(is)g(described)f(by)h(a)h (tree-structured)e(directory)m(.)k(This)c(call)h(returns)g(the)f (directory)h(in)g(an)g(array)0 1403 y(pro)o(vided)f(by)h(the)g(user)n (.)j(Each)d(node)g(in)f(the)h(tree)h(is)e(a)i(struct)e(of)i(type)e Fj(SLOG2_Treenod)q(e)p Fn(.)17 b(The)12 b(root)e(is)h Fj(dir[0])p Fn(;)0 1460 y(the)g(\002elds)g Fj(lchild)i Fn(and)e Fj(rchild)i Fn(gi)o(v)o(e)e(the)f(indices)h(in)f Fj(dir)j Fn(of)e(the)g(left)g(and)g(right)f(children)g(respecti)o(v)o (ely)m(.)j(A)0 1516 y(parent)e(of)g Fj(-1)h Fn(indicates)e(the)h(root.) p 0 1635 1950 9 v 0 1691 a Fl(SLOG2)p Fj(_)p Fl(Set)p Fj(_)p Fl(position)i Fn(\227)e(Set)h(the)f(current)g(position)e(of)i (an)g(Slog2)g(\002le)0 1837 y Fh(Synopsis)0 1924 y Fj(void)28 b(SLOG2_Set_po)q(siti)q(on\()j(const)d(SLOG2_File)i(fp,)f(int64_t)g (offset)g(\))0 2175 y Fh(Input)12 b(Parameters)0 2262 y Fl(fp)410 b Fn(Slog)11 b(2)g(\002le)g(handle)0 2319 y Fl(offset)344 b Fn(Position)9 b(to)i(set)g(\002le)g(at)952 2613 y(46)p eop %%Page: 47 47 47 46 bop 0 286 a Fo(E)60 b(J)o(umpshot)15 b(Plans)0 390 y Fn(While)e(Jumpshot)f(is)h(not)f(part)i(of)f(Slog2,)h(the)f (Jumpshot)f(program)h(is)g(the)h(program)f(that)g(we)h(are)g(planning)d (to)i(use)h(to)0 446 y(display)c(Slog)i(\002les,)g(and)g(the)g(Slog)f (design)g(includes)f(features)i(designed)f(to)h(make)g(the)f (implementation)g(of)h(Jumpshot)0 503 y(easier)n(.)71 559 y(Some)f(of)h(the)f(features)g(that)f(the)h(ne)o(xt)g(Jumpshot)f (will)g(ha)o(v)o(e)i(include)57 653 y(1.)23 b(Pluggable)10 b(modules)g(for)h(most)g(graphical)g(objects:)140 747 y(\(a\))24 b(Pre)o(vie)o(w)11 b(module)138 820 y(\(b\))23 b(Display)10 b(module;)g(speci\002cally)m(,)h(each)h(cate)o(gory)f (type)g(can)g(specify)g(one)g(or)h(more)g(methods)e(that)h(are)h(used) 214 876 y(to)f(display)f(the)h(records)g(belonging)f(to)g(that)h(cate)o (gory)m(.)k(W)l(e)d(should)e(also)h(consider)g(a)h(can)n(v)o(as)f (module)g(that)214 933 y(manages)g(the)g(display)f(of)h(the)g (timelines.)140 1006 y(\(c\))24 b(Analysis)8 b(modules.)14 b(This)9 b(will)h(allo)o(w)f(the)h(user)h(to)f(pro)o(vide)g(a)h(module) f(that)f(can)i(analyze)g(the)f(records)g(and)214 1062 y(display)i(information)h(or)i(generate)f(a)h(dif)o(ferent)e(graphical) h(interpretation.)21 b(One)15 b(e)o(xample)f(is)g(a)h(module)214 1119 y(that)10 b(causes)h(e)o(xcessi)o(v)o(ely)g(long)f(\(slo)o(w\))g (communications)g(to)h(blink.)114 1213 y(Of)f(course,)g(Jumpshot)e (will)h(pro)o(vide)g(default)f(modules)h(for)h(all)g(of)g(these;)f(the) h(point)e(of)i(making)f(them)h(pluggable)114 1269 y(is)17 b(both)g(to)h(allo)o(w)f(user)h(customization)e(and)i(easy)g(e)o (xtension)e(and)i(to)g(enable)g(research)g(into)f(other)h(display)114 1326 y(approaches.)57 1419 y(2.)23 b(Smooth)10 b(scrolling)g(in)h (time,)g(e)o(v)o(en)h(across)e(tree)i(nodes.)57 1513 y(3.)23 b(T)l(oday')n(s)15 b(v)o(ersion)h(of)h(Ja)o(v)o(a/Swing)e (\(e.g.,)k(1.3?\).)31 b(W)n(ith)15 b(an)o(y)i(luck,)h(Ja)o(v)o(a)e(and) h(Swing)e(will)h(stop)f(changing)h(in)114 1570 y(backward-incompatible) 9 b(ways.)57 1663 y(4.)23 b(Runnable)10 b(through)g(a)i(web)f(bro)o (wser)n(.)57 1757 y(5.)23 b(Data)11 b(structures)f(designed)g(to)h (work)f(ef)o(\002ciently)g(with)h(Ja)o(v)o(a.)0 1904 y Fo(F)59 b(SLOG1)14 b(to)h(SLOG2)f(T)l(ransition)f(Plans)0 2007 y Fn(In)i(Slog1,)g(there)f(is)g(an)h(API)g(to)f(write)g(an)h(Slog) f(\002le,)i(directly)e(from)h(a)g(source)f(\002le)h(such)f(as)g(UTE)g (or)h(clog.)24 b(None)14 b(of)0 2064 y(the)f(APIs)g(described)f(abo)o (v)o(e)h(\002ts)g(that)f(model.)20 b(This)12 b(is)g(a)i(result)e(of)h (both)f(the)g(desire)h(to)g(create)g(an)g(annoted-only)e(slog)0 2120 y(\002le)i(\(e.g.,)h(one)f(that)f(contains)g Fm(only)g Fn(the)g(scalablity)f(information,)i(not)f(a)h(copy)f(of)h(the)f (original)f(data)i(records\))g(and)f(the)0 2176 y(reor)o(ganization)e (of)h(the)g(Slog)g(\002le)g(to)g(be)g(more)h(block)e(oriented.)71 2233 y(An)17 b(API)g(to)g(that)g(pro)o(vides)f(data)h(records)g(to)g (the)g(Slog2)g(program)g(\(i.e.,)j(the)d(program)h(that)e(writes)h(the) g(Slog2)0 2289 y(\002le)g(using)d(the)i(Slog2)g(output)f(API\))h(could) g(also)g(be)g(written;)h(it)f(should)f(probably)g(be)h(similar)g(to)g (the)g(current)g(API)0 2346 y(used)g(to)g(write)g(Slog1)g(\002les)g (from)h(UTE)f(\002les.)30 b(Ho)o(we)o(v)o(er)n(,)19 b(we)d(will)g(need) g(to)g(modify)g(that)g(API)h(so)f(that)g(the)g(short-)0 2402 y(term)h(comprimises)f(used)g(to)h(deli)o(v)o(er)f(a)h(working)e (v)o(ersion)h(are)h(replaced)g(with)f(the)g(more)h(general)g(Slog2)f (features.)0 2459 y(Speci\002cally)m(,)10 b(the)g(cate)o(gory)g(and)f (method-based)g(processing)g(of)h(byte-strings)d(associated)i(with)g (each)h(dra)o(wable)g(object)952 2613 y(47)p eop %%Page: 48 48 48 47 bop 0 286 a Fn(will)11 b(allo)o(w)f(handling)g(of)i(arbitrary)f (data,)h(including)e(64-bit)g(addresses)h(and)h(non-inte)o(ger)f(data)g (\(e.g.,)i(\002le)f(names\).)17 b(W)l(e)0 343 y(may)12 b(also)e(want)g(to)h(pro)o(vide)g(some)g(coordinate)f(map)i (information.)71 399 y(The)f(steps)f(for)h(de)o(v)o(eloping)f(the)h (code)g(for)g(SLOG2)g(follo)o(w:)57 493 y(1.)23 b(Write)10 b(a)i(v)o(ersion)f(of)g(the)g(trace\002le)g(input)f(API)i(for)f(the)g (MPICH)h(clog)f(format.)57 587 y(2.)23 b(Write)18 b(a)i(v)o(ersion)e (of)h(the)f(SLOG2)h(Output)e(API)j(and)e(implement)h(the)g(SLOG2)f (program)h(as)g(described)g(in)114 643 y(Section)10 b(3.)57 737 y(3.)23 b(Write)12 b(a)i(corresponding)d(v)o(erison)i(of)g(the)g (SLOG2)f(Input)h(API)g(and)g(se)o(v)o(eral)g(diagnostic)e(programs)i (\(e.g.,)i(print)114 794 y(the)c(contents)e(of)j(the)f(SLOG2)f (\002le\).)57 888 y(4.)23 b(De)o(v)o(elop)10 b(an)h(all-ne)o(w)g(v)o (ersion)f(of)i(Jumpshot)d(as)j(described)e(in)h(Appendix)e(E.)57 981 y(5.)23 b(De)o(v)o(elop)10 b(annotated)g(Slog2)h(v)o(arients)f(of)h (the)g(SLOG2)g(APIs)g(and)g(make)g(Jumpshot)f(work)g(with)h(them.)71 1075 y(Concurrently)f(with)g(these)h(steps,)f(a)i(plan)f(will)f(be)h (de)o(v)o(eloped)f(to)h(interface)g(UTE)g(to)f(SLOG2.)0 1221 y Fo(Refer)o(ences)23 1325 y Fn([1])22 b(T)n(imeScan)13 b(Multiprocess)c(Ev)o(ent)i(Analyzer.)16 b Fj(http://www.e)q(tnus)q (.com)q(/pr)q(oduc)q(ts/t)q(ime)q(scan)q Fn(.)23 1419 y([2])22 b(Darrel)13 b(Hankerson,)f(Gre)o(g)h(A.)g(Harris,)g(and)g(Jr)n (.)f(Peter)i(D.)f(Johnson.)19 b Fm(Intr)n(oduction)10 b(to)i(Information)e(Theory)j(and)98 1475 y(Data)e(Compr)n(ession)p Fn(.)k(CRC)d(Press,)g(1998.)23 1569 y([3])22 b(Michael)10 b(T)m(.)g(Heath)f(and)h(Jennifer)f(Etheridge)g(Finger)n(.)j(P)o (aragraph:)i(A)c(performance)g(visualization)d(tool)i(for)h(MPI.)98 1625 y Fj(http://www.c)q(sar)q(.uiu)q(c.ed)q(u/s)q(oftw)q(are/)q(par)q (agra)q(ph)p Fn(.)23 1719 y([4])22 b(IBM.)118 b Fm(IBM)43 b(P)l(ar)o(allel)e(En)n(vir)n(onment)g(for)h(AIX)p Fn(,)h(v)o(olume)f (2,)50 b(chapter)43 b(3.)117 b(IBM,)44 b(1998.)98 1776 y(http://www)m(.s390.ibm.com/boo)o(kmgr)o(-cgi/b)o(ookmgr)m(.cmd/books) o(/PEOP22)o(40/CON)o(TENTS.)23 1870 y([5])22 b(Ewing)10 b(Lusk.)15 b(Performance)e(visualization)8 b(for)k(parallel)e (programs.)16 b Fm(Theor)n(etica)10 b(Chimica)h(Acta)p Fn(,)f(84:377\226384,)98 1926 y(1993.)23 2020 y([6])22 b(A.)c(Malon)o(y)m(,)i(D.)d(Hammerslag,)j(and)d(D.)h(Jablono)o(wski.)34 b(TraceVie)o(w:)26 b(A)17 b(trace)h(visualization)d(tool.)35 b Fm(IEEE-)98 2076 y(Softwar)n(e)p Fn(,)11 b(8\(5\):19\22628,)f (September)i(1991.)23 2170 y([7])22 b(Allen)15 b(D.)h(Malon)o(y)m(,)h (Daniel)e(A.)h(Reed,)h(and)f(Harry)f(A.)h(G.)g(W)n(ijshof)o(f.)29 b(Performance)17 b(measurement)f(intrusion)98 2227 y(and)11 b(perturbation)d(analysis.)13 b Fm(IEEE)d(T)n(r)o(ansactions)e(on)i(P)l (ar)o(allel)f(and)g(Distrib)o(uted)f(Systems)p Fn(,)i (3\(4\):433\226450,)e(July)98 2283 y(1992.)23 2377 y([8])22 b(V)-5 b(ampir)109 b(2.0)f(\226)h(V)m(isualization)d(and)j(Analysis)d (of)j(MPI)g(Programs.)98 2433 y Fj(http://www.p)q(all)q(as.d)q(e/pa)q (ges)q(/vam)q(pir.)q(htm)q Fn(.)952 2613 y(48)p eop %%Page: 49 49 49 48 bop 23 286 a Fn([9])22 b(Daniel)10 b(A.)h(Reed,)h(Ruth)e(A.)h(A)l (ydt,)f(Roger)g(J.)h(Noe,)g(Phillip)e(C.)i(Roth,)g(K)o(eith)f(A.)h (Shields,)f(Bradle)o(y)g(Schwartz,)h(and)98 343 y(Luis)j(F)l(.)i(T)l(a) o(v)o(era.)30 b(Scalable)15 b(Performance)h(Analysis:)j(The)c(P)o(ablo) g(Performance)h(Analysis)d(En)n(vironment.)27 b(In)98 399 y(Anthon)o(y)9 b(Skjellum,)i(editor)n(,)f Fm(Pr)n(oceedings)f(of)h (the)g(Scalable)f(P)l(ar)o(allel)g(Libr)o(aries)g(Confer)n(ence)p Fn(.)i(IEEE)f(Computer)98 456 y(Society,)i(1993.)0 550 y([10])22 b(Omer)14 b(Zaki,)e(Ewing)g(Lusk,)g(W)n(illiam)g(Gropp,)h (and)f(Deborah)g(Swider)n(.)21 b(T)l(o)o(ward)12 b(scalable)g (performance)h(visual-)98 606 y(ization)e(with)f(Jumpshot.)15 b Fm(High)10 b(P)l(erformance)g(Computing)f(Applications)p Fn(,)g(13\(2\):277\226288,)g(F)o(all)i(1999.)952 2613 y(49)p eop %%Trailer end userdict /end-hook known{end-hook}if %%EOF .