%!PS-Adobe-2.0 %%Creator: dvips(k) 5.86 Copyright 1999 Radical Eye Software %%Title: paper.dvi %%Pages: 61 %%PageOrder: Ascend %%BoundingBox: 0 0 612 792 %%DocumentFonts: Times-Roman Times-Bold Helvetica-Bold Symbol %%+ Times-Italic Courier %%EndComments %DVIPSWebPage: (www.radicaleye.com) %DVIPSCommandLine: dvips paper %DVIPSParameters: dpi=300 %DVIPSSource: TeX output 2003.04.09:0017 %%BeginProcSet: tex.pro %! /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S N}B/A{dup}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{A A 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/IEn 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 IEn N end A{/foo setfont}2 array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/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 A definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get }B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub} B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr 1 add N}if}B/CharBuilder{save 3 1 roll S A/base get 2 index get S /BitMaps get S get/Cd X pop/ctr 0 N Cdx 0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx sub Cy .1 sub]{Ci}imagemask restore}B/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{A A length 1 sub A 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 A 1 get A mul exch 0 get A 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/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4 index cvrs cvn put}for pop 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/Rx 0 N/Ry 0 N/V{}B/RV/v{ /Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT) (LaserWriter 16/600)]{A length product length le{A 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 Rx Ry false RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot} imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto fill grestore}B/a{moveto}B/delta 0 N/tail{A/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 = "1 July 1998", % filename = "8r.enc", % email = "tex-fonts@@tug.org", % 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 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: texnansi.enc % @psencodingfile{ % author = "Y&Y, Inc.", % version = "1.1", % date = "1 December 1996", % filename = "texnansi.enc", % email = "help@YandY.com", % address = "45 Walden Street // Concord, MA 01742, USA", % codetable = "ISO/ASCII", % checksum = "xx", % docstring = "Encoding for fonts in Adobe Type 1 format for use with TeX." % } % % The idea is to have all 228 characters normally included in Type 1 text % fonts (plus a few more) available for typesetting. This is effectively % the character set in Adobe Standard Encoding, ISO Latin 1, plus a few more. % % Character code assignments were made as follows: % % (1) The character layout largely matches `ASCII' in the 32 -- 126 range, % except for `circumflex' in 94 and `tilde' in 126, to match `TeX text' % (`asciicircumflex' and `asciitilde' appear in 158 and 142 instead). % % (2) The character layout matches `Windows ANSI' in almost all places, % except for `quoteright' in 39 and `quoteleft' in 96 to match ASCII % (`quotesingle' and `grave' appear in 129 and 18 instead). % % (3) The character layout matches `TeX typewriter' used by CM text fonts % in most places (except for discordant positions such as hungarumlaut % (instead of braceright), dotaccent (instead of underscore) etc. % % (4) Remaining characters are assigned arbitrarily to the `control character' % range (0 -- 31), avoiding 0, 9, 10 and 13 in case we meet dumb software % - similarly one should really avoid 127 and 128 if possible. % In addition, the 8 open slots in Windows ANSI between 128 and 159 are used. % % (5) Y&Y Lucida Bright includes some extra ligatures and such; ff, ffi, ffl, % and `dotlessj,' these are included 11 -- 15, and 17. % % (6) Hyphen appears both at 45 and 173 for compatibility with both ASCII % and Windows ANSI. % % (7) It doesn't really matter where ligatures appear (both real, such as ffi, % and pseudo such as ---) since these should not be accessed directly, only % via ligature information in the TFM file. % % SAMPLE USAGE (in `psfonts.map' file for DVIPS): % % lbr LucidaBright "TeXnANSIEncoding ReEncodeFont" 0 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fc cmmi6 6 5 /Fc 5 121 df<072018E0306060606060C0C0C0C0C0C841C862D03C600D0B7E8A11>97 D<00E001B001A00300030003001FE003000600060006000600060006000C000C000C000C 0008005800D00060000C167D900F>102 D<71F1F09A1A189C1C18981818181818303030 303030303032303062606064606038170B7E8A1B>109 D<71F09A189C18981818183030 303030323062606460380F0B7E8A13>I<0F381144218C218001800300030003084310C7 3079C00E0B7F8A11>120 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fd cmr6 6 3 /Fd 3 111 df<1F00618040C08060C0600060006000C00180030006000C00102020207F C0FFC00B107F8F0F>50 D108 D110 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fe cmex10 10 3 /Fe 3 89 df22 D<0038003800380038003800380038003800380038003800380038003800380038003800 380038003800380038003800380038003800380038003800380038003800380038003800 380038003800380038003800380038003800380038003800380038003800380038003800 380038003800380038003800380038003800380038003800380038003800380038003800 380038003800380038003800380038003800380038003800380038003800380038003800 38003800380038003800380038FFF8FFF8FFF80D63808118>I88 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Ff cmr8 8 4 /Ff 4 62 df<07C018303018701C600C600CE00EE00EE00EE00EE00EE00EE00EE00EE00E 600C600C701C30181C7007C00F157F9412>48 D<06000E00FE000E000E000E000E000E00 0E000E000E000E000E000E000E000E000E000E000E000E00FFE00B157D9412>I<0F8030 E040708030C038E0384038003800700070006000C00180030006000C08080810183FF07F F0FFF00D157E9412>I61 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fg cmmi8 8 12 /Fg 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: Fh cmr10 10.95 14 /Fh 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 80038003800380038003800380038003800380038003800380038003800380038007C07F 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 /Fi 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: Fj cmsy10 10.95 5 /Fj 5 104 df0 D<03F0000FFC001FFE003FFF007FFF 807FFF80FFFFC0FFFFC0FFFFC0FFFFC0FFFFC0FFFFC07FFF807FFF803FFF001FFE000FFC 0003F00012127E9317>15 D<000000C0000003C000000F0000001C00000070000001E000 00078000001E00000078000001E00000038000000E0000003C000000F0000000F0000000 3C0000000E0000000380000001E0000000780000001E0000000780000001E00000007000 00001C0000000F00000003C0000000C00000000000000000000000000000000000000000 0000000000000000000000007FFFFF80FFFFFFC01A267C9C23>20 D<000F0038006000E001C001C001C001C001C001C001C001C001C001C001C001C001C001 C001C0038007001E00F8001E000700038001C001C001C001C001C001C001C001C001C001 C001C001C001C001C001C000E000600038000F102D7DA117>102 DI E %EndDVIPSBitmapFont /Fk 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 27 27 27 27 27 1[27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 2[27 27 27 27 27 1[27 1[27 27 27 27 27 27 27 1[27 27 27 27 27 27 27 27 27 27 2[27 34[{ TeXBase1Encoding ReEncodeFont}79 45.4545 /Courier rf %DVIPSBitmapFont: Fl cmmi10 10.95 17 /Fl 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 1E0078003C0078003C00780078007800F000F001C000F0070000FFFC0000F00E0001E007 0001E0078001E0038001E003C003C0078003C0078003C0078003C0078007800F0007800F 0107800F0107800F020F800702FFF8038C000001F020207E9E23>82 D<0FFFFFFC1E03C0381803C0181003C0082003C008200780086007800840078008400780 08800F0010000F0000000F0000000F0000001E0000001E0000001E0000001E0000003C00 00003C0000003C0000003C00000078000000780000007800000078000000F0000000F000 0000F0000000F0000001F000007FFFC0001E1F7F9E1B>84 D<000700000C800018800030 8000308000608000610000C10000C10001C2000182000384000384000388000708000710 000720000720000E40000E80000F00000E00000E00000E00001E00002C00004E00008601 0006030006040002180001E0001120809F13>96 D<01E0000FE00001C00001C00001C000 01C0000380000380000380000380000700000700000701E00706100E08700E10F00E20F0 0E40601C40001D80001E00001FC000387000383800383800381C20703840703840703840 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 /Fm 133[18 20 1[30 20 23 13 18 18 1[23 23 23 33 13 20 1[13 23 23 13 20 23 20 23 23 9[38 28 33 25 23 2[28 2[38 4[33 1[28 28 1[30 1[28 14[23 1[23 1[11 15 5[15 36[23 2[{TeXBase1Encoding ReEncodeFont}41 45.4545 /Times-Italic rf /Fn 133[20 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 7[33 33 45 33 33 30 25 33 1[28 35 33 43 30 35 1[18 1[35 28 30 33 33 30 33 1[23 4[15 7[23 23 2[11 15 11 6[45 34[25 2[{ TeXBase1Encoding ReEncodeFont}56 45.4545 /Times-Bold rf /Fo 134[25 1[36 25 25 14 19 17 1[25 25 25 39 14 25 1[14 25 25 1[22 25 22 1[22 9[47 3[28 5[44 30 4[36 1[30 36 33 1[36 20[12 44[{TeXBase1Encoding ReEncodeFont}30 49.8132 /Times-Roman rf /Fp 75[15 11[15 16[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 1[26 1[13 13 23 23 23 23 23 23 23 23 23 23 13 11 15 11 26 23 15 15 15 1[38 33[25 25 2[{ TeXBase1Encoding ReEncodeFont}86 45.4545 /Times-Roman rf /Fq 135[30 2[33 20 23 27 1[33 30 33 50 17 2[17 33 30 20 27 33 27 33 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}40 59.7758 /Times-Bold rf /Fr 169[43 43 37 33 40 1[33 43 43 53 37 2[20 43 2[37 43 40 1[43 7[30 4[30 1[30 2[17 1[20 45[{TeXBase1Encoding ReEncodeFont} 21 59.7758 /Times-Roman rf end %%EndProlog %%BeginSetup %%Feature: *Resolution 300dpi TeXDict begin %%EndSetup %%Page: 0 1 0 0 bop 1465 -106 a Fr(ANL/MCS-TM-249)322 381 y Fq(Scalable)14 b(Log)g(Files)g(f)o(or)g(P)o(arallel)e(Pr)o(ogram)h(T)l(race)g(Data)872 456 y(DRAFT)952 612 y Fp(by)491 769 y Fo(Anthon)o(y)f(Chan,)h(W)n (illiam)f(Gropp,)g(and)g(Ewing)h(Lusk)523 826 y(Mathematics)g(and)f (Computer)g(Science)g(Di)o(vision)0 2702 y @beginspecial 240 @llx 380 @lly 370 @urx 520 @ury 720 @rwi @setspecial %%BeginDocument: /home/gropp/tools.n/tex/argonne.ps %!PS-Adobe-2.0 EPSF-1.2 %%Creator: Philippe Lacroute %%Title: Argonne National Laboratory logo %%CreationDate: 29 August 1989 %%BoundingBox: 240 380 370 520 %%DocumentFonts: Helvetica-Bold Symbol %%EndComments % see page 167 of the blue book (PostScript Language Tutorial and Cookbook) % for detailed comments describing how to make circular text /circtextdict 16 dict def circtextdict begin % return half the angle spanned by a string /findhalfangle { % string => angle stringwidth pop 2 div 2 xradius mul pi mul div 360 mul } def % draw one character and then rotate to next position (text reads cw) /cwplacechar { % char => - /char exch def /halfangle char findhalfangle def gsave halfangle neg rotate radius 0 translate -90 rotate char stringwidth pop 2 div neg 0 moveto char show grestore halfangle 2 mul neg rotate } def % draw one character and then rotate to next position (text reads ccw) /ccwplacechar { % char => - /char exch def /halfangle char findhalfangle def gsave halfangle rotate radius ptsize fudge sub add 0 translate 90 rotate char stringwidth pop 2 div neg 0 moveto char show grestore halfangle 2 mul rotate } def /pi 3.1415923 def end % draw a string on a circular path in the clockwise direction /cwcircletext { % string fontsize centerangle radius => - circtextdict begin /radius exch def /centerangle exch def /ptsize exch def /str exch def /xradius radius ptsize 4 div add def gsave centerangle str findhalfangle add rotate str { /charcode exch def ( ) dup 0 charcode put cwplacechar } forall grestore end } def % draw a string on a circular path in the counter-clockwise direction /ccwcircletext { % string fontsize fudge centerangle radius => - circtextdict begin /radius exch def /centerangle exch def /fudge exch def % fudge factor; set to zero and then adjust /ptsize exch def /str exch def /xradius radius ptsize 4 div add def gsave centerangle str findhalfangle sub rotate str { /charcode exch def ( ) dup 0 charcode put ccwplacechar } forall grestore end } def % draw the interior of the ANL logo (arrow + circle) /drawcenter { % side width outsider insider circrad circdy => - gsave 30 dict begin /circdy exch def % vertical offset for circle /circrad exch def % radius of circle /insider exch def % radius of turn for inside line (in arrow) /outsider exch def % radius of turn for outside line (in arrow) /width exch def % distance between inside and outside lines /side exch def % length of one (out)side of the arrow /root3 3 sqrt def /y0 root3 6 div side mul neg def /y1 y0 width add def /y2 y1 2 mul neg def /y3 y2 width 3 mul 4 div add def /y4 y0 2 mul neg def /dx0 root3 4 div width mul def /dx1 side 2 div width root3 mul sub def /dx2 dx1 width root3 div add def /dx3 side width root3 mul sub 2 div def /dx4 side 2 div def % inside line width 2 div neg y1 moveto dx1 neg y1 0 y2 insider arcto pop pop pop pop 0 y2 dx1 y1 insider arcto pop pop pop pop dx1 y1 width 2 div y1 insider arcto pop pop pop pop width 2 div y1 lineto % outside line width 2 div y0 lineto dx4 y0 0 y4 outsider arcto pop pop pop pop 0 y4 dx3 neg y1 outsider arcto pop pop pop pop dx4 neg y0 dx2 y0 outsider arcto pop pop pop pop width 2 div neg y0 lineto closepath stroke % circle 0 circdy circrad 0 360 arc closepath stroke end grestore } def /Helvetica-Bold findfont 10 scalefont setfont 306 448 translate (ARGONNE NATIONAL LABORATORY) 10 90 55 cwcircletext (UNIVERSITY OF CHICAGO) 10 3 -90 55 ccwcircletext /Symbol findfont 10 scalefont setfont (\267 \267) 10 3 -90 55 ccwcircletext 104 18 10 1 10 -2 drawcenter %%EndDocument @endspecial 1381 2504 a Fr(MA)-7 b(THEMA)g(TICS)15 b(AND)1360 2578 y(COMPUTER)g(SCIENCE)1684 2653 y(DIVISION)p eop %%Page: 1 2 1 1 bop 0 286 a Fq(1)60 b(Intr)o(oduction)0 390 y Fp(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 446 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 503 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 559 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([)p Fn(?)p Fp(]\),)i(and)e(are)h(either)g(writ-)0 616 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 672 y(of)j Fm(e)o(vents)p Fp(;)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 729 y(processor)d(is)f(sometimes)h(called)g(a)g Fm(timeline)p Fp(.)71 785 y(Such)h Fm(post)f(mortem)h Fp(analysis)f(based)h(on)g (trace)g(\002les)h(has)f(been)g(an)g(important)g(tool)f([)p Fn(?)p Fp(,)i(4)o(,)g(5,)g Fn(?)p Fp(,)f Fn(?)p Fp(,)h Fn(?)p Fp(,)g(3)o(,)g Fn(?)p Fp(,)g Fn(?)o Fp(,)g(6,)g(7,)0 842 y(2,)g(1])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 Fl(x)p Fp(-axis)0 898 y(representing)g(time)h(and)g(the)g Fl(y)r Fp(-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 954 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 1011 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 1067 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 1124 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 1180 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 1237 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 1293 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 1350 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 1406 y(pro)o(v)o(en)h(ef)o(fecti)o(v)o(e.)24 b(Man)o(y)15 b(tools)f(\(see)g([7],)i(for)f(e)o(xample\))g(augment)g(this)e(vie)o(w) h(with)g(further)g(detail)g(such)g(as)g(arro)o(ws)0 1463 y(to)f(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 1519 y(basic)f(problem)h(of)g Fm(scalability)e Fp(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 1575 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 1632 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 1688 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 1745 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 1801 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)0 1858 y(and)g(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 1914 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 1971 y(chosen.)375 2198 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 2296 a(Figure)g(1:)i(High-le)o(v)o(el)d(vie)o(w)71 2461 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)964 2613 y(1)p eop %%Page: 2 3 2 2 bop 0 286 a Fp(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 343 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 399 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 456 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 512 y(the)d(display)e(side,)i(we)g(e)o (xpect)h(to)e(support)g(a)h(system)g(like)f(Jumpshot)f([7].)15 b(A)c(rough)f(approximation)f(of)i(its)g(appearance)0 569 y(\(minus)g(the)g(colors\))f(is)h(sho)o(wn)f(in)g(Figure)h(2.)221 1124 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 1222 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 1279 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 1335 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 1392 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 1498 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 Fp(interface.)35 b(This)17 b(is)h(a)h(mechanism)f(for)0 1554 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 1611 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 1667 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 1724 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 1780 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 1837 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)0 1893 y(to)g(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 1949 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 2006 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 2062 y(approach\))d(is)g(our)g(solution)e(to)h(this)g (problem.)71 2119 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 Fp(with)f(a)i(speci\002ed)f(format)h(for)0 2175 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 2232 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 2288 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 2345 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 2401 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 2458 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)964 2613 y(2)p eop %%Page: 3 4 3 3 bop 0 286 a Fp(\002les.)225 503 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 601 a(Figure)11 b(3:)i(SLOG-1)71 766 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 823 y(\002le)i(\(if)h(it)e(e)o(xists\),)h Fm(and)h Fp(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 879 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 935 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 992 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 1048 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 1105 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 1161 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 1218 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 1274 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 1331 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 1387 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 1444 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 1500 y(is)g(e)o(xtremely)g(lar)o(ge.)71 1557 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 1613 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 1669 y(SLOG.)0 1816 y Fq(2)60 b(T)-5 b(erms)0 1919 y Fp(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 1976 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 2032 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 2089 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 2145 y(of)g(this)f(v)o(ery)i(general)f(architecture.) 71 2202 y(The)17 b(central)g(component)g(is)g(the)g Fn(SLOG)i(Pr)o (ogram)p Fp(,)g(whose)e(function)f(it)h(is)g(to)g(contrib)o(ute)f (scalability)f(to)i(the)0 2258 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 Fn(Drawable)g(Object)h(API)p Fp(.)f(The)0 2314 y(fundamental)12 b(function)f(in)h(this)f(API)i(is)e(the)i Fk(get)p 811 2314 14 2 v 17 w(next)p 936 2314 V 17 w(drawable)p 1169 2314 V 19 w(object)h Fp(function.)i(It)d(can)f(be)h(implemented)0 2371 y(in)e(a)g(v)o(ariety)g(of)g(ways:)68 2465 y Fj(\017)23 b Fp(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)964 2613 y(3)p eop %%Page: 4 5 4 4 bop 0 1329 a @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 1427 a Fp(Figure)11 b(4:)j(Components)c(of)h(an)h (SLOG-based)e(system)114 1616 y Fn(Drawable)17 b(Object)j(File)p Fp(,)g(or)e(DOF)l(.)i(In)e(this)f(case,)k(the)d Fk(get)p 1158 1616 14 2 v 17 w(next)p 1283 1616 V 18 w(drawable)p 1517 1616 V 18 w(object)i Fp(function)d(just)114 1672 y(returns)10 b(the)h(ne)o(xt)g(record.)68 1766 y Fj(\017)23 b Fp(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)114 1822 y(we)k(will)e(call)i(an)g Fn(Event)g(File)p Fp(.)24 b(In)15 b(this)f(case)h(the)f Fk(get)p 1024 1822 V 17 w(next)p 1149 1822 V 18 w(drawable)p 1383 1822 V 18 w(object)j Fp(function)c(may)j(read)f(a)114 1879 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 1935 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 2029 y Fj(\017)23 b Fp(The)16 b Fk(get)p 285 2029 V 17 w(next)p 410 2029 V 17 w(drawable)p 643 2029 V 19 w(object)i Fp(function)d(may)i(alternati)o(v)o(ely)e(be)h(reading)g(from)h(a)f (stream)h(that)f(is)114 2086 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 2142 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 2199 y(stacking)d(and)i(matching)g(algorithm)f(comes)i(into)e(play)m(.) 0 2292 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 2349 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 2405 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 2462 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)964 2613 y(4)p eop %%Page: 5 6 5 5 bop 0 286 a Fp(to)12 b(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 343 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 399 y(vie)o(wed)e(at)i(once)f(in)g (the)f(display)m(.)71 456 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 512 y(objects)e(\(e.g.,)i(the)f(matching)f(of)h(a)g Fk(start)p 696 512 14 2 v 18 w(send)h Fp(e)o(v)o(ent)e(with)g(an)h Fk(end)p 1160 512 V 17 w(send)h Fp(e)o(v)o(ent)f(to)f(form)h(a)g(dra)o (wable)g Fk(MPI)p 1827 512 V 17 w(Send)0 569 y Fp(state\),)k(which)e (requires)h(a)h(stack)f(of)h(e)o(v)o(ents,)f(is)g Fm(not)h Fp(done)f(in)g(the)g Fn(SLOG)i(Pr)o(ogram)e Fp(b)o(ut)g(rather)g(in)g (one)g(of)h(the)f(se)o(v)o(eral)0 625 y(possible)d(implementations)h (of)h(the)g(SLOG)g(Input)f(API.)71 682 y(The)h(output)f(of)i(the)f Fn(SLOG)j(Pr)o(ogram)d Fp(can)h(be)g(either)f(a)h Fn(complete)g(SLOG)i (\002le)p Fp(,)e(containing)e(all)h(the)h(data)f(needed)0 738 y(by)g(the)g(display)f(program,)i(or)g(it)e(can)i(be)g(an)f Fn(SLOG)i(annotation)e(\002le)p Fp(,)h(which)f(is)g(designed)f(to)h(be) h(used)e(in)h(conjunction)0 795 y(with)f(a)i(dra)o(wable)f(object)f (\002le)h(to)g(produce)g(the)g(display)m(.)71 851 y(Finally)i(the)i Fn(Display)e(Pr)o(ogram)p Fp(,)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 907 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 964 y(W)l(e)14 b(term)h(the)e(whole)g (system)h Fm(scalable)e Fp(if)i(the)g(time)f(and)h(memory)h (requirements)e(necessary)h(to)f(display)f(some)i(time)0 1020 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 1077 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 1133 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 1190 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 1246 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 1303 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 1359 y(interv)o(al)10 b(around)h(it.)71 1416 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 1472 y(information:)68 1566 y Fj(\017)k Fp(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 1622 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 1679 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 1735 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 1792 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)114 1848 y(routine)c(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 1905 y(which)e Fm(cate)n(gory)h Fp(it)f(belongs)g(to.)68 1998 y Fj(\017)23 b Fp(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 2055 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 Fk(printf)114 2111 y Fp(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 2168 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 2224 y(specify)g(a)i(collection)d(of)j Fm(methods)p Fp(.)68 2318 y Fj(\017)23 b Fp(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 2374 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 2431 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)964 2613 y(5)p eop %%Page: 6 7 6 6 bop 114 286 a Fp(code)11 b(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 343 y(display)d(\(e.g.,)k (the)e(bebit)f(problem\).)k(Default)c(methods)h(are)h(supplied)d(for)i (the)g(simple)g(cases.)68 437 y Fj(\017)23 b Fp(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 493 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 550 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 Fp(.)114 606 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 663 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 719 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 775 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 832 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 888 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 945 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 1001 y(thread.)20 b(This)12 b(is)h(accomplished)g(with)f(a)i Fm(coor)n(dinate)e(map)p Fp(.)20 b(If)13 b(no)g(coordinate)g(map)h(is)e(pro)o(vided,)i(the)f(ob) o(vious)114 1058 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 1152 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 Fp(function)e(that)h(aids)g(the)g(user)g (in)0 1208 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 1264 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 1389 y Fi(2.1)50 b(Examples)0 1476 y Fp(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 1533 y(one)k(is)f(a)i(perfect)f(match.)20 b(Each)13 b(of)g(them)g(uses) f(Jumpshot)g([7])h(as)g(its)f(display)f(program.)20 b(W)l(e)14 b(refer)g(to)e(the)h(v)o(ersion)f(of)0 1589 y(April,)f(2000)f(as)h (SLOG-1.)0 1712 y Fn(2.1.1)45 b(SLOG-1)13 b(with)e(UTE)h(Files)0 1799 y Fp(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 1856 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)0 1912 y(described)e(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 1968 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 2025 y(AIX)f(trace)h(mechanism.)0 2148 y Fn(2.1.2)45 b(SLOG-1)13 b(with)e(CLOG)0 2235 y Fp(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 2291 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 Fk(MPI)p 1034 2291 14 2 v 17 w(Finalize)p Fp(,)i(logs)d(located)f(on)h(v)o (arious)g(processes)g(are)0 2348 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 2404 y(the)i(pro\002ling) e(v)o(ersion)i(of)g Fk(MPI)p 516 2404 V 17 w(Finalize)i Fp(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 2461 y(a)g Fk(get)p 115 2461 V 17 w(next)p 240 2461 V 17 w(drawable)p 473 2461 V 19 w(object)h Fp(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.)964 2613 y(6)p eop %%Page: 7 8 7 7 bop 0 286 a Fi(2.2)50 b(T)-5 b(erm)14 b(De\002nitions)0 374 y Fp(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 430 y(refer)f(to)f(other)g(items)f (in)h(this)f(glossary)m(.)0 532 y Fn(Display)g(Pr)o(ogram)22 b Fp(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 624 y Fj(\017)23 b Fp(A)14 b Fn(Pr)o(e)o(view)g Fp(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 681 y(interest.)168 752 y Fj(\017)23 b Fp(A)14 b Fn(T)o(imeline)g(V)n(iew)f Fp(or)h Fn(GANNT)h(Chart)f Fp(display)e(of)i(the)g(graphical)f(objects)g(or)h(portions)e(of)i (them)g(that)214 809 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 865 y(make)f(this)f(display)g (scalable)g(in)h(the)g(sense)g(de\002ned)g(abo)o(v)o(e.)168 937 y Fj(\017)23 b Fp(A)11 b Fn(Legend)h Fp(that)f(labels)f(graphical)h (objects)f(in)g(the)h(Display)m(.)168 1008 y Fj(\017)23 b Fp(An)11 b(optional)e(set)i(of)g Fn(P)o(opups)p Fp(,)h(containing)d (te)o(xt)i(data)g(about)f(the)h(object.)168 1080 y Fj(\017)23 b Fp(A)12 b(display)f(of)i Fn(Drawable)f(Objects)p Fp(,)j(each)e(of)g (which)f(is)g(a)h(single)e(graphical)h(object.)19 b(It)12 b(has)h(an)f(e)o(xtent)h(in)214 1136 y(time)d(gi)o(v)o(en)h(by)f(its)g (start)g(time)h(and)g(end)g(time)g(It)f(may)i(also)e(ha)o(v)o(e)h (attached)g(to)f(it)g(a)i(byte)e(sting)f(representing)214 1193 y(data)19 b(associated)f(with)h(this)f(instance)g(of)i(the)f (object.)38 b(It)19 b(has)g(an)h(object)e(cate)o(gory)h(that)g (connects)g(it)214 1249 y(to)g(the)i Fn(Category)e(Description)h(Data)g Fp(and)g(speci\002es)h(what)e(type)h(of)g(graphical)g(object)g(it)f(is) h(to)g(be)214 1306 y(rendered)d(as,)i(along)d(with)g(suf)o(\002cient)g (data)h(to)f(render)i(the)e(object.)31 b(It)17 b(has)g(at)g(least)f (one)h(y-coordinate)214 1362 y(that)h(is)g(used)h(to)f(place)i(the)e (dra)o(wable)h(object)f(on)h(the)f(correct)i(timeline\(s\))e(\(the)h (name)g(y-coordinate)214 1419 y(is)d(used)g(because)h(it)f(matches)g (the)h(usual)e(display)h(\(Figure)g(1\).)31 b(The)16 b Fn(SLOG)i(Input)g(API)e Fp(will)f(enable)214 1475 y Fk(get)p 298 1475 14 2 v 17 w(next)p 423 1475 V 17 w(drawable)p 656 1475 V 19 w(object)d Fp(and)d(related)h(routines)f(to)g(access)h (all)g(information)e(in)i(the)f(Dra)o(wable)214 1532 y(Object)14 b(and)g(interpret)g(it.)25 b(Its)14 b(is)g(important)g(to)h (realize)g(that)f(the)g(Dra)o(wable)h(Object)f(is)g(a)h(virtual)f (object)214 1588 y(de\002ned)d(by)g(the)g Fn(SLOG)h(Input)g(API)f Fp(and)g(there)g(may)h(or)f(may)h(not)e(be)h(a)h Fn(Drawable)f(Object)h (File)p Fp(.)214 1652 y(The)c(most)g(common)h(dra)o(wable)f(object)g (is)g(a)h Fm(state)p Fp(,)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 1708 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 1765 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.)114 1857 y(The)g Fn(display)f(pr)o(ogram)h Fp(uses)g(the)g Fn(SLOG)h(Input)g (API)f Fp(to)g(read)g(from)h(the)f(SLOG)g(\002le.)0 1950 y Fn(SLOG)i(Pr)o(ogram)22 b Fp(A)12 b(program)g(whose)f(function)g(is)h (to)f(add)h(scalability)e(to)i(the)g(system.)k(It)c(uses)g(a)g (well-de\002ned)g(API)114 2006 y(to)d(obtain)g(a)h(set)g(of)g(dra)o (wable)f(objects)g(and)h(another)f(to)g(write)h(out)f(either)h(a)g Fn(complete)g(SLOG)h(File)f Fp(or)g(an)g Fn(SLOG)114 2063 y(Annotation)h(File)p Fp(.)114 2155 y Fn(Complete)g(SLOG)h(File)22 b Fp(A)c(single)d(\002le)j(containing)d(all)i(information)f(necessary)h (as)g(input)e(for)j(the)f Fn(Display)214 2211 y(Pr)o(ogram)p Fp(.)114 2283 y Fn(SLOG)12 b(Annotation)f(File)22 b Fp(A)15 b(\002le)h(containing)d(just)h(the)h(\223scalability\224)f(part)h(of)g (the)g Fn(Drawable)f(Object)j Fp(data.)214 2339 y(In)c(this)g (con\002guration,)g(the)g(data)h(is)f(left)g(in)g(either)g(a)h Fn(Drawable)g(Object)h(File)e Fp(or)g(the)g Fn(Event)h(File)p Fp(.)21 b(The)214 2396 y Fn(Display)9 b(Pr)o(ogram)i Fp(accesses)h(the)e(data)i(through)d(the)i Fn(SLOG)i(Input)f(API)p Fp(.)23 2488 y(The)f(SLOG)g(Program)h(uses)e(two)g(APIs)i(to)e(read)i (and)f(write)g(data:)964 2613 y(7)p eop %%Page: 8 9 8 8 bop 114 286 a Fn(DO)11 b(Input)h(API)22 b Fp(\(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 Fn(Drawable)214 343 y(Objects)e Fp(to)f(the)g Fn(SLOG)h(Pr)o(ogram)p Fp(.)114 413 y Fn(SLOG)g(Output)h(API)22 b Fp(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 469 y Fn(SLOG)g(File)f Fp(or)g(into)f(an)h Fn(SLOG)i(Annotation)e(File)p Fp(.)23 560 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 616 y(tation)e(of)h(the)g Fn(SLOG)h(Input)g(API)p Fp(,)f(the)g(sources) g(may)h(be)114 707 y Fn(Drawable)e(Object)j(File)22 b Fp(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 777 y Fn(Event)h(File)22 b Fp(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 Fn(Drawable)g(Objects)p Fp(\))i(that)f(may)214 834 y(be)f(used)f(directly)g(by)h(the)g Fn(SLOG)i(Input)e(API)g Fp(or)g(may)h(be)f(processed)f(by)h(a)g (separate)h(program)f(into)f(a)214 890 y Fn(Drawable)c(Object)j(File)p Fp(.)114 960 y Fn(Dynamic)d(Drawable)h(Object)i(Sour)o(ce)23 b Fp(A)18 b(program)h(that)e(emits)h(a)g(stream)g(of)h Fn(Drawable)e(Objects)i Fp(that)f(is)214 1016 y(consumed)f(by)g(the)g Fn(SLOG)i(Pr)o(ogram)p Fp(.)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 1073 y(the)11 b Fn(SLOG)h(Pr)o(ogram)p Fp(.)114 1164 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 1220 y Fk(write)p Fp(,)f Fk(MPI)p 357 1220 14 2 v 17 w(Send)p Fp(,)g(or)e Fk(User-routine)p Fp(.)18 b(These)11 b(are)g(described)g(by)114 1311 y Fn(Category)f(Description)h(Data)22 b Fp(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 1367 y Fn(SLOG)i(Pr)o(ogram)f Fp(is)g(de\002ned)g(by)f(the)h Fn(SLOG)i(Input)f(API)p Fp(.)f(The)g(data)g(is)f(that)h(common)g(to)g(all)g(dra)o(wable)214 1424 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 1480 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 1603 y Fi(2.3)50 b(SLOG-2)11 b(Plans)0 1690 y Fp(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 1747 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 1803 y(more)g(clearly)m(,)f(there)g(will)g(be)g(two)f (completely)g(ne)o(w)h(features:)68 1889 y Fj(\017)23 b Fp(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 1946 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 2002 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 2059 y(SLOG-1,)g(will)e(be)h(eliminated.)27 b(Associations)14 b(will)h(be)h(replaced)g(by)f(a)i(more)f(general)g (notion)f(of)h(dra)o(wable)114 2115 y(object.)68 2206 y Fj(\017)23 b Fp(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 2262 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 2319 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 2375 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 2432 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 2488 y(as)h(unprocessed)f(UTE)h(\002les.)964 2613 y(8)p eop %%Page: 9 10 9 9 bop 0 286 a Fp(There)11 b(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 380 y Fj(\017)23 b Fp(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 437 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 493 y(API,)i(which)e(in)h(turn)f(can)i(ha)o(v)o(e)f(multiple)f (implementations.)68 587 y Fj(\017)23 b Fp(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 681 y Fj(\017)23 b Fp(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 737 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 794 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 888 y Fj(\017)23 b Fp(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 944 y(UTE,)h(without)e (copying)g(their)i(data)g(into)f(a)i(Complete)f(SLOG)g(File.)0 1067 y Fn(Note:)45 b Fp(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 1123 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 1180 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 1236 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 1293 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 1349 y(do)e(things)e(in)i(the)g (IBM)h(collaboration.)71 1406 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 1462 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 1519 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 1575 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 1669 y Fj(\017)23 b Fp(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 1725 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 1782 y(both.)68 1876 y Fj(\017)23 b Fp(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 1932 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.) 71 2026 y(W)l(e)h(need)h(four)f(API')n(s)g(altogether:)68 2120 y Fj(\017)23 b Fp(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 2176 y(CLOG,)11 b(ALOG,)g(etc.\))68 2270 y Fj(\017)23 b Fp(One)18 b(to)f(write)h(an)g(SLOG2)g(\002le.)35 b(This)17 b(API)h(contains)f(the)h(routines)e(necessary)i(to)g (implement)g(the)f(SLOG)114 2326 y(algorithm.)68 2420 y Fj(\017)23 b Fp(One)12 b(to)g(read)h(an)g(SLOG2)f(\002le,)i (implemented)e(in)g(C.)h(This)f(is)g(useful)g(both)g(for)g(testing)f (and)i(for)g(the)f(creation)g(of)114 2477 y(analysis)d(tools)h(for)i (SLOG)f(\002les.)964 2613 y(9)p eop %%Page: 10 11 10 10 bop 68 286 a Fj(\017)23 b Fp(Another)10 b(one)h(to)g(read)g(an)h (SLOG2)e(\002le,)i(implemented)f(in)g(Ja)o(v)o(a,)g(for)g(Jumpshot.)71 380 y(The)j(DO)h(\(or)g(TRA)n(CE\))g(API,)h(described)e(in)h(Appendix)e (B,)k(is)d(designed)g(to)g Fm(not)h Fp(impose)f(a)i(particular)e (structure)0 437 y(for)19 b(the)f(dra)o(wable)g(objects)g(on)g(the)g (user)n(.)36 b(Instead,)20 b(each)f(dra)o(wable)g(object)f(is)g (described)g(by)g(some)h(te)o(xt)f(\(stored)0 493 y(at)f Fk(text)p 161 493 14 2 v 18 w(base)28 b(+)g(text)p 478 493 V 17 w(pos)p Fp(\),)20 b(coordinates)c(\(stored)h(at)g Fk(coord)p 1178 493 V 18 w(base)28 b(+)g(coord)p 1522 493 V 17 w(pos)p Fp(\),)21 b(a)c(cate)o(gory)m(,)i(and)0 550 y(a)12 b(time)g(range.)k(The)11 b(API)h(makes)g(it)f(easy)h(to)f (read)h(these)f(into)g(either)g(a)h(single)f(struct)g(representing)f(a) i(dra)o(wable)g(or)f(into)0 606 y(separate)j(arrays)g(for)g(coordinate) f(and)h(character)h(data.)22 b(The)14 b(routine)f Fk(TRACE)p 1297 606 V 18 w(Peek)p 1423 606 V 17 w(next)p 1548 606 V 18 w(drawable)j Fp(makes)e(it)0 663 y(possible)9 b(to)i(preallocate)g (space)g(for)h(the)e(ne)o(xt)h(dra)o(wable.)71 719 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 775 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 832 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 888 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 945 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 1001 y(T)l(ypically)m(,)j(a)g(visualization)e (program)i(such)g(as)g(Jumpshot)e([7])j(will)e(access)h(a)h(range)f(of) g(records,)h(so)f(an)o(y)g(imple-)0 1058 y(mentation)c(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 1114 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 1171 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 1227 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 1284 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 1340 y(interface.)0 1465 y Fi(2.4)50 b(Coordinates)0 1552 y Fp(Only)11 b(the)g(\223time\224)g(coordinates)g(are)h(used)f(in) f(or)o(ganizing)g(an)i(SLOG-2)f(\002le.)k(The)d(\223y\224)f (coordinates)f(\(such)h(as)h(a)g(process)0 1608 y(number)h(or)f(MPI)i (rank\))f(are)g(needed)g(only)e(by)i(the)f(display)f(program)i(when)f (deciding)g(where)g(to)h(display)e(a)i(particular)0 1665 y(timeline)d(and)g(ho)o(w)f(to)h(label)g(that)g(timeline.)j(Ho)o(we)o (v)o(er)n(,)e(the)f(display)f(program)h(may)h(wish)f(to)f(pro)o(vide)h (se)o(v)o(eral)h(dif)o(ferent)0 1721 y(vie)o(ws)k(of)h(the)g(data,)h (arranging)e(the)h(data)g(along)f(timelines)g(depending)f(on)i(some)g (user)g(choice.)28 b(F)o(or)16 b(e)o(xample,)i(the)0 1778 y(y)c(coordinate)f(\(choice)h(of)h(time-line)e(position\))f(may)j (be)f(based)g(on)g(the)g(process)f(id,)i(node)f(id,)h(thread)f(id,)h (MPI)g(rank,)0 1834 y(or)f(some)g(combination)e(\(in)h(Jumpshot)f(for)i (SLOG)g(1,)h(these)e(included)f(the)i(process,)g(processor)n(,)h(and)e (thread)h(vie)o(ws\).)0 1890 y(T)l(o)h(support)f(these)h(multiple)g (vie)o(ws,)h(and)f(to)g(pro)o(vide)g(a)g(smooth)g(way)g(to)g(e)o(xtend) g(this)f(approach,)j(SLOG)e(2)g(de\002nes)0 1947 y Fk(coordinate)30 b(maps)p Fp(.)16 b(The)11 b(y)g(coordinate)f(v)o(alues)g(are)i(gi)o(v)o (en)f(by)g(a)g(single)f(\(32-bit\))g(inte)o(ger)h(v)o(alue.)j(The)d (coordinate)0 2003 y(map)h(e)o(xplains)e(ho)o(w)g(to)h(interpret)f (this)g(v)o(alue.)k(There)e(are)f(three)h(cases:)0 2097 y Fn(No)f(coordinate)g(map)23 b Fp(The)d(y)h(coordinates)e(are)i(small) f(inte)o(gers)g(and)g(directly)g(label)g(particular)g(timelines.)41 b(F)o(or)114 2154 y(e)o(xample,)12 b(the)o(y)f(may)g(gi)o(v)o(e)g(the)g (rank)g(in)g Fk(MPI)p 846 2154 V 17 w(COMM)p 971 2154 V 17 w(WORLD)i Fp(of)e(a)h(process.)0 2247 y Fn(Bit)f(range)h(map)22 b Fp(The)g(y)f(coordinate)g(is)g(the)g(concatenation)f(of)i(small)f (bit)f(\002elds)i(\(up)f(to)g(32)g(bits\))f(that)h(can)h(be)114 2304 y(interpreted)e(by)g(the)h(display)f(program.)44 b(Routines)20 b(are)h(pro)o(vided)f(to)h(communication)f(the)h(size)g (of)g(each)114 2360 y(\002eld)16 b(and)h(a)g(te)o(xt)g(label)f (describing)g(the)g(\002eld.)31 b(This)16 b(form)i(is)e(adequate)g(for) h(pro)o(viding)f(a)h(coordinate)f(from)114 2417 y(which)f(separate)h (nodes,)g(processes,)h(threads,)g(and)e(processors)g(can)h(be)g (identi\002ed.)27 b(See)17 b(the)e(description)f(of)114 2473 y Fk(TRACE)p 252 2473 V 17 w(Get)p 350 2473 V 18 w(coord)p 503 2473 V 17 w(map)p 601 2473 V 17 w(bitranges)g Fp(for)e(more)f(details.)952 2613 y(10)p eop %%Page: 11 12 11 11 bop 0 286 a Fn(General)12 b(map)22 b Fp(The)14 b(y)f(coordinate)f(is)h(an)g(inde)o(x)g(into)f(a)h(map)h(that)f (contains)e(an)j(arbitrary)f(number)g(of)g(inte)o(ger)g(\002elds.)114 343 y(This)d(allo)o(ws)h(the)g(display)f(program)i(to)f(disco)o(v)o(er) n(,)i(for)f(e)o(xample,)g(the)g(full)f(process,)g(thread,)h(and)g(node) f(id,)h(gi)o(v)o(en)114 399 y(the)j(y)g(coordinate.)27 b(In)15 b(other)g(words,)h(the)g(y)f(coordinates)f(returned)h(as)h (part)f(of)h(a)g(dra)o(wable)f(in)g(this)g(case)h(are)114 456 y(inde)o(x)o(es)h(into)f(a)i(lar)o(ger)g(table)g(of)f(v)o(alues.)33 b(This)17 b(type)g(of)h(coordinate)e(map)i(is)f(not)g(supported)f(in)i (the)f(initial)114 512 y(release.)0 637 y Fi(2.5)50 b(P)o(opup)12 b(Methods)0 724 y Fp(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 780 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 837 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 893 y(with)g(labels)h(or)h(access)g(a)f(source)h (code)f(bro)o(wser)n(.)17 b(F)o(or)c(the)g(initial)d(phase,)j(the)g (default)e(methods)h(will)f(be)i(used.)k(These)0 950 y(are)12 b(speci\002ed)f(by)g(returning)f(zero)h(for)h(the)e(number)i (of)f(de\002ned)g(methods)g(in)f Fk(TRACE)p 1390 950 14 2 v 18 w(Peek)p 1516 950 V 17 w(next)p 1641 950 V 18 w(category)p Fp(.)0 1096 y Fq(3)60 b(SLOG)14 b(Annotations)0 1200 y Fp(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 1256 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 1313 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 1369 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 1425 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 1482 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 1538 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 1595 y(interv)o(al)e Fh([0)p Fl(;)c(T)e Fh(])12 b Fp(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 1651 y(each)f(rectangle)g(is)f(described)h(by)f(a)i (thread)e(number)h(\()p Fl(y)i Fp(coordinate)d(in)h(the)g (visualization\))d(and)j(a)g(time)g(interv)o(al)f Fh([)p Fl(t)1864 1658 y Fg(s)1882 1651 y Fl(;)e(t)1919 1658 y Fg(e)1937 1651 y Fh(])0 1708 y Fp(\()p Fl(x)j Fp(coordinate)g(in)f (the)h(visualization\).)h(The)f(rectangles)g(are)h(sorted)e(by)h(end)g (time,)h Fl(t)1363 1715 y Fg(e)1381 1708 y Fp(.)71 1764 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)0 1821 y(represents)9 b(the)g(time)h(interv)o (al)f Fh([0)p Fl(;)f(T)e Fh(])p Fp(.)12 b(F)o(or)e(an)o(y)g(node,)f (representing)g(the)g(time)h(interv)o(al)e Fh([)p Fl(t)1447 1828 y Ff(1)1467 1821 y Fl(;)g(t)1504 1828 y Ff(2)1523 1821 y Fh(])p Fp(,)j(there)e(are)i(two)d(children)0 1877 y(representing)j(the)g(time)h(interv)o(als)e Fh([)p Fl(t)593 1884 y Ff(1)613 1877 y Fl(;)638 1863 y Ff(1)p 638 1869 18 2 v 638 1893 a(2)660 1877 y Fh(\()p Fl(t)694 1884 y Ff(1)725 1877 y Fh(+)h Fl(t)787 1884 y Ff(2)807 1877 y Fh(\)])g Fp(and)g Fh([)944 1863 y Ff(1)p 944 1869 V 944 1893 a(2)967 1877 y Fh(\()p Fl(t)1001 1884 y Ff(1)1031 1877 y Fh(+)g Fl(t)1093 1884 y Ff(2)1113 1877 y Fh(\))p Fl(;)d(t)1168 1884 y Ff(2)1187 1877 y Fh(])p Fp(.)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 1934 y(the)g(time)h(interv)o(al)e(is)h(less)f(than)h(or)h(equal)f(to)g Fh(\001)p Fl(T)792 1941 y Fg(min)858 1934 y Fp(.)k(\(W)l(e)d(describe)f (a)h(number)f(of)h(generalizations)e(to)g(this)h(de\002nition)0 1990 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 2046 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 2103 y(read.)j (Speci\002cally)m(,)d(to)f(display)f(a)i(time)f Fl(t)p Fp(,)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 2159 y(must)h(be)g(read)h(and)f (displayed)e(\(if)j Fl(t)f Fp(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 2216 y(in)h(order)g(to)g(pro)o(vide)f(a)i(more)g (informati)o(v)o(e)e(display\).)71 2272 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 Fh(\001)p Fl(T)1884 2279 y Fg(min)0 2329 y Fp(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 Fl(n)1866 2336 y Fg(max)1939 2329 y Fp(.)0 2385 y(Further)n(,)f(assume)g(that)e(the)i (size)f(of)g(the)g(\002le)h(is)f Fl(n)794 2392 y Fg(f)817 2385 y Fp(,)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.)952 2613 y(11)p eop %%Page: 12 13 12 12 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 Fp(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(Then)739 1925 y Fh(\001)p Fl(T)804 1932 y Fg(min)883 1925 y Fh(=)936 1911 y Ff(1)p 936 1917 18 2 v 936 1940 a(2)959 1925 y Fl(T)c Fh(2)1015 1822 y Fe(\026)1043 1853 y Fd(ln)1101 1831 y Fc(n)1120 1839 y(f)p 1079 1847 83 2 v 1079 1864 a(n)1098 1868 y(max)p 1043 1871 124 2 v 1082 1891 a Fd(ln)g(2)1172 1822 y Fe(\027)1198 1925 y Fl(:)0 2008 y Fp(\(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 2065 y Fh(\001)p Fl(T)65 2072 y Fg(min)143 2065 y Fp(will)h(intersect)g(with)g (at)h(most)g(2)g(leaf)h(nodes.\))71 2121 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 2178 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 2234 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 2291 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.)952 2613 y(12)p eop %%Page: 13 14 13 13 bop 0 286 a Fi(3.1)50 b(Single)12 b(Pass)h(Cr)o(eation)e(of)h (SLOG)g(File)0 374 y Fp(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 430 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 486 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 543 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 Fh(\001)p Fl(T)1234 550 y Fg(min)1300 543 y Fp(\).)15 b(Our)10 b(algorithm)g(creates)h(a)g(postorder)0 599 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 656 y(are)e(visited)d(in)i(postorder)f(\(children)h(before)g(parents\).)71 712 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 769 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 Fh(0)h Fp(through)e Fl(L)p Fp(.)14 b(F)o(or)e(each)f(le)o(v)o(el)f Fl(`)p Fp(,)h(let)f(there)h(be)g(a)g(list)e(of)i(records)f Fl(R)1770 776 y Fg(`)1786 769 y Fp(,)i(initially)0 825 y(empty)m(.)i(In)9 b(addition,)g(for)g(each)h(le)o(v)o(el)g Fl(`)p Fp(,)g(there)g(is)f(a)h(time)f(interv)o(al)g Fh(\001)p Fl(T)1120 832 y Fg(`)1146 825 y Fp(that)g(speci\002es)g(the)g(time)h (interv)o(al)e(for)i(the)f(current)0 882 y(tree)i(node)g(on)f(le)o(v)o (el)h Fl(`)p Fp(.)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 938 y(in)g(a)h Fm(dir)n(ectory)p Fp(;)e(this)h(directory)g(has)g Fh(2)617 922 y Fg(L)653 938 y Fj(\000)g Fh(1)g Fp(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 995 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 Fl(`)g Fp(is)g(co)o(v)o(ers)g(a)h(time)f(interv)o(al)f(of)0 1051 y(length)e Fh(2)148 1035 y Fb(\000)p Fg(`)191 1051 y Fl(T)c Fp(.)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 1107 y(node.)71 1164 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 1220 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 1277 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 Fl(R)1215 1284 y Fg(`)1243 1277 y Fp(can)i(be)g(maintained)f(in)h (memory)m(,)h(with)e(the)0 1333 y(e)o(x)o(ecption)g(of)g Fl(R)269 1340 y Fg(L)294 1333 y Fp(.)k(Note,)d(ho)o(we)o(v)o(er)n(,)f (that)g(elements)g(added)f(to)h Fl(R)1053 1340 y Fg(L)1089 1333 y Fp(can)g(instead)f(be)h(written)g(directly)f(to)g(the)h(output)f (\002le.)0 1390 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 1446 y(memory)m(.)19 b(If)12 b(for)h(some)f(reason)g(the)h(lists)d Fl(R)714 1453 y Fg(`)743 1446 y Fp(cannot)i(be)g(maintained)g(in)f(memory)m(,)j (separate)f(temporary)f(\002les)g(may)h(be)0 1503 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 1559 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 1653 y(1.)23 b(Position)9 b(at)i(the)g(end)g(of)g(the)g(\002le.)57 1747 y(2.)23 b(Read)11 b(the)g(v)o(alue)g(of)g Fl(L)p Fp(.)57 1841 y(3.)23 b(Mo)o(v)o(e)12 b(backwards)e Fh(2)458 1824 y Fg(L)494 1841 y Fj(\000)g Fh(1)h Fp(\(\002x)o(ed-sized\))h(records)f (and)g(read)h(the)e(directory)m(.)57 1934 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 1991 y(node.)71 2085 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 2141 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 2198 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 2254 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 2310 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 2367 y(of)f(this)f(algorithm.)71 2423 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 2480 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)952 2613 y(13)p eop %%Page: 14 15 14 14 bop 114 474 a Fp(for)11 b Fl(`)i Fh(=)g(0)p Fl(;)8 b Fh(1)p Fl(;)g(:)g(:)f(:)t(;)h(L)j Fp(do)f Fj(f)214 549 y Fp(Set)h Fl(R)318 556 y Fg(`)345 549 y Fp(to)g(empty)214 613 y(Set)g Fh(\001)p Fl(T)348 620 y Fg(`)375 613 y Fp(to)g Fh([0)p Fl(;)d Fh(2)502 597 y Fb(\000)p Fg(`)544 613 y Fl(T)e Fh(])114 689 y Fj(g)114 764 y Fp(Open)k(trace)i(\002le)114 839 y(while)e(not)g(done)h Fj(f)214 914 y Fp(read)g(the)g(ne)o(xt)g (record)h Fl(r)q Fp(.)214 979 y(accumulate)f(an)o(y)g(statistics)e(or)i (coordinate)g(mapping)f(data)h(on)g Fl(r)214 1043 y Fp(for)g Fl(`)i Fh(=)g Fl(L;)8 b(L)h Fj(\000)h Fh(1)p Fl(;)e(:)g(:)g(:)d(;)j Fh(0)i Fp(do)h Fj(f)299 1108 y Fp(if)g(the)g(end)g(time)g(of)g Fl(r)h Fp(e)o(xceeds)g(the)f(end)g(time)g(of)g Fh(\001)p Fl(T)1161 1115 y Fg(`)1177 1108 y Fp(,)h(then)e Fj(f)376 1165 y Fp(Write)h Fl(R)526 1172 y Fg(`)553 1165 y Fp(out.)j(Record)d (the)g(location)f(of)h Fl(R)1088 1172 y Fg(`)1116 1165 y Fp(in)f(the)h(\002le)h(in)e(directory)h Fl(D)q Fp(.)j(Set)e Fl(R)1690 1172 y Fg(`)1717 1165 y Fp(to)f(empty)m(.)376 1221 y(Set)g Fh(\001)p Fl(T)510 1228 y Fg(`)538 1221 y Fp(to)f(the)h(ne)o(xt)g(time)g(interv)o(al)g(\(add)g Fh(2)1097 1205 y Fb(\000)p Fg(`)1140 1221 y Fl(T)18 b Fp(to)10 b(the)h(interv)o(al\).)299 1278 y Fj(g)299 1334 y Fp(if)g(the)g(time)g(e)o(xtent)g(of)g Fl(r)h Fp(is)f(contained)f (within)f Fh(\001)p Fl(T)1123 1341 y Fg(`)1139 1334 y Fp(,)j(then)f Fj(f)376 1390 y Fp(Add)g Fl(r)h Fp(to)e Fl(R)580 1397 y Fg(`)376 1447 y Fp(break)h(from)h(for)f(loop)299 1503 y Fj(g)214 1568 y(g)114 1643 y(g)114 1718 y Fp(for)g Fl(`)i Fh(=)g Fl(L;)8 b(L)h Fj(\000)h Fh(1)p Fl(;)e(:)g(:)g(:)d(;)j Fh(0)i Fp(do)h Fj(f)214 1794 y Fp(Write)f(out)h(list)f Fl(R)500 1801 y Fg(`)516 1794 y Fp(.)k(Record)e(the)f(location)f(of)h Fl(R)993 1801 y Fg(`)1020 1794 y Fp(in)g(the)g(\002le)g(in)g(directory) g Fl(D)q Fp(.)114 1869 y Fj(g)114 1944 y Fp(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 Fl(D)q Fp(.)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 Fh(2)251 2153 y Fg(L)287 2169 y Fj(\000)h Fh(1)g Fp(\(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(14)p eop %%Page: 15 16 15 15 bop 0 286 a Fp(or)15 b(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 343 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 399 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 456 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 602 y Fq(4)60 b(Re\002nements)0 706 y Fp(The)12 b(SLOG)h(API)g(and)f (algorithm)g(can)h(be)f(enhanced)h(in)f(a)h(number)f(of)h(ways.)18 b(These)12 b(are)h(described)f(here)h(to)f(indicate)0 762 y(some)f(of)g(the)g(long-term)g(directions)e(that)i(we)g(may)h (take,)f(and)g(to)f(illustrate)g(the)h(\003e)o(xibility)e(of)i(this)f (approach.)k(None)d(of)0 819 y(these)g(re\002nements)g(are)h(planned)e (for)i(the)f(initial)e(v)o(ersion)i(of)g(SLOG2.)0 943 y Fi(4.1)50 b(Computing)11 b(Data)h(to)g(Impr)o(ove)g(Display)0 1030 y Fp(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 1087 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 1143 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 1249 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 1306 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 1362 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 1419 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 1475 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.)57 1569 y(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 1626 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 1682 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 1738 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 1795 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 1851 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 1908 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 1964 y(for)e(itself.)i(-)f(RL\))57 2058 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 2115 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 2171 y(particularly)d(appropriate)g (for)h(rectangles)g(\(states\).)114 2246 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 2340 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 2396 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 2453 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\))952 2613 y(15)p eop %%Page: 16 17 16 16 bop 114 286 a Fp(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 343 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 399 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 473 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 530 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 586 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 643 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 699 y(at)f(the)g(appropriate)f(location.)114 773 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 830 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 886 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 943 y(\223multiple)10 b(objects)g(here\224)i(\(through)e(the)g(virtual)g(bitmap\).)114 1017 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 1073 y(data,)f(is)g(there)g(an)o(y)g(way)g(to)g (e)o(xploit)f(it?)114 1147 y(An)k(alternati)o(v)o(e)h(form)g(of)g(LOD)g (permits)g(continuous)d(zooming)j(of)g(the)g(image)g(by)g(adding)f (\223shado)o(w)g(object\224)114 1204 y(information)f(to)h(each)h(le)o (v)o(el)f(in)g(the)g(tree,)i(not)e(just)f(to)h(the)g(leaf)h(nodes.)23 b(One)15 b(complication)e(is)g(that,)i(since)f(the)114 1260 y(shado)o(w)h(objects)f(are)j(more)g(closely)e(related)g(to)h(the) g(dra)o(wable,)h(there)f(may)g(need)g(to)g(be)g(one)g(set)f(of)h(shado) o(w)114 1317 y(objects)d(for)h(each)h(coordinate)e(map)i(\(i.e.,)h(for) e(each)h(assignment)e(of)h(objects)f(to)h(timelines\).)22 b(F)o(or)15 b(this)e(reason,)114 1373 y(the)d(shado)o(w)f(object)h (data)g(will)f(probably)g(be)i(stored)e(in)h(a)h(separate)f(\002le)h (\(a)g(graphical)e(annotation)g(to)h(the)g(SLOG2)114 1430 y(\002le\).)57 1521 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 1578 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)114 1634 y(to)d(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 Fp(get)g(a)g(\(nearly\))g(balanced)114 1691 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 1747 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 Fl(T)5 b(=)p Fh(2)1034 1731 y Fg(k)1069 1747 y Fp(for)15 b(some)g Fl(k)q Fp(,)h(then)e(dif)o(ferent)g(lea)o(v)o(es)h(may)g(represent)114 1804 y(dif)o(ferent)10 b(v)o(alues)h(of)g Fl(k)q Fp(.)j(Which)d(should) f(we)h(do?)0 1927 y Fi(4.2)50 b(Enhanced)12 b(Data)g(Repr)o (esentations)0 2014 y Fp(This)h(section)g(has)h(some)h(thoughts)d(and)h (questions)g(about)g(enhancing)g(the)h(capabilities)e(of)j(the)f (display)e(program)j(by)0 2071 y(pro)o(viding)9 b(more)j(information)e (about)h(objects)f(and)h(their)f(relationships)f(to)i(one)g(another)n (.)57 2171 y(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 2227 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 2284 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 2340 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 2396 y(is)e(rendered.)57 2488 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.)952 2613 y(16)p eop %%Page: 17 18 17 17 bop 57 286 a Fp(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 343 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 399 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 456 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 512 y(color)f(to)h(those)f(states)h(based)g(on)f(some)i(v)o(alue)e (associated)h(with)f(each)h(instance.)57 604 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 661 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 717 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 774 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 866 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 922 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 979 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 1035 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 1092 y(method)g(could)h(be)g(dynamically) f(loaded)h(by)f(the)h(vie)o(wer)n(.)57 1184 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 1240 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 1297 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 1353 y(threads?)57 1445 y(7.)23 b(More)13 b(general)f(methods)f(for)i (rendering)e(both)h(the)g(dra)o(wable)f(and)i(the)f(data)g(stored)f(in) h(the)g(byte)g(array)h(attached)114 1502 y(to)e(the)h(dra)o(wable)f (can)h(be)g(pro)o(vided.)k(One)c(approach)f(is)h(to)f(de\002ne)h(an)g (API)g(that)g(a)g(dra)o(wing)f(program)h(supports;)114 1558 y(the)i(methods)f(can)i(then)f(be)g(de\002ned)h(by)f(Ja)o(v)o(a)g (code)g(\(or)h(through)e(an)h(indirection)f(to)h(a)g(URL)h(containing)d (Ja)o(v)o(a)114 1615 y(code\))g(that)g(can)h(perform)g(the)g(rendering) e(needed)i(by)f(the)g(display)f(program.)19 b(T)l(o)13 b(support)e(this)g(generalization,)114 1671 y(the)f(SLOG2)g(format)h (pro)o(vides)e(placeholders)g(for)i(such)f(methods,)g(e)o(v)o(en)h (though)e(the)o(y)h(are)h(not)f(supported)e(in)i(the)114 1728 y(initial)f(v)o(ersion.)0 1851 y Fi(4.3)50 b(Real-time)12 b(File)h(Generation)0 1939 y Fp(If)18 b(the)g(length)f(of)h(time)g Fl(T)24 b Fp(is)18 b(not)f(kno)o(wn,)i(the)f(algorithm)f(in)g(Figure)h (6)g(can)g(still)f(be)h(used)g(with)f(a)h(fe)o(w)g(changes.)0 1995 y(Speci\002cally)m(,)i(the)d(total)g(number)h(of)g(le)o(v)o(els)f (is)g(not)g(set)g(in)h(adv)o(ance;)i(instead,)f(as)f(a)g(\223leaf)r (\224)h(node)e(list)g Fl(R)1775 2002 y Fg(L)1818 1995 y Fp(\002lls)h(up)0 2051 y(\(reaches)d(a)g(maximum)g(memory)g(limit\),) g(a)f(ne)o(w)g(time)h(interv)o(al)e(is)h(created,)i(possibly)c (incrementing)i(the)g(number)g(of)0 2108 y(le)o(v)o(els.)20 b(In)14 b(other)f(words,)g(one)g(starts)g(with)f(a)i(single)e(le)o(v)o (el)h(\()p Fl(L)k Fh(=)g(0)p Fp(\))c(and)h(add)f(le)o(v)o(els)g(as)g (needed.)21 b(The)13 b(resulting)f(tree)0 2164 y(will)h(not)f (necessarily)h(be)h(full.)21 b(This)13 b(is)g(the)g(reason)h(for)f (placing)g(the)g(directory)g(at)h(the)f(end)h(of)g(the)f(\002le,)i (since)e(in)g(this)0 2221 y(case,)f(the)f(number)g(of)g(le)o(v)o(els)g (is)g(not)f(kno)o(wn)g(a)i(priori.)0 2345 y Fi(4.4)50 b(File)13 b(Repr)o(esentation)0 2432 y Fp(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 2488 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)952 2613 y(17)p eop %%Page: 18 19 18 18 bop 375 972 a @beginspecial 0 @llx 0 @lly 412 @urx 251 @ury 2880 @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 1070 a Fp(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 1126 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 1183 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 1321 y(possible;)f(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 1378 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 1434 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.)0 1540 y Fn(header)24 b Fp(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 1597 y(and)g(other)f(data)h(about)g(the)g(\002le.)0 1691 y Fn(tr)o(eenode)24 b Fp(Block)11 b(of)g(data)g(corresponding)f (to)g Fl(R)800 1669 y Fg(j)800 1705 y(`)819 1691 y Fp(.)0 1784 y Fn(global)g(category)h(inf)o(o)22 b Fp(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 1878 y Fn(global)e(coord)i(map)22 b Fp(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 1972 y Fn(method)g(de\002nition)23 b Fp(Information)10 b(on)h(the)g(methods)f(that)h(should)e(be)i(in)n(v) o(oked)f(for)h(the)g(popup)f(data.)k(This)c(is)g(intended)114 2029 y(for)j(future)f(enhancements)g(to)h(the)f(SLOG)h(interface;)g (methods)f(\(or)h(more)g(precisely)m(,)g(methods)f(other)g(than)g(the) 114 2085 y(default)e(methods\))g(are)i(not)f(de\002ned)g(in)g(this)f(v) o(ersion)g(of)h(the)g(APIs.)0 2179 y Fn(tr)o(ee)h(dir)o(ectory)23 b Fp(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 2235 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 2329 y Fn(annotations)22 b Fp(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 2386 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 2442 y(lar)o(ge)f(\002les)g (without)e(re)o(writing)h(the)h(\002le.)952 2613 y(18)p eop %%Page: 19 20 19 19 bop 0 286 a Fn(postamble)22 b Fp(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 343 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 399 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 456 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 550 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 607 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 663 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 720 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 776 y(other)g(elements;)f(this)g(v)o(ersion)h(would)e(not)i (require)g(the)g(postamble)f(block.)71 833 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 889 y(sense)h(to)g(di)o(vide)e(the)i(data)g(within)f(a)h(treenode)g (into)f(groups:)0 973 y Fn(header)24 b Fp(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 1030 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 1086 y(compression)8 b(method)i(\(see)g(belo)o(w\).)j(The)c (number)h(of)g(records,)g(rather)g(than)f(the)h(number)g(of)f(bytes,)h (is)f(pro)o(vided)114 1142 y(so)h(that)h(the)g(reading)g(program)g(can) g(preallocate)g(the)g(correct)h(number)f(of)g(objects.)0 1232 y Fn(simple)g(drawables)22 b Fp(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 1289 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 1345 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\).)0 1435 y Fn(other)i(coords)f(block)23 b Fp(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 1492 y(to)e(describe)h(more)h(comple)o(x)f (dra)o(wables.)0 1582 y Fn(popup)h(data)f(block)23 b Fp(This)14 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,)i(includeing)d(the)114 1638 y(default)d(methods.)71 1722 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 1779 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 1835 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 1891 y(the)h(data)g(in)g(a)g(single)f (operation.)71 1948 y(There)h(are)h(two)e(other)h(items)g(that)f(are)i (pro)o(vided)e(for)i(future)e(enhancements.)k(These)d(are)0 2032 y Fn(local)f(category)h(inf)o(o)23 b Fp(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 2088 y(block)10 b(will)g(be)h(empty)m(.)0 2178 y Fn(local)f(coord)i(map)22 b Fp(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 2235 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 2291 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(In)j(the)f(initial)f(release,)j(these)f(will)e(be)i(empty)m(.)19 b(These)13 b(pro)o(vide)f(a)h(place)g(to)f(store)h(data)f(the)h(both)f (is)g(needed)h(only)f(o)o(v)o(er)0 2432 y(a)g(shorter)f(span)g(of)h (time)g(\(such)f(as)h(a)g(description)e(of)i(transient)e(threads\))h (and)h(that)f(may)h(ha)o(v)o(e)g(no)g(unique)e(global)h(v)o(alue)0 2488 y(\(again,)g(transient)f(threads)h(whose)f(thread)h(id)g(is)f (reused)h(by)g(the)g(system\).)952 2613 y(19)p eop %%Page: 20 21 20 20 bop 71 286 a Fp(T)n(race)13 b(\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 343 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 399 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 456 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 512 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 569 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 625 y(e)o(xample)j(the)g (algorithms)e(used)h(in)g(the)h Fk(gzip)h Fp(program)f(\(see,)g(for)g (e)o(xample,)h([)p Fn(?)p Fp(,)f(Section)f(9.1.2])h(for)g(a)g (description)e(of)0 682 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 738 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 795 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 851 y(decompress)d(the)g(\002le)g(is)g(included.)71 907 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 964 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 1020 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 1077 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 Fp(of)i(the)f(treenodes)g(into)0 1133 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 1258 y Fi(4.5)50 b(Quantifying)10 b(Data)i(Motion)325 1807 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 1905 a Fp(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 1961 y(Note)f(that)f(most)h(of)g (the)g(records)g(are)h(assigned)e(to)h(leaf)g(nodes.)71 2067 y(One)h(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 2124 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 2180 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 Fl(T)5 b(=)p Fh(2)10 b Fp(and)0 2237 y(ends)j(after)h Fl(T)5 b(=)p Fh(2)12 b Fp(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 2293 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 2349 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 2406 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 2462 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)952 2613 y(20)p eop %%Page: 21 22 21 21 bop 0 286 a Fp(time,)11 b(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 343 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 399 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 456 y(cross)h(a)g(particular)g(time)g(line)g(can)g(be)g(v)o (ery)h(lar)o(ge.)71 512 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 569 y(all)i(records)g(ha)o(v)o(e)h (the)f(same)h(duration)d Fl(\016)r(t)j Fp(and)f(are)h(uniformly)e (distrib)o(uted)f(throughout)g(the)i(trace)h(\002le.)18 b(Consider)11 b(\002rst)0 625 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 682 y(Let)k(the)f(le)o(v)o(els)h(be)g Fh(0)p Fl(;)8 b(:)g(:)g(:)t(;)g (L)p Fp(,)14 b(so)g(that)f(there)h(are)h Fh(2)835 665 y Fg(L)875 682 y Fp(lea)o(v)o(es.)22 b(F)o(or)15 b(each)f(leaf)g (interv)o(al)f(of)h(width)f Fh(\001)p Fl(T)1663 689 y Fg(min)1729 682 y Fp(,)i(an)o(y)f(record)0 738 y(whose)f(center)h (starts)369 724 y Ff(1)p 369 730 18 2 v 369 754 a(2)392 738 y Fl(\016)r(t)g Fp(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 724 y Ff(1)p 1490 730 V 1490 754 a(2)1513 738 y Fl(\016)r(t)h Fp(before)f(the)h(end) f(of)g(the)0 795 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 Fl(N)k Fp(records,)c(all)f(b)o(ut)g Fl(N)5 b(\016)r(t=)p Fh(\001)p Fl(T)1803 802 y Fg(min)1879 795 y Fp(will)0 851 y(be)12 b(placed)f(in)g(the)h(leaf)f(nodes.)k(Of)d(the)f(remaining) g(records,)h Fl(N)5 b(\016)r(t=)p Fh(2\001)p Fl(T)1183 858 y Fg(min)1261 851 y Fp(will)10 b(be)i(placed)f(in)g(the)h(nodes)e (at)i(the)f(ne)o(xt)0 907 y(le)o(v)o(el,)g Fl(N)5 b(\016)r(t=)p Fh(4\001)p Fl(T)300 914 y Fg(min)377 907 y Fp(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 964 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 1020 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 1077 y(of)h(data)g(\(not)g(counting)e(the)i(leaf)h (node\))f(is)f(simply)604 1142 y Fg(L)p Fb(\000)p Ff(1)609 1154 y Fe(X)606 1246 y Fg(k)q Ff(=0)736 1164 y Fl(N)5 b(\016)r(t)p 686 1184 180 2 v 686 1226 a Fh(2)709 1213 y Fg(L)734 1226 y Fh(\001)p Fl(T)799 1233 y Fg(min)883 1195 y Fh(=)13 b Fl(L)1017 1164 y(N)5 b(\016)r(t)p 967 1184 V 967 1226 a Fh(2)990 1213 y Fg(L)1016 1226 y Fh(\001)p Fl(T)1081 1233 y Fg(min)1165 1195 y Fh(=)13 b Fl(L)1249 1164 y(N)p 1249 1184 42 2 v 1253 1226 a(T)1295 1195 y(\016)r(t:)0 1310 y Fp(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 Fl(t)j Fh(=)h(0)p Fp(.)k(Only)13 b(the)h(\002rst)f(leaf)h(must)g(be)g(read)0 1366 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 1423 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 1523 y Fh(2)854 1492 y Fl(N)5 b(\016)r(t)p 804 1513 180 2 v 804 1554 a Fh(2)827 1541 y Fg(L)852 1554 y Fh(\001)p Fl(T)917 1561 y Fg(min)1001 1523 y Fh(=)13 b(2)1077 1492 y Fl(N)p 1077 1513 42 2 v 1081 1554 a(T)1123 1523 y(\016)r(t:)0 1620 y Fp(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 1677 y(number)d(of)g(unnecessary)g (records)g(that)g(must)f(be)i(read)f(is)852 1777 y Fh(\()p Fl(L)e Fj(\000)i Fh(2\))1002 1746 y Fl(N)p 1002 1766 V 1006 1808 a(T)1048 1777 y(\016)r(t:)0 1867 y Fp(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 1924 y(not)h(o)o(v)o(erlap.)22 b(Then)13 b Fl(N)5 b(\016)r(t)18 b Fj(\024)f Fl(T)6 b Fp(,)15 b(and)f(this)e(e)o(xpression)h(is)g(bounded)g(by)g Fl(L)f Fj(\000)g Fh(2)p Fp(.)22 b(Since)14 b Fl(L)j Fh(=)h(log)1618 1935 y Ff(2)1638 1924 y Fh(\()p Fl(T)5 b(=)p Fh(\001)p Fl(T)1776 1931 y Fg(min)1841 1924 y Fh(\))p Fp(,)14 b(this)0 1980 y(number)e(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 Fl(p)p Fp(,)i(for)f(e)o(xample,)h (there)f(are)h Fl(p)f Fp(processes)f(or)h(threads,)g(the)0 2037 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 2093 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 2149 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 Fp(SLOG2)h(\002le.)71 2206 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 2262 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 2319 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 2375 y(lea)o(v)o(es)g(of)f(the)h(tree)g(o)o(v)o(erlap)f(by)g Fl(\016)r(t)p Fp(,)i(then)e(an)o(y)h(dra)o(wable)f(object)g(of)g (duration)g(no)g(more)h(than)f Fl(\016)r(t)h Fp(can)g(be)g(placed)f(in) g(some)0 2432 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 2488 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.)952 2613 y(21)p eop %%Page: 22 23 22 22 bop 0 286 a Fq(5)60 b(Experiments)0 390 y Fp(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 536 y Fq(A)60 b(APIs)0 640 y Fp(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 696 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 753 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 809 y(synchronization)f(techniques)g(to)i(guarantee)g(correct)h(beha)o (vior)n(.)71 866 y(All)e(routines)g(and)h(major)g(data)g(structures)f (are)i(listed)e(alphabetically)m(.)71 922 y(The)i(only)g(API)h(that)e (must)i(be)f(implemented)g(by)h(producers)f(of)g(trace)h(\002les)g(is)f (the)g(Dra)o(wable)g(Object)g(\(DO\))h(Input)0 978 y(API)f(\(routines)e (starting)f(with)h Fk(TRACE)p 635 978 14 2 v 18 w Fp(\).)71 1035 y(These)k(APIs)g(are)h(designed)e(to)h(allo)o(w)f(the)h (trace\002le)h(producers)f(and)g(the)g(trace\002le)h(consumers)e (\(such)h(as)h(display)0 1091 y(programs)g(like)g Fk(Jumpshot)i Fp(or)f(an)f(analysis)f(program\))i(to)f(pass)g(data)g(to)g(each)h (other)f(that)g(can)g(be)h(ignored)e(by)h(the)0 1148 y(SLOG2)d(format.)18 b(This)11 b(data)i(is)e(stored)h(in)g(the)g(SLOG2) g(\002le)g(as)h(a)f(byte)g(array)h(\(type)f Fk(char)p Fp(\).)19 b(The)12 b(implementation)f(of)0 1204 y(the)g(Input)g(API)h (\()p Fk(TRACE)p 413 1204 V 18 w Fp(\))f(and)h(the)f(display)f(program) h(must)g(agree)i(on)e(the)g(interpretation)e(of)j(this)e(data.)15 b(In)d(the)f(initial)0 1261 y(\(2.0\))i(v)o(ersion,)g(the)g(follo)o (wing)e(interpretation)g(is)i(supported:)i(The)e(data)g(associated)f (with)g(a)i(dra)o(wable)e(\(stored)h(in)f(the)0 1317 y Fk(byte)p 111 1317 V 17 w(xxx)j Fp(parameters\))f(contains)f(binary)g (data)g(that)g(is)g(interpreted)g(by)g(the)g(label)g(data)h(pro)o (vided)f(by)g(the)g(cate)o(gory)0 1374 y(associated)g(with)h(that)f (particular)h(dra)o(wable.)24 b(The)14 b(label)g(data)g(is)g(a)h (restricted)e(form)i(of)f Fk(sprintf)j Fp(string)c(that)h(may)0 1430 y(contain)c(only:)0 1524 y Fn(Printing)h(characters)23 b Fp(Including)10 b(whitespace)g(and)h(ne)o(wlines)f(b)o(ut)g(not)h (ASCII)h(control)e(characters)i(or)f(nulls.)0 1618 y Fn(\045d)23 b Fp(4-byte)11 b(signed)f(inte)o(ger)h(in)g(Ja)o(v)o(a)g (\(network\))f(byte)g(order)n(.)0 1712 y Fn(\045h)23 b Fp(2-byte)11 b(signed)f(inte)o(ger)h(in)g(Ja)o(v)o(a)g(\(network\))f (byte)g(order)n(.)0 1805 y Fn(\045l)23 b Fp(8-byte)10 b(signed)g(inte)o(ger)h(in)g(Ja)o(v)o(a)g(\(network\))f(byte)h(order)n (.)0 1899 y Fn(\045x)23 b Fp(4-byte)10 b(unsigned)g(byte)h(he)o(x)g(in) g(Ja)o(v)o(a)g(\(network\))f(byte)g(order)n(.)0 1993 y Fn(\045X)23 b Fp(8-byte)10 b(unsigned)g(byte)h(he)o(x)g(in)g(Ja)o(v)o (a)g(\(network\))f(byte)h(order)n(.)0 2087 y Fn(\045e)23 b Fp(4-byte)11 b(\003oat)g(pointing)e(number)i(in)g(Ja)o(v)o(a)g (\(network\))f(byte)h(order)n(.)0 2181 y Fn(\045E)23 b Fp(8-byte)11 b(\003oat)g(pointing)e(number)i(in)g(Ja)o(v)o(a)g (\(network\))f(byte)h(order)n(.)0 2274 y Fn(\045s)23 b Fp(string)10 b(with)g(length)g(speci\002ed)h(by)g(a)g(2-byte)g (network)f(byte)g(ordered)h(inte)o(ger)n(.)0 2368 y Fn(\045S)23 b Fp(string)10 b(with)h(length)f(speci\002ed)g(by)h(a)h(4-byte)e (network)g(byte)h(ordered)g(inte)o(ger)n(.)j([Not)c(Implemented)h(Y)-5 b(et])952 2613 y(22)p eop %%Page: 23 24 23 23 bop 0 286 a Fp(The)15 b(label)g(string)g(must)g(be)g(written)g (with)f(its)h(length)f(\(either)i(a)f(2-byte)g(or)h(4-byte)f(inte)o (ger)g(in)g(network)f(byte)h(order\))0 343 y(follo)o(wed)d(by)h(the)g (character)h(byte)f(array)h(\(without)e(the)h(trailing)f(NULL)g (character\).)22 b(The)13 b(display)f(program)i(may)g(set)0 399 y(limits)c(on)h(the)g(total)f(length)g(of)h(a)h(generated)f(te)o (xt)g(string.)71 456 y(Most)j(routines)g(return)h(an)g(error)h(code.)26 b(This)14 b(code)h(is)g(de\002ned)g(by)g(the)g(implementation)e(of)j (the)e(API,)i(with)e(the)0 512 y(e)o(xception)c(of)i(the)f(success)f (\(no)h(error\))h(code)f(which,)g(follo)o(wing)e(Unix)h(practice,)i (must)f(be)g(zero.)k(The)c(implementation)0 569 y(of)g(the)g(API)h (must)e(pro)o(vide)h(a)h(function)d(to)i(con)n(v)o(ert)g(the)g(error)h (code)f(into)f(an)h(error)h(string)e(suitable)g(for)h(printing.)0 715 y Fq(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 819 y Fp(The)g(input)e(API)j(for)f(reading)f (trace)i(\002les)e(assumes)h(only)f(that)g(the)h(\002le)g(describes)f (dra)o(wable)h(objects;)f(these)h(dra)o(wable)0 875 y(objects)d(may)h (ha)o(v)o(e)g(to)f(be)h(assembled)f(by)g(the)g(implementation)f(of)i (this)f(API.)h(Cate)o(gory)g(information)e(may)i(or)g(may)g(not)0 931 y(be)g(present)g(in)g(the)g(trace)g(\002le)h(\(e.g.,)g(cate)o(gory) f(information)f(is)h(present)g(in)f(clog)h(\002les)g(b)o(ut)g(not)f(in) h(UTE)g(\002les\).)71 988 y(T)l(o)k(allo)o(w)g(aggre)o(gate)g(of)h (simple)f(dra)o(wables)g(with)f(dif)o(ferent)h(cate)o(gories)g(or)h(te) o(xts)f(to)g(be)h(vie)o(wed)e(as)i(one)f(single)0 1044 y(dra)o(wable)9 b(object.)k(The)d(concept)f(of)h(dra)o(wable)g(is)f (cate)o(gorized)h(into)e(2,)j(primiti)o(v)o(e)d(dra)o(wable)i(and)f (composite)g(dra)o(wable.)0 1101 y(Primiti)o(v)o(e)17 b(dra)o(wable)h(refers)g(to)g(dra)o(wable)f(with)g(a)h(well-de\002ned)g (dra)o(w\(\))g(method,)i(a)e(cate)o(gory)g(and)f(a)i(te)o(xt)e(string.) 0 1157 y(State,)c(arro)o(w)f(and)f(e)o(v)o(ent)h(are)h(considered)e (primiti)o(v)o(e)g(dra)o(wables.)k(Composite)d(dra)o(wable)f(is)h(a)g (collection)e(of)i(primiti)o(v)o(e)0 1214 y(dra)o(wables)e(with)h(an)g (optional)e(cate)o(gory)i(and)g(an)h(optional)d(te)o(xt)i(string.)71 1270 y(The)20 b(time)g(\(x-axis)f(for)i(the)f(typical)f(vie)o(wer\))h (coordinates)f(are)h(returned)g(as)g Fk(double)i Fp(v)o(alues.)41 b(The)20 b(y-axis)0 1327 y(coordinates)14 b(are)i(returned)g Fk(int)g Fp(v)o(alues.)26 b(F)o(or)16 b(man)o(y)g(trace)g(\002les,)h (these)e(y-axis)g(v)o(alues)g(will)f(be)i(either)f(the)g(rank)h(in)0 1383 y Fk(MPI)p 84 1383 14 2 v 17 w(COMM)p 209 1383 V 18 w(WORLD)e Fp(for)g(trace)f(\002les)g(generated)g(by)g(MPI)h (programs)f(or)g(process)g(ids.)19 b(More)14 b(comple)o(x)f (information,)0 1440 y(such)i(as)g(a)g(\223node,)i(process,)f (thread\224)f(tuple)f(is)h(represented)f(by)h(using)f(the)h (y-coordinate)f(v)o(alue)h(as)g(an)g(inde)o(x)g(into)f(a)0 1496 y(coordinate)g(map)h(\(or)h(table\).)25 b(Thus,)15 b(the)g(y-coordinates)f(remain)h(simple)f(\(and)h(small\))g(b)o(ut)f (are)i(allo)o(wed)e(to)g(e)o(xpress)0 1552 y(comple)o(x)d (relationships.)71 1609 y(The)d(trace)i(\002le)f(also)g(returns)f(the)h (coordinate)f(map)i(information)e(\(see)h(Section)g(2.4\))g(so)g(that)f (this)g(data)h(can)g(be)g(placed)0 1665 y(into)j(the)h(SLOG2)g(\002le)h (in)f(the)g(appropriate)f(location.)20 b(It)13 b(is)g(also)g(needed)g (to)g(implement)g(some)g(of)g(the)h(le)o(v)o(el)f(of)g(detail)0 1722 y(\(LOD\))e(enhancements)g(described)f(in)h(Section)g(4.1.)71 1778 y(The)g(follo)o(wing)e(illustrates)g(the)i(use)g(of)g(the)g(T)n (race)h(\002le)f(Input)g(API)g(to)g(read)h(a)f(trace)h(\002le.)71 1835 y(Note:)h(Since)e(TRA)n(CE-API)h(is)f(designed)f(to)h(supoort)f(e) o(xporting)g(trace)i(data)f(as)g(well)g(as)h(\224annotated)e(SLOG2\224) h(for)0 1891 y(ef)o(\002cient)i(access)g(of)g(trace)h(data)f(from)g (the)g(display)e(program,)j(most)f(arrays)g(will)f(be)h(passed)f(by)h (4)g(ar)o(guments)f(instead)0 1948 y(of)f(the)h(e)o(xpected)f(array)h (size)f(and)h(array)g(pointer)n(.)h(T)l(o)f(better)f(illustrate)e(the)j (data)f(\003o)o(w)m(,)h(all)f(arrays)g(that)g(are)h(passed)f(with)0 2004 y(the)f(4)g(ar)o(gument)g(style)g(in)g(the)f(API)i(will)e(be)i (denoted)e(by)h(angle)g(brackets)f Fk(<....[]>)k Fp(in)d(the)g(follo)o (wing)e(sample)i(code.)0 2061 y(F)o(or)h(more)h(detailed)e(information) f(on)i(the)g(rationale)f(of)g(the)h(4)g(ar)o(gument)g(style)f(in)g (passing)f(an)i(array)m(,)h(see)f(the)g(Rationale)0 2117 y(section)f(in)h(the)g(description)e(of)i Fk(TRACE)p 654 2117 V 18 w(Get)p 753 2117 V 17 w(next)p 878 2117 V 18 w(primitive\(\))100 2217 y Fa(TRACE_file)223 b(tf;)100 2266 y(TRACE_Rec_Kind_t)73 b(next_kind;)100 2366 y(//)24 b(filespec)h(describes)f(multiple)g(files)g(+)h(file)g(selection)f (criteria)100 2416 y(ierr)g(=)h(TRACE_Open\()f(filespec,)g(&tf)h(\);) 100 2466 y(if)f(\()h(tf)g(==)g(NULL)f(\))h({)952 2613 y Fp(23)p eop %%Page: 24 25 24 24 bop 199 286 a Fa(fprintf\()24 b(stdout,)h("\045s\\n",)f (TRACE_Get_err_string\()f(ierr)h(\))h(\);)199 336 y(return;)100 386 y(})100 486 y(ierr)f(=)h(TRACE_Peek_next_kind\()e(tf,)i(&next_kind) f(\);)100 535 y(if)g(\()h(ierr)g(!=)f(0)h(\))g({)199 585 y(fprintf\()f(stderr,)h("Error:)f(\045s\\n",)g (TRACE_Get_err_string\()f(ierr)i(\))g(\);)199 635 y(exit\()g(1)g(\);) 100 685 y(})100 735 y(while)f(\()h(next_kind)f(!=)h(TRACE_EOF)f(\))h({) 199 785 y(switch)g(\(next_kind\))e({)199 834 y(case)i (TRACE_COMPOSITE_DRAWBLE:)299 884 y(//)g(Get)f(the)h(time)f(range)h ([stime,etime])f(and)g(the)h(number)f(of)h(drawables)299 934 y(TRACE_Peek_next_composite\()d(tf,)j(&stime,)f(&etime,)971 984 y(&n_primitives,)g(&n_common_info)g(\);)299 1034 y(if)h(\()f(n_common_info)g(>)h(0)g(\))g({)399 1083 y(//)f(Allocate)g (the)h(space)f(and)h(get)g(common_info)399 1133 y(//)f(char)h (common_info[)f(n_info)g(];)399 1183 y(TRACE_Get_next_composite\()e (tf,)j(&cmplx_category_idx,)1046 1233 y()f(\);)299 1283 y(})299 1333 y(for)h(\()f(idx)h(=)g(0;)f(idx)h(<)g(n_primitives;)f (idx++)g(\))h({)399 1382 y(//)f(Find)h(the)f(space)h(needed)399 1432 y(TRACE_Peek_next_primitive\()d(tf,)j(&st,)f(&et,)h(&n_t,)f(&n_y,) h(&n_info)f(\);)399 1482 y(//)g(Allocate)g(the)h(space,)f(then)h(get)g (the)f(shape)399 1532 y(//)g(double)h(tcoords[n_t];)e(int)i (ycoords[n_y];)f(char)g(info[n_info];)399 1582 y (TRACE_Get_next_primitive\()e(tf,)j(&category_idx,)1046 1631 y(,)f(,)g()g(\);)299 1681 y(})299 1731 y(break;)199 1781 y(case)h(TRACE_PRIMITIVE_DRAWABLE:) 299 1831 y(//)g(Find)f(the)h(space)f(needed)299 1880 y(TRACE_Peek_next_primitive\()e(tf,)j(&st,)g(&et,)f(&n_t,)g(&n_y,)h (&n_info)f(\);)299 1930 y(//)h(Allocate)f(the)g(space,)h(then)f(get)h (the)g(shape)299 1980 y(//)g(double)f(tcoords[n_t];)g(int)g (ycoords[n_y];)g(char)g(info[n_info];)299 2030 y (TRACE_Get_next_primitive\()e(tf,)j(&category_idx,)946 2080 y(,)f(,)g()g(\);)299 2130 y(break;)199 2229 y(case)h(TRACE_CATEGORY:)299 2279 y(//)g(Find)f(the)h(amount)f(of)h(space)f(needed)299 2329 y(TRACE_Peek_next_category\()e(tf,)j(&n_legend,)f(&n_label,)g (&n_methods)g(\);)299 2379 y(//)h(Allocate)f(space)g(&)h(get)g(the)f (description)g(of)h(a)g(category)f(of)h(drawables)299 2428 y(TRACE_Get_next_category\()e(tf,)h(&category_head,)922 2478 y(,)f(,)h()g(\);)952 2613 y Fp(24)p eop %%Page: 25 26 25 25 bop 299 286 a Fa(break;)199 336 y(case)25 b(TRACE_YCOORDMAP:)299 386 y(//)g(Get)f(the)h(size)f(of)h(y-axis)f(coordinate)g(map)299 436 y(TRACE_Peek_next)f(ycoordmap\()h(tf,)h(&n_rows,)f(&n_columns,)971 486 y(&max_column_name,)g(&max_title_name,)971 535 y(&n_methods)g(\);) 299 585 y(//)h(Get)f(information)g(on)h(the)f(coordinate)g(map)299 635 y(TRACE_Get_next_ycoordmap\()e(tf,)j(&map_title,)f(&column_labels,) 946 685 y(,)g()g(\);)299 735 y(break;)199 785 y(default:)299 834 y(//)h(Print)f(unknown)g (TRACE_Rec_Kind_t)299 884 y(exit\()g(1)h(\);)199 934 y(})199 984 y(ierr)g(=)g(TRACE_Peek_next_kind\()e(tf,)h(&next_kind)g (\);)100 1034 y(})100 1133 y(ierr)g(=)h(TRACE_Close\()f(&tf)g(\);)0 1233 y Fp(Note)17 b(that)g(this)f(program)h(does)g(not)g(assume)g(that) g(dif)o(ferent)g(trace)h(\002le)g(records)f(types)f(\(i.e.,)21 b(dra)o(wables,)d(cate)o(gory)0 1289 y(descriptions,)9 b(or)j(methods\))e(occur)h(in)g(an)o(y)h(particular)e(order)n(.)p 0 1346 1950 9 v 0 1402 a Fn(TRA)n(CE)p Fk(_)p Fn(Category)p Fk(_)p Fn(head)p Fk(_)p Fn(t)i Fp(\227)f(Structure)g(de\002ning)g(the)g (basic)f(information)g(about)h(a)g(cate)o(gory)0 1547 y Fi(Synopsis)0 1634 y Fk(typedef)29 b(struct)g({)55 1690 y(int)82 b(index;)55 1747 y(int)g(shape;)55 1803 y(int)g(red,)29 b(green,)f(blue,)h(alpha;)55 1860 y(int)82 b(width;)0 1916 y(})28 b(TRACE_Category_)q(head)q(_t;)0 2072 y Fn(index)194 b Fp(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)300 2129 y(cate)o(gory)m(.)j(inde)o(x)d(is)g(assumed)g(to)f(be)i (non-ne)o(gati)o(v)o(e.)h(ne)o(gati)o(v)o(e)d(inde)o(x)h(is)g(reserv)o (ed)g(for)300 2185 y(internal)f(use.)0 2221 y Fn(shape)189 b Fp(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)300 2277 y(v)o(alue)g Fk(TRACE_SHAPE_EVE)q(NT)k Fp(\()p Fh(=)p Fp(0\))c(is)g(reserv)o(ed)h(for)f(an)g(e)o(v)o(ent)g(\()h(a)f(marker)h (at)f(one)300 2334 y(point)f(on)h(a)g(timeline)g(\),)g(the)g(v)o(alue)g Fk(TRACE_SHAPE_S)q(TATE)k Fp(\()p Fh(=)p Fp(1\))d(is)e(reserv)o(ed)i (for)f(a)300 2390 y(basic)g(state)f(\(a)i(rectangle)f(along)f(a)i (timeline\),)f Fk(TRACE_SHAPE_AR)q(ROW)k Fp(\()p Fh(=)p Fp(2\))d(is)300 2446 y(reserv)o(ed)g(for)f(an)g(arro)o(w)g(\(such)g(as) h(used)e(to)h(describe)g(a)g(message)h(from)f(a)h(send)f(state)f(to)h (a)300 2503 y(recei)o(v)o(e)h(state\),)952 2613 y(25)p eop %%Page: 26 27 26 26 bop 0 286 a Fn(r)o(ed,)13 b(gr)o(een,)f(blue)300 343 y Fp(Color)f(of)g(the)g(shape;)g(each)g(is)g(in)g(the)f(range)i ([0,255])0 434 y Fn(alpha)191 b Fp(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)300 491 y(this)e(v)o(alue.)k(An)d(alpha)g(v)o (alue)f(of)h(255)g(means)g(that)g(the)g(color)g(is)f(completely)h (opaque)f(and)300 547 y(an)h(alpha)g(v)o(alue)g(of)g(0)g(means)h(that)e (the)h(color)g(is)f(completely)h(transparent.)i(\(reference)300 604 y(ja)o(v)o(a.a)o(wt.Color\))0 649 y Fn(width)189 b Fp(the)10 b(pix)o(el)h(width)e(of)i(the)f(stroke)g(when)g(dra)o(wing) g(the)h(shape.)i(Some)f(display)d(programs)i(may)300 706 y(ignore)f(this)h(v)o(alue.)p 0 790 1950 9 v 0 847 a Fn(TRA)n(CE)p Fk(_)p Fn(Close)f Fp(\227)i(Close)f(a)h(trace)f(\002le) 0 992 y Fi(Synopsis)0 1079 y Fk(int)28 b(TRACE_Close\()j(TRACE_file)f (*fp)e(\))0 1331 y Fi(Input/Output)9 b(Parameter)0 1418 y Fn(fp)260 b Fp(Pointer)11 b(to)f(a)i(trace)g(\002le)f(handle)0 1563 y Fi(Retur)o(n)h(V)-5 b(alue)0 1650 y Fn(ierr)227 b Fp(Returned)11 b(inte)o(ger)g(error)h(status.)h(It)e(will)f(be)h (used)g(as)g(an)g(ar)o(gument)g(in)300 1707 y(TRA)n(CE)p Fk(_)p Fp(Get)p Fk(_)p Fp(err)p Fk(_)p Fp(string\(\))g(for)h(possible)d (error)j(string.)0 1842 y Fi(Notes)0 1929 y Fp(The)f(pointer)f Fk(fp)i Fp(is)f(set)g(to)f(NULL)h(on)g(a)g(successful)f(close.)p 0 2047 V 0 2104 a Fn(TRA)n(CE)p Fk(_)p Fn(Get)p Fk(_)p Fn(err)p Fk(_)p Fn(string)j Fp(\227)e(Return)h(the)e(error)i(string)e (corresponding)f(to)i(an)g(error)h(code)0 2249 y Fi(Synopsis)0 2336 y Fk(char)28 b(*TRACE_Get_e)q(rr_s)q(tri)q(ng\()j(int)d(ierr)g(\)) 952 2613 y Fp(26)p eop %%Page: 27 28 27 27 bop 0 286 a Fi(Input)12 b(Parameter)0 374 y Fn(ierr)227 b Fp(Error)11 b(code)g(returned)g(by)g(a)h(TRA)n(CE)f(routine)0 519 y Fi(Retur)o(n)h(V)-5 b(alue)0 606 y Fp(Error)11 b(message)h(string.)0 751 y Fi(Notes)0 839 y Fp(This)e(routine)g(is)h (responsible)e(for)j(pro)o(viding)d(internationalized)g(\(translated\)) h(error)i(strings.)h(Implementors)e(may)0 895 y(want)f(to)h(consider)f (the)h(GNU)g Fk(gettext)i Fp(style)e(functions.)h(T)l(o)f(a)o(v)o(oid)g (returning)f(messages)h(of)g(the)g(form)h Fk(Message)0 951 y(catalog)29 b(not)f(found)p Fp(,)13 b(the)e(message)h(catalog)e (routines)g(such)h(as)g Fk(catopen)i Fp(and)e Fk(catgets)j Fp(should)9 b(not)i(be)0 1008 y(used)g(unless)f(a)h(pro)o(vision)f(is)g (made)i(to)f(return)g(a)g(message)h(string)e(if)h(no)g(message)g (catalog)g(can)g(be)g(found.)j(The)d(help)0 1064 y(message)g(for)h(the) f(TRA)n(CE-API)h(implementation)d(should)h(be)h(stored)g(at)g(ierr)p Fh(=)p Fp(0,)h(so)e(the)h(calling)f(program)i(of)0 1121 y(TRA)n(CE-API)g(kno)o(ws)e(if)h(it)g(should)e(e)o(xit)i(the)g(program) g(normally)m(.)p 0 1240 1950 9 v 0 1296 a Fn(TRA)n(CE)p Fk(_)p Fn(Get)p Fk(_)p Fn(next)p Fk(_)p Fn(category)h Fp(\227)g(Get)f(the)g(ne)o(xt)g(cate)o(gory)g(description)0 1441 y Fi(Synopsis)0 1528 y Fk(int)28 b(TRACE_Get_nex)q(t_ca)q(teg)q (ory\()j(const)e(TRACE_file)h(fp,)791 1585 y(TRACE_Category)q(_he)q (ad_t)h(*head,)791 1641 y(int)d(*n_legend,)i(char)e(legend_base[)q(],) 791 1698 y(int)g(*legend_pos,)j(const)d(int)g(legend_max,)791 1754 y(int)g(*n_label,)i(char)e(label_base[],)791 1811 y(int)g(*label_pos,)i(const)f(int)f(label_max,)791 1867 y(int)g(*n_methodIDs,)j(int)d(methodID_base[)q(],)791 1924 y(int)g(*methodID_pos)q(,)i(const)f(int)f(methodID_max)i(\))0 2175 y Fi(Input)12 b(Parameter)0 2262 y Fn(fp)260 b Fp(T)n(race)12 b(\002le)g(handle)0 2319 y Fn(legend)p Fk(_)p Fn(max)63 b Fp(Allocated)10 b(size)h(of)g Fk(legend_base)k Fp(array)0 2375 y Fn(label)p Fk(_)p Fn(max)95 b Fp(Allocated)10 b(size)h(of)g Fk(label_base)j Fp(array)0 2432 y Fn(methodID)p Fk(_)p Fn(max)952 2613 y Fp(27)p eop %%Page: 28 29 28 28 bop 300 286 a Fp(Allocated)10 b(size)h(of)g Fk(methodID_bas)q(e)j Fp(array)0 469 y Fi(Input/Output)9 b(Parameters)0 556 y Fn(legend)p Fk(_)p Fn(pos)81 b Fp(On)11 b(input,)f(the)h(\002rst)g(a) o(v)o(ailable)f(position)f(in)i Fk(legend_base)30 b Fp(On)11 b(output,)f(changed)h(to)300 612 y(indicate)f(the)h(ne)o(w)g(\002rst)g (a)o(v)o(ailable)g(position.)0 657 y Fn(label)p Fk(_)p Fn(pos)113 b Fp(On)11 b(input,)f(the)h(\002rst)g(a)o(v)o(ailable)f (position)f(in)i Fk(label_base)30 b Fp(On)11 b(output,)f(changed)h(to) 300 714 y(indicate)f(the)h(ne)o(w)g(\002rst)g(a)o(v)o(ailable)g (position.)0 758 y Fn(methodID)p Fk(_)p Fn(pos)300 815 y Fp(On)g(input,)f(the)h(\002rst)g(a)o(v)o(ailable)f(position)f(in)i Fk(methodID_base)31 b Fp(On)11 b(output,)f(changed)h(to)300 871 y(indicate)f(the)h(ne)o(w)g(\002rst)g(a)o(v)o(ailable)g(position.)0 1011 y Fi(Output)f(Parameters)0 1098 y Fn(head)207 b Fp(Contains)10 b(basic)h(cate)o(gory)g(info)g(\(see)g(the)g (description)e(of)300 1154 y Fk(TRACE_Categor)q(y_he)q(ad_t)q Fp(\))0 1198 y Fn(n)p Fk(_)p Fn(legend)122 b Fp(Size)12 b(of)f Fk(legend_base)j Fp(array)e(to)f(be)g(used)0 1254 y Fn(legend)p Fk(_)p Fn(base)61 b Fp(Pointer)11 b(to)f(storage)h(to)g (hold)f(le)o(gend)h(information)0 1311 y Fn(n)p Fk(_)p Fn(label)154 b Fp(Size)12 b(of)f Fk(label_base)j Fp(array)e(to)e(be)i (used)0 1367 y Fn(label)p Fk(_)p Fn(base)93 b Fp(Pointer)11 b(to)f(storage)h(to)g(hold)f(label)h(information.)i(The)e(order)g(of)g (the)g(\045)g(tokens)f(speci\002ed)300 1423 y(here,)i Fk(label_base)p Fp(,)i(must)d(match)h(the)f(order)g(of)g(operands)f(in) h(the)g(byte)g(array)m(,)300 1480 y Fk(byte_base[])p Fp(,)k(speci\002ed)c(in)f Fk(TRACE_Get_ne)q(xt_p)q(rim)q(itiv)q(e\(\)) 31 b Fp(and)300 1536 y Fk(TRACE_Get_nex)q(t_co)q(mpos)q(ite)q(\(\))p Fp(.)0 1578 y Fn(n)p Fk(_)p Fn(methodIDs)i Fp(number)11 b(of)g(method)g(IDs)g(associated)f(with)h(this)f(cate)o(gory)m(.)0 1635 y Fn(methodID)p Fk(_)p Fn(base)300 1691 y Fp(Pointer)h(to)f (storage)h(to)g(hold)f(method)h(IDs.)0 1873 y Fi(Retur)o(n)h(V)-5 b(alue)0 1960 y Fn(ierr)227 b Fp(Returned)11 b(inte)o(ger)g(error)h (status.)h(It)e(will)f(be)h(used)g(as)g(an)g(ar)o(gument)g(in)300 2016 y(TRA)n(CE)p Fk(_)p Fp(Get)p Fk(_)p Fp(err)p Fk(_)p Fp(string\(\))g(for)h(possible)d(error)j(string.)0 2151 y Fi(Notes)0 2238 y Fp(The)f(interface)g(to)g(this)f(\(and)h(similar)f (routines)g(such)h(as)g Fk(TRACE_Get_nex)q(t_p)q(rimi)q(tive)q(\(\))p Fp(\))k(is)10 b(designed)g(to)0 2295 y(gi)o(v)o(e)h(\003e)o(xibility)e (in)i(ho)o(w)g(data)g(is)f(read.)15 b(See)d Fk(SLOG2_Get_nex)q(t_ca)q (tego)q(ry\()q(\))i Fp(for)e(more)f(details.)0 2351 y(The)g(le)o(gend)g (string)f(is)g(used)h(to)g(hold)f(a)i(label)e(for)i(a)f(le)o(gend)g (desribing)f(the)h(cate)o(gory)m(.)j(A)d(typical)f(visualization)0 2408 y(program)h(will)f(use)h(that)g(te)o(xt)g(to)g(label)f(and)h(dra)o (w)h(a)f(sample)g(of)h(a)f(member)i(from)e(that)g(cate)o(gory)m(.)j(F)o (or)e(e)o(xample,)g(a)g(blue)0 2464 y(rectangle)f(with)f(the)h(te)o(xt) g Fk(MPI_Send)p Fp(.)952 2613 y(28)p eop %%Page: 29 30 29 29 bop 0 286 a Fp(The)11 b(label)g(string)f(is)g(used)h(to)g (describe)g(a)g(particular)g(dra)o(wable)f(in)h(that)g(cate)o(gory)m(.) j(F)o(or)e(e)o(xample,)g(a)f(label)g(string)f(of)109 380 y Fk("Tag)28 b(=)g(\045s\\nDestinati)q(on)i(rank)f(=)e (\045s\\nmessage)k(size)d(=)f(\045s")0 474 y Fp(allo)o(ws)10 b(a)h(visualization)e(program)i(to)g(pop)g(up)g(a)g(te)o(xt)g(box)g (describing)e(an)o(y)j(dra)o(wable)e(while)h(allo)o(wing)e(the)i(dra)o (wable)0 531 y(itself)f(to)h(store)g(only)f(the)h(information)f(that)g (is)h(speci\002c)g(to)g(each)h(instance)e(of)h(the)g(dra)o(wable)g (\(i.e.,)h(the)f(three)g(string)0 587 y(v)o(alues)f(referenced\).)16 b(These)11 b(string)f(v)o(alues)g(are)i(pro)o(vided)e(through)g(the)h Fk(byte)h Fp(ar)o(guments)f(to)0 643 y Fk(TRACE_Get_nex)q(t_pr)q(imit)q (ive)q Fp(.)0 700 y(The)g(routine)f Fk(TRACE_Peek_ne)q(xt_)q(cate)q (gory)15 b Fp(may)d(be)f(used)g(to)f(determine)i(the)e(number)i(of)f (characters)g(of)0 756 y(label)g(and)g(le)o(gend)g(that)f(are)i (required.)p 0 875 1950 9 v 0 932 a Fn(TRA)n(CE)p Fk(_)p Fn(Get)p Fk(_)p Fn(next)p Fk(_)p Fn(composite)g Fp(\227)g(Get)f(the)g (header)g(information)f(of)i(the)f(ne)o(xt)f(composite)h(dra)o(wable)0 1077 y Fi(Synopsis)0 1164 y Fk(int)28 b(TRACE_Get_nex)q(t_co)q(mpo)q (site)q(\()i(const)f(TRACE_file)h(fp,)818 1220 y(int)e(*category_in)q (dex,)818 1277 y(int)g(*n_bytes,)i(char)e(byte_base[],)818 1333 y(int)g(*byte_pos,)i(const)f(int)f(byte_max)h(\))0 1585 y Fi(Input)12 b(Parameter)0 1672 y Fn(fp)260 b Fp(T)n(race)12 b(\002le)g(handle)0 1729 y Fn(byte)p Fk(_)p Fn(max)106 b Fp(Size)12 b(of)f Fk(byte_base)0 1874 y Fi(Input/Output)e(Parameters) 0 1961 y Fn(byte)p Fk(_)p Fn(pos)124 b Fp(The)11 b(same,)h(for)g Fk(byte_base)0 2106 y Fi(Output)e(Parameters)0 2194 y Fn(starttime,)h(endtime)300 2250 y Fp(time)g(range)g(for)h(dra)o(wable) 0 2342 y Fn(category)p Fk(_)p Fn(index)300 2398 y Fp(Inde)o(x)f(of)g (the)g(cate)o(gory)g(that)g(this)f(dra)o(wable)h(belongs)f(to)952 2613 y(29)p eop %%Page: 30 31 30 30 bop 0 286 a Fn(byte)p Fk(_)p Fn(base)104 b Fp(Pointer)11 b(to)f(storage)h(to)g(hold)f(bytes.)j(The)e(order)h(of)f(operands)f(in) h(the)g(byte)g(array)m(,)300 343 y Fk(byte_base[])p Fp(,)k(speci\002ed) c(here)g(must)g(match)g(the)g(order)h(of)f(the)g(\045)g(tokens)f(in)g (the)h(label)300 399 y(string,)f Fk(label_base)p Fp(,)15 b(in)10 b(the)h(TRA)n(CE)p Fk(_)p Fp(Get)p Fk(_)p Fp(ne)o(xt)p Fk(_)p Fp(cate)o(gory\(\).)0 534 y Fi(Retur)o(n)h(V)-5 b(alue)0 621 y Fn(ierr)227 b Fp(Returned)11 b(inte)o(ger)g(error)h (status.)h(It)e(will)f(be)h(used)g(as)g(an)g(ar)o(gument)g(in)300 678 y(TRA)n(CE)p Fk(_)p Fp(Get)p Fk(_)p Fp(err)p Fk(_)p Fp(string\(\))g(for)h(possible)d(error)j(string.)0 812 y Fi(Notes)0 900 y Fp(The)f(interface)g(to)g(this)f(is)g(designed)g(to) h(allo)o(w)f(\003e)o(xibility)g(in)h(ho)o(w)f(data)h(is)g(read.)j(See)0 956 y Fk(TRACE_Get_nex)q(t_pr)q(imit)q(ive)h Fp(for)c(more)h(details.)p 0 1075 1950 9 v 0 1131 a Fn(TRA)n(CE)p Fk(_)p Fn(Get)p Fk(_)p Fn(next)p Fk(_)p Fn(primitive)f Fp(\227)h(Get)f(the)g(ne)o(xt)g (primiti)o(v)o(e)f(dra)o(wable)0 1276 y Fi(Synopsis)0 1364 y Fk(int)28 b(TRACE_Get_nex)q(t_pr)q(imi)q(tive)q(\()i(const)f (TRACE_file)h(fp,)818 1420 y(int)e(*category_in)q(dex,)818 1477 y(int)g(*nt_coords,)j(double)d(tcoord_base[)q(],)818 1533 y(int)g(*tcoord_pos,)j(const)d(int)h(tcoord_max,)818 1589 y(int)f(*ny_coords,)j(int)d(ycoord_base[],)818 1646 y(int)g(*ycoord_pos,)j(const)d(int)h(ycoord_max,)818 1702 y(int)f(*n_bytes,)i(char)e(byte_base[],)818 1759 y(int)g(*byte_pos,)i(const)f(int)f(byte_max)h(\))0 2010 y Fi(Input)12 b(Parameter)0 2098 y Fn(fp)260 b Fp(T)n(race)12 b(\002le)g(handle)0 2154 y Fn(tcoord)p Fk(_)p Fn(max)63 b Fp(Size)12 b(of)f Fk(tcoord_base)0 2210 y Fn(ycoord)p Fk(_)p Fn(max)55 b Fp(Size)12 b(of)f Fk(ycoord_base)0 2267 y Fn(byte)p Fk(_)p Fn(max)106 b Fp(Size)12 b(of)f Fk(byte_base)952 2613 y Fp(30)p eop %%Page: 31 32 31 31 bop 0 286 a Fi(Input/Output)9 b(Parameters)0 374 y Fn(tcoord)p Fk(_)p Fn(pos)81 b Fp(On)11 b(input,)f(the)h(\002rst)g (free)h(location)e(in)h Fk(tcoord_base)p Fp(.)17 b(Updated)10 b(on)h(output)f(to)h(the)f(ne)o(w)300 430 y(\002rst)h(free)h(location.) 0 466 y Fn(ycoord)p Fk(_)p Fn(pos)73 b Fp(The)11 b(same,)h(for)g Fk(ycoord_base)0 522 y Fn(byte)p Fk(_)p Fn(pos)124 b Fp(The)11 b(same,)h(for)g Fk(byte_base)0 667 y Fi(Output)e(Parameters)0 755 y Fn(starttime,)h(endtime)300 811 y Fp(time)g(range)g(for)h(dra)o (wable)0 903 y Fn(category)p Fk(_)p Fn(index)300 959 y Fp(Inde)o(x)f(of)g(the)g(cate)o(gory)g(that)g(this)f(dra)o(wable)h (belongs)f(to)0 1051 y Fn(nt)p Fk(_)p Fn(coords)104 b Fp(Number)11 b(of)h(time)f(coordinates)0 1108 y Fn(tcoord)p Fk(_)p Fn(base)61 b Fp(Pointer)11 b(to)f(storage)h(to)g(hold)f(time)h (coordinates)0 1164 y Fn(ny)p Fk(_)p Fn(coords)96 b Fp(Number)11 b(of)h(y)f(coordinates)0 1220 y Fn(ycoord)p Fk(_)p Fn(base)53 b Fp(Pointer)11 b(to)f(storage)h(to)g(hold)f(y)h(coordinates)0 1277 y Fn(byte)p Fk(_)p Fn(base)104 b Fp(Pointer)11 b(to)f(storage)h (to)g(hold)f(bytes.)j(The)e(order)h(of)f(operands)f(in)h(the)g(byte)g (array)m(,)300 1333 y Fk(byte_base[])p Fp(,)k(speci\002ed)c(here)g (must)g(match)g(the)g(order)h(of)f(the)g(\045)g(tokens)f(in)g(the)h (label)300 1390 y(string,)f Fk(label_base)p Fp(,)15 b(in)10 b(the)h(TRA)n(CE)p Fk(_)p Fp(Get)p Fk(_)p Fp(ne)o(xt)p Fk(_)p Fp(cate)o(gory\(\).)0 1525 y Fi(Retur)o(n)h(V)-5 b(alue)0 1612 y Fn(ierr)227 b Fp(Returned)11 b(inte)o(ger)g(error)h (status.)h(It)e(will)f(be)h(used)g(as)g(an)g(ar)o(gument)g(in)300 1668 y(TRA)n(CE)p Fk(_)p Fp(Get)p Fk(_)p Fp(err)p Fk(_)p Fp(string\(\))g(for)h(possible)d(error)j(string.)0 1803 y Fi(Notes)0 1890 y Fp(The)f Fk(ycoord)i Fp(v)o(alues)d(stored)h(in)g Fk(ycoord_base)30 b(+)d(ycoord_pos)14 b Fp(represent)d(y-coordinate)g (inde)o(x)f(v)o(alues.)0 1946 y(These)h(may)g(be)g(simple)f Fk(int)i Fp(v)o(alues)e(or)h(the)o(y)f(may)i(be)f(inde)o(x)o(es)f(into) g(a)h(y-coordinate)f(mapping)g(table.)k(F)o(or)d(e)o(xample,)h(a)0 2003 y(simple)f(trace)g(\002le)h(format)f(that)g(only)f(records)h(the)g (rank)g(in)g Fk(MPI_COMM_WORLD)k Fp(as)c(the)g(y)g(coordinate)g(would)e (return)0 2059 y(that)i(rank)g(v)o(alue)f(directly)m(.)k(A)d(more)h (sophisticated)c(trace)k(\002le)g(format)f(that)g(wished)f(to)g(return) h(the)g(nodename,)h(process)0 2116 y(id,)f(MPI)h(rank,)g(and)f(thread)g (id)f(would)g(instead)g(return)h(an)g(inte)o(ger)g(inde)o(x)g(v)o(alue) g(into)f(a)h(table)g(that)f(contained)h(that)f(data.)0 2172 y(The)h(ro)o(ws)f(of)h(this)f(table)g(\(representing)g(the)g(v)o (alues)g(for)i(a)f(single)e(inde)o(x)i(v)o(alue\))f(are)i(pro)o(vided)e (through)f(a)i Fm(r)n(outine)f(to)g(be)0 2229 y(determined)p Fp(.)j(In)e(the)g(latter)g(case,)h(it)e(is)h(better)g(to)g(think)f(of)h (the)g(y)g(coordinate)f(v)o(alues)g(as)i Fk(thread_id_index)0 2285 y Fp(v)o(alues.)952 2613 y(31)p eop %%Page: 32 33 32 32 bop 0 286 a Fi(Rationale)0 374 y Fp(The)11 b(some)o(what)g (comple)o(x)g(ar)o(gument)g(list)f(is)h(intended)f(to)g(pro)o(vide)h (the)g(maximum)g(\003e)o(xibility)f(in)h(reading)f(and)h(storing)0 430 y(the)g(data.)j(F)o(or)e(e)o(xample,)g(the)f(calling)f(program)h (can)h(either)f(allocate)f(ne)o(w)h(data)g(for)h(each)f(call)g(\(using) f(information)0 486 y(returned)h(by)g Fk(TRACE_Peek_next)q(_pr)q(imit)q (ive)p Fp(\))k(or)c(use)g(preallocated)g(stacks)f(\(allo)o(wing,)g(for) h(e)o(xample,)h(all)0 543 y Fk(double)h Fp(data)e(to)g(be)g(stored)g (contiguously)o(\).)h(An)f(alternati)o(v)o(e)f(interface)h(could)g (return)f(a)i(C)g(structure)e(or)h(an)h(instance)0 599 y(of)f(a)h(C++)f(class)f(that)h(contained)f(all)h(of)g(this)f(data.)k (Ho)o(we)o(v)o(er)n(,)e(that)e(approach)h(imposes)g(a)g(particular)g (representation)0 656 y(on)g(an)o(y)g(application)e(that)i(chooses)f (to)h(use)g(the)g(code.)j(If,)e(for)g(e)o(xample,)g(these)e(routines)g (are)i(being)e(used)h(from)h(another)0 712 y(language,)f(such)f(as)i (Ja)o(v)o(a,)f(a)h(C)f(or)h(C++)f(style)f(interface)h(may)g(be)h(inef)o (\002cient.)h(It)e(is)g(e)o(xpected)g(that)g(this)f(routine)g(will)0 769 y(appear)h(only)g(within)e(a)j(single)e(higher)o(-le)o(v)o(el)g (routine)g(that)h(reads)g(data)g(into)f(storage)h(or)o(ganized)f(in)h (a)h(con)n(v)o(enient)e(way)0 825 y(for)h(the)g(calling)f(application.) 0 882 y(Note)h(that)f(to)h(support)f(the)h(annotated)f(SLOG2)g (\002les,)i(a)g(display)d(program)j(will)e(need)h(to)g(call)g(this)f (routine.)j(Since)e(the)0 938 y(display)f(program)h(may)h(be)f(written) f(in)h(a)g(v)o(ery)h(dif)o(ferent)f(language)f(\(e.g.,)i(Ja)o(v)o(a)g (or)f(TCL\),)h(this)e(routine)g(uses)g(a)i(v)o(ery)0 995 y(simple)f(style)f(for)h(communicating)f(data.)15 b(In)c(an)g(entirely)f(C)i(en)n(vironment,)f(a)g(more)h(ele)o(gant)f (interface)g(could)f(use)h(a)0 1051 y(call)g(back)g(function)f(that)h (would)e(handle)i(transferring)f(data)h(from)h(the)f(trace)g(\002le)h (to)f(the)g(SLOG)g(data)g(structures.)0 1196 y Fi(Example)0 1284 y Fp(W)l(e)h(need)f(an)g(e)o(xample)h(that)e(sho)o(ws)g(a)i (simple)e(implementation)g(of)h(this)f(routine;)g(that)h(will)f(make)h (precise)g(ho)o(w)g(to)g(use)0 1340 y(the)g(ar)o(guments.)j(That)d(e)o (xample)g(should)f(be)h(careful)h(to)e(check)i(the)f(max)g(v)o(alues)g (for)g(each)h(array)m(.)p 0 1459 1950 9 v 0 1515 a Fn(TRA)n(CE)p Fk(_)p Fn(Get)p Fk(_)p Fn(next)p Fk(_)p Fn(ycoordmap)g Fp(\227)g(Return)f(the)g(content)f(of)i(a)f(y-axis)g(coordinate)f(map)0 1660 y Fi(Synopsis)0 1748 y Fk(int)28 b(TRACE_Get_nex)q(t_yc)q(oor)q (dmap)q(\()i(TRACE_file)g(fp,)818 1804 y(char)f(*title_name,)818 1861 y(char)g(**column_names,)818 1917 y(int)f(*coordmap_sz)q(,)i(int)e (coordmap_base)q([],)818 1973 y(int)g(*coordmap_po)q(s,)i(const)f(int)f (coordmap_max,)818 2030 y(int)g(*n_methodIDs)q(,)i(int)e(methodID_base) q([],)818 2086 y(int)g(*methodID_po)q(s,)i(const)f(int)f(methodID_max)j (\))952 2613 y Fp(32)p eop %%Page: 33 34 33 33 bop 0 286 a Fi(Output)10 b(Parameters)0 396 y(Input)i(Parameters) 0 483 y Fn(fp)260 b Fp(Pointer)11 b(to)f(a)i(trace)g(\002le)f(handle)0 540 y Fn(coordmap)p Fk(_)p Fn(max)300 596 y Fp(Allocated)f(size)h(of)g Fk(coordmap_bas)q(e)j Fp(array)0 687 y Fn(methodID)p Fk(_)p Fn(max)300 744 y Fp(Allocated)c(size)h(of)g Fk(methodID_bas)q(e) j Fp(array)0 926 y Fi(Input/Output)9 b(Parameters)0 1013 y Fn(coordmap)p Fk(_)p Fn(pos)300 1069 y Fp(On)i(input,)f(the)h (\002rst)g(free)h(location)e(in)h Fk(coordmap_base)p Fp(.)18 b(Updated)10 b(on)h(output)e(to)i(the)300 1126 y(ne)o(w)g(\002rst)g(free)h(location.)0 1165 y Fn(methodID)p Fk(_)p Fn(pos)300 1222 y Fp(On)f(input,)f(the)h(\002rst)g(a)o(v)o (ailable)f(position)f(in)i Fk(methodID_base)31 b Fp(On)11 b(output,)f(changed)h(to)300 1278 y(indicate)f(the)h(ne)o(w)g(\002rst)g (a)o(v)o(ailable)g(position.)0 1418 y Fi(Output)f(Parameters)0 1505 y Fn(title)p Fk(_)p Fn(name)91 b Fp(character)12 b(array)g(of)f(length,)f Fk(max_title_nam)q(e)p Fp(,)15 b(is)10 b(assumed)h(on)g(input,)f(where)300 1562 y Fk(max_title_nam)q (e)k Fp(is)d(de\002ned)g(by)g Fk(TRACE_Peek_nex)q(t_yc)q(oor)q(dmap)q (\(\))p Fp(.)18 b(The)300 1618 y(title)10 b(name)i(of)f(this)f(map)i (which)e(is)h(NULL)f(terminated)h(will)f(be)i(stored)e(in)h(this)f (character)300 1674 y(array)i(on)f(output.)0 1719 y Fn(column)p Fk(_)p Fn(names)300 1775 y Fp(an)g(array)h(of)f(character)h(arrays)g (to)e(store)h(the)g(column)g(names.)j(Each)d(character)h(array)g(is)f (of)300 1832 y(length)f(of)h Fk(max_column_na)q(me)p Fp(.)18 b(There)11 b(are)h Fk(ncolumns-1)i Fp(character)e(arrays)300 1888 y(altogether)n(.)h(where)e Fk(ncolumns)j Fp(and)d Fk(max_column_name)k Fp(are)d(returned)f(by)300 1945 y Fk(TRACE_Peek_ne)q(xt_y)q(coor)q(dma)q(p\(\))p Fp(.)18 b(The)11 b(name)h(for)f(the)g(\002rst)g(column)g(is)300 2001 y(assumed)g(to)g(be)g(kno)o(wn,)f(only)g(the)h(last)g Fk(ncolumns-1)j Fp(columns)c(need)h(to)g(be)g(labeled.)0 2050 y Fn(coordmap)p Fk(_)p Fn(sz)38 b Fp(T)l(otal)11 b(number)g(of)g(inte)o(gers)g(in)f Fk(coordmap[][])q Fp(.)17 b Fk(coordmap_sz)e Fh(=)c Fk(nrows)i Fp(*)300 2107 y Fk(ncolumns)p Fp(,)h(otherwise)c(an)h(error)h(will)e(be)h (\003agged.)k(Where)c Fk(nrows)i Fp(and)e Fk(ncolumns)300 2163 y Fp(are)h(returned)f(by)f Fk(TRACE_Peek_n)q(ext)q(_yco)q(ordm)q (ap\()q(\))0 2208 y Fn(coordmap)p Fk(_)p Fn(base)300 2264 y Fp(Pointer)h(to)f(storage)h(to)g(hold)f(y-axis)g(coordinate)h (map.)0 2356 y Fn(n)p Fk(_)p Fn(methodIDs)33 b Fp(number)11 b(of)g(method)g(IDs)g(associated)f(with)h(this)f(map.)0 2412 y Fn(methodID)p Fk(_)p Fn(base)952 2613 y Fp(33)p eop %%Page: 34 35 34 34 bop 300 286 a Fp(Pointer)11 b(to)f(storage)h(to)g(hold)f(method)h (IDs.)0 467 y Fi(Retur)o(n)h(V)-5 b(alue)0 555 y Fn(ierr)227 b Fp(Returned)11 b(inte)o(ger)g(error)h(status.)h(It)e(will)f(be)h (used)g(as)g(an)g(ar)o(gument)g(in)300 611 y(TRA)n(CE)p Fk(_)p Fp(Get)p Fk(_)p Fp(err)p Fk(_)p Fp(string\(\))g(for)h(possible)d (error)j(string.)0 745 y Fi(Notes)0 833 y Fp(Each)f(entry)g(in)g (y-axis)f(coordinate)g(map)i(is)f(assumed)g(to)f(be)i Fk(__)p Fp(continuously)p Fk(__)d Fp(stored)h(in)h Fk(coordmap_base)q ([])p Fp(,)0 889 y(i.e.)k(e)o(v)o(ery)c Fk(ncolumns)j Fp(consecuti)o(v)o(e)c(inte)o(gers)g(in)h Fk(coordmap_base)q([])k Fp(is)10 b(considered)h(one)g(coordmap)g(entry)m(.)p 0 1008 1950 9 v 0 1064 a Fn(TRA)n(CE)p Fk(_)p Fn(Get)p Fk(_)p Fn(position)g Fp(\227)h(Return)f(the)g(current)g(position)e(in)i (an)g(trace)h(\002le)0 1209 y Fi(Synopsis)0 1296 y Fk(int)28 b(TRACE_Get_pos)q(itio)q(n\()j(TRACE_file)f(fp,)e(TRACE_int64_t)i (*offset)g(\))0 1546 y Fi(Input)12 b(Parameter)0 1633 y Fn(fp)260 b Fp(T)n(race)12 b(\002le)g(handle)0 1778 y Fi(Output)e(Parameter)0 1865 y Fn(offset)194 b Fp(Current)11 b(\002le)h(of)o(fset.)0 2010 y Fi(Retur)o(n)g(V)-5 b(alue)0 2097 y Fn(ierr)227 b Fp(Returned)11 b(inte)o(ger)g(error)h(status.)h (It)e(will)f(be)h(used)g(as)g(an)g(ar)o(gument)g(in)300 2154 y(TRA)n(CE)p Fk(_)p Fp(Get)p Fk(_)p Fp(err)p Fk(_)p Fp(string\(\))g(for)h(possible)d(error)j(string.)0 2288 y Fi(Notes)0 2375 y Fp(This)e(routine)g(and)h Fk(TRACE_Set_po)q(siti)q (on)k Fp(are)c(used)g(in)g(the)g(construction)e(of)i(an)g(annotated)f (Slog)h(\002le.)k(In)c(an)0 2432 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 2488 y(making)g(a)g(copy)g(of)g(the)g(records.)952 2613 y(34)p eop %%Page: 35 36 35 35 bop 0 286 a Fp(If)12 b(the)f(trace)g(\002le)h(is)e(actually)h(a)g (collection)f(of)h(\002les,)h(then)e(that)h(information)f(should)f(be)j (encoded)e(within)g(the)h(position.)p 0 405 1950 9 v 0 462 a Fn(TRA)n(CE)p Fk(_)p Fn(Open)h Fp(\227)g(Open)f(a)g(trace)h (\002le)g(for)f(input)0 607 y Fi(Synopsis)0 694 y Fk(int)28 b(TRACE_Open\()i(const)f(char)f(filespec[],)j(TRACE_file)f(*fp)e(\))0 946 y Fi(Input)12 b(Parameter)0 1033 y Fn(\002lespec)159 b Fp(Name)12 b(of)f(\002le)h(\(or)f(\002les;)g(see)g(belo)o(w\))g(to)f (open.)0 1178 y Fi(Output)g(Parameter)0 1265 y Fn(fp)260 b Fp(T)n(race)12 b(\002le)g(handle)e(\(see)i(Notes\).)0 1411 y Fi(Retur)o(n)g(V)-5 b(alue)0 1498 y Fn(ierr)227 b Fp(Returned)11 b(inte)o(ger)g(error)h(status.)h(It)e(will)f(be)h (used)g(as)g(an)g(ar)o(gument)g(in)300 1554 y(TRA)n(CE)p Fk(_)p Fp(Get)p Fk(_)p Fp(err)p Fk(_)p Fp(string\(\))g(for)h(possible)d (error)j(string.)0 1689 y Fi(Notes)0 1776 y Fp(In)f(order)g(to)g(allo)o (w)f(TRA)n(CE-API)i(to)e(pro)o(vide)h(its)f(o)o(wn)g(help)h(message,)g (i.e)h Fk(-h)p Fp(,)g(in)f Fk(filespec)i Fp(string,)d(when)h(the)g(API) 0 1833 y(is)g(used)f(in)h(program)g(like)g(T)n(raceT)l(oSlog2.)j (Calling)c(program)h(of)h(TRA)n(CE)p Fk(_)p Fp(Open\(\))f(should)f (check)h(if)g(the)g(returned)0 1889 y(TRA)n(CE)p Fk(_)p Fp(\002le)h(handle)e Fk(fp)i Fp(is)f(NULL)g(instead)f(of)h(just)f (checking)g(of)i(the)f(returned)f(error)i(status.)h(If)f Fk(fp)g Fp(is)e(NULL,)h(it)0 1945 y(means)g(calling)g(program)g(should) f(call)h(TRA)n(CE)p Fk(_)p Fp(Get)p Fk(_)p Fp(err)p Fk(_)p Fp(string\(\))g(for)g(either)g(error)h(message)f(or)g(possible)f(help)0 2002 y(message.)k(The)d(help)g(message)g(should)e(be)i(stored)f(at)h (ierr)p Fh(=)p Fp(0,)h(so)f(the)f(calling)g(program)h(of)g(TRA)n(CE)p Fk(_)p Fp(Open\(\))h(kno)o(ws)d(if)0 2058 y(it)i(should)e(e)o(xit)i (the)g(program)g(with)g(error)g(or)g(normally)m(.)0 2115 y(The)g(trace)g(\002le)g(may)h(be)f(a)g(collection)f(of)g(\002les,)i (ho)o(we)o(v)o(er)n(,)f(to)g(the)f(user)h(of)g(the)g(TRA)n(CE)g(API,)h (there)f(is)f(a)h(single)f(\(virtual\))0 2171 y(\002le.)15 b(The)c Fk(filespec)i Fp(is)e(an)o(y)g(string)f(that)h(is)f(accepted)i (by)e(the)h(TRA)n(CE)h(API.)g(Since)f(the)g(Slog)g(program)g(will)f (only)0 2228 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 2284 y(Possible)f(interpretations)f(of)i Fk(filespec)j Fp(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 2341 y(names)i(of)h(other)e(\002les\),)i(a)g(colon)e(separated)h(list)f(of)h (\002les)g(\(i.e.,)i Fk(file1:file2:fi)q(le3)p Fp(\))q(,)h(a)e(\002le)f (pattern)g(\(i.e.,)0 2397 y Fk(file\045d)p Fp(\),)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 2454 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 Fk(find)28 b(.)55 b(-name)29 b('*.log')g Fp(\).)952 2613 y(35)p eop %%Page: 36 37 36 36 bop 0 286 a Fk(filespec)14 b Fp(could)c(contain)g(trace\002le)i (selection)e(criteria,)h(e.g.)k Fk(-s)28 b([5,6-8])h(trc.*)p Fp(.)16 b(The)11 b(implementation)f(of)0 343 y(the)h(TRA)n(CE)g(API)h (must)f(document)f(the)h(acceptable)h Fk(filespec)h Fp(so)e(that)f (programs)h(that)g(make)g(use)g(of)h(the)e(TRA)n(CE)0 399 y(API)i(can)f(pro)o(vide)g(complete)g(documentation)e(to)i(the)g (user)n(.)p 0 518 1950 9 v 0 575 a Fn(TRA)n(CE)p Fk(_)p Fn(P)o(eek)p Fk(_)p Fn(next)p Fk(_)p Fn(category)h Fp(\227)g(Peek)g(at) f(the)g(ne)o(xt)g(cate)o(gory)g(to)g(determine)g(necessary)g(data)g (sizes)0 720 y Fi(Synopsis)0 807 y Fk(int)28 b(TRACE_Peek_ne)q(xt_c)q (ate)q(gory)q(\()i(const)f(TRACE_file)h(fp,)818 863 y(int)e(*n_legend,) i(int)e(*n_label,)818 920 y(int)g(*n_methodIDs)j(\))0 1172 y Fi(Input)12 b(Parameter)0 1259 y Fn(fp)260 b Fp(T)n(race)12 b(\002le)g(handle)0 1404 y Fi(Output)e(Parameters)0 1491 y Fn(n)p Fk(_)p Fn(legend)122 b Fp(Number)11 b(of)h(characters)f (needed)g(for)h(the)e(le)o(gend)0 1548 y Fn(n)p Fk(_)p Fn(label)154 b Fp(Number)11 b(of)h(characters)f(needed)g(for)h(the)e (label)0 1604 y Fn(n)p Fk(_)p Fn(methodIDs)33 b Fp(Number)11 b(of)h(methods)e(\(Always)f(zero)j(or)f(one)g(in)g(this)f(v)o(ersion\)) 0 1749 y Fi(Retur)o(n)i(V)-5 b(alue)0 1837 y Fn(ierr)227 b Fp(Returned)11 b(inte)o(ger)g(error)h(status.)h(It)e(will)f(be)h (used)g(as)g(an)g(ar)o(gument)g(in)300 1893 y(TRA)n(CE)p Fk(_)p Fp(Get)p Fk(_)p Fp(err)p Fk(_)p Fp(string\(\))g(for)h(possible)d (error)j(string.)0 2028 y Fi(Notes)0 2115 y Fp(The)f(output)f (parameters)h(allo)o(w)g(the)f(calling)h(code)g(to)f(allocate)h(space)h (for)f(the)g(v)o(ariable-length)e(data)i(in)g(a)h(cate)o(giry)0 2171 y(before)f(calling)g Fk(TRACE_Get_next_)q(cate)q(gor)q(y\(\))p Fp(.)p 0 2290 V 0 2346 a Fn(TRA)n(CE)p Fk(_)p Fn(P)o(eek)p Fk(_)p Fn(next)p Fk(_)p Fn(composite)h Fp(\227)g(Peek)g(at)f(the)g(ne)o (xt)g(composite)f(dra)o(wable)h(to)f(determine)h(the)g(number)h(of)0 2403 y(primiti)o(v)o(e)e(dra)o(wables)h(in)f(this)g(composite)h (object,)g(time)g(range,)g(and)g(size)g(of)h(pop)e(up)h(data.)952 2613 y(36)p eop %%Page: 37 38 37 37 bop 0 286 a Fi(Synopsis)0 374 y Fk(int)28 b(TRACE_Peek_ne)q(xt_c) q(omp)q(osit)q(e\()i(const)f(TRACE_file)h(fp,)845 430 y(double)f(*starttime,)i(double)e(*endtime,)845 486 y(int)g (*n_primitives,)i(int)d(*n_bytes)h(\))0 718 y Fi(Input)12 b(Parameter)0 805 y Fn(fp)260 b Fp(T)n(race)12 b(\002le)g(handle)0 948 y Fi(Output)e(Parameters)0 1035 y Fn(starttime,)h(endtime)300 1091 y Fp(time)g(range)g(for)h(dra)o(wable)0 1183 y Fn(n)p Fk(_)p Fn(primitives)50 b Fp(Number)11 b(of)h(primiti)o(v)o(e)e(dra)o (wables)g(in)h(this)f(composite)g(object.)0 1240 y Fn(n)p Fk(_)p Fn(bytes)147 b Fp(Number)11 b(of)h(data)f(bytes)0 1382 y Fi(Retur)o(n)h(V)-5 b(alue)0 1469 y Fn(ierr)227 b Fp(Returned)11 b(inte)o(ger)g(error)h(status.)h(It)e(will)f(be)h (used)g(as)g(an)g(ar)o(gument)g(in)300 1526 y(TRA)n(CE)p Fk(_)p Fp(Get)p Fk(_)p Fp(err)p Fk(_)p Fp(string\(\))g(for)h(possible)d (error)j(string.)0 1657 y Fi(Notes)0 1745 y Fp(This)e(function)g (really)h(serv)o(es)g(two)f(purposes.)j(The)e(time)h(range)f(allo)o(ws) f(the)h(SLOG2)f(algorithm)h(to)f(determine)h(which)0 1801 y(treenode)g(this)f(dra)o(wable)h(should)e(be)j(placed)f(in)f (\(which)h(may)h(in\003uence)f(where)g(in)g(memory)h(the)e(data)i(is)e (read)i(by)0 1858 y Fk(TRACE_Get_nex)q(t_co)q(mpos)q(ite)q(\(\))p Fp(\).)18 b(The)11 b(number)g(of)g(primiti)o(v)o(es)f(returned)h(allo)o (ws)f(the)h(calling)f(program)h(to)0 1914 y(in)n(v)o(oke)f Fk(TRACE_Get_next)q(_pr)q(imit)q(ives)q(\(\))15 b Fp(the)c(same)g (number)h(of)f(times)g(to)f(collect)h(all)g(the)g(primiti)o(v)o(e)0 1970 y(dra)o(wables)f(in)h(the)g(composite)f(object.)k(The)d(other)g (return)g(v)o(alues)f(allo)o(w)g(the)h(calling)f(code)h(to)g(allocate)g (space)g(for)h(the)0 2027 y(v)o(ariable-length)d(data)i(in)g(the)g (composite)f(dra)o(wable)h(before)h(calling)e Fk(TRACE_Get_next)q(_com) q(posi)q(te\()q(\))p Fp(.)p 0 2146 1950 9 v 0 2202 a Fn(TRA)n(CE)p Fk(_)p Fn(P)o(eek)p Fk(_)p Fn(next)p Fk(_)p Fn(kind)j Fp(\227)f(Determine)f(the)g(kind)f(of)h(the)g(ne)o(xt)g (record)0 2345 y Fi(Synopsis)0 2432 y Fk(int)28 b(TRACE_Peek_ne)q(xt_k) q(ind)q(\()i(const)f(TRACE_file)h(fp,)e(TRACE_Rec_Kind)q(_t)i (*next_kind)g(\))952 2613 y Fp(37)p eop %%Page: 38 39 38 38 bop 0 286 a Fi(Input)12 b(Parameter)0 374 y Fn(fp)260 b Fp(T)n(race)12 b(\002le)g(handle)0 519 y Fi(Output)e(Parameters)0 606 y Fn(next)p Fk(_)p Fn(kind)102 b Fp(T)l(ype)11 b(of)g(ne)o(xt)g (record.)k(The)c(kind)f Fk(TRACE_EOF)p Fp(,)k(which)d(has)g(the)g(v)o (alue)f Fk(0)p Fp(,)i(is)f(returned)g(at)300 663 y(end-of-\002le.)0 788 y Fi(Retur)o(n)h(V)-5 b(alue)0 875 y Fn(ierr)227 b Fp(Returned)11 b(inte)o(ger)g(error)h(status.)h(It)e(will)f(be)h (used)g(as)g(an)g(ar)o(gument)g(in)300 931 y(TRA)n(CE)p Fk(_)p Fp(Get)p Fk(_)p Fp(err)p Fk(_)p Fp(string\(\))g(for)h(possible)d (error)j(string.)0 1066 y Fi(Notes)0 1153 y Fp(The)f(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 1210 y(type)g(of)h(the)g(ne)o(xt)g(record)g(and)g(then)f(use)h (the)g(appropriate)f Fk(TRACE_Peek_xx)q(x)k Fp(routine)c(to)h(disco)o (v)o(er)f(the)h(size)g(of)g(an)o(y)0 1266 y(v)o(ariable-sized)f (\002elds)h(and)g Fk(TRACE_Get_xxx)k Fp(routine)10 b(to)h(read)g(it.)j (A)d(high-performance)g(implementation)f(of)0 1323 y(these)h(routines)f (will)g(likely)f(use)i(b)o(uf)o(fered)g(I/O.)p 0 1441 1950 9 v 0 1498 a Fn(TRA)n(CE)p Fk(_)p Fn(P)o(eek)p Fk(_)p Fn(next)p Fk(_)p Fn(primitive)g Fp(\227)h(Peek)f(at)h(the)f(ne)o(xt)g (primiti)o(v)o(e)f(dra)o(wable)h(to)f(determine)h(necessary)g(data)h (sizes)0 1554 y(and)f(time)g(range)0 1700 y Fi(Synopsis)0 1787 y Fk(int)28 b(TRACE_Peek_ne)q(xt_p)q(rim)q(itiv)q(e\()i(const)f (TRACE_file)h(fp,)845 1843 y(double)f(*starttime,)i(double)e(*endtime,) 845 1900 y(int)g(*nt_coords,)h(int)e(*ny_coords,)i(int)e(*n_bytes)i(\)) 0 2151 y Fi(Input)12 b(Parameter)0 2239 y Fn(fp)260 b Fp(T)n(race)12 b(\002le)g(handle)952 2613 y(38)p eop %%Page: 39 40 39 39 bop 0 286 a Fi(Output)10 b(Parameters)0 374 y Fn(starttime,)h (endtime)300 430 y Fp(time)g(range)g(for)h(dra)o(wable)0 522 y Fn(nt)p Fk(_)p Fn(coords)104 b Fp(Number)11 b(of)h(time)f (coordinates)0 578 y Fn(ny)p Fk(_)p Fn(coords)96 b Fp(Number)11 b(of)h(y)f(coordinates)0 635 y Fn(n)p Fk(_)p Fn(bytes)147 b Fp(Number)11 b(of)h(data)f(bytes)0 780 y Fi(Retur)o(n)h(V)-5 b(alue)0 867 y Fn(ierr)227 b Fp(Returned)11 b(inte)o(ger)g(error)h (status.)h(It)e(will)f(be)h(used)g(as)g(an)g(ar)o(gument)g(in)300 923 y(TRA)n(CE)p Fk(_)p Fp(Get)p Fk(_)p Fp(err)p Fk(_)p Fp(string\(\))g(for)h(possible)d(error)j(string.)0 1058 y Fi(Notes)0 1145 y Fp(This)e(function)g(really)h(serv)o(es)g(two)f (purposes.)j(The)e(time)h(range)f(allo)o(ws)f(the)h(SLOG2)f(algorithm)h (to)f(determine)h(which)0 1202 y(treenode)g(a)g(dra)o(wable)g(should)f (be)h(placed)g(in)g(\(which)f(may)i(in\003uence)f(where)g(in)g(memory)h (the)f(data)g(is)g(read)g(by)0 1258 y Fk(TRACE_Get_nex)q(t_pr)q(imit)q (ive)q(\(\))p Fp(\).)18 b(The)11 b(other)f(return)h(v)o(alues)g(allo)o (w)f(the)h(calling)f(code)h(to)g(allocate)g(space)0 1315 y(for)g(the)g(v)o(ariable-length)f(data)h(in)f(a)i(dra)o(wable)f (before)g(calling)f Fk(TRACE_Get_ne)q(xt_p)q(rim)q(itiv)q(e)p Fp(.)p 0 1433 1950 9 v 0 1490 a Fn(TRA)n(CE)p Fk(_)p Fn(P)o(eek)p Fk(_)p Fn(next)p Fk(_)p Fn(ycoordmap)i Fp(\227)g(Get)f (the)g(size)g(and)g(the)g(description)e(of)j(the)e(y-axis)h(coordinate) f(map)0 1635 y Fi(Synopsis)0 1722 y Fk(int)28 b(TRACE_Peek_ne)q(xt_y)q (coo)q(rdma)q(p\()i(TRACE_file)g(fp,)845 1779 y(int)f(*n_rows,)g(int)f (*n_columns,)845 1835 y(int)h(*max_column_nam)q(e,)845 1892 y(int)g(*max_title_name)q(,)845 1948 y(int)g(*n_methodIDs)h(\))0 2200 y Fi(Input)12 b(Parameter)0 2287 y Fn(fp)260 b Fp(Pointer)11 b(to)f(a)i(trace)g(\002le)f(handle)952 2613 y(39)p eop %%Page: 40 41 40 40 bop 0 286 a Fi(Output)10 b(Parameters)0 374 y Fn(n)p Fk(_)p Fn(r)o(ows)155 b Fp(Number)11 b(of)h(ro)o(ws)e(of)h(the)g (y-axis)g(coordinate)f(map)0 430 y Fn(n)p Fk(_)p Fn(columns)86 b Fp(Number)11 b(of)h(columns)e(of)h(the)g(Y)-5 b(axis)11 b(coordinate)f(map)0 486 y Fn(max)p Fk(_)p Fn(column)p Fk(_)p Fn(name)300 543 y Fp(The)h(maximum)h(length)e(of)h(the)g(column) g(name)g(arrays,)h(i.e.)j(max)p Fk(_)p Fp(column)p Fk(_)p Fp(name)d Fh(=)300 599 y Fp(MAX\()g Fj(f)f Fp(column)p Fk(_)p Fp(name[i])g Fj(g)g Fp(\))0 650 y Fn(max)p Fk(_)p Fn(title)p Fk(_)p Fn(name)300 707 y Fp(T)n(itle)g(string)f(for)h(this)f (map)0 798 y Fn(n)p Fk(_)p Fn(methodIDs)33 b Fp(Number)11 b(of)h(Method)e(IDs)h(associated)f(with)h(this)f(map)0 944 y Fi(Retur)o(n)i(V)-5 b(alue)0 1031 y Fn(ierr)227 b Fp(Returned)11 b(inte)o(ger)g(error)h(status.)h(It)e(will)f(be)h (used)g(as)g(an)g(ar)o(gument)g(in)300 1087 y(TRA)n(CE)p Fk(_)p Fp(Get)p Fk(_)p Fp(err)p Fk(_)p Fp(string\(\))g(for)h(possible)d (error)j(string.)0 1222 y Fi(Notes)0 1309 y Fp(Both)f Fk(max_column_nam)q(e)j Fp(and)d Fk(max_title_nam)q(e)j Fp(includes)c(the)h(NULL)g(character)h(needed)f(at)g(the)g(end)g(of)0 1366 y(the)g Fk(title_name)j Fp(and)d Fk(column_names[)q(i])j Fp(used)d(in)g Fk(TRACE_Get_next)q(_yco)q(ord)q(map\()q(\))p 0 1484 1950 9 v 0 1541 a Fn(TRA)n(CE)p Fk(_)p Fn(Rec)p Fk(_)p Fn(Kind)p Fk(_)p Fn(t)i Fp(\227)e(T)l(ypes)g(of)g(records)h (returned)e(by)h(the)g(TRA)n(CE)h(API)0 1686 y Fi(Synopsis)0 1773 y Fk(typedef)29 b(enum)g({)e(TRACE_EOF=0,)409 1830 y(TRACE_PRIMITI)q(VE_D)q(RAW)q(ABLE)q(=1,)409 1886 y(TRACE_COMPOSI)q (TE_D)q(RAW)q(ABLE)q(=2,)409 1943 y(TRACE_CATEGOR)q(Y=3,)409 1999 y(TRACE_YCOORDM)q(AP=4)k(})0 2056 y(TRACE_Rec_Kin)q(d_t;)0 2307 y Fi(T)l(ypes)0 2394 y Fn(TRA)n(CE)p Fk(_)p Fn(EOF)23 b Fp(End)11 b(of)g(\002le.)j(Indicates)d(that)f(no)h(more)h(items)f (are)h(a)o(v)o(ailable.)0 2451 y Fn(TRA)n(CE)p Fk(_)p Fn(PRIMITIVE)p Fk(_)p Fn(DRA)-6 b(W)h(ABLE)952 2613 y Fp(40)p eop %%Page: 41 42 41 41 bop 300 286 a Fp(Primiti)o(v)o(e)11 b(Dra)o(wable;)f(for)i(e)o (xample,)g(an)f(e)o(v)o(ent,)g(state)g(or)g(arro)o(w)m(.)0 378 y Fn(TRA)n(CE)p Fk(_)p Fn(COMPOSITE)p Fk(_)p Fn(DRA)-6 b(W)h(ABLE)300 435 y Fp(Composite)10 b(Dra)o(wable;)h(a)g(collection)f (of)h(primiti)o(v)o(e)g(dra)o(wables.)0 527 y Fn(TRA)n(CE)p Fk(_)p Fn(CA)l(TEGOR)n(Y)300 583 y Fp(Cate)o(gory)m(,)h(describing)d (classes)i(of)g(dra)o(wables.)0 675 y Fn(TRA)n(CE)p Fk(_)p Fn(YCOORDMAP)300 732 y Fp(Y)-5 b(-axis)10 b(Coordinate)f(map,)i (describing)e(ho)o(w)g(to)h(interpret)g(or)g(label)g(the)g(y)g (coordinate)f(v)o(alues)0 913 y Fi(Notes)0 1000 y Fp(These)i(record)g (types)g(represent)g(the)g(type)f(of)h(data)g(that)g(the)g(TRA)n(CE)g (API)h(presents)e(to)h(the)g(calling)f(program.)15 b(The)0 1056 y(source)c(\002le)g(that)g(the)g(TRA)n(CE)g(API)h(is)f(reading)f (may)i(or)f(may)h(not)e(contain)h(an)o(y)g(of)g(these)g(record)g (types.)j(In)d(fact,)g(most)0 1113 y(trace)h(\002les)f(will)f(not)g (contain)h(an)o(y)g(of)g(these)g(record)g(types;)f(instead,)h(the)g (implementation)e(of)j(the)f(TRA)n(CE)g(API)h(will)0 1169 y(read)g(the)e(source)h(trace)h(\002le)g(and)f(create)g(these)g (from)h(the)f(ra)o(w)h(data)f(in)g(the)f(original)g(source)h(\002le.)p 0 1288 1950 9 v 0 1345 a Fn(TRA)n(CE)p Fk(_)p Fn(Set)p Fk(_)p Fn(position)g Fp(\227)h(Set)f(the)g(current)g(position)e(of)j(a) f(trace)h(\002le)0 1490 y Fi(Synopsis)0 1577 y Fk(int)28 b(TRACE_Set_pos)q(itio)q(n\()j(TRACE_file)f(fp,)e(TRACE_int64_t)i (offset)f(\))0 1829 y Fi(Input)12 b(Parameters)0 1916 y Fn(fp)260 b Fp(T)n(race)12 b(\002le)g(handle)0 1972 y Fn(offset)194 b Fp(Position)9 b(to)i(set)g(\002le)g(at)0 2118 y Fi(Retur)o(n)h(V)-5 b(alue)0 2205 y Fn(ierr)227 b Fp(Returned)11 b(inte)o(ger)g(error)h(status.)h(It)e(will)f(be)h (used)g(as)g(an)g(ar)o(gument)g(in)300 2261 y(TRA)n(CE)p Fk(_)p Fp(Get)p Fk(_)p Fp(err)p Fk(_)p Fp(string\(\))g(for)h(possible)d (error)j(string.)952 2613 y(41)p eop %%Page: 42 43 42 42 bop 0 286 a Fi(Notes)0 374 y Fp(The)11 b(\002le)g(refered)i(to)d (here)i(is)f(relati)o(v)o(e)f(to)h(the)g Fk(filespec)j Fp(gi)o(v)o(en)c(in)h(a)g Fk(TRACE_Open)j Fp(call.)h(If)c(that)g Fk(filespec)0 430 y Fp(describes)f(a)i(collection)e(of)h(real)g (\002les,)h(then)f(this)f(calls)g(sets)h(the)g(position)e(to)h(the)h (correct)h(location)e(in)g(the)h(correct)h(real)0 486 y(\002le.)0 695 y Fq(C)60 b(SLOG2)14 b(Output)h(API)0 799 y Fp(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 855 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(.)71 911 y(The)i(SLOG2)g(Output)e(API)j(does) f Fm(not)g Fp(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 968 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 1024 y(resulting)9 b(\002le.)0 1118 y Fn(header)114 1224 y(cookie)22 b Fp(type)11 b(of)g(\002le,)h(e.g.,)g (SLOG)f(annotation)e(\002le,)j(SLOG)f(complete)g(\002le)114 1298 y Fn(version)21 b Fp(to)11 b(ensure)g(compatibility)e(with)h (Display)g(program)114 1371 y Fn(textlen)23 b Fp(length)10 b(of)h(follo)o(wing)e(description)g(\002eld)114 1444 y Fn(description)23 b Fp(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 1500 y(dataset)10 b(3\224\))114 1573 y Fn(\002lespec)23 b Fp(\002le)13 b(speci\002cation)e(string)h (used)g(with)f Fk(TRACE)p 1035 1573 14 2 v 18 w(Open)p Fp(.)20 b(This)11 b(\002eld)i(is)f(required)g(for)h(the)g(Slog)f (annota-)214 1630 y(tion)e(format)h(and)g(optional)f(otherwise.)0 1736 y Fn(tr)o(ee)i(nodes)23 b Fp(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 1830 y Fn(category)g(inf)o(ormation)22 b Fp(set)11 b(of)g(cate)o(gory)g (description)e(records)0 1923 y Fn(coordinate)i(maps)23 b Fp(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 2017 y Fn(method)h(de\002nitions)23 b Fp(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 2074 y(objects.)e(These)e(are)h(not)e (used)h(in)f(the)h(initial)f(SLOG2)h(implementation.)0 2168 y Fn(tr)o(ee)h(dir)o(ectory)23 b Fp(The)11 b(hierarchy)g(of)g (describing)f(the)h(tree)h(of)f(nodes)0 2261 y Fn(annotations)22 b Fp(An)o(y)11 b(user)o(-de\002ned)g(annotations)e(added)i(to)g(an)g (SLOG2)g(\002le)0 2355 y Fn(postamble)114 2461 y(category)p 284 2461 V 16 w(offset)22 b Fp(of)o(fset)11 b(from)h(end)f(to)f(cate)o (gory)i(information)952 2613 y(42)p eop %%Page: 43 44 43 43 bop 114 286 a Fn(tr)o(ee)p 191 286 14 2 v 17 w(offset)23 b Fp(of)o(fset)10 b(from)i(end)f(back)g(to)g(be)o(ginning)e(of)j(tree) 114 359 y Fn(annote)p 248 359 V 16 w(offset)23 b Fp(of)o(fset)11 b(from)g(the)g(end)g(to)g(the)g(annotations)114 433 y Fn(coord)p 228 433 V 16 w(offset)23 b Fp(of)o(fset)11 b(from)g(the)g(end)g(to)g(the)g(coordinate)f(maps)114 506 y Fn(method)p 263 506 V 16 w(offset)23 b Fp(of)o(fset)10 b(from)g(the)g(end)f(to)h(the)f(method)h(descriptions.)h(This)e(is)g (pro)o(vided)g(for)h(to)g(support)e(general)214 562 y(dra)o(wing)i (methods)h(in)f(future)h(v)o(ersions)f(of)i(SLOG.)71 668 y(This)h(\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 725 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 781 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 Fk(SLOG)p 1336 781 V 18 w(Treenode)p Fp(\))j(so)d(then)g(one)g(can)g(use)0 838 y(them)g(to)g(seek)g(to)g (speci\002c)g(frames)h(in)f(the)g(\002le.)71 894 y(A)g(cate)o(gory)g (record)g(includes)0 1000 y Fn(category)g(id)23 b Fp(\(small)11 b(int\))0 1094 y Fn(category)g(name)g(length)0 1188 y(category)g(name) 23 b Fp(\(string\))0 1282 y Fn(shape)g Fp(\(rectangle,)11 b(polygon,)f(arro)o(w)m(,)i(set-of-rectangles,)e(etc.)15 b(\))f(set-of)d(rects)g(is)g(for)g(\224bebit)g(handling\224)0 1376 y Fn(color)22 b Fp(\(r)n(,g,b,alpha\))12 b(default,)f(can)g(be)g (changed)g(by)g(display)0 1469 y Fn(textlength)h(of)f(f)o(ollowing)e (text)0 1563 y(text)j(f)o(or)f(display)21 b Fp(\(in)11 b(sprintf)f(format,)i(with)0 1657 y Fn(methods)f(to)h(use)23 b Fp(\(methods)9 b(are)j(the)e(popup)f(methods)h(\(e.g.,)i(popup)d(ar)o (gs,)i(popup)f(source)g(code,)h(etc.\)\))j(These)d(are)g(not)114 1714 y(supported)e(in)i(the)g(initial)e(release.)71 1820 y(A)i(data)g(record)g(has)0 1914 y Fn(category)g(id)23 b Fp(Identi\002es)11 b(the)h(cate)o(gory)g(of)g(this)e(record.)17 b(The)12 b(cate)o(gory)g(contains)f(information)g(about)g(ho)o(w)g(to)h (display)114 1970 y(this)e(record)0 2064 y Fn(time)h(range)23 b Fp(Range)11 b(in)g(time,)h(needed)f(for)g(the)g(SLOG2)g(algorithm)0 2158 y Fn(drawable)g(coordinates)23 b Fp(Coordinates)12 b(for)i(the)f(dra)o(wable,)i(both)d(in)i(time)f(and)h(relati)o(v)o(e)f (to)g(the)h Fl(y)r Fp(-axis)f(\(the)g Fl(y)j Fp(v)o(alues)114 2214 y(are)d(combined)f(with)g(a)i(coordinate)d(map)j(to)e(allo)o(w)g (the)h(display)e(program)i(to)f(handle)h(multiple)e(vie)o(ws,)i(such)f (as)114 2271 y(thread,)f(processor)n(,)g(or)g(node\).)0 2364 y Fn(instance)g(speci\002c)h(data)23 b Fp(This)12 b(is)g(combined)g(with)g(the)g Fk(sprintf)p Fp(-style)i(label)e(string) f(pro)o(vided)h(by)h(the)f(cate)o(gory)h(to)114 2421 y(pro)o(vide)d(a)i(te)o(xt)f(description)e(of)i(the)g(dra)o(wable)g (\(such)g(as)g(\223Send)g(with)g(tag)f(=)h(10)g(and)g(length)f(356)h (bytes\224\).)952 2613 y(43)p eop %%Page: 44 45 44 44 bop 71 286 a Fp(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 343 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 399 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 456 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 512 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 569 y(character)d(v)o(ersion)e(of)i(the)f(v)o (alue\).)0 693 y Fi(C.1)50 b(Method)12 b(De\002nitions)0 780 y Fp(The)f(method)g(de\002nition)e(passes)i(to)g(the)g(in)n(v)o (ocation)e(of)i(each)h(method)f(the)g(follo)o(wing)e(three)i(v)o (alues:)57 874 y(1.)23 b(The)11 b Fk(method)p 361 874 14 2 v 18 w(extra)h Fp(string)e(\(e)o(v)o(ery)i(use)f(of)g(that)g (method\))57 968 y(2.)23 b(The)15 b(cate)o(gory-speci\002ed)h Fk(extra)p 687 968 V 17 w(data)i Fp(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 1025 y(cate)o(gory\))57 1118 y(3.)23 b(The)11 b(byte)f(string)g(on)h (the)g(dra)o(wable)g(object.)71 1212 y(F)o(or)22 b(e)o(xample,)j(a)c (method)g(that)g(displays)f(the)h(ar)o(guments)g(for)h(a)g(method)f (might)f(use)i(a)f(cate)o(gory-speci\002ed)0 1269 y Fk(extra)p 138 1269 V 18 w(data)12 b Fp(string)e(containing,)g(for)h(e)o(xample,)i Fk("count)29 b(=)e(\045d\\nrank)j(=)d(\045d\\ntag)i(=)f(\045d")p Fp(.)15 b(A)d(method)0 1325 y(that)c(pops)h(up)f(a)i(source)f(code)g (box)f(might)h(ha)o(v)o(e)g(a)h Fk(method)p 961 1325 V 18 w(extra)g Fp(string)e(that)h(contains)e(the)i(name)h(of)f(the)g(e) o(x)o(ecutable)0 1382 y(\002le;)j(the)f(cate)o(gory-speci\002ed)h (string)e(would)g(be)i(empty)m(,)g(and)f(the)g(byte)h(string)e(of)i (the)f(dra)o(wable)g(object)g(would)f(contain)0 1438 y(the)h(address)g(in)f(the)h(program)h(where)f(the)g(dra)o(wable)g (object)f(was)h(logged.)71 1494 y(Methods)e(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 1551 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 1607 y(byte.)71 1664 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 1720 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.)71 1777 y(Methods)j(pro)o(vide)h(a)g(po)o(werful)f(mechanism)i(for)f (communication)f(information)g(on)h(ho)o(w)g(to)f(render)i(dra)o (wables)0 1833 y(between)9 b(the)g(program)h(that)f(generates)g(trace)h (\002les)g(and)f(the)g(program)h(that)f(renders)g(them,)h(in)f(a)h(way) f(that)g(is)g(transparent)0 1890 y(to)h(the)g(SLOG2)f(\002le.)14 b(Ho)o(we)o(v)o(er)n(,)d(for)f(the)g(\002rst)g(v)o(ersion)g(of)g(the)g (SLOG2)f(APIs,)i(general)f(methods)g(of)g(the)g(kind)f(described)0 1946 y(here)k(will)e(not)g(be)h(supported.)k(Instead,)c(a)g(fe)o(w)g (simple,)h(default)e(method)g(will)g(be)h(pro)o(vided)g(that)f(pro)o (vide)g(for)i(a)f(basic,)0 2003 y(te)o(xt-oriented)e(display)g(of)h (the)g(data)g(associated)f(with)g(a)i(dra)o(wable.)p 0 2059 1950 9 v 0 2115 a Fn(SLOG2)p Fk(_)p Fn(Write)p Fk(_)p Fn(category)h Fp(\227)f(Add)f(a)g(cate)o(gory)g(description)f (to)g(an)i(Slog)e(\002le)0 2261 y Fi(Synopsis)0 2348 y Fk(int)28 b(SLOG2_Write_c)q(ateg)q(ory)q(\()i(const)f(SLOG2_File)h (fp,)709 2404 y(const)f(SLOG2_Category)q(_hea)q(d_t)i(*head,)709 2461 y(int)d(category_text)q(_le)q(ngth)q(,)952 2613 y Fp(44)p eop %%Page: 45 46 45 45 bop 709 286 a Fk(const)29 b(char)f(category_text)q([],)709 343 y(const)h(char)f(methods[][],)709 399 y(const)h(char)f (method_extra[)q(][])j(\))0 651 y Fi(Input)12 b(Parameters)0 738 y Fn(fp)260 b Fp(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)300 795 y Fk(SLOG2_Categor)q(y_he)q(ad_t)q Fp(\))0 837 y Fn(category)p Fk(_)p Fn(text)p Fk(_)p Fn(length)300 894 y Fp(Number)h(of)h(characters)f(in)g Fk(category_text)0 985 y Fn(category)p Fk(_)p Fn(text)33 b Fp(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 1042 y Fn(methods)136 b Fp(Null-terminated)10 b(array)h(of)h(null-terminated)d(strings)h(describing)g(methods)g(used) h(to)300 1098 y(process)g(record-speci\002c)g(data.)0 1143 y Fn(method)p Fk(_)p Fn(extra)26 b Fp(Extra)11 b(data)g(for)g (each)h(method.)0 1289 y Fi(Notes)0 1376 y Fp(A)f Fk(category_inde)q(x) j Fp(of)e Fk(-1)f Fp(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 1432 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 Fk(SLOG2_Write_ca)q(tego)q(ry)k Fp(on)10 b(that)h(\002le)g (handle.)0 1489 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 1545 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 1602 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 1658 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 1715 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 1771 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.)i(This)e(feature)g(is)g (for)g(future)0 1827 y(e)o(xpansion)f(and)h(is)g(not)f(supporting)f(in) i(the)g(initial)e(v)o(ersion)i(of)g(SLOG2.)0 1973 y Fi(Module)0 2060 y Fp(SLOG2)g(Output)p 0 2179 1950 9 v 0 2235 a Fn(SLOG2)p Fk(_)p Fn(Write)p Fk(_)p Fn(coord)p Fk(_)p Fn(class)i Fp(\227)f(Write)e(out)h(a)g(coordinate)g(class)f(description)0 2380 y Fi(Synopsis)0 2468 y Fk(int)28 b(SLOG2_Write_c)q(oord)q(_cl)q (ass\()j(const)e(SLOG2_File)h(fp,)952 2613 y Fp(45)p eop %%Page: 46 47 46 46 bop 791 286 a Fk(const)29 b(char)f(class_name[],)791 343 y(int)g(ncoords,)791 399 y(const)h(int)f(in_coord_val[],)791 456 y(int)g(out_coord_val)q([],)791 512 y(const)h(char)f (coord_label[][)q(])i(\))0 764 y Fi(Input)12 b(Parameters)0 851 y Fn(fp)260 b Fp(Slog)11 b(\002le)g(handle)0 907 y Fn(class)p Fk(_)p Fn(name)75 b Fp(Name)12 b(of)f(the)g(coordinate)f (class)0 964 y Fn(ncoords)146 b Fp(Number)11 b(of)h(coordinates)d(in)i Fk(in_coord_val)k Fp(and)c Fk(out_coord_val)0 1020 y Fn(in)p Fk(_)p Fn(coord)p Fk(_)p Fn(val,)g(out)p Fk(_)p Fn(coord)p Fk(_)p Fn(val)300 1077 y Fp(Coordinate)f(pairs)h(to)g (match.)j(F)o(or)e Fk(j)g Fp(between)f Fk(0)g Fp(and)g Fk(ncoords-1)p Fp(,)j(the)d(v)o(alue)g(of)300 1133 y Fk(in_coord_val[)q(j])p Fp(,)k(speci\002ed)c(as)g(a)h Fk(y)27 b Fp(coordinate)10 b(in)h(a)h(record,)f(is)g(mapped)g(to)g(the) 300 1190 y(v)o(alue)g Fk(out_coord_val[j)q(])p Fp(.)17 b(Note)11 b(that)g(the)g(v)o(alues)f(of)h Fk(in_coord_val)k Fp(are)d(in)e(the)300 1246 y(range)h(of)h Fk(thread_id_index)31 b Fp(v)o(alues)10 b(as)h(de\002ned)h(for)300 1303 y Fk(TRACE_Get_nex)q (t_dr)q(awab)q(le)j Fp(while)10 b(the)h(v)o(alues)f(of)h Fk(out_coord_va)q(l)j Fp(are)300 1359 y(\(roughly\))c(the)h(y)g (coordinate)f(to)h(be)g(used)g(in)g(displaying)d(a)k(dra)o(wable.)0 1408 y Fn(coord)p Fk(_)p Fn(label)68 b Fp(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 1554 y Fi(Notes)0 1641 y Fp(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 1697 y(contain,)f(for)g(the)g Fk(y)g Fp(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 1754 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 Fk(y)f Fp(coordinate.)j(Using)0 1810 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 1867 y Fk(coord_label)g Fp(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 1923 y(vie)o(ws)g(are)i(a)o(v)o(ailable.)0 1979 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 2036 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 Fk(y)h Fp(coordinates)d(in)i(the)g(dra)o(wable)0 2092 y(objects)f(are)i(used)f(directly\).)0 2149 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 2205 y Fk(in_coord_val)k Fp(so)10 b(that)h(the)g(correct)g Fk(out_coord_va)q(l)j Fp(can)e(be)f(found.)j(F)o(or)d(e)o(xample,)h(a)g (hash)f(function)e(may)0 2262 y(be)i(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 2318 y(thread)p Fk(_)p Fp(id)g(to)f(out)p Fk(_)p Fp(coord)p Fk(_)p Fp(v)o(al)g (mapping\).)952 2613 y(46)p eop %%Page: 47 48 47 47 bop 0 286 a Fi(Rationale)0 374 y Fp(One)11 b(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 430 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 486 y(thread)h(ids)f(to)h Fk(y)h Fp(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 628 y Fi(Question)0 715 y Fp(This)f(assumes)h(that)f(we)h(can)h(create)g(a)f(single)f(int)g (containing)f(the)i(original)f Fk(y)h Fp(coordinate.)i(F)o(or)f(a)f (node/process/thread)0 772 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 828 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 Fp(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 884 y(distinct)e Fk(y)j Fp(v)o(alues.)0 1026 y Fi(Module)0 1113 y Fp(SLOG2)f(Output)p 0 1232 1950 9 v 0 1288 a Fn(SLOG2)p Fk(_)p Fn(Write)p Fk(_)p Fn(dir)j Fp(\227)d(Write)g(an)h(entire)e(Slog2)h(tree)g (directory)0 1430 y Fi(Synopsis)0 1517 y Fk(int)28 b(SLOG2_Write_d)q (ir\()j(const)d(SLOG2_File)i(fp,)573 1573 y(const)e(SLOG2_Treedi)q (r_no)q(de)j(dir[],)573 1630 y(int)d(n_nodes)h(\))0 1854 y Fi(Input)12 b(Parameters)0 1941 y Fn(fp)260 b Fp(slog2)10 b(\002le)h(handle)0 1997 y Fn(dir)242 b Fp(T)n(ree)12 b(directory)0 2054 y Fn(n)p Fk(_)p Fn(nodes)137 b Fp(Number)11 b(of)h(nodes)e(in)h Fk(dir)0 2195 y Fi(Module)0 2282 y Fp(SLOG2)g(Output)p 0 2401 V 0 2458 a Fn(SLOG2)p Fk(_)p Fn(Write)p Fk(_)p Fn(drawable)p Fk(_)p Fn(object)j Fp(\227)e(Add)f(a)g (dra)o(wable)g(object)g(to)f(an)i(slog)e(\002le)952 2613 y(47)p eop %%Page: 48 49 48 48 bop 0 286 a Fi(Synopsis)0 374 y Fk(int)28 b(SLOG2_Write_d)q(rawa) q(ble)q(_obj)q(ect\()j(const)e(SLOG2_File)h(fp,)900 430 y(double)f(starttime,)h(double)f(endtime,)900 486 y(int)f (category_inde)q(x,)900 543 y(int)g(nt_coords,)i(const)f(double)g (t_coord[],)900 599 y(int)f(ny_coords,)i(const)f(int)f(y_coord[],)900 656 y(int)g(ntext,)h(const)g(char)f(text[])h(\))0 902 y Fi(Input)12 b(Parameters)0 989 y Fn(fp)260 b Fp(Slog)11 b(\002le)g(handle)0 1046 y Fn(starttime,)g(endtime)300 1102 y Fp(time)g(range)g(for)h(object)0 1194 y Fn(category)p Fk(_)p Fn(index)300 1251 y Fp(Cate)o(gory)f(that)g(this)f(object)g (belongs)g(to)0 1342 y Fn(nt)p Fk(_)p Fn(coords)104 b Fp(Number)11 b(of)h(time)f(\()p Fk(x)p Fp(\))h(coordinates.)h(May)e(be) h Fk(0)f Fp(if)g Fk(starttime)30 b Fp(and)11 b Fk(endtime)i Fp(are)300 1399 y(suf)o(\002cient)0 1434 y Fn(t)p Fk(_)p Fn(coords)129 b Fp(T)n(ime)12 b(coordinates)0 1491 y Fn(ny)p Fk(_)p Fn(coords)96 b Fp(Number)11 b(of)h(y)f(coordinates.)i (Must)d(be)i(at)f(least)g Fk(1)p Fp(.)0 1547 y Fn(y)p Fk(_)p Fn(coord)139 b Fp(Y)11 b(coordinates)0 1604 y Fn(ntext)202 b Fp(Number)11 b(of)h(bytes)e(of)h(data)g(for)h(this)e (object.)j(May)f(be)f Fk(0)0 1660 y Fn(text)227 b Fp(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)300 1717 y(cate)o(gory)m(.)0 1851 y Fi(Notes)0 1938 y Fp(The)g Fk(y)h Fp(v)o(alues)e(may)i(be)f (simple)g(v)o(alues)f(between)h Fk(0)g Fp(and)g(a)h(small)f(inte)o(ger) g(or)g(the)o(y)g(may)g(be)h(more)g(complicated)0 1994 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 2051 y(coordinate)f(maps)i(should)d(be)i(de\002ned)h(with) e Fk(SLOG2_Write_co)q(ord_)q(clas)q(s)p Fp(.)0 2195 y Fi(Module)0 2282 y Fp(SLOG2)h(Output)p 0 2401 1950 9 v 0 2458 a Fn(SLOG2)p Fk(_)p Fn(Write)p Fk(_)p Fn(end)p Fk(_)p Fn(treenode)k Fp(\227)d(End)e(writing)g(a)h(tree)h(node)952 2613 y(48)p eop %%Page: 49 50 49 49 bop 0 286 a Fi(Synopsis)0 374 y Fk(int)28 b(SLOG2_Write_e)q(nd_t) q(ree)q(node)q(\()i(const)f(SLOG2_File)h(fp)e(\))0 609 y Fi(Input)12 b(Parameter)0 696 y Fn(fp)260 b Fp(Slog)11 b(\002le)g(handle)0 839 y Fi(Module)0 926 y Fp(SLOG2)g(Output)0 1069 y Fi(Question)0 1156 y Fp(Should)f(this)g(return)h(a)h(position)d (or)i(a)g(length)f(for)i(the)f(directory?)p 0 1275 1950 9 v 0 1332 a Fn(SLOG2)p Fk(_)p Fn(Write)p Fk(_)p Fn(header)j Fp(\227)e(Write)f(the)g(Slog2)f(\002le)i(header)0 1475 y Fi(Synopsis)0 1562 y Fk(int)28 b(SLOG2_Write_h)q(eade)q(r\()j(const)d (SLOG2_File)i(fp,)e(const)h(char)f(description[)q(])i(\))0 1797 y Fi(Input)12 b(Parameters)0 1884 y Fn(fp)260 b Fp(Slog)11 b(\002le)g(handle)0 1941 y Fn(description)83 b Fp(Null)10 b(terminated)h(description)e(te)o(xt)0 2084 y Fi(Notes)0 2171 y Fp(This)h(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 2227 y(and)g(v)o(ersion)f(number)i(of)f (the)g(library)f(to)h(the)g(\002le)g(header)n(.)0 2370 y Fi(Questions)0 2458 y Fp(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?)952 2613 y(49)p eop %%Page: 50 51 50 50 bop 0 286 a Fi(Module)0 374 y Fp(SLOG2)11 b(Output)p 0 492 1950 9 v 0 549 a Fn(SLOG2)p Fk(_)p Fn(Write)p Fk(_)p Fn(start)p Fk(_)p Fn(tr)o(eenode)k Fp(\227)d(Be)o(gin)f(writing)f(a)h (tree)h(node)0 693 y Fi(Synopsis)0 780 y Fk(int)28 b(SLOG2_Write_s)q (tart)q(_tr)q(eeno)q(de\()j(const)d(SLOG2_File)i(fp)e(\))0 1026 y Fi(Input)12 b(Parameter)0 1113 y Fn(fp)260 b Fp(Slog)11 b(\002le)g(handle)0 1257 y Fi(Notes)0 1344 y Fp(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 1401 y Fk(SLOG2_Write_e)q(nd_t)q(reen)q(ode)15 b Fp(must)c(be)g(called.)0 1545 y Fi(Module)0 1633 y Fp(SLOG2)g(Output)0 1777 y Fi(Question)0 1864 y Fp(Should)f(this)g(return)h(a)h(position)d(\()p Fk(int64_t)p Fp(\))k(for)e(the)g(directory?)0 1921 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 1977 y(local)g(to)f(the)h(treenode\).)j(Do)d(we)h(need)f(them?)0 2185 y Fq(D)60 b(SLOG2)14 b(Input)i(API)0 2288 y Fp(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 2345 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 2401 V 0 2458 a Fn(SLOG2)p Fk(_)p Fn(Close)j Fp(\227)g(Close)e(an)i (Slog)e(2)i(\002le)952 2613 y(50)p eop %%Page: 51 52 51 51 bop 0 286 a Fi(Synopsis)0 374 y Fk(int)28 b(SLOG2_Close\()j (SLOG2_File)f(*fp)e(\))0 625 y Fi(Input)12 b(Parameter)0 712 y Fn(fp)260 b Fp(Pointer)11 b(to)f(an)i(Slog)e(2)h(\002le)h (handle.)0 858 y Fi(Notes)0 945 y Fk(fp)g Fp(is)f(set)f(to)h(null)f(by) h(this)f(routine.)p 0 1064 1950 9 v 0 1120 a Fn(SLOG2)p Fk(_)p Fn(Get)p Fk(_)p Fn(drawable)p Fk(_)p Fn(text)k Fp(\227)e(Get)f(a)g(te)o(xt)g(string)f(describing)g(a)h(particular)g (dra)o(wable)g(object)0 1265 y Fi(Synopsis)0 1352 y Fk(void)28 b(SLOG2_Get_dr)q(awab)q(le_)q(text)q(\()i(SLOG2_File)g(fp,)818 1409 y(int)e(category_ind)q(ex,)818 1465 y(const)h(char)f (*drawable_tex)q(t,)818 1522 y(char)h(*instance_text,)i(int)d(text_max) h(\))0 1773 y Fi(Input)12 b(Parameters)0 1861 y Fn(fp)260 b Fp(Slog)11 b(2)g(\002le)g(handle)0 1917 y Fn(category)p Fk(_)p Fn(index)300 1973 y Fp(Cate)o(gory)g(inde)o(x)g(of)g(dra)o (wable)0 2065 y Fn(drawable)p Fk(_)p Fn(text)18 b Fp(T)m(e)o(xt)11 b(from)h(dra)o(wable)0 2122 y Fn(text)p Fk(_)p Fn(max)116 b Fp(Maximum)12 b(size)f(of)g Fk(instance_text)0 2267 y Fi(Output)f(Parameter)0 2354 y Fn(instance)p Fk(_)p Fn(text)41 b Fp(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)300 2410 y(cate)o(gory)m(.)952 2613 y(51)p eop %%Page: 52 53 52 52 bop 0 286 a Fi(Notes)0 374 y Fp(This)10 b(pro)o(vides)g(a)i (simple)f(interface)f(for)i(con)n(v)o(erting)e(the)h(data)g(associated) f(with)g(a)i(dra)o(wable)f(into)f(a)h(te)o(xt)g(string)0 430 y(according)g(to)f(the)h(format)h(pro)o(vided)e(by)h(the)g Fk(label)h Fp(data)g(of)f(the)g(cate)o(gory)m(.)j(This)c(is)h(a)g (special)g(case)h(of)f(the)g(more)0 486 y(general)g(method)g(interface) g(planned)f(for)h(a)h(future)f(enhancement.)p 0 605 1950 9 v 0 662 a Fn(SLOG2)p Fk(_)p Fn(Get)p Fk(_)p Fn(header)j Fp(\227)e(Read)g(the)f(header)g(of)h(an)f(Slog)g(2)g(\002le)0 803 y Fi(Synopsis)0 890 y Fk(int)28 b(SLOG2_Get_hea)q(der\()j(const)e (SLOG2_File)h(fp,)600 947 y(char)e(description[)q(],)i(int)f (maxdesclen,)600 1003 y(int)f(*version)i(\))0 1227 y Fi(Input)12 b(Parameters)0 1314 y Fn(fp)260 b Fp(Slog)11 b(2)g(\002le)g(handle)0 1371 y Fn(maxdesclen)75 b Fp(Length)10 b(of)h(the)g(array)h Fk(description)0 1512 y Fi(Output)e(Parameters)0 1599 y Fn(description)83 b Fp(Character)12 b(string)e(describing)g(the) h(SLOG)g(\002le)0 1656 y Fn(version)158 b Fp(V)-5 b(ersion)10 b(number)h(of)h(SLOG2)e(\002le)0 1797 y Fi(Retur)o(n)i(V)-5 b(alue)0 1884 y Fp(Zero)11 b(on)g(success.)j(If)d Fk(maxdesclen)j Fp(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 1941 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 Fk(errno)j Fp(v)o(alue)e(corresponding)e(to)i(the)g (error)n(.)0 2082 y Fi(Question)0 2169 y Fp(Do)g(we)g(want)g(a)g (routine)f(that)h(returns)f(v)o(alues)h(of)g Fk(maxdesclen)j Fp(\(and)d(the)g(size)g(of)g(the)g(directory)g(tree)g(etc.\)?)0 2226 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 2282 y(e)o(xpecting?)p 0 2401 V 0 2458 a Fn(SLOG2)p Fk(_)p Fn(Get)p Fk(_)p Fn(next)p Fk(_)p Fn(category)j Fp(\227)e(Read)f(the)g(ne)o(xt)g(cate)o(gory)g (description)952 2613 y(52)p eop %%Page: 53 54 53 53 bop 0 286 a Fi(Synopsis)0 374 y Fk(int)28 b(SLOG2_Get_nex)q(t_ca) q(teg)q(ory\()j(const)e(SLOG2_File)h(fp,)791 430 y(SLOG_Category_)q (hea)q(d_t)h(*head,)791 486 y(char)d(*text_base,)j(int)d(*text_pos,)791 543 y(const)h(int)f(max_text,)791 599 y(char)g(*legend_base)q(,)i(int)e (*legend_pos,)791 656 y(const)h(int)f(max_legend)i(\))0 819 y Fp(cate)o(gory)p Fk(_)p Fp(inde)o(x)11 b Fh(=)g Fp(-1)h(means)f(no)g(more)h(cate)o(gories)0 964 y Fi(Notes)0 1051 y Fp(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 1108 y(approach)f(could)f(de\002ne)i(a)f (cate)o(gory)g(structure,)g(such)g(as)82 1201 y Fk(typedef)29 b(struct)g({)191 1258 y(SLOG2_Category)q(_he)q(ad_t)i(head;)191 1314 y(char)d(text[MAX_TEX)q(T];)191 1371 y(char)g(legend[MAX_L)q(EGEN) q(D];)109 1427 y(})g(Category_t;)0 1521 y Fp(and)11 b(call)g(this)f (routine)g(as)82 1615 y Fk(Category_t)30 b(*p;)82 1671 y(int)e(pos)g(=)g(0,)f(lpos)i(=)e(0;)82 1728 y(p)g(=)h(\(Category_t)i (*\)malloc\()g(sizeof\(Categor)q(y_t)q(\))g(\);)82 1784 y(SLOG2_Get_next)q(_cat)q(ego)q(ry\()h(fp,)d(&p->head)709 1841 y(p->text,)i(&pos,)e(MAX_TEXT,)764 1897 y(p->legend,)i(&lpos,)f (MAX_LEGEND)h(\);)0 1991 y Fp(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 2047 y(e)o(xample,)27 2141 y Fk(typedef)29 b(struct)g({)136 2198 y(SLOG2_Catego)q(ry_h)q(ead) q(_t)h(head;)136 2254 y(int)e(text_pos,)i(text_len,)g(legend_pos,)g (legend_len)g(})136 2310 y(Category_t;)82 2417 y(Category_t)g (p[MAX_CATEGORY)q(];)82 2473 y(char)192 b(text[MAX_TOTAL)q(_TEX)q(T],) 31 b(legend[MAX_LEG)q(END_)q(TEX)q(T];)952 2613 y Fp(53)p eop %%Page: 54 55 54 54 bop 82 286 a Fk(int)28 b(pos)g(=)g(0,)f(lpos)i(=)e(0;)82 343 y(int)h(catnum;)82 399 y(...)82 456 y(p[catnum].text)q(_pos)j(=)d (pos;)82 512 y(p[catnum].lege)q(nd_p)q(os)j(=)c(lpos;)82 569 y(SLOG2_Get_next)q(_cat)q(ego)q(ry\()k(fp,)d(&p[catnum].hea)q(d,) 709 625 y(text,)h(&pos,)f(MAX_TOTAL_TE)q(XT,)764 682 y(legend,)h(&lpos,)g(MAX_LEGEND_TEX)q(T)h(\);)82 738 y(p[catnum].text)q(_len)h(=)d(pos)g(-)f(p[catnum].tex)q(t_p)q(os;)82 795 y(p[catnum].lege)q(nd_l)q(en)k(=)c(lpos)h(-)g(p[catnum].leg)q(end_) q(pos;)82 851 y(catnum)h(++;)0 952 y Fp(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 1009 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 1153 y Fi(Rationale)0 1240 y Fp(The)h Fk(SLOG_Category)q(_hea)q(d_t)k Fp(pro)o(vides)10 b(a)i(reasonable)e(comprimise)h(between)g(specifying) f(each)i(element)f(of)0 1297 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 Fk(SLOG_Category_)q(head)q(_t)p Fp(\))k(and)0 1353 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 1472 1950 9 v 0 1528 a Fn(SLOG2)p Fk(_)p Fn(Get)p Fk(_)p Fn(next)p Fk(_)p Fn(drawable)k Fp(\227)e(Get)f(the)g(ne)o(xt)g(dra)o(wable)g(object)0 1673 y Fi(Synopsis)0 1760 y Fk(int)28 b(SLOG2_Get_nex)q(t_dr)q(awa)q (ble\()j(const)e(SLOG2_File)h(fp,)791 1817 y(double)f(*starttime,)h (double)f(*endtime,)791 1873 y(int)f(*category_ind)q(ex,)791 1929 y(int)g(*ncoords,)i(double)f(*coord_base,)791 1986 y(int)f(*coord_pos,)791 2042 y(const)h(int)f(coord_max,)791 2099 y(char)g(*text_base,)j(int)d(*text_pos,)791 2155 y(const)h(int)f(text_max)h(\))0 2401 y Fi(Input)12 b(Parameters)0 2488 y Fn(fp)260 b Fp(Slog)11 b(2)g(\002le)g(handle)952 2613 y(54)p eop %%Page: 55 56 55 55 bop 0 286 a Fn(coord)p Fk(_)p Fn(base)76 b Fp(Pointer)11 b(to)f(storage)h(for)g(coordinates)f(\(see)i Fk(coord_pos)p Fp(\))0 343 y Fn(coord)p Fk(_)p Fn(max)78 b Fp(Size)12 b(of)f Fk(coord_base)0 399 y Fn(text)p Fk(_)p Fn(base)114 b Fp(Pointer)11 b(to)f(storage)h(for)g(te)o(xt)g(\(see)h Fk(text_base)p Fp(\))0 456 y Fn(text)p Fk(_)p Fn(max)116 b Fp(Size)12 b(of)f Fk(text_base)0 601 y Fi(In/Out)g(Parameters)0 688 y Fn(coord)p Fk(_)p Fn(pos)0 745 y(text)p Fk(_)p Fn(post)0 890 y Fi(Output)f(Parameters)0 977 y Fn(starttime,endtime)300 1034 y Fp(Be)o(ginning)g(and)h(endtime)g(time)g(of)g(dra)o(wable)0 1126 y Fn(category)p Fk(_)p Fn(index)300 1182 y Fp(Cate)o(gory)g(that)g (this)f(dra)o(wable)h(belongs)e(to)0 1274 y Fn(ncoords)146 b Fp(Number)11 b(of)h(coordinates)d(for)j(this)e(dra)o(wable)0 1419 y Fi(Notes)p 0 1568 1950 9 v 0 1625 a Fn(SLOG2)p Fk(_)p Fn(Get)p Fk(_)p Fn(position)j Fp(\227)f(Return)f(the)g(current)g (position)d(in)j(an)g(Slog2)g(\002le)0 1704 y Fi(Synopsis)0 1791 y Fk(int64_t)29 b(SLOG2_Get_pos)q(iti)q(on\()i(const)d(SLOG2_File) i(fp)e(\))0 2042 y Fi(Input)12 b(Parameter)0 2130 y Fn(fp)260 b Fp(Slog)11 b(2)g(\002le)g(handle)0 2275 y Fi(Retur)o(n)h(V)-5 b(alue)0 2362 y Fp(Current)11 b(position)e(of)i(\002le.)952 2613 y(55)p eop %%Page: 56 57 56 56 bop 0 286 a Fi(Question)0 374 y Fp(The)11 b(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 492 1950 9 v 0 549 a Fn(SLOG2)p Fk(_)p Fn(Get)p Fk(_)p Fn(total)p Fk(_)p Fn(time)i Fp(\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 692 y Fi(Synopsis)0 779 y Fk(int)28 b(SLOG2_Get_tot)q(al_t)q(ime)q(\()i (const)f(SLOG2_File)h(fp,)709 835 y(double)f(*starttime,)h(double)f (*endtime)h(\))0 1070 y Fi(Input)12 b(Parameter)0 1157 y Fn(fp)260 b Fp(Slog)11 b(2)g(\002le)g(handle)0 1300 y Fi(Output)f(Parameters)0 1388 y Fn(starttime)123 b Fp(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 1444 y Fn(endtime)144 b Fp(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 1563 V 0 1619 a Fn(SLOG2)p Fk(_)p Fn(Open)k Fp(\227)e(Open)e(an)i(Slog)e(2)h(\002le)0 1762 y Fi(Synopsis)0 1849 y Fk(int)28 b(SLOG2_Open\()i(const)f(char)f(filename[],)j(char)d (mode,)h(SLOG2_File)h(*fp)e(\))0 2084 y Fi(Input)12 b(Parameters)0 2172 y Fn(\002lename)136 b Fp(Name)12 b(of)f(the)g(\002le)g(to)g(read)h (or)f(write)0 2228 y Fn(mode)194 b Fp(')p Fk(r')12 b Fp(for)f(reading)g(and)g(')p Fk(w')h Fp(for)f(writing)0 2371 y Fi(Output)f(Parameter)0 2458 y Fn(fp)260 b Fp(A)11 b(handle)g(to)f(an)i(SLOG2)e(\002le.)952 2613 y(56)p eop %%Page: 57 58 57 57 bop 0 286 a Fi(Question)0 374 y Fp(The)11 b Fk(mode)h Fp(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 430 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 486 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 605 1950 9 v 0 662 a Fn(SLOG2)p Fk(_)p Fn(P)o(eek)p Fk(_)p Fn(next)p Fk(_)p Fn(drawable)k Fp(\227)e(Peek)f(at)h(the)e(ne)o (xt)h(dra)o(wable)0 807 y Fi(Synopsis)0 894 y Fk(int)28 b(SLOG2_Peek_ne)q(xt_d)q(raw)q(able)q(\()i(const)f(SLOG2_File)h(fp,)818 951 y(double)f(*starttime,)h(double)f(*endtime,)818 1007 y(int)f(*nt_coords,)j(int)d(*ny_coords,)818 1063 y(int)g(*n_text)h(\))0 1315 y Fi(Input)12 b(Parameter)0 1402 y Fn(fp)260 b Fp(Slog)11 b(2)g(\002le)g(handle)0 1548 y Fi(Output)f(Parameters)0 1635 y Fn(starttime,)h(endtime)300 1691 y Fp(time)g(limits)f(of)h(dra)o (wable)0 1783 y Fn(nt)p Fk(_)p Fn(coords)104 b Fp(number)11 b(of)g(t)g(coordinates)0 1839 y Fn(ny)p Fk(_)p Fn(coords)96 b Fp(number)11 b(of)g(y)h(coordinates)0 1896 y Fn(n)p Fk(_)p Fn(text)175 b Fp(number)11 b(of)g(bytes)g(in)f(te)o(xt)p 0 2014 V 0 2071 a Fn(SLOG2)p Fk(_)p Fn(Read)p Fk(_)p Fn(dir)j Fp(\227)f(Read)g(an)f(Slog)g(2)g(directory)f(structure)0 2216 y Fi(Synopsis)0 2303 y Fk(int)28 b(SLOG2_Read_di)q(r\()i(const)f (SLOG2_File)h(fp,)e(SLOG2_Treenod)q(e)i(dir[],)545 2360 y(int)f(maxtree,)g(int)f(*n_nodes)i(\))952 2613 y Fp(57)p eop %%Page: 58 59 58 58 bop 0 286 a Fi(Input)12 b(Parameters)0 374 y Fn(fp)260 b Fp(Slog)11 b(2)g(\002le)g(handle)0 430 y Fn(maxtr)o(ee)142 b Fp(Size)12 b(of)f(the)g(array)g Fk(dir)0 575 y Fi(Output)f (Parameters)0 662 y Fn(dir)242 b Fp(Array)11 b(describing)f(the)h(Slog) g(2)g(directory)f(\(see)i(Notes\))0 718 y Fn(n)p Fk(_)p Fn(nodes)137 b Fp(The)11 b(number)g(of)g(nodes)g(in)g Fk(dir)0 863 y Fi(Notes)0 950 y Fp(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 1007 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 Fk(SLOG2_Treenod)q(e)p Fp(.)17 b(The)12 b(root)e(is)h Fk(dir[0])p Fp(;)0 1063 y(the)g(\002elds)g Fk(lchild)i Fp(and)e Fk(rchild)i Fp(gi)o(v)o(e)e(the)f(indices)h(in)f Fk(dir)j Fp(of)e(the)g(left)g(and)g(right)f(children)g(respecti)o(v)o (ely)m(.)j(A)0 1119 y(parent)e(of)g Fk(-1)h Fp(indicates)e(the)h(root.) p 0 1238 1950 9 v 0 1295 a Fn(SLOG2)p Fk(_)p Fn(Set)p Fk(_)p Fn(position)i Fp(\227)e(Set)h(the)f(current)g(position)e(of)i (an)g(Slog2)g(\002le)0 1439 y Fi(Synopsis)0 1526 y Fk(void)28 b(SLOG2_Set_po)q(siti)q(on\()j(const)d(SLOG2_File)i(fp,)f(int64_t)g (offset)g(\))0 1773 y Fi(Input)12 b(Parameters)0 1861 y Fn(fp)260 b Fp(Slog)11 b(2)g(\002le)g(handle)0 1917 y Fn(offset)194 b Fp(Position)9 b(to)i(set)g(\002le)g(at)0 2125 y Fq(E)60 b(J)o(umpshot)15 b(Plans)0 2228 y Fp(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 2285 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 2341 y(easier)n(.)71 2398 y(Some)f(of)h(the)f (features)g(that)f(the)h(ne)o(xt)g(Jumpshot)f(may)i(ha)o(v)o(e)f (include)57 2488 y(1.)23 b(Pluggable)10 b(modules)g(for)h(most)g (graphical)g(objects:)952 2613 y(58)p eop %%Page: 59 60 59 59 bop 140 286 a Fp(\(a\))24 b(Pre)o(vie)o(w)11 b(module)138 359 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 416 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 472 y(manages)g(the)g(display)f(of)h(the)g (timelines.)140 545 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 602 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 658 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 752 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 809 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 865 y(approaches.)57 959 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 1053 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 1109 y(backward-incompatible)9 b(ways.)57 1203 y(4.)23 b(Runnable)10 b(through)g(a)i(web)f(bro)o(wser) n(.)57 1297 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 1443 y Fq(F)59 b(SLOG1)14 b(to)h(SLOG2)f(T)l(ransition)f(Plans)0 1547 y Fp(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 1603 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 1660 y(\002le)i(\(e.g.,)h(one)f(that)f(contains)g Fm(only)g Fp(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 1716 y(reor)o(ganization)e (of)h(the)g(Slog)g(\002le)g(to)g(be)g(more)h(block)e(oriented.)71 1772 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 1829 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 1885 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 1942 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 1998 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)0 2055 y(will)h(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 2111 y(may)12 b(also)e(want)g(to)h(pro)o(vide)g(some)g(coordinate)f (map)i(information.)71 2168 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 2261 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 2355 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 2412 y(Section)10 b(3.)952 2613 y(59)p eop %%Page: 60 61 60 60 bop 57 286 a Fp(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 343 y(the)c(contents)e(of) j(the)f(SLOG2)f(\002le\).)57 437 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 531 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 624 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 771 y Fq(Refer)o(ences)0 874 y Fp([1])23 b(J.)c(Chassin)f(de)h(K)o(er)o (gommeaux)g(and)g(B.)g(Stein.)41 b(P)o(aj)s(\264)-18 b(e,)22 b(an)d(e)o(xtensible)e(en)n(vironment)h(for)h(visualizing)e (multi-)76 931 y(threaded)10 b(programs)g(e)o(x)o(ecutions.)k(In)d(A.)f (Bode)h(et)f(al.,)i(editor)n(,)e Fm(Pr)n(oceedings)f(of)h(Eur)n(o-P)l (ar)f(2000)p Fp(,)h(number)g(1900)g(in)76 987 y(LNCS,)i(pages)e (133\226140.)g(Springer)o(-V)-5 b(erlag,)11 b(2000.)0 1081 y([2])23 b(J.)16 b(Chassin)f(de)h(K)o(er)o(gommeaux,)i(B.)e (Stein,)i(and)d(P)-5 b(.)17 b(E.)f(Bernard.)32 b(P)o(aj)s(\264)-18 b(e,)19 b(an)d(interacti)o(v)o(e)f(visualization)e(tool)i(for)76 1137 y(tuning)9 b(multi-threaded)h(parallel)h(applications.)j Fm(P)l(ar)o(allel)c(Computing)p Fp(,)g(26:1253\2261274,)f(2000.)0 1231 y([3])23 b(M.)17 b(T)m(.)g(Heath.)34 b(Recent)17 b(de)o(v)o(elopments)e(and)i(case)g(studies)e(in)h(performance)h (visualization)e(using)g(P)o(araGraph.)76 1288 y(In)e(G.)h(Haring)e (and)h(G.)h(K)n(otsis,)f(editors,)g Fm(P)l(erformance)f(Measur)n(ement) g(and)h(V)m(isualizat)o(ion)d(of)j(P)l(ar)o(allel)f(Systems)p Fp(,)76 1344 y(pages)f(175\226200.)e(Else)o(vier)i(Science)g (Publishers,)f(1993.)0 1438 y([4])23 b(V)m(ir)o(ginia)8 b(Herrarte)i(and)f(Ewing)g(Lusk.)i(Studying)d(parallel)h(program)g (beha)o(vior)g(with)f Fk(upshot)p Fp(.)15 b(T)m(echnical)8 b(Report)76 1494 y(ANL\22691/15,)h(Ar)o(gonne)i(National)f(Laboratory)m (,)g(1991.)0 1588 y([5])23 b(Edward)8 b(Karrels)g(and)h(Ewing)f(Lusk.)i (Performance)g(analysis)e(of)h(MPI)h(programs.)h(In)e(Jack)g(Dongarra)f (and)h(Bernard)76 1645 y(T)l(ourancheau,)14 b(editors,)f Fm(Pr)n(oceedings)f(of)h(the)g(W)l(orkshop)f(on)h(En)n(vir)n(onments)e (and)i(T)l(ools)f(F)-5 b(or)13 b(P)l(ar)o(allel)f(Scienti\002c)76 1701 y(Computing)p Fp(,)d(pages)i(195\226200.)f(SIAM)i(Publications,)e (1994.)0 1795 y([6])23 b(P)o(allas)14 b(GmbH,)g(Herm)t(\250)-19 b(ulheimer)14 b(Strasse)f(10,)i(D50321)d(Br)t(\250)-19 b(uhl,)15 b(German)o(y)m(.)25 b Fm(V)-5 b(ampir)12 b(2.0)i(User')n(s)f (Manual)p Fp(,)h(1999.)76 1851 y(V)-6 b(A20-UG-12.)0 1945 y([7])23 b(Omer)11 b(Zaki,)f(Ewing)g(Lusk,)g(W)n(illiam)f(Gropp,)i (and)f(Deborah)g(Swider)n(.)k(T)l(o)o(ward)c(scalable)g(performance)h (visualiza-)76 2002 y(tion)f(with)g(Jumpshot.)15 b Fm(High)10 b(P)l(erformance)g(Computing)g(Applications)p Fp(,)e (13\(2\):277\226288,)h(F)o(all)j(1999.)952 2613 y(60)p eop %%Trailer end userdict /end-hook known{end-hook}if %%EOF .