%!PS-Adobe-2.0 %%Creator: dvips 5.47 Copyright 1986-91 Radical Eye Software %%Title: comp-phy7.dvi %%Pages: 22 1 %%BoundingBox: 0 0 612 792 %%EndComments %%BeginProcSet: tex.pro /TeXDict 200 dict def TeXDict begin /N /def load def /B{bind def}N /S /exch load def /X{S N}B /TR /translate load N /isls false N /vsize 10 N /@rigin{ isls{[0 1 -1 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale Resolution VResolution vsize neg mul TR matrix currentmatrix dup dup 4 get round 4 exch put dup dup 5 get round 5 exch put setmatrix}N /@letter{/vsize 10 N}B /@landscape{/isls true N /vsize -1 N}B /@a4{/vsize 10.6929133858 N}B /@a3{ /vsize 15.5531 N}B /@ledger{/vsize 16 N}B /@legal{/vsize 13 N}B /@manualfeed{ statusdict /manualfeed true put}B /@copies{/#copies X}B /FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{/nn 8 dict N nn begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N string /base X array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{/sf 1 N /fntrx FMat N df-tail} B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0]N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data dup length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{128 ch-data dup length 3 sub get sub}B /ch-yoff{ ch-data dup length 2 sub get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N /rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup /base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx 0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff .1 add]{ch-image} imagemask restore}B /D{/cc X dup type /stringtype ne{]}if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin 0 0 moveto}N /eop{clear SI restore showpage userdict /eop-hook known{eop-hook}if}N /@start{userdict /start-hook known{start-hook}if /VResolution X /Resolution X 1000 div /DVImag X /IE 256 array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for}N /p /show load N /RMat[1 0 0 -1 0 0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V statusdict begin /product where{pop product dup length 7 ge{0 7 getinterval(Display)eq}{pop false}ifelse}{false}ifelse end{{gsave TR -.1 -.1 TR 1 1 scale rulex ruley false RMat{BDot}imagemask grestore}}{{gsave TR -.1 -.1 TR rulex ruley scale 1 1 false RMat{BDot}imagemask grestore}}ifelse B /a{ moveto}B /delta 0 N /tail{dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{ S p tail}B /c{-4 M}B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w }B /q{p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p a}B /bos{/SS save N}B /eos{clear SS restore}B end %%EndProcSet TeXDict begin 1000 300 300 @start /Fa 19 119 df<07FFFF00007C01E0003C00F0003C00 780078003C0078003C0078001E0078001E0078001E0078001F00F0001F00F0001F00F0001F00F0 001F00F0001F00F0001F01E0001E01E0003E01E0003E01E0003E01E0003C01E0007C03C0007803 C000F003C000F003C001E003C003C003C0078007800F0007803C00FFFFE000201F7E9E23>68 D<07FFE0007C00003C00003C0000780000780000780000780000780000780000F00000F00000F0 0000F00000F00000F00001E00001E00001E00001E00001E00001E00003C00003C00003C00003C0 0003C00003C00007800007C000FFFC00131F7F9E10>73 D<07FC01FFC0003E003E00003E001800 003E001800004F001000004F001000004780100000478010000043C010000043C010000083C020 000081E020000081E020000080F020000080F020000080782000010078400001007C400001003C 400001003C400001001E400001001E400002000F800002000F800002000F800002000780000200 078000060003800006000300000F00010000FFE0010000221F7E9E22>78 D<07FFFF00007C03C0003C01E0003C00F0007800F0007800F8007800F8007800F8007800F80078 00F000F001F000F001E000F003C000F0078000F00F0000FFF80001E0000001E0000001E0000001 E0000001E0000001E0000003C0000003C0000003C0000003C0000003C0000003C0000007800000 07C00000FFFC00001D1F7E9E1F>80 D<07F8000C0C001E06001E07001C07000007000007000007 0000FF0007C7001E07003C0E00780E00F00E10F00E10F00E10F01E10F02E20784F401F87801414 7D9317>97 D<01FC07060E0F1C0F380E78007000F000F000F000F000E000E000E000E000F00270 04300818300FC010147C9314>99 D<0000700003F00000F00000700000700000E00000E00000E0 0000E00000E00000E00001C000F9C00305C00E03C01C03C03801C0780380700380F00380F00380 F00380F00380E00700E00700E00700E00700E00700700F00301E00186F000F8FE014207C9F19> I<00F800070E000E07001C0700380380780380700380F00380F00380FFFF80F00000E00000E000 00E00000E00000F001007002003004001C180007E00011147D9314>I<01C003E003E003E001C0 00000000000000000000000003801F800780038003800700070007000700070007000E000E000E 000E000E000E001C001E00FF800B1F7F9E0C>105 D<00E007E001E000E000E001C001C001C001 C001C001C00380038003800380038003800700070007000700070007000E000E000E000E000E00 0E001C001E00FFC00B207F9F0C>108 D<0387C07C001F9861860007A072070003C03403000380 3803000780780700070070070007007007000700700700070070070007007007000E00E00E000E 00E00E000E00E00E000E00E00E000E00E00E000E00E00E001C01C01C001E01E01E00FFCFFCFFC0 22147E9326>I<038F801F90E007A0E003C0600380600780E00700E00700E00700E00700E00700 E00E01C00E01C00E01C00E01C00E01C00E01C01C03801E03C0FFCFF815147E9319>I<00FC0003 87000E01801C00C03800E03800E07000F0F000F0F000F0F000F0F000F0E001E0E001E0E001C0E0 03C0F00380700700380E001C1C0007E00014147D9317>I<00E3E007EC3800F01C00E01E00E00E 01C00E01C00F01C00F01C00F01C00F01C00F03801E03801E03801C03803C0380380380700740E0 0721C0071F000700000700000700000E00000E00000E00000E00001E0000FFC000181D809319> I<038E001FB38007C78003C7800383000780000700000700000700000700000700000E00000E00 000E00000E00000E00000E00001C00001E0000FFE00011147E9312>114 D<01F2060E080618061802380438001E001FE00FF003F8003C401C400C400C600C6018E010D060 8FC00F147E9312>I<0080010001000100030007000F001E00FFF80E000E000E000E001C001C00 1C001C001C001C00380038203820382038203840384018800F000D1C7C9B12>I<1C0380FC1F80 3C07801C03801C0380380700380700380700380700380700380700700E00700E00700E00700E00 701E00701E00703C00305E001F9FC012147B9319>II E /Fb 2 64 df<0600060006000F000F000F001F801F801F803FC03F C07FE07FE0FFF0FFF00C0F86A700>54 D63 D E /Fc 4 40 df36 D<000000000000000000 001000000000000000000000300000000000000000000030000000000000000000003000000000 000000000000300000000000000000000030000000000000000000003000000000000000000000 300000000000000000000030000000000000000000003000000000000000000000600000000000 000000000060000000000000000000006000000000000000000000600000000000000000000060 0000000000000000000060000000000000000000006000000000000000000000C0000000000000 00000000C000000000000000000000C000000000000000000000C0000000000000000000018000 000000000000000001800000000000000000000180000000000000000000018000000000000000 000003000000000000000000000300000000000000000000030000000000000000000006000000 0000000000000006000000000000000000000C000000000000000000000C000000000000000000 000C00000000000000000000180000000000000000000018000000000000000000003000000000 000000000000300000000000000000000060000000000000000000006000000000000000000000 C000000000000000000000C0000000000000000000018000000000000000000001800000000000 000000000300000000000000000000060000000000000000000006000000000000000000000C00 000000000000000000180000000000000000000018000000000000000000003000000000000000 00000060000000000000000000006000000000000000000000C000000000000000000001800000 00000000000000030000000000000000000006000000000000000000000C000000000000000000 00180000000000000000000030000000000000000000007000000000000000000000C000000000 00000000000180000000000000000000030000000000000000000006000000000000000000000C 0000000000000000000018000000000000000000007000000000000000000000E0000000000000 000000038000000000000000000007000000000000000000001C00000000000000000000380000 0000000000000000E000000000000000000003C00000000000000000000F000000000000000000 003C00000000000000000000F000000000000000000007C00000000000000000001F0000000000 0000000000F80000000000000000000FE0000000000000000000FF0000000000000000007FF000 00000000000000FFFF000000000000000000FF800000000000000000005455D2D400>I<400000 0000000000000000C000000000000000000000C000000000000000000000C00000000000000000 0000C000000000000000000000C000000000000000000000C000000000000000000000C0000000 00000000000000C000000000000000000000C00000000000000000000060000000000000000000 006000000000000000000000600000000000000000000060000000000000000000006000000000 000000000000600000000000000000000060000000000000000000003000000000000000000000 300000000000000000000030000000000000000000003000000000000000000000180000000000 00000000001800000000000000000000180000000000000000000018000000000000000000000C 000000000000000000000C000000000000000000000C0000000000000000000006000000000000 000000000600000000000000000000030000000000000000000003000000000000000000000300 0000000000000000000180000000000000000000018000000000000000000000C0000000000000 00000000C000000000000000000000600000000000000000000060000000000000000000003000 000000000000000000300000000000000000000018000000000000000000001800000000000000 0000000C0000000000000000000006000000000000000000000600000000000000000000030000 00000000000000000180000000000000000000018000000000000000000000C000000000000000 000000600000000000000000000060000000000000000000003000000000000000000000180000 00000000000000000C000000000000000000000600000000000000000000030000000000000000 0000018000000000000000000000C0000000000000000000006000000000000000000000300000 000000000000000018000000000000000000000C00000000000000000000060000000000000000 00000300000000000000000000018000000000000000000000E000000000000000000000700000 00000000000000001C000000000000000000000E00000000000000000000038000000000000000 000001C00000000000000000000070000000000000000000003C000000000000000000000F0000 000000000000000003C000000000000000000000F0000000000000000000003E00000000000000 0000000F8000000000000000000001F0000000000000000000007F000000000000000000000FF0 00000000000000000000FFE00000000000000000000FFFF80000000000000000001FF8555580D4 00>I<0000000000000000001FF800000000000000000FFFF80000000000000000FFE000000000 000000000FF00000000000000000007F00000000000000000001F00000000000000000000F8000 00000000000000003E00000000000000000000F000000000000000000003C00000000000000000 000F000000000000000000003C000000000000000000007000000000000000000001C000000000 000000000003800000000000000000000E000000000000000000001C0000000000000000000070 00000000000000000000E000000000000000000001800000000000000000000300000000000000 00000006000000000000000000000C000000000000000000001800000000000000000000300000 00000000000000006000000000000000000000C000000000000000000001800000000000000000 00030000000000000000000006000000000000000000000C000000000000000000001800000000 000000000000300000000000000000000060000000000000000000006000000000000000000000 C00000000000000000000180000000000000000000018000000000000000000003000000000000 00000000060000000000000000000006000000000000000000000C000000000000000000001800 000000000000000000180000000000000000000030000000000000000000003000000000000000 00000060000000000000000000006000000000000000000000C000000000000000000000C00000 000000000000000180000000000000000000018000000000000000000003000000000000000000 000300000000000000000000030000000000000000000006000000000000000000000600000000 0000000000000C000000000000000000000C000000000000000000000C00000000000000000000 180000000000000000000018000000000000000000001800000000000000000000180000000000 000000000030000000000000000000003000000000000000000000300000000000000000000030 000000000000000000006000000000000000000000600000000000000000000060000000000000 000000006000000000000000000000600000000000000000000060000000000000000000006000 000000000000000000C000000000000000000000C000000000000000000000C000000000000000 000000C000000000000000000000C000000000000000000000C000000000000000000000C00000 0000000000000000C000000000000000000000C000000000000000000000400000000000000000 00005555808100>I E /Fd 3 115 df<70F8F8F87005057C8D0D>1 D<03C00FF01FF83FFC7FFE 7FFEFFFFFFFFFFFFFFFFFFFFFFFF7FFE7FFE3FFC1FF80FF003C010127D9317>15 D114 D E /Fe 11 123 df<001E0000630000C38001C1800381800301 C00701C00F01C00E01C01E03C01C03C03C03C03C03C03C03C07807807FFF807FFF80780780F00F 00F00F00F00F00F00E00F01E00E01C00E03C00E03800E0300060700060E00070C0003180001E00 0012207E9F15>18 D<70F8FCFC74040404080810102040060E7C840D>59 D<000100030003000600060006000C000C000C00180018001800300030003000600060006000C0 00C000C00180018001800300030003000600060006000C000C000C001800180018003000300030 00600060006000C000C000C000102D7DA117>61 D<001F000060C0008060010030020018038018 03C01C07801C03001C00001E00001E00001E003E1E00C11E03809C07007C0E007C1C007C3C007C 3800787800787800787800F0F000F0F000E0F000E0F001C0F001C0F00380700300700600380C00 1C380007E00017227EA018>64 D<00FFFFFF000F000E000F0006000F0002000F0002001E000200 1E0002001E0002001E0002003C0004003C0400003C0400003C04000078080000781800007FF800 0078180000F0100000F0100000F0100000F0100001E0000001E0000001E0000001E0000003C000 0003C0000003C0000003C0000007C00000FFFE0000201F7E9E1D>70 D<00FFF80FF8000F8003E0 000F000380000F000200000F000400001E000800001E002000001E004000001E008000003C0100 00003C040000003C080000003C180000007838000000787C000000793C0000007A3C000000F41E 000000F81E000000F01E000000F00F000001E00F000001E00F000001E007800001E007800003C0 07800003C003C00003C003C00003C003C00007C003E000FFFC3FFC00251F7E9E27>75 D<0000780003F80000700000700000700000700000E00000E00000E00000E00001C00001C000F1 C00389C00707800E03801C03803C0380380700780700780700780700F00E00F00E00F00E00F00E 10F01C20F01C20703C20705C40308C400F078015207E9F18>100 D<01E0000FE00001C00001C0 0001C00001C000038000038000038000038000070000070000071F000761800E80C00F00C00E00 E00E00E01C01C01C01C01C01C01C01C0380380380380380380380704700708700E08700E107006 10E006206003C016207E9F1A>104 D<00F0400388C00705800E03801C03803C03803807007807 00780700780700F00E00F00E00F00E00F00E00F01C00F01C00703C00705C0030B8000F38000038 0000380000700000700000700000700000E00000E0000FFE00121D7E9314>113 D<00C000E001C001C001C001C003800380FFF8038007000700070007000E000E000E000E001C00 1C001C001C10382038203820384018800F000D1C7F9B10>116 D<01E02003F04007F8C00C1F80 08010000020000040000080000100000600000C0000100000200000400800801001003003F0600 61FC0040F80080700013147E9315>122 D E /Ff 4 56 df<0FE030306018701C701C001C0018 0038006007E000300018000C000E000EE00EE00EC00C401830300FE00F157F9412>51 D<00300030007000F001F001700270047008701870107020704070C070FFFE0070007000700070 007003FE0F157F9412>I<01F00608080C181C301C70006000E000E3E0EC30F018F00CE00EE00E E00E600E600E300C3018183007C00F157F9412>54 D<40007FFE7FFC7FF8C00880108020004000 8000800100010003000200060006000E000E000E000E000E0004000F167E9512>I E /Fg 3 116 df<60F0F06004047D830A>58 D<38F04518463846308C000C000C000C00180018 0018001800300030000D0E7F8D10>114 D<07C00C201870187038001E000FC003E000606060E0 60C0C0C1803F000C0E7E8D10>I E /Fh 33 122 df<030600078F00078F00078F00078F00078F 00078F007FFFC0FFFFE0FFFFE07FFFC00F1E000F1E000F1E000F1E000F1E000F1E007FFFC0FFFF E0FFFFE07FFFC01E3C001E3C001E3C001E3C001E3C001E3C000C1800131C7E9B18>35 D<3078FCFC78300606778518>46 D<000300000780000780000F80000F00001F00001E00001E00 003E00003C00007C0000780000780000F80000F00001F00001E00003E00003C00003C00007C000 0780000F80000F00000F00001F00001E00003E00003C00003C00007C0000780000F80000F00000 F0000060000011247D9F18>I<01F00007FC000FFE001F1F001C07003803807803C07001C07001 C0E000E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0F001E07001C07001C07803 C03803801C07001F1F000FFE0007FC0001F000131C7E9B18>I<01800380038007800F803F80FF 80FB80438003800380038003800380038003800380038003800380038003800380038003807FFC FFFE7FFC0F1C7B9B18>I<03F0000FFE003FFF007C0F807003C0E001C0F000E0F000E06000E000 00E00000E00001C00001C00003C0000780000F00001E00003C0000780000F00001E00007C0000F 80001E00E03C00E07FFFE0FFFFE07FFFE0131C7E9B18>I<07F8001FFE003FFF007807807803C0 7801C03001C00001C00003C0000380000F0003FF0003FE0003FF000007800003C00001C00000E0 0000E00000E0F000E0F000E0F001C0F003C07C07803FFF001FFE0003F800131C7E9B18>I<001F 00003F0000770000770000E70001E70001C7000387000787000707000E07001E07003C07003807 00780700F00700FFFFF8FFFFF8FFFFF8000700000700000700000700000700000700007FF000FF F8007FF0151C7F9B18>I<007C0001FE0007FF000F87801E03C03C1DC0387FC070FFE071E3E071 C1E0E1C1E0E380E0E380E0E380E0E380E0E380E0E380E0E1C1C071C1C071E3C070FF80387F003C 1C001E00E00F83E007FFC001FF80007E00131C7E9B18>64 D85 D<7FFF00FFFF80FFFF807FFF0011047D7F18>95 D<1FE0003FF8007FFC00781E00300E00000700 00070000FF0007FF001FFF007F0700780700E00700E00700E00700F00F00781F003FFFF01FFBF0 07E1F014147D9318>97 D<7E0000FE00007E00000E00000E00000E00000E00000E00000E3E000E FF800FFFC00FC1E00F80E00F00700E00700E00380E00380E00380E00380E00380E00380F00700F 00700F80E00FC1E00FFFC00EFF80063E00151C809B18>I<01FE0007FF001FFF803E0780380300 700000700000E00000E00000E00000E00000E00000E000007000007001C03801C03E03C01FFF80 07FF0001FC0012147D9318>I<001F80003F80001F8000038000038000038000038000038003E3 800FFB801FFF803C1F80380F80700780700380E00380E00380E00380E00380E00380E003807007 80700780380F803C1F801FFFF00FFBF803E3F0151C7E9B18>I<01F00007FC001FFE003E0F0038 0780700380700380E001C0E001C0FFFFC0FFFFC0FFFFC0E000007000007001C03801C03E03C01F FF8007FF0001FC0012147D9318>I<001F80007FC000FFE000E1E001C0C001C00001C00001C000 7FFFC0FFFFC0FFFFC001C00001C00001C00001C00001C00001C00001C00001C00001C00001C000 01C00001C00001C00001C0007FFF007FFF007FFF00131C7F9B18>I<01E1F007FFF80FFFF81E1E 301C0E003807003807003807003807003807001C0E001E1E001FFC001FF80039E0003800001C00 001FFE001FFFC03FFFE07801F0700070E00038E00038E00038E000387800F07E03F01FFFC00FFF 8001FC00151F7F9318>I<7E0000FE00007E00000E00000E00000E00000E00000E00000E3E000E FF800FFFC00FC1C00F80E00F00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E 00E00E00E00E00E07FC3FCFFE7FE7FC3FC171C809B18>I<03800007C00007C00007C000038000 0000000000000000000000007FC000FFC0007FC00001C00001C00001C00001C00001C00001C000 01C00001C00001C00001C00001C00001C00001C00001C000FFFF00FFFF80FFFF00111D7C9C18> I107 D<7FE000FFE0007FE00000E00000E00000E00000E00000E0 0000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E0 0000E00000E00000E00000E0007FFFC0FFFFE07FFFC0131C7E9B18>I<7CE0E000FFFBF8007FFF F8001F1F1C001E1E1C001E1E1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C001C 1C1C001C1C1C001C1C1C001C1C1C001C1C1C007F1F1F00FFBFBF807F1F1F001914819318>I<7E 3E00FEFF807FFFC00FC1C00F80E00F00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E 00E00E00E00E00E00E00E07FC3FCFFE7FE7FC3FC1714809318>I<01F0000FFE001FFF003E0F80 3803807001C07001C0E000E0E000E0E000E0E000E0E000E0F001E07001C07803C03C07803E0F80 1FFF000FFE0001F00013147E9318>I<7E3E00FEFF807FFFC00FC1E00F80E00F00700E00700E00 380E00380E00380E00380E00380E00380F00700F00700F80E00FC1E00FFFC00EFF800E3E000E00 000E00000E00000E00000E00000E00000E00007FC000FFE0007FC000151E809318>I<7F87E0FF 9FF07FBFF803F87803F03003E00003C00003C00003800003800003800003800003800003800003 80000380000380007FFE00FFFF007FFE0015147F9318>114 D<07F7003FFF007FFF00780F00E0 0700E00700E007007C00007FE0001FFC0003FE00001F00600780E00380E00380F00380F80F00FF FF00FFFC00E7F00011147D9318>I<0180000380000380000380000380007FFFC0FFFFC0FFFFC0 0380000380000380000380000380000380000380000380000380000380400380E00380E00380E0 01C1C001FFC000FF80003E0013197F9818>I<7E07E0FE0FE07E07E00E00E00E00E00E00E00E00 E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E01E00F03E007FFFC03FFFE01FC FC1714809318>I<7F8FF0FF8FF87F8FF01E03C00E03800E03800E038007070007070007070003 8E00038E00038E00038E0001DC0001DC0001DC0000F80000F80000700015147F9318>I<7F8FF0 7F9FF07F8FF0070700078E00039E0001DC0001F80000F80000700000F00000F80001DC00039E00 038E000707000F07807F8FF0FF8FF87F8FF015147F9318>120 D<7F8FF0FF8FF87F8FF00E01C0 0E03800E0380070380070700070700038700038600038E0001CE0001CE0000CC0000CC0000DC00 00780000780000780000700000700000700000F00000E00079E0007BC0007F80003F00001E0000 151E7F9318>I E /Fi 38 122 df<387CFEFEFE7C3807077C8610>46 D<00180000780001F800 FFF800FFF80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F800 01F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F800 01F8007FFFE07FFFE013207C9F1C>49 D<03FC000FFF003C1FC07007E07C07F0FE03F0FE03F8FE 03F8FE01F87C01F83803F80003F80003F00003F00007E00007C0000F80001F00003E0000380000 700000E01801C0180380180700180E00380FFFF01FFFF03FFFF07FFFF0FFFFF0FFFFF015207D9F 1C>I<00FE0007FFC00F07E01E03F03F03F03F81F83F81F83F81F81F03F81F03F00003F00003E0 0007C0001F8001FE0001FF000007C00001F00001F80000FC0000FC3C00FE7E00FEFF00FEFF00FE FF00FEFF00FC7E01FC7801F81E07F00FFFC001FE0017207E9F1C>I<0000E00001E00003E00003 E00007E0000FE0001FE0001FE00037E00077E000E7E001C7E00187E00307E00707E00E07E00C07 E01807E03807E07007E0E007E0FFFFFEFFFFFE0007E00007E00007E00007E00007E00007E00007 E000FFFE00FFFE17207E9F1C>I<000070000000007000000000F800000000F800000000F80000 0001FC00000001FC00000003FE00000003FE00000003FE00000006FF000000067F0000000E7F80 00000C3F8000000C3F800000183FC00000181FC00000381FE00000300FE00000300FE00000600F F000006007F00000E007F80000FFFFF80000FFFFF800018001FC00018001FC00038001FE000300 00FE00030000FE000600007F000600007F00FFE00FFFF8FFE00FFFF825227EA12A>65 D<0003FE0080001FFF818000FF01E38001F8003F8003E0001F8007C0000F800F800007801F8000 07803F000003803F000003807F000001807E000001807E00000180FE00000000FE00000000FE00 000000FE00000000FE00000000FE00000000FE00000000FE000000007E000000007E000001807F 000001803F000001803F000003801F800003000F8000030007C000060003F0000C0001F8003800 00FF00F000001FFFC0000003FE000021227DA128>67 D69 D<0003FE0040001FFFC0C0007F00F1C001F8003FC003F0000FC007C000 07C00FC00003C01F800003C03F000001C03F000001C07F000000C07E000000C07E000000C0FE00 000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE000FFFFC7E 000FFFFC7F00001FC07F00001FC03F00001FC03F00001FC01F80001FC00FC0001FC007E0001FC0 03F0001FC001FC003FC0007F80E7C0001FFFC3C00003FF00C026227DA12C>71 DI76 DI<0007FC0000003FFF800000FC07 E00003F001F80007E000FC000FC0007E001F80003F001F80003F003F00001F803F00001F807F00 001FC07E00000FC07E00000FC0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE 00000FE0FE00000FE0FE00000FE0FE00000FE07E00000FC07F00001FC07F00001FC03F00001F80 3F80003F801F80003F000FC0007E0007E000FC0003F001F80000FC07E000003FFF80000007FC00 0023227DA12A>79 DI<01FC0407 FF8C1F03FC3C007C7C003C78001C78001CF8000CF8000CFC000CFC0000FF0000FFE0007FFF007F FFC03FFFF01FFFF80FFFFC03FFFE003FFE0003FF00007F00003F00003FC0001FC0001FC0001FE0 001EE0001EF0003CFC003CFF00F8C7FFE080FF8018227DA11F>83 D<7FFFFFFF807FFFFFFF807E 03F80F807803F807807003F803806003F80180E003F801C0E003F801C0C003F800C0C003F800C0 C003F800C0C003F800C00003F800000003F800000003F800000003F800000003F800000003F800 000003F800000003F800000003F800000003F800000003F800000003F800000003F800000003F8 00000003F800000003F800000003F800000003F800000003F800000003F8000003FFFFF80003FF FFF80022227EA127>I86 D<07FC001FFF803F07C03F03E03F01E03F01F01E01F00001F00001F0003FF003FDF01FC1F03F01 F07E01F0FC01F0FC01F0FC01F0FC01F07E02F07E0CF81FF87F07E03F18167E951B>97 D<00FF8007FFE00F83F01F03F03E03F07E03F07C01E07C0000FC0000FC0000FC0000FC0000FC00 00FC00007C00007E00007E00003E00301F00600FC0E007FF8000FE0014167E9519>99 D<0001FE000001FE0000003E0000003E0000003E0000003E0000003E0000003E0000003E000000 3E0000003E0000003E0000003E0001FC3E0007FFBE000F81FE001F007E003E003E007E003E007C 003E00FC003E00FC003E00FC003E00FC003E00FC003E00FC003E00FC003E00FC003E007C003E00 7C003E003E007E001E00FE000F83BE0007FF3FC001FC3FC01A237EA21F>I<00FE0007FF800F87 C01E01E03E01F07C00F07C00F8FC00F8FC00F8FFFFF8FFFFF8FC0000FC0000FC00007C00007C00 007E00003E00181F00300FC07003FFC000FF0015167E951A>I<003F8000FFC001E3E003C7E007 C7E00F87E00F83C00F80000F80000F80000F80000F80000F8000FFFC00FFFC000F80000F80000F 80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F 80000F80000F80007FF8007FF80013237FA211>I<03FC1E0FFF7F1F0F8F3E07CF3C03C07C03E0 7C03E07C03E07C03E07C03E03C03C03E07C01F0F801FFF0013FC003000003000003800003FFF80 1FFFF00FFFF81FFFFC3800FC70003EF0001EF0001EF0001EF0001E78003C7C007C3F01F80FFFE0 01FF0018217E951C>I I<1C003F007F007F007F003F001C000000000000000000000000000000FF00FF001F001F001F00 1F001F001F001F001F001F001F001F001F001F001F001F001F001F001F00FFE0FFE00B247EA310 >I 108 DII<00FE0007FFC00F83E01E00F03E00F87C007C7C007C7C007CFC007EFC007EFC007EFC007E FC007EFC007EFC007E7C007C7C007C3E00F81F01F00F83E007FFC000FE0017167E951C>II114 D<0FF3003FFF00781F00600700E00300E00300F00300FC00007FE0 007FF8003FFE000FFF0001FF00000F80C00780C00380E00380E00380F00700FC0E00EFFC00C7F0 0011167E9516>I<0180000180000180000180000380000380000780000780000F80003F8000FF FF00FFFF000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F 81800F81800F81800F81800F81800F830007C30003FE0000F80011207F9F16>IIIIII E /Fj 52 122 df<00003FE00000E0100001803800038078000300780007003000070000000700000007000000 0E0000000E0000000E000000FFFFE0000E00E0001C01C0001C01C0001C01C0001C01C0001C0380 0038038000380380003803800038070000380700007007000070071000700E2000700E2000700E 2000E00E2000E0064000E0038000E0000000C0000001C0000001C000003180000079800000F300 0000620000003C0000001D29829F1A>12 D<0E1F3F3F1D0102020404081020C0080E779F0E>39 D<000100020004000800100020006000C0018001800300070006000E000C001C00180038003800 30007000700060006000E000E000C000C000C000C000C000C000C000C000C000C000C000C000C0 004000600060002000100010000800102E79A113>I<0010000008000004000006000002000003 000003000003000001000001800001800001800001800001800001800001800003800003800003 80000300000300000300000700000700000600000600000E00000C00000C00001C000018000038 0000300000700000600000E00000C0000180000100000300000600000C00001800003000006000 00800000112E80A113>I<1C3C3C3C3C040408081020204080060E7D840E>44 D<7FF0FFE07FE00C037D8A10>I<70F8F8F0E005057B840E>I<00000040000000C0000001800000 01800000030000000300000006000000060000000C000000180000001800000030000000300000 0060000000C0000000C0000001800000018000000300000003000000060000000C0000000C0000 001800000018000000300000003000000060000000C0000000C000000180000001800000030000 0003000000060000000C0000000C0000001800000018000000300000003000000060000000C000 0000C0000000800000001A2D7FA117>I<000200020006000E003C00DC031C001C003800380038 0038007000700070007000E000E000E000E001C001C001C001C003800380038003800780FFF80F 1E7B9D17>49 D<001F800060E00080700100300200380420380420380410380420700460700380 600000E00001C000030000FE00001C000006000007000007800007800007803007807807807807 80F00F00800F00401E00401C0040380020E0001F8000151F7C9D17>51 D<001F0000718000C0C0 0180C00380E00700E00F00E00F01E01E01E01E01E01E01E01E01C01C03C01C03C01C03C01C07C0 1C0F800C0F8006378003C700000F00000E00000E00001C00601C00F03800F07000E0600080C000 4380003E0000131F7B9D17>57 D<00000200000006000000060000000E0000001E0000001E0000 003F0000002F0000004F0000004F0000008F0000010F0000010F0000020F0000020F0000040F00 000C0F0000080F0000100F0000100F0000200F80003FFF800040078000C0078000800780010007 80010007800200078002000780060007801E000F80FF807FF81D207E9F22>65 D<01FFFFC0001E00F0001E0078001E0038001E003C003C003C003C003C003C003C003C003C0078 007800780078007800F0007801E000F0078000FFFE0000F00F8000F003C001E001C001E001E001 E001E001E001E003C001E003C001E003C001E003C001C0078003C00780078007800F0007801E00 0F007800FFFFE0001E1F7D9E20>I<0000FE0200078186001C004C0038003C0060003C00C0001C 01C0001803800018070000180F0000181E0000101E0000103C0000003C00000078000000780000 007800000078000000F0000000F0000000F0000000F0000000F000008070000080700000807000 01003800010038000200180004000C001800060020000381C00000FE00001F217A9F21>I<01FF FF80001E00E0001E0070001E0038001E001C003C001C003C000E003C000E003C000E0078000E00 78000E0078000E0078000E00F0001E00F0001E00F0001E00F0001E01E0003C01E0003C01E0003C 01E0007803C0007003C0007003C000E003C001C0078001C00780038007800E0007801C000F0070 00FFFFC0001F1F7D9E22>I<01FFFFFE001E001C001E000C001E0004001E0004003C0004003C00 04003C0004003C00040078080800780800007808000078180000F0300000FFF00000F0300000F0 300001E0200001E0200001E0200001E0001003C0002003C0002003C0004003C000400780008007 80018007800100078007000F001F00FFFFFE001F1F7D9E1F>I<01FFFFFC001E0038001E001800 1E0008001E0008003C0008003C0008003C0008003C000800780010007808000078080000780800 00F0100000F0300000FFF00000F0300001E0200001E0200001E0200001E0200003C0000003C000 0003C0000003C00000078000000780000007800000078000000F800000FFF800001E1F7D9E1E> I<0000FC040007030C001C00980030007800E0007801C000380380003003800030070000300E00 00301E0000201E0000203C0000003C00000078000000780000007800000078000000F0000000F0 00FFF0F0000780F0000780F0000F0070000F0070000F0070000F0070001E0038001E0018003E00 1C002E000E00CC000383040000FC00001E217A9F23>I<01FFF3FFE0001F003E00001E003C0000 1E003C00001E003C00003C007800003C007800003C007800003C007800007800F000007800F000 007800F000007800F00000F001E00000FFFFE00000F001E00000F001E00001E003C00001E003C0 0001E003C00001E003C00003C007800003C007800003C007800003C007800007800F000007800F 000007800F000007800F00000F801F0000FFF1FFE000231F7D9E22>I<01FFF0001F00001E0000 1E00001E00003C00003C00003C00003C0000780000780000780000780000F00000F00000F00000 F00001E00001E00001E00001E00003C00003C00003C00003C0000780000780000780000780000F 8000FFF800141F7D9E12>I<01FFF800001F0000001E0000001E0000001E0000003C0000003C00 00003C0000003C00000078000000780000007800000078000000F0000000F0000000F0000000F0 000001E0000001E0000001E0000001E0008003C0010003C0010003C0030003C002000780060007 80060007800C0007801C000F007800FFFFF800191F7D9E1D>76 D<01FE00007FC0001E0000FC00 001E0000F80000170001780000170001780000270002F00000270004F00000270004F000002700 08F00000470009E00000470011E00000470021E00000470021E00000870043C00000838043C000 00838083C00000838083C000010381078000010382078000010382078000010384078000020384 0F00000203880F00000203900F00000203900F00000401E01E00000401E01E00000401C01E0000 0C01801E00001C01803E0000FF8103FFC0002A1F7D9E29>I<01FF007FE0001F000F00001F0004 000017800400001780040000278008000023C008000023C008000023C008000041E010000041E0 10000041F010000040F010000080F0200000807820000080782000008078200001003C40000100 3C400001003C400001001E400002001E800002001E800002000F800002000F800004000F000004 0007000004000700000C000700001C00020000FF80020000231F7D9E22>I<01FFFF80001E00E0 001E0070001E0038001E003C003C003C003C003C003C003C003C003C0078007800780078007800 F0007800E000F003C000F00F0000FFFC0000F0000001E0000001E0000001E0000001E0000003C0 000003C0000003C0000003C00000078000000780000007800000078000000F800000FFF000001E 1F7D9E1F>80 D<0007E040001C18C0003005800060038000C0038001C001800180010003800100 03800100038001000380000003C0000003C0000003F8000001FF800001FFE000007FF000001FF0 000001F80000007800000078000000380000003800200038002000380020003000600070006000 60006000E0007000C000E8038000C606000081F800001A217D9F1A>83 D<0FFFFFF01E0780E018 0780201007802020078020200F0020600F0020400F0020400F0020801E0040001E0000001E0000 001E0000003C0000003C0000003C0000003C00000078000000780000007800000078000000F000 0000F0000000F0000000F0000001E0000001E0000001E0000001E0000003E00000FFFF00001C1F 789E21>I<7FFC1FF807C003C00780010007800100078001000F0002000F0002000F0002000F00 02001E0004001E0004001E0004001E0004003C0008003C0008003C0008003C0008007800100078 0010007800100078001000F0002000F0002000F0002000F0004000F00040007000800070010000 30020000380400000C18000007E000001D20779E22>III<00F1800389C00707800E03801C03803C0380380700780700780700780700F00E00 F00E00F00E00F00E20F01C40F01C40703C40705C40308C800F070013147C9317>97 D<07803F8007000700070007000E000E000E000E001C001C001CF01D0C3A0E3C0E380F380F700F 700F700F700FE01EE01EE01EE01CE03CE038607060E031C01F0010207B9F15>I<007E0001C100 0300800E07801E07801C07003C0200780000780000780000F00000F00000F00000F00000F00000 70010070020030040018380007C00011147C9315>I<0000780003F80000700000700000700000 700000E00000E00000E00000E00001C00001C000F1C00389C00707800E03801C03803C03803807 00780700780700780700F00E00F00E00F00E00F00E20F01C40F01C40703C40705C40308C800F07 0015207C9F17>I<007C01C207010E011C013C013802780C7BF07C00F000F000F000F000700070 0170023804183807C010147C9315>I<00007800019C00033C00033C000718000700000700000E 00000E00000E00000E00000E0001FFE0001C00001C00001C00001C000038000038000038000038 0000380000700000700000700000700000700000700000E00000E00000E00000E00000C00001C0 0001C0000180003180007B0000F300006600003C00001629829F0E>I<003C6000E27001C1E003 80E00700E00F00E00E01C01E01C01E01C01E01C03C03803C03803C03803C03803C07003C07001C 0F001C17000C2E0003CE00000E00000E00001C00001C00301C00783800F0700060E0003F800014 1D7E9315>I<01E0000FE00001C00001C00001C00001C000038000038000038000038000070000 070000071E000763000E81800F01C00E01C00E01C01C03801C03801C03801C0380380700380700 380700380E10700E20700C20701C20700C40E00CC060070014207D9F17>I<00C001E001E001C0 00000000000000000000000000000E003300230043804300470087000E000E000E001C001C001C 003840388030807080310033001C000B1F7C9E0E>I<01E0000FE00001C00001C00001C00001C0 000380000380000380000380000700000700000703C00704200E08E00E11E00E21E00E40C01C80 001D00001E00001FC00038E000387000387000383840707080707080707080703100E03100601E 0013207D9F15>107 D<03C01FC0038003800380038007000700070007000E000E000E000E001C 001C001C001C0038003800380038007000700070007100E200E200E200E200640038000A207C9F 0C>I<1C0F80F0002630C318004740640C004780680E004700700E004700700E008E00E01C000E 00E01C000E00E01C000E00E01C001C01C038001C01C038001C01C038001C01C070803803807100 3803806100380380E10038038062007007006600300300380021147C9325>I<1C0F802630C047 40604780604700704700708E00E00E00E00E00E00E00E01C01C01C01C01C01C01C038438038838 03083807083803107003303001C016147C931A>I<007C0001C3000301800E01C01E01C01C01E0 3C01E07801E07801E07801E0F003C0F003C0F003C0F00780F00700700F00700E00301800187000 07C00013147C9317>I<01C1E002621804741C04781C04701E04701E08E01E00E01E00E01E00E0 1E01C03C01C03C01C03C01C0380380780380700380E003C1C0072380071E000700000700000E00 000E00000E00000E00001C00001C0000FFC000171D809317>I<1C1E0026610047838047878047 07804703008E00000E00000E00000E00001C00001C00001C00001C000038000038000038000038 000070000030000011147C9313>114 D<00FC030206010C030C070C060C000F800FF007F803FC 003E000E700EF00CF00CE008401020601F8010147D9313>I<018001C003800380038003800700 0700FFF007000E000E000E000E001C001C001C001C003800380038003820704070407080708031 001E000C1C7C9B0F>I<0E00C03300E02301C04381C04301C04701C08703800E03800E03800E03 801C07001C07001C07001C07101C0E20180E20180E201C1E200C264007C38014147C9318>I<0E 03803307802307C04383C04301C04700C08700800E00800E00800E00801C01001C01001C01001C 02001C02001C04001C04001C08000E300003C00012147C9315>I<0E00C1C03300E3C02301C3E0 4381C1E04301C0E04701C060870380400E0380400E0380400E0380401C0700801C0700801C0700 801C0701001C0701001C0602001C0F02000C0F04000E13080003E1F0001B147C931E>I<038380 0CC4401068E01071E02071E02070C040E00000E00000E00000E00001C00001C00001C00001C040 638080F38080F38100E5810084C60078780013147D9315>I<0E00C03300E02301C04381C04301 C04701C08703800E03800E03800E03801C07001C07001C07001C07001C0E00180E00180E001C1E 000C3C0007DC00001C00001C00003800F03800F07000E06000C0C0004380003E0000131D7C9316 >I E /Fk 39 122 df<000E00001E00007E0007FE00FFFE00FFFE00F8FE0000FE0000FE0000FE 0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE 0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE 007FFFFE7FFFFE7FFFFE17277BA622>49 D<00FF800003FFF0000FFFFC001F03FE003800FF007C 007F80FE003FC0FF003FC0FF003FE0FF001FE0FF001FE07E001FE03C003FE000003FE000003FC0 00003FC000007F8000007F000000FE000000FC000001F8000003F0000003E00000078000000F00 00001E0000003C00E0007000E000E000E001C001C0038001C0070001C00FFFFFC01FFFFFC03FFF FFC07FFFFFC0FFFFFF80FFFFFF80FFFFFF801B277DA622>I<007F800003FFF00007FFFC000F81 FE001F00FF003F80FF003F807F803F807F803F807F801F807F800F007F800000FF000000FF0000 00FE000001FC000001F8000007F00000FFC00000FFF0000001FC0000007E0000007F0000007F80 00003FC000003FC000003FE000003FE03C003FE07E003FE0FF003FE0FF003FE0FF003FC0FF007F C07E007F807C007F003F01FE001FFFFC0007FFF00000FF80001B277DA622>I<00000E0000001E 0000003E0000007E000000FE000000FE000001FE000003FE0000077E00000E7E00000E7E00001C 7E0000387E0000707E0000E07E0000E07E0001C07E0003807E0007007E000E007E000E007E001C 007E0038007E0070007E00E0007E00FFFFFFF8FFFFFFF8FFFFFFF80000FE000000FE000000FE00 0000FE000000FE000000FE000000FE000000FE00007FFFF8007FFFF8007FFFF81D277EA622>I< 0C0003000F803F000FFFFE000FFFFC000FFFF8000FFFF0000FFFE0000FFFC0000FFE00000E0000 000E0000000E0000000E0000000E0000000E0000000E7FC0000FFFF8000F80FC000E003E000C00 3F0000001F8000001FC000001FC000001FE000001FE018001FE07C001FE0FE001FE0FE001FE0FE 001FE0FE001FC0FC001FC078003F8078003F803C007F001F01FE000FFFF80003FFF00000FF8000 1B277DA622>I<000003800000000007C00000000007C0000000000FE0000000000FE000000000 0FE0000000001FF0000000001FF0000000003FF8000000003FF8000000003FF80000000073FC00 00000073FC00000000F3FE00000000E1FE00000000E1FE00000001C0FF00000001C0FF00000003 C0FF80000003807F80000007807FC0000007003FC0000007003FC000000E003FE000000E001FE0 00001E001FF000001C000FF000001FFFFFF000003FFFFFF800003FFFFFF80000780007FC000070 0003FC0000700003FC0000E00001FE0000E00001FE0001E00001FF0001C00000FF0001C00000FF 00FFFE001FFFFEFFFE001FFFFEFFFE001FFFFE2F297EA834>65 DI<00003FF001800003FFFE0380000FFFFF8780003FF007DF8000FF8001FF8001FE 00007F8003FC00003F8007F000001F800FF000000F801FE0000007801FE0000007803FC0000007 803FC0000003807FC0000003807F80000003807F8000000000FF8000000000FF8000000000FF80 00000000FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF80000000 007F80000000007F80000000007FC0000003803FC0000003803FC0000003801FE0000003801FE0 000007000FF00000070007F000000E0003FC00001E0001FE00003C0000FF8000F800003FF007E0 00000FFFFFC0000003FFFF000000003FF8000029297CA832>III I72 DI77 DI<00 00FFE000000007FFFC0000003FC07F8000007F001FC00001FC0007F00003F80003F80007F00001 FC000FF00001FE001FE00000FF001FE00000FF003FC000007F803FC000007F807FC000007FC07F 8000003FC07F8000003FC07F8000003FC0FF8000003FE0FF8000003FE0FF8000003FE0FF800000 3FE0FF8000003FE0FF8000003FE0FF8000003FE0FF8000003FE0FF8000003FE0FF8000003FE07F 8000003FC07FC000007FC07FC000007FC03FC000007F803FC000007F801FE00000FF001FE00000 FF000FF00001FE0007F00001FC0003F80003F80001FC0007F00000FF001FE000003FC07F800000 0FFFFE00000000FFE000002B297CA834>II82 D<007F806003FFF0E007FFF9E00F807FE01F001FE03E0007 E07C0003E07C0001E0FC0001E0FC0001E0FC0000E0FE0000E0FE0000E0FF000000FFC000007FFE 00007FFFE0003FFFFC001FFFFE000FFFFF8007FFFFC003FFFFE000FFFFE00007FFF000007FF000 000FF8000007F8000003F8600001F8E00001F8E00001F8E00001F8F00001F0F00001F0F80003F0 FC0003E0FF0007C0FFE01F80F3FFFF00E0FFFE00C01FF0001D297CA826>I86 D<01FF800007FFF0000F81F8001FC07E001FC07E001FC03F000F 803F8007003F8000003F8000003F8000003F80000FFF8000FFFF8007FC3F800FE03F803F803F80 3F003F807F003F80FE003F80FE003F80FE003F80FE003F807E007F807F00DF803F839FFC0FFF0F FC01FC03FC1E1B7E9A21>97 DI<001FF800 00FFFE0003F01F0007E03F800FC03F801F803F803F801F007F800E007F0000007F000000FF0000 00FF000000FF000000FF000000FF000000FF000000FF0000007F0000007F0000007F8000003F80 01C01F8001C00FC0038007E0070003F01E0000FFFC00001FE0001A1B7E9A1F>I<00003FF80000 003FF80000003FF800000003F800000003F800000003F800000003F800000003F800000003F800 000003F800000003F800000003F800000003F800000003F800000003F800001FE3F80000FFFBF8 0003F03FF80007E00FF8000FC007F8001F8003F8003F8003F8007F0003F8007F0003F8007F0003 F800FF0003F800FF0003F800FF0003F800FF0003F800FF0003F800FF0003F800FF0003F8007F00 03F8007F0003F8007F0003F8003F8003F8001F8003F8000F8007F80007C00FF80003F03BFF8000 FFF3FF80003FC3FF80212A7EA926>I<003FE00001FFF80003F07E0007C01F000F801F801F800F 803F800FC07F000FC07F0007C07F0007E0FF0007E0FF0007E0FFFFFFE0FFFFFFE0FF000000FF00 0000FF0000007F0000007F0000007F0000003F8000E01F8000E00FC001C007E0038003F81F0000 FFFE00001FF0001B1B7E9A20>I<0007F0003FFC00FE3E01F87F03F87F03F07F07F07F07F03E07 F00007F00007F00007F00007F00007F00007F000FFFFC0FFFFC0FFFFC007F00007F00007F00007 F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007 F00007F00007F00007F00007F0007FFF807FFF807FFF80182A7EA915>I<00FF81F003FFE7F80F C1FE7C1F80FC7C1F007C383F007E107F007F007F007F007F007F007F007F007F007F007F007F00 3F007E001F007C001F80FC000FC1F8001FFFE00018FF800038000000380000003C0000003E0000 003FFFF8001FFFFF001FFFFF800FFFFFC007FFFFE01FFFFFF03E0007F07C0001F8F80000F8F800 00F8F80000F8F80000F87C0001F03C0001E01F0007C00FC01F8003FFFE00007FF0001E287E9A22 >I<07000FC01FE03FE03FE03FE01FE00FC007000000000000000000000000000000FFE0FFE0FF E00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE0 0FE00FE0FFFEFFFEFFFE0F2B7DAA14>105 D108 DII<003FE00001FFFC0003F07E00 0FC01F801F800FC03F800FE03F0007E07F0007F07F0007F07F0007F0FF0007F8FF0007F8FF0007 F8FF0007F8FF0007F8FF0007F8FF0007F8FF0007F87F0007F07F0007F03F800FE03F800FE01F80 0FC00FC01F8007F07F0001FFFC00003FE0001D1B7E9A22>II114 D<03FE300FFFF01E03F03800F0700070F00070F00070F80070FC0000FFE0007FFE007F FF803FFFE01FFFF007FFF800FFF80003FC0000FC60007CE0003CF0003CF00038F80038FC0070FF 01E0F7FFC0C1FF00161B7E9A1B>I<00700000700000700000700000F00000F00000F00001F000 03F00003F00007F0001FFFF0FFFFF0FFFFF007F00007F00007F00007F00007F00007F00007F000 07F00007F00007F00007F00007F00007F00007F03807F03807F03807F03807F03807F03803F038 03F87001F86000FFC0001F8015267FA51B>III121 D E /Fl 86 128 df<001F83E000F06E3001C078780380F8780300F03007007000070070000700 700007007000070070000700700007007000FFFFFF800700700007007000070070000700700007 007000070070000700700007007000070070000700700007007000070070000700700007007000 070070000700700007007000070070007FE3FF001D20809F1B>11 D<003F0000E0C001C0C00381 E00701E00701E0070000070000070000070000070000070000FFFFE00700E00700E00700E00700 E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700 E00700E07FC3FE1720809F19>I<003FE000E0E001C1E00381E00700E00700E00700E00700E007 00E00700E00700E00700E0FFFFE00700E00700E00700E00700E00700E00700E00700E00700E007 00E00700E00700E00700E00700E00700E00700E00700E00700E00700E07FE7FE1720809F19>I< 001F81F80000F04F040001C07C06000380F80F000300F00F000700F00F00070070000007007000 000700700000070070000007007000000700700000FFFFFFFF0007007007000700700700070070 070007007007000700700700070070070007007007000700700700070070070007007007000700 70070007007007000700700700070070070007007007000700700700070070070007007007007F E3FE3FF02420809F26>I<001F81FF0000F06F070001C07C0F000380F80F000300F00700070070 0700070070070007007007000700700700070070070007007007000700700700FFFFFFFF000700 700700070070070007007007000700700700070070070007007007000700700700070070070007 007007000700700700070070070007007007000700700700070070070007007007000700700700 070070070007007007007FE3FE3FF02420809F26>I<7038F87CFC7EFC7E743A04020402040208 04080410081008201040200F0E7E9F17>34 D<70F8FCFC74040404080810102040060E7C9F0D> 39 D<0020004000800100020006000C000C00180018003000300030007000600060006000E000 E000E000E000E000E000E000E000E000E000E000E0006000600060007000300030003000180018 000C000C000600020001000080004000200B2E7DA112>I<800040002000100008000C00060006 000300030001800180018001C000C000C000C000E000E000E000E000E000E000E000E000E000E0 00E000E000C000C000C001C001800180018003000300060006000C00080010002000400080000B 2E7DA112>I<000600000006000000060000000600000006000000060000000600000006000000 060000000600000006000000060000000600000006000000060000FFFFFFF0FFFFFFF000060000 000600000006000000060000000600000006000000060000000600000006000000060000000600 00000600000006000000060000000600001C207D9A23>43 D<70F8FCFC74040404080810102040 060E7C840D>II<70F8F8F87005057C840D>I<00010003000300060006 0006000C000C000C00180018001800300030003000600060006000C000C000C001800180018003 00030003000600060006000C000C000C00180018001800300030003000600060006000C000C000 C000102D7DA117>I<03F0000E1C001C0E00180600380700700380700380700380700380F003C0 F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0700380 7003807003807807803807001806001C0E000E1C0003F000121F7E9D17>I<018003800F80F380 038003800380038003800380038003800380038003800380038003800380038003800380038003 80038003800380038007C0FFFE0F1E7C9D17>I<03F0000C1C00100E00200700400780800780F0 07C0F803C0F803C0F803C02007C00007C0000780000780000F00000E00001C0000380000700000 600000C0000180000300000600400C00401800401000803FFF807FFF80FFFF80121E7E9D17>I< 03F0000C1C00100E00200F00780F80780780780780380F80000F80000F00000F00000E00001C00 00380003F000003C00000E00000F000007800007800007C02007C0F807C0F807C0F807C0F00780 400780400F00200E001C3C0003F000121F7E9D17>I<000600000600000E00000E00001E00002E 00002E00004E00008E00008E00010E00020E00020E00040E00080E00080E00100E00200E00200E 00400E00C00E00FFFFF0000E00000E00000E00000E00000E00000E00000E0000FFE0141E7F9D17 >I<1803001FFE001FFC001FF8001FE00010000010000010000010000010000010000011F00016 1C00180E001007001007800003800003800003C00003C00003C07003C0F003C0F003C0E0038040 0380400700200600100E000C380003E000121F7E9D17>I<007C000182000701000E03800C0780 1C0780380300380000780000700000700000F1F000F21C00F40600F80700F80380F80380F003C0 F003C0F003C0F003C0F003C07003C07003C07003803803803807001807000C0E00061C0001F000 121F7E9D17>I<4000007FFFC07FFF807FFF804001008002008002008004000008000008000010 0000200000200000400000400000C00000C00001C0000180000380000380000380000380000780 00078000078000078000078000078000078000030000121F7D9D17>I<03F0000C0C0010060030 03002001806001806001806001807001807803003E03003F06001FC8000FF00003F80007FC000C 7E00103F00300F806003804001C0C001C0C000C0C000C0C000C0C000806001802001001002000C 0C0003F000121F7E9D17>I<03F0000E18001C0C00380600380700700700700380F00380F00380 F003C0F003C0F003C0F003C0F003C07007C07007C03807C0180BC00E13C003E3C0000380000380 000380000700300700780600780E00700C002018001070000FC000121F7E9D17>I<70F8F8F870 0000000000000000000070F8F8F87005147C930D>I<70F8F8F8700000000000000000000070F0 F8F878080808101010202040051D7C930D>I<7FFFFFE0FFFFFFF0000000000000000000000000 0000000000000000000000000000000000000000FFFFFFF07FFFFFE01C0C7D9023>61 D<0FC0307040384038E03CF03CF03C603C0038007000E000C00180018001000300020002000200 0200020002000000000000000000000007000F800F800F8007000E207D9F15>63 D<001F800000E0700001000800060006000800010008000100100F00802030C0402060404040C0 202041C01C2041C01C2081801C1083801C1083801C1083801C1083801C1083801C1083801C1081 801C1041C01C1041C01C1040C03C2020605C202030CC40100F0780080000000800000006000070 010001C000E01F00001FF0001C207D9F23>I<000100000003800000038000000380000007C000 0007C0000007C0000009E0000009E0000009E0000010F0000010F0000010F00000207800002078 000020780000403C0000403C0000403C0000801E0000801E0000FFFE0001000F0001000F000100 0F00020007800200078002000780040003C00E0003C01F0007E0FFC03FFE1F207F9F22>II<000FC040007030C001C009C0038005C0070003C00E0001C01E0000 C01C0000C03C0000C07C0000407C00004078000040F8000000F8000000F8000000F8000000F800 0000F8000000F8000000F8000000F8000000780000007C0000407C0000403C0000401C0000401E 0000800E000080070001000380020001C0040000703800000FC0001A217D9F21>IIII<000F E0200078186000E004E0038002E0070001E00F0000E01E0000601E0000603C0000603C0000207C 00002078000020F8000000F8000000F8000000F8000000F8000000F8000000F8000000F8007FFC F80003E0780001E07C0001E03C0001E03C0001E01E0001E01E0001E00F0001E0070001E0038002 E000E0046000781820000FE0001E217D9F24>III<0FFFC0007C00003C00003C00003C 00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C 00003C00003C00003C00003C00003C00203C00F83C00F83C00F83C00F0380040780040700030E0 000F800012207E9E17>IIIII<001F800000F0F00001C038 0007801E000F000F000E0007001E0007803C0003C03C0003C07C0003E0780001E0780001E0F800 01F0F80001F0F80001F0F80001F0F80001F0F80001F0F80001F0F80001F0F80001F0780001E07C 0003E07C0003E03C0003C03C0003C01E0007800E0007000F000F0007801E0001C0380000F0F000 001F80001C217D9F23>II82 D<07E0800C1980100780300380600180600180E00180E00080E00080E00080F00000F0 00007800007F00003FF0001FFC000FFE0003FF00001F800007800003C00003C00001C08001C080 01C08001C08001C0C00180C00380E00300F00600CE0C0081F80012217D9F19>I<7FFFFFE0780F 01E0600F0060400F0020400F0020C00F0030800F0010800F0010800F0010800F0010000F000000 0F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000 000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000001F800007FFFE 001C1F7E9E21>IIII<7FF83FF80FE00FC007C0070003C0020001E0040001F00C0000F008000078 1000007C1000003C2000003E4000001E4000000F8000000F8000000780000003C0000007E00000 05E0000009F0000018F8000010780000207C0000603C0000401E0000801F0001800F0001000780 020007C0070003C01F8007E0FFE01FFE1F1F7F9E22>II91 D<080410082010201040204020804080408040B85CFC7EFC7E7C3E38 1C0F0E7B9F17>II<081020204040808080B8FCFC7C38060E7D9F 0D>96 D<1FE000303000781800781C00300E00000E00000E00000E0000FE00078E001E0E00380E 00780E00F00E10F00E10F00E10F01E10781E103867200F83C014147E9317>I<0E0000FE00000E 00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E3E000EC3800F01C00F 00E00E00E00E00700E00700E00780E00780E00780E00780E00780E00780E00700E00700E00E00F 00E00D01C00CC300083E0015207F9F19>I<03F80E0C1C1E381E380C70007000F000F000F000F0 00F000F00070007000380138011C020E0C03F010147E9314>I<000380003F8000038000038000 038000038000038000038000038000038000038000038003E380061B801C078038038038038070 0380700380F00380F00380F00380F00380F00380F003807003807003803803803807801C07800E 1B8003E3F815207E9F19>I<03F0000E1C001C0E00380700380700700700700380F00380F00380 FFFF80F00000F00000F000007000007000003800801800800C010007060001F80011147F9314> I<007C00C6018F038F07060700070007000700070007000700FFF0070007000700070007000700 0700070007000700070007000700070007000700070007007FF01020809F0E>I<0000E003E330 0E3C301C1C30380E00780F00780F00780F00780F00780F00380E001C1C001E380033E000200000 2000003000003000003FFE001FFF800FFFC03001E0600070C00030C00030C00030C00030600060 3000C01C038003FC00141F7F9417>I<0E0000FE00000E00000E00000E00000E00000E00000E00 000E00000E00000E00000E00000E3E000E43000E81800F01C00F01C00E01C00E01C00E01C00E01 C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C0FFE7FC16207F9F19 >I<1C001E003E001E001C000000000000000000000000000E007E000E000E000E000E000E000E 000E000E000E000E000E000E000E000E000E000E000E00FFC00A1F809E0C>I<00E001F001F001 F000E0000000000000000000000000007007F000F0007000700070007000700070007000700070 0070007000700070007000700070007000700070007000706070F060F0C061803F000C28829E0E >I<0E0000FE00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E 0FF00E03C00E03000E02000E04000E08000E10000E30000E70000EF8000F38000E1C000E1E000E 0E000E07000E07800E03800E03C00E03E0FFCFF815207F9F18>I<0E00FE000E000E000E000E00 0E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E 000E000E000E000E000E00FFE00B20809F0C>I<0E1F01F000FE618618000E81C81C000F00F00E 000F00F00E000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00E0 0E000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E00FFE7 FE7FE023147F9326>I<0E3E00FE43000E81800F01C00F01C00E01C00E01C00E01C00E01C00E01 C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C0FFE7FC16147F9319>I<01 F800070E001C03803801C03801C07000E07000E0F000F0F000F0F000F0F000F0F000F0F000F070 00E07000E03801C03801C01C0380070E0001F80014147F9317>I<0E3E00FEC3800F01C00F00E0 0E00E00E00F00E00700E00780E00780E00780E00780E00780E00780E00700E00F00E00E00F01E0 0F01C00EC3000E3E000E00000E00000E00000E00000E00000E00000E00000E0000FFE000151D7F 9319>I<03E0800619801C05803C0780380380780380700380F00380F00380F00380F00380F003 80F003807003807803803803803807801C0B800E138003E3800003800003800003800003800003 80000380000380000380003FF8151D7E9318>I<0E78FE8C0F1E0F1E0F0C0E000E000E000E000E 000E000E000E000E000E000E000E000E000E00FFE00F147F9312>I<1F9030704030C010C010C0 10E00078007F803FE00FF00070803880188018C018C018E030D0608F800D147E9312>I<020002 000200060006000E000E003E00FFF80E000E000E000E000E000E000E000E000E000E000E000E08 0E080E080E080E080610031001E00D1C7F9B12>I<0E01C0FE1FC00E01C00E01C00E01C00E01C0 0E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E03C00603C0030DC0 01F1FC16147F9319>III<7FC3FC0F01E00701C007018003810001C20000E40000EC0000780000380000 3C00007C00004E000087000107000303800201C00601E01E01E0FF07FE1714809318>II<3FFF380E200E201C40384078407000E001E001C0038007800701 0E011E011C0338027006700EFFFE10147F9314>III<30307878F87C787830300E057C9E17>127 D E /Fm 44 123 df<007E0001C180030180 0703C00E03C00E01800E00000E00000E00000E00000E0000FFFFC00E01C00E01C00E01C00E01C0 0E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C07F87F8 151D809C17>12 D<004000800100020006000C000C0018001800300030007000600060006000E0 00E000E000E000E000E000E000E000E000E000E000E00060006000600070003000300018001800 0C000C00060002000100008000400A2A7D9E10>40 D<800040002000100018000C000C00060006 0003000300038001800180018001C001C001C001C001C001C001C001C001C001C001C001C00180 01800180038003000300060006000C000C00180010002000400080000A2A7E9E10>I<60F0F070 1010101020204080040C7C830C>44 DI<60F0F06004047C830C>I<4000 007FFF807FFF007FFF0040020080040080040080080000100000100000200000600000400000C0 0000C00001C0000180000180000380000380000380000380000780000780000780000780000780 00078000030000111D7E9B15>55 D<000600000006000000060000000F0000000F0000000F0000 0017800000178000001780000023C0000023C0000023C0000041E0000041E0000041E0000080F0 000080F0000180F8000100780001FFF80003007C0002003C0002003C0006003E0004001E000400 1E000C001F001E001F00FF80FFF01C1D7F9C1F>65 D<001F808000E0618001801980070007800E 0003801C0003801C00018038000180780000807800008070000080F0000000F0000000F0000000 F0000000F0000000F0000000F0000000F0000000700000807800008078000080380000801C0001 001C0001000E000200070004000180080000E03000001FC000191E7E9C1E>67 D69 DI72 DI77 DI80 D<7FFFFFC0700F01C0600F00C0400F0040400F0040C00F0020800F0020800F0020800F0020000F 0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F000000 0F0000000F0000000F0000000F0000000F0000000F0000000F0000001F800003FFFC001B1C7F9B 1E>84 DIII<1FC000307000783800781C00301C00001C00001C0001FC000F1C00 381C00701C00601C00E01C40E01C40E01C40603C40304E801F870012127E9115>97 DI<07E00C301878307870306000E000E000E000E000E000 E00060007004300418080C3007C00E127E9112>I<003F00000700000700000700000700000700 00070000070000070000070000070003E7000C1700180F00300700700700600700E00700E00700 E00700E00700E00700E00700600700700700300700180F000C370007C7E0131D7E9C17>I<03E0 0C301818300C700E6006E006FFFEE000E000E000E00060007002300218040C1803E00F127F9112 >I<00F8018C071E061E0E0C0E000E000E000E000E000E00FFE00E000E000E000E000E000E000E 000E000E000E000E000E000E000E000E000E007FE00F1D809C0D>I<00038003C4C00C38C01C38 80181800381C00381C00381C00381C001818001C38000C300013C0001000003000001800001FF8 001FFF001FFF803003806001C0C000C0C000C0C000C06001803003001C0E0007F800121C7F9215 >II<18003C003C00180000000000000000000000000000 00FC001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C00FF80091D 7F9C0C>I107 DIII<03F0000E1C00180600300300700380600180E001C0E001C0E001C0 E001C0E001C0E001C06001807003803003001806000E1C0003F00012127F9115>II114 D<1F9030704030C010C010E010F8007F803FE00FF000F880388018C018C018E0 10D0608FC00D127F9110>I<04000400040004000C000C001C003C00FFE01C001C001C001C001C 001C001C001C001C001C101C101C101C101C100C100E2003C00C1A7F9910>IIII<7F 8FF00F03800F030007020003840001C80001D80000F00000700000780000F800009C00010E0002 0E000607000403801E07C0FF0FF81512809116>II<7FFC70386038407040F040 E041C003C0038007000F040E041C043C0C380870087038FFF80E127F9112>I E /Fn 7 117 df<00038000000380000007C0000007C0000007C000000FE000000FE000001FF0 00001BF000001BF0000031F8000031F8000061FC000060FC0000E0FE0000C07E0000C07E000180 3F0001FFFF0003FFFF8003001F8003001F8006000FC006000FC00E000FE00C0007E0FFC07FFEFF C07FFE1F1C7E9B24>65 D<0FF8001C1E003E0F803E07803E07C01C07C00007C0007FC007E7C01F 07C03C07C07C07C0F807C0F807C0F807C0780BC03E13F80FE1F815127F9117>97 DI<03FC000E0E001C1F003C1F00781F00780E00F80000F8 0000F80000F80000F80000F800007800007801803C01801C03000E0E0003F80011127E9115>I< FE3E00FE47001E8F801E8F801E8F801F07001F00001F00001F00001F00001F00001F00001F0000 1F00001F00001F0000FFF000FFF00011127F9114>114 D<1FD830786018E018E018F000FF807F E07FF01FF807FC007CC01CC01CE01CE018F830CFC00E127E9113>I<0300030003000300070007 000F000F003FFCFFFC1F001F001F001F001F001F001F001F001F001F0C1F0C1F0C1F0C0F080798 03F00E1A7F9913>I E /Fo 39 122 df<70F8FCFC7404040404080810102040060F7C840E>44 D<70F8F8F87005057C840E>46 D<008003800F80F3800380038003800380038003800380038003 8003800380038003800380038003800380038003800380038003800380038003800380038007C0 FFFE0F217CA018>49 D<03F8000C1E001007002007804007C07807C07803C07807C03807C00007 80000780000700000F00000E0000380003F000001C00000F000007800007800003C00003C00003 E02003E07003E0F803E0F803E0F003C04003C0400780200780100F000C1C0003F00013227EA018 >51 D<01F000060C000C0600180700380380700380700380F001C0F001C0F001C0F001E0F001E0 F001E0F001E0F001E07001E07003E03803E01805E00C05E00619E003E1E00001C00001C00001C0 000380000380300300780700780600700C002018001030000FC00013227EA018>57 D<0001800000018000000180000003C0000003C0000003C0000005E0000005E000000DF0000008 F0000008F0000010F800001078000010780000203C0000203C0000203C0000401E0000401E0000 401E0000800F0000800F0000FFFF000100078001000780030007C0020003C0020003C0040003E0 040001E0040001E00C0000F00C0000F03E0001F8FF800FFF20237EA225>65 D68 DI<0007F008003C0C1800E0021801C001B8038000F807000078 0F0000381E0000381E0000183C0000183C0000187C0000087800000878000008F8000000F80000 00F8000000F8000000F8000000F8000000F8000000F8001FFF780000F8780000787C0000783C00 00783C0000781E0000781E0000780F00007807000078038000B801C000B800E00318003C0C0800 07F00020247DA226>71 D<03FFF0001F00000F00000F00000F00000F00000F00000F00000F0000 0F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F0000 0F00000F00000F00000F00700F00F80F00F80F00F80E00F01E00401C0020380018700007C00014 237EA119>74 D76 DII<000FE00000783C0000E00E0003C00780078003C00F0001E00E0000E01E00 00F03C0000783C0000787C00007C7C00007C7800003C7800003CF800003EF800003EF800003EF8 00003EF800003EF800003EF800003EF800003EF800003E7800003C7C00007C7C00007C3C000078 3E0000F81E0000F00F0001E00F0001E0078003C003C0078000E00E0000783C00000FE0001F247D A226>I82 D<03F0200C0C601802603001E07000E0600060E00060E00060E00020E00020E00020F00000F000 007800007F00003FF0001FFE000FFF0003FF80003FC00007E00001E00000F00000F00000708000 70800070800070800070C00060C00060E000C0F000C0C80180C6070081FC0014247DA21B>I<7F FFFFF87807807860078018400780084007800840078008C007800C800780048007800480078004 800780040007800000078000000780000007800000078000000780000007800000078000000780 000007800000078000000780000007800000078000000780000007800000078000000780000007 80000007800000078000000FC00003FFFF001E227EA123>III<0FE0001838003C0C003C0E0018070000070000070000070000FF0007C7001E07003C0700 780700700700F00708F00708F00708F00F087817083C23900FC1E015157E9418>97 D<0E0000FE00001E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00 000E00000E1F000E61C00E80600F00300E00380E003C0E001C0E001E0E001E0E001E0E001E0E00 1E0E001E0E001E0E001C0E003C0E00380F00700C80600C41C0083F0017237FA21B>I<01FE0007 03000C07801C0780380300780000700000F00000F00000F00000F00000F00000F00000F0000070 00007800403800401C00800C010007060001F80012157E9416>I<0000E0000FE00001E00000E0 0000E00000E00000E00000E00000E00000E00000E00000E00000E00000E001F8E00704E00C02E0 1C01E03800E07800E07000E0F000E0F000E0F000E0F000E0F000E0F000E0F000E07000E07800E0 3800E01801E00C02E0070CF001F0FE17237EA21B>I<01FC000707000C03801C01C03801C07801 E07000E0F000E0FFFFE0F00000F00000F00000F00000F000007000007800203800201C00400E00 8007030000FC0013157F9416>I<003C00C6018F038F030F070007000700070007000700070007 000700FFF807000700070007000700070007000700070007000700070007000700070007000700 070007807FF8102380A20F>I<00007001F198071E180E0E181C07001C07003C07803C07803C07 803C07801C07001C07000E0E000F1C0019F0001000001000001800001800001FFE000FFFC00FFF E03800F0600030400018C00018C00018C000186000306000303800E00E038003FE0015217F9518 >I<0E0000FE00001E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E 00000E00000E1F800E60C00E80E00F00700F00700E00700E00700E00700E00700E00700E00700E 00700E00700E00700E00700E00700E00700E00700E00700E0070FFE7FF18237FA21B>I<1C001E 003E001E001C00000000000000000000000000000000000E00FE001E000E000E000E000E000E00 0E000E000E000E000E000E000E000E000E000E000E000E00FFC00A227FA10E>I<0E0000FE0000 1E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E03FC 0E01F00E01C00E01800E02000E04000E08000E10000E38000EF8000F1C000E1E000E0E000E0700 0E07800E03C00E01C00E01E00E00F00E00F8FFE3FE17237FA21A>107 D<0E00FE001E000E000E 000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E00 0E000E000E000E000E000E000E000E000E000E00FFE00B237FA20E>I<0E1FC07F00FE60E18380 1E807201C00F003C00E00F003C00E00E003800E00E003800E00E003800E00E003800E00E003800 E00E003800E00E003800E00E003800E00E003800E00E003800E00E003800E00E003800E00E0038 00E00E003800E00E003800E0FFE3FF8FFE27157F942A>I<0E1F80FE60C01E80E00F00700F0070 0E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E0070 0E00700E0070FFE7FF18157F941B>I<01FC000707000C01801800C03800E0700070700070F000 78F00078F00078F00078F00078F00078F000787000707800F03800E01C01C00E038007070001FC 0015157F9418>I<0E3CFE461E8F0F0F0F060F000E000E000E000E000E000E000E000E000E000E 000E000E000E000F00FFF010157F9413>114 D<0F8830786018C018C008C008E008F0007F803F E00FF001F8003C801C800C800CC00CC008E018D0308FC00E157E9413>I<020002000200020006 00060006000E001E003E00FFF80E000E000E000E000E000E000E000E000E000E000E000E040E04 0E040E040E040E040708030801F00E1F7F9E13>I<0E0070FE07F01E00F00E00700E00700E0070 0E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00F00E00F0060170 03827800FC7F18157F941B>II121 D E /Fp 24 120 df<00003FE0010001FFF8030007F01E03001F800307003E000087007800004F00F0 00002F01E000001F03C000000F078000000F0F800000070F000000071F000000031E000000033E 000000033C000000017C000000017C000000017C000000017800000000F800000000F800000000 F800000000F800000000F800000000F800000000F800000000F800000000F800000000F8000000 00F80000000078000000007C000000007C000000017C000000013C000000013E000000011E0000 00011F000000020F000000020F80000006078000000403C000000801E000000800F00000100078 000020003E0000C0001F8003800007F00F000001FFFC0000003FE00028337CB130>67 D70 D72 DI77 DI80 D<007F802001FFE02007C078600F001C601E0006E03C0003 E0380001E0780000E0700000E070000060F0000060F0000060F0000020F0000020F0000020F800 0020F80000007C0000007E0000003F0000003FC000001FF800000FFF800007FFF80003FFFC0000 FFFF00000FFF800000FFC000001FE0000007E0000003F0000001F0000000F0000000F8000000F8 8000007880000078800000788000007880000078C0000078C0000070E00000F0E00000E0F00000 E0F80001C0EC000380C7000700C1F01E00807FFC00800FF0001D337CB125>83 D86 D<00FE00000303C0000C00E00010007000100038003C003C003E001C003E001E003E001E000800 1E0000001E0000001E0000001E00000FFE0000FC1E0003E01E000F801E001F001E003E001E003C 001E007C001E00F8001E04F8001E04F8001E04F8003E04F8003E0478003E047C005E043E008F08 0F0307F003FC03E01E1F7D9E21>97 D<000001E000003FE000003FE0000003E0000001E0000001 E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E00000 01E0000001E0000001E0000001E0001F81E000F061E001C019E0078005E00F0003E00E0003E01E 0001E03C0001E03C0001E07C0001E0780001E0F80001E0F80001E0F80001E0F80001E0F80001E0 F80001E0F80001E0F80001E0F80001E0780001E0780001E03C0001E03C0001E01C0001E01E0003 E00E0005E0070009E0038011F000E061FF003F81FF20327DB125>100 D<003F800000E0E00003 80380007003C000E001E001E001E001C000F003C000F007C000F0078000F8078000780F8000780 F8000780FFFFFF80F8000000F8000000F8000000F8000000F8000000F8000000780000007C0000 003C0000003C0000801E0000800E0001000F0002000780020001C00C0000F03000001FC000191F 7E9E1D>I<000000F0007F030801C1C41C0380E81C070070080F0078001E003C001E003C003E00 3E003E003E003E003E003E003E003E003E003E003E001E003C001E003C000F0078000700700007 80E00009C1C000087F000018000000180000001800000018000000180000001C0000000E000000 0FFFF80007FFFF0003FFFF800E000FC0180001E0300000F070000070E0000038E0000038E00000 38E0000038E00000387000007070000070380000E01C0001C00700070001C01C00003FE0001E2F 7E9F21>103 D<07000F801F801F800F8007000000000000000000000000000000000000000000 00000780FF80FF800F800780078007800780078007800780078007800780078007800780078007 800780078007800780078007800780078007800FC0FFF8FFF80D307EAF12>105 D<07800000FF800000FF8000000F80000007800000078000000780000007800000078000000780 000007800000078000000780000007800000078000000780000007800000078000000780000007 801FFC07801FFC078007E007800780078006000780040007800800078010000780600007808000 078100000783800007878000078FC0000793C00007A1E00007C1F0000780F0000780780007807C 0007803C0007803E0007801F0007800F0007800F80078007C0078003C0078003E00FC007F8FFFC 0FFFFFFC0FFF20327EB123>107 D<0780FE001FC000FF83078060F000FF8C03C18078000F9001 E2003C0007A001E4003C0007A000F4001E0007C000F8001E0007C000F8001E00078000F0001E00 078000F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0 001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E0007 8000F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E00078000F000 1E00078000F0001E00078000F0001E000FC001F8003F00FFFC1FFF83FFF0FFFC1FFF83FFF0341F 7E9E38>109 D<0780FE0000FF83078000FF8C03C0000F9001E00007A001E00007A000F00007C0 00F00007C000F000078000F000078000F000078000F000078000F000078000F000078000F00007 8000F000078000F000078000F000078000F000078000F000078000F000078000F000078000F000 078000F000078000F000078000F000078000F000078000F000078000F0000FC001F800FFFC1FFF 80FFFC1FFF80211F7E9E25>I<001FC00000F0780001C01C00070007000F0007801E0003C01C00 01C03C0001E03C0001E0780000F0780000F0780000F0F80000F8F80000F8F80000F8F80000F8F8 0000F8F80000F8F80000F8F80000F8780000F07C0001F03C0001E03C0001E01E0003C01E0003C0 0F00078007800F0001C01C0000F07800001FC0001D1F7E9E21>I<0781FC00FF860700FF8803C0 0F9001E007A000F007C00078078000780780003C0780003C0780003E0780001E0780001F078000 1F0780001F0780001F0780001F0780001F0780001F0780001F0780001F0780003E0780003E0780 003C0780007C0780007807C000F007A000F007A001E00798038007860F000781F8000780000007 800000078000000780000007800000078000000780000007800000078000000780000007800000 0FC00000FFFC0000FFFC0000202D7E9E25>I<0783E0FF8C18FF907C0F907C07A07C07C03807C0 0007C00007C0000780000780000780000780000780000780000780000780000780000780000780 000780000780000780000780000780000780000780000780000FC000FFFE00FFFE00161F7E9E19 >114 D<01FC100E03301800F0300070600030E00030E00010E00010E00010F00010F800007E00 003FF0001FFF000FFFC003FFE0003FF00001F80000F880003C80003C80001CC0001CC0001CE000 1CE00018F00038F00030CC0060C301C080FE00161F7E9E1A>I<00400000400000400000400000 400000C00000C00000C00001C00001C00003C00007C0000FC0001FFFE0FFFFE003C00003C00003 C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003 C00003C01003C01003C01003C01003C01003C01003C01003C01001C02001E02000E0400078C000 1F00142C7FAB19>I<078000F000FF801FF000FF801FF0000F8001F000078000F000078000F000 078000F000078000F000078000F000078000F000078000F000078000F000078000F000078000F0 00078000F000078000F000078000F000078000F000078000F000078000F000078000F000078000 F000078000F000078001F000078001F000078001F000038002F00003C004F00001C008F8000070 30FF80001FC0FF80211F7E9E25>I119 D E end %%EndProlog %%BeginSetup %%Feature: *Resolution 300 TeXDict begin %%EndSetup %%Page: 1 1 bop 425 489 a Fp(In)n(tegrated)23 b(PVM)e(F)-6 b(ramew)n(ork)22 b(Supp)r(orts)460 581 y(Heterogeneous)g(Net)n(w)n(ork)g(Computing)788 707 y Fo(Jac)o(k)16 b(J.)g(Dongarra)325 765 y(Oak)g(Ridge)g(National)g(Lab)q (oratory)i(and)f(Univ)o(ersit)o(y)d(of)i(T)l(ennessee)848 881 y(G.)g(A.)g(Geist)631 939 y(Oak)g(Ridge)g(National)g(Lab)q(oratory)794 1056 y(Rob)q(ert)g(Manc)o(hek)721 1114 y(Univ)o(ersit)o(y)e(of)i(T)l (ennessee)803 1230 y(V.)f(S.)h(Sunderam)783 1288 y(Emory)f(Univ)o(ersit)o(y) 802 1389 y(Jan)o(uary)h(3,)g(1993)880 1557 y Fn(Abstract)400 1633 y Fm(The)e(P)o(arallel)d(Virtual)i(Mac)o(hine)g(\(PVM\),)g(an)g(in)o (tegrated)h(framew)o(ork)d(for)338 1683 y(heterogeneous)16 b(net)o(w)o(ork)e(computing,)d(lets)k(scien)o(tists)g(exploit)e(collections)g (of)338 1732 y(net)o(w)o(ork)o(ed)20 b(mac)o(hines)f(when)h(carrying)g(out)g (complex)f(scien)o(ti\014c)h(computa-)338 1782 y(tions.)35 b(Under)21 b(PVM,)f(a)g(user-de\014ned)h(grouping)e(of)h(serial,)g(parallel,) g(and)338 1832 y(v)o(ector)e(computers)g(app)q(ears)g(as)g(one)g(large)f (distributed-memory)f(mac)o(hine.)338 1882 y(Con\014guring)10 b(a)g(p)q(ersonal)h(parallel)f(virtual)f(computer)i(in)o(v)o(olv)o(es)e (simply)g(listing)338 1932 y(the)14 b(names)f(of)g(the)h(mac)o(hines)f(in)g (a)g(\014le)h(that)g(is)f(read)h(when)h(PVM)f(is)f(started.)338 1982 y(Applications)f(can)g(b)q(e)h(written)g(in)f(F)m(ortran)h(77)f(or)g(C)h (and)f(parallelized)g(b)o(y)g(use)338 2031 y(of)19 b(message-passing)h (constructs)i(common)c(to)i(most)f(distributed-memory)338 2081 y(computers.)i(With)14 b(the)h(use)h(of)e(messages)h(sen)o(t)g(o)o(v)o(er)g (the)g(net)o(w)o(ork,)g(m)o(ultiple)338 2131 y(tasks)f(of)f(an)h(application) f(can)h(co)q(op)q(erate)h(to)f(solv)o(e)f(a)h(problem)e(in)i(parallel.)400 2181 y(This)f(article)f(discusses)j(comp)q(onen)o(ts)d(of)h(PVM,)f(including) g(the)h(programs)338 2231 y(and)i(library)f(of)h(in)o(terface)h(routines.)22 b(It)15 b(summarizes)f(the)i(c)o(haracteristics)g(of)338 2280 y(appropriate)11 b(applications)e(and)i(discusses)i(the)e(curren)o(t)h (status)g(and)e(a)o(v)n(ailabil-)338 2330 y(it)o(y)16 b(of)g(PVM.)g(In)h (addition,)e(the)i(article)g(in)o(tro)q(duces)g(a)g(recen)o(t)h(extension)f (to)338 2380 y(PVM)e(kno)o(wn)g(as)g(the)h(Heterogeneous)h(Net)o(w)o(ork)e (Computing)e(En)o(vironmen)o(t)338 2430 y(\(HeNCE\).)960 2577 y Fl(1)p eop %%Page: 2 2 bop 224 307 a Fk(1)69 b(In)n(tro)r(duction)224 409 y Fl(Tw)o(o)15 b(dev)o(elopmen)o(ts)h(promise)h(to)e(rev)o(olutionize)i(scien)o(ti\014c)g (problem)g(solving.)22 b(The)224 465 y(\014rst)f(is)h(the)g(dev)o(elopmen)o (t)g(of)f(massiv)o(ely)h(parallel)h(computers.)39 b(Massiv)o(ely)22 b(par-)224 522 y(allel)h(systems)d(o\013er)h(the)g(enormous)f(computational)i (p)q(o)o(w)o(er)e(needed)i(for)f(solving)224 578 y(Grand)e(Challenge)i (problems.)33 b(Unfortunately)l(,)20 b(soft)o(w)o(are)e(dev)o(elopmen)o(t)i (has)f(not)224 634 y(k)o(ept)f(pace)h(with)g(hardw)o(are)f(adv)m(ances.)31 b(In)19 b(order)f(to)g(fully)i(exploit)f(the)g(p)q(o)o(w)o(er)f(of)224 691 y(these)c(massiv)o(ely)h(parallel)h(mac)o(hines,)e(new)h(programming)e (paradigms,)h(languages,)224 747 y(sc)o(heduling)j(and)f(partitioning)g(tec)o (hniques,)g(and)f(algorithms)g(are)g(needed.)295 804 y(The)22 b(second)h(ma)s(jor)e(dev)o(elopmen)o(t)i(a\013ecting)g(scien)o(ti\014c)h (problem)f(solving)g(is)224 860 y(distributed)d(computing.)31 b(Man)o(y)18 b(scien)o(tists)h(are)g(disco)o(v)o(ering)g(that)f(their)h (compu-)224 917 y(tational)g(requiremen)o(ts)g(are)f(b)q(est)g(serv)o(ed)h (not)f(b)o(y)g(a)g(single,)j(monolithic)f(mac)o(hine)224 973 y(but)f(b)o(y)f(a)h(v)m(ariet)o(y)f(of)h(distributed)h(computing)f (resources,)g(link)o(ed)h(b)o(y)e(high-sp)q(eed)224 1030 y(net)o(w)o(orks.) 295 1086 y(Heterogeneous)g(net)o(w)o(ork)g(computing)i(o\013ers)d(sev)o(eral) i(adv)m(an)o(tages:)27 b(By)19 b(using)224 1143 y(existing)d(hardw)o(are)e (the)h(cost)g(of)f(this)i(computing)f(can)g(b)q(e)h(v)o(ery)f(lo)o(w.)k(P)o (erformance)224 1199 y(can)c(b)q(e)g(optimized)h(b)o(y)f(assigning)g(eac)o(h) g(individual)i(task)d(to)g(the)h(most)f(appropriate)224 1255 y(arc)o(hitecture.)20 b(Net)o(w)o(ork)13 b(computing)i(also)g(o\013ers)f(the) g(p)q(oten)o(tial)h(for)f(partitioning)i(a)224 1312 y(computing)h(task)e (along)h(lines)i(of)e(service)h(functions.)24 b(T)o(ypically)l(,)17 b(net)o(w)o(ork)o(ed)f(com-)224 1368 y(puting)g(en)o(vironmen)o(ts)g(p)q (ossess)f(a)g(v)m(ariet)o(y)h(of)f(capabilities;)i(the)f(abilit)o(y)g(to)f (execute)224 1425 y(subtasks)22 b(of)h(a)f(computation)h(on)f(the)h(pro)q (cessor)f(most)g(suited)i(to)e(a)g(particular)224 1481 y(function)16 b(b)q(oth)g(enhances)g(p)q(erformance)f(and)h(impro)o(v)o(es)f(utilization.) 22 b(Another)15 b(ad-)224 1538 y(v)m(an)o(tage)g(in)i(net)o(w)o(ork-based)e (concurren)o(t)h(computing)h(is)f(the)g(ready)g(a)o(v)m(ailabilit)o(y)i(of) 224 1594 y(dev)o(elopmen)o(t)h(and)f(debugging)g(to)q(ols,)g(and)g(the)g(p)q (oten)o(tial)h(fault)f(tolerance)g(of)f(the)224 1651 y(net)o(w)o(ork\(s\))12 b(and)j(the)f(pro)q(cessing)h(elemen)o(ts.)20 b(T)o(ypically)l(,)c(systems)d (that)h(op)q(erate)g(on)224 1707 y(lo)q(osely)21 b(coupled)h(net)o(w)o(orks)d (p)q(ermit)i(the)f(direct)h(use)f(of)g(editors,)h(compilers,)h(and)224 1764 y(debuggers)17 b(that)e(are)h(a)o(v)m(ailable)h(on)f(individual)k(mac)o (hines.)j(These)17 b(individual)i(ma-)224 1820 y(c)o(hines)14 b(are)e(quite)i(stable,)f(and)f(substan)o(tial)h(exp)q(ertise)h(in)g(their)f (use)g(is)g(readily)g(a)o(v)m(ail-)224 1876 y(able.)20 b(These)15 b(factors)e(translate)h(in)o(to)g(reduced)i(dev)o(elopmen)o(t)f(and)f (debugging)h(time)224 1933 y(and)k(e\013ort)e(for)h(the)g(user,)h(and)g (reduced)h(con)o(ten)o(tion)e(for)g(resources)g(and)h(p)q(ossibly)224 1989 y(more)g(e\013ectiv)o(e)g(implemen)o(tations)h(of)f(the)g(application.) 33 b(Y)l(et)19 b(another)g(attractiv)o(e)224 2046 y(feature)14 b(of)f(lo)q(osely)i(coupled)h(computing)e(en)o(vironmen)o(ts)h(is)f(the)g(p)q (oten)o(tial)h(for)e(user-)224 2102 y(lev)o(el)21 b(or)d(program-lev)o(el)h (fault)h(tolerance)f(that)f(can)h(b)q(e)h(implemen)o(ted)h(with)e(little)224 2159 y(e\013ort)14 b(either)h(in)h(the)e(application)j(or)d(in)h(the)g (underlying)h(op)q(erating)f(system.)20 b(Most)224 2215 y(m)o(ultipro)q (cessors)14 b(do)f(not)g(supp)q(ort)g(suc)o(h)h(a)f(facilit)o(y;)i(hardw)o (are)d(or)h(soft)o(w)o(are)e(failures)224 2272 y(in)16 b(one)g(of)e(the)i (pro)q(cessing)g(elemen)o(ts)f(often)g(lead)h(to)f(a)g(complete)h(crash.)295 2328 y(Despite)i(the)h(adv)m(an)o(tages)e(of)h(heterogeneous)g(net)o(w)o(ork) g(computing,)h(ho)o(w)o(ev)o(er,)224 2385 y(man)o(y)e(issues)g(remain)h(to)e (b)q(e)h(addressed.)26 b(Of)17 b(esp)q(ecial)i(imp)q(ortance)e(are)g(issues)g (re-)224 2441 y(lating)e(to)f(the)g(user)h(in)o(terface,)f(e\016ciency)l(,)i (compatibilit)o(y)l(,)g(and)f(administration.)20 b(In)p eop %%Page: 3 3 bop 224 307 a Fl(some)19 b(cases,)h(individual)i(researc)o(hers)e(ha)o(v)o(e) e(attempted)h(to)g(address)g(these)h(issues)224 364 y(b)o(y)e(dev)o(eloping)h (ad)f(ho)q(c)g(approac)o(hes)f(to)g(the)h(implemen)o(tation)h(of)f(concurren) o(t)f(ap-)224 420 y(plications.)29 b(Recognizing)19 b(the)f(gro)o(wing)e (need)j(for)e(a)g(more)g(systematic)g(approac)o(h,)224 477 y(sev)o(eral)k(researc)o(h)f(groups)g(ha)o(v)o(e)g(recen)o(tly)g(attempted)g (to)g(dev)o(elop)h(programming)224 533 y(paradigms,)k(languages,)g(sc)o (heduling)g(and)f(partitioning)g(tec)o(hniques,)i(and)e(algo-)224 589 y(rithms.)295 646 y(Our)12 b(approac)o(h)f(is)h(more)f(pragmatic.)19 b(W)l(e)11 b(discuss)i(the)f(dev)o(elopmen)o(t)g(of)f(an)h Fj(inte-)224 702 y(gr)n(ate)n(d)h(fr)n(amework)h(for)f(heter)n(o)n(gene)n (ous)f(network)h(c)n(omputing)p Fl(,)f(in)h(whic)o(h)f(a)g(collection)224 759 y(of)g(in)o(terrelated)g(comp)q(onen)o(ts)g(pro)o(vides)g(a)g(coheren)o (t)g(high-p)q(erformance)h(computing)224 815 y(en)o(vironmen)o(t.)21 b(In)16 b(particular,)f(w)o(e)g(analyze)h(sev)o(eral)g(of)f(the)g(design)i (features)e(of)f(the)224 872 y(PVM)h(\(P)o(arallel)i(Virtual)f(Mac)o(hine\))g (system.)k(Figure)c(1)g(giv)o(es)f(an)h(o)o(v)o(erview)f(of)g(the)224 928 y(system.)295 985 y(The)c(pap)q(er)h(is)f(organized)h(as)f(follo)o(ws.)18 b(In)12 b(Section)g(2,)f(w)o(e)g(giv)o(e)h(a)f(brief)g(lo)q(ok)h(at)e(the)224 1041 y(general)19 b(\014eld)g(of)e(heterogeneous)h(net)o(w)o(ork)f(computing) h(and)g(discuss)h(some)f(of)f(the)224 1098 y(researc)o(h)22 b(issues)h(remaining)f(b)q(efore)h(net)o(w)o(ork-based)e(heterogeneous)h (computing)224 1154 y(is)e(truly)g(e\013ectiv)o(e.)33 b(In)21 b(Section)f(3,)g(w)o(e)f(fo)q(cuses)h(on)g(the)f(PVM)h(system,)g(whic)o(h)g (is)224 1210 y(designed)e(to)e(help)i(scien)o(tists)g(write)f(programs)e(for) h(suc)o(h)i(heterogeneous)e(systems.)224 1267 y(In)g(Section)g(4,)f(w)o(e)f (discuss)j(a)e(recen)o(t)g(extension)h(of)e(PVM)h(that)g(further)g(aids)g(in) h(the)224 1323 y(implemen)o(tation)h(of)d(concurren)o(t)i(applications.)224 1467 y Fk(2)69 b(Connecting)22 b(Heterogeneous)g(Computers)224 1568 y Fl(In)f(the)f(past,)g(researc)o(hers)g(ha)o(v)o(e)f(conducted)i(exp)q (erimen)o(ts)g(linking)h(w)o(orkstations)224 1625 y(that)14 b(pro)o(vide)h(on)f(the)h(order)f(of)g(1)g(to)g(10)g(MIPS.)g(Suc)o(h)h(exp)q (erimen)o(ts)h(ha)o(v)o(e)e(included)224 1681 y(remote)h(execution,)h (computer)f(farms,)f(and)h(migration)g(of)g(computations.)295 1737 y(More)g(recen)o(tly)l(,)i(exp)q(erimen)o(ts)g(ha)o(v)o(e)f(fo)q(cused)h (on)f(linking)i(higher-p)q(erformance)224 1794 y(w)o(orkstations)13 b(\(those)h(pro)o(viding)h(on)f(the)h(order)f(of)f(10)h(to)g(100)f(MFLOPS\))h (together)224 1850 y(with)i(m)o(ultipro)q(cessors)f(and)h(con)o(v)o(en)o (tional)f(sup)q(ercomputers.)295 1907 y(T)l(o)d(fully)i(exploit)f(these)g(m)o (ultiple)h(computer)f(con\014gurations,)g(researc)o(hers)f(ha)o(v)o(e)224 1963 y(dev)o(elop)q(ed)i(v)m(arious)e(soft)o(w)o(are)e(pac)o(k)m(ages)i(that) f(enable)i(scien)o(tists)f(to)f(write)h(truly)g(het-)224 2020 y(erogeneous)j(programs.)j(Examples)e(of)e(suc)o(h)h(soft)o(w)o(are)e(pac)o (k)m(ages)i(include)i(Express,)224 2076 y(P4,)c(Linda,)h(and)f(PVM.)g(Eac)o (h)f(pac)o(k)m(age)h(is)h(la)o(y)o(ered)f(o)o(v)o(er)f(the)h(nativ)o(e)g(op)q (erating)h(sys-)224 2133 y(tems,)f(exploits)h(distributed)g(concurren)o(t)f (pro)q(cessing,)h(and)f(is)g(\015exible)i(and)e(general-)224 2189 y(purp)q(ose;)18 b(all)h(exhibit)f(comparable)g(p)q(erformance.)25 b(Their)18 b(di\013erences)h(lie)f(in)g(their)224 2246 y(programming)d(mo)q (del,)g(their)h(implemen)o(tation)h(sc)o(hemes,)e(and)g(their)h(e\016ciency)l (.)295 2302 y(Recen)o(t)k(conferences)h(as)e(w)o(ell)i(as)e(informal)h (discussion)h(media)g(seem)f(to)f(indi-)224 2358 y(cate)e(that)g(most)f (atten)o(tion)h(is)h(fo)q(cused)g(on)f(the)g(four)g(systems)g(men)o(tioned)h (ab)q(o)o(v)o(e{)224 2415 y(Express,)c(P4,)g(Linda,)i(and)f(PVM{in)f(terms)g (of)h(use)f(b)o(y)h(the)g(high)g(p)q(erformance)g(sci-)p eop %%Page: 4 4 bop 224 307 a Fl(en)o(ti\014c)18 b(computing)f(comm)o(unit)o(y)l(.)25 b(In)18 b(the)e(remainder)i(of)e(this)i(section,)f(w)o(e)f(presen)o(t)224 364 y(brief)h(outlines)g(of)e(eac)o(h)h(of)g(the)g(\014rst)f(three,)h(with)g (a)g(detailed)h(description)g(of)f(PVM)224 420 y(follo)o(wing)i(in)g(Section) g(3.)26 b(W)l(e)18 b(wish)f(to)g(emphasize)i(ho)o(w)o(ev)o(er,)d(\(1\))g (that)h(these)h(sys-)224 477 y(tems)e(are)g(b)o(y)h(no)f(means)h(the)f(only)h (soft)o(w)o(are)e(pac)o(k)m(ages)h(in)h(existence;)h(and)f(\(2\))e(the)224 533 y(descriptions)22 b(that)e(follo)o(w)g(are)g(not)g(detailed)i(and)f (formal)f(critiques,)j(but)d(rather)224 589 y(brief)g(synopses)g(abstracted)f (from)g(our)g(understanding)i(of)e(the)h(systems)f(and)g(the)224 646 y(dev)o(elop)q(ers')d(o)o(wn)f(articles)h(or)e(comm)o(unications.)224 764 y Fi(2.1)56 b(The)18 b(Linda)h(Mo)r(del)e(and)i(System)224 850 y Fl(Linda)e([9)o(])e(is)h(a)g(concurren)o(t)f(programming)g(mo)q(del)i (that)d(has)i(ev)o(olv)o(ed)g(from)e(a)i(Y)l(ale)224 906 y(Univ)o(ersit)o(y) 23 b(researc)o(h)f(pro)s(ject.)40 b(The)23 b(primary)f(concept)h(in)g(Linda)h (is)e(that)g(of)g(a)224 963 y(\\tuple-space",)13 b(an)e(abstraction)g(via)h (whic)o(h)h(co)q(op)q(erating)f(pro)q(cesses)g(comm)o(unicate.)224 1019 y(This)g(cen)o(tral)f(theme)h(of)e(Linda)j(has)e(b)q(een)h(prop)q(osed)g (as)f(an)g(alternativ)o(e)g(paradigm)g(to)224 1076 y(the)h(t)o(w)o(o)f (traditional)i(metho)q(ds)g(of)e(parallel)j(pro)q(cessing,)g(viz.)19 b(that)12 b(based)g(on)g(shared)224 1132 y(memory)l(,)i(and)h(on)g(message)g (passing.)20 b(The)15 b(tuple-space)h(concept)g(is)f(essen)o(tially)i(an)224 1188 y(abstraction)k(of)h(distributed)h(shared)f(memory)l(,)g(with)g(one)g (imp)q(ortan)o(t)f(di\013erence)224 1245 y(\(tuple-spaces)h(are)f(asso)q (ciativ)o(e\),)h(and)f(sev)o(eral)g(minor)g(distinctions)h(\(destructiv)o(e) 224 1301 y(and)16 b(non-destructiv)o(e)h(reads,)f(and)g(di\013eren)o(t)g (coherency)h(seman)o(tics)f(are)f(p)q(ossible\).)224 1358 y(Applications)g (use)f(the)f(Linda)h(mo)q(del)g(b)o(y)f(em)o(b)q(edding)i(explicitly)l(,)h (within)f(co)q(op)q(erat-)224 1414 y(ing)f(sequen)o(tial)g(programs,)f (constructs)f(that)h(manipulate)i(\(insert/retriev)o(e)e(tuples\))224 1471 y(the)i(tuple)i(space.)295 1527 y(F)l(rom)h(the)i(application)h(p)q(oin) o(t)f(of)f(view)h(Linda)h([4])e(is)h(a)f(set)g(of)g(programming)224 1584 y(language)14 b(extensions)f(for)g(facilitating)i(parallel)f (programming.)19 b(The)13 b(Linda)i(mo)q(del)224 1640 y(is)j(a)f(sc)o(heme)g (built)i(up)q(on)f(an)f(asso)q(ciativ)o(e)g(memory)g(referred)g(to)g(as)g Fj(tuple-sp)n(ac)n(e)f Fl(It)224 1697 y(pro)o(vides)i(a)g(shared)g(memory)f (abstraction)g(for)g(pro)q(cess)h(comm)o(unication)h(without)224 1753 y(requiring)e(the)g(underlying)h(hardw)o(are)d(to)g(ph)o(ysically)j (share)e(memory)l(.)22 b(The)17 b(mo)q(del)224 1809 y(is)f(illustrated)g(in)g (Figure)g(2)f([9)o(].)295 1866 y(T)l(uples)f(are)f(collections)i(of)d (\014elds)j(logically)f(\\w)o(elded")g(to)e(form)h(p)q(ersisten)o(t)g(stor-) 224 1922 y(age)j(items.)23 b(They)17 b(are)f(the)g(basic)h(tuple-space)h (storage)d(units.)24 b(P)o(arallel)17 b(pro)q(cesses)224 1979 y(exc)o(hange)22 b(data)f(b)o(y)g(generating,)i(reading,)g(and)f(consuming)g (them.)39 b(T)l(o)21 b(up)q(date)224 2035 y(a)d(tuple,)i(the)f(tuple)g(is)g (remo)o(v)o(ed)f(from)f(tuple-space,)k(mo)q(di\014ed,)f(and)e(returned)h(to) 224 2092 y(tuple-space.)j(Restricting)16 b(tuple-space)h(mo)q(di\014cation)f (in)g(this)g(manner)g(creates)f(an)224 2148 y(implicit)i(lo)q(c)o(king)f(mec) o(hanism)g(ensuring)g(prop)q(er)f(sync)o(hronization)g(of)g(m)o(ultiple)h (ac-)224 2205 y(cesses.)295 2261 y(The)c(follo)o(wing)g(are)f(the)h(four)g (basic)g(op)q(erations)g(or)f(primitiv)o(es)i(whic)o(h)f(are)g(added)224 2318 y(to)k(a)g(language)g(to)g(pro)q(duce)h(a)f(Linda)h(dialect.)24 b(Figure)16 b(2)g(depicts)i(the)e(op)q(erational)224 2374 y(en)o(vironmen)o (t)g(when)f(using)h(Linda.)257 2452 y(\(1\))22 b Fj(r)n(d\(t\))14 b Fl(p)q(erforms)h(a)f(non-destructiv)o(e)i(read)f(from)f(tuple-space.)21 b(If)15 b(the)g(desired)p eop %%Page: 5 5 bop 338 307 a Fl(tuple,)22 b(\\t",)d(is)i(not)e(found,)j(the)e(in)o(v)o (oking)g(pro)q(cess)g(is)h(susp)q(ended)g(un)o(til)h(an)338 364 y(appropriate)15 b(tuple)h(is)g(created)f(b)o(y)g(another)g(pro)q(cess.) 257 457 y(\(2\))22 b Fj(in\(t\))10 b Fl(b)q(eha)o(v)o(es)j(in)f(a)g(fashion)g (similar)h(to)f(rd\(\),)f(except)i(the)f(read)g(is)g(destructiv)o(e)338 514 y(and)j(the)g(tuple)i(is)e(consumed.)257 608 y(\(3\))22 b Fj(out\(t\))15 b Fl(writes)g(a)g(tuple)h(\\t")e(to)h(tuple-space.)257 702 y(\(4\))22 b Fj(eval\(expr)n(ession\))15 b Fl(writes)j(a)f(tuple)i(to)e (tuple-space)i(after)e(argumen)o(ts)g(in)h(the)338 758 y Fj(expr)n(ession)9 b Fl(are)i(ev)m(aluated)h(b)o(y)f(creating)g(new)g(pro)q(cesses)g(whic)o(h)g (p)q(erform)g(their)338 814 y(tasks)j(indep)q(enden)o(tly)l(.)295 921 y(T)l(uples)e(are)f(selected)i(b)o(y)e(the)g(rd\(\))g(or)f(in\(\))i (primitiv)o(es)g(on)g(the)f(basis)h(of)e(their)i(\014eld)224 977 y(v)m(alues.)31 b(There)19 b(are)f(no)h(tuple)h(addresses)e(in)i(an)e (asso)q(ciativ)o(e)h(memory)l(.)30 b(Consider)224 1034 y(the)15 b(follo)o(wing)h(tuple:)338 1140 y(out\(\\a)e(string",)g(15.01,)g(17,)g (\\another)g(string"\))295 1246 y(A)h(v)m(ariet)o(y)h(of)e(access)i(routes)f (to)f(this)i(tuple)g(are)f(p)q(ossible,)i(e.g.,)d(an)o(y)h(one)h(of)e(the)224 1303 y(follo)o(wing)i(op)q(erations)f(su\016ces:)338 1409 y(rd\(\\a)f (string",)h(?fv)m(al,)h(?iv)m(al,)g(?strv)m(al\))338 1503 y(rd\(?strv)m(al,)f (15.01,)e(?iv)m(al,)k(\\another)e(string"\))338 1597 y(rd\(?strv)m(al-1,)g (?fv)m(al,)h(17,)e(?strv)m(al-2\))295 1703 y(The)19 b(\\?")31 b(op)q(erator)18 b(designates)i(a)f(v)m(alue)h(returned)f(from)f(a)h(matc)o (hing)g(tuple.)224 1759 y(Fields)12 b(mark)o(ed)e(b)o(y)g(the)g(op)q(erator)g (do)g(not)g(participate)h(in)h(the)e(\(asso)q(ciativ)o(e)g(memory\))224 1816 y(matc)o(hing)i(pro)q(cess.)19 b(An)o(y)11 b(of)h(the)f(three)h(example) h(rd\(\))e(op)q(erations)g(results)h(in)h(a)e(non-)224 1872 y(destructiv)o(e)17 b(reading)f(of)g(the)g(original)h(tuple.)24 b(If)16 b(the)g(op)q(eration)h(w)o(ere)e(an)h(in\(\),)g(the)224 1929 y(tuple)g(w)o(ould)g(b)q(e)g(remo)o(v)o(ed)e(from)h(tuple-space.)295 1985 y(T)l(o)g(illustrate)h(the)f(ev)m(al\(\))h(primitiv)o(e,)g(consider)g (the)f(follo)o(wing:)683 2091 y(ev)m(al\("ro)q(ots",sqrt\(4\),sqrt)o(\(16)o (\)\))224 2198 y(Using)j(Linda)g(terminology)l(,)g(this)f(creates)g(a)g Fj(live)f Fl(tuple.)27 b(The)17 b(square-ro)q(ot)f(op)q(era-)224 2254 y(tions)h(are)f(p)q(erformed)h(indep)q(enden)o(t)i(of)d(the)g (originating)h(pro)q(cess,)g(with)g(the)f(\(t)o(w)o(o\))224 2311 y(n)o(umeric)24 b(results)e(com)o(bined)i(to)e(form)g(a)g(three)g (elemen)o(t)i(tuple)f(sa)o(v)o(ed)f(in)h(tuple-)224 2367 y(space.)31 b(The)19 b(ev)m(al\(\))g(primitiv)o(e)h(is)f(a)f(mec)o(hanism)h(capable)h(of) e(creating)h(\014ne)g(grain)224 2423 y(parallelism.)p eop %%Page: 6 6 bop 295 307 a Fl(The)12 b(\\Linda)g(System")g(usually)h(refers)e(to)h(a)f(sp) q(eci\014c)j(\(sometimes)d(p)q(ortable\))h(im-)224 364 y(plemen)o(tation)i (of)f(soft)o(w)o(are)e(that)h(supp)q(orts)h(the)g(Linda)i(programming)d(mo)q (del.)20 b(Sys-)224 420 y(tem)13 b(soft)o(w)o(are)e(is)i(pro)o(vided)h(that)e (establishes)i(and)f(main)o(tains)g(tuple)h(spaces,)f(that)f(is)224 477 y(used)17 b(in)g(conjunction)g(with)f(libraries)i(that)d(appropriately)i (in)o(terpret)g(and)f(execute)224 533 y(Linda)21 b(primitiv)o(es.)35 b(Dep)q(ending)22 b(on)e(the)g(en)o(vironmen)o(t)g(\(shared)f(memory)h(m)o (ulti-)224 589 y(pro)q(cessors,)i(message)e(passing)i(parallel)g(computers,)g (net)o(w)o(orks)d(of)i(w)o(orkstations)224 646 y(etc\),)16 b(the)g(tuple)h(space)f(mec)o(hanism)h(is)g(implemen)o(ted)g(using)g (di\013eren)o(t)g(tec)o(hniques,)224 702 y(and)c(with)g(v)m(arying)g(degrees) g(of)f(e\016ciency)l(.)21 b(Recen)o(tly)l(,)14 b(a)f(new)g Fj(system)f Fl(tec)o(hnique)i(has)224 759 y(b)q(een)f(prop)q(osed,)f(at)f (least)h(nominally)h(related)f(to)f(the)h(Linda)g(pro)s(ject.)18 b(This)13 b(sc)o(heme,)224 815 y(termed)g(\\Pirhana")f(prop)q(oses)g(a)h (proactiv)o(e)f(approac)o(h)g(to)g(concurren)o(t)h(computing)g({)224 872 y(the)i(idea)h(b)q(eing)h(that)e(computational)g(resources)g(\(view)o(ed) h(as)f(activ)o(e)g(agen)o(ts\))f(seize)224 928 y(computational)19 b(tasks)e(from)g(a)h(w)o(ell)h(kno)o(wn)f(lo)q(cation)h(based)f(on)g(a)o(v)m (ailabilit)o(y)i(and)224 985 y(suitabilit)o(y)l(.)j(Again,)16 b(this)g(sc)o(heme)g(ma)o(y)f(b)q(e)h(implemen)o(ted)h(on)f(m)o(ultiple)h (platforms,)224 1041 y(and)f(manifested)f(as)g(a)g(\\Pirhana)g(system")g(or)f (\\Linda{Pirhana)j(system".)224 1163 y Fi(2.2)56 b(P4)19 b(and)g(P)n(armacs) 224 1249 y Fl(P4)f(is)h(a)f(library)i(of)e(macros)g(and)g(subroutines)i(dev)o (elop)q(ed)g(at)e(Argonne)g(National)224 1305 y(Lab)q(oratory)h(for)g (programming)g(a)g(v)m(ariet)o(y)h(of)f(parallel)i(mac)o(hines.)34 b(The)20 b(P4)g(sys-)224 1362 y(tem)c(supp)q(orts)g(b)q(oth)h(the)f (shared-memory)g(mo)q(del)h(\(based)f(on)h(monitors\))e(and)h(the)224 1418 y(distributed-memory)d(mo)q(del)f(\(using)g(message-passing\).)18 b(F)l(or)11 b(the)h(shared-memory)224 1474 y(mo)q(del)18 b(of)f(parallel)i (computation,)f(P4)f(pro)o(vides)g(a)g(set)h(of)e(primitiv)o(es)j(from)e (whic)o(h)224 1531 y(monitors)i(can)f(b)q(e)i(constructed,)f(as)g(w)o(ell)g (as)g(a)f(set)h(of)f(useful)i(monitors.)30 b(F)l(or)18 b(the)224 1587 y(distributed-memory)f(mo)q(del,)f(P4)f(pro)o(vides)h(t)o(yp)q(ed)g (send)g(and)f(receiv)o(e)i(op)q(erations,)224 1644 y(and)f(creation)g(of)f (pro)q(cesses)h(according)g(to)e(a)i(text)f(\014le)h(describing)i(group)d (and)h(pro-)224 1700 y(cess)f(structure.)k(P4)c(is)g(in)o(tended)h(to)e(b)q (e)h(p)q(ortable,)g(simple)h(to)e(install)i(and)f(use,)f(and)224 1757 y(e\016cien)o(t.)20 b(It)12 b(can)h(b)q(e)g(used)g(to)f(program)f(net)o (w)o(orks)h(of)g(w)o(orkstations,)f(adv)m(anced)j(par-)224 1813 y(allel)k(sup)q(ercomputers)f(lik)o(e)h(the)f(In)o(tel)g(T)l(ouc)o (hstone)f(Delta)h(and)g(the)f(Allian)o(t)i(Cam-)224 1870 y(pus)d(HiPPI-based) g(system,)e(and)i(single)g(shared-memory)f(m)o(ultipro)q(cessors.)20 b(It)14 b(has)224 1926 y(curren)o(tly)h(b)q(een)g(installed)h(on)e(most)f (unipro)q(cessor)i(w)o(orkstations,)d(shared)i(memory)224 1983 y(m)o(ultipro)q(cessors,)i(and)f(sev)o(eral)g(high-p)q(erformance)i(parallel) f(mac)o(hines.)295 2039 y Fj(Pr)n(o)n(c)n(ess)i(management)g Fl(in)i(the)f(P4)f(system)h(is)g(based)g(on)g(a)f(con\014guration)h(\014le) 224 2095 y(that)14 b(sp)q(eci\014es)j(the)d(host)h(p)q(o)q(ol,)g(the)g(ob)s (ject)f(\014le)i(to)e(b)q(e)h(executed)h(on)e(eac)o(h)h(mac)o(hine,)224 2152 y(the)h(n)o(um)o(b)q(er)h(of)e(pro)q(cesses)i(to)e(b)q(e)i(started)e(on) h(eac)o(h)g(host)g(\(in)o(tended)h(primarily)g(for)224 2208 y(m)o(ultipro)q(cessor)g(systems\))f(and)h(other)g(auxiliary)h(information.) 24 b(An)17 b(example)h(of)e(a)224 2265 y(con\014guration)g(\014le)g(is)320 2371 y Fh(#)23 b(start)h(one)f(slave)g(on)h(each)f(of)h(sun2)f(and)g(sun3)320 2428 y(local)g(0)p eop %%Page: 7 7 bop 320 307 a Fh(sun2)47 b(1)g(/home/mylogin/p4pgms/sr_test)320 364 y(sun3)g(1)g(/home/mylogin/p4pgms/sr_test)295 470 y Fl(Tw)o(o)15 b(issues)i(are)f(notew)o(orth)o(y)e(in)j(regard)f(to)f(the)h(pro)q(cess)h (managemen)o(t)e(mec)o(h-)224 526 y(anism)23 b(in)g(P4.)40 b(First,)23 b(there)f(is)h(the)f(notion)g(a)g(\\master")f(pro)q(cess)h(and)g (\\sla)o(v)o(e")224 583 y(pro)q(cesses,)c(and)g(m)o(ultilev)o(el)i(hierarc)o (hies)f(ma)o(y)e(b)q(e)h(formed)g(to)f(implemen)o(t)i(what)e(is)224 639 y(termed)f(a)g Fj(cluster)g Fl(mo)q(del)h(of)f(computation.)23 b(Second,)17 b(the)f(primary)g(mo)q(de)h(of)f(pro-)224 696 y(cess)e(creation)g(is)h(static,)e(via)h(the)g(con\014guration)g(\014le;)h (dynamic)g(pro)q(cess)f(creation)g(is)224 752 y(p)q(ossible)19 b(only)e(b)o(y)g(a)f(statically)h(created)g(pro)q(cess)g(that)f(m)o(ust)g(in) o(v)o(ok)o(e)h(a)f(sp)q(ecial)j(P4)224 809 y(function)c(that)f(spa)o(wns)g(a) h(new)f(pro)q(cess)h(on)f(the)h(lo)q(cal)h(mac)o(hine.)k(Ho)o(w)o(ev)o(er,)13 b(despite)224 865 y(these)18 b(restrictions,)g(a)f(v)m(ariet)o(y)h(of)f (application)i(paradigms)e(ma)o(y)g(b)q(e)h(implemen)o(ted)224 922 y(in)e(the)f(P4)g(system)g(in)h(a)f(fairly)h(straigh)o(tforw)o(ard)d (manner.)295 978 y Fj(Message)18 b(Passing)g Fl(in)h(the)g(P4)g(system)f(is)h (ac)o(hiev)o(ed)h(through)f(the)g(use)g(of)f(tra-)224 1034 y(ditional)j Fh(send)d Fl(and)h Fh(recv)f Fl(primitiv)o(es,)j(parameterized)f (almost)e(exactly)h(as)g(other)224 1091 y(message)11 b(passing)h(systems.)18 b(Sev)o(eral)11 b(v)m(arian)o(ts)g(are)g(pro)o(vided)h(for)f(seman)o(tics)g (suc)o(h)h(as)224 1147 y(heterogeneous)h(exc)o(hange,)g(and)f(blo)q(c)o(king) i(or)e(non)o(blo)q(c)o(king)i(transfer.)k(A)13 b(signi\014can)o(t)224 1204 y(prop)q(ortion)k(of)g(the)h(burden)g(of)f(bu\013er)g(allo)q(cation)h (and)g(managemen)o(t)e(ho)o(w)o(ev)o(er,)h(is)224 1260 y(left)g(to)e(the)h (user.)23 b(Apart)15 b(from)g(basic)i(message)f(passing,)g(P4)f(also)h (o\013ers)g(a)f(v)m(ariet)o(y)224 1317 y(of)h(global)h(op)q(erations,)g (including)i(broadcast,)d(global)h(maxima)f(and)h(minima,)g(and)224 1373 y(barrier)f(sync)o(hronization.)295 1430 y Fj(Shar)n(e)n(d)h(Memory)f Fl(supp)q(ort)h(via)f(monitors)g(is)h(a)f(facilit)o(y)i(that)d(distinguishes) k(P4)224 1486 y(from)11 b(other)h(systems.)18 b(Ho)o(w)o(ev)o(er,)11 b(this)h(feature)g(is)g Fj(not)g Fl(distributed)h(shared)f(memory;)224 1543 y(but)j(rather,)f(a)g(p)q(ortable)h(mec)o(hanism)g(for)f(shared)g (address)h(space)g(programming)f(in)224 1599 y(true)k(shared)h(memory)f(m)o (ultipro)q(cessors.)29 b(The)19 b(abstraction)f(pro)o(vided)h(b)o(y)f(P4)g (for)224 1655 y(managing)c(data)f(in)h(shared)g(memory)f(is)h Fh(monitors)p Fl(.)k(The)c(sp)q(eci\014c)i(approac)o(h)d(tak)o(en)224 1712 y(b)o(y)e(P4)g(is)h(describ)q(ed)i(in)e([3)o(].)18 b(P4)11 b(pro)o(vides)h(sev)o(eral)g(useful)g(monitors)f(\()p Fh(p4)p 1484 1712 15 2 v 17 w(barrier)p 1669 1712 V 16 w(t)p Fl(,)224 1768 y Fh(p4)p 275 1768 V 17 w(getsub)p 436 1768 V 16 w(monitor)p 620 1768 V 17 w(t)p Fl(,)16 b Fh(p4)p 738 1768 V 17 w(askfor)p 899 1768 V 17 w(monitor)p 1084 1768 V 16 w(t)p Fl(\))g(as)h(w)o(ell)h(as)e(a) h(general)g(monitor)224 1825 y(t)o(yp)q(e)e(to)g(help)h(the)g(user)f(in)h (constructing)g(his)g(o)o(wn)e(monitors)h(\()p Fh(p4)p 1393 1825 V 17 w(monitor)p 1578 1825 V 16 w(t)p Fl(\).)295 1881 y(P4)e(also)h(supp)q(orts)g(a)f(v)m(ariet)o(y)h(of)f(auxiliary)i(and)f(supp)q (ort)g(functions,)h(for)e(timing)224 1938 y(purp)q(oses)g(and)g(for)e (debugging.)20 b(The)13 b(latter)f(set)g(of)g(functions)h(are)f(essen)o (tially)i(prin)o(t-)224 1994 y(ing)g(facilities)h(that)d(iden)o(tify)i(the)f (source)g(of)f(a)h(debugging)h(message,)e(and)h(\\lev)o(els")h(of)224 2051 y(debugging)e(are)e(pro)o(vided)i(so)e(that)g(the)g(user)h(ma)o(y)f(con) o(trol)h(the)f(v)o(olume)h(of)g(debugging)224 2107 y(information)16 b(that)f(is)h(prin)o(ted.)22 b(Finally)l(,)17 b(the)f(P4)f(system)g(also)h (con)o(tains)f(a)h(pac)o(k)m(age)224 2164 y(\(ALOG\))f(for)g(creating)h(logs) g(of)f(time-stamp)q(ed)h(ev)o(en)o(ts,)f(that)f(is)i(of)g(general)g(utilit)o (y)l(,)224 2220 y(outside)f(of)f(P4.)19 b(The)14 b(timestamps)g(are)g (obtained)g(from)g(v)m(arious)g(microsecond-lev)o(el)224 2276 y(resolution)f(timers)f(on)h(v)m(arious)f(mac)o(hines.)20 b(These)12 b(log)h(\014les)g(are)f(primarily)h(in)o(tended)224 2333 y(for)j(use)h(with)g (a)f(separate)g(to)q(ol)g(termed)g Fh(Upshot)g Fl([5)o(])g(that)g(visually)i (depicts)g(ev)o(en)o(ts)224 2389 y(and)e(their)f(ordering)h(from)e(a)h(P4)g (application)i(run.)p eop %%Page: 8 8 bop 295 307 a Fj(Parmacs)14 b Fl(is)h(a)g(pro)s(ject)e(that)h(is)h(closely)h (related)f(to)f(the)h(P4)f(e\013ort.)k(Essen)o(tially)l(,)224 364 y(P)o(armacs)e(is)h(a)f(set)g(of)g(macro)g(extensions)h(to)f(the)g(P4)g (system)h(dev)o(elop)q(ed)h(at)d(GMD)224 420 y([6].)29 b(It)19 b(originated)g(in)g(an)g(e\013ort)e(to)h(pro)o(vide)h(F)l(ortran)f(in)o (terfaces)h(to)f(the)g(P4)h(sys-)224 477 y(tem,)i(but)f(is)h(no)o(w)f(a)g (signi\014can)o(tly)h(enhanced)h(pac)o(k)m(age)e(that)g(pro)o(vides)g(a)g(v)m (ariet)o(y)224 533 y(of)d(high-lev)o(el)i(abstractions,)e(mostly)g(dealing)i (with)e(global)h(op)q(erations.)26 b(P)o(armacs)224 589 y(pro)o(vides)15 b(macros)f(for)g(logically)j(con\014guring)e(a)f(set)h(of)f(P4)g(pro)q (cesses;)h(for)f(example,)224 646 y(the)k(macro)g Fh(torus)f Fl(pro)q(duces)i(a)f(suitable)h(con\014guration)f(\014le)i(for)d(use)h(b)o(y) h(P4)e(that)224 702 y(results)c(in)g(a)f(logical)h(pro)q(cess)g (con\014guration)f(corresp)q(onding)h(to)f(a)g(3-d)g(torus.)18 b(Other)224 759 y(logical)h(top)q(ologies,)f(including)i(general)d(graphs)g (ma)o(y)g(also)g(b)q(e)h(implemen)o(ted,)h(and)224 815 y(P)o(armacs)11 b(pro)o(vides)h(macros)f(used)h(in)h(conjunction)g(with)f Fh(send)f Fl(and)h Fh(recv)f Fl(to)g(ac)o(hiev)o(e)224 872 y(top)q(ology-sp)q(eci\014c) 17 b(comm)o(unications)f(within)g(executing)h(programs.)224 993 y Fi(2.3)56 b(Express)224 1079 y Fl(In)20 b(con)o(trast)e(to)g(the)h (other)g(parallel)i(pro)q(cessing)f(systems)e(describ)q(ed)k(in)e(this)f (sec-)224 1136 y(tion,)13 b(Express)g(to)q(olkit)g(is)g(a)g(collection)h(of)f (to)q(ols)g(that)f(individually)k(address)d(v)m(arious)224 1192 y(asp)q(ects)j(of)f(concurren)o(t)h(computation.)22 b(The)16 b(to)q(olkit)g(is)g(dev)o(elop)q(ed)h(and)f(mark)o(eted)224 1249 y(commercially)d(b)o(y)f(P)o(araSoft)e(Corp)q(oration,)i(a)f(compan)o(y) g(that)g(w)o(as)g(started)g(b)o(y)h(some)224 1305 y(mem)o(b)q(ers)j(of)g(the) g(Caltec)o(h)h(concurren)o(t)f(computation)g(pro)s(ject.)k(A)c(second)h (distinc-)224 1362 y(tion)e(is)g(supp)q(ort)f(for)g(PC's)g(that)f(Express)i (pro)o(vides,)g(in)g(addition)g(to)f(the)h(usual)g(high)224 1418 y(p)q(erformance)i(computing)f(platforms)g(and)g(w)o(orkstations.)295 1474 y(The)j(philosoph)o(y)i(b)q(ehind)g(computing)f(with)f(Express)g(is)h (based)f(on)g(b)q(eginning)224 1531 y(with)i(a)g(sequen)o(tial)h(v)o(ersion)f (of)f(an)h(application)h(and)f(follo)o(wing)g(a)g(recommended)224 1587 y(dev)o(elopmen)o(t)h(life)h(cycle)g(culminating)g(in)g(a)e(parallel)i (v)o(ersion)f(that)f(is)h(tuned)g(for)224 1644 y(optimalit)o(y)l(.)34 b(T)o(ypical)20 b(dev)o(elopmen)o(t)g(cycles)h(b)q(egin)g(with)e(the)h(use)g (of)f(VTOOL,)h(a)224 1700 y(graphical)g(program)d(that)h(allo)o(ws)h(the)f (progress)g(of)h(sequen)o(tial)g(algorithms)g(to)f(b)q(e)224 1757 y(displa)o(y)o(ed)f(in)g(a)e(dynamic)i(manner.)k(Up)q(dates)16 b(and)g(references)g(to)f(individual)k(data)224 1813 y(structures)h(can)g(b)q (e)g(displa)o(y)o(ed)i(to)d(explicitly)k(demonstrate)c(algorithm)h(structure) 224 1870 y(and)13 b(pro)o(vide)h(the)f(detailed)i(kno)o(wledge)f(necessary)f (for)f(parallelization.)22 b(Related)14 b(to)224 1926 y(the)g(ab)q(o)o(v)o(e) f(is)h(FTOOL,)g(whic)o(h)g(pro)o(vides)g(in-depth)h(analysis)f(of)g(a)f (program)f(includ-)224 1983 y(ing)21 b(v)m(ariable)g(use)f(analysis,)h(\015o) o(w)f(structure)f(and)i(feedbac)o(k)f(regarding)g(p)q(oten)o(tial)224 2039 y(parallelization.)32 b(FTOOL)19 b(op)q(erates)g(on)f(b)q(oth)h(sequen)o (tial)h(and)e(parallel)i(v)o(ersions)224 2095 y(of)15 b(an)h(application.)23 b(A)15 b(third)i(to)q(ol)e(called)i(ASP)l(AR)g(is)f(then)g(used;)g(this)g(is) g(an)g(auto-)224 2152 y(mated)f(parallelizer)j(that)c(con)o(v)o(erts)g (sequen)o(tial)j(C)e(and)g(F)o(OR)l(TRAN)h(programs)e(for)224 2208 y(parallel)j(or)e(distributed)h(execution)h(using)f(the)f(Express)g (programming)g(mo)q(dels.)295 2265 y(The)i(core)f(of)h(the)g(Express)g (system)f(is)h(a)g(set)f(of)h(libraries)h(for)e(comm)o(unication,)224 2321 y(IO,)h(and)f(parallel)h(graphics.)23 b(The)16 b(comm)o(unication)h (primitiv)o(es)g(are)f(akin)g(to)g(those)224 2378 y(found)f(in)h(other)f (systems,)f(and)h(include)i(a)e(v)m(ariet)o(y)g(of)f(global)i(op)q(erations)f (and)g(data)224 2434 y(distribution)24 b(primitiv)o(es.)44 b(Extended)23 b(IO)g(routines)g(enable)h(parallel)g(input)f(and)p eop %%Page: 9 9 bop 224 307 a Fl(output,)23 b(and)f(a)f(similar)i(set)f(of)f(routines)h(are)f (pro)o(vided)i(for)e(graphical)h(displa)o(ys)224 364 y(from)15 b(m)o(ultiple)j(concurren)o(t)e(pro)q(cesses.)22 b(Express)16 b(also)g(con)o(tains)g(the)f(NDB)h(to)q(ol,)g(a)224 420 y(parallel)c (debugger)f(that)f(used)i(commands)e(whic)o(h)i(are)e(based)h(on)g(the)f(p)q (opular)i(\\db)o(x")224 477 y(in)o(terface.)20 b(These)c(debugging)g (commands)f(can)g(b)q(e)h(issued)g(to)f(single)h(pro)q(cessors)f(or)224 533 y(groups)g(of)g(no)q(des)h(sim)o(ultaneously)l(.)295 589 y(Express)f(\014nally)h(con)o(tains)f(a)g(set)g(of)f(`bac)o(k-end")h(to)q (ols)g(in)o(tended)i(to)d(assist)h(p)q(er-)224 646 y(formance)23 b(monitoring)f(and)h(tuning.)44 b(CTOOL)23 b(analyzes)g(high)h(lev)o(el)g(o)o (v)o(erhead)224 702 y(issues)f(suc)o(h)g(as)f(the)g(relativ)o(e)h(amoun)o(t)e (of)h(time)g(sp)q(en)o(t)h(computing,)h(p)q(erforming)224 759 y(IO)18 b(and)g(in)g(in)o(terpro)q(cessor)g(comm)o(unication.)27 b(ETOOL)19 b(sho)o(ws)d(the)i(relationships)224 815 y(b)q(et)o(w)o(een)f(v)m (arious)f(computing)h(elemen)o(ts)g(and)f(ma)o(y)f(b)q(e)i(used)g(to)f (understand)g(o)o(v)o(er-)224 872 y(heads,)j(and)f(cause)g(and)g(e\013ect)g (relationships)h(b)q(et)o(w)o(een)g(actions)f(in)g(di\013eren)o(t)h(pro-)224 928 y(cessors.)k(XTOOL)17 b(pro\014les)g(CPU)f(usage)g(on)h(a)f(p)q(er-pro)q (cessor)g(basis,)h(and)f(ma)o(y)g(b)q(e)224 985 y(used)g(at)f(di\013eren)o(t) g(lev)o(els)h(of)f(gran)o(ularit)o(y)l(.)224 1106 y Fi(2.4)56 b(Ongoing)18 b(T)-5 b(rends)224 1192 y Fl(In)14 b(the)f(next)g(section)h(of)e (this)i(pap)q(er,)f(w)o(e)g(fo)q(cus)g(on)g(the)h(basic)f(features)g(of)g (PVM)f(and)224 1249 y(discuss)18 b(our)e(exp)q(eriences)i(with)f(that)f (system.)23 b(PVM)16 b(as)g(w)o(ell)h(as)g(the)f(systems)g(de-)224 1305 y(scrib)q(ed)e(ab)q(o)o(v)o(e)e(ha)o(v)o(e)g(ev)o(olv)o(ed)g(o)o(v)o(er) g(the)g(past)g(sev)o(eral)g(y)o(ears,)g(but)h(none)f(of)g(them)g(can)224 1362 y(b)q(e)k(considered)g(fully)h(mature.)i(The)c(\014eld)h(of)f(net)o(w)o (ork)f(based)h(concurren)o(t)g(comput-)224 1418 y(ing)e(is)f(relativ)o(ely)i (y)o(oung,)e(and)g(researc)o(h)g(on)g(v)m(arious)g(asp)q(ects)h(is)f (ongoing.)19 b(Although)224 1474 y(basic)c(infrastructures)e(ha)o(v)o(e)g(b)q (een)i(dev)o(elop)q(ed,)h(man)o(y)d(of)g(the)h(re\014nemen)o(ts)g(that)f(are) 224 1531 y(necessary)18 b(are)f(still)i(ev)o(olving.)27 b(Some)17 b(of)g(the)h(ongoing)f(researc)o(h)h(pro)s(jects)e(related)224 1587 y(to)f(heterogeneous)g(net)o(w)o(ork-based)g(computing)g(are)g (brie\015y)i(outlined)f(here.)295 1644 y(Standalone)h(systems)e(deliv)o (ering)j(sev)o(eral)f(tens)f(of)g(millions)i(of)e(op)q(erations)g(p)q(er)224 1700 y(second)i(are)e(commonplace,)i(and)f(con)o(tin)o(uing)h(increases)g(in) g(p)q(o)o(w)o(er)f(are)f(predicted.)224 1757 y(F)l(or)e(net)o(w)o(ork)f (computing)i(systems,)e(this)i(presen)o(ts)f(man)o(y)g(c)o(hallenges.)21 b(One)15 b(asp)q(ect)224 1813 y(concerns)21 b(scaling)h(to)e(h)o(undreds)i (and)f(p)q(erhaps)g(thousands)f(of)h(indep)q(enden)o(t)i(ma-)224 1870 y(c)o(hines;)g(it)d(is)g(conjectured)g(that)f(functionalit)o(y)h(and)g (p)q(erformance)g(equiv)m(alen)o(t)h(to)224 1926 y(massiv)o(ely)e(parallel)h (mac)o(hines)f(can)f(b)q(e)h(supp)q(orted)f(on)h(cluster)f(en)o(vironmen)o (ts.)29 b(A)224 1983 y(pro)s(ject)15 b(at)g(F)l(ermilab)i(has)e(demonstrated) g(the)h(feasibilit)o(y)i(of)d(scaling)i(to)e(h)o(undreds)224 2039 y(of)e(pro)q(cessors)h(for)f(some)g(classes)h(of)f(problems.)20 b(Researc)o(h)14 b(in)h(proto)q(cols)e(to)g(supp)q(ort)224 2095 y(scaling)18 b(and)e(other)g(system)g(issues)i(are)e(curren)o(tly)h (under)g(in)o(v)o(estigation.)24 b(F)l(urther,)224 2152 y(under)15 b(the)g(righ)o(t)g(circumstances,)g(the)f(net)o(w)o(ork)g(based)h(approac)o (h)f(can)h(b)q(e)g(e\013ectiv)o(e)224 2208 y(in)g(coupling)h(sev)o(eral)e (similar)h(m)o(ultipro)q(cessors,)f(resulting)h(in)g(a)f(con\014guration)g (that)224 2265 y(migh)o(t)h(b)q(e)h(economically)h(and)e(tec)o(hnically)j (di\016cult)e(to)f(ac)o(hiev)o(e)h(with)f(hardw)o(are.)295 2321 y(Applications)j(with)e(large)g(execution)h(times)f(will)h(b)q(ene\014t) g(greatly)f(from)f(mec)o(h-)224 2378 y(anisms)h(that)e(mak)o(e)g(them)h (resilien)o(t)i(to)d(failures.)21 b(Curren)o(tly)15 b(few)g(platforms)g (\(esp)q(e-)224 2434 y(cially)g(among)d(m)o(ultipro)q(cessors\))i(supp)q(ort) f(application)i(lev)o(el)f(fault)g(tolerance.)19 b(In)14 b(a)p eop %%Page: 10 10 bop 224 307 a Fl(net)o(w)o(ork)14 b(based)h(computing)g(en)o(vironmen)o(t)g (application)i(resilience)g(to)e(failures)g(can)224 364 y(b)q(e)20 b(supp)q(orted)g(without)g(sp)q(ecialized)i(enhancemen)o(ts)e(to)f(hardw)o (are)f(or)h(op)q(erating)224 420 y(systems.)32 b(Researc)o(h)19 b(is)h(in)g(progress)f(to)f(in)o(v)o(estigate)i(and)f(dev)o(elop)h (strategies)f(for)224 477 y(enabling)k(applications)f(to)f(run)g(to)f (completion,)j(in)f(the)f(presence)h(of)f(hardw)o(are,)224 533 y(system)g(soft)o(w)o(are,)g(or)f(net)o(w)o(ork)g(faults.)38 b(Approac)o(hes)22 b(based)f(on)g(c)o(hec)o(kp)q(oin)o(ting,)224 589 y(shado)o(w)15 b(execution,)h(and)f(pro)q(cess)h(migration)f(are)g(b)q (eing)h(in)o(v)o(estigated.)295 646 y(The)d(p)q(erformance)g(and)h (e\013ectiv)o(eness)f(of)g(net)o(w)o(ork)f(based)h(concurren)o(t)g(comput-) 224 702 y(ing)j(en)o(vironmen)o(ts)f(dep)q(ends)i(to)e(a)f(large)i(exten)o(t) e(on)i(the)f(e\016ciency)h(of)f(the)g(supp)q(ort)224 759 y(soft)o(w)o(are,)20 b(and)g(on)h(minimization)h(of)e(o)o(v)o(erheads.)35 b(Exp)q(eriences)23 b(with)d(the)h(PVM)224 815 y(system)16 b(ha)o(v)o(e)f(iden)o(ti\014ed)j(sev)o (eral)f(k)o(ey)f(factors)f(in)h(the)h(system)e(that)g(are)h(b)q(eing)h(fur-) 224 872 y(ther)c(analyzed)h(and)f(impro)o(v)o(ed)g(to)f(increase)i(o)o(v)o (erall)f(e\016ciency)l(.)21 b(E\016cien)o(t)14 b(proto)q(cols)224 928 y(to)20 b(supp)q(ort)g(high)i(lev)o(el)f(concurrency)g(primitiv)o(es)h (is)f(a)f(subgoal)h(of)e(w)o(ork)h(in)h(this)224 985 y(area.)26 b(P)o(articular)17 b(atten)o(tion)g(is)h(b)q(eing)h(giv)o(en)f(to)f (exploiting)i(the)e(full)i(p)q(oten)o(tial)f(of)224 1041 y(imminen)o(t)e (\014b)q(er)g(optic)g(connections,)g(using)g(an)f(exp)q(erimen)o(tal)h(\014b) q(er)g(net)o(w)o(ork)e(that)224 1098 y(is)j(a)o(v)m(ailable.)23 b(In)17 b(preliminary)h(exp)q(erimen)o(ts)f(with)f(a)g(\014b)q(er)g(optic)h (net)o(w)o(ork,)d(sev)o(eral)224 1154 y(imp)q(ortan)o(t)k(issues)h(ha)o(v)o (e)f(b)q(een)i(iden)o(ti\014ed.)31 b(F)l(or)17 b(example,)j(the)e(op)q (erating)h(system)224 1210 y(in)o(terfaces)f(to)g(\014b)q(er)g(net)o(w)o (orks,)f(its)h(reliabilit)o(y)j(c)o(haracteristics,)d(and)g(factors)f(suc)o (h)224 1267 y(as)f(maxim)o(um)f(pac)o(k)o(et)h(size)g(are)g(signi\014can)o (tly)h(di\013eren)o(t)f(from)f(those)h(for)f(Ethernet.)224 1323 y(When)g(the)f(concurren)o(t)h(computing)g(en)o(vironmen)o(t)f(is)h (executed)h(on)e(a)g(com)o(bination)224 1380 y(of)d(b)q(oth)f(t)o(yp)q(es)h (of)g(net)o(w)o(orks,)f(the)h(system)f(algorithms)h(ha)o(v)o(e)f(to)g(b)q(e)i (mo)q(di\014ed)g(to)e(cater)224 1436 y(to)15 b(these)g(di\013erences,)h(in)g (an)f(optimal)h(manner)f(and)h(with)f(minimized)j(o)o(v)o(erheads.)295 1493 y(Another)c(issue)h(to)f(b)q(e)h(addressed)f(concerns)h(data)f(con)o(v)o (ersions)g(that)g(are)g(neces-)224 1549 y(sary)f(in)g(net)o(w)o(ork)o(ed)f (heterogeneous)h(systems.)19 b(Heuristics)14 b(to)f(p)q(erform)f(con)o(v)o (ersions)224 1606 y(only)21 b(when)g(necessary)f(and)h(minimizing)i(o)o(v)o (erheads)d(ha)o(v)o(e)g(b)q(een)h(dev)o(elop)q(ed)h(and)224 1662 y(their)h(e\013ectiv)o(eness)f(is)g(b)q(eing)h(ev)m(aluated.)41 b(Recen)o(t)23 b(exp)q(eriences)h(with)e(a)g(Cra)o(y-2)224 1719 y(ha)o(v)o(e)13 b(also)h(iden)o(ti\014ed)h(the)e(need)i(to)e(handle)h (di\013erences)h(in)f(w)o(ordsize)g(and)f(precision,)224 1775 y(when)f(op)q(erating)g(in)h(a)e(heterogeneous)h(en)o(vironmen)o(t;)g (general)h(mec)o(hanisms)f(to)f(deal)224 1831 y(with)17 b(arbitrary)f (precision)i(arithmetic)f(\(when)g(desired)g(b)o(y)g(applications\))g(are)g (also)224 1888 y(b)q(eing)k(dev)o(elop)q(ed.)35 b(A)19 b(third)h(asp)q(ect)g (concerns)g(the)g(e\016cien)o(t)g(implemen)o(tation)h(of)224 1944 y(inheren)o(tly)16 b(exp)q(ensiv)o(e)g(parallel)g(computing)e(op)q (erations)h(suc)o(h)f(as)g(barrier)h(sync)o(hro-)224 2001 y(nization.)27 b(P)o(articularly)18 b(in)g(an)f(irregular)h(en)o(vironmen)o(t)f(\(where)g (in)o(terconnections)224 2057 y(within)k(hardw)o(are)d(m)o(ultipro)q(cessors) i(are)f(m)o(uc)o(h)g(faster)g(than)g(net)o(w)o(ork)f(c)o(hannels\),)224 2114 y(suc)o(h)h(op)q(erations)g(can)g(cause)h(b)q(ottlenec)o(ks)f(and)g(sev) o(ere)g(load)g(im)o(balances.)32 b(Other)224 2170 y(distributed)14 b(primitiv)o(es)g(for)e(whic)o(h)h(algorithm)f(dev)o(elopmen)o(t)i(and)e (implemen)o(tation)224 2227 y(strategies)j(are)h(b)q(eing)h(in)o(v)o (estigated)f(include)i(p)q(olling,)g(distributed)f(fetc)o(h-and-add,)224 2283 y(global)e(op)q(erations,)g(automatic)f(data)f(decomp)q(osition)j(and)f (distribution,)h(and)f(m)o(u-)224 2340 y(tual)h(exclusion.)p eop %%Page: 11 11 bop 224 307 a Fk(3)69 b(PVM)224 409 y Fl(PVM)12 b([2)o(])g(w)o(as)g(pro)q (duced)h(b)o(y)f(the)g(Heterogeneous)g(Net)o(w)o(ork)f(Pro)s(ject|a)h(collab) q(ora-)224 465 y(tiv)o(e)j(e\013ort)e(b)o(y)i(researc)o(hers)f(at)g(Oak)h (Ridge)h(National)f(Lab)q(oratory)l(,)e(the)i(Univ)o(ersit)o(y)224 522 y(of)h(T)l(ennessee,)i(and)f(Emory)e(Univ)o(ersit)o(y)j(sp)q (eci\014cally)h(to)d(facilitate)h(heterogeneous)224 578 y(parallel)j (computing.)31 b(PVM)18 b(w)o(as)g(one)h(of)f(the)h(\014rst)f(soft)o(w)o(are) f(systems)h(to)g(enable)224 634 y(mac)o(hines)g(with)f(widely)i(di\013eren)o (t)e(arc)o(hitectures)h(and)f(\015oating-p)q(oin)o(t)h(represen)o(ta-)224 691 y(tions)c(to)g(w)o(ork)f(together)g(on)h(a)g(single)h(computational)f (task.)19 b(It)14 b(can)g(b)q(e)h(used)f(on)g(its)224 747 y(o)o(wn)k(or)f(as) h(a)g(foundation)g(up)q(on)h(whic)o(h)g(other)e(heterogeneous)h(net)o(w)o (ork)f(soft)o(w)o(are)224 804 y(can)e(b)q(e)h(built.)295 860 y(The)e(PVM)g(pac)o(k)m(age)g(is)h(small)g(\(ab)q(out)f(than)g(1)g(Mb)o(ytes) g(of)f(C)h(source)h(co)q(de\))f(and)224 917 y(easy)19 b(to)g(install.)33 b(It)19 b(needs)h(to)e(b)q(e)i(installed)h(only)f(once)f(on)g(eac)o(h)g(mac)o (hine)h(to)f(b)q(e)224 973 y(accessible)i(to)c(all)j(users.)30 b(Moreo)o(v)o(er,)18 b(the)g(installation)i(do)q(es)f(not)f(require)i(sp)q (ecial)224 1030 y(privileges)d(on)e(an)o(y)g(of)g(the)g(mac)o(hines)h(and)g (th)o(us)f(can)g(b)q(e)h(done)f(b)o(y)h(an)o(y)e(user.)295 1086 y(The)23 b(PVM)g(user-in)o(terface)h(requires)g(that)f(all)h(message)f (data)g(b)q(e)h(explicitly)224 1143 y(t)o(yp)q(ed.)19 b(PVM)9 b(p)q(erforms)h(mac)o(hine-indep)q(en)q(den)o(t)j(data)c(con)o(v)o(ersions)i (when)f(required,)224 1199 y(th)o(us)15 b(allo)o(wing)g(mac)o(hines)h(with)f (di\013eren)o(t)g(in)o(teger)g(and)g(\015oating-p)q(oin)o(t)h(represen)o(ta-) 224 1255 y(tions)g(to)e(pass)h(data.)224 1377 y Fi(3.1)56 b(V)-5 b(arious)19 b(Lev)n(els)e(of)i(Heterogeneit)n(y)224 1463 y Fl(PVM)12 b(supp)q(orts)g(heterogeneit)o(y)g(at)f(the)h(application,)i(mac)o (hine,)f(and)f(net)o(w)o(ork)f(lev)o(el.)224 1519 y(A)o(t)18 b(the)h(application)h(lev)o(el,)h(subtasks)d(can)h(exploit)h(the)f(arc)o (hitecture)g(b)q(est)g(suited)224 1576 y(to)e(the)h(their)g(solution.)28 b(A)o(t)17 b(the)h(mac)o(hine)h(lev)o(el,)g(computers)e(with)h(di\013eren)o (t)g(data)224 1632 y(formats)i(are)h(supp)q(orted)h(as)e(w)o(ell)j(as)d (di\013eren)o(t)i(serial,)h(v)o(ector,)f(and)f(parallel)i(ar-)224 1689 y(c)o(hitectures.)32 b(A)o(t)19 b(the)g(net)o(w)o(ork)f(lev)o(el,)j (di\013eren)o(t)e(net)o(w)o(ork)f(t)o(yp)q(es)h(can)h(mak)o(e)e(up)i(a)224 1745 y(P)o(arallel)j(Virtual)g(Mac)o(hine,)h(for)e(example,)i(Ethernet,)f (FDDI,)e(tok)o(en)h(ring,)i(etc.)224 1802 y(Under)d(PVM,)e(a)h (user-de\014ned)h(collection)h(of)e(serial,)i(parallel,)g(and)e(v)o(ector)g (com-)224 1858 y(puters)15 b(app)q(ears)g(as)f(one)h(large)g (distributed-memory)h(computer;)e(w)o(e)h(use)g(the)g(term)224 1915 y Fj(virtual)f(machine)e Fl(to)g(designate)g(this)h(logical)g (distributed-memory)g(computer.)19 b(The)224 1971 y(hardw)o(are)e(that)f (comp)q(oses)h(the)g(user's)g(p)q(ersonal)h(PVM)f(ma)o(y)f(b)q(e)i(an)o(y)f (Unix-based)224 2028 y(mac)o(hine)d(on)g(whic)o(h)g(the)f(user)h(has)f(a)g(v) m(alid)i(login)g(and)e(that)g(is)h(accessible)h(o)o(v)o(er)e(some)224 2084 y(net)o(w)o(ork.)295 2140 y(Using)h(PVM,)g(users)g(can)g(also)h (con\014gure)f(their)h(o)o(wn)f(parallel)h(virtual)g(mac)o(hine,)224 2197 y(whic)o(h)d(can)f(o)o(v)o(erlap)g(with)g(other)g(users')g(virtual)g (mac)o(hines.)20 b(Con\014guring)11 b(a)g(p)q(ersonal)224 2253 y(parallel)j(virtual)g(mac)o(hine)f(in)o(v)o(olv)o(es)h(simply)g(listing)g (the)e(names)h(of)f(the)h(mac)o(hines)h(in)224 2310 y(a)g(\014le)h(that)e(is) h(read)g(when)g(PVM)g(is)g(started.)19 b(Applications,)c(whic)o(h)g(can)f(b)q (e)g(written)224 2366 y(in)i(F)l(ortran)d(77)h(or)h(C,)f(can)h(b)q(e)g (parallelized)j(b)o(y)d(using)g(message-passing)g(constructs)224 2423 y(common)g(to)f(most)h(distributed-memory)h(computers.)k(By)15 b(sending)i(and)e(receiving)p eop %%Page: 12 12 bop 224 307 a Fl(messages,)14 b(m)o(ultiple)i(tasks)d(of)h(an)g(application)i (can)e(co)q(op)q(erate)g(to)g(solv)o(e)g(a)g(problem)224 364 y(in)i(parallel.)295 420 y(PVM)10 b(supplies)j(the)d(functions)i(to)e (automatically)g(start)g(up)h(tasks)f(on)g(the)h(virtual)224 477 y(mac)o(hine)20 b(and)g(allo)o(ws)g(the)f(tasks)g(to)g(comm)o(unicate)g (and)h(sync)o(hronize)h(with)e(eac)o(h)224 533 y(other.)42 b(In)23 b(particular,)h(PVM)e(handles)i(all)g(message)e(con)o(v)o(ersion)g (that)g(ma)o(y)g(b)q(e)224 589 y(required)h(if)g(t)o(w)o(o)e(computers)h(use) g(di\013eren)o(t)h(data)e(represen)o(tations.)41 b(PVM)22 b(also)224 646 y(includes)c(man)o(y)e(con)o(trol)f(and)h(debugging)h(features)e(in)i (its)f(user-friendly)i(in)o(terface.)224 702 y(F)l(or)f(instance,)g(PVM)g (ensures)h(that)e(error)g(messages)h(generated)f(on)h(some)g(remote)224 759 y(computer)e(get)g(displa)o(y)o(ed)i(on)e(the)g(user's)g(lo)q(cal)h (screen.)224 881 y Fi(3.2)56 b(Comp)r(onen)n(ts)18 b(of)g(PVM)224 966 y Fl(The)i(PVM)f(system)g(is)i(comp)q(osed)f(of)f(t)o(w)o(o)f(parts.)32 b(The)20 b(\014rst)f(part)g(is)i(a)e(daemon,)224 1023 y(called)d Fj(pvmd3)p Fl(,)f(that)f(resides)h(on)g(all)g(the)g(computers)f(making)h(up)g (the)f(virtual)i(com-)224 1079 y(puter.)j(\(An)13 b(example)h(of)f(a)g (daemon)g(program)f(is)h Fj(sendmail)p Fl(,)f(whic)o(h)i(handles)g(all)g(the) 224 1136 y(incoming)f(and)f(outgoing)f(electronic)i(mail)f(on)g(a)f(Unix)i (system.\))18 b Fj(pvmd3)12 b Fl(is)g(designed)224 1192 y(so)18 b(that)f(an)o(y)h(user)g(with)h(a)f(v)m(alid)i(login)f(can)f(install)h(this)g (daemon)f(on)g(a)g(mac)o(hine.)224 1249 y(When)g(a)e(user)h(wishes)h(to)e (run)i(a)e(PVM)h(application,)i(he)e(executes)h Fj(pvmd3)f Fl(on)g(one)224 1305 y(of)g(the)g(computers)g(whic)o(h)h(in)g(turn)f(starts)e (up)j Fj(pvmd3)g Fl(on)f(eac)o(h)g(of)f(the)i(computers)224 1362 y(making)f(up)g(the)f(user-de\014ned)j(virtual)e(mac)o(hine.)25 b(A)16 b(PVM)g(application)j(can)d(then)224 1418 y(b)q(e)g(started)e(from)h (a)g(Unix)h(prompt)f(on)g(an)o(y)g(of)f(these)i(computers.)295 1474 y(The)j(second)g(part)f(of)g(the)h(system)g(is)g(a)f(library)i(of)e(PVM) g(in)o(terface)h(routines.)224 1531 y(This)e(library)h(con)o(tains)e (user-callable)j(routines)e(for)f(passing)h(messages,)f(spa)o(wning)224 1587 y(pro)q(cesses,)g(co)q(ordinating)g(tasks,)e(and)h(mo)q(difying)i(the)e (virtual)h(mac)o(hine.)22 b(Applica-)224 1644 y(tion)16 b(programs)e(m)o(ust) g(b)q(e)i(link)o(ed)h(with)e(this)h(library)g(to)f(use)g(PVM.)224 1766 y Fi(3.3)56 b(Applications)224 1851 y Fl(Application)20 b(programs)d(that)h(use)h(PVM)e(are)h(comp)q(osed)h(of)f(subtasks)g(at)f(a)h (mo)q(d-)224 1908 y(erately)f(high)h(lev)o(el)h(of)d(gran)o(ularit)o(y)l(.)26 b(The)17 b(subtasks)g(can)g(b)q(e)g(generic)h(serial)g(co)q(des,)224 1964 y(or)d(they)g(can)h(b)q(e)g(sp)q(eci\014c)h(to)e(a)g(particular)h(mac)o (hine.)21 b(In)16 b(PVM,)f(resources)g(ma)o(y)g(b)q(e)224 2021 y(accessed)k(at)f(three)g(di\013eren)o(t)h(lev)o(els:)27 b(the)19 b Fj(tr)n(ansp)n(ar)n(ent)e Fl(mo)q(de)h(in)i(whic)o(h)f(subtasks)224 2077 y(are)h(automatically)g(lo)q(cated)h(at)e(the)i(most)e(appropriate)h (sites,)h(the)f Fj(ar)n(chite)n(ctur)n(e-)224 2134 y(dep)n(endent)g Fl(mo)q(de)i(in)f(whic)o(h)h(the)f(user)g(ma)o(y)f(indicate)j(sp)q(eci\014c)f (arc)o(hitectures)g(on)224 2190 y(whic)o(h)16 b(particular)g(subtasks)f(are)g (to)g(execute,)g(and)h(the)f Fj(machine-sp)n(e)n(ci\014c)f Fl(mo)q(de)i(in)224 2247 y(whic)o(h)h(a)f(particular)h(mac)o(hine)h(ma)o(y)d (b)q(e)i(sp)q(eci\014ed.)26 b(Suc)o(h)17 b(\015exibilit)o(y)i(allo)o(ws)d (di\013er-)224 2303 y(en)o(t)h(subtasks)g(of)g(a)f(heterogeneous)i (application)h(to)d(exploit)i(particular)g(strengths)224 2359 y(of)d(individual)j(mac)o(hines)e(on)f(the)h(net)o(w)o(ork.)295 2416 y(Applications)21 b(access)e(PVM)g(resources)h(via)f(a)g(library)h(of)f (standard)g(in)o(terface)p eop %%Page: 13 13 bop 224 307 a Fl(routines.)30 b(These)18 b(routines)h(allo)o(w)g(the)f (initiation)i(and)f(termination)f(of)g(pro)q(cesses)224 364 y(across)d(the)g(net)o(w)o(ork,)f(as)h(w)o(ell)h(as)f(comm)o(unication)h(and) f(sync)o(hronization)h(b)q(et)o(w)o(een)224 420 y(pro)q(cesses.)j(Comm)o (unication)13 b(constructs)f(include)i(those)e(for)g(the)g(exc)o(hange)g(of)g (data)224 477 y(structures)g(as)f(w)o(ell)i(as)e(high-lev)o(el)j(primitiv)o (es)f(suc)o(h)f(as)f(broadcast,)h(barrier)g(sync)o(hro-)224 533 y(nization,)k(and)f(ev)o(en)o(t)g(sync)o(hronization.)295 589 y(Application)23 b(programs)e(under)h(PVM)g(ma)o(y)f(p)q(ossess)h (arbitrary)f(con)o(trol)g(and)224 646 y(dep)q(endency)f(structures.)25 b(In)18 b(other)f(w)o(ords,)f(at)h(an)o(y)g(p)q(oin)o(t)g(in)h(the)g (execution)g(of)f(a)224 702 y(concurren)o(t)g(application,)h(the)f(pro)q (cesses)g(in)h(existence)g(ma)o(y)e(ha)o(v)o(e)g(arbitrary)g(rela-)224 759 y(tionships)j(b)q(et)o(w)o(een)g(eac)o(h)f(other;)g(furthermore,)g(an)o (y)g(pro)q(cess)g(ma)o(y)f(comm)o(unicate)224 815 y(and/or)e(sync)o(hronize)h (with)g(an)o(y)f(other.)224 936 y Fi(3.4)56 b(Grand)19 b(Challenge)f (Application)g(Exp)r(eriences)e(with)j(PVM)224 1022 y Fl(Ov)o(er)13 b(the)g(past)g(few)f(y)o(ears)h(a)f(n)o(um)o(b)q(er)i(of)e(applications)j(ha) o(v)o(e)d(b)q(een)i(dev)o(elop)q(ed)h(using)224 1078 y(PVM.)g(The)g(table)h (b)q(elo)o(w)f(list)h(some)f(of)g(the)g(applications.)572 1172 y(Materials)h(Science)572 1229 y(Global)g(Climate)g(Mo)q(deling)572 1285 y(A)o(tmospheric,)g(o)q(ceanic,)g(and)f(space)g(studies)572 1342 y(Meterorological)h(forcasting)572 1398 y(3-D)f(groundw)o(ater)f(mo)q (deling)572 1455 y(W)l(eather)h(mo)q(deling)572 1511 y(Sup)q(erconductivit)o (y)l(,)j(molecular)e(dynamics)572 1568 y(Mon)o(te)f(Carlo)g(CFD)f (application)572 1624 y(2-D)h(and)h(3-D)e(seismic)j(imaging)572 1681 y(3-D)e(underground)h(\015o)o(w)f(\014elds)572 1737 y(P)o(article)h(sim) o(ulation)572 1793 y(Distributed)h(A)-5 b(VS)15 b(\015o)o(w)g(visualization) 224 1888 y(These)h(implemen)o(tations)g(ha)o(v)o(e)f(b)q(een)h(done)g(on)f(v) m(arious)h(platforms.)295 1944 y(During)d(the)h(last)f(few)g(y)o(ears,)g (ORNL)i(material)e(scien)o(tists)h(and)g(their)g(collab)q(ora-)224 2001 y(tors)e(at)g(the)g(Univ)o(ersit)o(y)i(of)e(Cincinnati,)i(SER)o(C)f(at)f (Daresbury)l(,)h(and)f(the)h(Univ)o(ersit)o(y)224 2057 y(of)f(Bristol)i(ha)o (v)o(e)e(b)q(een)i(dev)o(eloping)g(an)f(algorithm)f(for)g(studying)i(the)e (ph)o(ysical)i(prop-)224 2114 y(erties)21 b(of)f(complex)h(substitutionally)h (disordered)g(materials.)35 b(A)21 b(few)f(imp)q(ortan)o(t)224 2170 y(examples)14 b(of)e(ph)o(ysical)i(systems)e(and)g(situations)h(in)h (whic)o(h)f(substitutional)h(disorder)224 2227 y(pla)o(ys)d(a)f(critical)i (role)f(in)h(determining)g(material)f(prop)q(erties)g(include:)20 b(high-strength)224 2283 y(allo)o(ys,)e(high-temp)q(erature)g(sup)q (erconductors,)f(magnetic)h(phase)f(transitions,)g(and)224 2340 y(metal/insulator)c(transitions.)19 b(The)12 b(algorithm)g(b)q(eing)i (dev)o(elop)q(ed)g(is)e(an)g(implemen-)224 2396 y(tation)e(of)h(the)f (Korringa,)i(Kohn)f(and)g(Rostok)o(er)f(coheren)o(t)g(p)q(oten)o(tial)i (appro)o(ximation)224 2452 y(\(KKR-CP)l(A\))h(metho)q(d)f(for)f(calculating)i (the)f(electronic)h(prop)q(erties,)g(energetics)f(and)p eop %%Page: 14 14 bop 224 307 a Fl(other)14 b(ground)g(state)f(prop)q(erties)i(of)f (substitutionally)i(disordered)f(allo)o(ys)f([10)o(].)19 b(The)224 364 y(KKR-CP)l(A)e(metho)q(d)g(extends)f(the)g(usual)h(implemen)o(tation)g (of)f(densit)o(y)g(functional)224 420 y(theory)f(\(LD)o(A-DFT\))e([11)o(])i (to)f(substitutionally)j(disordered)f(materials)f([7)o(].)20 b(In)15 b(this)224 477 y(sense)i(it)f(is)g(a)g(completely)h(\014rst)e (principles)k(theory)c(of)h(the)g(prop)q(erties)g(of)g(substitu-)224 533 y(tionally)g(disordered)g(materials)e(requiring)i(as)e(input)i(only)f (the)g(atomic)f(n)o(um)o(b)q(ers)h(of)224 589 y(the)g(sp)q(ecies)i(making)f (up)f(the)g(solid.)295 646 y(The)k(KKR-CP)l(A)i(algorithm)f(con)o(tains)f (sev)o(eral)h(lo)q(cations)g(where)g(parallelism)224 702 y(can)e(b)q(e)g (exploited.)28 b(These)18 b(lo)q(cations)g(corresp)q(ond)f(to)g(in)o (tegrations)h(in)g(the)f(KKR-)224 759 y(CP)l(A)10 b(algorithm.)19 b(Ev)m(aluating)11 b(in)o(tegrals)f(t)o(ypically)i(in)o(v)o(olv)o(es)f(the)f (indep)q(enden)o(t)i(ev)m(al-)224 815 y(uation)h(of)g(a)f(function)i(at)e (di\013eren)o(t)h(lo)q(cations)h(and)f(the)g(merging)g(of)f(these)h(data)g (in)o(to)224 872 y(a)20 b(\014nal)h(v)m(alue.)35 b(The)21 b(in)o(tegration)f (o)o(v)o(er)f(energy)h(w)o(as)f(parallelized.)38 b(The)20 b(parallel)224 928 y(implemen)o(tation)d(is)e(based)h(on)f(a)f(master/sla)o(v)o(e)g (paradigm)h(to)g(reduce)h(memory)e(re-)224 985 y(quiremen)o(ts)j(and)g(sync)o (hronization)h(o)o(v)o(erhead.)24 b(In)17 b(the)g(implemen)o(tation)h(one)f (pro-)224 1041 y(cessor)22 b(is)h(resp)q(onsible)i(for)c(reading)i(the)g (main)g(input)g(\014le,)i(whic)o(h)e(con)o(tains)f(the)224 1098 y(n)o(um)o(b)q(er)c(of)f(no)q(des)g(to)g(b)q(e)h(used)g(on)f(eac)o(h)g (m)o(ultipro)q(cessor)h(as)f(w)o(ell)h(as)f(the)g(n)o(um)o(b)q(er)224 1154 y(and)i(t)o(yp)q(e)g(of)g(w)o(orkstations)f(to)g(include,)k(the)d (problem)h(description,)h(and)e(the)g(lo-)224 1210 y(cation)f(of)f(relev)m (an)o(t)h(data)e(\014les.)28 b(This)18 b(master)e(pro)q(cessor)h(also)h (manages)f(dynamic)224 1267 y(load)f(balancing)g(of)f(the)g(tasks)g(through)f (a)h(simple)i(p)q(o)q(ol-of-tasks)e(sc)o(heme.)295 1323 y(Using)f(PVM)f(the)g (KKR)o(CP)l(A)i(co)q(de)f(is)g(able)g(to)f(ac)o(hiev)o(e)h(o)o(v)o(er)f(200)f (M\015ops)h(utiliz-)224 1380 y(ing)j(a)f(net)o(w)o(ork)f(of)g(ten)i(IBM)f (RS/6000)f(w)o(orkstations.)19 b(Giv)o(en)c(this)h(capabilit)o(y)l(,)g(the) 224 1436 y(KKR)o(CP)l(A)e(co)q(de)f(is)g(b)q(eing)g(used)g(as)f(a)h(researc)o (h)f(co)q(de)h(to)f(solv)o(e)g(imp)q(ortan)o(t)g(materials)224 1493 y(science)18 b(problems.)23 b(Since)18 b(its)e(dev)o(elopmen)o(t)h(the)g (KKR)o(CP)l(A)g(co)q(de)g(has)f(b)q(een)h(used)224 1549 y(to)g(compare)g(the) g(electronic)i(structure)e(of)g(t)o(w)o(o)f(high)j(temp)q(erature)e(sup)q (erconduc-)224 1606 y(tors,)11 b(Ba\(Bi)442 1613 y Fg(:)p Ff(3)472 1606 y Fl(Pb)528 1613 y Fg(:)p Ff(7)558 1606 y Fl(\)O)611 1613 y Ff(3)642 1606 y Fl(and)g(\(Ba)799 1613 y Fg(:)p Ff(6)828 1606 y Fl(K)863 1613 y Fg(:)p Ff(4)893 1606 y Fl(\)BiO)990 1613 y Ff(3)1011 1606 y Fl(,)g(to)g(explain)i(anomalous)e(exp)q(erimen)o(tal) 224 1662 y(results)k(from)e(a)h(high)h(strength)e(allo)o(y)l(,)i(NiAl,)g(and) g(to)e(study)h(the)h(e\013ect)f(of)f(magnetic)224 1719 y(m)o(ultila)o(y)o (ers)e(in)h(CrV)e(and)h(CrMo)f(allo)o(ys)h(for)f(their)i(p)q(ossible)g(use)f (in)h(magnetic)f(storage)224 1775 y(devices.)295 1831 y(The)g(goal)h(of)e (the)i(groundw)o(ater)e(mo)q(deling)j(group)e(is)h(to)f(dev)o(elop)h(state)f (of)g(the)g(art)224 1888 y(parallel)16 b(mo)q(dels)g(for)e(to)q(da)o(y's)f (high)j(p)q(erformance)f(parallel)h(computers,)e(whic)o(h)i(will)224 1944 y(enable)d(researc)o(hers)f(to)f(mo)q(del)i(\015o)o(w)f(with)g(higher)h (resolution)f(and)g(greater)f(accuracy)224 2001 y(than)20 b(ev)o(er)g(b)q (efore.)36 b(As)20 b(a)g(\014rst)g(step)g(researc)o(hers)g(at)g(ORNL)h(ha)o (v)o(e)f(dev)o(elop)q(ed)i(a)224 2057 y(parallel)12 b(3-D)f(\014nite)g (elemen)o(t)h(co)q(de)f(called)i(PFEM)c(that)h(mo)q(dels)i(w)o(ater)e(\015o)o (w)g(through)224 2114 y(saturated-unsaturated)k(media.)21 b(PFEM)14 b(solv)o(es)i(the)f(system)g(of)f(equations)634 2231 y Fe(F)674 2200 y(@)s(h)p 674 2220 53 2 v 679 2262 a(@)s(t)745 2231 y Fl(=)f Fd(r)c(\001)h Fl([)p Fe(K)915 2238 y Fg(s)933 2231 y Fe(K)972 2238 y Fg(r)990 2231 y Fl(\()p Fd(r)p Fe(h)g Fl(+)h Fd(r)p Fe(z)r Fl(\)])e(+)i Fe(q)r(;)224 2340 y Fl(where)17 b Fe(h)g Fl(is)h(the)f(pressure)g(head,)g Fe(t)g Fl(is)h(time,)f Fe(K)1068 2347 y Fg(s)1103 2340 y Fl(is)g(the)g(saturated)f(h)o(ydraulic)i (con-)224 2396 y(ductivit)o(y)i(tensor,)e Fe(K)613 2403 y Fg(r)651 2396 y Fl(is)h(the)g(relativ)o(e)g(h)o(ydraulic)h(conductivit)o(y)g(or)e (relativ)o(e)h(p)q(er-)224 2452 y(meabilit)o(y)l(,)g Fe(z)h Fl(is)e(the)g(p)q(oten)o(tial)g(head,)g Fe(q)i Fl(is)e(the)g(source/sink)g (and)g Fe(F)24 b Fl(is)18 b(the)g(w)o(ater)p eop %%Page: 15 15 bop 224 307 a Fl(capacit)o(y)22 b(\()p Fe(F)30 b Fl(=)24 b Fe(d\022)q(=dh)p Fl(,)f(with)f Fe(\022)h Fl(the)f(moisture)g(con)o(ten)o(t\)) f(after)g(neglecting)i(the)224 364 y(compressibilit)o(y)17 b(of)e(the)g(w)o(ater)g(and)g(of)g(the)g(media.)295 420 y(P)o(arallelization) 23 b(w)o(as)e(accomplished)j(b)o(y)e(partitioning)g(the)g(ph)o(ysical)h (domain)224 477 y(and)14 b(statically)h(assigning)g(sub)q(domains)g(to)f (tasks.)19 b(The)14 b(presen)o(t)g(v)o(ersion)h(uses)f(only)224 533 y(static)d(load-balancing)h(and)f(relies)h(on)e(the)h(user)g(to)f (de\014ne)h(the)g(partitioning.)19 b(In)11 b(eac)o(h)224 589 y(step)19 b(of)g(the)g(solution)g(the)g(b)q(oundary)h(region)f(of)g(eac)o(h)g (sub)q(domain)h(is)f(exc)o(hanged)224 646 y(with)d(its)f(neigh)o(b)q(oring)i (regions.)295 702 y(Originally)h(dev)o(elop)q(ed)g(on)e(an)g(In)o(tel)g (iPSC/860)g(m)o(ultipro)q(cessor,)g(a)g(PVM)g(v)o(er-)224 759 y(sion)d(of)e(PFEM)g(w)o(as)g(straigh)o(tforw)o(ard)f(to)i(create)f (requiring)j(an)d(undergraduate)i(stu-)224 815 y(den)o(t)k(less)g(than)g(3)f (w)o(eeks)h(to)f(complete.)25 b(Presen)o(tly)l(,)17 b(the)g(PVM)f(v)o(ersion) h(of)f(PFEM)224 872 y(has)h(b)q(een)g(deliv)o(ered)i(to)c(sev)o(eral)i(mem)o (b)q(ers)g(of)f(the)g(groundw)o(ater)g(mo)q(deling)i(group)224 928 y(for)g(v)m(alidation)i(testing)e(using)i(net)o(w)o(orks)d(of)h(w)o (orkstations)f(while)j(they)e(a)o(w)o(ait)f(the)224 985 y(a)o(v)m(ailabilit)o (y)g(of)e(parallel)i(sup)q(ercomputers.)224 1128 y Fk(4)69 b(Curren)n(t)23 b(Status)g(and)h(Av)l(ailabilit)n(y)224 1229 y Fl(PVM)19 b(w)o(as)g(publicly)j(released)f(in)f(Marc)o(h)f(1991)f(and)i (has)g(gone)f(through)g(a)g(n)o(um-)224 1286 y(b)q(er)f(of)e(up)q(dates.)26 b(The)17 b(presen)o(t)g(v)o(ersion)h(of)e(the)h(soft)o(w)o(are,)f(V)l(ersion) h(3.0,)g(has)f(b)q(een)224 1342 y(tested)d(with)h(v)m(arious)f(com)o (binations)h(of)f(the)g(follo)o(wing)h(mac)o(hines:)19 b(Sun)14 b(3,)f(SP)l(AR)o(C-)224 1399 y(station,)19 b(Micro)o(v)m(ax,)g(DECstation,)f (IBM)h(RS/6000,)g(HP-9000,)f(Silicon)j(Graphics)224 1455 y(IRIS,)g(NeXT,)f (Sequen)o(t)h(Symmetry)l(,)g(Allian)o(t)h(FX,)d(IBM)h(3090,)g(In)o(tel)h (iPSC/860,)224 1512 y(Thinking)13 b(Mac)o(hines)g(CM-2,)e(KSR-1,)i(Con)o(v)o (ex,)e(and)h(CRA)l(Y)h(Y-MP)l(.)e(Figure)h(3)f(giv)o(es)224 1568 y(a)k(complete)h(list)g(of)f(mac)o(hines)h(PVM)f(has)g(b)q(een)h(p)q (orted)f(to.)295 1625 y(V)l(ersion)22 b(3.0)f(has)h(a)f(n)o(um)o(b)q(er)h(of) g(impro)o(v)o(emen)o(ts)f(o)o(v)o(er)g(the)h(previous)g(v)o(ersion)224 1681 y(\(2.4\).)c(A)e(list)g(of)e(new)i(features)f(are)g(itemize)h(b)q(elo)o (w.)292 1787 y Fd(\017)23 b Fl(Runs)16 b(on)f(Multipro)q(cessors)h(-)f(P)o (aragon,)f(CM-5,)g(etc.)20 b(using)c(e\016cien)o(t)g(v)o(endor)338 1844 y(sp)q(eci\014c)h(calls)f(underneath)292 1938 y Fd(\017)23 b Fl(Dynamic)15 b(Pro)q(cess)g(Groups)g(-)h(user)f(de\014ned)h(grouping)292 2031 y Fd(\017)23 b Fl(Dynamic)15 b(Con\014guration)g(-)h(able)g(to)e(add)i (and)f(delete)h(hosts)292 2125 y Fd(\017)23 b Fl(Multiple)17 b(Message)d(Bu\013ers)h(-)h(for)e(in)o(terface)i(and)f(library)292 2219 y Fd(\017)23 b Fl(Impro)o(v)o(ed)g(Routines)h(-)f(receiv)o(e)h(b)o(y)f (source)g(or)g(t)o(yp)q(e)g(automatic)g(m)o(ultiple)338 2275 y(spa)o(wns)12 b(with)i(debug)g(and)f(trace)f(options)i(pac)o(k)f(and)g (unpac)o(k)g(messages)g(using)338 2332 y(a)i(stride)292 2426 y Fd(\017)23 b Fl(Signal)16 b(handling)h(-)e(PVM)g(pro)q(cesses)h(can)f(pass) g(and)g(catc)o(h)p eop %%Page: 16 16 bop 292 307 a Fd(\017)23 b Fl(New)17 b(naming)i(con)o(v)o(en)o(tion)e(for)g (routines,)h(\(bac)o(kw)o(ards)f(compatabilit)o(y)h(with)338 364 y(PVM2.4)c(is)h(supplied\).)295 459 y(PVM)22 b(is)h(a)o(v)m(ailable)h (through)f Fj(netlib)p Fl(.)41 b(T)l(o)22 b(obtain)h(a)f(description)i(of)e (PVM's)224 516 y(features,)12 b(suc)o(h)h(as)f(a)g(cop)o(y)g(of)g(the)g(PVM)g (User's)g(Guide)h(or)f(source)h(co)q(de,)g(one)f(simply)224 572 y(sends)i(e-mail)g(to)e Fh(netlib@ornl.gov)f Fl(with)j(the)f(message)g Fh(send)23 b(index)g(from)g(pvm)p Fl(.)224 714 y Fk(5)69 b(F)-6 b(uture)24 b(Directions)224 815 y Fl(The)14 b(Heterogeneous)g(Net)o(w)o(ork)e (Pro)s(ject)h(is)h(curren)o(tly)h(building)h(a)e(second)g(pac)o(k)m(age,)224 872 y(called)g(HeNCE)e(\(for)f(Heterogeneous)h(Net)o(w)o(ork)f(Computing)h (En)o(vironmen)o(t\))g([1],)g(on)224 928 y(top)j(of)g(PVM.)295 985 y(HeNCE)20 b(simpli\014es)j(the)e(task)e(of)h(writing,)i(compiling,)h (running,)g(debugging,)224 1041 y(and)e(analyzing)g(programs)f(on)g(a)g (heterogeneous)h(net)o(w)o(ork.)35 b(The)20 b(goal)h(is)g(\(1\))e(to)224 1098 y(mak)o(e)c(net)o(w)o(ork)g(computing)h(accessible)i(to)d(scien)o(tists) i(and)f(engineers)h(without)e(the)224 1154 y(need)h(for)e(extensiv)o(e)i (training)f(in)h(parallel)h(computing)e(and)g(\(2\))f(to)g(enable)i(them)f (to)224 1210 y(use)h(resources)f(b)q(est)g(suited)h(for)f(a)g(particular)h (phase)f(of)g(the)g(computation.)295 1267 y(In)i(HeNCE,)f(the)h(programmer)e (is)i(resp)q(onsible)i(for)d(explicitly)j(sp)q(ecifying)g(par-)224 1323 y(allelism)d(b)o(y)e(dra)o(wing)f(graphs)h(whic)o(h)g(express)g(the)g (dep)q(endencies)j(and)d(con)o(trol)f(\015o)o(w)224 1380 y(of)18 b(a)h(program.)29 b(Figure)19 b(4)g(pro)o(vides)g(an)g(example.)31 b(HeNCE)19 b(pro)o(vides)g(a)g(class)g(of)224 1436 y(graphs)11 b(as)g(a)g(usable)h(y)o(et)f(\015exible)i(w)o(a)o(y)d(for)h(the)g(programmer) f(to)g(sp)q(ecify)j(parallelism.)224 1493 y(The)i(user)f(directly)i(inputs)f (the)f(graph)g(using)h(a)f(graph)g(editor)g(whic)o(h)h(is)g(part)f(of)f(the) 224 1549 y(HeNCE)g(en)o(vironmen)o(t.)19 b(Eac)o(h)13 b(no)q(de)g(in)g(a)g (HeNCE)f(graph)h(represen)o(ts)f(a)h(subroutine)224 1606 y(written)j(in)h (either)g(F)l(ortran)e(or)g(C.)h(Arcs)g(in)h(the)f(HeNCE)g(graph)g(represen)o (t)g(dep)q(en-)224 1662 y(dencies)j(and)f(con)o(trol)f(\015o)o(w.)27 b(An)18 b(arc)f(from)g(one)h(no)q(de)g(to)f(another)g(represen)o(ts)g(the)224 1719 y(fact)g(that)f(the)i(tail)f(no)q(de)h(of)f(the)g(arc)g(m)o(ust)g(run)g (b)q(efore)g(the)h(no)q(de)g(at)e(the)h(head)h(of)224 1775 y(the)c(arc.)20 b(During)14 b(the)g(execution)i(of)d(a)h(HeNCE)h(graph,)e (pro)q(cedures)i(are)f(automati-)224 1831 y(cally)h(executed)f(when)f(their)h (predecessors,)g(as)f(de\014ned)h(b)o(y)g(dep)q(endency)h(arcs,)e(ha)o(v)o(e) 224 1888 y(completed.)21 b(F)l(unctions)15 b(are)f(mapp)q(ed)h(to)f(mac)o (hines)h(based)g(on)f(a)h(user)f(de\014ned)i(cost)224 1944 y(matrix.)295 2001 y(The)h(fo)q(cus)g(of)g(this)g(w)o(ork)f(is)h(to)g(pro)o (vide)g(a)g(paradigm)f(and)i(graphical)f(supp)q(ort)224 2057 y(to)q(ol)f(for)e(programming)h(a)g(heterogeneous)h(net)o(w)o(ork)e(of)h (computers)g(as)h(a)f(single)h(re-)224 2114 y(source.)24 b(HeNCE)17 b(is)g(the)g(graphical)h(based)f(parallel)h(programming)e(paradigm.)24 b(In)224 2170 y(HeNCE)14 b(the)f(programmer)g(explicitly)j(sp)q(eci\014es)f (parallelism)h(of)d(a)g(computation)h(b)o(y)224 2227 y(dra)o(wing)k(graphs.) 30 b(The)18 b(no)q(des)h(in)h(a)e(graph)g(represen)o(t)g(user)h(de\014ned)h (subroutines)224 2283 y(and)c(the)g(edges)g(indicate)i(parallelism)f(and)g (con)o(trol)e(\015o)o(w.)21 b(The)c(HeNCE)e(program-)224 2340 y(ming)22 b(en)o(vironmen)o(t)h(consists)f(of)f(a)h(set)f(of)h(graphical)h (mo)q(des)f(whic)o(h)g(aid)h(in)f(the)224 2396 y(creation,)g(compilation,)h (execution,)f(and)f(analysis)g(of)f(HeNCE)h(programs.)34 b(The)224 2452 y(main)20 b(comp)q(onen)o(ts)f(consist)h(of)e(a)h(graph)g(editor)h(for)e (writing)i(HeNCE)f(programs,)p eop %%Page: 17 17 bop 224 307 a Fl(a)18 b(build)i(to)q(ol)d(for)h(creating)g(executables,)h(a)f (con\014gure)g(to)q(ol)g(for)f(sp)q(ecifying)j(whic)o(h)224 364 y(mac)o(hines)e(to)f(use,)h(an)f(executioner)i(for)d(in)o(v)o(oking)i (executables,)h(and)f(a)f(trace)g(to)q(ol)224 420 y(for)c(analyzing)h(and)g (debugging)g(a)f(program)f(run.)20 b(These)13 b(steps)g(are)g(in)o(tegrated)h (in)o(to)224 477 y(a)h(windo)o(w)g(based)h(programming)f(en)o(vironmen)o(t)g (as)g(sho)o(wn)g(in)h(Figure)f(5.)295 533 y(An)i(initial)i(v)o(ersion)f(of)f (HeNCE)g(has)g(recen)o(tly)h(b)q(een)g(made)f(a)o(v)m(ailable)i(through)224 589 y Fj(netlib)p Fl(.)33 b(T)l(o)20 b(obtain)g(a)g(description)h(of)f(its)g (features,)g(one)h(should)f(send)h(e-mail)g(to)224 646 y Fh(netlib@ornl.gov) 13 b Fl(with)j(the)f(message)g Fh(send)23 b(index)g(from)h(hence)p Fl(.)295 702 y(Both)13 b(PVM)g(and)h(HeNCE)g(o\013er)e(researc)o(hers)i(a)f (p)q(o)o(w)o(erful)h(means)f(for)g(attac)o(king)224 759 y(scien)o(ti\014c)19 b(computational)e(problems)h(through)e(heterogeneous)i(net)o(w)o(ork)d (comput-)224 815 y(ing.)36 b(Con)o(tin)o(ued)21 b(researc)o(h)f(and)g(dev)o (elopmen)o(t)h(will)h(ensure)f(that)f(this)h(new)f(area)224 872 y(meets)15 b(the)g(needs)h(of)f(scien)o(ti\014c)i(computing)f(in)g(the)f (1990s)f(and)i(b)q(ey)o(ond.)224 1015 y Fk(References)224 1116 y Fl([1])22 b(A.)f(Beguelin,)k(J.)d(Dongarra,)g(G.)f(Geist,)i(R.)f(Manc)o (hek,)h(and)f(V.)f(Sunderam,)295 1173 y(\\Solving)f(Computational)e(Grand)h (Challenges)h(Using)f(a)g(Net)o(w)o(ork)e(of)h(Sup)q(er-)295 1229 y(computers.")f(Pro)q(ceedings)d(of)f(the)h(Fifth)g(SIAM)g(Conference)g (on)f(P)o(arallel)i(Pro-)295 1286 y(cessing,)21 b(Dann)o(y)14 b(Sorensen,)i(ed.,)f(SIAM,)g(Philadelphia,)j(1991.)224 1380 y([2])k(A.)17 b(Beguelin,)i(J.)e(J.)g(Dongarra,)f(G.)h(A.)f(Geist,)i(R.)f (Manc)o(hek,)g(and)h(V.)f(S.)g(Sun-)295 1436 y(deram.)32 b Fj(A)19 b(Users')g(Guide)i(to)f(PVM)g(Par)n(al)r(lel)f(Virtual)h(Machine.)32 b Fl(T)l(ec)o(hnical)295 1493 y(Rep)q(ort)15 b(ORNL/TM-11826,)g(Oak)g(Ridge)h (National)g(Lab)q(oratory)l(,)e(July)i(1991.)224 1586 y([3])22 b(J.)15 b(Bo)o(yle,)h(et.)e(al.,)21 b Fj(Portable)16 b(Pr)n(o)n(gr)n(ams)g (for)g(Par)n(al)r(lel)g(Pr)n(o)n(c)n(essors.)j Fl(Holt,)c(Rine-)295 1643 y(hart,)f(and)h(Winston,)g(1987.)224 1737 y([4])22 b(D.)16 b(Gelern)o(ter,)25 b(\\Domesticating)17 b(P)o(arallelism",)26 b Fj(IEEE)17 b(Computer)p Fl(,)h(19\(8\):12-)295 1793 y(16,)c(August)h(1986.) 224 1887 y([5])22 b(V.)h(Herrarte)g(and)g(E.)g(Lusk,)47 b Fj(Studying)23 b(Par)n(al)r(lel)g(Pr)n(o)n(gr)n(am)h(Behavior)g(with)295 1943 y Fh(Upshot)p Fl(,)31 b(Argonne)18 b(National)i(Lab)q(oratory)l(,)e(T)l(ec)o (hnical)j(Rep)q(ort)e(ANL{91/15,)295 2000 y(1991.)224 2094 y([6])j(R.)15 b(Hemp)q(el)21 b Fj(The)16 b(ANL/GMD)g(MA)n(cr)n(os)f (\(Parmacs\))g(in)h(F)m(ortr)n(an)f(for)i(Portable)295 2150 y(Par)n(al)r(lel)e(Pr)n(o)n(gr)n(amming)h(Using)f(Message)g(Passing)p Fl(,)k(GMD)14 b(T)l(ec)o(hnical)k(Rep)q(ort,)295 2206 y(No)o(v)o(em)o(b)q(er) d(1991.)224 2300 y([7])22 b(D.)f(D.)f(Johnson,)k(D.)c(M.)h(Nic)o(holson,)j (F.)d(J.)g(Pinski,)j(B.)d(L.)h(Gy\177)-23 b(or\013y)l(,)22 b(G.)e(M.)295 2357 y(Sto)q(c)o(ks,)15 b(T)l(otal)d(energy)g(and)h(pressure)f (calculations)i(for)e(random)f(substitutional)295 2413 y(allo)o(ys,)20 b(Ph)o(ys.)15 b(Rev.)g(B,)g(V)l(ol.)g(41,)g(9701)f(\(1990\).)p eop %%Page: 18 18 bop 224 307 a Fl([8])22 b(A.)c(Kola)o(w)o(a,)h(\\The)g(Express)f(Programming) g(En)o(vironmen)o(t",)31 b(\\The)19 b(Express)295 364 y(Programming)24 b(En)o(vironmen)o(t",)52 b Fj(Workshop)27 b(on)e(Heter)n(o)n(gene)n(ous)f (Network-)295 420 y(Base)n(d)16 b(Concurr)n(ent)f(Computing)p Fl(,)g(T)l(allahassee,)h(Octob)q(er)f(1991.)224 514 y([9])22 b(L.)h(P)o(atterson,)h(et.)f(al.,)47 b(\\Construction)23 b(of)h(a)f(F)l (ault-T)l(oleran)o(t)h(Distributed)295 570 y(T)l(uple-Space",)42 b Fj(1993)22 b(Symp)n(osium)g(on)g(Applie)n(d)g(Computing)p Fl(,)g(Indianap)q(olis,)295 627 y(F)l(ebruary)15 b(1993.)224 721 y([10])22 b(G.)13 b(M.)h(Sto)q(c)o(ks,)g(W.)g(M.)f(T)l(emmerman,)i(B.)f (L.)g(Gy\177)-23 b(or\013y)18 b(Complete)d(solution)g(of)295 777 y(the)k(Korringa-Kohn-Rostok)o(er)g(coheren)o(t)g(p)q(oten)o(tial)h (appro)o(ximation:)28 b(Cu-Ni)295 834 y(allo)o(ys,)20 b(Ph)o(ys.)15 b(Rev.)g(Letter,)g(V)l(ol.)g(41,)f(339)h(\(1978\).)224 927 y([11])22 b(Ulf)16 b(v)o(on)f(Barth)22 b(Densit)o(y)15 b(F)l(unctional)i (Theory)f(for)f(Solids,)23 b Fj(Ele)n(ctr)n(onic)15 b(struc-)295 984 y(tur)n(e)20 b(of)h(c)n(omplex)f(systems)p Fl(,)f(ed.)h(Phariseau)f(and)h (T)l(emmerman,)34 b(NA)l(TO)20 b(ASI)295 1040 y(Series,)c(Plen)o(um)g(Press,) e(\(1984\).)p eop %%Page: 19 19 bop 224 307 a Fk(SIDEBAR)23 b(ON)f(Message)h(P)n(assing)g(In)n(terface)g(F)-6 b(orum)224 409 y Fl(During)13 b(the)g(past)g(y)o(ear)f(there)h(has)g(b)q(een) h(quite)f(a)g(bit)g(of)g(activit)o(y)g(in)h(the)f(comm)o(unit)o(y)224 465 y(to)d(dev)o(elop)i(a)e(standard)g(in)o(terface)h(for)f(message)h (passing)g([1)o(].)18 b(The)11 b(main)g(adv)m(an)o(tages)224 522 y(of)17 b(establishing)i(a)e(message)g(passing)g(standard)g(are)g(p)q (ortabilit)o(y)h(and)g(ease-of-use.)224 578 y(In)h(a)f(distributed)i(memory)e (comm)o(unication)h(en)o(vironmen)o(t)f(in)h(whic)o(h)g(the)g(higher)224 634 y(lev)o(el)13 b(routines)g(and/or)e(abstractions)h(are)g(built)h(up)q(on) g(lo)o(w)o(er)e(lev)o(el)j(message)d(passing)224 691 y(routines)16 b(the)f(b)q(ene\014ts)i(of)e(standardization)h(are)f(particularly)h(apparen)o (t.)21 b(F)l(urther-)224 747 y(more,)15 b(the)g(de\014nition)i(of)e(a)g (message)g(passing)g(standard)g(pro)o(vides)h(v)o(endors)f(with)h(a)224 804 y(clearly)j(de\014ned)h(base)e(set)g(of)f(routines)i(that)e(they)h(can)h (implemen)o(t)g(e\016cien)o(tly)l(,)h(or)224 860 y(in)e(some)e(cases)h(pro)o (vide)g(hardw)o(are)g(supp)q(ort)g(for,)f(thereb)o(y)h(enhancing)h (scalabilit)o(y)l(.)224 917 y(The)e(standards)f(activit)o(y)h(go)q(es)g(b)o (y)f(the)h(name)g(Message)f(P)o(assing)g(In)o(terface)h(F)l(orum)224 973 y(\(MPI)d(F)l(orum\))f(and)h(is)g(comp)q(osed)h(of)e(the)h(ma)s(jor)f (hardw)o(are)g(and)h(soft)o(w)o(are)e(v)o(endors,)224 1030 y(as)k(w)o(ell)h(as)f(researc)o(hers)g(from)f(univ)o(ersities)j(and)f(lab)q (oratories)f(around)g(the)g(w)o(orld.)295 1086 y(The)k(goal)g(of)f(the)h (Message)f(P)o(assing)h(In)o(terface)g(simply)h(stated)f(is)g(to)g(dev)o (elop)224 1143 y(a)j(standard)f(for)g(writing)h(message-passing)g(programs.) 38 b(As)21 b(suc)o(h)h(the)g(in)o(terface)224 1199 y(should)17 b(establishing)g(a)e(practical,)h(p)q(ortable,)g(e\016cien)o(t,)g(and)f (\015exible)j(standard)d(for)224 1255 y(message)g(passing.)295 1312 y(A)g(complete)h(list)g(of)f(goals)g(follo)o(w.)292 1418 y Fd(\017)23 b Fl(Design)13 b(an)f(application)i(programming)e(in)o(terface)h (\(not)f(necessarily)i(for)e(com-)338 1475 y(pilers)k(or)f(a)g(system)g (implemen)o(tation)h(library\).)292 1568 y Fd(\017)23 b Fl(Allo)o(w)g (e\016cien)o(t)g(comm)o(unication:)35 b(Av)o(oid)23 b(memory)f(to)g(memory)g (cop)o(ying)338 1625 y(and)17 b(allo)o(w)h(o)o(v)o(erlap)f(of)g(computation)g (and)h(comm)o(unication)g(and)g(o\017oad)e(to)338 1681 y(comm)o(unication)g (copro)q(cessor,)e(where)i(a)o(v)m(ailable.)292 1775 y Fd(\017)23 b Fl(Allo)o(w)16 b(\(but)g(no)g(mandate\))g(extensions)h(for)e(use)i(in)g (heterogeneous)f(en)o(viron-)338 1832 y(men)o(t.)292 1925 y Fd(\017)23 b Fl(Allo)o(w)d(con)o(v)o(enien)o(t)g(C,)f(F)l(ortran)g(77,)g(F)l (ortran)g(90,)h(and)g(C++)g(bindings)h(for)338 1982 y(in)o(terface.)292 2076 y Fd(\017)i Fl(Pro)o(vide)16 b(a)g(reliable)j(comm)o(unication)e(in)o (terface:)23 b(User)16 b(need)h(not)f(cop)q(e)h(with)338 2132 y(comm)o(unication)12 b(failures.)19 b(Suc)o(h)12 b(failures)g(are)f(dealt)h (b)o(y)f(the)g(underlying)j(com-)338 2189 y(m)o(unication)i(subsystem.)292 2282 y Fd(\017)23 b Fl(F)l(o)q(cus)15 b(on)g(a)g(prop)q(osal)h(that)e(can)h (b)q(e)h(agreed)f(up)q(on)h(in)g(6)f(mon)o(ths.)292 2376 y Fd(\017)23 b Fl(De\014ne)13 b(an)f(in)o(terface)h(that)f(is)h(not)f(to)q(o)g (di\013eren)o(t)h(from)e(curren)o(t)i(practice,)g(suc)o(h)338 2433 y(as)i(PVM,)f(Express,)h(P)o(armacs,)f(etc.)p eop %%Page: 20 20 bop 292 307 a Fd(\017)23 b Fl(De\014ne)13 b(an)f(in)o(terface)h(that)e(can)i (b)q(e)g(quic)o(kly)h(implemen)o(ted)g(on)e(man)o(y)g(v)o(endor's)338 364 y(platforms,)17 b(with)g(no)h(signi\014can)o(t)g(c)o(hanges)f(in)h(the)g (underlying)h(comm)o(unica-)338 420 y(tion)c(and)h(system)e(soft)o(w)o(are.) 292 514 y Fd(\017)23 b Fl(The)17 b(in)o(terface)h(should)g(not)f(con)o(tain)g (more)g(functions)h(than)f(are)g(really)h(nec-)338 570 y(essary)l(.)295 677 y(This)13 b(standard)e(is)i(in)o(tended)h(for)d(use)i(b)o(y)f(all)h (those)f(who)g(w)o(an)o(t)f(to)h(write)g(p)q(ortable)224 733 y(message-passing)j(programs)e(in)i(F)l(ortran)e(77)h(and/or)g(C.)g(This)h (includes)h(individual)224 790 y(application)j(programmers,)d(dev)o(elop)q (ers)i(of)e(soft)o(w)o(are)f(designed)k(to)d(run)h(on)g(paral-)224 846 y(lel)h(mac)o(hines,)e(and)h(creators)e(of)h(higher-lev)o(el)i (programming)e(languages,)g(en)o(viron-)224 902 y(men)o(ts,)f(and)h(to)q (ols.)21 b(In)16 b(order)f(to)g(b)q(e)h(attractiv)o(e)f(to)g(this)h(wide)g (audience,)h(the)f(stan-)224 959 y(dard)j(m)o(ust)f(pro)o(vide)i(a)e(simple,) j(easy-to-use)e(in)o(terface)g(for)f(the)h(basic)h(user)f(while)224 1015 y(not)h(seman)o(tically)i(precluding)h(the)d(high-p)q(erformance)i (message-passing)e(op)q(era-)224 1072 y(tions)c(a)o(v)m(ailable)g(on)g(adv)m (anced)g(mac)o(hines.)295 1128 y(The)f(standard)g(includes)i(\(this)f(is)f (temp)q(orarily)h(as)f(inclusiv)o(e)j(as)c(p)q(ossible\):)292 1235 y Fd(\017)23 b Fl(P)o(oin)o(t-to-p)q(oin)o(t)15 b(comm)o(unication)h(in) g(a)e(v)m(ariet)o(y)i(of)e(mo)q(des,)h(including)j(mo)q(des)338 1291 y(that)c(allo)o(w)i(fast)e(comm)o(unication)i(and)f(heterogeneous)h (comm)o(unication)292 1385 y Fd(\017)23 b Fl(Collectiv)o(e)16 b(op)q(erations)292 1479 y Fd(\017)23 b Fl(Pro)q(cess)15 b(groups)292 1572 y Fd(\017)23 b Fl(Comm)o(unication)15 b(con)o(texts)292 1666 y Fd(\017)23 b Fl(A)15 b(simple)i(w)o(a)o(y)d(to)g(create)h(pro)q (cesses)h(for)f(the)g(SPMD)g(mo)q(del)292 1760 y Fd(\017)23 b Fl(Bindings)17 b(for)d(b)q(oth)i(F)l(ortran)e(and)h(C)292 1854 y Fd(\017)23 b Fl(A)15 b(mo)q(del)h(implemen)o(tation)292 1948 y Fd(\017)23 b Fl(A)15 b(formal)g(sp)q(eci\014cation.)295 2054 y(One)k(of)g(the)g(ob)s(jectiv)o(es)f(of)h(the)g(activit)o(y)g(is)g(to)f (ha)o(v)o(e)g(a)h(de\014nition)i(completed)224 2110 y(b)o(y)d(the)g(Summer)g (1993.)27 b(If)19 b(y)o(ou)e(are)h(in)o(terested)g(in)h(\014nding)g(out)f (more)g(ab)q(out)f(the)224 2167 y(MPI)e(e\013ort)g(con)o(tact)f(Da)o(vid)h(W) l(alk)o(er)g(\(w)o(alk)o(er@msr.epm.ornl.go)o(v\))e(at)i(Oak)g(Ridge)224 2223 y(National)h(Lab)q(oratory)l(.)p eop %%Page: 21 21 bop 224 307 a Fk(References)224 409 y Fl([1])22 b(Jac)o(k)h(J.)g(Dongarra,)g (Rolf)h(Hemp)q(el,)i(An)o(thon)o(y)d(J.)g(G.)f(Hey)l(,)j(and)e(Da)o(vid)g(W.) 295 465 y(W)l(alk)o(er.)33 b Fj(A)20 b(Pr)n(op)n(osal)g(for)h(a)f(User-L)n (evel,)g(Message-Passing)e(Interfac)n(e)h(in)h(a)295 522 y(Distribute)n(d)14 b(Memory)g(Envir)n(onment)g Fl(T)l(ec)o(hnical)g(Rep)q(ort)f(ORNL/TM-??,)h (Oak)295 578 y(Ridge)i(National)g(Lab)q(oratory)l(,)e(1992.)p eop %%Page: 22 22 bop 679 559 a Fl(Figure)15 b(1:)20 b(Linda)c(En)o(vironmen)o(t)224 667 y(Linda)h(Address)e(Space)p 222 675 1664 2 v 222 1401 2 727 v 1885 1401 V 222 1403 1664 2 v 307 743 a(Notes:)307 787 y(Basic)h(unit)g(of)f(storage)f(is)h(tuple.)307 840 y(T)l(uples)i(are)e(asso) q(ciativ)o(ely)h(addressed.)307 893 y(T)l(uples)h(are)e(p)q(ersisten)o(t.)307 945 y(Duplicates)i(p)q(ermitted.)535 1092 y Fc(')p 535 1215 2 42 v 207 x(&)1157 1092 y($)p 1157 1215 V 207 x(\045)p 619 1299 457 2 v 619 1092 V 724 1141 a Fl(\\a)e(string")771 1192 y(15.01)800 1234 y(17)660 1278 y(\\another)g(string")p 1158 1195 416 2 v 1261 1776 2 582 v 1262 1776 a Fb(?)p 1572 1983 2 789 v 1573 1983 a(?)1240 801 y Fc(')p 1240 925 2 42 v 208 x(&)1863 801 y($)p 1863 925 V 208 x(\045)p 1324 1009 457 2 v 1324 801 V 1469 883 a Fl(\\ro)q(ots")1531 924 y(2)1531 966 y(4)224 1498 y(Application)i(Address)f(Space)p 222 1505 1664 2 v 222 2231 2 727 v 1885 2231 V 222 2233 1664 2 v 307 1610 a(out\(\\a)e(string",15.01,17,\\)o(another)e(string"\))p 846 1568 2 266 v 847 1344 a Fb(6)847 1817 y Fl(rd\(?strv)m(al1,?fv)m(al,17,?strv) m(al2\))880 1859 y Fa(Nondestructiv)o(e)k(Input)1054 2025 y Fl(in\(\\a)g(string",?fv)m(al,?iv)m(al,?strv)m(al2\))1117 2066 y Fa(Destructiv)o(e)f(Input)1241 2170 y Fl(ev)m(al\(\\ro)q (ots",sqrt\(4\),sqrt\()o(16\))o(\))1270 2212 y Fa(P)o(arallel)h(computation)p 1780 2129 2 1163 v 1781 1008 a Fb(6)307 2168 y Fl(Notes:)307 2212 y(Input)g(w)o(aits)f(if)h(tuple)g(una)o(v)m(ailable.)p eop %%Trailer end userdict /end-hook known{end-hook}if %%EOF .