Here is the version of the Dynamic Process Management chapter that will be
discussed at the March MPI Forum meeting. It contains the results of the
meeting in Vienna plus a completely new "client-server" section.
Rusty & Bill S.
%!PS-Adobe-2.0
%%Creator: dvips 5.528 Copyright 1986, 1994 Radical Eye Software
%%Title: temp.dvi
%%CreationDate: Mon Mar 4 00:29:13 1996
%%Pages: 31
%%PageOrder: Ascend
%%BoundingBox: 0 0 612 792
%%EndComments
%DVIPSCommandLine: dvips -o temp.ps temp
%DVIPSParameters: dpi=300, comments removed
%DVIPSSource: TeX output 1996.03.04:0028
%%BeginProcSet: tex.pro
/TeXDict 250 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N
/X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72
mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1}
ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale
isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div
hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul
TR matrix currentmatrix dup dup 4 get round 4 exch put dup dup 5 get
round 5 exch put setmatrix}N /@landscape{/isls true N}B /@manualfeed{
statusdict /manualfeed true put}B /@copies{/#copies X}B /FMat[1 0 0 -1 0
0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{/nn 8 dict N nn
begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N string /base X
array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N end dup{/foo
setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{/sf 1 N /fntrx
FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0]N df-tail}B /E{
pop nn dup definefont setfont}B /ch-width{ch-data dup length 5 sub get}
B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{128 ch-data dup
length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub get 127 sub}B
/ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data dup type
/stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N /rc 0 N /gp
0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup /base get 2
index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx 0 ch-xoff
ch-yoff ch-height sub ch-xoff ch-width add ch-yoff setcachedevice
ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff .1 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 /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul add
.99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore showpage
userdict /eop-hook known{eop-hook}if}N /@start{userdict /start-hook
known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X
/IE 256 array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for
65781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N /RMat[1 0 0 -1 0
0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V
{}B /RV statusdict begin /product where{pop product dup length 7 ge{0 7
getinterval dup(Display)eq exch 0 4 getinterval(NeXT)eq or}{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 /QV{gsave
transform round exch round exch itransform moveto rulex 0 rlineto 0
ruley neg rlineto rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta
0 N /tail{dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}
B /c{-4 M}B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{
3 M}B /k{4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p
-1 w}B /q{p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{
3 2 roll p a}B /bos{/SS save N}B /eos{SS restore}B end
%%EndProcSet
TeXDict begin 40258431 52099146 1000 300 300
(/tmp_mnt/Net/antireo/antireo6/lusk/mpi2/report2/temp.dvi)
@start /Fa 25 118 df<001C0000003E0000003E0000002E0000006700000067000000
E7800000C7800000C3800001C3C0000183C0000181C0000381E0000381E0000700F00007
00F0000600F0000E0078000FFFF8000FFFF8001C003C001C003C0018003C0038001E0038
001E0070001F0070000F0070000F00E0000780191D7F9C1C>65 D<FFF800FFFF00F00F80
F003C0F001E0F000F0F000F0F000F0F000F0F000F0F001E0F007C0FFFF80FFFE00FFFF80
F03FC0F003E0F001F0F000F0F00078F00078F00078F00078F00078F000F0F001E0F007C0
FFFF80FFFC00151D7C9C1C>I<FFFC00FFFF00F00F80F003E0F001F0F000F0F00078F000
38F0003CF0003CF0001CF0001EF0001EF0001EF0001EF0001EF0001EF0001EF0001EF000
3CF0003CF0003CF00078F000F0F000F0F003E0F00FC0FFFF00FFFC00171D7C9C1E>68
D<FFFFC0FFFFC0F00000F00000F00000F00000F00000F00000F00000F00000F00000F000
00F00000FFFF80FFFF80F00000F00000F00000F00000F00000F00000F00000F00000F000
00F00000F00000F00000FFFFC0FFFFC0121D7C9C19>I<FFFF80FFFF80F00000F00000F0
0000F00000F00000F00000F00000F00000F00000F00000F00000FFFF00FFFF00F00000F0
0000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F0
0000111D7C9C18>I<003F8001FFF003C0F80780380F00181E00003C00003C0000780000
780000780000F00000F00000F00000F00000F00000F00000F007F8F007F8F00038780038
7800387800383C00383C00381E00380F003807803803C0F801FFF0003F80151F7D9D1C>
I<F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0041D7C9C0C>
73 D<F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F0
00F000F000F000F000F000F000F000F000F000F000FFFEFFFE0F1D7C9C16>76
D<FC0007E0FC0007E0FC0007E0EE000DE0EE000DE0EE000DE0E70019E0E70019E0E70019
E0E78039E0E38031E0E3C071E0E3C071E0E1C061E0E1C061E0E1E0E1E0E1E0E1E0E0E0C1
E0E0F1C1E0E07181E0E07181E0E07181E0E03B01E0E03B01E0E03B01E0E01E01E0E01E01
E0E01E01E0E00001E01B1D7C9C24>I<FC0070FC0070FE0070EE0070EF0070E70070E700
70E78070E38070E3C070E3C070E1E070E1E070E0E070E0F070E07070E07870E07870E03C
70E03C70E01C70E01E70E00E70E00E70E00F70E00770E007F0E003F0E003F0141D7C9C1D
>I<003F000001FFE00003FFF00007C0F8000F807C001E001E003E001F003C000F007800
07807800078078000780F00003C0F00003C0F00003C0F00003C0F00003C0F00003C0F000
03C0F00003C0F80007C078000780780007807C000F803C000F003E001F001F003E000F80
7C0007C0F80003FFF00001FFE000003F00001A1F7E9D1F>I<FFFC00FFFF00F00F80F003
C0F001E0F000F0F000F0F000F0F000F0F000F0F000F0F001E0F003E0F00FC0FFFF80FFFE
00F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F000
00F00000141D7C9C1B>I<FFF800FFFF00F00F80F003C0F001E0F000F0F000F0F000F0F0
00F0F000F0F001E0F003E0F00FC0FFFF80FFFF00FFF800F03C00F01C00F01E00F00F00F0
0F00F00780F00780F003C0F003C0F001E0F000F0F000F0F00078151D7C9C1B>82
D<03F8000FFE001C0F00380700700300600000E00000E00000E00000E00000F000007800
007F00003FE0001FFC0007FE0001FF00001F800007800003C00003C00001C00001C00001
C00001C0C00180E00380F007007C0E001FFC0007F000121F7E9D17>I<FFFFFF80FFFFFF
80001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E00
00001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E00
00001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E00
00191D7F9C1C>I<F00070F00070F00070F00070F00070F00070F00070F00070F00070F0
0070F00070F00070F00070F00070F00070F00070F00070F00070F00070F00070F00070F0
0070F000707800E07800E03C01C01E03800F078007FE0001F800141E7C9C1D>I<F80001
E07C0001C03E0003801E0007801F0007000F800E0007801E0007C01C0003E03C0001E038
0001F0700000F0F0000078E000007DC000003FC000001F8000001F0000000F0000000F00
00000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F00
00000F00001B1D809C1C>89 D<0FC03FF07FF87038401C001C001C00FC0FFC3FFC781CE0
1CE01CE01CF07C7FFC7FDC3F1C0E127E9114>97 D<07C01FE03FF078787018601CFFFCFF
FCFFFCE000E000E000700070043C1C3FFC1FF807E00E127E9112>101
D<E3F03F00EFF8FF80FFFDFFC0F81F81E0F00F00E0E00E00E0E00E00E0E00E00E0E00E00
E0E00E00E0E00E00E0E00E00E0E00E00E0E00E00E0E00E00E0E00E00E0E00E00E0E00E00
E01B127D9122>109 D<E3E0EFF0FFF8F83CF01CE01CE01CE01CE01CE01CE01CE01CE01C
E01CE01CE01CE01CE01C0E127D9115>I<078E1FEE3FFE7C3E781E700EE00EE00EE00EE0
0EE00EE00EF00E701E7C3E3FFE1FEE0F8E000E000E000E000E000E000E000E000E0F1A7E
9115>113 D<1FC03FF07FF0F030E000E000F0007F003FC01FE000F0003800388038F078
FFF07FE01FC00D127F9110>115 D<1C001C001C001C001C001C00FFE0FFE01C001C001C
001C001C001C001C001C001C001C001C001C001C201FF00FF007C00C187F970F>I<E01C
E01CE01CE01CE01CE01CE01CE01CE01CE01CE01CE01CE01CE01CE07CFFFC7FDC3F1C0E12
7D9115>I E /Fb 2 106 df<07F007F800F000C000B8008000B80080009C0080011C0100
011E0100010E0100010E0100020702000207020002038200020382000401C4000401C400
0400E4000400E4000800780008007800080038000800380018001000FE0010001D177F96
1C>78 D<0300038003000000000000000000000000001C002400460046008C000C001800
1800180031003100320032001C0009177F960C>105 D E /Fc 1
81 df<FFFFFFFFE0FFFFFFFFF07000001FF078000001F03C000000781C000000180E0000
000C0F000000040700000004038000000203C000000001E000000000E000000000700000
0000780000000038000000001C000000001E000000000F00000000070000000003800000
0003800000000300000000070000000006000000000C0000000018000000003800000000
30000000006000000000C000000001C00000000180000002030000000406000000040E00
00000C0C00000018180000007830000001F07000001FF07FFFFFFFF0FFFFFFFFE0272A7E
7F2C>80 D E /Fd 4 62 df<03000700FF00070007000700070007000700070007000700
070007000700070007000700070007007FF00C157E9412>49 D<0F8030E040708030C038
E0384038003800700070006000C00180030006000C08080810183FF07FF0FFF00D157E94
12>I<0FE030306018701C701C001C00180038006007E000300018000C000E000EE00EE0
0EC00C401830300FE00F157F9412>I<FFFFFCFFFFFC0000000000000000000000000000
00000000FFFFFCFFFFFC160A7E8C1B>61 D E /Fe 6 111 df<70F8F8F87005057C840D>
58 D<70F8FCFC74040404080810102040060E7C840D>I<000001C00000078000001E0000
0078000001E00000078000000E00000038000000F0000003C000000F0000003C000000F0
000000F00000003C0000000F00000003C0000000F0000000380000000E00000007800000
01E0000000780000001E0000000780000001C01A1A7C9723>I<00E001E001E000C00000
0000000000000000000000000E00130023804380438043808700070007000E000E001C00
1C001C20384038403840388019000E000B1F7E9E10>105 D<1E07C07C00231861860023
A032030043C0340300438038038043803803808700700700070070070007007007000700
7007000E00E00E000E00E00E000E00E00E000E00E01C101C01C01C201C01C038201C01C0
38401C01C0184038038018801801800F0024147E9328>109 D<1E07802318C023A06043
C0704380704380708700E00700E00700E00700E00E01C00E01C00E01C00E03821C03841C
07041C07081C03083803101801E017147E931B>I E /Ff 19 119
df<70F8F8F8700505788416>46 D<1FE0003FF0007FF800783C00300E00000E00000E00
03FE001FFE003E0E00700E00E00E00E00E00E00E00783E007FFFE03FE7E00F83E013127E
9116>97 D<03F80FFC1FFE3C1E780C7000E000E000E000E000E000F000700778073E0E1F
FC0FF803F010127D9116>99 D<003F00007F00003F0000070000070000070000070003C7
000FF7001FFF003C1F00780F00700700E00700E00700E00700E00700E00700E00700700F
00700F003C1F001FFFE00FE7F007C7E014197F9816>I<03E00FF81FFC3C1E780E7007E0
07FFFFFFFFFFFFE000E000700778073C0F1FFE0FFC03F010127D9116>I<001F00007F80
00FF8001E78001C30001C00001C0007FFF00FFFF00FFFF0001C00001C00001C00001C000
01C00001C00001C00001C00001C00001C00001C00001C0003FFE007FFF003FFE0011197F
9816>I<03E3C007F7E00FFFE01C1CC0380E00380E00380E00380E00380E001C1C000FF8
001FF0001BE0003800001800001FFC001FFF003FFF807803C0E000E0E000E0E000E0E000
E07001C07C07C03FFF800FFE0003F800131C7F9116>I<7E0000FE00007E00000E00000E
00000E00000E00000E3C000EFE000FFF000F87800F03800E03800E03800E03800E03800E
03800E03800E03800E03800E03800E03807FC7F0FFE7F87FC7F01519809816>I<018003
C003C0018000000000000000007FC07FC07FC001C001C001C001C001C001C001C001C001
C001C001C001C07FFFFFFF7FFF101A7D9916>I<7E0000FE00007E00000E00000E00000E
00000E00000E7FE00E7FE00E7FE00E0F000E1E000E3C000E78000EF0000FF0000FF8000F
BC000F1E000E0E000E07000E07807F87F0FFCFF07F87F01419809816>107
D<FFC000FFC000FFC00001C00001C00001C00001C00001C00001C00001C00001C00001C0
0001C00001C00001C00001C00001C00001C00001C00001C00001C00001C000FFFF80FFFF
80FFFF8011197E9816>I<F9C380FFEFC0FFFFE03C78E03C78E03870E03870E03870E038
70E03870E03870E03870E03870E03870E03870E0FE7CF8FE7CF8FE3C781512809116>I<
7E3C00FEFE007FFF000F87800F03800E03800E03800E03800E03800E03800E03800E0380
0E03800E03800E03807FC7F0FFE7F87FC7F01512809116>I<03E0000FF8001FFC003C1E
00780F00700700E00380E00380E00380E00380E00380F00780700700780F003C1E001FFC
000FF80003E00011127E9116>I<7E3E00FEFF007FFF800F83C00F00E00E00E00E00700E
00700E00700E00700E00700E00700E00E00F01E00F83C00FFF800EFF000E3C000E00000E
00000E00000E00000E00000E00007FC000FFE0007FC000141B809116>I<FF0FC0FF3FE0
FF7FE007F04007C000078000078000070000070000070000070000070000070000070000
070000FFFC00FFFC00FFFC0013127F9116>114 D<0FEC3FFC7FFCF03CE01CE01C70007F
801FF007F8003C600EE00EF00EF81EFFFCFFF8C7E00F127D9116>I<0300000700000700
000700000700007FFF00FFFF00FFFF000700000700000700000700000700000700000700
0007010007038007038007038007870003FE0001FC0000F80011177F9616>I<7F1FC0FF
1FE07F1FC01C07001E0F000E0E000E0E000E0E00071C00071C00071C00071C0003B80003
B80003B80001F00001F00000E00013127F9116>118 D E /Fg 62
124 df<007E0001C1800301800703C00E03C00E01800E00000E00000E00000E00000E00
00FFFFC00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01
C00E01C00E01C00E01C00E01C00E01C07F87F8151D809C17>12 D<007FC001C1C00303C0
0703C00E01C00E01C00E01C00E01C00E01C00E01C00E01C0FFFFC00E01C00E01C00E01C0
0E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C0
0E01C07FCFF8151D809C17>I<6060F0F0F8F86868080808080808101010102020404080
800D0C7F9C15>34 D<60F0F8680808081010204080050C7C9C0C>39
D<004000800100020006000C000C0018001800300030007000600060006000E000E000E0
00E000E000E000E000E000E000E000E000E000600060006000700030003000180018000C
000C00060002000100008000400A2A7D9E10>I<800040002000100018000C000C000600
060003000300038001800180018001C001C001C001C001C001C001C001C001C001C001C0
01C0018001800180038003000300060006000C000C00180010002000400080000A2A7E9E
10>I<60F0F0701010101020204080040C7C830C>44 D<FFE0FFE00B0280890E>I<60F0F0
6004047C830C>I<00010003000600060006000C000C000C001800180018003000300030
0060006000C000C000C0018001800180030003000300060006000C000C000C0018001800
1800300030003000600060006000C000C00010297E9E15>I<07C01830201C400C400EF0
0FF80FF807F8077007000F000E000E001C001C00380070006000C00180030006010C0118
0110023FFE7FFEFFFE101C7E9B15>50 D<07E01830201C201C781E780E781E381E001C00
1C00180030006007E00030001C001C000E000F000F700FF80FF80FF80FF00E401C201C18
3007E0101D7E9B15>I<000C00000C00001C00003C00003C00005C0000DC00009C00011C
00031C00021C00041C000C1C00081C00101C00301C00201C00401C00C01C00FFFFC0001C
00001C00001C00001C00001C00001C00001C0001FFC0121C7F9B15>I<60F0F060000000
0000000000000060F0F06004127C910C>58 D<0300078007800300000000000000000000
00010001000200020002000200060004000C00180038007000E000E01EE01EE01EE00E60
0430180FE00F1D7E9414>62 D<0FE03038401CE00EF00EF00EF00E000C001C0030006000
C0008001800100010001000100010001000000000000000000000003000780078003000F
1D7E9C14>I<000600000006000000060000000F0000000F0000000F0000001780000017
8000001780000023C0000023C0000023C0000041E0000041E0000041E0000080F0000080
F0000180F8000100780001FFF80003007C0002003C0002003C0006003E0004001E000400
1E000C001F001E001F00FF80FFF01C1D7F9C1F>65 D<FFFFC00F00F00F00380F003C0F00
1C0F001E0F001E0F001E0F001E0F001C0F003C0F00780F01F00FFFE00F00780F003C0F00
1E0F000E0F000F0F000F0F000F0F000F0F000F0F001E0F001E0F003C0F0078FFFFE0181C
7E9B1D>I<001F808000E0618001801980070007800E0003801C0003801C000180380001
80780000807800008070000080F0000000F0000000F0000000F0000000F0000000F00000
00F0000000F0000000700000807800008078000080380000801C0001001C0001000E0002
00070004000180080000E03000001FC000191E7E9C1E>I<FFFFFC0F003C0F000C0F0004
0F00040F00060F00020F00020F02020F02000F02000F02000F06000FFE000F06000F0200
0F02000F02000F02010F00010F00020F00020F00020F00060F00060F000C0F003CFFFFFC
181C7E9B1C>69 D<FFFFF80F00780F00180F00080F00080F000C0F00040F00040F02040F
02000F02000F02000F06000FFE000F06000F02000F02000F02000F02000F00000F00000F
00000F00000F00000F00000F00000F8000FFF800161C7E9B1B>I<FFF3FFC00F003C000F
003C000F003C000F003C000F003C000F003C000F003C000F003C000F003C000F003C000F
003C000F003C000FFFFC000F003C000F003C000F003C000F003C000F003C000F003C000F
003C000F003C000F003C000F003C000F003C000F003C000F003C00FFF3FFC01A1C7E9B1F
>72 D<FFF00F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F
000F000F000F000F000F000F000F000F000F000F00FFF00C1C7F9B0F>I<FFF8000F8000
0F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F0000
0F00000F00000F00000F00000F00080F00080F00080F00180F00180F00100F00300F0070
0F01F0FFFFF0151C7E9B1A>76 D<FF8000FF800F8000F8000F8000F8000BC00178000BC0
0178000BC001780009E002780009E002780008F004780008F004780008F0047800087808
780008780878000878087800083C107800083C107800083C107800081E207800081E2078
00081E207800080F407800080F4078000807807800080780780008078078000803007800
1C03007800FF8307FF80211C7E9B26>I<FF007FC00F800E000F8004000BC0040009E004
0009E0040008F0040008F8040008780400083C0400083C0400081E0400080F0400080F04
00080784000807C4000803C4000801E4000801E4000800F40008007C0008007C0008003C
0008003C0008001C0008000C001C000C00FF8004001A1C7E9B1F>I<003F800000E0E000
0380380007001C000E000E001C0007003C00078038000380780003C0780003C0700001C0
F00001E0F00001E0F00001E0F00001E0F00001E0F00001E0F00001E0F00001E0700001C0
780003C0780003C0380003803C0007801C0007000E000E0007001C000380380000E0E000
003F80001B1E7E9C20>I<FFFF800F00E00F00780F003C0F001C0F001E0F001E0F001E0F
001E0F001E0F001C0F003C0F00780F00E00FFF800F00000F00000F00000F00000F00000F
00000F00000F00000F00000F00000F00000F0000FFF000171C7E9B1C>I<FFFF00000F01
E0000F0078000F003C000F001C000F001E000F001E000F001E000F001E000F001C000F00
3C000F0078000F01E0000FFF00000F03C0000F00E0000F00F0000F0078000F0078000F00
78000F0078000F0078000F0078000F0078100F0078100F0038100F003C20FFF01C200000
07C01C1D7E9B1F>82 D<07E0801C1980300580700380600180E00180E00080E00080E000
80F00000F800007C00007FC0003FF8001FFE0007FF0000FF80000F800007C00003C00001
C08001C08001C08001C0C00180C00180E00300D00200CC0C0083F800121E7E9C17>I<7F
FFFFC0700F01C0600F00C0400F0040400F0040C00F0020800F0020800F0020800F002000
0F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F000000
0F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000001F800003
FFFC001B1C7F9B1E>I<FFF07FC00F000E000F0004000F0004000F0004000F0004000F00
04000F0004000F0004000F0004000F0004000F0004000F0004000F0004000F0004000F00
04000F0004000F0004000F0004000F0004000F0004000F00040007000800078008000380
10000180100000C020000070C000001F00001A1D7E9B1F>I<FFE00FF01F0003C00F0001
800F0001000F800300078002000780020003C0040003C0040003C0040001E0080001E008
0001F0080000F0100000F0100000F830000078200000782000003C4000003C4000003C40
00001E8000001E8000001F8000000F0000000F00000006000000060000000600001C1D7F
9B1F>I<FFE0FFE0FF1F001F003C1E001E00180F001F00100F001F00100F001F00100780
1F00200780278020078027802003C027804003C043C04003C043C04003E043C04001E081
E08001E081E08001E081E08000F100F10000F100F10000F100F100007900FA00007A007A
00007A007A00003E007C00003C003C00003C003C00003C003C0000180018000018001800
0018001800281D7F9B2B>I<08081010202040404040808080808080B0B0F8F878783030
0D0C7A9C15>92 D<1FC000307000783800781C00301C00001C00001C0001FC000F1C0038
1C00701C00601C00E01C40E01C40E01C40603C40304E801F870012127E9115>97
D<FC00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C7C
001D86001E03001C01801C01C01C00C01C00E01C00E01C00E01C00E01C00E01C00E01C00
C01C01C01C01801E030019060010F800131D7F9C17>I<07E00C301878307870306000E0
00E000E000E000E000E00060007004300418080C3007C00E127E9112>I<003F00000700
00070000070000070000070000070000070000070000070000070003E7000C1700180F00
300700700700600700E00700E00700E00700E00700E00700E00700600700700700300700
180F000C370007C7E0131D7E9C17>I<03E00C301818300C700E6006E006FFFEE000E000
E000E00060007002300218040C1803E00F127F9112>I<00F8018C071E061E0E0C0E000E
000E000E000E000E00FFE00E000E000E000E000E000E000E000E000E000E000E000E000E
000E000E000E007FE00F1D809C0D>I<00038003C4C00C38C01C3880181800381C00381C
00381C00381C001818001C38000C300013C0001000003000001800001FF8001FFF001FFF
803003806001C0C000C0C000C0C000C06001803003001C0E0007F800121C7F9215>I<FC
00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C7C001C
87001D03001E03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C
03801C03801C03801C0380FF9FF0141D7F9C17>I<18003C003C00180000000000000000
00000000000000FC001C001C001C001C001C001C001C001C001C001C001C001C001C001C
001C001C00FF80091D7F9C0C>I<00C001E001E000C00000000000000000000000000000
0FE000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E0
00E000E000E060E0F0C0F1C061803E000B25839C0D>I<FC00001C00001C00001C00001C
00001C00001C00001C00001C00001C00001C00001C3FC01C0F001C0C001C08001C10001C
20001C40001CE0001DE0001E70001C78001C38001C3C001C1C001C0E001C0F001C0F80FF
9FE0131D7F9C16>I<FC001C001C001C001C001C001C001C001C001C001C001C001C001C
001C001C001C001C001C001C001C001C001C001C001C001C001C001C00FF80091D7F9C0C
>I<FC7E07E0001C838838001D019018001E01E01C001C01C01C001C01C01C001C01C01C
001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C00
1C01C01C001C01C01C001C01C01C00FF8FF8FF8021127F9124>I<FC7C001C87001D0300
1E03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C0380
1C03801C0380FF9FF014127F9117>I<03F0000E1C00180600300300700380600180E001
C0E001C0E001C0E001C0E001C0E001C06001807003803003001806000E1C0003F0001212
7F9115>I<FC7C001D86001E03001C01801C01C01C00C01C00E01C00E01C00E01C00E01C
00E01C00E01C01C01C01C01C01801E03001D06001CF8001C00001C00001C00001C00001C
00001C00001C0000FF8000131A7F9117>I<03C1000C3300180B00300F00700700700700
E00700E00700E00700E00700E00700E00700600700700700300F00180F000C370007C700
000700000700000700000700000700000700000700003FE0131A7E9116>I<FCE01D301E
781E781C301C001C001C001C001C001C001C001C001C001C001C001C00FFC00D127F9110
>I<1F9030704030C010C010E010F8007F803FE00FF000F880388018C018C018E010D060
8FC00D127F9110>I<04000400040004000C000C001C003C00FFE01C001C001C001C001C
001C001C001C001C001C101C101C101C101C100C100E2003C00C1A7F9910>I<FC1F801C
03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C
03801C07800C07800E1B8003E3F014127F9117>I<FF07E03C03801C01001C01000E0200
0E020007040007040007040003880003880003D80001D00001D00000E00000E00000E000
00400013127F9116>I<FF3FCFE03C0F03801C0701801C0701001C0B01000E0B82000E0B
82000E1182000711C4000711C4000720C40003A0E80003A0E80003C0680001C0700001C0
700001803000008020001B127F911E>I<7F8FF00F03800F030007020003840001C80001
D80000F00000700000780000F800009C00010E00020E000607000403801E07C0FF0FF815
12809116>I<FF07E03C03801C01001C01000E02000E0200070400070400070400038800
03880003D80001D00001D00000E00000E00000E000004000004000008000008000F08000
F10000F300006600003C0000131A7F9116>I<7FFC70386038407040F040E041C003C003
8007000F040E041C043C0C380870087038FFF80E127F9112>I<FFFFF01401808B15>I
E /Fh 8 118 df<78FCFCFCFC7800000000000078FCFCFCFC7806127D910D>58
D<FFFFF800FFFFFF000FC01FC00FC007E00FC001F00FC001F80FC000F80FC000FC0FC000
7C0FC0007C0FC0007E0FC0007E0FC0007E0FC0007E0FC0007E0FC0007E0FC0007E0FC000
7E0FC0007C0FC0007C0FC0007C0FC000F80FC000F80FC001F00FC007E00FC01FC0FFFFFF
00FFFFF8001F1C7E9B25>68 D<03FC000E0E001C1F003C1F00781F00780E00F80000F800
00F80000F80000F80000F800007800007801803C01801C03000E0E0003F80011127E9115
>99 D<1E003F003F003F003F001E00000000000000000000000000FF00FF001F001F001F
001F001F001F001F001F001F001F001F001F001F001F00FFE0FFE00B1E7F9D0E>105
D<FF0FC0FF31E01F40F01F80F81F80F81F00F81F00F81F00F81F00F81F00F81F00F81F00
F81F00F81F00F81F00F81F00F8FFE7FFFFE7FF18127F911B>110
D<01FC000F07801C01C03C01E07800F07800F0F800F8F800F8F800F8F800F8F800F8F800
F87800F07800F03C01E01E03C00F078001FC0015127F9118>I<1FD830786018E018E018
F000FF807FE07FF01FF807FC007CC01CC01CE01CE018F830CFC00E127E9113>115
D<FF07F8FF07F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00
F81F00F81F00F81F01F80F01F80786FF01F8FF18127F911B>117
D E /Fi 32 122 df<0000E000000000E000000001F000000001F000000001F000000003
F800000003F800000006FC00000006FC0000000EFE0000000C7E0000000C7E000000183F
000000183F000000303F800000301F800000701FC00000600FC00000600FC00000C007E0
0000FFFFE00001FFFFF000018003F000018003F000030001F800030001F800060001FC00
060000FC000E0000FE00FFE00FFFE0FFE00FFFE0231F7E9E28>65
D<FFFFFFFF07E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007
E007E007E007E007E007E007E007E007E007E007E007E0FFFFFFFF101F7E9E14>73
D<FFFF8000FFFF800007E0000007E0000007E0000007E0000007E0000007E0000007E000
0007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E0000007E000
0007E0000007E000C007E000C007E000C007E001C007E001C007E001C007E0038007E003
8007E00F8007E01F80FFFFFF80FFFFFF801A1F7E9E1F>76 D<FFE000003FF8FFF000007F
F807F000007F0006F80000DF0006F80000DF0006F80000DF00067C00019F00067C00019F
00063E00031F00063E00031F00061F00061F00061F00061F00060F800C1F00060F800C1F
000607C0181F000607C0181F000607C0181F000603E0301F000603E0301F000601F0601F
000601F0601F000600F8C01F000600F8C01F0006007D801F0006007D801F0006003F001F
0006003F001F0006003F001F0006001E001F00FFF01E03FFF8FFF00C03FFF82D1F7E9E32
>I<FFE000FFF0FFF000FFF007F000060007F800060006FC000600067E000600063F0006
00063F800600061F800600060FC006000607E006000603F006000601F806000601FC0600
0600FC060006007E060006003F060006001F860006001FC60006000FE600060007E60006
0003F600060001FE00060000FE00060000FE000600007E000600003E000600001E000600
000E00FFF0000600FFF0000600241F7E9E29>I<FFFFFE00FFFFFF8007E00FE007E003F0
07E001F807E001F807E001FC07E001FC07E001FC07E001FC07E001FC07E001F807E001F8
07E003F007E00FE007FFFF8007FFFE0007E0000007E0000007E0000007E0000007E00000
07E0000007E0000007E0000007E0000007E0000007E0000007E00000FFFF0000FFFF0000
1E1F7E9E24>80 D<03FC080FFF381E03F83800F8700078700038F00038F00018F00018F8
0000FC00007FC0007FFE003FFF801FFFE00FFFF007FFF000FFF80007F80000FC00007C00
003CC0003CC0003CC0003CE00038E00078F80070FE01E0E7FFC081FF00161F7D9E1D>83
D<FFFF01FFE0FFFF01FFE007E0000C0007E0000C0007E0000C0007E0000C0007E0000C00
07E0000C0007E0000C0007E0000C0007E0000C0007E0000C0007E0000C0007E0000C0007
E0000C0007E0000C0007E0000C0007E0000C0007E0000C0007E0000C0007E0000C0007E0
000C0007E0000C0007E0000C0003E000180001F000180001F000300000F8006000007E03
C000001FFF80000003FC0000231F7E9E28>85 D<FFFE003FF8FFFE003FF807E000038007
E000030007F000070003F000060003F8000E0001F8000C0001FC000C0000FC00180000FC
001800007E003000007E003000003F006000003F006000003F80E000001F80C000001FC1
C000000FC18000000FE180000007E300000007E300000003F600000003F600000003FE00
000001FC00000001FC00000000F800000000F8000000007000000000700000251F7F9E28
>I<07FC001FFF003F0F803F07C03F03E03F03E00C03E00003E0007FE007FBE01F03E03C
03E07C03E0F803E0F803E0F803E0FC05E07E0DE03FF8FE0FE07E17147F9319>97
D<FF0000FF00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00
001F1FC01F7FF01FE0F81F807C1F007E1F003E1F003E1F003F1F003F1F003F1F003F1F00
3F1F003F1F003E1F003E1F007C1F807C1EC1F81C7FE0181F8018207E9F1D>I<01FE0007
FF801F0FC03E0FC03E0FC07C0FC07C0300FC0000FC0000FC0000FC0000FC0000FC00007C
00007E00003E00603F00C01F81C007FF0001FC0013147E9317>I<0007F80007F80000F8
0000F80000F80000F80000F80000F80000F80000F80000F80000F801F8F80FFEF81F83F8
3E01F87E00F87C00F87C00F8FC00F8FC00F8FC00F8FC00F8FC00F8FC00F87C00F87C00F8
7E00F83E01F81F07F80FFEFF03F8FF18207E9F1D>I<01FE0007FF800F83C01E01E03E00
F07C00F07C00F8FC00F8FFFFF8FFFFF8FC0000FC0000FC00007C00007C00003E00181E00
180F807007FFE000FF8015147F9318>I<001F8000FFC001F3E003E7E003C7E007C7E007
C3C007C00007C00007C00007C00007C000FFFC00FFFC0007C00007C00007C00007C00007
C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C0003F
FC003FFC0013207F9F10>I<01FC3C07FFFE0F079E1E03DE3E03E03E03E03E03E03E03E0
3E03E01E03C00F07800FFF0009FC001800001800001C00001FFF800FFFF007FFF81FFFFC
3C007C70003EF0001EF0001EF0001E78003C78003C3F01F80FFFE001FF00171E7F931A>
I<FF0000FF00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00
001F0FC01F3FE01F61F01FC0F81F80F81F00F81F00F81F00F81F00F81F00F81F00F81F00
F81F00F81F00F81F00F81F00F81F00F81F00F8FFE3FFFFE3FF18207D9F1D>I<1C003E00
7F007F007F003E001C00000000000000000000000000FF00FF001F001F001F001F001F00
1F001F001F001F001F001F001F001F001F001F001F00FFE0FFE00B217EA00E>I<FF0000
FF00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F01FE
1F01FE1F00F01F00C01F03801F07001F0C001F18001F7C001FFC001F9E001F0F001E0F80
1E07C01E03C01E01E01E01F01E00F8FFC3FFFFC3FF18207E9F1C>107
D<FF00FF001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F
001F001F001F001F001F001F001F001F001F001F001F001F00FFE0FFE00B207E9F0E>I<
FE0FE03F80FE1FF07FC01E70F9C3E01E407D01F01E807E01F01F807E01F01F007C01F01F
007C01F01F007C01F01F007C01F01F007C01F01F007C01F01F007C01F01F007C01F01F00
7C01F01F007C01F01F007C01F01F007C01F0FFE3FF8FFEFFE3FF8FFE27147D932C>I<FE
0FC0FE3FE01E61F01EC0F81E80F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F
00F81F00F81F00F81F00F81F00F81F00F8FFE3FFFFE3FF18147D931D>I<01FF0007FFC0
1F83F03E00F83E00F87C007C7C007CFC007EFC007EFC007EFC007EFC007EFC007E7C007C
7C007C3E00F83E00F81F83F007FFC001FF0017147F931A>I<01F81807FE381F87783F01
F83E01F87E00F87C00F8FC00F8FC00F8FC00F8FC00F8FC00F8FC00F87C00F87E00F87E00
F83F01F81F87F80FFEF803F8F80000F80000F80000F80000F80000F80000F80000F80007
FF0007FF181D7E931C>113 D<FE3E00FE7F801ECFC01E8FC01E8FC01F8FC01F03001F00
001F00001F00001F00001F00001F00001F00001F00001F00001F00001F0000FFF000FFF0
0012147E9316>I<0FE63FFE701E600EE006E006F800FFC07FF83FFC1FFE03FE001FC007
C007E007F006F81EFFFCC7F010147E9315>I<01800180018003800380038007800F803F
80FFFCFFFC0F800F800F800F800F800F800F800F800F800F800F860F860F860F860F8607
CC03F801F00F1D7F9C14>I<FF07F8FF07F81F00F81F00F81F00F81F00F81F00F81F00F8
1F00F81F00F81F00F81F00F81F00F81F00F81F00F81F01F81F01F80F06F807FCFF03F8FF
18147D931D>I<FFE07F80FFE07F801F001C000F8018000F80180007C0300007C0300003
E0600003E0600001F0C00001F0C00001F9C00000F9800000FF8000007F0000007F000000
3E0000003E0000001C0000001C000019147F931C>I<FFE7FE1FE0FFE7FE1FE01F00F003
001F00F803000F80F806000F80F8060007C1BC0C0007C1BC0C0007C1BE0C0003E31E1800
03E31E180001F60F300001F60F300001F60FB00000FC07E00000FC07E000007803C00000
7803C000007803C000003001800023147F9326>I<FFE1FF00FFE1FF000F80700007C0E0
0007E0C00003E1800001F3800000FF0000007E0000003E0000003F0000007F8000006F80
0000C7C0000183E0000381F0000701F8000E00FC00FF81FF80FF81FF8019147F931C>I<
FFE07F80FFE07F801F001C000F8018000F80180007C0300007C0300003E0600003E06000
01F0C00001F0C00001F9C00000F9800000FF8000007F0000007F0000003E0000003E0000
001C0000001C0000001800000018000078300000FC300000FC600000C0E00000E1C00000
7F8000001E000000191D7F931C>I E /Fj 37 125 df<0E1F3F3F1D0102020404081020
C0080E779F0E>39 D<70F8F8F0E005057B840E>46 D<070F1F1F0E000000000000000000
0070F8F8F0E008147B930E>58 D<00000200000006000000060000000E0000001E000000
1E0000003F0000002F0000004F0000004F0000008F0000010F0000010F0000020F000002
0F0000040F00000C0F0000080F0000100F0000100F0000200F80003FFF800040078000C0
07800080078001000780010007800200078002000780060007801E000F80FF807FF81D20
7E9F22>65 D<0000FE0200078186001C004C0038003C0060003C00C0001C01C000180380
0018070000180F0000181E0000101E0000103C0000003C00000078000000780000007800
000078000000F0000000F0000000F0000000F0000000F000008070000080700000807000
01003800010038000200180004000C001800060020000381C00000FE00001F217A9F21>
67 D<01FFFFFE001E001C001E000C001E0004001E0004003C0004003C0004003C000400
3C00040078080800780800007808000078180000F0300000FFF00000F0300000F0300001
E0200001E0200001E0200001E0001003C0002003C0002003C0004003C000400780008007
80018007800100078007000F001F00FFFFFE001F1F7D9E1F>69 D<0000FC040007030C00
1C00980030007800E0007801C000380380003003800030070000300E0000301E0000201E
0000203C0000003C00000078000000780000007800000078000000F0000000F000FFF0F0
000780F0000780F0000F0070000F0070000F0070000F0070001E0038001E0018003E001C
002E000E00CC000383040000FC00001E217A9F23>71 D<01FE00007FC0001E0000FC0000
1E0000F80000170001780000170001780000270002F00000270004F00000270004F00000
270008F00000470009E00000470011E00000470021E00000470021E00000870043C00000
838043C00000838083C00000838083C00001038107800001038207800001038207800001
03840780000203840F00000203880F00000203900F00000203900F00000401E01E000004
01E01E00000401C01E00000C01801E00001C01803E0000FF8103FFC0002A1F7D9E29>77
D<01FF007FE0001F000F00001F0004000017800400001780040000278008000023C00800
0023C008000023C008000041E010000041E010000041F010000040F010000080F0200000
807820000080782000008078200001003C400001003C400001003C400001001E40000200
1E800002001E800002000F800002000F800004000F0000040007000004000700000C0007
00001C00020000FF80020000231F7D9E22>I<01FFFF80001E00E0001E0070001E003800
1E003C003C003C003C003C003C003C003C003C0078007800780078007800F0007800E000
F003C000F00F0000FFFC0000F0000001E0000001E0000001E0000001E0000003C0000003
C0000003C0000003C00000078000000780000007800000078000000F800000FFF000001E
1F7D9E1F>80 D<01FFFF00001E03C0001E00E0001E0070001E0078003C0078003C007800
3C0078003C0078007800F0007800F0007801E0007801C000F0070000F01E0000FFF00000
F0380001E01C0001E01E0001E00E0001E00F0003C01E0003C01E0003C01E0003C01E0007
803C0007803C0807803C0807803C100F801C10FFF00C20000007C01D207D9E21>82
D<0FFFFFF01E0780E0180780201007802020078020200F0020600F0020400F0020400F00
20801E0040001E0000001E0000001E0000003C0000003C0000003C0000003C0000007800
0000780000007800000078000000F0000000F0000000F0000000F0000001E0000001E000
0001E0000001E0000003E00000FFFF00001C1F789E21>84 D<7FFC1FF807C003C0078001
0007800100078001000F0002000F0002000F0002000F0002001E0004001E0004001E0004
001E0004003C0008003C0008003C0008003C000800780010007800100078001000780010
00F0002000F0002000F0002000F0004000F0004000700080007001000030020000380400
000C18000007E000001D20779E22>I<FFF007FC0F8000E00F0000C00F0000800F000100
0F0001000F0002000F0004000F0004000F80080007800800078010000780200007802000
078040000780400007808000078100000781000007C2000003C2000003C4000003C80000
03C8000003D0000003D0000003E0000003C0000003C00000038000000180000001000000
1E20779E22>I<00F1800389C00707800E03801C03803C03803807007807007807007807
00F00E00F00E00F00E00F00E20F01C40F01C40703C40705C40308C800F070013147C9317
>97 D<07803F8007000700070007000E000E000E000E001C001C001CF01D0C3A0E3C0E38
0F380F700F700F700F700FE01EE01EE01EE01CE03CE038607060E031C01F0010207B9F15
>I<007E0001C1000300800E07801E07801C07003C0200780000780000780000F00000F0
0000F00000F00000F0000070010070020030040018380007C00011147C9315>I<000078
0003F80000700000700000700000700000E00000E00000E00000E00001C00001C000F1C0
0389C00707800E03801C03803C0380380700780700780700780700F00E00F00E00F00E00
F00E20F01C40F01C40703C40705C40308C800F070015207C9F17>I<007C01C207010E01
1C013C013802780C7BF07C00F000F000F000F0007000700170023804183807C010147C93
15>I<00007800019C00033C00033C000718000700000700000E00000E00000E00000E00
000E0001FFE0001C00001C00001C00001C00003800003800003800003800003800007000
00700000700000700000700000700000E00000E00000E00000E00000C00001C00001C000
0180003180007B0000F300006600003C00001629829F0E>I<003C6000E27001C1E00380
E00700E00F00E00E01C01E01C01E01C01E01C03C03803C03803C03803C03803C07003C07
001C0F001C17000C2E0003CE00000E00000E00001C00001C00301C00783800F0700060E0
003F8000141D7E9315>I<01E0000FE00001C00001C00001C00001C00003800003800003
8000038000070000070000071E000763000E81800F01C00E01C00E01C01C03801C03801C
03801C0380380700380700380700380E10700E20700C20701C20700C40E00CC060070014
207D9F17>I<00C001E001E001C000000000000000000000000000000E00330023004380
4300470087000E000E000E001C001C001C003840388030807080310033001C000B1F7C9E
0E>I<01E0000FE00001C00001C00001C00001C000038000038000038000038000070000
0700000703C00704200E08E00E11E00E21E00E40C01C80001D00001E00001FC00038E000
387000387000383840707080707080707080703100E03100601E0013207D9F15>107
D<03C01FC0038003800380038007000700070007000E000E000E000E001C001C001C001C
0038003800380038007000700070007100E200E200E200E200640038000A207C9F0C>I<
1C0F80F0002630C318004740640C004780680E004700700E004700700E008E00E01C000E
00E01C000E00E01C000E00E01C001C01C038001C01C038001C01C038001C01C070803803
8071003803806100380380E10038038062007007006600300300380021147C9325>I<1C
0F802630C04740604780604700704700708E00E00E00E00E00E00E00E01C01C01C01C01C
01C01C03843803883803083807083803107003303001C016147C931A>I<007C0001C300
0301800E01C01E01C01C01E03C01E07801E07801E07801E0F003C0F003C0F003C0F00780
F00700700F00700E0030180018700007C00013147C9317>I<01C1E002621804741C0478
1C04701E04701E08E01E00E01E00E01E00E01E01C03C01C03C01C03C01C0380380780380
700380E003C1C0072380071E000700000700000E00000E00000E00000E00001C00001C00
00FFC000171D809317>I<00F0400388C00705800E03801C03803C038038070078070078
0700780700F00E00F00E00F00E00F00E00F01C00F01C00703C00705C0030B8000F380000
380000380000700000700000700000700000E00000E0000FFE00121D7C9315>I<1C1E00
2661004783804787804707804703008E00000E00000E00000E00001C00001C00001C0000
1C000038000038000038000038000070000030000011147C9313>I<00FC030206010C03
0C070C060C000F800FF007F803FC003E000E700EF00CF00CE008401020601F8010147D93
13>I<018001C0038003800380038007000700FFF007000E000E000E000E001C001C001C
001C003800380038003820704070407080708031001E000C1C7C9B0F>I<0E00C03300E0
2301C04381C04301C04701C08703800E03800E03800E03801C07001C07001C07001C0710
1C0E20180E20180E201C1E200C264007C38014147C9318>I<0E03803307802307C04383
C04301C04700C08700800E00800E00800E00801C01001C01001C01001C02001C02001C04
001C04001C08000E300003C00012147C9315>I<0E00C1C03300E3C02301C3E04381C1E0
4301C0E04701C060870380400E0380400E0380400E0380401C0700801C0700801C070080
1C0701001C0701001C0602001C0F02000C0F04000E13080003E1F0001B147C931E>I<FF
FFFFFFFF8029017B8C2E>124 D E /Fk 10 58 df<1F00318060C04040C060C060C060C0
60C060C060C060C060404060C031801F000B107F8F0F>48 D<0C003C00CC000C000C000C
000C000C000C000C000C000C000C000C000C00FF8009107E8F0F>I<1F00618040C08060
C0600060006000C00180030006000C00102020207FC0FFC00B107F8F0F>I<1F00218060
C060C000C0008001800F00008000400060C060C060804060801F000B107F8F0F>I<0300
030007000F000B001300330023004300C300FFE003000300030003001FE00B107F8F0F>
I<20803F002C002000200020002F0030802040006000600060C06080C061801F000B107F
8F0F>I<0780184030C060C06000C000CF00F080E040C060C060C060406060C030801F00
0B107F8F0F>I<40007FE07FC08080808001000200040004000C00080008001800180018
00180018000B117E900F>I<1F00318060C060C060C071803F000F00338061C0C060C060
C060404060801F000B107F8F0F>I<1F00318060C0C040C060C060C06040E021E01E6000
60004060C0608043003E000B107F8F0F>I E /Fl 84 127 df<C00060C00060C00060C0
0060C00060C00060C00060C00060C00060C00060C00060C00060C00060C00060C00060FF
FFE0FFFFE013117E8A18>32 D<70F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8700000000000
70F8F8F870051C779B18>I<4010E038F078E038E038E038E038E038E038E038E038E038
E03860300D0E7B9C18>I<030600078F00078F00078F00078F00078F00078F007FFFC0FF
FFE0FFFFE07FFFC00F1E000F1E000F1E000F1E000F1E000F1E007FFFC0FFFFE0FFFFE07F
FFC01E3C001E3C001E3C001E3C001E3C001E3C000C1800131C7E9B18>I<00C00001C000
01C00001C00003F0000FFC003FFE007DCF0071C700E1C380E1C780E1C780E1C780F1C000
79C0003DC0001FE0000FF80003FC0001DE0001CF0001C70061C380F1C380F1C380E1C380
E1C70071C70079DE003FFE001FF80007E00001C00001C00001C00000C00011247D9F18>
I<3803007C07807C0780EE0F80EE0F00EE0F00EE1F00EE1E00EE1E00EE3E007C3C007C3C
00387C0000780000780000F80000F00001F00001E00001E00003E00003C00003C00007C0
000783800787C00F87C00F0EE00F0EE01F0EE01E0EE01E0EE03E0EE03C07C03C07C01803
8013247E9F18>I<01C00007E0000FF0000E70001C38001C38001C38001C38001C73F01C
73F01CE3F00FE3800FC7000F87000F07001F0E003F0E007B8E0073DC00E1DC00E0F800E0
F800E07070E0787070FC707FFFE03FCFE00F03C0141C7F9B18>I<387C7C7E3E0E0E0E1C
1C38F8F0C0070E789B18>I<007000F001E003C007800F001E001C003800380070007000
70007000E000E000E000E000E000E000E000E0007000700070007000380038001C001E00
0F00078003C001F000F000700C24799F18>I<6000F00078003C001E000F000780038001
C001C000E000E000E000E00070007000700070007000700070007000E000E000E000E001
C001C0038007800F001E003C007800F00060000C247C9F18>I<01C00001C00001C00001
C000C1C180F1C780F9CF807FFF001FFC0007F00007F0001FFC007FFF00F9CF80F1C780C1
C18001C00001C00001C00001C00011147D9718>I<00600000F00000F00000F00000F000
00F00000F00000F0007FFFC0FFFFE0FFFFE07FFFC000F00000F00000F00000F00000F000
00F00000F00000600013147E9718>I<1C3E7E7F3F1F070E1E7CF860080C788518>I<7FFF
00FFFF80FFFF807FFF0011047D8F18>I<3078FCFC78300606778518>I<00030000078000
0780000F80000F00001F00001E00001E00003E00003C00007C0000780000780000F80000
F00001F00001E00003E00003C00003C00007C0000780000F80000F00000F00001F00001E
00003E00003C00003C00007C0000780000F80000F00000F0000060000011247D9F18>I<
01F00007FC000FFE001F1F001C07003803807803C07001C07001C0E000E0E000E0E000E0
E000E0E000E0E000E0E000E0E000E0E000E0F001E07001C07001C07803C03803801C0700
1F1F000FFE0007FC0001F000131C7E9B18>I<01800380038007800F803F80FF80FB8043
8003800380038003800380038003800380038003800380038003800380038003807FFCFF
FE7FFC0F1C7B9B18>I<03F0000FFE003FFF007C0F807003C0E001C0F000E0F000E06000
E00000E00000E00001C00001C00003C0000780000F00001E00003C0000780000F00001E0
0007C0000F80001E00E03C00E07FFFE0FFFFE07FFFE0131C7E9B18>I<07F8001FFE003F
FF007807807803C07801C03001C00001C00003C0000380000F0003FF0003FE0003FF0000
07800003C00001C00000E00000E00000E0F000E0F000E0F001C0F003C07C07803FFF001F
FE0003F800131C7E9B18>I<001F00003F0000770000770000E70001E70001C700038700
0787000707000E07001E07003C0700380700780700F00700FFFFF8FFFFF8FFFFF8000700
000700000700000700000700000700007FF000FFF8007FF0151C7F9B18>I<1FFF803FFF
803FFF803800003800003800003800003800003800003800003800003BF8003FFE003FFF
003C07801803C00001C00000E00000E06000E0F000E0F000E0E001C07003C07C0F803FFF
001FFC0003F000131C7E9B18>I<3078FCFC783000000000000000003078FCFC78300614
779318>58 D<183C7E7E3C180000000000000000183C7E7E3E1E0E1C3C78F060071A7893
18>I<000300000780001F80003F00007E0001FC0003F00007E0001FC0003F00007E0000
FC0000FC00007E00003F00001FC00007E00003F00001FC00007E00003F00001F80000780
00030011187D9918>I<7FFFC0FFFFE0FFFFE0FFFFE0000000000000000000000000FFFF
E0FFFFE0FFFFE07FFFC0130C7E9318>I<600000F00000FC00007E00003F00001FC00007
E00003F00001FC00007E00003F00001F80001F80003F00007E0001FC0003F00007E0001F
C0003F00007E0000FC0000F0000060000011187D9918>I<00700000F80000F80000D800
00D80001DC0001DC0001DC00018C00038E00038E00038E00038E00030600070700070700
0707000707000FFF800FFF800FFF800E03800E03801C01C01C01C07F07F0FF8FF87F07F0
151C7F9B18>65 D<FFFC00FFFF00FFFF801C03C01C01C01C00E01C00E01C00E01C00E01C
01E01C01C01C07C01FFF801FFF001FFFC01C03C01C00E01C00F01C00701C00701C00701C
00701C00F01C00E01C03E0FFFFC0FFFF80FFFE00141C7F9B18>I<00F8E003FEE007FFE0
0F07E01E03E03C01E03800E07000E07000E0700000E00000E00000E00000E00000E00000
E00000E00000E000007000007000E07000E03800E03C00E01E01C00F07C007FF8003FE00
00F800131C7E9B18>I<7FF800FFFE007FFF001C0F801C03C01C03C01C01E01C00E01C00
E01C00F01C00701C00701C00701C00701C00701C00701C00701C00701C00F01C00E01C00
E01C01E01C01C01C03C01C0F807FFF00FFFE007FF800141C7F9B18>I<FFFFF0FFFFF0FF
FFF01C00701C00701C00701C00701C00001C00001C0E001C0E001C0E001FFE001FFE001F
FE001C0E001C0E001C0E001C00001C00001C00381C00381C00381C00381C0038FFFFF8FF
FFF8FFFFF8151C7F9B18>I<FFFFE0FFFFE0FFFFE01C00E01C00E01C00E01C00E01C0000
1C00001C1C001C1C001C1C001FFC001FFC001FFC001C1C001C1C001C1C001C00001C0000
1C00001C00001C00001C00001C0000FFC000FFC000FFC000131C7E9B18>I<01F1C003FD
C00FFFC01F0FC01C03C03803C03801C07001C07001C0700000E00000E00000E00000E000
00E00000E00FF0E01FF0E00FF07001C07001C07003C03803C03803C01C07C01F0FC00FFF
C003FDC001F1C0141C7E9B18>I<7F07F0FF8FF87F07F01C01C01C01C01C01C01C01C01C
01C01C01C01C01C01C01C01C01C01FFFC01FFFC01FFFC01C01C01C01C01C01C01C01C01C
01C01C01C01C01C01C01C01C01C01C01C07F07F0FF8FF87F07F0151C7F9B18>I<7FFF00
FFFF807FFF0001C00001C00001C00001C00001C00001C00001C00001C00001C00001C000
01C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C000
7FFF00FFFF807FFF00111C7D9B18>I<7FE000FFE0007FE0000E00000E00000E00000E00
000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00
000E00000E00700E00700E00700E00700E00707FFFF0FFFFF07FFFF0141C7F9B18>76
D<FC01F8FE03F8FE03F83B06E03B06E03B06E03B06E03B8EE03B8EE0398CE0398CE039DC
E039DCE039DCE038D8E038D8E038F8E03870E03870E03800E03800E03800E03800E03800
E03800E0FE03F8FE03F8FE03F8151C7F9B18>I<7E07F0FF0FF87F07F01D81C01D81C01D
81C01DC1C01CC1C01CC1C01CE1C01CE1C01CE1C01C61C01C71C01C71C01C31C01C39C01C
39C01C39C01C19C01C19C01C1DC01C0DC01C0DC01C0DC07F07C0FF87C07F03C0151C7F9B
18>I<0FF8003FFE007FFF00780F00700700F00780E00380E00380E00380E00380E00380
E00380E00380E00380E00380E00380E00380E00380E00380E00380E00380E00380F00780
700700780F007FFF003FFE000FF800111C7D9B18>I<FFFE00FFFF80FFFFC01C03C01C01
E01C00E01C00701C00701C00701C00701C00701C00E01C01E01C03C01FFFC01FFF801FFE
001C00001C00001C00001C00001C00001C00001C00001C0000FF8000FF8000FF8000141C
7F9B18>I<0FF8003FFE007FFF00780F00700700F00780E00380E00380E00380E00380E0
0380E00380E00380E00380E00380E00380E00380E00380E00380E00380E1E380E1E380F0
E78070F700787F007FFF003FFE000FFC00001C00001E00000E00000F0000070000070011
227D9B18>I<7FF800FFFE007FFF001C0F801C03801C03C01C01C01C01C01C01C01C03C0
1C03801C0F801FFF001FFE001FFE001C0F001C07001C03801C03801C03801C03801C0380
1C039C1C039C1C039C7F01F8FF81F87F00F0161C7F9B18>I<03F3801FFF803FFF807C0F
80700780E00380E00380E00380E000007000007800003F00001FF00007FE0000FF00000F
800003C00001C00000E00000E06000E0E000E0E001E0F001C0F80780FFFF80FFFE00E7F8
00131C7E9B18>I<7FFFF8FFFFF8FFFFF8E07038E07038E07038E0703800700000700000
700000700000700000700000700000700000700000700000700000700000700000700000
700000700000700000700007FF0007FF0007FF00151C7F9B18>I<FF83FEFF83FEFF83FE
1C00701C00701C00701C00701C00701C00701C00701C00701C00701C00701C00701C0070
1C00701C00701C00701C00701C00701C00701C00700E00E00F01E00783C003FF8001FF00
007C00171C809B18>I<FF07F8FF07F8FF07F81C01C01C01C01C01C01C01C00E03800E03
800E03800E03800F0780070700070700070700070700038E00038E00038E00038E00018C
0001DC0001DC0001DC0000D80000F80000F800007000151C7F9B18>I<FE03F8FE03F8FE
03F87000707000707000703800E03800E03800E03800E03800E038F8E038F8E039DCE039
DCE019DCC019DCC019DCC0198CC01D8DC01D8DC01D8DC01D8DC00D8D800D05800F07800F
07800E0380151C7F9B18>I<7F8FE07F9FE07F8FE00E07000F0700070E00078E00039C00
03DC0001F80001F80000F00000F00000700000F00000F80001F80001DC00039E00038E00
070F000707000E07800E03801E03C07F07F0FF8FF87F07F0151C7F9B18>I<FF07F8FF07
F8FF07F81C01C01E03C00E03800F0780070700070700038E00038E0001DC0001DC0001DC
0000F80000F80000700000700000700000700000700000700000700000700000700001FC
0003FE0001FC00151C7F9B18>I<3FFFE07FFFE07FFFE07001C07003C070078070070000
0F00001E00001C00003C0000780000700000F00001E00001C00003C0000780000700000F
00001E00E01C00E03C00E07800E07000E0FFFFE0FFFFE0FFFFE0131C7E9B18>I<FFF8FF
F8FFF8E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E0
00E000E000E000E000E000E000E000E000E000E000E000E000E000FFF8FFF8FFF80D2477
9F18>I<600000F00000F00000F800007800007C00003C00003C00003E00001E00001F00
000F00000F00000F800007800007C00003C00003C00003E00001E00001F00000F00000F8
00007800007800007C00003C00003E00001E00001E00001F00000F00000F800007800007
8000030011247D9F18>I<FFF8FFF8FFF800380038003800380038003800380038003800
380038003800380038003800380038003800380038003800380038003800380038003800
3800380038FFF8FFF8FFF80D247F9F18>I<7FFF00FFFF80FFFF807FFF0011047D7F18>
95 D<061E3E387070E0E0E0F8FC7C7C38070E789E18>I<1FE0003FF8007FFC00781E0030
0E0000070000070000FF0007FF001FFF007F0700780700E00700E00700E00700F00F0078
1F003FFFF01FFBF007E1F014147D9318>I<7E0000FE00007E00000E00000E00000E0000
0E00000E00000E3E000EFF800FFFC00FC1E00F80E00F00700E00700E00380E00380E0038
0E00380E00380E00380F00700F00700F80E00FC1E00FFFC00EFF80063E00151C809B18>
I<01FE0007FF001FFF803E0780380300700000700000E00000E00000E00000E00000E000
00E000007000007001C03801C03E03C01FFF8007FF0001FC0012147D9318>I<001F8000
3F80001F8000038000038000038000038000038003E3800FFB801FFF803C1F80380F8070
0780700380E00380E00380E00380E00380E00380E00380700780700780380F803C1F801F
FFF00FFBF803E3F0151C7E9B18>I<01F00007FC001FFE003E0F00380780700380700380
E001C0E001C0FFFFC0FFFFC0FFFFC0E000007000007001C03801C03E03C01FFF8007FF00
01FC0012147D9318>I<001F80007FC000FFE000E1E001C0C001C00001C00001C0007FFF
C0FFFFC0FFFFC001C00001C00001C00001C00001C00001C00001C00001C00001C00001C0
0001C00001C00001C00001C0007FFF007FFF007FFF00131C7F9B18>I<01E1F007FFF80F
FFF81E1E301C0E003807003807003807003807003807001C0E001E1E001FFC001FF80039
E0003800001C00001FFE001FFFC03FFFE07801F0700070E00038E00038E00038E0003878
00F07E03F01FFFC00FFF8001FC00151F7F9318>I<7E0000FE00007E00000E00000E0000
0E00000E00000E00000E3E000EFF800FFFC00FC1C00F80E00F00E00E00E00E00E00E00E0
0E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E07FC3FCFFE7FE7FC3FC171C80
9B18>I<03800007C00007C00007C0000380000000000000000000000000007FC000FFC0
007FC00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C0
0001C00001C00001C000FFFF00FFFF80FFFF00111D7C9C18>I<FE0000FE0000FE00000E
00000E00000E00000E00000E00000E3FF00E7FF00E3FF00E07800E0F000E1E000E3C000E
78000EF0000FF8000FFC000F9C000F0E000E0F000E07000E03800E03C0FFC7F8FFC7F8FF
C7F8151C7F9B18>107 D<7FE000FFE0007FE00000E00000E00000E00000E00000E00000
E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000
E00000E00000E00000E00000E0007FFFC0FFFFE07FFFC0131C7E9B18>I<7CE0E000FFFB
F8007FFFF8001F1F1C001E1E1C001E1E1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C
1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C007F1F1F00FFBFBF807F1F
1F001914819318>I<7E3E00FEFF807FFFC00FC1C00F80E00F00E00E00E00E00E00E00E0
0E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E07FC3FCFFE7FE7FC3FC171480
9318>I<01F0000FFE001FFF003E0F803803807001C07001C0E000E0E000E0E000E0E000
E0E000E0F001E07001C07803C03C07803E0F801FFF000FFE0001F00013147E9318>I<7E
3E00FEFF807FFFC00FC1E00F80E00F00700E00700E00380E00380E00380E00380E00380E
00380F00700F00700F80E00FC1E00FFFC00EFF800E3E000E00000E00000E00000E00000E
00000E00000E00007FC000FFE0007FC000151E809318>I<01E38007FB801FFF803E1F80
380F80700780700780E00380E00380E00380E00380E00380E00380700780700780380F80
3C1F801FFF800FFB8003E380000380000380000380000380000380000380000380003FF8
003FF8003FF8151E7E9318>I<7F87E0FF9FF07FBFF803F87803F03003E00003C00003C0
000380000380000380000380000380000380000380000380000380007FFE00FFFF007FFE
0015147F9318>I<07F7003FFF007FFF00780F00E00700E00700E007007C00007FE0001F
FC0003FE00001F00600780E00380E00380F00380F80F00FFFF00FFFC00E7F00011147D93
18>I<0180000380000380000380000380007FFFC0FFFFC0FFFFC0038000038000038000
0380000380000380000380000380000380000380400380E00380E00380E001C1C001FFC0
00FF80003E0013197F9818>I<7E07E0FE0FE07E07E00E00E00E00E00E00E00E00E00E00
E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E01E00F03E007FFFC03FFFE01FC
FC1714809318>I<7F8FF0FF8FF87F8FF01E03C00E03800E03800E038007070007070007
0700038E00038E00038E00038E0001DC0001DC0001DC0000F80000F80000700015147F93
18>I<FF8FF8FF8FF8FF8FF83800E03800E03800E01C01C01C01C01C71C01CF9C01CF9C0
1CD9C01CD9C00DDD800DDD800DDD800D8D800F8F800F8F8007070015147F9318>I<7F8F
F07F9FF07F8FF0070700078E00039E0001DC0001F80000F80000700000F00000F80001DC
00039E00038E000707000F07807F8FF0FF8FF87F8FF015147F9318>I<7F8FF0FF8FF87F
8FF00E01C00E03800E0380070380070700070700038700038600038E0001CE0001CE0000
CC0000CC0000DC0000780000780000780000700000700000700000F00000E00079E0007B
C0007F80003F00001E0000151E7F9318>I<3FFFF07FFFF07FFFF07001E07003C0700780
000F00001E00003C0000F80001F00003C0000780000F00701E00703C0070780070FFFFF0
FFFFF0FFFFF014147F9318>I<0007E0001FE0007FE000780000E00000E00000E00000E0
0000E00000E00000E00000E00000E00000E00000E00001E0007FC000FF8000FF80007FC0
0001E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E0
00007800007FE0001FE00007E013247E9F18>I<7C0000FF0000FFC00003C00000E00000
E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000F000007FC000
3FE0003FE0007FC000F00000E00000E00000E00000E00000E00000E00000E00000E00000
E00000E00000E00003C000FFC000FF00007C000013247E9F18>125
D<060C1F1E3FBEFBF8F1F060C00F067C9B18>I E /Fm 52 122 df<000078007C7800FC
7801FC7803C000038000078000078000078000078000078000078000078000078000FFFC
78FFFC78FFFC780780780780780780780780780780780780780780780780780780780780
78078078078078078078078078078078078078078078078078078078152480A31A>12
D<007000E001C003C0078007000F000E001E001C003C003C003800780078007800780070
00F000F000F000F000F000F000F000F000F000F000F000F000F000F00070007800780078
00780038003C003C001C001E000E000F000700078003C001C000E000700C327DA413>40
D<E000700038003C001E000E000F0007000780038003C003C001C001E001E001E001E000
E000F000F000F000F000F000F000F000F000F000F000F000F000F000F000E001E001E001
E001E001C003C003C00380078007000F000E001E003C0038007000E0000C327DA413>I<
FFE0FFE0FFE00B037F8C10>45 D<F0F0F0F004047B830E>I<00C001C007C0FFC0FFC0FB
C003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C003
C003C003C003C003C003C003C003C0FFFFFFFFFFFF10227CA118>49
D<03F0000FFC001FFE003C1F003007807007C06003C0E003E0C001E04001E04001E00001
E00001E00001E00003C00003C0000780000780000F00001E00003C0000780000F00001E0
0001C0000380000700000E00001C0000380000700000FFFFE0FFFFE0FFFFE013227EA118
>I<01F00007FC001FFF003E0F003807807003C02003C02003C00003C00003C00003C000
0780000780000F00001E0003FC0003F80003FE00000F000007800003C00003C00001E000
01E00001E00001E00001E08001E0C003C0E003C07007803C0F801FFF000FFC0003F00013
237EA118>I<001F00001F00002F00002F00006F0000EF0000CF0001CF0001CF00038F00
038F00078F00070F000F0F000E0F001E0F003C0F003C0F00780F00780F00F00F00FFFFF8
FFFFF8FFFFF8000F00000F00000F00000F00000F00000F00000F00000F00000F0015217F
A018>I<3FFF803FFF803FFF803C00003C00003C00003C00003C00003C00003C00003C00
003C00003CF8003FFE003FFF003F0F803E07803C03C03803C00001E00001E00001E00001
E00001E00001E00001E04003C04003C0E003C07007807C1F003FFE000FFC0003F0001322
7EA018>I<007E0001FF0003FF0007C1000F00001E00001E00003C00003C000078000078
000078F800F1FE00F7FF00FF0F80FC0780F803C0F803C0F801C0F001E0F001E0F001E0F0
01E0F001E07001E07001E07801E07803C03803C03C03801C07801F0F000FFE0007FC0001
F00013237EA118>I<FFFFE0FFFFE0FFFFE00000E00001C0000380000780000700000E00
001E00001C00003C0000380000780000780000F00000F00000E00001E00001E00001E000
03C00003C00003C00003C00003C000078000078000078000078000078000078000078000
13217EA018>I<01F00007FC000FFE001E0F003C07803C07807803C07803C07803C07803
C07803C03803803C07801E0F000F1E0007FC0003F8000FFE001E0F003C07807803C07803
C0F001E0F001E0F001E0F001E0F001E0F001E07803C07803C03C07803E0F801FFF0007FC
0001F00013237EA118>I<001F0000001F0000003F8000003F8000003B8000007BC00000
73C0000071C00000F1E00000F1E00000E0E00001E0F00001E0F00001C0F00003C0780003
C078000380780007803C0007803C0007003C000F001E000F001E000FFFFE001FFFFF001F
FFFF001C000F003C0007803C00078038000780780003C0780003C0700003C0F00001E0F0
0001E0E00001E01B237EA220>65 D<FFFC00FFFF80FFFFC0F007F0F001F0F00078F0003C
F0003CF0003CF0003CF0003CF00038F00078F000F0F003E0FFFFC0FFFF00FFFFC0F00FE0
F001F8F00078F0003CF0001CF0001EF0001EF0001EF0001EF0001EF0003CF0007CF000F8
F003F0FFFFE0FFFFC0FFFE0017237BA220>I<000FF000007FFC0000FFFF0001F01F0003
C00700078000000F0000001E0000003E0000003C0000003C000000780000007800000078
000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0
0000007800000078000000780000003C0000003C0000003E0000001E0000000F00000007
80008003C0038001F00F8000FFFF00007FFC00000FF00019257DA31F>I<FFFE0000FFFF
C000FFFFE000F003F000F000F800F0007C00F0003E00F0001E00F0000F00F0000F00F000
0780F0000780F0000780F00003C0F00003C0F00003C0F00003C0F00003C0F00003C0F000
03C0F00003C0F00003C0F0000380F0000780F0000780F0000780F0000F00F0001F00F000
1E00F0003C00F000FC00F003F800FFFFE000FFFFC000FFFE00001A237BA223>I<FFFFF0
FFFFF0FFFFF0F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000
F00000F00000FFFFE0FFFFE0FFFFE0F00000F00000F00000F00000F00000F00000F00000
F00000F00000F00000F00000F00000F00000F00000FFFFF8FFFFF8FFFFF815237BA21D>
I<F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0
04237CA20D>73 D<F00000F00000F00000F00000F00000F00000F00000F00000F00000F0
0000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F0
0000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000FFFFC0FF
FFC0FFFFC012237BA21A>76 D<FC00007EFE0000FEFE0000FEFE0000FEF70001DEF70001
DEF70001DEF78003DEF380039EF380039EF3C0079EF3C0079EF1C0071EF1C0071EF1E00F
1EF0E00E1EF0E00E1EF0F01E1EF0F01E1EF0701C1EF0783C1EF0783C1EF038381EF03C78
1EF03C781EF01C701EF01C701EF01EF01EF00EE01EF00EE01EF00FE01EF007C01EF007C0
1EF007C01EF000001E1F237BA22A>I<FC001EFE001EFE001EFE001EF7001EF7001EF380
1EF3801EF3C01EF1C01EF1C01EF1E01EF0E01EF0F01EF0F01EF0781EF0781EF0381EF03C
1EF03C1EF01E1EF01E1EF00E1EF00F1EF0071EF0071EF0079EF0039EF0039EF001DEF001
DEF000FEF000FEF000FEF0007E17237BA222>I<001FC000007FF00001FFFC0003F07E00
07C01F000F800F801F0007C01E0003C03C0001E03C0001E0780000F0780000F0780000F0
70000070F0000078F0000078F0000078F0000078F0000078F0000078F0000078F0000078
F0000078780000F0780000F0780000F07C0001F03C0001E03E0003E01E0003C01F0007C0
0F800F8007C01F0003F07E0001FFFC00007FF000001FC0001D257DA324>I<FFFE00FFFF
80FFFFC0F003E0F000F0F00078F00078F0003CF0003CF0003CF0003CF0003CF0003CF000
78F00078F000F0F003E0FFFFC0FFFF80FFFE00F00000F00000F00000F00000F00000F000
00F00000F00000F00000F00000F00000F00000F00000F00000F0000016237BA21F>I<FF
FC00FFFF80FFFFC0F003E0F000F0F00078F00038F0003CF0003CF0003CF0003CF0003CF0
0038F00078F000F0F003E0FFFFC0FFFF80FFFE00F01E00F00F00F00700F00780F00380F0
03C0F001E0F001E0F000F0F000F0F00078F00038F0003CF0001EF0001EF0000F18237BA2
1F>82 D<00FE0003FFC007FFE00F81E01E00603C00003C00007800007800007800007800
007800007C00003C00003F00001FC0000FFC0007FF0001FF80003FC00007E00001F00000
F00000F8000078000078000078000078000078000078C000F0E000F0F801E07E07C03FFF
800FFF0001FC0015257EA31B>I<FFFFFFF0FFFFFFF0FFFFFFF0000F0000000F0000000F
0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F
0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F
0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F
0000000F0000000F00001C237EA221>I<F0003CF0003CF0003CF0003CF0003CF0003CF0
003CF0003CF0003CF0003CF0003CF0003CF0003CF0003CF0003CF0003CF0003CF0003CF0
003CF0003CF0003CF0003CF0003CF0003CF0003CF0003CF0003C7800787800787800783C
00F01E01E01F87E00FFFC003FF0000FC0016247BA221>I<F0001F0001E0F0003F8001E0
F0003F8001E078003F8001C078003B8003C078007BC003C0780073C003C03C0071C00780
3C00F1C007803C00F1E007803C00E1E007801E00E0E00F001E01E0E00F001E01E0F00F00
1E01C0F00F000F01C0701E000F03C0701E000F03C0781E00070380781C00078380383C00
078380383C000787803C3C000387003C38000387001C380003C7001C780003CF001C7800
01CE001E700001CE000E700001CE000E700001EE000EF00000EC000EE00000FC0007E000
00FC0007E00000FC0007E00000780007C0002B237FA22E>87 D<07E01FF83FFC381E201E
000F000F000F000F00FF07FF1FFF3E0F780FF00FF00FF00FF00FF83F7FFF3FEF1F8F1016
7E9517>97 D<F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000
F00000F00000F00000F1F000F7FC00FFFE00FC1F00F80F00F00780F00780F003C0F003C0
F003C0F003C0F003C0F003C0F003C0F003C0F00780F00780F80F00FC3E00FFFE00F7F800
F1F00012237CA219>I<01FC0007FF000FFF801F03803C0180780000780000700000F000
00F00000F00000F00000F00000F000007800007800007800003C00401F03C00FFFC007FF
8001FC0012167E9516>I<0003C00003C00003C00003C00003C00003C00003C00003C000
03C00003C00003C00003C00003C003E3C00FFBC01FFFC03F0FC03C07C07803C07803C0F0
03C0F003C0F003C0F003C0F003C0F003C0F003C0F003C07803C07803C03C07C03E0FC01F
FFC00FFBC003E3C012237EA219>I<03F00007FC001FFE003E0F003C0780780380780380
F001C0FFFFC0FFFFC0FFFFC0F00000F00000F000007000007800007800003C00801F0780
0FFF8007FF0001F80012167E9516>I<003F00FF01FF03C0038007800780078007800780
078007800780FFF8FFF8FFF8078007800780078007800780078007800780078007800780
0780078007800780078007800780102380A20F>I<01F07807FFF80FFFF81F1F001E0F00
3C07803C07803C07803C07803C07801E0F001F1F000FFE001FFC0019F000380000380000
3C00001FFE001FFFC01FFFE03FFFF07801F07800F8F00078F00078F00078F000787800F0
3E03E01FFFC00FFF8001FC0015217F9518>I<F000F000F000F000F000F000F000F000F0
00F000F000F000F000F1F8F3FCF7FEFE1EF80FF80FF00FF00FF00FF00FF00FF00FF00FF0
0FF00FF00FF00FF00FF00FF00FF00FF00F10237CA219>I<F0F0F0F00000000000000000
00F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F004237DA20B>I<F00000F00000
F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F01F80
F03F00F03E00F07C00F0F800F1F000F3E000F7C000FFC000FFC000FFE000FFE000FDF000
F8F800F07800F07C00F03E00F01E00F01F00F00F00F00F80F007C012237CA218>107
D<F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0
04237DA20B>I<F0F807C0F3FE1FF0F7FF3FF8FE0F7078FC0FE07CF807C03CF807C03CF0
07803CF007803CF007803CF007803CF007803CF007803CF007803CF007803CF007803CF0
07803CF007803CF007803CF007803CF007803CF007803C1E167C9527>I<F1F8F3FCF7FE
FE1EF80FF80FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00F
F00F10167C9519>I<01FC0007FF000FFF801F07C03C01E07800F07800F0700070F00078
F00078F00078F00078F00078F000787800F07800F07C01F03E03E01F07C00FFF8007FF00
01FC0015167F9518>I<F1F000F7FC00FFFE00FC3F00F80F00F00780F00780F007C0F003
C0F003C0F003C0F003C0F003C0F003C0F007C0F00780F00F80F80F00FC3E00FFFE00F7F8
00F1F000F00000F00000F00000F00000F00000F00000F00000F00000F00000F000001220
7C9519>I<03E3C007FBC00FFFC01F0FC03C07C07C03C07803C0F803C0F003C0F003C0F0
03C0F003C0F003C0F003C0F803C07803C07803C03C07C03F0FC01FFFC00FFBC003E3C000
03C00003C00003C00003C00003C00003C00003C00003C00003C00003C012207E9519>I<
F0E0F3E0F7E0FF00FE00FC00F800F800F000F000F000F000F000F000F000F000F000F000
F000F000F000F0000B167C9511>I<07F01FFC3FFE3C0E7806780078007C003F003FF01F
F80FFC01FE001F000F000F000FC00FF81EFFFE3FFC0FF010167F9513>I<0F000F000F00
0F000F000F00FFF8FFF8FFF80F000F000F000F000F000F000F000F000F000F000F000F00
0F000F000F080F1C07FC07F803E00E1C7F9B12>I<F00FF00FF00FF00FF00FF00FF00FF0
0FF00FF00FF00FF00FF00FF00FF00FF00FF00FF01FF83F7FFF7FCF1F0F10167C9519>I<
F001E0F001E07803C07803C07803C03C07803C07803C07801E07001E0F001E0F000F0E00
0F1E000F1E00071C00079C0007BC0003B80003B80003F80001F00001F00013167F9516>
I<F007803CF00FC03CF00FC03C780DC078781DC078781DE078781CE0783C18E0F03C38E0
F03C38F0F01C38F0E01E3871E01E3071E01E7079E00E7079C00E7039C00F603BC007603B
8007601B8007C01F8007C01F8003C01F001E167F9521>I<F001E0F001E07803C07803C0
7C03C03C07803C07801E07801E07001E0F000F0F000F0E00071E00079E00039C00039C00
039C0001980001D80000F80000F00000F00000F00000E00000E00001E00001C00001C000
0380007F80007F00007E000013207F9516>121 D E /Fn 25 90
df<FFC0FFC00A027D8A0F>45 D<3078F8787005057C840D>I<003F8000C1E00100F00200
780400780400780F007C0F807C0F807C0F00780600780000F80000F00001E00001C00003
80000700000E00001C0000380000600000C0000180000300200600200800401000403FFF
C07FFF80FFFF80161E7E9D17>50 D<007F000183C00201E00400F00700F00F00F00F01F0
0F01F00001E00001E00003C0000380000700000E0000F800000E000007000007800007C0
0003C00007C03007C07807C0F807C0F807C0F00780800F00400E00201C0018780007E000
141F7D9D17>I<0000600000600000E00001C00003C00005C0000DC00009C00011C00023
8000438000C380008380010380020380040700080700180700100700200700400700FFFF
F0000E00000E00000E00000E00000E00001C00001E0001FFE0141E7E9D17>I<01803001
FFE003FFC003FF0003FC00020000020000020000040000040000040000047C0005870006
03800C01800801C00001C00001E00001E00001E00001E07003C0F803C0F003C0E0038080
0780400700400E00201C0018700007C000141F7D9D17>I<000010000000180000003800
0000380000007800000078000000FC000001BC0000013C0000033C0000023C0000063C00
00043E0000081E0000081E0000101E0000101E0000201E0000200F0000400F0000400F00
00FFFF0000800F0001000F8001000780020007800200078004000780040007800C0007C0
3E0007C0FF807FFC1E207E9F22>65 D<0001F808000E061800380138007000F801E00078
03C0007007800030078000300F0000301F0000301E0000303E0000203C0000007C000000
7C0000007C0000007C000000F8000000F8000000F8000000F8000000F800000078000040
78000080780000803C0000803C0001001C0002000E00020006000C000300100001C0E000
003F00001D217B9F21>67 D<07FFFF00007C01E0003C00F0003C00780078003C0078003C
0078001E0078001E0078001E0078001F00F0001F00F0001F00F0001F00F0001F00F0001F
00F0001F01E0001E01E0003E01E0003E01E0003E01E0003C01E0007C03C0007803C000F0
03C000F003C001E003C003C003C0078007800F0007803C00FFFFE000201F7E9E23>I<07
FFFFF8007C0078003C0038003C0018007800180078000800780008007800080078000800
78080800F0100000F0100000F0100000F0300000FFF00000F0700001E0200001E0200001
E0200001E0200001E0000801E0001003C0001003C0001003C0002003C0002003C0006003
C000C0078001C0078007C0FFFFFF801D1F7E9E1F>I<07FFFFF8007C0078003C0038003C
001800780018007800080078000800780008007800080078000800F0100000F0100000F0
100000F0300000F0700000FFF00001E0600001E0200001E0200001E0200001E0200001E0
000003C0000003C0000003C0000003C0000003C0000003C000000780000007C00000FFFE
00001D1F7E9E1E>I<0001FC04000F030C003C009C0070007C00E0003C01C00038038000
18078000180F0000181F0000181E0000183E0000103C0000007C0000007C0000007C0000
007C000000F8000000F8000000F8007FFCF80003E0780001E0780001E0780003C0780003
C03C0003C03C0003C01C0003C00E0007C007000B800380118001E06080003F80001E217B
9F24>I<07FFC7FFC0007C00F800003C007800003C007800007800F000007800F0000078
00F000007800F000007800F000007800F00000F001E00000F001E00000F001E00000F001
E00000FFFFE00000F001E00001E003C00001E003C00001E003C00001E003C00001E003C0
0001E003C00003C007800003C007800003C007800003C007800003C007800003C0078000
07800F000007C00F8000FFF8FFF800221F7E9E22>I<07FFE0007C00003C00003C000078
0000780000780000780000780000780000F00000F00000F00000F00000F00000F00001E0
0001E00001E00001E00001E00001E00003C00003C00003C00003C00003C00003C0000780
0007C000FFFC00131F7F9E10>I<07FFF000007E0000003C0000003C0000007800000078
00000078000000780000007800000078000000F0000000F0000000F0000000F0000000F0
000000F0000001E0000001E0000001E0000001E0000001E0008001E0010003C0010003C0
010003C0030003C0020003C0060003C0060007801E0007807C00FFFFFC00191F7E9E1C>
76 D<07FC0000FFC0007C0000F800003C00017800003C00017800004E0002F000004E00
02F000004E0004F000004E0004F000004E0008F000004E0008F00000870011E000008700
11E00000870021E00000870021E00000870041E00000838041E00001038083C000010380
83C00001038103C00001038203C0000101C203C0000101C403C0000201C40780000201C8
0780000201C80780000201D00780000200F00780000600E00780000600E00F00000F00C0
0F8000FFE0C1FFF8002A1F7E9E2A>I<07FC01FFC0003E003E00003E001800003E001800
004F001000004F001000004780100000478010000043C010000043C010000083C0200000
81E020000081E020000080F020000080F020000080782000010078400001007C40000100
3C400001003C400001001E400001001E400002000F800002000F800002000F8000020007
80000200078000060003800006000300000F00010000FFE0010000221F7E9E22>I<0003
F800001E0E000038070000E0038001C001C003C001E0078000E00F0000F00F0000F01E00
00F01E0000F83E0000F83C0000F87C0000F87C0000F87C0000F87C0000F8F80001F0F800
01F0F80001F0F80001F0F80003E0780003E0780003C0780007C07C0007803C000F003C00
1E001E001C000E0038000700F00003C3C00000FE00001D217B9F23>I<07FFFF00007C03
C0003C01E0003C00F0007800F0007800F8007800F8007800F8007800F8007800F000F001
F000F001E000F003C000F0078000F00F0000FFF80001E0000001E0000001E0000001E000
0001E0000001E0000003C0000003C0000003C0000003C0000003C0000003C00000078000
0007C00000FFFC00001D1F7E9E1F>I<07FFFC00007C0700003C03C0003C01E0007801E0
007801F0007801F0007801F0007801F0007801E000F003E000F003C000F0078000F00F00
00F03C0000FFF00001E0300001E0380001E01C0001E01C0001E01C0001E01E0003C03E00
03C03E0003C03E0003C03E0003C03E0003C03E0207803E0407C01F04FFFC0F18000003E0
1F207E9E21>82 D<003F040060CC01803C03801C03001C0700180600080E00080E00080E
00080E00000F00000F80000FE00007FE0003FF8001FFC0007FE00007E00001E00000E000
00F00000F04000E04000E04000E04000E06000C0600180E00380F80300C60C0081F80016
217D9F19>I<3FFFFFF03C0780F03007803060078030400F0010400F0010C00F0010800F
0010800F0010800F0010001E0000001E0000001E0000001E0000001E0000001E0000003C
0000003C0000003C0000003C0000003C0000003C00000078000000780000007800000078
0000007800000078000000F0000001F800007FFFE0001C1F7A9E21>I<FFFC3FF80F8007
C007800300078003000F0002000F0002000F0002000F0002000F0002000F0002001E0004
001E0004001E0004001E0004001E0004001E0004003C0008003C0008003C0008003C0008
003C0008003C000800380010003800100038001000380020003C0040001C0040001C0080
000E0100000706000001F800001D20799E22>I<03FFC0FFC0007F007E00003E00380000
1E003000001E002000000F004000000F008000000F81000000078200000007C600000003
C400000003E800000001F000000001F000000000F000000000F800000000F8000000017C
000000023C000000043C0000000C1E000000081E000000101F000000200F000000400F80
0000C0078000008007C000010003C000070003E0001F8007E000FFE01FFE00221F7F9E22
>88 D<FFF003FF1F8000F80F0000600F8000400780008007C0018003C0010003E0020001
E0040001F00C0001F0080000F0100000F8200000786000007C4000003C8000003F000000
1F0000001E0000001E0000001E0000001C0000003C0000003C0000003C0000003C000000
3C00000038000000780000007C00000FFFC000201F7A9E22>I E
/Fo 3 21 df<FFFFFFC0FFFFFFC01A027C8B23>0 D<03C00FF01FF83FFC7FFE7FFEFFFF
FFFFFFFFFFFFFFFFFFFF7FFE7FFE3FFC1FF80FF003C010127D9317>15
D<000000C0000003C000000F0000003C000000F0000003C00000070000001C0000007800
0001E00000078000001E00000078000000E0000000780000001E0000000780000001E000
0000780000001C0000000700000003C0000000F00000003C0000000F00000003C0000000
C0000000000000000000000000000000000000000000000000000000007FFFFF80FFFFFF
C01A247C9C23>20 D E /Fp 62 122 df<00F8F001F8F003F8F00780F00700F00F00F00F
00F00F00F00F00F00F00F00F00F00F00F0FFF8F0FFF8F0FFF8F00F00F00F00F00F00F00F
00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F
00F00F00F01420809F18>13 D<007000E001C00380078007000E001E001E003C003C003C
0078007800780078007000F000F000F000F000F000F000F000F000F000F000F000F00070
0078007800780078003C003C003C001E001E000E0007000780038001C000E000700C2E7E
A112>40 D<E000700038001C001E000E0007000780078003C003C003C001E001E001E001
E000E000F000F000F000F000F000F000F000F000F000F000F000F000E001E001E001E001
E003C003C003C00780078007000E001E001C0038007000E0000C2E7DA112>I<78787878
1830306060E0050A7D830D>44 D<FFC0FFC0FFC00A037F8B0F>I<F0F0F0F004047C830D>
I<000100030003000600060006000C000C000C0018001800180030003000300060006000
6000C000C000C00180018001800300030003000600060006000C000C000C001800180018
00300030003000600060006000C000C000C000102D7DA117>I<00C001C00FC0FFC0FFC0
F3C003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C0
03C003C003C003C003C0FFFEFFFEFFFE0F1F7C9E17>49 D<07F0000FFC001FFE00383F00
700F00600780E00780E003C04003C04003C00003C00003C00003C0000780000780000F00
000E00001C00003C0000780000E00001C0000380000700000E00001C0000380000700000
FFFFC0FFFFC0FFFFC0121F7E9E17>I<03F0000FFC001FFE003C1F00780F003007802007
80000780000780000780000F00000F00003E0003FC0003F80003FC00001E00000F000007
800003800003C00003C00003C00003C08003C0C003C0C00780700F807C1F003FFE000FFC
0003F00012207E9E17>I<003E00003E00005E00005E0000DE0001DE00019E00039E0003
9E00079E00071E000F1E000E1E001E1E003C1E003C1E00781E00781E00F01E00FFFFF0FF
FFF0FFFFF0001E00001E00001E00001E00001E00001E00001E00001E00141E7F9D17>I<
F0F0F0F0000000000000000000000000F0F0F0F004147C930D>58
D<001F0000001F0000003F8000003B8000003B8000007BC0000073C0000071C00000F1E0
0000E1E00000E0E00001E0F00001E0F00001C0F00003C0780003C078000380780007803C
0007803C0007003C000FFFFE000FFFFE000FFFFE001E000F001E000F003C000F803C0007
803C000780780007C0780003C0780003C0F00003E01B207F9F1E>65
D<FFF800FFFF00FFFF80F00FC0F003E0F001E0F000F0F000F0F000F0F000F0F000F0F001
E0F003C0F01F80FFFF00FFFF00FFFF80F007E0F001E0F000F0F00078F00078F00078F000
78F00078F00078F000F0F001F0F007E0FFFFC0FFFF80FFFC0015207B9F1E>I<001FC000
FFF801FFFC03E03C07800C0F00001E00003E00003C00007C0000780000780000780000F0
0000F00000F00000F00000F00000F00000F00000F000007800007800007800007C00003C
00003E00001E00000F000207800E03E03E01FFFC00FFF0001FC017227DA01D>I<FFFC00
FFFF80FFFFC0F007E0F001F0F000F8F00078F0003CF0003CF0001EF0001EF0000EF0000F
F0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0001EF0001EF0001EF0003C
F0007CF000F8F001F0F007E0FFFFC0FFFF80FFFC0018207B9F21>I<FFFFC0FFFFC0FFFF
C0F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000FFFF
80FFFF80FFFF80F00000F00000F00000F00000F00000F00000F00000F00000F00000F000
00F00000F00000FFFFE0FFFFE0FFFFE013207B9F1B>I<FFFFC0FFFFC0FFFFC0F00000F0
0000F00000F00000F00000F00000F00000F00000F00000F00000F00000FFFF00FFFF00FF
FF00F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F0
0000F00000F00000F0000012207B9F1A>I<001FE000FFF801FFFE03E03E07800E0F0000
1E00003E00003C00007C0000780000780000780000F00000F00000F00000F00000F00000
F00000F003FEF003FE7803FE78001E78001E7C001E3C001E3E001E1E001E0F001E07801E
03E03E01FFFE00FFF8001FC017227DA01E>I<F00078F00078F00078F00078F00078F000
78F00078F00078F00078F00078F00078F00078F00078F00078FFFFF8FFFFF8FFFFF8F000
78F00078F00078F00078F00078F00078F00078F00078F00078F00078F00078F00078F000
78F00078F0007815207B9F20>I<F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0
F0F0F0F0F0F0F0F0F0F004207C9F0D>I<F0003EF0007CF000F8F001F0F003E0F007C0F0
0780F00F00F01F00F03E00F07C00F0F800F1F000F3F800F3F800F7FC00FFBC00FF1E00FE
1F00FC0F00F80780F00780F003C0F003E0F001E0F000F0F000F8F00078F0003CF0003CF0
001EF0001F18207B9F20>75 D<F00000F00000F00000F00000F00000F00000F00000F000
00F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F000
00F00000F00000F00000F00000F00000F00000F00000F00000F00000FFFF80FFFF80FFFF
8011207B9F19>I<F80001F8FC0003F8FC0003F8F4000378F6000778F6000778F6000778
F3000E78F3000E78F3000E78F3801E78F3801E78F1801C78F1C03C78F1C03C78F0C03878
F0C03878F0E07878F0E07878F0607078F070F078F070F078F030E078F039E078F039E078
F019C078F019C078F019C078F00F8078F00F8078F00F8078F00000781D207B9F28>I<FC
0078FE0078FE0078F60078F70078F70078F38078F38078F38078F3C078F1C078F1E078F1
E078F0E078F0F078F07078F07078F07878F03878F03C78F03C78F01C78F01E78F00E78F0
0E78F00E78F00778F00778F00378F003F8F003F8F001F815207B9F20>I<003F000000FF
C00003FFF00007E1F8000F807C001F003E001E001E003C000F003C000F00780007807800
078078000780F00003C0F00003C0F00003C0F00003C0F00003C0F00003C0F00003C0F000
03C0F00003C0F80007C07800078078000780780007803C000F003C000F001E001E001F00
3E000F807C0007E1F80003FFF00000FFC000003F00001A227DA021>I<FFF800FFFF00FF
FF80F00FC0F003E0F001E0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F001E0F0
03E0F00FC0FFFF80FFFF00FFF800F00000F00000F00000F00000F00000F00000F00000F0
0000F00000F00000F00000F00000F0000014207B9F1D>I<003F000000FFC00003FFF000
07E1F8000F807C001F003E001E001E003C000F003C000F00780007807800078078000780
F00003C0F00003C0F00003C0F00003C0F00003C0F00003C0F00003C0F00003C0F00003C0
F00003C07800078078000780781E07803C0F0F003C0F8F001E079E001F03FE000F83FC00
07E1F80003FFF00000FFF800003F780000007C0000003E0000001E0000001F0000000F80
1A277DA021>I<FFF800FFFF00FFFF80F007C0F003E0F001E0F000F0F000F0F000F0F000
F0F000F0F001E0F003E0F007C0FFFF80FFFF00FFF800F03C00F01E00F01E00F00F00F00F
00F00780F00780F003C0F001C0F001E0F000F0F000F0F00078F00078F0003C16207B9F1D
>I<01FC0007FF800FFFC01F03C03C00C03C00007800007800007800007800007800007C
00003C00003F00001FE0000FFC0007FE0001FF00003F800007C00003C00003E00001E000
01E00001E00001E00001E00001C0C003C0F007C0FC0F807FFF001FFE0003F80013227EA0
19>I<FFFFFFC0FFFFFFC0FFFFFFC0001E0000001E0000001E0000001E0000001E000000
1E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E000000
1E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E000000
1E0000001E0000001E0000001E0000001E0000001E00001A207E9F1F>I<F000F0F000F0
F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0
F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000F07801E0
7801E03C03C03C03C01F0F800FFF0007FE0001F80014217B9F1F>I<F00001E0F00001E0
780003C0780003C0780003C03C0007803C0007803C0007801E000F001E000F001F000F00
0F001E000F001E0007801C0007803C0007803C0003C0380003C0780003C0780001E07000
01E0F00001E0F00000F0E00000F1E00000F1E0000071C000007BC000003B8000003B8000
003F8000001F0000001F00001B207F9F1E>I<F0007C000FF0007E000FF0007E000F7800
6E000E7800EE001E7800E7001E7800E7001E3C00E7003C3C01E7803C3C01C7803C3C01C3
803C1E01C380781E03C3C0781E0383C0780E0381C0700F0381C0F00F0781E0F00F0701E0
F0070700E0E0078700E1E0078F00E1E0078E00F1E0038E0071C0038E0071C003CE0073C0
01DC00738001DC003B8001DC003B8001DC003B8000F8003F0000F8001F0000F8001F0028
207F9F2B>I<780007807C000F003E001F001E001E000F003C000F807C000780780003C0
F00003E1F00001F1E00000F3C000007FC000007F8000003F0000001F0000001E0000003F
0000007F8000007FC00000F3C00001F1E00001E0F00003C0F80007C0780007803C000F00
3E001F001E001E000F003C000F807C0007C0780003C0F00003E01B207F9F1E>I<F80000
F87C0001F03C0001E03E0003E01F0003C00F0007800F800F8007C00F0003C01F0003E01E
0001F03C0000F07C00007878000078F000003CF000001CE000001FE000000FC000000780
000007800000078000000780000007800000078000000780000007800000078000000780
00000780000007800000078000000780001D20809F1E>I<FFFFF8FFFFF8FFFFF80000F0
0001F00001E00003C00007C0000780000F80000F00001E00003E00003C00007C00007800
00F00001F00001E00003E00003C0000780000F80000F00001F00001E00003C00007C0000
780000FFFFFCFFFFFCFFFFFC16207D9F1C>I<07E03FF87FFC701E401F000F000F000F00
3F07FF1FFF7E0FF80FF00FF00FF00FF83F7FFF3FEF1F8F10147E9316>97
D<F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F000
00F1F000F7FC00FFFE00FC3E00F80F00F00F00F00780F00780F00780F00780F00780F007
80F00780F00F00F00F00F81F00FC3E00FFFC00F7F800F1E00011207D9F17>I<03F00FFC
1FFE3E0E3C0278007800F000F000F000F000F000F000780078003C013E0F1FFF0FFE03F0
10147E9314>I<0007800007800007800007800007800007800007800007800007800007
8000078000078007C7800FF7801FFF803E1F807C0780780780F80780F00780F00780F007
80F00780F00780F00780F00780780780780F803E1F801FFF800FF78007C78011207E9F17
>I<03F0000FFC001FFE003E1F003C0700780700700380FFFF80FFFF80FFFF80F00000F0
0000F000007000007800003C01003E07001FFF0007FE0001F80011147F9314>I<007E01
FE03FE078007000F000F000F000F000F000F000F00FFF0FFF0FFF00F000F000F000F000F
000F000F000F000F000F000F000F000F000F000F000F000F000F20809F0E>I<03E0F00F
FFF01FFFF03E3E003C1E00780F00780F00780F00780F00780F003C1E003E3E001FFC003F
F80033E0003000003800003FFE003FFF801FFFC03FFFE07803F0F000F0F000F0F000F0F8
01F07E07E03FFFC00FFF0003FC00141E7F9317>I<F000F000F000F000F000F000F000F0
00F000F000F000F000F1F8F3FCF7FEFC1FF80FF80FF00FF00FF00FF00FF00FF00FF00FF0
0FF00FF00FF00FF00FF00FF00F10207D9F17>I<F0F0F0F00000000000000000F0F0F0F0
F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F004207D9F0B>I<01E001E001E001E00000000000
000000000000000000000001E001E001E001E001E001E001E001E001E001E001E001E001
E001E001E001E001E001E001E001E001E001E001E001E001E0C3C0FFC0FF803F000B2983
9F0C>I<F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F000
00F00000F01F00F01E00F03C00F07800F0F000F1E000F3C000F78000FFC000FFC000FFE0
00F9F000F8F000F0F800F07C00F07C00F03E00F01E00F01F00F00F8011207D9F16>I<F0
F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F004207D9F0B
>I<F0FC07E0F3FE1FF0F7FF3FF8FE0FF07CF807C03CF807C03CF007803CF007803CF007
803CF007803CF007803CF007803CF007803CF007803CF007803CF007803CF007803CF007
803CF007803CF007803C1E147D9325>I<F1F8F3FCF7FEFC1FF80FF80FF00FF00FF00FF0
0FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00F10147D9317>I<01F80007FE001FFF
803F0FC03C03C07801E07801E0F000F0F000F0F000F0F000F0F000F0F000F07801E07801
E03C03C03F0FC01FFF8007FE0001F80014147F9317>I<F1F000F7FC00FFFE00FC3E00F8
1F00F00F00F00F80F00780F00780F00780F00780F00780F00780F00F00F00F00F81F00FC
3E00FFFC00F7F800F1E000F00000F00000F00000F00000F00000F00000F00000F00000F0
0000111D7D9317>I<03C7800FF7801FFF803E1F807C0F80780780780780F00780F00780
F00780F00780F00780F00780F807807807807C0F803E1F801FFF800FF78007C780000780
000780000780000780000780000780000780000780000780111D7E9317>I<F0E0F3E0F7
E0FF00FC00FC00F800F800F000F000F000F000F000F000F000F000F000F000F000F0000B
147D9310>I<07F01FFC3FFC780C7800780078007C003FC01FF00FF803F8007C003C003C
C03CF07CFFF87FF00FC00E147F9311>I<1E001E001E001E001E001E00FFF0FFF0FFF01E
001E001E001E001E001E001E001E001E001E001E001E001E001E201FF00FF007C00C1A7F
9910>I<F00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF01F
F03FFFFF7FEF3F0F10147D9317>I<F003C0F003C07803807807807807803C0F003C0F00
3C0F001E0E001E1E001E1E000F1C000F3C000F3C0007380007380007B80003F00003F000
01E00012147F9315>I<F01F00F0F01F80F0F01F80F0781B81E0783B81E0783BC1E07839
C1E03C31C3C03C71C3C03C71E3C01C70E3801E60E7801E60E7801EE0E7800EE077000EC0
77000EC0770007C07E0007C03E0007803E001C147F931F>I<7801E07C03C03E07801E0F
000F0F00079E0003FC0003F80001F80000F00001F00001F80003FC00079E000F0F000E0F
001E07803C03C07801E0F801F01414809315>I<F003C0F003C07807807807807C07803C
0F003C0F001E0F001E1E000E1E000F1C000F1C00073C0007380003B80003B80003B00001
F00001F00000E00000E00001C00001C00001C0000380000780007F00007E00007C000012
1D7F9315>I E /Fq 34 122 df<FFFEFFFEFFFE0F037F8E14>45
D<F8F8F8F8F805057A8411>I<00180000380000F80007F800FFF800FFF800F8F80000F8
0000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F8
0000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F8
0000F80000F80000F80000F80000F8007FFFF07FFFF07FFFF014287BA71E>49
D<00FE0003FFC007FFE00FFFF01F03F83C00FC38007E78003E70003EF0001FF0001F6000
1F20001F00001F00001F00001F00003E00003E00007C00007C0000F80001F00001E00003
C0000780000F00001E00003C0000780000F00001E00003C0000780000F00001E00003C00
007FFFFF7FFFFF7FFFFF7FFFFF18287EA71E>I<007F000001FFC00007FFF0000FFFF800
1FC1F8003E007C003C003E0078003E0038003E0010003E0000003E0000003E0000003C00
00007C000000FC000001F8000007F00000FFE00000FFC00000FFE00000FFF0000001FC00
00007C0000003E0000001F0000001F0000000F8000000F8000000F8000000F8000000F80
40000F8060001F00F0001F00F8003F007E007E003F81FC001FFFF8000FFFF00003FFE000
007F000019297EA71E>I<0003F0000007F0000005F000000DF000000DF000001DF00000
39F0000039F0000079F0000079F00000F1F00000F1F00001E1F00003E1F00003E1F00007
C1F00007C1F0000F81F0000F81F0001F01F0001F01F0003E01F0007C01F0007C01F000F8
01F000FFFFFF80FFFFFF80FFFFFF80FFFFFF800001F0000001F0000001F0000001F00000
01F0000001F0000001F0000001F0000001F0000001F00019277EA61E>I<3FFFFC3FFFFC
3FFFFC3FFFFC3E00003E00003E00003E00003E00003E00003E00003E00003E00003E0000
3E3F003EFFC03FFFE03FFFF03FE1F83F807C3F003E3E003E00003E00001F00001F00001F
00001F00001F00001F00001F20001F60003E70003EF8007C7C00FC3F03F81FFFF00FFFE0
07FF8000FE0018287EA61E>I<0001FF00000FFFE0003FFFF8007FFFF800FE01F801F800
3003F0001007C000000F8000001F8000001F0000003E0000003E0000007E0000007C0000
007C0000007C000000F8000000F8000000F8000000F8000000F8000000F8000000F80000
00F8000000F8000000F80000007C0000007C0000007C0000007E0000003E0000003E0000
001F0000001F8000000F80000007C0000003F0000401F8001C00FE00FC007FFFFC003FFF
F8000FFFE00001FF001E2C7CAA26>67 D<FFFFF00000FFFFFC0000FFFFFF0000F8003FC0
00F80007E000F80003F000F80001F800F80000FC00F800007C00F800003E00F800001E00
F800001F00F800000F00F800000F80F800000F80F800000780F8000007C0F8000007C0F8
000007C0F8000007C0F8000007C0F8000007C0F8000007C0F8000007C0F8000007C0F800
0007C0F800000780F800000F80F800000F80F800000F80F800001F00F800001F00F80000
3E00F800007E00F800007C00F80000F800F80003F000F80007E000F8003FC000FFFFFF00
00FFFFFE0000FFFFF00000222A7BA92B>I<FFFFFFE0FFFFFFE0FFFFFFE0FFFFFFE0F800
0000F8000000F8000000F8000000F8000000F8000000F8000000F8000000F8000000F800
0000F8000000F8000000F8000000F8000000FFFFFF80FFFFFF80FFFFFF80FFFFFF80F800
0000F8000000F8000000F8000000F8000000F8000000F8000000F8000000F8000000F800
0000F8000000F8000000F8000000F8000000F8000000F8000000FFFFFFF0FFFFFFF0FFFF
FFF0FFFFFFF01C2A7BA924>I<0001FF00000FFFE0003FFFFC007FFFFE00FF01FE01F800
3E03F0000C07C000000FC000001F8000001F0000003F0000003E0000007E0000007C0000
007C0000007C000000F8000000F8000000F8000000F8000000F8000000F8000000F80000
00F8001FFEF8001FFEF8001FFE7C001FFE7C00003E7C00003E7E00003E3E00003E3F0000
3E1F00003E1F80003E0FC0003E07C0003E03F0003E01F8003E00FF00FE007FFFFE003FFF
FC000FFFE00001FF001F2C7CAA28>71 D<F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8
F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8052A7AA911>73
D<FE0000007F80FE0000007F80FE0000007F80FF000000FF80FB000000EF80FB800001EF
80FB800001EF80FB800001EF80F9C00003CF80F9C00003CF80F9C00003CF80F8E000078F
80F8E000078F80F8F0000F8F80F8F0000F8F80F870000F0F80F878001F0F80F878001F0F
80F838001E0F80F83C003E0F80F83C003E0F80F81E007C0F80F81E007C0F80F80E00780F
80F80F00F80F80F80F00F80F80F80700F00F80F80781F00F80F80781F00F80F80381E00F
80F803C3E00F80F803C3E00F80F801C3C00F80F801E7C00F80F800E7800F80F800E7800F
80F800E7800F80F8007F000F80F8007F000F80F8007F000F80F8003E000F80F80000000F
80292A7BA934>77 D<FFFFE000FFFFFC00FFFFFF00F8003F80F8000FC0F80007E0F80001
E0F80001F0F80000F0F80000F8F80000F8F80000F8F80000F8F80000F8F80000F8F80000
F0F80001F0F80001F0F80003E0F8000FC0F8003F80FFFFFF00FFFFFE00FFFFF000F80000
00F8000000F8000000F8000000F8000000F8000000F8000000F8000000F8000000F80000
00F8000000F8000000F8000000F8000000F8000000F8000000F8000000F80000001D2A7B
A926>80 D<FFFFFFFFF0FFFFFFFFF0FFFFFFFFF0FFFFFFFFF00000F800000000F8000000
00F800000000F800000000F800000000F800000000F800000000F800000000F800000000
F800000000F800000000F800000000F800000000F800000000F800000000F800000000F8
00000000F800000000F800000000F800000000F800000000F800000000F800000000F800
000000F800000000F800000000F800000000F800000000F800000000F800000000F80000
0000F800000000F800000000F800000000F800000000F800000000F800000000F8000024
2A7EA929>84 D<01FE000FFF803FFFC03FFFE03C03F03001F00001F80000F80000F80000
F80000F80000F8007FF807FFF81FFFF83FE0F87F00F8FC00F8F800F8F800F8F800F8FC01
F87E07F87FFFF83FFFF81FFCF80FE0F8151B7E9A1D>97 D<007FC001FFF007FFFC0FFFFC
1FC07C1F00083E00007C00007C00007C0000F80000F80000F80000F80000F80000F80000
F800007C00007C00007E00003E00001F000C1FC07C0FFFFC07FFFC01FFF0007F80161B7E
9A1B>99 D<00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00
003E00003E00003E00003E00003E00FC3E03FF3E07FFFE0FFFFE1FC1FE3F007E3E003E7C
003E7C003EFC003EF8003EF8003EF8003EF8003EF8003EF8003EF8003EFC003E7C003E7C
003E3E007E3F00FE1FC1FE0FFFFE07FFBE03FF3E00FC3E172A7EA91F>I<007E0003FF80
07FFC00FFFE01F83F03F00F03E00787C00787C003878003CFFFFFCFFFFFCFFFFFCFFFFFC
F80000F80000F800007800007C00007C00003E00003F000C1FC07C0FFFFC07FFFC01FFF0
007F80161B7E9A1B>I<001FC0007FC000FFC001FFC003F00003E00007C00007C00007C0
0007C00007C00007C00007C00007C00007C000FFFE00FFFE00FFFE0007C00007C00007C0
0007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C0
0007C00007C00007C00007C00007C00007C00007C00007C00007C000122A7FA912>I<00
F8078003FE7FC00FFFFFC01FFFFFC01F07C0003E03E0003E03E0007C01F0007C01F0007C
01F0007C01F0007C01F0007C01F0003E03E0003E03E0001F07C0001FFFC0003FFF80003B
FE000038F8000078000000780000003C0000003FFFC0003FFFF8001FFFFC001FFFFE003F
FFFF007C007F00F8001F80F8000F80F8000F80F8000F80FC001F807E003F003F80FE003F
FFFE000FFFF80007FFF00000FF80001A287E9A1E>I<F80000F80000F80000F80000F800
00F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F83F00F8FF
80FBFFC0FFFFE0FF07E0FE03F0FC01F0FC01F0FC01F0F801F0F801F0F801F0F801F0F801
F0F801F0F801F0F801F0F801F0F801F0F801F0F801F0F801F0F801F0F801F0F801F0F801
F0F801F0142A7BA91F>I<F8F8F8F8F800000000000000000000F8F8F8F8F8F8F8F8F8F8
F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8052A7CA90E>I<F8F8F8F8F8F8F8F8F8F8F8F8
F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8052A7CA90E>
108 D<F83F003F00F8FFC0FFC0FBFFE3FFE0FFFFF7FFF0FF83F783F0FE01FE01F8FC00FC
00F8FC00FC00F8FC00FC00F8F800F800F8F800F800F8F800F800F8F800F800F8F800F800
F8F800F800F8F800F800F8F800F800F8F800F800F8F800F800F8F800F800F8F800F800F8
F800F800F8F800F800F8F800F800F8F800F800F8F800F800F8F800F800F8251B7B9A30>
I<F83F00F8FF80FBFFC0FFFFE0FF07E0FE03F0FC01F0FC01F0FC01F0F801F0F801F0F801
F0F801F0F801F0F801F0F801F0F801F0F801F0F801F0F801F0F801F0F801F0F801F0F801
F0F801F0F801F0F801F0141B7B9A1F>I<007F000001FFC00007FFF0000FFFF8001FC1FC
003F007E003E003E007C001F007C001F0078000F00F8000F80F8000F80F8000F80F8000F
80F8000F80F8000F80F8000F807C001F007C001F007E003F003E003E003F007E001FC1FC
000FFFF80007FFF00001FFC000007F0000191B7E9A1E>I<F83F00F9FFC0FBFFE0FFFFF0
FF07F0FC01F8F800FCF800FCF8007CF8007EF8003EF8003EF8003EF8003EF8003EF8003E
F8003EF8007CF8007CF800FCFC00F8FC03F8FF07F0FFFFE0FBFFC0F9FF80F87E00F80000
F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F8000017277B
9A1F>I<F838F8F8F9F8FBF8FFC0FF00FE00FE00FC00FC00F800F800F800F800F800F800
F800F800F800F800F800F800F800F800F800F800F8000D1B7B9A14>114
D<03FC001FFF803FFFC07FFFC07C07C0F80080F80000F80000F80000FC00007F80007FF8
003FFE001FFF0007FF8000FFC0000FE00007E00003E00003E04003E0E007E0FC0FC0FFFF
C07FFF801FFE0003F800131B7E9A17>I<07C00007C00007C00007C00007C00007C00007
C000FFFFC0FFFFC0FFFFC007C00007C00007C00007C00007C00007C00007C00007C00007
C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C04007E1C003
FFE003FFE001FF8000FC0013227FA116>I<F801F0F801F0F801F0F801F0F801F0F801F0
F801F0F801F0F801F0F801F0F801F0F801F0F801F0F801F0F801F0F801F0F801F0F801F0
F801F0F801F0F803F0F803F0FC0FF0FFFFF07FFDF03FF9F01FC1F0141B7B9A1F>I<7C00
0FC03E001F803F001F001F803E000F807C0007C0FC0003E0F80001F1F00001FBE00000FF
C000007FC000003F8000001F0000001F0000003F8000007FC00000FBC00000F3E00001F1
F00003E0F80007C07C000F807C000F803E001F001F003E000F807E000FC0FC0007E01B1B
809A1C>120 D<F8000F80FC000F807C001F007E001F003E003E003E003E001F003E001F
007C001F007C000F807C000F80F80007C0F80007C0F00007C1F00003E1F00003E1E00001
E1E00001E3E00001F3C00000F3C00000F38000007380000073800000370000003F000000
3E0000001E0000001E0000003C0000003C0000003C0000007800000078000000F0000000
F000007FE000007FE000007FC000007F00000019277F9A1C>I E
/Fr 18 122 df<FFFFFFFFFFFFE00000FFFFFFFFFFFFFE0000FFFFFFFFFFFFFFC000FFFF
FFFFFFFFFFF000FFFFFFFFFFFFFFF800001FFF800001FFFE00001FFF8000007FFF00001F
FF8000003FFF80001FFF8000001FFFC0001FFF8000000FFFC0001FFF80000007FFE0001F
FF80000007FFF0001FFF80000007FFF0001FFF80000003FFF0001FFF80000003FFF8001F
FF80000003FFF8001FFF80000003FFF8001FFF80000003FFF8001FFF80000003FFF8001F
FF80000003FFF8001FFF80000003FFF8001FFF80000003FFF8001FFF80000003FFF0001F
FF80000007FFF0001FFF80000007FFE0001FFF8000000FFFE0001FFF8000000FFFC0001F
FF8000001FFF80001FFF8000003FFF00001FFF8000007FFE00001FFF800001FFFC00001F
FF800007FFF000001FFFFFFFFFFFC000001FFFFFFFFFFE0000001FFFFFFFFFFF8000001F
FFFFFFFFFFF000001FFF800000FFFC00001FFF8000003FFF00001FFF8000000FFFC0001F
FF80000007FFE0001FFF80000003FFF0001FFF80000003FFF8001FFF80000001FFF8001F
FF80000001FFFC001FFF80000000FFFC001FFF80000000FFFE001FFF80000000FFFE001F
FF80000000FFFE001FFF80000000FFFF001FFF800000007FFF001FFF800000007FFF001F
FF800000007FFF001FFF800000007FFF001FFF80000000FFFF001FFF80000000FFFF001F
FF80000000FFFF001FFF80000000FFFE001FFF80000000FFFE001FFF80000001FFFE001F
FF80000001FFFC001FFF80000003FFFC001FFF80000007FFF8001FFF80000007FFF0001F
FF8000001FFFE0001FFF8000003FFFE0001FFF800001FFFF80FFFFFFFFFFFFFFFF00FFFF
FFFFFFFFFFFC00FFFFFFFFFFFFFFF000FFFFFFFFFFFFFFC000FFFFFFFFFFFFF800004847
7CC654>66 D<FFFFFFFFFFFFC0000000FFFFFFFFFFFFFE000000FFFFFFFFFFFFFFC00000
FFFFFFFFFFFFFFF00000FFFFFFFFFFFFFFFC0000001FFF800007FFFF0000001FFF800000
7FFF8000001FFF8000000FFFE000001FFF80000007FFF000001FFF80000001FFF800001F
FF80000000FFFC00001FFF800000007FFE00001FFF800000003FFF00001FFF800000001F
FF00001FFF800000000FFF80001FFF800000000FFFC0001FFF8000000007FFC0001FFF80
00000007FFE0001FFF8000000003FFE0001FFF8000000003FFF0001FFF8000000003FFF0
001FFF8000000003FFF8001FFF8000000001FFF8001FFF8000000001FFF8001FFF800000
0001FFFC001FFF8000000001FFFC001FFF8000000001FFFC001FFF8000000001FFFC001F
FF8000000001FFFC001FFF8000000001FFFE001FFF8000000000FFFE001FFF8000000000
FFFE001FFF8000000000FFFE001FFF8000000000FFFE001FFF8000000000FFFE001FFF80
00000000FFFE001FFF8000000000FFFE001FFF8000000000FFFE001FFF8000000000FFFE
001FFF8000000000FFFE001FFF8000000000FFFE001FFF8000000000FFFE001FFF800000
0001FFFE001FFF8000000001FFFC001FFF8000000001FFFC001FFF8000000001FFFC001F
FF8000000001FFFC001FFF8000000001FFF8001FFF8000000001FFF8001FFF8000000001
FFF8001FFF8000000003FFF0001FFF8000000003FFF0001FFF8000000003FFF0001FFF80
00000007FFE0001FFF8000000007FFE0001FFF800000000FFFC0001FFF800000000FFF80
001FFF800000001FFF80001FFF800000003FFF00001FFF800000003FFE00001FFF800000
007FFC00001FFF80000001FFF800001FFF80000003FFF000001FFF8000000FFFE000001F
FF8000007FFFC000001FFF800003FFFF0000FFFFFFFFFFFFFFFE0000FFFFFFFFFFFFFFF8
0000FFFFFFFFFFFFFFC00000FFFFFFFFFFFFFE000000FFFFFFFFFFFFC00000004F477CC6
5B>68 D<FFFFFFFFFFFF800000FFFFFFFFFFFFFC0000FFFFFFFFFFFFFF0000FFFFFFFFFF
FFFFC000FFFFFFFFFFFFFFF000001FFF80000FFFFC00001FFF800001FFFE00001FFF8000
007FFF00001FFF8000003FFF80001FFF8000001FFFC0001FFF8000000FFFC0001FFF8000
000FFFE0001FFF8000000FFFE0001FFF80000007FFF0001FFF80000007FFF0001FFF8000
0007FFF0001FFF80000007FFF8001FFF80000007FFF8001FFF80000007FFF8001FFF8000
0007FFF8001FFF80000007FFF8001FFF80000007FFF8001FFF80000007FFF8001FFF8000
0007FFF8001FFF80000007FFF0001FFF80000007FFF0001FFF80000007FFF0001FFF8000
000FFFE0001FFF8000000FFFE0001FFF8000000FFFC0001FFF8000001FFF80001FFF8000
003FFF80001FFF8000007FFF00001FFF800001FFFE00001FFF80000FFFF800001FFFFFFF
FFFFF000001FFFFFFFFFFFC000001FFFFFFFFFFE0000001FFFFFFFFFF00000001FFFC000
00000000001FFFC00000000000001FFFC00000000000001FFFC00000000000001FFFC000
00000000001FFFC00000000000001FFFC00000000000001FFFC00000000000001FFFC000
00000000001FFFC00000000000001FFFC00000000000001FFFC00000000000001FFFC000
00000000001FFFC00000000000001FFFC00000000000001FFFC00000000000001FFFC000
00000000001FFFC00000000000001FFFC00000000000001FFFC00000000000001FFFC000
00000000001FFFC00000000000001FFFC00000000000001FFFC00000000000001FFFC000
00000000001FFFC00000000000001FFFC00000000000FFFFFFFFF800000000FFFFFFFFF8
00000000FFFFFFFFF800000000FFFFFFFFF800000000FFFFFFFFF80000000045477CC651
>80 D<0007FFFC000000007FFFFFC0000001FFFFFFF8000003FFFFFFFE000007FE001FFF
000007FF0003FFC0000FFF8001FFE0000FFF8000FFF0000FFF80007FF0000FFF80007FF8
000FFF80007FF80007FF00003FFC0007FF00003FFC0003FE00003FFC0000F800003FFC00
000000003FFC00000000003FFC00000000003FFC00000000003FFC00000007FFFFFC0000
00FFFFFFFC000007FFFFFFFC00003FFFE03FFC0000FFFE003FFC0003FFF0003FFC0007FF
C0003FFC000FFF00003FFC001FFE00003FFC003FFC00003FFC007FF800003FFC007FF800
003FFC00FFF000003FFC00FFF000003FFC00FFF000003FFC00FFF000003FFC00FFF00000
3FFC00FFF000007FFC007FF80000FFFC007FF80001EFFC003FFC0003EFFC003FFF0007CF
FF000FFFC03F8FFFF807FFFFFF07FFFC01FFFFFC03FFFC007FFFF001FFFC0003FF80007F
F8362E7DAD3A>97 D<007FC00000000000FFFFC00000000000FFFFC00000000000FFFFC0
0000000000FFFFC00000000000FFFFC0000000000003FFC0000000000001FFC000000000
0001FFC0000000000001FFC0000000000001FFC0000000000001FFC0000000000001FFC0
000000000001FFC0000000000001FFC0000000000001FFC0000000000001FFC000000000
0001FFC0000000000001FFC0000000000001FFC0000000000001FFC0000000000001FFC0
000000000001FFC0000000000001FFC0000000000001FFC0000000000001FFC000000000
0001FFC00FFC00000001FFC07FFFC0000001FFC3FFFFF0000001FFCFFFFFFC000001FFDF
F00FFF000001FFFF8003FF800001FFFE0001FFC00001FFF800007FE00001FFF000007FF0
0001FFE000003FF80001FFE000001FFC0001FFE000001FFC0001FFE000001FFE0001FFE0
00001FFE0001FFE000000FFF0001FFE000000FFF0001FFE000000FFF0001FFE000000FFF
0001FFE000000FFF8001FFE000000FFF8001FFE000000FFF8001FFE000000FFF8001FFE0
00000FFF8001FFE000000FFF8001FFE000000FFF8001FFE000000FFF8001FFE000000FFF
8001FFE000000FFF8001FFE000000FFF0001FFE000000FFF0001FFE000000FFF0001FFE0
00001FFE0001FFE000001FFE0001FFE000001FFC0001FFE000001FFC0001FFE000003FF8
0001FFF000003FF80001FFF800007FF00001FFFC0000FFE00001FFFE0001FFC00001FFBF
0007FF800001FF1FE01FFE000001FE0FFFFFFC000001FC03FFFFF0000001F800FFFF8000
0001F0001FF800000039487CC742>I<00001FFFC0000000FFFFF8000007FFFFFE00001F
FFFFFF80007FFC00FFC000FFE001FFC001FFC003FFE003FF8003FFE007FF0003FFE00FFE
0003FFE00FFE0003FFE01FFC0001FFC01FFC0001FFC03FFC0000FF803FFC00003E007FF8
000000007FF8000000007FF800000000FFF800000000FFF800000000FFF800000000FFF8
00000000FFF800000000FFF800000000FFF800000000FFF800000000FFF800000000FFF8
000000007FF8000000007FF8000000007FFC000000003FFC000000003FFC000000001FFC
000000F81FFE000000F80FFE000000F80FFF000001F007FF800003F003FFC00007E001FF
E0000FC000FFF0001F80007FFE00FF00001FFFFFFE000007FFFFF8000000FFFFE0000000
1FFE00002D2E7CAD35>I<00001FFE00000001FFFFE0000007FFFFF800001FFFFFFE0000
7FFC07FF0000FFE001FF8001FFC0007FC003FF80003FE007FF00003FF00FFE00001FF01F
FE00000FF81FFC00000FF83FFC00000FFC3FFC000007FC7FFC000007FC7FF8000007FC7F
F8000007FE7FF8000007FEFFF8000007FEFFF8000007FEFFFFFFFFFFFEFFFFFFFFFFFEFF
FFFFFFFFFEFFFFFFFFFFFCFFF800000000FFF800000000FFF800000000FFF8000000007F
F8000000007FF8000000007FFC000000003FFC000000003FFC000000003FFC0000001C1F
FE0000003E0FFE0000003E07FF0000007E07FF000000FC03FF800001F801FFC00003F000
7FF0001FE0003FFE00FFC0001FFFFFFF800007FFFFFE000000FFFFF80000000FFF80002F
2E7DAD36>101 D<00000000001F8000007FF000FFE00007FFFF03FFF0001FFFFFC7FFF0
007FFFFFFFC7F800FFE03FFE0FF801FF800FFC0FF803FF0007FE0FF807FE0003FF07F007
FE0003FF07F00FFC0001FF81C00FFC0001FF80000FFC0001FF80001FFC0001FFC0001FFC
0001FFC0001FFC0001FFC0001FFC0001FFC0001FFC0001FFC0001FFC0001FFC0000FFC00
01FF80000FFC0001FF80000FFC0001FF800007FE0003FF000007FE0003FF000003FF0007
FE000001FF800FFC000000FFE03FF8000001FFFFFFF0000001DFFFFFC0000003C7FFFF00
000003C07FF000000007C0000000000007C0000000000007C0000000000007C000000000
0007E0000000000007F0000000000007F8000000000007FFFFFFF0000007FFFFFFFF0000
03FFFFFFFFE00003FFFFFFFFF80001FFFFFFFFFE0001FFFFFFFFFF0000FFFFFFFFFF8000
7FFFFFFFFF8003FFFFFFFFFFC00FFFFFFFFFFFC01FF800001FFFE03FE0000001FFE07FC0
0000007FF07FC00000003FF0FF800000001FF0FF800000001FF0FF800000001FF0FF8000
00001FF0FF800000001FF07FC00000003FE07FC00000003FE03FE00000007FC03FF00000
00FFC01FFC000003FF800FFF00000FFF0003FFF000FFFC0000FFFFFFFFF000003FFFFFFF
C0000007FFFFFE000000003FFFC0000035447DAE3B>103 D<007FC00000000000FFFFC0
0000000000FFFFC00000000000FFFFC00000000000FFFFC00000000000FFFFC000000000
0003FFC0000000000001FFC0000000000001FFC0000000000001FFC0000000000001FFC0
000000000001FFC0000000000001FFC0000000000001FFC0000000000001FFC000000000
0001FFC0000000000001FFC0000000000001FFC0000000000001FFC0000000000001FFC0
000000000001FFC0000000000001FFC0000000000001FFC0000000000001FFC000000000
0001FFC0000000000001FFC0000000000001FFC001FFC0000001FFC00FFFF8000001FFC0
3FFFFE000001FFC0FFFFFF000001FFC1FC07FF800001FFC3E003FFC00001FFC7C001FFC0
0001FFCF0001FFE00001FFDE0000FFE00001FFDC0000FFE00001FFFC0000FFF00001FFF8
0000FFF00001FFF00000FFF00001FFF00000FFF00001FFF00000FFF00001FFE00000FFF0
0001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE0
0000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF0
0001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE0
0000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF0
0001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE0
0000FFF00001FFE00000FFF00001FFE00000FFF000FFFFFFC07FFFFFE0FFFFFFC07FFFFF
E0FFFFFFC07FFFFFE0FFFFFFC07FFFFFE0FFFFFFC07FFFFFE03B487CC742>I<00FC0001
FE0003FF0007FF800FFFC01FFFE01FFFE01FFFE01FFFE01FFFE01FFFE00FFFC007FF8003
FF0001FE0000FC0000000000000000000000000000000000000000000000000000000000
0000000000007FC0FFFFC0FFFFC0FFFFC0FFFFC0FFFFC003FFC001FFC001FFC001FFC001
FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001
FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001
FFC001FFC001FFC001FFC001FFC001FFC001FFC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18
497CC820>I<007FC000FFFFC000FFFFC000FFFFC000FFFFC000FFFFC00003FFC00001FF
C00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FF
C00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FF
C00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FF
C00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FF
C00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FF
C00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FF
C00001FFC00001FFC00001FFC00001FFC00001FFC000FFFFFF80FFFFFF80FFFFFF80FFFF
FF80FFFFFF8019487CC720>108 D<007FC001FFC00000FFE00000FFFFC00FFFF80007FF
FC0000FFFFC03FFFFE001FFFFF0000FFFFC0FFFFFF007FFFFF8000FFFFC1FC07FF80FE03
FFC000FFFFC3E003FFC1F001FFE00003FFC7C001FFC3E000FFE00001FFCF0001FFE78000
FFF00001FFDE0000FFEF00007FF00001FFDC0000FFEE00007FF00001FFFC0000FFFE0000
7FF80001FFF80000FFFC00007FF80001FFF00000FFF800007FF80001FFF00000FFF80000
7FF80001FFF00000FFF800007FF80001FFE00000FFF000007FF80001FFE00000FFF00000
7FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF00000
7FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF00000
7FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF00000
7FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF00000
7FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF00000
7FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF00000
7FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF00000
7FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF00000
7FF800FFFFFFC07FFFFFE03FFFFFF0FFFFFFC07FFFFFE03FFFFFF0FFFFFFC07FFFFFE03F
FFFFF0FFFFFFC07FFFFFE03FFFFFF0FFFFFFC07FFFFFE03FFFFFF05C2E7CAD63>I<007F
C001FFC00000FFFFC00FFFF80000FFFFC03FFFFE0000FFFFC0FFFFFF0000FFFFC1FC07FF
8000FFFFC3E003FFC00003FFC7C001FFC00001FFCF0001FFE00001FFDE0000FFE00001FF
DC0000FFE00001FFFC0000FFF00001FFF80000FFF00001FFF00000FFF00001FFF00000FF
F00001FFF00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FF
E00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FF
F00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FF
E00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FF
F00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FF
E00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FF
F000FFFFFFC07FFFFFE0FFFFFFC07FFFFFE0FFFFFFC07FFFFFE0FFFFFFC07FFFFFE0FFFF
FFC07FFFFFE03B2E7CAD42>I<00000FFF0000000000FFFFF000000007FFFFFE0000001F
FFFFFF8000003FFC03FFC00000FFE0007FF00001FF80001FF80003FF00000FFC0007FE00
0007FE000FFE000007FF000FFC000003FF001FFC000003FF803FFC000003FFC03FF80000
01FFC03FF8000001FFC07FF8000001FFE07FF8000001FFE07FF8000001FFE0FFF8000001
FFF0FFF8000001FFF0FFF8000001FFF0FFF8000001FFF0FFF8000001FFF0FFF8000001FF
F0FFF8000001FFF0FFF8000001FFF0FFF8000001FFF0FFF8000001FFF07FF8000001FFE0
7FF8000001FFE07FF8000001FFE07FF8000001FFE03FFC000003FFC03FFC000003FFC01F
FC000003FF801FFE000007FF800FFE000007FF0007FF00000FFE0003FF80001FFC0001FF
C0003FF80000FFE0007FF000007FFC03FFE000001FFFFFFF80000007FFFFFE00000000FF
FFF0000000000FFF000000342E7DAD3B>I<007FC00FFC000000FFFFC07FFFC00000FFFF
C3FFFFF00000FFFFCFFFFFFC0000FFFFDFF01FFF0000FFFFFF8007FF800003FFFE0001FF
C00001FFF80000FFE00001FFF00000FFF00001FFE000007FF80001FFE000003FFC0001FF
E000003FFC0001FFE000003FFE0001FFE000001FFE0001FFE000001FFF0001FFE000001F
FF0001FFE000001FFF0001FFE000000FFF0001FFE000000FFF8001FFE000000FFF8001FF
E000000FFF8001FFE000000FFF8001FFE000000FFF8001FFE000000FFF8001FFE000000F
FF8001FFE000000FFF8001FFE000000FFF8001FFE000000FFF8001FFE000000FFF0001FF
E000001FFF0001FFE000001FFF0001FFE000001FFE0001FFE000001FFE0001FFE000003F
FC0001FFE000003FFC0001FFE000007FF80001FFF000007FF80001FFF80000FFF00001FF
FC0001FFE00001FFFE0003FFC00001FFFF0007FF800001FFFFE03FFE000001FFEFFFFFFC
000001FFE3FFFFF0000001FFE0FFFF80000001FFE01FF800000001FFE0000000000001FF
E0000000000001FFE0000000000001FFE0000000000001FFE0000000000001FFE0000000
000001FFE0000000000001FFE0000000000001FFE0000000000001FFE0000000000001FF
E0000000000001FFE0000000000001FFE0000000000001FFE0000000000001FFE0000000
0000FFFFFFC000000000FFFFFFC000000000FFFFFFC000000000FFFFFFC000000000FFFF
FFC00000000039427CAD42>I<00FF803F8000FFFF80FFF000FFFF83FFFC00FFFF87FFFE
00FFFF8FC3FF00FFFF8F07FF0003FF9E0FFF8001FFBC0FFF8001FFB80FFF8001FFF80FFF
8001FFF00FFF8001FFF007FF0001FFF007FF0001FFE003FE0001FFE000F80001FFE00000
0001FFE000000001FFC000000001FFC000000001FFC000000001FFC000000001FFC00000
0001FFC000000001FFC000000001FFC000000001FFC000000001FFC000000001FFC00000
0001FFC000000001FFC000000001FFC000000001FFC000000001FFC000000001FFC00000
0001FFC000000001FFC000000001FFC000000001FFC000000001FFC000000001FFC00000
0001FFC0000000FFFFFFE00000FFFFFFE00000FFFFFFE00000FFFFFFE00000FFFFFFE000
00292E7CAD31>114 D<000FFF00E0007FFFF3E001FFFFFFE007FFFFFFE00FF800FFE01F
C0001FE03F80000FE03F000007E07F000003E07F000003E0FF000003E0FF000003E0FF80
0003E0FFC0000000FFF0000000FFFE000000FFFFF800007FFFFFC0007FFFFFF0003FFFFF
FC001FFFFFFF000FFFFFFF8007FFFFFFC003FFFFFFE000FFFFFFF0003FFFFFF00003FFFF
F800001FFFF8000000FFFC0000001FFC7800000FFCF8000007FCF8000003FCFC000003FC
FC000003FCFE000003F8FE000003F8FF000003F8FF800007F0FFC0000FF0FFF0001FE0FF
FC00FFC0FFFFFFFF80FC7FFFFE00F81FFFF800E003FF8000262E7CAD2F>I<7FFFFFC000
FFFF807FFFFFC000FFFF807FFFFFC000FFFF807FFFFFC000FFFF807FFFFFC000FFFF8000
FFF000000FE00000FFF800000FC00000FFF800000FC000007FFC00000F8000007FFC0000
1F8000003FFC00001F0000003FFE00003F0000001FFE00003E0000001FFF00007E000000
0FFF00007C0000000FFF8000FC00000007FF8000F800000007FFC001F800000003FFC001
F000000003FFE003F000000003FFE003F000000001FFF003E000000001FFF007E0000000
00FFF007C000000000FFF80FC0000000007FF80F80000000007FFC1F80000000003FFC1F
00000000003FFE3F00000000001FFE3E00000000001FFF7E00000000000FFF7C00000000
000FFFFC00000000000FFFFC000000000007FFF8000000000007FFF8000000000003FFF0
000000000003FFF0000000000001FFE0000000000001FFE0000000000000FFC000000000
0000FFC00000000000007F800000000000007F800000000000003F000000000000003F00
0000000000003F000000000000003E000000000000007E000000000000007C0000000000
0000FC000000001F8000F8000000003FC001F8000000007FE001F000000000FFF003F000
000000FFF003E000000000FFF007E000000000FFF00FC000000000FFF01F8000000000FF
F03F80000000007FE07F00000000007F43FE00000000003FFFF800000000001FFFF00000
00000007FFC0000000000001FE00000000000039427EAD3F>121
D E /Fs 8 117 df<0003FF8000001FFFF000007FFFFE0000FE03FF0001F000FF8003C0
00FFC00780007FE00FF0007FF00FF8007FF01FFC007FF81FFE007FF81FFE007FF81FFE00
7FF81FFE007FF81FFE007FF80FFC007FF007F8007FF003F0007FF0000000FFE0000000FF
C0000001FF80000001FF00000003FE00000007FC0000001FF000000FFFC000000FFF8000
000FFFF800000003FE00000000FF800000007FE00000003FF00000003FF80000003FFC00
00001FFC0000001FFE0000001FFE0200001FFF1FC0001FFF3FE0001FFF7FF0001FFF7FF0
001FFFFFF8001FFFFFF8001FFFFFF8001FFEFFF8001FFEFFF0001FFE7FF0003FFC7FE000
3FFC3FC0003FF81F80007FF01FE000FFE007FC03FFC003FFFFFF0001FFFFFE00003FFFF0
000007FF800028397CB731>51 D<0000001FFF000030000001FFFFE000F000000FFFFFFC
01F000007FFFFFFE03F00001FFFE007F87F00003FFE0000FCFF0000FFF000003FFF0001F
FC000001FFF0003FF80000007FF0007FF00000003FF000FFC00000003FF001FFC0000000
1FF003FF800000000FF007FF000000000FF00FFF0000000007F00FFE0000000007F01FFE
0000000003F01FFE0000000003F03FFC0000000003F03FFC0000000001F03FFC00000000
01F07FFC0000000001F07FF80000000001F07FF80000000000007FF8000000000000FFF8
000000000000FFF8000000000000FFF8000000000000FFF8000000000000FFF800000000
0000FFF8000000000000FFF8000000000000FFF8000000000000FFF8000000000000FFF8
000000000000FFF80000000000007FF80000000000007FF80000000000007FF800000000
00007FFC0000000000F03FFC0000000000F03FFC0000000000F03FFC0000000000F01FFE
0000000000F01FFE0000000001E00FFE0000000001E00FFF0000000001E007FF00000000
03C003FF8000000003C001FFC0000000078000FFE00000000F00007FF00000001F00003F
F80000003E00001FFC0000007C00000FFF000001F8000003FFE00007F0000001FFFE003F
C00000007FFFFFFF000000000FFFFFFC0000000001FFFFF000000000001FFF0000003C3D
7BBB47>67 D<001FFF00000001FFFFF0000003FFFFFC000007F007FE00000FF801FF0000
1FFC00FF80001FFC007FC0001FFC007FE0001FFC003FE0000FF8003FF0000FF8003FF000
07F0003FF00001C0003FF0000000003FF0000000003FF0000000003FF0000000FFFFF000
000FFFFFF000007FF83FF00001FF803FF00007FE003FF0000FF8003FF0001FF0003FF000
3FE0003FF0007FE0003FF0007FE0003FF000FFC0003FF000FFC0003FF000FFC0003FF000
FFC0003FF000FFC0007FF0007FE0007FF0007FE000DFF0003FF0039FF8001FFC0F0FFFF0
07FFFE0FFFF001FFFC07FFF0003FE000FFF02C267DA530>97 D<0001FFC000000FFFF800
003FFFFE0000FF80FF0001FE003F8007FC001FC00FF8000FE00FF8000FF01FF00007F03F
F00007F83FF00007F87FE00007F87FE00003FC7FE00003FC7FE00003FCFFE00003FCFFFF
FFFFFCFFFFFFFFFCFFFFFFFFFCFFE0000000FFE0000000FFE0000000FFE00000007FE000
00007FE00000007FE00000003FE00000003FF000003C1FF000003C1FF000003C0FF80000
7807FC0000F803FE0001F001FF0007E000FFC03FC0003FFFFF000007FFFC000000FFE000
26267DA52D>101 D<00FF00000000FFFF00000000FFFF00000000FFFF00000000FFFF00
00000007FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF00
00000003FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF00
00000003FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF00
7FC00003FF01FFF80003FF07FFFC0003FF0F03FE0003FF1C01FF0003FF3001FF8003FF60
00FF8003FFE000FFC003FFC000FFC003FF8000FFC003FF8000FFC003FF8000FFC003FF00
00FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF00
00FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF00
00FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF00
00FFC003FF0000FFC003FF0000FFC003FF0000FFC0FFFFFC3FFFFFFFFFFC3FFFFFFFFFFC
3FFFFFFFFFFC3FFFFF303C7CBB37>104 D<00FF01FF8000FFFF0FFFF000FFFF3FFFFC00
FFFFFE03FF00FFFFF000FF8003FFC0007FC003FF80003FE003FF00003FF003FF00001FF8
03FF00001FFC03FF00000FFC03FF00000FFE03FF00000FFE03FF000007FE03FF000007FF
03FF000007FF03FF000007FF03FF000007FF03FF000007FF03FF000007FF03FF000007FF
03FF000007FF03FF000007FF03FF000007FE03FF000007FE03FF00000FFE03FF00000FFC
03FF00000FFC03FF00001FF803FF00001FF803FF00003FF003FF80003FE003FFC0007FC0
03FFF001FF8003FFFC07FF0003FF3FFFFC0003FF0FFFF00003FF01FF000003FF00000000
03FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF00000000
03FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF00000000
FFFFFC000000FFFFFC000000FFFFFC000000FFFFFC00000030377DA537>112
D<00FE03F000FFFE0FFE00FFFE1FFF00FFFE3C3F80FFFE707FC007FE60FFE003FEE0FFE0
03FEC0FFE003FFC0FFE003FF807FC003FF807FC003FF803F8003FF800E0003FF00000003
FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF
00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00
000003FF00000003FF00000003FF00000003FF00000003FF000000FFFFFE0000FFFFFE00
00FFFFFE0000FFFFFE000023267DA529>114 D<00078000000780000007800000078000
00078000000F8000000F8000000F8000000F8000001F8000001F8000003F8000003F8000
007F800000FF800001FF800007FF80001FFFFFF0FFFFFFF0FFFFFFF0FFFFFFF001FF8000
01FF800001FF800001FF800001FF800001FF800001FF800001FF800001FF800001FF8000
01FF800001FF800001FF800001FF800001FF800001FF800001FF800001FF800001FF8000
01FF803C01FF803C01FF803C01FF803C01FF803C01FF803C01FF803C01FF803C00FF8078
00FFC078007FC070003FE0E0001FFFC00007FF800001FF001E377EB626>116
D E /Ft 82 124 df<001F83E000F06E3001C078780380F8780300F03007007000070070
000700700007007000070070000700700007007000FFFFFF800700700007007000070070
000700700007007000070070000700700007007000070070000700700007007000070070
000700700007007000070070000700700007007000070070007FE3FF001D20809F1B>11
D<003F0000E0C001C0C00381E00701E00701E00700000700000700000700000700000700
00FFFFE00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700
E00700E00700E00700E00700E00700E00700E00700E07FC3FE1720809F19>I<003FE000
E0E001C1E00381E00700E00700E00700E00700E00700E00700E00700E00700E0FFFFE007
00E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E007
00E00700E00700E00700E00700E00700E07FE7FE1720809F19>I<001F81F80000F04F04
0001C07C06000380F80F000300F00F000700F00F00070070000007007000000700700000
070070000007007000000700700000FFFFFFFF0007007007000700700700070070070007
007007000700700700070070070007007007000700700700070070070007007007000700
700700070070070007007007000700700700070070070007007007000700700700070070
07007FE3FE3FF02420809F26>I<70F8F8F8F8F8F8F87070707070707070707020202020
20000000000070F8F8F87005217CA00D>33 D<7038F87CFC7EFC7E743A04020402040208
04080410081008201040200F0E7E9F17>I<70F8FCFC74040404080810102040060E7C9F
0D>39 D<0020004000800100020006000C000C0018001800300030003000700060006000
6000E000E000E000E000E000E000E000E000E000E000E000E00060006000600070003000
30003000180018000C000C000600020001000080004000200B2E7DA112>I<8000400020
00100008000C00060006000300030001800180018001C000C000C000C000E000E000E000
E000E000E000E000E000E000E000E000E000C000C000C001C00180018001800300030006
0006000C00080010002000400080000B2E7DA112>I<01800180018001800180C183F18F
399C0FF003C003C00FF0399CF18FC1830180018001800180018010147DA117>I<000600
000006000000060000000600000006000000060000000600000006000000060000000600
000006000000060000000600000006000000060000FFFFFFF0FFFFFFF000060000000600
000006000000060000000600000006000000060000000600000006000000060000000600
00000600000006000000060000000600001C207D9A23>I<70F8FCFC7404040408081010
2040060E7C840D>I<FFC0FFC00A027F8A0F>I<70F8F8F87005057C840D>I<0001000300
03000600060006000C000C000C00180018001800300030003000600060006000C000C000
C00180018001800300030003000600060006000C000C000C001800180018003000300030
00600060006000C000C000C000102D7DA117>I<03F0000E1C001C0E0018060038070070
0380700380700380700380F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F0
03C0F003C0F003C0F003C0F003C07003807003807003807807803807001806001C0E000E
1C0003F000121F7E9D17>I<018003800F80F38003800380038003800380038003800380
038003800380038003800380038003800380038003800380038003800380038007C0FFFE
0F1E7C9D17>I<03F0000C1C00100E00200700400780800780F007C0F803C0F803C0F803
C02007C00007C0000780000780000F00000E00001C0000380000700000600000C0000180
000300000600400C00401800401000803FFF807FFF80FFFF80121E7E9D17>I<03F0000C
1C00100E00200F00780F80780780780780380F80000F80000F00000F00000E00001C0000
380003F000003C00000E00000F000007800007800007C02007C0F807C0F807C0F807C0F0
0780400780400F00200E001C3C0003F000121F7E9D17>I<000600000600000E00000E00
001E00002E00002E00004E00008E00008E00010E00020E00020E00040E00080E00080E00
100E00200E00200E00400E00C00E00FFFFF0000E00000E00000E00000E00000E00000E00
000E0000FFE0141E7F9D17>I<1803001FFE001FFC001FF8001FE0001000001000001000
0010000010000010000011F000161C00180E001007001007800003800003800003C00003
C00003C07003C0F003C0F003C0E00380400380400700200600100E000C380003E000121F
7E9D17>I<007C000182000701000E03800C07801C078038030038000078000070000070
0000F1F000F21C00F40600F80700F80380F80380F003C0F003C0F003C0F003C0F003C070
03C07003C07003803803803807001807000C0E00061C0001F000121F7E9D17>I<400000
7FFFC07FFF807FFF80400100800200800200800400000800000800001000002000002000
00400000400000C00000C00001C000018000038000038000038000038000078000078000
078000078000078000078000078000030000121F7D9D17>I<03F0000C0C001006003003
002001806001806001806001807001807803003E03003F06001FC8000FF00003F80007FC
000C7E00103F00300F806003804001C0C001C0C000C0C000C0C000C0C000806001802001
001002000C0C0003F000121F7E9D17>I<03F0000E18001C0C0038060038070070070070
0380F00380F00380F003C0F003C0F003C0F003C0F003C07007C07007C03807C0180BC00E
13C003E3C0000380000380000380000700300700780600780E00700C002018001070000F
C000121F7E9D17>I<70F8F8F8700000000000000000000070F8F8F87005147C930D>I<70
F8F8F8700000000000000000000070F0F8F878080808101010202040051D7C930D>I<7F
FFFFE0FFFFFFF00000000000000000000000000000000000000000000000000000000000
000000FFFFFFF07FFFFFE01C0C7D9023>61 D<0FC0307040384038E03CF03CF03C603C00
38007000E000C00180018001000300020002000200020002000200000000000000000000
0007000F800F800F8007000E207D9F15>63 D<0001000000038000000380000003800000
07C0000007C0000007C0000009E0000009E0000009E0000010F0000010F0000010F00000
207800002078000020780000403C0000403C0000403C0000801E0000801E0000FFFE0001
000F0001000F0001000F00020007800200078002000780040003C00E0003C01F0007E0FF
C03FFE1F207F9F22>65 D<FFFFE0000F80380007801E0007801F0007800F0007800F8007
800F8007800F8007800F8007800F8007800F0007801F0007801E0007803C0007FFF00007
803C0007801E0007800F0007800F8007800780078007C0078007C0078007C0078007C007
8007C00780078007800F8007800F0007801F000F803C00FFFFF0001A1F7E9E20>I<000F
C040007030C001C009C0038005C0070003C00E0001C01E0000C01C0000C03C0000C07C00
00407C00004078000040F8000000F8000000F8000000F8000000F8000000F8000000F800
0000F8000000F8000000780000007C0000407C0000403C0000401C0000401E0000800E00
0080070001000380020001C0040000703800000FC0001A217D9F21>I<FFFFE0000F803C
0007801E000780070007800380078003C0078001E0078001E0078001F0078000F0078000
F0078000F8078000F8078000F8078000F8078000F8078000F8078000F8078000F8078000
F8078000F0078000F0078000F0078001E0078001E0078003C0078003800780070007800E
000F803C00FFFFE0001D1F7E9E23>I<FFFFFF000F800F00078003000780030007800100
078001800780008007800080078000800780808007808000078080000780800007818000
07FF80000781800007808000078080000780800007808000078000200780002007800020
078000400780004007800040078000C0078000C0078001800F800F80FFFFFF801B1F7E9E
1F>I<FFFFFF000F800F0007800300078003000780010007800180078000800780008007
80008007800080078080000780800007808000078080000781800007FF80000781800007
808000078080000780800007808000078000000780000007800000078000000780000007
80000007800000078000000FC00000FFFE0000191F7E9E1E>I<000FE0200078186000E0
04E0038002E0070001E00F0000E01E0000601E0000603C0000603C0000207C0000207800
0020F8000000F8000000F8000000F8000000F8000000F8000000F8000000F8007FFCF800
03E0780001E07C0001E03C0001E03C0001E01E0001E01E0001E00F0001E0070001E00380
02E000E0046000781820000FE0001E217D9F24>I<FFF8FFF80F800F8007800F0007800F
0007800F0007800F0007800F0007800F0007800F0007800F0007800F0007800F0007800F
0007800F0007FFFF0007800F0007800F0007800F0007800F0007800F0007800F0007800F
0007800F0007800F0007800F0007800F0007800F0007800F0007800F000F800F80FFF8FF
F81D1F7E9E22>I<FFFC0FC0078007800780078007800780078007800780078007800780
0780078007800780078007800780078007800780078007800780078007800FC0FFFC0E1F
7F9E10>I<0FFFC0007C00003C00003C00003C00003C00003C00003C00003C00003C0000
3C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C0000
3C00203C00F83C00F83C00F83C00F0380040780040700030E0000F800012207E9E17>I<
FFFC0FFC0FC003E007800180078001000780020007800400078008000780100007802000
0780400007808000078100000783000007878000078F80000793C0000791E00007A1E000
07C0F0000780F0000780780007803C0007803C0007801E0007801E0007800F0007800780
07800780078007C00FC007E0FFFC3FFC1E1F7E9E23>I<FFFE000FC00007800007800007
800007800007800007800007800007800007800007800007800007800007800007800007
800007800007800007800007800207800207800207800207800607800407800407800C07
801C0F807CFFFFFC171F7E9E1C>I<FF80001FF80F80001F800780001F0005C0002F0005
C0002F0005C0002F0004E0004F0004E0004F000470008F000470008F000470008F000438
010F000438010F000438010F00041C020F00041C020F00041C020F00040E040F00040E04
0F00040E040F000407080F000407080F000407080F000403900F000403900F000401E00F
000401E00F000401E00F000E00C00F001F00C01F80FFE0C1FFF8251F7E9E2A>I<FF803F
F807C007C007C0038005E0010005E0010004F001000478010004780100043C0100043C01
00041E0100040F0100040F010004078100040781000403C1000401E1000401E1000400F1
000400F1000400790004003D0004003D0004001F0004001F0004000F0004000700040007
000E0003001F000300FFE001001D1F7E9E22>I<001F800000F0F00001C0380007801E00
0F000F000E0007001E0007803C0003C03C0003C07C0003E0780001E0780001E0F80001F0
F80001F0F80001F0F80001F0F80001F0F80001F0F80001F0F80001F0F80001F0780001E0
7C0003E07C0003E03C0003C03C0003C01E0007800E0007000F000F0007801E0001C03800
00F0F000001F80001C217D9F23>I<FFFFE0000F80780007801C0007801E0007800F0007
800F8007800F8007800F8007800F8007800F8007800F8007800F0007801E0007801C0007
80780007FFE0000780000007800000078000000780000007800000078000000780000007
80000007800000078000000780000007800000078000000FC00000FFFC0000191F7E9E1F
>I<FFFF80000F80F0000780780007803C0007801E0007801E0007801F0007801F000780
1F0007801F0007801E0007801E0007803C00078078000780F00007FF80000781C0000780
E0000780F0000780700007807800078078000780780007807C0007807C0007807C000780
7C0407807E0407803E040FC01E08FFFC0F10000003E01E207E9E21>82
D<07E0800C1980100780300380600180600180E00180E00080E00080E00080F00000F000
007800007F00003FF0001FFC000FFE0003FF00001F800007800003C00003C00001C08001
C08001C08001C08001C0C00180C00380E00300F00600CE0C0081F80012217D9F19>I<7F
FFFFE0780F01E0600F0060400F0020400F0020C00F0030800F0010800F0010800F001080
0F0010000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F000000
0F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F000000
0F0000000F0000001F800007FFFE001C1F7E9E21>I<FFFC3FF80FC007C0078003800780
010007800100078001000780010007800100078001000780010007800100078001000780
010007800100078001000780010007800100078001000780010007800100078001000780
01000780010007800100038002000380020001C0020001C0040000E00800007018000038
2000000FC0001D207E9E22>I<FFF003FE1F8000F80F0000600F80006007800040078000
4003C0008003C0008003C0008001E0010001E0010001F0010000F0020000F0020000F806
000078040000780400003C0800003C0800003C0800001E1000001E1000001F3000000F20
00000F20000007C0000007C0000007C000000380000003800000038000000100001F207F
9E22>I<FFF07FF81FF01F800FC007C00F00078003800F00078001000F0007C001000780
07C00200078007C00200078007C0020003C009E0040003C009E0040003C009E0040003E0
10F00C0001E010F0080001E010F0080001F02078080000F02078100000F02078100000F0
403C10000078403C20000078403C20000078C03E2000003C801E4000003C801E4000003C
801E4000001F000F8000001F000F8000001F000F8000001E00078000000E00070000000E
00070000000C000300000004000200002C207F9E2F>I<7FF83FF80FE00FC007C0070003
C0020001E0040001F00C0000F0080000781000007C1000003C2000003E4000001E400000
0F8000000F8000000780000003C0000007E0000005E0000009F0000018F8000010780000
207C0000603C0000401E0000801F0001800F0001000780020007C0070003C01F8007E0FF
E01FFE1F1F7F9E22>I<FEFEC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FEFE072D7CA10D>91 D<080410082010201040
204020804080408040B85CFC7EFC7E7C3E381C0F0E7B9F17>I<FEFE0606060606060606
060606060606060606060606060606060606060606060606060606060606060606FEFE07
2D7FA10D>I<1FE000303000781800781C00300E00000E00000E00000E0000FE00078E00
1E0E00380E00780E00F00E10F00E10F00E10F01E10781E103867200F83C014147E9317>
97 D<0E0000FE00000E00000E00000E00000E00000E00000E00000E00000E00000E0000
0E00000E3E000EC3800F01C00F00E00E00E00E00700E00700E00780E00780E00780E0078
0E00780E00780E00700E00700E00E00F00E00D01C00CC300083E0015207F9F19>I<03F8
0E0C1C1E381E380C70007000F000F000F000F000F000F00070007000380138011C020E0C
03F010147E9314>I<000380003F80000380000380000380000380000380000380000380
00038000038000038003E380061B801C0780380380380380700380700380F00380F00380
F00380F00380F00380F003807003807003803803803807801C07800E1B8003E3F815207E
9F19>I<03F0000E1C001C0E00380700380700700700700380F00380F00380FFFF80F000
00F00000F000007000007000003800801800800C010007060001F80011147F9314>I<00
7C00C6018F038F07060700070007000700070007000700FFF00700070007000700070007
000700070007000700070007000700070007000700070007007FF01020809F0E>I<0000
E003E3300E3C301C1C30380E00780F00780F00780F00780F00780F00380E001C1C001E38
0033E0002000002000003000003000003FFE001FFF800FFFC03001E0600070C00030C000
30C00030C000306000603000C01C038003FC00141F7F9417>I<0E0000FE00000E00000E
00000E00000E00000E00000E00000E00000E00000E00000E00000E3E000E43000E81800F
01C00F01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E
01C00E01C00E01C00E01C0FFE7FC16207F9F19>I<1C001E003E001E001C000000000000
000000000000000E007E000E000E000E000E000E000E000E000E000E000E000E000E000E
000E000E000E000E00FFC00A1F809E0C>I<00E001F001F001F000E00000000000000000
00000000007007F000F00070007000700070007000700070007000700070007000700070
007000700070007000700070007000706070F060F0C061803F000C28829E0E>I<0E0000
FE00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E0FF0
0E03C00E03000E02000E04000E08000E10000E30000E70000EF8000F38000E1C000E1E00
0E0E000E07000E07800E03800E03C00E03E0FFCFF815207F9F18>I<0E00FE000E000E00
0E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E00
0E000E000E000E000E000E000E000E000E00FFE00B20809F0C>I<0E1F01F000FE618618
000E81C81C000F00F00E000F00F00E000E00E00E000E00E00E000E00E00E000E00E00E00
0E00E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E000E
00E00E000E00E00E000E00E00E00FFE7FE7FE023147F9326>I<0E3E00FE43000E81800F
01C00F01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E
01C00E01C00E01C00E01C0FFE7FC16147F9319>I<01F800070E001C03803801C03801C0
7000E07000E0F000F0F000F0F000F0F000F0F000F0F000F07000E07000E03801C03801C0
1C0380070E0001F80014147F9317>I<0E3E00FEC3800F01C00F00E00E00E00E00F00E00
700E00780E00780E00780E00780E00780E00780E00700E00F00E00E00F01E00F01C00EC3
000E3E000E00000E00000E00000E00000E00000E00000E00000E0000FFE000151D7F9319
>I<03E0800619801C05803C0780380380780380700380F00380F00380F00380F00380F0
0380F003807003807803803803803807801C0B800E138003E38000038000038000038000
0380000380000380000380000380003FF8151D7E9318>I<0E78FE8C0F1E0F1E0F0C0E00
0E000E000E000E000E000E000E000E000E000E000E000E000E00FFE00F147F9312>I<1F
9030704030C010C010C010E00078007F803FE00FF00070803880188018C018C018E030D0
608F800D147E9312>I<020002000200060006000E000E003E00FFF80E000E000E000E00
0E000E000E000E000E000E000E000E080E080E080E080E080610031001E00D1C7F9B12>
I<0E01C0FE1FC00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01
C00E01C00E01C00E01C00E01C00E03C00603C0030DC001F1FC16147F9319>I<FF83F81E
01E01C00C00E00800E00800E008007010007010003820003820003820001C40001C40001
EC0000E80000E80000700000700000700000200015147F9318>I<FF9FE1FC3C0780701C
0300601C0380200E0380400E0380400E03C0400707C0800704C0800704E0800388610003
88710003C8730001D0320001D03A0000F03C0000E01C0000E01C0000601800004008001E
147F9321>I<7FC3FC0F01E00701C007018003810001C20000E40000EC00007800003800
003C00007C00004E000087000107000303800201C00601E01E01E0FF07FE1714809318>
I<FF83F81E01E01C00C00E00800E00800E008007010007010003820003820003820001C4
0001C40001EC0000E80000E8000070000070000070000020000020000040000040000040
00F08000F08000F100006200003C0000151D7F9318>I<3FFF380E200E201C4038407840
7000E001E001C00380078007010E011E011C0338027006700EFFFE10147F9314>I<FFFF
FC1601808C17>I E /Fu 45 122 df<70F8FCFC7404040404080810102040060F7C840E>
44 D<FFE0FFE00B027F8B10>I<70F8F8F87005057C840E>I<01F000071C000C06001803
003803803803807001C07001C07001C07001C0F001E0F001E0F001E0F001E0F001E0F001
E0F001E0F001E0F001E0F001E0F001E0F001E0F001E0F001E07001C07001C07001C07803
C03803803803801C07000C0600071C0001F00013227EA018>48 D<008003800F80F38003
800380038003800380038003800380038003800380038003800380038003800380038003
800380038003800380038003800380038007C0FFFE0F217CA018>I<03F8000C1E001007
002007804007C07807C07803C07807C03807C0000780000780000700000F00000E000038
0003F000001C00000F000007800007800003C00003C00003E02003E07003E0F803E0F803
E0F003C04003C0400780200780100F000C1C0003F00013227EA018>51
D<000200000600000E00000E00001E00001E00002E00004E00004E00008E00008E00010E
00020E00020E00040E00040E00080E00100E00100E00200E00200E00400E00800E00FFFF
F8000E00000E00000E00000E00000E00000E00000E00001F0001FFF015217FA018>I<10
00801E07001FFF001FFE001FF80013E00010000010000010000010000010000010000010
F800130E001407001803801003800001C00001C00001E00001E00001E00001E07001E0F0
01E0F001E0E001C08001C04003C04003802007001006000C1C0003F00013227EA018>I<
007E0001C1000300800601C00E03C01C03C0180180380000380000780000700000700000
F0F800F30C00F40600F40300F80380F801C0F001C0F001E0F001E0F001E0F001E0F001E0
7001E07001E07001E03801C03801C01803801C03000C0600070C0001F00013227EA018>
I<01F800060E000803001001802001802000C06000C06000C06000C07000C07801803E01
003F02001FC4000FF80003F80003FC00067F00083F80100F803007C06001C06000E0C000
E0C00060C00060C00060C000606000406000C03000801803000E0E0003F00013227EA018
>56 D<01F000060C000C0600180700380380700380700380F001C0F001C0F001C0F001E0
F001E0F001E0F001E0F001E07001E07003E03803E01805E00C05E00619E003E1E00001C0
0001C00001C0000380000380300300780700780600700C002018001030000FC00013227E
A018>I<0001800000018000000180000003C0000003C0000003C0000005E0000005E000
000DF0000008F0000008F0000010F800001078000010780000203C0000203C0000203C00
00401E0000401E0000401E0000800F0000800F0000FFFF000100078001000780030007C0
020003C0020003C0040003E0040001E0040001E00C0000F00C0000F03E0001F8FF800FFF
20237EA225>65 D<0007E0100038183000E0063001C00170038000F0070000F00E000070
1E0000701C0000303C0000303C0000307C0000107800001078000010F8000000F8000000
F8000000F8000000F8000000F8000000F8000000F800000078000000780000107C000010
3C0000103C0000101C0000201E0000200E000040070000400380008001C0010000E00200
00381C000007E0001C247DA223>67 D<FFFFFFC00F8007C0078001C0078000C007800040
078000400780006007800020078000200780002007802020078020000780200007802000
078060000780E00007FFE0000780E0000780600007802000078020000780200007802008
0780000807800008078000100780001007800010078000300780003007800070078000E0
0F8003E0FFFFFFE01D227EA121>69 D<FFFFFFC00F8007C0078001C0078000C007800040
078000400780006007800020078000200780002007802020078020000780200007802000
078060000780E00007FFE0000780E0000780600007802000078020000780200007802000
078000000780000007800000078000000780000007800000078000000780000007800000
0FC00000FFFE00001B227EA120>I<FFFC0FC00780078007800780078007800780078007
800780078007800780078007800780078007800780078007800780078007800780078007
800780078007800FC0FFFC0E227EA112>73 D<FFC00003FF0FC00003F007C00003E005E0
0005E005E00005E004F00009E004F00009E004F00009E004780011E004780011E0047800
11E0043C0021E0043C0021E0043C0021E0041E0041E0041E0041E0040F0081E0040F0081
E0040F0081E004078101E004078101E004078101E00403C201E00403C201E00401E401E0
0401E401E00401E401E00400F801E00400F801E00400F801E004007001E00E007001E01F
007003F0FFE0203FFF28227EA12D>77 D<FF8007FF07C000F807C0007005E0002004F000
2004F0002004780020047C0020043C0020041E0020041F0020040F002004078020040780
200403C0200401E0200401E0200400F0200400F8200400782004003C2004003E2004001E
2004000F2004000F20040007A0040003E0040003E0040001E0040001E0040000E00E0000
601F000060FFE0002020227EA125>I<FFFFF0000F803C0007800F0007800780078007C0
078003C0078003E0078003E0078003E0078003E0078003E0078003E0078003C0078007C0
0780078007800F0007803C0007FFF0000780000007800000078000000780000007800000
078000000780000007800000078000000780000007800000078000000780000007800000
0FC00000FFFC00001B227EA121>80 D<FFFFE000000F803C000007800E00000780078000
078007C000078003C000078003E000078003E000078003E000078003E000078003E00007
8003C000078007C000078007800007800E000007803C000007FFE0000007807000000780
38000007801C000007801E000007800E000007800F000007800F000007800F000007800F
000007800F800007800F800007800F800007800F808007800FC080078007C0800FC003C1
00FFFC01E2000000007C0021237EA124>82 D<03F0200C0C601802603001E07000E06000
60E00060E00060E00020E00020E00020F00000F000007800007F00003FF0001FFE000FFF
0003FF80003FC00007E00001E00000F00000F0000070800070800070800070800070C000
60C00060E000C0F000C0C80180C6070081FC0014247DA21B>I<7FFFFFF8780780786007
8018400780084007800840078008C007800C800780048007800480078004800780040007
800000078000000780000007800000078000000780000007800000078000000780000007
800000078000000780000007800000078000000780000007800000078000000780000007
80000007800000078000000FC00003FFFF001E227EA123>I<0FE0001838003C0C003C0E
0018070000070000070000070000FF0007C7001E07003C0700780700700700F00708F007
08F00708F00F087817083C23900FC1E015157E9418>97 D<0E0000FE00001E00000E0000
0E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E1F000E61C0
0E80600F00300E00380E003C0E001C0E001E0E001E0E001E0E001E0E001E0E001E0E001E
0E001C0E003C0E00380F00700C80600C41C0083F0017237FA21B>I<01FE000703000C07
801C0780380300780000700000F00000F00000F00000F00000F00000F00000F000007000
007800403800401C00800C010007060001F80012157E9416>I<0000E0000FE00001E000
00E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E001F8E007
04E00C02E01C01E03800E07800E07000E0F000E0F000E0F000E0F000E0F000E0F000E0F0
00E07000E07800E03800E01801E00C02E0070CF001F0FE17237EA21B>I<01FC00070700
0C03801C01C03801C07801E07000E0F000E0FFFFE0F00000F00000F00000F00000F00000
7000007800203800201C00400E008007030000FC0013157F9416>I<003C00C6018F038F
030F070007000700070007000700070007000700FFF80700070007000700070007000700
0700070007000700070007000700070007000700070007807FF8102380A20F>I<000070
01F198071E180E0E181C07001C07003C07803C07803C07803C07801C07001C07000E0E00
0F1C0019F0001000001000001800001800001FFE000FFFC00FFFE03800F0600030400018
C00018C00018C000186000306000303800E00E038003FE0015217F9518>I<0E0000FE00
001E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00
000E1F800E60C00E80E00F00700F00700E00700E00700E00700E00700E00700E00700E00
700E00700E00700E00700E00700E00700E00700E00700E0070FFE7FF18237FA21B>I<1C
001E003E001E001C00000000000000000000000000000000000E00FE001E000E000E000E
000E000E000E000E000E000E000E000E000E000E000E000E000E000E00FFC00A227FA10E
>I<01C003E003E003E001C00000000000000000000000000000000001E00FE001E000E0
00E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E0
00E000E000E000E060E0F0C0F18061803E000B2C82A10F>I<0E0000FE00001E00000E00
000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E03FC0E01
F00E01C00E01800E02000E04000E08000E10000E38000EF8000F1C000E1E000E0E000E07
000E07800E03C00E01C00E01E00E00F00E00F8FFE3FE17237FA21A>I<0E00FE001E000E
000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E
000E000E000E000E000E000E000E000E000E000E000E000E00FFE00B237FA20E>I<0E1F
C07F00FE60E183801E807201C00F003C00E00F003C00E00E003800E00E003800E00E0038
00E00E003800E00E003800E00E003800E00E003800E00E003800E00E003800E00E003800
E00E003800E00E003800E00E003800E00E003800E00E003800E0FFE3FF8FFE27157F942A
>I<0E1F80FE60C01E80E00F00700F00700E00700E00700E00700E00700E00700E00700E
00700E00700E00700E00700E00700E00700E00700E00700E0070FFE7FF18157F941B>I<
01FC000707000C01801800C03800E0700070700070F00078F00078F00078F00078F00078
F00078F000787000707800F03800E01C01C00E038007070001FC0015157F9418>I<0E1F
00FE61C00E80600F00700E00380E003C0E001C0E001E0E001E0E001E0E001E0E001E0E00
1E0E001E0E003C0E003C0E00380F00700E80E00E41C00E3F000E00000E00000E00000E00
000E00000E00000E00000E00000E0000FFE000171F7F941B>I<0E3CFE461E8F0F0F0F06
0F000E000E000E000E000E000E000E000E000E000E000E000E000E000F00FFF010157F94
13>114 D<0F8830786018C018C008C008E008F0007F803FE00FF001F8003C801C800C80
0CC00CC008E018D0308FC00E157E9413>I<02000200020002000600060006000E001E00
3E00FFF80E000E000E000E000E000E000E000E000E000E000E000E040E040E040E040E04
0E040708030801F00E1F7F9E13>I<0E0070FE07F01E00F00E00700E00700E00700E0070
0E00700E00700E00700E00700E00700E00700E00700E00700E00700E00F00E00F0060170
03827800FC7F18157F941B>I<FFC1FE1E00780E00300E00200E00200700400700400380
8003808003808001C10001C10000E20000E20000E2000074000074000038000038000038
0000100017157F941A>I<FF8FF8FF1E01E03C1C01C0180E01C0180E01E0100E01E01007
026020070270200702702003843040038438400384384001C8188001C81C8001C81C8000
F00D0000F00F0000F00F0000600600006006000060060020157F9423>I<FFC1FE1E0078
0E00300E00200E002007004007004003808003808003808001C10001C10000E20000E200
00E200007400007400003800003800003800001000001000002000002000002000004000
F04000F08000F180004300003C0000171F7F941A>121 D E /Fv
20 118 df<FFFF80FFFF80FFFF8011037F9016>45 D<FFFFFFE00000FFFFFFFC000007E0
007F000003E0000F800003E00003C00003E00001E00003E00000F00003E00000780003E0
00003C0003E000001E0003E000001E0003E000000F0003E000000F0003E000000F8003E0
0000078003E0000007C003E0000007C003E0000003C003E0000003C003E0000003E003E0
000003E003E0000003E003E0000003E003E0000003E003E0000003E003E0000003E003E0
000003E003E0000003E003E0000003E003E0000003E003E0000003C003E0000003C003E0
000007C003E0000007C003E00000078003E00000078003E000000F8003E000000F0003E0
00001F0003E000001E0003E000003C0003E00000780003E00000F80003E00001F00003E0
0003E00003E0000F800007E0003F0000FFFFFFFC0000FFFFFFE000002B317CB033>68
D<FFFF80FFFF8007F00003E00003E00003E00003E00003E00003E00003E00003E00003E0
0003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E0
0003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E0
0003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00007F000FFFF
80FFFF8011317DB017>73 D<FFF00000007FF8FFF00000007FF807F00000007F0002F800
0000BE0002F8000000BE0002F8000000BE00027C0000013E00027C0000013E00023E0000
023E00023E0000023E00023E0000023E00021F0000043E00021F0000043E00021F000004
3E00020F8000083E00020F8000083E00020F8000083E000207C000103E000207C000103E
000207C000103E000203E000203E000203E000203E000201F000403E000201F000403E00
0201F000403E000200F800803E000200F800803E000200F800803E0002007C01003E0002
007C01003E0002007C01003E0002003E02003E0002003E02003E0002003E02003E000200
1F04003E0002001F04003E0002000F88003E0002000F88003E0002000F88003E00020007
D0003E00020007D0003E00020007D0003E00020003E0003E00020003E0003E00020003E0
003E00070001C0003E000F8001C0007F00FFF801C00FFFF8FFF800800FFFF835317CB03D
>77 D<FFFFFFC000FFFFFFF80007E0007E0003E0001F0003E000078003E00003C003E000
01E003E00001F003E00001F003E00000F003E00000F803E00000F803E00000F803E00000
F803E00000F803E00000F803E00000F003E00001F003E00001E003E00003E003E00003C0
03E000078003E0001F0003E0007C0003FFFFF00003E000000003E000000003E000000003
E000000003E000000003E000000003E000000003E000000003E000000003E000000003E0
00000003E000000003E000000003E000000003E000000003E000000003E000000003E000
000003E000000003E000000003E000000007F0000000FFFF800000FFFF80000025317CB0
2D>80 D<007F802001FFE02007C078600F001C601E0006E03C0003E0380001E0780000E0
700000E070000060F0000060F0000060F0000020F0000020F0000020F8000020F8000000
7C0000007E0000003F0000003FC000001FF800000FFF800007FFF80003FFFC0000FFFF00
000FFF800000FFC000001FE0000007E0000003F0000001F0000000F0000000F8000000F8
8000007880000078800000788000007880000078C0000078C0000070E00000F0E00000E0
F00000E0F80001C0EC000380C7000700C1F01E00807FFC00800FF0001D337CB125>83
D<00FE00000303C0000C00E00010007000100038003C003C003E001C003E001E003E001E
0008001E0000001E0000001E0000001E00000FFE0000FC1E0003E01E000F801E001F001E
003E001E003C001E007C001E00F8001E04F8001E04F8001E04F8003E04F8003E0478003E
047C005E043E008F080F0307F003FC03E01E1F7D9E21>97 D<003F8000E0600380180700
040F00041E001E1C003E3C003E7C003E7C0008780000F80000F80000F80000F80000F800
00F80000F80000F80000F800007800007C00007C00003C00011E00011E00020F00020700
0403801800E060003F80181F7D9E1D>99 D<000001E000003FE000003FE0000003E00000
01E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E00000
01E0000001E0000001E0000001E0000001E0000001E0001F81E000F061E001C019E00780
05E00F0003E00E0003E01E0001E03C0001E03C0001E07C0001E0780001E0F80001E0F800
01E0F80001E0F80001E0F80001E0F80001E0F80001E0F80001E0F80001E0780001E07800
01E03C0001E03C0001E01C0001E01E0003E00E0005E0070009E0038011F000E061FF003F
81FF20327DB125>I<003F800000E0E0000380380007003C000E001E001E001E001C000F
003C000F007C000F0078000F8078000780F8000780F8000780FFFFFF80F8000000F80000
00F8000000F8000000F8000000F8000000780000007C0000003C0000003C0000801E0000
800E0001000F0002000780020001C00C0000F03000001FC000191F7E9E1D>I<0007E000
1C1000383800707C00E07C01E07C01C03803C00003C00003C00003C00003C00003C00003
C00003C00003C00003C00003C00003C000FFFFC0FFFFC003C00003C00003C00003C00003
C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003
C00003C00003C00003C00003C00003C00003C00003C00003C00003C00007E0007FFF007F
FF0016327FB114>I<000000F0007F030801C1C41C0380E81C070070080F0078001E003C
001E003C003E003E003E003E003E003E003E003E003E003E003E003E001E003C001E003C
000F007800070070000780E00009C1C000087F0000180000001800000018000000180000
00180000001C0000000E0000000FFFF80007FFFF0003FFFF800E000FC0180001E0300000
F070000070E0000038E0000038E0000038E0000038E00000387000007070000070380000
E01C0001C00700070001C01C00003FE0001E2F7E9F21>I<07000F801F801F800F800700
000000000000000000000000000000000000000000000780FF80FF800F80078007800780
078007800780078007800780078007800780078007800780078007800780078007800780
0780078007800FC0FFF8FFF80D307EAF12>105 D<0780FE001FC000FF83078060F000FF
8C03C18078000F9001E2003C0007A001E4003C0007A000F4001E0007C000F8001E0007C0
00F8001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E00078000
F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0
001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E00078000F000
1E00078000F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E
000FC001F8003F00FFFC1FFF83FFF0FFFC1FFF83FFF0341F7E9E38>109
D<0780FE0000FF83078000FF8C03C0000F9001E00007A001E00007A000F00007C000F000
07C000F000078000F000078000F000078000F000078000F000078000F000078000F00007
8000F000078000F000078000F000078000F000078000F000078000F000078000F0000780
00F000078000F000078000F000078000F000078000F000078000F000078000F0000FC001
F800FFFC1FFF80FFFC1FFF80211F7E9E25>I<001FC00000F0780001C01C00070007000F
0007801E0003C01C0001C03C0001E03C0001E0780000F0780000F0780000F0F80000F8F8
0000F8F80000F8F80000F8F80000F8F80000F8F80000F8F80000F8780000F07C0001F03C
0001E03C0001E01E0003C01E0003C00F00078007800F0001C01C0000F07800001FC0001D
1F7E9E21>I<0783E0FF8C18FF907C0F907C07A07C07C03807C00007C00007C000078000
078000078000078000078000078000078000078000078000078000078000078000078000
0780000780000780000780000780000780000FC000FFFE00FFFE00161F7E9E19>114
D<01FC100E03301800F0300070600030E00030E00010E00010E00010F00010F800007E00
003FF0001FFF000FFFC003FFE0003FF00001F80000F880003C80003C80001CC0001CC000
1CE0001CE00018F00038F00030CC0060C301C080FE00161F7E9E1A>I<00400000400000
400000400000400000C00000C00000C00001C00001C00003C00007C0000FC0001FFFE0FF
FFE003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003
C00003C00003C00003C00003C00003C01003C01003C01003C01003C01003C01003C01003
C01001C02001E02000E0400078C0001F00142C7FAB19>I<078000F000FF801FF000FF80
1FF0000F8001F000078000F000078000F000078000F000078000F000078000F000078000
F000078000F000078000F000078000F000078000F000078000F000078000F000078000F0
00078000F000078000F000078000F000078000F000078000F000078000F000078001F000
078001F000078001F000038002F00003C004F00001C008F800007030FF80001FC0FF8021
1F7E9E25>I E /Fw 5 85 df<00000000C00000000000E00000000001E00000000003E0
0000000003E00000000007E00000000007E0000000000FE0000000000FE0000000001FE0
000000001FE00000000037E00000000067E00000000067E000000000C7E000000000C7F0
0000000183F00000000183F00000000303F00000000703F00000000603F00000000C03F0
0000000C03F00000001803F00000001803F00000003003F00000003003F00000006003F0
000000C003F0000000C003F00000018003F00000018003F8000003FFFFF8000003FFFFF8
0000060001F800000E0001F800000C0001F80000180001F80000180001F80000300001F8
0000300001F80000600001F80000E00001F80000C00001F80001C00001F80001C00001F8
0007C00001FC001FC00003FC00FFF8007FFFE0FFF8007FFFE02B327BB135>65
D<000FFFFFFE0000000FFFFFFF800000007F000FE00000007E0003F00000007E0000F800
00007E0000FC0000007E00007C000000FC00003E000000FC00003E000000FC00003F0000
00FC00001F000001F800001F000001F800001F800001F800001F800001F800001F800003
F000001F800003F000001F800003F000001F800003F000001F800007E000003F800007E0
00003F800007E000003F800007E000003F80000FC000003F00000FC000007F00000FC000
007F00000FC000007F00001F8000007E00001F800000FE00001F800000FE00001F800000
FC00003F000001FC00003F000001F800003F000001F800003F000003F000007E000003E0
00007E000007E000007E00000FC000007E00000F800000FC00001F800000FC00003F0000
00FC00007E000000FC0000FC000001F80001F0000001F80003E0000001F8000FC0000003
F8007F000000FFFFFFFC000000FFFFFFE000000031317BB036>68
D<000FFFFFFFFC000FFFFFFFFC00007F0001FC00007E00007C00007E00003C00007E0000
3C00007E0000180000FC0000180000FC0000180000FC0000180000FC0000180001F80000
180001F80000180001F80000180001F80000180003F00080100003F00180000003F00180
000003F00180000007E00300000007E00300000007E00700000007E01F0000000FFFFE00
00000FFFFE0000000FC01E0000000FC00E0000001F800C0000001F800C0000001F800C00
00001F800C0000003F00180000003F00080000003F00000000003F00000000007E000000
00007E00000000007E00000000007E0000000000FC0000000000FC0000000000FC000000
0000FC0000000001F80000000001F80000000001F80000000003F800000000FFFFF00000
00FFFFF00000002E317BB02F>70 D<000FFFFFF000000FFFFFFE0000007F003F8000007E
000FC000007E0007E000007E0003F000007E0001F80000FC0001F80000FC0001F80000FC
0001F80000FC0001F80001F80003F80001F80003F80001F80003F80001F80003F00003F0
0007F00003F00007E00003F0000FC00003F0000FC00007E0001F000007E0007E000007E0
00FC000007E007F000000FFFFFC000000FFFFF0000000FC00F8000000FC003C000001F80
03E000001F8001F000001F8001F000001F8001F800003F0001F800003F0001F800003F00
01F800003F0001F800007E0003F800007E0003F800007E0003F000007E0003F00000FC00
07F00000FC0007F00000FC0007F00800FC0007F00C01F80007F01801F80007F01801F800
03F03003F80003F030FFFFE001F0E0FFFFE000FFC0000000003F002E327BB034>82
D<07FFFFFFFFF00FFFFFFFFFF00FC00FE003F01E000FC000F01C000FC000E018000FC000
E038000FC0006030001F8000E030001F8000E060001F8000C060001F8000C060003F0000
C0C0003F0000C0C0003F0000C0C0003F0000C080007E00008000007E00000000007E0000
0000007E0000000000FC0000000000FC0000000000FC0000000000FC0000000001F80000
000001F80000000001F80000000001F80000000003F00000000003F00000000003F00000
000003F00000000007E00000000007E00000000007E00000000007E0000000000FC00000
00000FC0000000000FC0000000000FC0000000001F80000000001F80000000001F800000
00001F80000000003F00000000003F00000000003F0000000000FF00000000FFFFFF0000
00FFFFFF0000002C3173B033>84 D E end
%%EndProlog
%%BeginSetup
%%Feature: *Resolution 300dpi
TeXDict begin
%%EndSetup
%%Page: 0 1
0 0 bop 795 908 a Fw(D)26 b(R)g(A)f(F)h(T)225 999 y Fv(Do)r(cumen)n(t)
20 b(for)i(a)f(Standard)g(Message-P)n(assing)f(In)n(terface)621
1194 y Fu(Message)c(P)o(assing)h(In)o(terface)e(F)l(orum)823
1320 y(Marc)o(h)h(4,)g(1996)77 1378 y(This)h(w)o(ork)f(w)o(as)h(supp)q
(orted)g(in)f(part)h(b)o(y)e(ARP)l(A)h(and)h(NSF)e(under)h(gran)o(t)h
(ASC-9310330,)i(the)192 1436 y(National)d(Science)f(F)l(oundation)i
(Science)e(and)i(T)l(ec)o(hnology)f(Cen)o(ter)f(Co)q(op)q(erativ)o(e)76
1494 y(Agreemen)o(t)e(No.)22 b(CCR-8809615,)d(and)e(b)o(y)e(the)h
(Commission)e(of)j(the)f(Europ)q(ean)i(Comm)o(unit)n(y)654
1552 y(through)f(Esprit)f(pro)s(ject)g(P6643.)p eop
%%Page: 1 2
1 1 bop 166 45 a Ft(This)20 b(is)h(the)f(result)g(of)f(a)h(LaT)l(eX)g
(run)g(of)g(a)f(draft)g(of)h(a)f(single)j(c)o(hapter)d(of)h(the)g(MPIF)
f(Final)75 102 y(Rep)q(ort)d(do)q(cumen)o(t.)969 2828
y(i)p eop
%%Page: 1 3
1 2 bop 75 356 a Fs(Chapter)34 b(3)75 564 y Fr(Dynamic)40
b(Pro)s(cesses)75 805 y Fq(3.1)59 b(Intro)r(duction)75
906 y Ft(The)15 b(MPI-1)g(message)g(passing)g(library)h(allo)o(ws)f
(pro)q(cesses)h(in)g(a)f(parallel)h(program)e(to)h(comm)o(unicate)75
963 y(with)21 b(one)f(another.)34 b(MPI-1)20 b(sp)q(eci\014es)i
(neither)g(ho)o(w)d(the)i(pro)q(cesses)f(are)g(created,)h(nor)f(ho)o(w)
g(they)75 1019 y(establish)f(comm)o(unication.)30 b(Moreo)o(v)o(er,)17
b(an)i(MPI-1)f(application)i(is)e(static,)h(that)e(is,)i(no)g(pro)q
(cesses)75 1076 y(can)c(b)q(e)h(added)g(to)f(or)f(deleted)j(from)d(an)h
(application)i(while)g(it)e(is)h(running.)166 1132 y(MPI)d(users)g(ha)o
(v)o(e)g(ask)o(ed)g(that)g(the)g(MPI-1)g(mo)q(del)h(b)q(e)g(relaxed)g
(to)f(allo)o(w)g(dynamic)h(pro)q(cess)g(man-)75 1188
y(agemen)o(t.)19 b(The)14 b(main)h(imp)q(etus)g(comes)f(from)g(the)g
(PVM)g([1)o(])g(researc)o(h)g(e\013ort,)f(whic)o(h)i(has)f(pro)o(vided)
h(a)75 1245 y(w)o(ealth)c(of)g(exp)q(erience)j(with)d(dynamic)h(pro)q
(cess)g(managemen)o(t)e(and)i(resource)f(con)o(trol)g(that)g
(illustrates)75 1301 y(their)16 b(b)q(ene\014ts)g(and)f(p)q(oten)o
(tial)h(pitfalls.)166 1358 y(It)f(w)o(as)f(decided)j(that)e(resource)g
(con)o(trol)g(is)g(outside)h(the)f(scop)q(e)g(of)g(MPI-2,)g(b)q(ecause)
h(a)e(p)q(ortable)75 1414 y(in)o(terface)21 b(to)f(all)h(the)f
(existing)i(and)f(future)f(resource)h(con)o(trollers)f(and)h(the)g(p)q
(oten)o(tial)g(con)o(trollers)75 1471 y(w)o(as)c(deemed)i(unfeasible.)
31 b(Resource)18 b(con)o(trol)g(can)g(encompass)g(a)g(wide)h(range)f
(of)f(abilities)k(includ-)75 1527 y(ing)g(adding)g(and)g(deleting)g
(hosts)f(from)g(an)g(en)o(vironmen)o(t,)i(reserving)e(and)h(sc)o
(heduling)h(resources,)75 1584 y(managing)13 b(compute)g(partitions)g
(of)g(MPP)l(,)f(and)h(returning)h(information)f(ab)q(out)g(a)o(v)m
(ailable)h(resources.)166 1640 y(MPI-2)g(assumes)g(that)f(resource)h
(con)o(trol)g(is)h(pro)o(vided)g(b)o(y)f(the)g(v)o(endors)g(in)h(the)f
(case)g(of)g(MPP)f(or)75 1697 y(b)o(y)i(some)g(other)g(soft)o(w)o(are)e
(pac)o(k)m(age)i(when)h(the)f(en)o(vironmen)o(t)h(is)g(a)e(cluster)i
(of)f(hosts.)166 1753 y(MPI-2)j(do)q(es)h(pro)o(vide)g(an)f(in)o(teger)
h(v)m(ariable,)h Fp(MPI)p 1074 1753 14 2 v 16 w(UNIVERSE)p
1304 1753 V 18 w(SIZE)e Ft(that)g(recommends)g(ho)o(w)75
1810 y(man)o(y)k(pro)q(cesses)h(ma)o(y)e(b)q(e)i(spa)o(wned)g(in)g(the)
f(en)o(vironmen)o(t)h(alltogether.)42 b(The)22 b(addition)i(of)e(this)
75 1866 y(single)e(en)o(vironmen)o(t-query)g(capabilit)o(y)g(allo)o(ws)
f(man)o(y)g(existing)h(programs)e(to)g(b)q(e)i(p)q(orted)f(to)f(MPI)75
1922 y(straigh)o(tforw)o(ardly)l(.)166 1979 y(The)f(reasons)g(for)f
(adding)i(dynamic)g(pro)q(cess)f(managemen)o(t)g(to)f(MPI)h(are)g(b)q
(oth)g(tec)o(hnical)i(and)75 2035 y(practical.)143 2142
y Fo(\017)k Ft(Since)f(a)f(cluster)h(of)e(w)o(orkstations)g(o\013ers)g
(no)h(generic)h(metho)q(d)f(to)f(start)g(up)i(a)e(MIMD)h(ap-)189
2198 y(plication,)d(the)f(inclusion)j(of)c(dynamic)i(pro)q(cess)f
(managemen)o(t)f(in)i(MPI)f(pro)o(vides)g(a)f(p)q(ortable)189
2254 y(metho)q(d)f(for)g(applications)h(to)f(run)g(in)h(this)g(en)o
(vironmen)o(t.)143 2348 y Fo(\017)23 b Ft(W)l(orkstation)d(net)o(w)o
(ork)f(users)i(migrating)g(from)g(PVM)f(to)g(MPI)h(are)g(accustomed)g
(to)f(using)189 2405 y(PVM's)15 b(capabilities)j(for)d(pro)q(cess)h
(and)g(resource)g(managemen)o(t.)21 b(The)16 b(lac)o(k)g(of)f(these)h
(features)189 2461 y(is)f(a)g(practical)h(stum)o(bling)g(blo)q(c)o(k)g
(to)f(migration.)143 2555 y Fo(\017)23 b Ft(Imp)q(ortan)o(t)16
b(classes)h(of)g(message)f(passing)h(applications,)i(suc)o(h)e(as)f
(clien)o(t-serv)o(er)i(systems)f(and)189 2611 y(task)d(farming)h(jobs,)
g(require)h(dynamic)g(pro)q(cess)f(con)o(trol.)964 2828
y(1)p eop
%%Page: 2 4
2 3 bop 75 -100 a Ft(2)951 b Fn(CHAPTER)16 b(3.)34 b(D)o(YNAMIC)15
b(PR)o(OCESSES)143 45 y Fo(\017)23 b Ft(The)14 b(abilit)o(y)i(to)d
(write)h(fault)h(toleran)o(t)e(applications)j(is)f(imp)q(ortan)o(t)f
(in)h(unstable)g(en)o(vironmen)o(ts)189 102 y(and)k(for)g(commercial)h
(applications.)33 b(MPI-1)19 b(do)q(es)h(not)e(pro)o(vide)i(mec)o
(hanisms)g(for)e(building)189 158 y(fault-toleran)o(t)c(applications.)
21 b(The)14 b(mec)o(hanisms)h(required)g(to)f(supp)q(ort)g(fault)g
(tolerance)h(o)o(v)o(er-)189 214 y(lap)g(with)h(those)f(needed)h(to)f
(supp)q(ort)g(dynamic)h(pro)q(cess)g(managemen)o(t.)166
321 y(While)e(dynamic)g(pro)q(cess)f(managemen)o(t)f(is)i(essen)o
(tial,)g(it)f(is)g(imp)q(ortan)o(t)g(not)f(to)h(compromise)g(the)75
377 y(p)q(ortabilit)o(y)j(or)f(p)q(erformance)g(of)g(MPI.)g(In)h
(particular:)143 471 y Fo(\017)23 b Ft(The)f(MPI-2)f(dynamic)i(pro)q
(cess)e(managemen)o(t)g(mo)q(del)i(m)o(ust)e(apply)h(to)f(the)h(v)m
(ast)f(ma)s(jorit)o(y)189 527 y(of)e(curren)o(t)h(parallel)h(en)o
(vironmen)o(ts.)34 b(These)20 b(include)j(ev)o(erything)d(from)f(tigh)o
(tly)h(in)o(tegrated)189 584 y(MPPs)d(suc)o(h)i(as)f(the)g(In)o(tel)h
(P)o(aragon)e(and)h(the)g(Meik)o(o)g(CS-2)h(to)e(heterogeneous)h(net)o
(w)o(orks)f(of)189 640 y(w)o(orkstations.)143 734 y Fo(\017)23
b Ft(MPI)16 b(m)o(ust)g(not)g(tak)o(e)g(o)o(v)o(er)f(op)q(erating)i
(system)f(resp)q(onsibiliti)q(es.)26 b(It)17 b(should)g(instead)g(pro)o
(vide)189 791 y(a)e(clean)h(in)o(terface)f(b)q(et)o(w)o(een)h(an)f
(application)i(and)e(system)g(soft)o(w)o(are.)143 884
y Fo(\017)23 b Ft(MPI)17 b(m)o(ust)g(con)o(tin)o(ue)h(to)f(guaran)o
(tee)g(comm)o(unication)h(determinism,)h(i.e.,)e(dynamic)i(pro)q(cess)
189 941 y(managemen)o(t)14 b(m)o(ust)h(not)f(in)o(tro)q(duce)j(una)o(v)
o(oidable)f(race)f(conditions.)143 1035 y Fo(\017)23
b Ft(MPI)15 b(m)o(ust)f(not)h(con)o(tain)h(features)e(that)h
(compromise)g(p)q(erformance.)143 1129 y Fo(\017)23 b
Ft(MPI-1)16 b(programs)f(m)o(ust)h(w)o(ork)g(under)h(MPI-2,)f(i.e.,)g
(the)h(MPI-1)f(static)g(pro)q(cess)h(mo)q(del)h(m)o(ust)189
1185 y(b)q(e)e(a)e(sp)q(ecial)j(case)f(of)e(the)i(MPI-2)f(dynamic)h(mo)
q(del.)166 1279 y(The)22 b(MPI)h(dynamic)g(pro)q(cess)f(managemen)o(t)g
(mo)q(del)h(addresses)g(these)f(issues)h(in)g(t)o(w)o(o)e(w)o(a)o(ys.)
75 1335 y(First,)f(MPI)g(remains)g(primarily)h(a)e(comm)o(unication)h
(library)l(.)35 b(It)19 b(do)q(es)h(not)g(manage)f(the)g(parallel)75
1392 y(en)o(vironmen)o(t)e(in)g(whic)o(h)h(a)e(parallel)i(program)e
(executes,)h(though)f(it)h(pro)o(vides)g(a)g(minimal)h(in)o(terface)75
1448 y(b)q(et)o(w)o(een)e(an)f(application)h(and)g(external)g(resource)
f(and)g(pro)q(cess)h(managers.)166 1505 y(Second,)h(MPI-2)g(do)q(es)g
(not)f(c)o(hange)h(the)g(concept)g(of)f(comm)o(unicator.)24
b(Once)18 b(a)e(comm)o(unicator)75 1561 y(is)h(built,)g(it)g(b)q(eha)o
(v)o(es)f(as)g(sp)q(eci\014ed)j(in)e(MPI-1.)23 b(A)16
b(comm)o(unicator)g(is)h(nev)o(er)f(c)o(hanged)h(once)f(created,)75
1618 y(and)f(it)h(is)g(alw)o(a)o(ys)e(created)h(using)h(deterministic)h
(collectiv)o(e)g(seman)o(tics.)75 1761 y Fq(3.2)59 b(The)19
b(MPI-2)h(Dynamic)f(Pro)r(cess)g(Mo)r(del)75 1862 y Ft(The)i(MPI-2)g
(dynamic)h(pro)q(cess)g(mo)q(del)g(allo)o(ws)f(for)f(the)i(creation)f
(and)g(destruction)h(of)f(pro)q(cesses)75 1919 y(after)14
b(an)g(MPI)h(application)h(has)e(started.)19 b(It)14
b(pro)o(vides)h(a)g(mec)o(hanism)g(to)f(establish)h(comm)o(unication)75
1975 y(b)q(et)o(w)o(een)i(the)g(newly)h(created)f(pro)q(cesses)g(and)g
(the)g(existing)h(MPI)f(application.)27 b(It)17 b(also)g(pro)o(vides)g
(a)75 2032 y(mec)o(hanism)f(to)e(establish)j(comm)o(unication)f(b)q(et)
o(w)o(een)f(t)o(w)o(o)f(existing)i(MPI)f(applications,)i(ev)o(en)e
(when)75 2088 y(one)g(did)i(not)d(\\start")g(the)h(other.)75
2210 y Fm(3.2.1)49 b(Sta)o(rting)16 b(and)h(Managing)h(Pro)q(cesses)75
2296 y Ft(MPI)10 b(applications)i(ma)o(y)e(start)f(new)h(pro)q(cesses)h
(\(including)i(non-MPI)d(pro)q(cesses\),)h(send)g(them)g(signals,)75
2352 y(and)17 b(\014nd)h(out)e(when)i(they)f(die)h(or)e(b)q(ecome)i
(unreac)o(hable.)26 b(They)17 b(do)g(this)g(through)g(an)f(in)o
(terface)i(to)75 2408 y(an)d(external)h(pro)q(cess)g(manager,)f(whic)o
(h)h(can)g(range)f(from)g(a)g(parallel)i(op)q(erating)f(system)f
(\(CMOST\))75 2465 y(to)g(la)o(y)o(ered)g(soft)o(w)o(are)e(\(POE\))i
(to)g(an)g Fl(rsh)g Ft(command)g(\(p4\).)166 2521 y(There)g(are)g(t)o
(w)o(o)f(w)o(a)o(ys)g(to)h(start)f(new)h(pro)q(cesses.)166
2578 y Fp(MPI)p 251 2578 14 2 v 16 w(SP)l(A)-5 b(WN)12
b Ft(starts)f(MPI)h(pro)q(cesses)g(and)g(establishes)h(comm)o
(unication)f(with)g(them,)g(returning)75 2634 y(an)j(in)o(tercomm)o
(unicator.)1967 46 y Fk(1)1967 103 y(2)1967 159 y(3)1967
215 y(4)1967 272 y(5)1967 328 y(6)1967 385 y(7)1967 441
y(8)1967 498 y(9)1959 554 y(10)1959 611 y(11)1959 667
y(12)1959 724 y(13)1959 780 y(14)1959 836 y(15)1959 893
y(16)1959 949 y(17)1959 1006 y(18)1959 1062 y(19)1959
1119 y(20)1959 1175 y(21)1959 1232 y(22)1959 1288 y(23)1959
1345 y(24)1959 1401 y(25)1959 1457 y(26)1959 1514 y(27)1959
1570 y(28)1959 1627 y(29)1959 1683 y(30)1959 1740 y(31)1959
1796 y(32)1959 1853 y(33)1959 1909 y(34)1959 1966 y(35)1959
2022 y(36)1959 2078 y(37)1959 2135 y(38)1959 2191 y(39)1959
2248 y(40)1959 2304 y(41)1959 2361 y(42)1959 2417 y(43)1959
2474 y(44)1959 2530 y(45)1959 2587 y(46)1959 2643 y(47)1959
2699 y(48)p eop
%%Page: 3 5
3 4 bop 75 -100 a Fn(3.2.)34 b(THE)15 b(MPI-2)g(D)o(YNAMIC)g(PR)o
(OCESS)h(MODEL)775 b Ft(3)166 45 y Fp(MPI)p 251 45 14
2 v 16 w(SP)l(A)-5 b(WN)p 417 45 V 17 w(INDEPENDENT)21
b Ft(starts)f(pro)q(cesses)i(\(whic)o(h)g(ma)o(y)f(or)f(ma)o(y)h(not)g
(b)q(e)h(MPI)f(pro-)75 102 y(cesses\))15 b(but)h(do)q(es)f(not)g
(establish)h(comm)o(unication)g(with)g(them.)k(It)15
b(returns)g(a)g(group.)166 158 y(Corresp)q(onding)e(to)f(these)h
(routines)g(are)g(t)o(w)o(o)e(more)h(routines)i(that)e(start)f(sev)o
(eral)i(di\013eren)o(t)g(bina-)75 214 y(ries)e(\(or)e(the)h(same)g
(binary)h(with)f(di\013eren)o(t)h(argumen)o(ts\))e(at)g(the)h(same)g
(time:)18 b Fp(MPI)p 1485 214 V 16 w(SP)l(A)-5 b(WN)p
1651 214 V 17 w(MUL)l(TIPLE)75 271 y Ft(and)15 b Fp(MPI)p
248 271 V 16 w(SP)l(A)-5 b(WN)p 414 271 V 17 w(MUL)l(TIPLE)p
648 271 V 16 w(INDEPENDENT)p Ft(.)166 327 y(MPI)14 b(uses)h(the)g
(existing)g(group)g(abstraction)f(to)g(represen)o(t)g(pro)q(cesses.)20
b(A)15 b(pro)q(cess)g(is)g(iden)o(ti\014ed)75 384 y(b)o(y)g(a)g
(\(group,)f(rank\))h(pair.)75 504 y Fm(3.2.2)49 b(The)16
b(Runtime)g(Environment)75 589 y Ft(The)g Fp(MPI)p 254
589 V 15 w(SP)l(A)-5 b(WN)16 b Ft(and)g Fp(MPI)p 606
589 V 16 w(SP)l(A)-5 b(WN)p 772 589 V 17 w(INDEPENDENT)p
Ft(.)15 b(routines)h(pro)o(vide)g(an)f(in)o(terface)h(b)q(et)o(w)o(een)
75 646 y(MPI)f(and)h(the)f Fj(runtime)h(envir)n(onment)e
Ft(of)h(an)g(MPI)g(application.)166 702 y(The)f(di\016cult)o(y)h(is)f
(that)f(there)h(is)g(an)g(enormous)g(range)f(of)g(run)o(time)h(en)o
(vironmen)o(ts)g(and)g(applica-)75 759 y(tion)i(requiremen)o(ts,)g(and)
g(MPI)g(m)o(ust)f(not)h(b)q(e)g(tailored)h(to)e(an)o(y)g(particular)i
(one.)22 b(Examples)16 b(of)g(suc)o(h)75 815 y(en)o(vironmen)o(ts)f
(are:)143 906 y Fo(\017)23 b Fi(MPP)15 b(managed)i(b)o(y)e(a)i(batc)o
(h)g(queueing)f(system)p Ft(.)j(Batc)o(h)13 b(queueing)j(systems)e
(generally)189 963 y(allo)q(cate)j(resources)g(b)q(efore)g(an)g
(application)i(b)q(egins,)f(enforce)f(limits)h(on)f(resource)g(use)g
(\(CPU)189 1019 y(time,)f(memory)g(use,)g(etc\),)g(and)g(do)h(not)e
(allo)o(w)i(a)f(c)o(hange)g(in)h(resource)f(allo)q(cation)i(after)d(a)h
(job)189 1076 y(b)q(egins.)21 b(Moreo)o(v)o(er,)13 b(man)o(y)i(MPPs)f
(ha)o(v)o(e)h(sp)q(ecial)h(limitations)h(or)d(extensions,)i(suc)o(h)f
(as)g(a)g(limit)189 1132 y(the)c(n)o(um)o(b)q(er)h(of)f(pro)q(cesses)h
(that)f(ma)o(y)g(run)h(on)g(one)f(pro)q(cessor,)h(or)f(the)h(abilit)o
(y)h(to)e(gang-sc)o(hedule)189 1189 y(pro)q(cesses)k(of)g(a)g(parallel)
i(application.)143 1278 y Fo(\017)23 b Fi(Net)o(w)o(ork)17
b(of)i(w)o(orkstations)g(with)h(PVM)p Ft(.)15 b(PVM)h(\(P)o(arallel)h
(Virtual)h(Mac)o(hine\))e(allo)o(ws)h(a)189 1335 y(user)f(to)g(create)g
(a)g(\\virtual)h(mac)o(hine")g(out)f(of)g(a)g(net)o(w)o(ork)f(of)h(w)o
(orkstations.)23 b(An)16 b(application)189 1391 y(ma)o(y)i(extend)j
(the)e(virtual)h(mac)o(hine)h(or)e(manage)g(pro)q(cesses)h(\(create,)f
(kill,)j(redirect)f(output,)189 1447 y(etc.\))26 b(through)18
b(the)f(PVM)g(library)l(.)28 b(Requests)19 b(to)e(manage)g(the)g(mac)o
(hine)i(or)e(pro)q(cesses)h(ma)o(y)189 1504 y(b)q(e)e(in)o(tercepted)g
(and)f(handled)i(b)o(y)e(an)g(external)h(resource)f(manager.)143
1593 y Fo(\017)23 b Fi(Net)o(w)o(ork)10 b(of)i(w)o(orkstations)f
(managed)i(b)o(y)e(a)i(load)g(balancing)h(system)p Ft(.)j(A)10
b(load)h(balanc-)189 1650 y(ing)h(system)f(ma)o(y)f(c)o(ho)q(ose)i(the)
f(lo)q(cation)h(of)f(spa)o(wned)h(pro)q(cesses)f(based)h(on)f(dynamic)i
(quan)o(tities,)189 1706 y(suc)o(h)19 b(as)f(load)h(a)o(v)o(erage.)29
b(It)18 b(ma)o(y)g(transparen)o(tly)g(migrate)h(pro)q(cesses)g(from)e
(one)i(mac)o(hine)h(to)189 1763 y(another)14 b(when)i(a)f(resource)g(b)
q(ecomes)h(una)o(v)m(ailable.)143 1852 y Fo(\017)23 b
Fi(Large)j(SMP)g(with)g(Unix)p Ft(.)43 b(Applications)24
b(are)f(run)g(directly)h(b)o(y)e(the)h(user.)42 b(They)23
b(are)189 1909 y(sc)o(heduled)15 b(at)d(a)h(lo)o(w)g(lev)o(el)h(b)o(y)f
(the)g(op)q(erating)h(system.)k(Pro)q(cesses)13 b(ma)o(y)g(ha)o(v)o(e)g
(sp)q(ecial)h(sc)o(hedul-)189 1965 y(ing)g(c)o(haracteristics)h
(\(gang-sc)o(heduling,)g(pro)q(cessor)g(a\016nit)o(y)l(,)f(deadline)i
(sc)o(heduling,)g(pro)q(cessor)189 2022 y(lo)q(c)o(king,)h(etc.\))24
b(and)16 b(b)q(e)i(sub)s(ject)e(to)g(OS)h(resource)f(limits)i(\(n)o(um)
o(b)q(er)f(of)f(pro)q(cesses,)h(amoun)o(t)e(of)189 2078
y(memory)l(,)f(etc.\).)166 2169 y(MPI)f(assumes,)g(implicitly)l(,)k
(the)c(existence)h(of)f(an)g(en)o(vironmen)o(t)h(in)g(whic)o(h)g(an)f
(application)i(runs.)75 2226 y(It)k(do)q(es)g(not)g(pro)o(vide)g(\\op)q
(erating)g(system")f(services,)i(suc)o(h)g(as)e(a)h(general)g(abilit)o
(y)h(to)e(query)i(what)75 2282 y(pro)q(cesses)i(are)f(running,)j(to)c
(kill)k(arbitrary)c(pro)q(cesses,)j(to)e(\014nd)h(out)f(prop)q(erties)h
(of)f(the)h(run)o(time)75 2339 y(en)o(vironmen)o(t)d(\(ho)o(w)f(man)o
(y)g(pro)q(cessors,)g(ho)o(w)g(m)o(uc)o(h)h(memory)l(,)f(etc\).)30
b(Complex)19 b(in)o(teraction)g(of)f(an)75 2395 y(MPI)i(application)h
(with)f(its)g(run)o(time)h(en)o(vironmen)o(t)f(should)h(b)q(e)f(done)g
(through)g(an)g(en)o(vironmen)o(t-)75 2452 y(sp)q(eci\014c)d(API.)166
2591 y Fh(Discussion:)52 b Fg(An)19 b(example)e(of)h(suc)o(h)h(an)g
(API)g(w)o(ould)e(b)q(e)i(the)h(PVM)f(task)f(and)h(mac)o(hine)e
(manage-)75 2647 y(men)o(t)e(routines)i({)f Ff(pvm)p
450 2647 V 15 w(addhosts)p Fg(,)f Ff(pvm)p 734 2647 V
15 w(config)p Fg(,)g Ff(pvm)p 974 2647 V 16 w(tasks)p
Fg(,)g(etc.,)i(p)q(ossibly)f(mo)q(di\014ed)f(to)h(return)i(an)e(MPI)75
2704 y(\(group,rank\))e(when)g(p)q(ossible.)k(A)c(Condor)g(or)g(PBS)g
(API)g(w)o(ould)g(b)q(e)g(another)g(p)q(ossibilit)o(y)m(.)-32
46 y Fk(1)-32 103 y(2)-32 159 y(3)-32 215 y(4)-32 272
y(5)-32 328 y(6)-32 385 y(7)-32 441 y(8)-32 498 y(9)-40
554 y(10)-40 611 y(11)-40 667 y(12)-40 724 y(13)-40 780
y(14)-40 836 y(15)-40 893 y(16)-40 949 y(17)-40 1006
y(18)-40 1062 y(19)-40 1119 y(20)-40 1175 y(21)-40 1232
y(22)-40 1288 y(23)-40 1345 y(24)-40 1401 y(25)-40 1457
y(26)-40 1514 y(27)-40 1570 y(28)-40 1627 y(29)-40 1683
y(30)-40 1740 y(31)-40 1796 y(32)-40 1853 y(33)-40 1909
y(34)-40 1966 y(35)-40 2022 y(36)-40 2078 y(37)-40 2135
y(38)-40 2191 y(39)-40 2248 y(40)-40 2304 y(41)-40 2361
y(42)-40 2417 y(43)-40 2474 y(44)-40 2530 y(45)-40 2587
y(46)-40 2643 y(47)-40 2699 y(48)p eop
%%Page: 4 6
4 5 bop 75 -100 a Ft(4)951 b Fn(CHAPTER)16 b(3.)34 b(D)o(YNAMIC)15
b(PR)o(OCESSES)166 45 y Ft(A)o(t)h(some)h(lo)o(w)f(lev)o(el,)i(ob)o
(viously)l(,)g(MPI)f(m)o(ust)f(b)q(e)h(able)h(to)e(in)o(teract)h(with)g
(the)g(run)o(time)g(system,)75 102 y(but)h(the)f(in)o(teraction)h(is)g
(not)f(visible)j(at)d(the)h(application)h(lev)o(el)g(and)e(the)h
(details)g(are)g(not)f(sp)q(eci\014ed)75 158 y(b)o(y)e(the)g(MPI)h
(standard.)166 291 y Fh(Discussion:)34 b Fg(It)14 b(has)g(b)q(een)h
(requested)h(that)e(the)g(MPI)g(forum)e(sp)q(ecify)j(this)f(in)o
(terface)g(explicitly)m(.)j(MPI)75 340 y(has)f(so)g(far)g(shied)h(a)o
(w)o(a)o(y)e(from)f(sp)q(ecifying)i(implemen)o(tation)d(details,)j(for)
f(go)q(o)q(d)h(reasons.)26 b(It)16 b(w)o(ould)f(b)q(e)i(nice,)75
390 y(ho)o(w)o(ev)o(er,)d(if)f(implemen)o(tors)e(agreed)k(on)f(a)f
(minim)o(al)e(standard)j(in)o(terface)g(to)g(allo)o(w)e(in)o(terop)q
(erabilit)o(y)m(.)166 529 y Ft(MPI)h(do)q(es)g(not)f(require)i(the)f
(existence)h(of)e(an)h(underlying)h(\\virtual)f(mac)o(hine")h(mo)q
(del,)g(in)f(whic)o(h)75 586 y(there)h(is)g(a)g(consisten)o(t)g(global)
g(view)h(of)e(an)h(MPI)g(application,)h(and)f(an)g(implicit)i(\\op)q
(erating)e(system")75 642 y(managing)k(resources)f(and)h(pro)q(cesses.)
28 b(F)l(or)17 b(instance,)i(pro)q(cesses)f(spa)o(wned)g(b)o(y)g(one)f
(task)g(ma)o(y)g(not)75 699 y(b)q(e)i(visible)h(to)e(another;)h
(additional)h(hosts)e(added)h(to)e(the)i(run)o(time)f(en)o(vironmen)o
(t)h(b)o(y)f(one)h(pro)q(cess)75 755 y(ma)o(y)13 b(not)h(b)q(e)h
(visible)i(in)e(another)e(pro)q(cess;)i(tasks)e(spa)o(wned)i(b)o(y)f
(di\013eren)o(t)g(pro)q(cesses)h(ma)o(y)e(not)h(b)q(e)h(au-)75
812 y(tomatically)g(distributed)h(o)o(v)o(er)d(a)o(v)m(ailable)k
(resources.)i(MPI)c(do)q(es)f(require,)h(ho)o(w)o(ev)o(er,)f(that)g(a)g
(pro)q(cess)75 868 y(b)q(e)k(a)o(w)o(are)e(of)h(its)g(o)o(wn)g(c)o
(hanges)h(to)e(the)i(run)o(time)f(en)o(vironmen)o(t.)27
b(F)l(or)17 b(instance,)h(it)g(can)f(b)q(e)h(noti\014ed)75
924 y(when)e(its)f(c)o(hildren)i(die;)f(tasks)e(whic)o(h)i(it)g(spa)o
(wns)f(will)i(b)q(e)e(distributed)i(in)f(some)f(sane)g(manner,)g(etc.)
189 1018 y Fj(A)n(dvic)n(e)22 b(to)h(implementors.)86
b Ft(A)23 b(virtual)g(mac)o(hine)h(abstraction)e(is)h(appropriate)g(in)
h(most)189 1075 y(en)o(vironmen)o(ts)15 b(and)g(should)g(b)q(e)h(part)e
(of)g(a)h(\\high-qualit)o(y")h(implemen)o(tation.)21
b(In)15 b(other)f(cases,)189 1131 y(pro)o(viding)j(the)f(virtual)h(mac)
o(hine)g(abstraction)f(ma)o(y)g(add)h(to)q(o)e(m)o(uc)o(h)i(baggage)e
(\(e.g.,)g(daemon)189 1188 y(pro)q(cesses\))g(or)g(inhibit)i(p)q
(ortabilit)o(y)l(.)k(\()p Fj(End)16 b(of)g(advic)n(e)g(to)h
(implementors.)p Ft(\))166 1281 y(In)o(teraction)12 b(b)q(et)o(w)o(een)
g(MPI)g(and)g(the)f(run)o(time)i(en)o(vironmen)o(t)f(is)g(limited)i(to)
d(the)h(follo)o(wing)g(areas:)143 1388 y Fo(\017)23 b
Ft(A)17 b(pro)q(cess)h(ma)o(y)f(start)g(new)h(pro)q(cesses)g(with)g
Fp(MPI)p 1100 1388 14 2 v 16 w(SP)l(A)-5 b(WN)p Ft(,)18
b Fp(MPI)p 1379 1388 V 15 w(SP)l(A)-5 b(WN)p 1544 1388
V 18 w(INDEPENDENT)189 1444 y Ft(and)21 b(their)g(m)o
(ultiple-executabl)q(e)j(v)m(arian)o(ts.)37 b(It)21 b(ma)o(y)f(kill)j
(pro)q(cesses)f(it)f(has)g(spa)o(wned)g(\(and)189 1501
y(p)q(ossibly)16 b(others\))f(and)g(ma)o(y)g(b)q(e)h(noti\014ed)g(when)
f(pro)q(cesses)h(die)g(or)f(b)q(ecome)h(unreac)o(hable.)143
1594 y Fo(\017)23 b Ft(When)c(a)g(pro)q(cess)g(spa)o(wns)f(a)h(c)o
(hild)i(pro)q(cess,)e(it)g(optionlly)i(passes)e(a)f(string)h(to)g(the)g
(run)o(time)189 1651 y(en)o(vironmen)o(t)14 b(to)g(indicate)h(where)g
(the)f(pro)q(cess)g(should)i(b)q(e)e(started.)19 b(The)c(string)f(is)g
(opaque)h(to)189 1707 y(MPI.)143 1801 y Fo(\017)23 b
Ft(A)16 b(v)m(ariable)h Fp(MPI)p 495 1801 V 16 w(UNIVERSE)p
725 1801 V 17 w(SIZE)p Ft(,)f(tells)h(a)e(program)g(ho)o(w)h(\\large")f
(the)h(initial)i(run)o(time)e(en-)189 1858 y(vironmen)o(t)i(is,)i
(namely)f(ho)o(w)f(man)o(y)h(pro)q(cesses)g(can)f(usefully)j(b)q(e)e
(started)f(alltogether.)30 b(One)189 1914 y(can)17 b(subtract)g(the)h
(size)g(of)f Fp(MPI)p 764 1914 V 16 w(COMM)p 922 1914
V 16 w(W)o(ORLD)h Ft(from)f(this)h(v)m(alue)g(to)f(\014nd)h(out)f(ho)o
(w)g(man)o(y)189 1971 y(pro)q(cesses)e(migh)o(t)g(usefully)i(b)q(e)f
(started)e(in)j(addition)f(to)e(those)h(already)h(running.)75
2092 y Fm(3.2.3)49 b(Applications)18 b(Requiring)f(Direct)e
(Communication)i(with)g(the)e(Runtime)h(System)75 2178
y Ft(The)22 b(existing)g(MPI)f(sp)q(eci\014cation)j(is)e(adequate)f
(for)g(most)f(parallel)j(applications.)40 b(In)22 b(these)g(ap-)75
2235 y(plications,)d(the)e(run)o(time)h(en)o(vironmen)o(t,)g(whether)f
(simple)i(or)e(elab)q(orate,)h(allo)q(cates)f(resources)h(and)75
2291 y(manages)e(user)h(pro)q(cesses)g(without)g(in)o(teracting)g(with)
g(the)f(application)j(program.)k(In)17 b(other)f(appli-)75
2347 y(cations,)j(ho)o(w)o(ev)o(er,)f(it)g(is)h(necessary)g(that)e(the)
i Fj(user)g(level)j Ft(of)c(the)g(application)i(comm)o(unicate)f(with)
75 2404 y(the)g(run)o(time)h(en)o(vironmen)o(t.)32 b(Here)20
b(w)o(e)f(describ)q(e)i(three)e(broad)g(classes)h(of)f(suc)o(h)h
(applications.)33 b(In)75 2460 y(Section)16 b(3.5)e(w)o(e)h(will)i(giv)
o(e)f(concrete)f(examples)h(of)f(eac)o(h)g(of)g(these)g(classes.)75
2580 y Fp(T)l(ask)d(F)o(a)o(rming)43 b Ft(By)11 b(a)g(\\task)f(farm")g
(application)i(w)o(e)f(mean)g(a)f(program)g(that)g(manages)h(the)g
(execution)75 2637 y(of)j(a)g(set)g(of)g(other,)g(p)q(ossibly)i(sequen)
o(tial,)g(programs.)i(This)d(situation)g(often)f(arises)h(when)g(one)f
(w)o(an)o(ts)75 2693 y(to)19 b(run)h(the)g(same)f(sequen)o(tial)i
(program)e(man)o(y)g(times)h(with)g(v)m(arying)h(input)f(data.)33
b(W)l(e)20 b(call)h(eac)o(h)1967 46 y Fk(1)1967 103 y(2)1967
159 y(3)1967 215 y(4)1967 272 y(5)1967 328 y(6)1967 385
y(7)1967 441 y(8)1967 498 y(9)1959 554 y(10)1959 611
y(11)1959 667 y(12)1959 724 y(13)1959 780 y(14)1959 836
y(15)1959 893 y(16)1959 949 y(17)1959 1006 y(18)1959
1062 y(19)1959 1119 y(20)1959 1175 y(21)1959 1232 y(22)1959
1288 y(23)1959 1345 y(24)1959 1401 y(25)1959 1457 y(26)1959
1514 y(27)1959 1570 y(28)1959 1627 y(29)1959 1683 y(30)1959
1740 y(31)1959 1796 y(32)1959 1853 y(33)1959 1909 y(34)1959
1966 y(35)1959 2022 y(36)1959 2078 y(37)1959 2135 y(38)1959
2191 y(39)1959 2248 y(40)1959 2304 y(41)1959 2361 y(42)1959
2417 y(43)1959 2474 y(44)1959 2530 y(45)1959 2587 y(46)1959
2643 y(47)1959 2699 y(48)p eop
%%Page: 5 7
5 6 bop 75 -100 a Fn(3.3.)34 b(PR)o(OCESS)16 b(MANA)o(GER)f(INTERF)-5
b(A)o(CE)916 b Ft(5)75 45 y(in)o(v)o(o)q(cation)14 b(of)e(the)i(sequen)
o(tial)g(program)e(a)h Fj(task)p Ft(.)19 b(It)13 b(is)h(often)f
(simplest)h(to)f(\\parallelize")i(the)e(existing)75 102
y(sequen)o(tial)h(program)d(b)o(y)i(writing)g(a)f(parallel)j
(\\harness")d(program)f(that)h(in)i(turn)e(dev)o(otes)h(a)f(separate,)
75 158 y(transien)o(t)j(pro)q(cess)g(to)g(eac)o(h)g(task.)k(When)d(one)
f(task)f(\014nishes,)i(a)f(new)g(pro)q(cess)h(is)f(started)g(to)f
(execute)75 214 y(the)19 b(next)f(one.)30 b(Ev)o(en)19
b(if)g(the)f(resources)h(allo)q(cated)g(to)f(the)h(job)f(are)g
(\014xed,)i(the)f(\\harness")f(pro)q(cess)75 271 y(m)o(ust)13
b(in)o(teract)g(frequen)o(tly)h(with)g(the)f(pro)q(cess)h(manager)f
(\(ev)o(en)g(if)h(this)g(is)g(just)f Fl(rsh)p Ft(,)g(to)g(start)f(the)i
(new)75 327 y(pro)q(cesses)i(with)f(the)h(new)f(input)h(data\).)j(In)d
(man)o(y)f(cases)g(this)h(harness)f(can)g(b)q(e)h(written)g(in)g(a)e
(simple)75 384 y(scripting)k(language)f(lik)o(e)g Fl(csh)g
Ft(or)f Fl(perl)p Ft(,)g(but)h(some)f(users)h(prefer)g(to)f(use)h(F)l
(ortran)e(or)h(C.)g(Note)h(that)75 440 y(it)f(is)g(an)g(explicit)i
(goal)d(of)h(the)f(MPI)h(dynamic)h(pro)q(cess)f(arc)o(hitecture)g(to)f
(allo)o(w)h(the)f(managemen)o(t)g(of)75 497 y(non-MPI)h(pro)q(cesses.)
75 617 y Fp(Dynamic)f(numb)q(er)i(of)e(p)o(ro)q(cesses)j(in)e(pa)o
(rallel)f(job)46 b Ft(The)16 b(program)f(wishes)i(to)e(decide)j
Fj(inside)g Ft(the)e(pro-)75 673 y(gram)e(to)g(adjust)g(the)g(n)o(um)o
(b)q(er)h(of)f(pro)q(cesses)h(to)f(\014t)h(the)f(size)i(of)e(the)h
(problem.)20 b(F)l(urthermore,)14 b(it)h(ma)o(y)75 730
y(con)o(tin)o(ue)k(to)g(add)g(and)g(subtract)f(pro)q(cesses)h(during)h
(the)f(computation)g(to)f(\014t)h(separate)f(phases)h(of)75
786 y(the)g(computation,)h(some)f(of)g(whic)o(h)h(ma)o(y)f(b)q(e)h
(more)f(parallel)i(than)e(others.)32 b(In)20 b(order)f(to)g(do)g(this,)
75 843 y(the)i(application)i(program)d(will)j(ha)o(v)o(e)e(to)g(in)o
(teract)g(with)h(the)f(resource)g(manager)g(\(ho)o(w)o(ev)o(er)f(it)h
(is)75 899 y(implemen)o(ted\))e(to)d(request)i(and)f(acquire)h(or)f
(return)g(computational)h(resources.)26 b(It)17 b(will)i(also)e(ha)o(v)
o(e)75 956 y(to)f(in)o(teract)h(with)g(the)g(pro)q(cess)g(manager)g(to)
f(request)h(that)f(pro)q(cesses)h(b)q(e)h(started)e(and)h(in)h(order)f
(to)75 1012 y(mak)o(e)12 b(the)g(new)h(pro)q(cesses)f(kno)o(wn)g(to)g
(the)g(message-passing)g(library)h(so)f(that)g(the)g(larger)g(\(or)g
(smaller\))75 1068 y(group)j(of)g(pro)q(cesses)g(can)h(comm)o(unicate.)
166 1125 y(An)21 b(imp)q(ortan)o(t)f(t)o(yp)q(e)h(of)f(dynamic)h
(application)i(is)e(a)f(sca)o(v)o(enger)g(application.)38
b(A)20 b(sca)o(v)o(enger)75 1181 y(application)i(is)f(\\em)o
(barrassingly)f(parallel")i(in)f(the)g(sense)g(that)e(it)i(p)q(erforms)
f(a)g(large)h(n)o(um)o(b)q(er)f(of)75 1238 y(completely)d(indep)q
(enden)o(t)i(tasks.)i(If)c(the)f(n)o(um)o(b)q(er)g(of)g(tasks)f(is)i
(large)f(enough,)g(suc)o(h)g(an)g(application)75 1294
y(can)k(mak)o(e)g(use)h(of)f(an)o(y)g(resources)g(that)g(b)q(ecome)h(a)
o(v)m(ailable.)37 b(Con)o(v)o(ersely)l(,)21 b(it)g(can)g(easily)g(giv)o
(e)f(up)75 1351 y(resources)i(to)g(another)g(application.)42
b(Sca)o(v)o(enger)22 b(applications)i(are)e(excellen)o(t)i(for)e
(\014lling)i(in)f(the)75 1407 y(\\holes")15 b(on)g(a)g(space-shared)h
(parallel)h(mac)o(hine,)f(allo)o(wing)g(it)f(to)g(ac)o(hiev)o(e)g(v)o
(ery)g(high)h(utilization.)75 1527 y Fp(Client/Server)46
b Ft(This)15 b(situation)h(is)f(the)g(opp)q(osite)h(of)e(the)h
(situations)g(ab)q(o)o(v)o(e,)g(where)g(pro)q(cesses)g(come)75
1584 y(and)21 b(go)f(up)q(on)h(request.)37 b(In)21 b(the)g(clien)o
(t/serv)o(er)g(mo)q(del,)i(one)e(set)f(of)g(pro)q(cesses)h(is)g
(relativ)o(ely)h(p)q(er-)75 1640 y(manen)o(t)17 b(\(the)g(serv)o(er,)g
(whic)o(h)h(w)o(e)f(assume)g(here)h(ma)o(y)e(b)q(e)i(a)f(parallel)i
(program\).)24 b(A)o(t)17 b(unpredictable)75 1697 y(times,)e(another)f
(\(p)q(ossibly)h(parallel\))h(program)d(\(the)i(clien)o(t\))g(b)q
(egins)h(execution)f(and)g(m)o(ust)f(establish)75 1753
y(comm)o(unication)k(with)f(the)g(serv)o(er.)26 b(In)17
b(this)h(case)f(the)g(pro)q(cess)g(manager)g(m)o(ust)f(pro)o(vide)i(a)f
(w)o(a)o(y)f(for)75 1810 y(the)e(clien)o(t)h(to)e(lo)q(cate)h(the)g
(serv)o(er)f(and)h(comm)o(unicate)g(to)f(the)g(message-passing)h
(library)h(that)e(it)h(m)o(ust)75 1866 y(no)o(w)h(supp)q(ort)g(comm)o
(unications)h(with)f(a)g(new)h(collection)h(of)d(pro)q(cesses.)166
1922 y(It)19 b(is)g(curren)o(tly)h(p)q(ossible)g(to)f(write)g(the)g
(parallel)h(clien)o(ts)g(and)f(serv)o(ers)g(in)g(MPI,)g(but)g(b)q
(ecause)75 1979 y(MPI)g(do)q(es)g(not)g(pro)o(vide)h(the)f(necessary)g
(in)o(terfaces)g(b)q(et)o(w)o(een)h(the)f(application)i(program)d(and)h
(the)75 2035 y(resource)f(manager)g(or)g(pro)q(cess)h(manager,)f(other)
g(nonp)q(ortable,)h(mac)o(hine)g(sp)q(eci\014c)i(libraries)f(m)o(ust)75
2092 y(b)q(e)15 b(called)h(in)f(order)f(for)g(the)g(clien)o(t)h(and)g
(serv)o(er)f(to)f(comm)o(unicate)i(with)g(one)f(another.)19
b(On)c(the)f(other)75 2148 y(hand,)g(MPI)g(do)q(es)g(con)o(tain)g(sev)o
(eral)f(features)h(that)f(mak)o(e)g(it)h(relativ)o(ely)h(easy)e(to)g
(add)h(suc)o(h)g(in)o(terfaces,)75 2205 y(and)h(w)o(e)g(prop)q(ose)h(b)
q(oth)f(a)g(simple)h(in)o(terface)g(and)f(a)g(more)g(complex)h(but)f
(\015exible)j(one.)75 2348 y Fq(3.3)59 b(Pro)r(cess)19
b(Manager)h(Interface)75 2451 y Fm(3.3.1)49 b(Pro)q(cesses)15
b(in)i(MPI)75 2537 y Ft(A)22 b(pro)q(cess)h(is)f(represen)o(ted)h(in)g
(MPI)f(b)o(y)g(a)g(\(group,)h(rank\))f(pair.)41 b(A)22
b(pro)q(cess)h(ma)o(y)e(or)h(ma)o(y)f(not)75 2593 y(b)q(e)f(an)g(\\MPI)
f(pro)q(cess")g(in)i(that)e(it)g(ma)o(y)g(or)g(ma)o(y)g(not)g(call)i
Fp(MPI)p 1259 2593 14 2 v 16 w(INIT)e Ft(and)g(th)o(us)h(b)q(e)g
(assigned)g(an)75 2650 y Fp(MPI)p 160 2650 V 16 w(COMM)p
318 2650 V 16 w(W)o(ORLD)p Ft(.)15 b(MPI)g(can't)g(comm)o(unicate)g
(directly)i(with)e(a)g(pro)q(cess)g(unless)i(it)e(has)g(a)g(com-)-32
46 y Fk(1)-32 103 y(2)-32 159 y(3)-32 215 y(4)-32 272
y(5)-32 328 y(6)-32 385 y(7)-32 441 y(8)-32 498 y(9)-40
554 y(10)-40 611 y(11)-40 667 y(12)-40 724 y(13)-40 780
y(14)-40 836 y(15)-40 893 y(16)-40 949 y(17)-40 1006
y(18)-40 1062 y(19)-40 1119 y(20)-40 1175 y(21)-40 1232
y(22)-40 1288 y(23)-40 1345 y(24)-40 1401 y(25)-40 1457
y(26)-40 1514 y(27)-40 1570 y(28)-40 1627 y(29)-40 1683
y(30)-40 1740 y(31)-40 1796 y(32)-40 1853 y(33)-40 1909
y(34)-40 1966 y(35)-40 2022 y(36)-40 2078 y(37)-40 2135
y(38)-40 2191 y(39)-40 2248 y(40)-40 2304 y(41)-40 2361
y(42)-40 2417 y(43)-40 2474 y(44)-40 2530 y(45)-40 2587
y(46)-40 2643 y(47)-40 2699 y(48)p eop
%%Page: 6 8
6 7 bop 75 -100 a Ft(6)951 b Fn(CHAPTER)16 b(3.)34 b(D)o(YNAMIC)15
b(PR)o(OCESSES)75 45 y Ft(m)o(unicator,)h(but)h(a)f(user)g(can)h(send)g
(signals)g(to)f(an)o(y)g(pro)q(cess.)24 b(Note)16 b(that)g(a)g
(\(group,)f(rank\))h(iden)o(ti\014-)75 102 y(cation)f(is)h(not)f
(unique)i(b)q(ecause)f(a)f(pro)q(cess)g(ma)o(y)g(b)q(elong)h(to)e(sev)o
(eral)i(groups.)75 223 y Fm(3.3.2)49 b(Sta)o(rting)16
b(Pro)q(cesses)f(-)h(Simple)h(Interface)75 309 y Ft(The)e(follo)o(wing)
h(routine)g(is)g(the)f(simplest)h(w)o(a)o(y)e(to)h(start)f(MPI)h(pro)q
(cesses.)75 460 y Fp(MPI)p 160 460 14 2 v 16 w(SP)l(A)-5
b(WN\(command-line,)15 b(n,)g(info,)g(\015ags,)g(ro)q(ot,)f(comm,)f
(intercomm,)h(a)o(rra)o(y-of-errco)q(des\))117 537 y
Fg(IN)155 b Fp(command-line)322 b Fg(executable)15 b(and)f(argumen)o
(ts,)f(in)g(a)h(single)f(string)117 612 y(IN)155 b Fp(n)564
b Fg(n)o(um)o(b)q(er)13 b(of)h(pro)q(cesses)i(to)e(start)117
688 y(IN)155 b Fp(info)516 b Fg(a)14 b(string)g(telling)f(the)i(run)o
(time)e(system)g(where)j(and)d(ho)o(w)h(to)905 744 y(start)h(the)f(pro)
q(cesses)j(\(signi\014can)o(t)c(only)g(on)h(ro)q(ot\))117
819 y(IN)155 b Fp(\015ags)501 b Fg(set)15 b(of)e(\(b)q(o)q(olean\))h
(\015ags)g(describing)g(spa)o(wn)g(parameters)117 894
y(IN)155 b Fp(ro)q(ot)508 b Fg(rank)13 b(of)f(pro)q(cess)j(in)d(whic)o
(h)h(previous)g(argumen)o(ts)f(are)i(v)n(alid)117 969
y(IN)155 b Fp(comm)470 b Fg(comm)o(unicator)11 b(of)j(group)f(of)h(spa)
o(wning)f(pro)q(cesses)117 1045 y(OUT)108 b Fp(intercomm)384
b Fg(in)o(tercomm)o(unicator)7 b(b)q(et)o(w)o(een)k(original)c(group)i
(and)g(the)h(newly)905 1101 y(spa)o(wned)15 b(group)117
1176 y(OUT)108 b Fp(a)o(rra)o(y-of-errco)q(des)269 b
Fg(one)14 b(co)q(de)h(p)q(er)g(pro)q(cess)166 1301 y
Fp(MPI)p 251 1301 V 16 w(SP)l(A)-5 b(WN)23 b Ft(is)g(collectiv)o(e)i(o)
o(v)o(er)d Fp(comm)f Ft(and)h(the)h(newly)h(created)f(pro)q(cesses.)42
b(It)23 b(starts)f Fp(n)75 1357 y Ft(iden)o(tical)16
b(copies)f(of)f(the)h(program)e(sp)q(eci\014ed)j(b)o(y)e
Fp(command-line)p Ft(,)g(in)h(a)f(w)o(a)o(y)f(whic)o(h)j(is)e
(determined)i(b)o(y)75 1413 y(the)f(run)o(time)h(en)o(vironmen)o(t.)166
1470 y(The)21 b Fp(command-line)f Ft(argumen)o(t)h(is)g(a)g(string)g
(con)o(taining)g(a)g(program)f(name)h(and)g(argumen)o(ts)75
1526 y(whic)o(h)c(are)g(passed)f(to)g(the)h(program.)23
b(The)17 b(command-line)h(is)f(a)f(whitespace-separated)h(list)h(of)e
(the)75 1583 y(program)e(name)h(and)h(argumen)o(ts)e(\(tok)o(ens\).)166
1639 y(The)19 b(follo)o(wing)h(legalese)h(de\014nes)f(all)h(the)e(sp)q
(ecial)i(cases)e(and)h(ensures)g(that)e(it)i(is)g(p)q(ossible)h(to)75
1696 y(sp)q(ecify)d(an)o(y)e(argumen)o(ts.)23 b(It)16
b(is)h(unnecessary)g(for)f(normal)h(use.)24 b(Whitespace)17
b(is)g(de\014ned)h(as)e(for)g(the)75 1752 y(isspace\(\))21
b(routine)g(in)h(the)f(standard)f(C)h(library)h(\(space,)f(form-feed,)h
(new)f(line,)j(carriage)c(return,)75 1809 y(tabs\).)e(All)d(other)e(c)o
(haracters)g(except)h(\\)p Fl(\\)p Ft(")e(in)o(terpreted)j(literally)g
(as)e(part)g(of)g(a)g(tok)o(en.)19 b(A)13 b(whitespace)75
1865 y(c)o(haracter)f(and)i(the)f(\\)p Fl(\\)p Ft(")f(c)o(haracter)h
(ma)o(y)f(b)q(e)i(quoted)f(\(so)f(that)h(they)g(are)g(treated)f(as)h
(part)f(of)h(a)g(tok)o(en\))75 1922 y(b)o(y)18 b(preceding)i(them)e
(with)h(a)e(\\)p Fl(\\)p Ft(")h(c)o(haracter.)28 b(F)l(or)18
b(instance,)h(the)f(program)g Fl(foo)f Ft(with)i(argumen)o(ts)75
1978 y Fl(bar)13 b Ft(and)g Fl(ba z)g Ft(could)h(b)q(e)g(sp)q
(eci\014ed)h(with)f(the)f(command-line)i Fl(foo bar ba\\ z)p
Ft(.)i(T)l(o)c(enable)i(passing)75 2034 y(empt)o(y)c(argumen)o(ts)f
(\(zero)g(length)i(strings\),)f(the)g(\014rst)g(leading)h(space)f(is)h
(stripp)q(ed)g(from)e(all)i(argumen)o(ts.)75 2091 y(F)l(or)k(instance,)
h(the)g(program)e(\\fo)q(o")h(with)g(argumen)o(ts)g(\\")g(\(empt)o(y)g
(string\))g(and)h(\\)p Fl( )p Ft(")f(\(single)h(space\))75
2147 y(could)f(b)q(e)g(sp)q(eci\014ed)h(\\)p Fl(foo \\ \\ \\ )p
Ft(".)189 2254 y Fj(A)n(dvic)n(e)g(to)i(users.)54 b Ft(Though)17
b Fp(MPI)p 819 2254 V 16 w(SP)l(A)-5 b(WN)18 b Ft(tak)o(es)f(a)g
(command-line)i(as)e(an)h(argumen)o(t,)f(it)g(is)189
2310 y(imp)q(ortan)o(t)h(to)g(remem)o(b)q(er)g(that)g(it)h(is)g(not)f
(a)g(shell)i(command)e(that)g(y)o(ou)g(migh)o(t)g(t)o(yp)q(e)h(at)f
(the)189 2367 y(terminal.)h(F)l(or)12 b(instance,)h(\\)p
Fl(foo)23 b(>)h(bar)p Ft(")12 b(will)i(spa)o(wn)d(a)h(program)f(\\)p
Fl(foo)p Ft(")h(with)g(argumen)o(ts)g(\\)p Fl(>)p Ft(")189
2423 y(and)i(\\)p Fl(bar)p Ft(",)g(but)h(will)h(not)e(redirect)i
(output.)j(\\)p Fl(mpirun)k(-np)g(4)h(foo)p Ft(")14 b(will)i(spa)o(wn)f
Fp(n)g Ft(copies)g(of)189 2479 y(the)g(program)f(\\)p
Fl(mpirun)p Ft(".)k(The)d(application)i(will)g(exp)q(ect)e(to)g
(establish)h(comm)o(unication)g(with)189 2536 y(the)j(\\)p
Fl(mpirun)p Ft(")f(program,)g(not)h(with)g(the)g(pro)q(cesses)h(that)e
(ma)o(y)h(b)q(e)g(started)g(b)o(y)g(the)g(mpirun)189
2592 y(program.)f(\()p Fj(End)e(of)g(advic)n(e)g(to)h(users.)p
Ft(\))1967 46 y Fk(1)1967 103 y(2)1967 159 y(3)1967 215
y(4)1967 272 y(5)1967 328 y(6)1967 385 y(7)1967 441 y(8)1967
498 y(9)1959 554 y(10)1959 611 y(11)1959 667 y(12)1959
724 y(13)1959 780 y(14)1959 836 y(15)1959 893 y(16)1959
949 y(17)1959 1006 y(18)1959 1062 y(19)1959 1119 y(20)1959
1175 y(21)1959 1232 y(22)1959 1288 y(23)1959 1345 y(24)1959
1401 y(25)1959 1457 y(26)1959 1514 y(27)1959 1570 y(28)1959
1627 y(29)1959 1683 y(30)1959 1740 y(31)1959 1796 y(32)1959
1853 y(33)1959 1909 y(34)1959 1966 y(35)1959 2022 y(36)1959
2078 y(37)1959 2135 y(38)1959 2191 y(39)1959 2248 y(40)1959
2304 y(41)1959 2361 y(42)1959 2417 y(43)1959 2474 y(44)1959
2530 y(45)1959 2587 y(46)1959 2643 y(47)1959 2699 y(48)p
eop
%%Page: 7 9
7 8 bop 75 -100 a Fn(3.3.)34 b(PR)o(OCESS)16 b(MANA)o(GER)f(INTERF)-5
b(A)o(CE)916 b Ft(7)166 45 y Fh(Discussion:)34 b Fg(The)14
b(format)e(ma)o(y)f(lo)q(ok)i(complicated)g(to)g(users)i(but)f(is)g
(only)f(messy)g(if)g(they)h(w)o(an)o(t)g(to)f(do)75 102
y(something)h(strange.)25 b(Ho)o(w)o(ev)o(er,)16 b(in)f(en)o(vironmen)o
(ts)g(where)i(\014lenames)e(tend)h(to)f(ha)o(v)o(e)h(em)o(b)q(edded)g
(whitespace)75 158 y(this)d(\(and)g(an)o(y)g(other)h(\\command-l)o
(ine")c(in)o(terfaces\))15 b(could)e(b)q(ecome)g(a)g(nigh)o(tmare.)j(W)
m(e)d(decided)h(a)f(while)g(ago)75 214 y(that)h(w)o(e)g(preferred)i(a)d
(command-line)e(in)o(terface)j(to)g(an)g(argv)f(in)o(terface.)19
b(Commen)o(ts?)166 354 y Ft(MPI)e(will)i(start)d Fp(N)h
Ft(copies)h(of)f(the)g(program)g(sp)q(eci\014ed)i(in)f(the)f
Fp(command-line)p Ft(.)26 b(MPI)17 b(do)q(es)g(not)75
410 y(sp)q(ecify)e(ho)o(w)f(to)g(\014nd)h(the)f(executable)h(or)f(ho)o
(w)g(the)g(w)o(orking)g(directory)g(is)h(determined.)21
b(These)14 b(rules)75 467 y(will)f(b)q(e)g(implemen)o(tation-dep)q
(enden)o(t)h(and)e(will)h(b)q(e)f(appropriate)g(for)f(the)h(run)o(time)
g(en)o(vironmen)o(t.)19 b(F)l(or)75 523 y(instance,)g(a)e(homogeneous)g
(system)g(with)h(a)g(global)g(\014le)h(system)e(migh)o(t)g(lo)q(ok)h
(\014rst)f(in)i(the)e(w)o(orking)75 579 y(directory)f(of)f(the)h(spa)o
(wning)g(pro)q(cess,)g(or)f(migh)o(t)h(searc)o(h)g(the)g(directories)g
(in)h(a)f(P)l(A)l(TH)g(en)o(vironmen)o(t)75 636 y(v)m(ariable)i(as)d
(do)h(Unix)i(shells.)24 b(An)16 b(implemen)o(tation)i(on)e(top)g(of)f
(PVM)h(w)o(ould)h(use)f(PVM's)g(rules)h(for)75 692 y(\014nding)g
(executables)f(\(usually)g(in)h Fl(~/pvm3/bin/$PVM_ARCH)p
Ft(\).)11 b(An)16 b(MPI)f(implemen)o(tation)i(running)75
749 y(under)f(IBM's)f(POE)g(will)i(use)f(POE's)f(metho)q(d)g(of)g
(\014nding)h(executables.)166 805 y(The)c Fp(info)g Ft(argumen)o(t)g
(is)h(opaque)f(to)f(MPI)i(and)f(is)h(passed)f(directly)i(to)d(the)h
(run)o(time)h(en)o(vironmen)o(t,)75 862 y(whic)o(h)19
b(uses)f(it)h(to)e(determine)i(where)f(and)h(ho)o(w)e(to)h(spa)o(wn)f
(pro)q(cesses.)29 b(If)19 b(the)f(where)g(argumen)o(t)f(is)75
918 y(omitted)c(\(NULL)g(in)h(C)e(or)h(an)f(empt)o(y)h(string)f(in)i(F)
l(ortran\))d(the)i(run)o(time)g(en)o(vironmen)o(t)g(decides)i(where)75
975 y(to)g(spa)o(wn)f(pro)q(cesses.)166 1031 y(MPI)19
b(do)q(es)h(not)f(sp)q(ecify)i(the)e(format)g(of)g(the)g
Fp(info)g Ft(argumen)o(t,)h(whic)o(h)g(is)g(left)g(up)g(to)e(the)i(MPI)
75 1088 y(implemen)o(tation.)31 b(The)19 b(format)e(is)i(exp)q(ected)h
(to)e(b)q(e)h(tailored)h(to)e(the)g(particular)h(run)o(time)g(system)75
1144 y(b)q(eing)c(used.)20 b(Examples)15 b(of)e(a)h(where)g(string)g
(migh)o(t)g(b)q(e)g(\\hostname=dop)q(ey")g(to)f(spa)o(wn)h(all)h(tasks)
e(on)75 1200 y(a)h(host)h(named)g(\\dop)q(ey",)f(or)g(\\2:hippi:sgi")i
(to)e(spa)o(wn)g(on)h(t)o(w)o(o)e(hippi-connected)18
b(SGI)d(mac)o(hines,)g(or)75 1257 y(ev)o(en)f(\\\014le=info.cfg")h(to)f
(sp)q(ecify)h(that)e(detailed)j(information)e(is)h(sp)q(eci\014ed)h(in)
f(the)f(\014le)h(\\info.cfg".)k(It)75 1313 y(is)c(exp)q(ected)i(that)d
(most)g(p)q(ortable)i(programs)d(will)k(b)q(e)f(able)f(to)g(sp)q(ecify)
h(NULL)g(and)f(let)h(the)f(run)o(time)75 1370 y(system)g(c)o(ho)q(ose)g
(where)g(to)g(place)h(the)f(pro)q(cesses.)166 1426 y(Alternativ)o(ely)l
(,)f(ev)o(en)g(the)f(executable)h(and)g(its)f(command-line)i(argumen)o
(ts)d(can)h(b)q(e)h(con)o(v)o(ey)o(ed)f(in)75 1483 y(the)g
Fp(info)h Ft(argumen)o(t,)e(in)j(whic)o(h)f(case)f(the)h
Fp(command-line)e Ft(argumen)o(t)h(to)g Fp(MPI)p 1419
1483 14 2 v 16 w(SP)l(A)-5 b(WN)14 b Ft(can)f(b)q(e)h(NULL.)166
1539 y(The)g Fp(\015ags)g Ft(argumen)o(t)f(allo)o(ws)h(some)g
(additional)h(\015exibilit)o(y)i(in)d(the)g(spa)o(wn.)20
b(A)13 b(zero)h(v)m(alue)h(sp)q(eci-)75 1596 y(\014es)d(default)g(b)q
(eha)o(vior.)19 b(A)12 b(nonzero)f(v)m(alue)i(m)o(ust)e(b)q(e)h(the)g
(logical)g(OR)h(of)e(one)g(or)g(more)h(of)f(the)g(follo)o(wing)75
1652 y(v)m(alues:)143 1746 y Fo(\017)23 b Fp(MPI)p 274
1746 V 15 w(SP)l(A)-5 b(WN)p 439 1746 V 18 w(SOFT)18
b Ft(sp)q(eci\014es)i(that)d Fp(n)p Ft(,)h(the)g(n)o(um)o(b)q(er)g(of)f
(requested)i(pro)q(cesses,)f(is)g(a)g(soft)f(re-)189
1802 y(quest.)22 b(If)16 b(MPI)g(is)h(unable)g(to)f(spa)o(wn)f(all)i
(of)f(the)g(requested)h(pro)q(cesses,)f(it)g(will)i(spa)o(wn)e(only)g
(a)189 1859 y(subset,)h(and)g(will)h(return)f(a)f(comm)o(unicator)h
(con)o(taining)g(only)h(the)f(pro)q(cesses)g(it)g(w)o(as)f(able)i(to)
189 1915 y(spa)o(wn)e(successfully)l(.)28 b(Note)17 b(that)f(an)h
(implemen)o(tation)h(is)g(not)f(required)h(to)e(implemen)o(t)j(suc)o(h)
189 1972 y(partial)f(spa)o(wning,)h(and)g(ma)o(y)e(alw)o(a)o(ys)h
(return)g(zero)g(pro)q(cesses)h(when)f(there)h(is)f(a)g(failure.)30
b(In)189 2028 y(this)18 b(case,)g(the)g(practical)h(di\013erence)g(is)g
(that)e(in)i(the)f(default)g(b)q(eha)o(vior,)h(failing)g(to)f(spa)o(wn)
f(a)189 2085 y(requested)f(pro)q(cess)h(is)g(an)f(error)g(\(fatal)f(b)o
(y)i(default\),)f(whereas)h(with)f(a)g(soft)g(request,)g(there)g(is)189
2141 y(no)f(error)f(but)i(an)f(empt)o(y)g(in)o(tercomm)o(unicator)g(is)
g(returned.)166 2318 y Fh(Discussion:)32 b Fg(Are)13
b(there)h(an)o(y)e(other)g(\015ags)g(w)o(e)h(migh)o(t)d(conceiv)n(ably)
i(w)o(an)o(t)g(to)g(sp)q(ecify?)18 b(Ev)o(erything)12
b(else)75 2374 y(I)g(can)g(think)g(of)g(should)g(probably)f(go)h(in)f
(the)i(info)e(argumen)o(t.)16 b(If)c(w)o(e)h(can't)f(think)f(of)h(an)o
(ything)f(else,)i(w)o(e)f(should)75 2430 y(remo)o(v)o(e)g(the)i
(\\logical)d(OR")h(language)h(and)g(p)q(ossibly)f(see)j(if)d(w)o(e)h
(can)g(get)h(rid)f(of)f(this)h(argumen)o(t)f(\(absorbing)h(its)75
2487 y(functionalit)o(y)f(in)o(to)h(something)g(else\).)19
b(-)14 b(w)o(cs)166 2626 y Ft(The)j Fp(a)o(rra)o(y-of-errco)q(des)f
Ft(is)i(an)g(arra)o(y)e(of)h(length)h Fp(n)f Ft(in)i(whic)o(h)f(MPI)f
(rep)q(orts)g(the)g(status)g(of)g(eac)o(h)75 2683 y(pro)q(cess)f(that)f
(MPI)g(w)o(as)g(requested)h(to)e(start.)20 b(If)c(all)g
Fp(n)g Ft(pro)q(cesses)g(w)o(ere)f(spa)o(wned,)g Fp(a)o(rra)o
(y-of-errco)q(des)-32 46 y Fk(1)-32 103 y(2)-32 159 y(3)-32
215 y(4)-32 272 y(5)-32 328 y(6)-32 385 y(7)-32 441 y(8)-32
498 y(9)-40 554 y(10)-40 611 y(11)-40 667 y(12)-40 724
y(13)-40 780 y(14)-40 836 y(15)-40 893 y(16)-40 949 y(17)-40
1006 y(18)-40 1062 y(19)-40 1119 y(20)-40 1175 y(21)-40
1232 y(22)-40 1288 y(23)-40 1345 y(24)-40 1401 y(25)-40
1457 y(26)-40 1514 y(27)-40 1570 y(28)-40 1627 y(29)-40
1683 y(30)-40 1740 y(31)-40 1796 y(32)-40 1853 y(33)-40
1909 y(34)-40 1966 y(35)-40 2022 y(36)-40 2078 y(37)-40
2135 y(38)-40 2191 y(39)-40 2248 y(40)-40 2304 y(41)-40
2361 y(42)-40 2417 y(43)-40 2474 y(44)-40 2530 y(45)-40
2587 y(46)-40 2643 y(47)-40 2699 y(48)p eop
%%Page: 8 10
8 9 bop 75 -100 a Ft(8)951 b Fn(CHAPTER)16 b(3.)34 b(D)o(YNAMIC)15
b(PR)o(OCESSES)75 45 y Ft(is)f(\014lled)i(in)e(with)g(the)g(v)m(alue)h
Fp(MPI)p 660 45 14 2 v 16 w(SUCCESS)p Ft(.)g(If)f(only)g
Fe(m)f Ft(\(0)f Fo(\024)h Fe(m)g(<)g(n)p Ft(\))h(pro)q(cesses)g(are)f
(spa)o(wned,)h(the)75 102 y(\014rst)g Fe(n)h Ft(en)o(tries)f(will)i
(con)o(tain)f Fp(MPI)p 684 102 V 16 w(SUCCESS)g Ft(and)g(the)f(rest)g
(will)i(con)o(tain)f(an)f(error)g(co)q(de)h(indicating)75
158 y(an)i(implemen)o(tation-de\014ned)k(reason)c(MPI)g(could)h(not)f
(start)f(the)i(pro)q(cess.)27 b(These)17 b(error)g(co)q(des)h(all)75
214 y(b)q(elong)e(to)f(the)g(error)g(class)g Fp(MPI)p
657 214 V 16 w(ERR)p 758 214 V 17 w(SP)l(A)-5 b(WN)16
b Ft(if)g(there)f(w)o(as)f(no)i(error)e(in)i(the)f(argumen)o(t)g(list.)
166 271 y(If)i(no)f(pro)q(cesses)h(are)f(spa)o(wned,)h(MPI)g(returns)f
(a)g(\\half-empt)o(y")h(in)o(tercomm)o(unicator,)f(that)g(is,)75
327 y(an)e(in)o(tercomm)o(unicator)g(for)f(whic)o(h)i
Fp(MPI)p 807 327 V 16 w(COMM)p 965 327 V 17 w(REMOTE)p
1169 327 V 17 w(GROUP)g Ft(returns)f Fp(MPI)p 1591 327
V 16 w(COMM)p 1749 327 V 16 w(NULL)75 384 y Ft(and)h
Fp(MPI)p 248 384 V 16 w(COMM)p 406 384 V 17 w(REMOTE)p
610 384 V 17 w(SIZE)g Ft(returns)g(0.)166 440 y(An)h(application)i(ma)o
(y)d(pass)h(\(in)o(t)g(*\)NULL)g(\(C-binding\))h(for)f
Fp(a)o(rra)o(y-of-errco)q(des)p Ft(,)e(in)j(whic)o(h)g(case)75
497 y(it)e(is)h(ignored)g(b)o(y)f(MPI.)166 553 y(The)10
b(return)g(v)m(alue)i(\(C\))d(and)i(standard)e(ierror)i(argumen)o(t)e
(\(F)l(ortran\))f(ha)o(v)o(e)i(their)h(usual)g(meanings.)75
610 y Fp(MPI)p 160 610 V 16 w(SUCCESS)18 b Ft(means)e(that)g(the)h(spa)
o(wn)g(completed)h(successfully)g(\(including)h(a)e(partial)g(spa)o(wn)
f(if)75 666 y Fp(MPI)p 160 666 V 16 w(SP)l(A)-5 b(WN)p
326 666 V 17 w(SOFT)16 b Ft(w)o(as)e(sp)q(eci\014ed\))j(and)f(other)e
(v)m(alues)j(indicate)f(an)g(error.)166 805 y Fh(Discussion:)f
Fg(Can)f(w)o(e)g(giv)o(e)f(F)m(ortran)h(programmers)e(an)i(equiv)n
(alen)o(t)f(to)h(NULL?)166 944 y Ft(All)21 b(argumen)o(ts)f(b)q(efore)g
(the)h Fp(ro)q(ot)e Ft(argumen)o(t)h(are)g(sp)q(eci\014ed)i(on)e(the)h
(pro)q(cess)f(whose)g(rank)g(in)75 1001 y Fp(comm)13
b Ft(is)j(equal)g(to)f Fp(ro)q(ot)p Ft(.)k(The)c(v)m(alue)i(of)e(these)
g(argumen)o(ts)f(on)i(other)e(pro)q(cesses)i(is)g(ignored.)166
1057 y(The)10 b(spa)o(wned)h(pro)q(cesses)f(are)g Fj(r)n(e)n(quir)n(e)n
(d)f Ft(to)h(call)h Fp(MPI)p 1072 1057 V 16 w(INIT)p
Ft(,)e(whic)o(h)i(is)g(collectiv)o(e)h(with)e Fp(MPI)p
1737 1057 V 16 w(SP)l(A)-5 b(WN)75 1114 y Ft(in)16 b(the)f(paren)o(t.)k
(The)d(in)o(tercomm)o(unicator)e(can)i(b)q(e)f(obtained)h(in)g(the)f(c)
o(hildren)i(through)d(the)h(routine)75 1170 y Fp(MPI)p
160 1170 V 16 w(P)l(ARENT)p Ft(.)20 b(The)g(c)o(hildren)h(ha)o(v)o(e)e
(their)i(o)o(wn)e Fp(MPI)p 1062 1170 V 15 w(COMM)p 1219
1170 V 17 w(W)o(ORLD)g Ft(whic)o(h)i(is)f(separate)f(from)75
1227 y(that)14 b(of)h(the)h(paren)o(t.)75 1378 y Fp(MPI)p
160 1378 V 16 w(P)l(ARENT\(intercomm\))117 1455 y Fg(OUT)108
b Fp(intercomm)384 b Fg(paren)o(t)15 b(in)o(tercomm)o(unicator)166
1579 y Fp(MPI)p 251 1579 V 16 w(P)l(ARENT)22 b Ft(can)g(b)q(e)h(called)
g(in)f(an)o(y)f(pro)q(cess.)40 b(If)22 b(there)g(is)g(a)f(paren)o(t,)h
(\(i.e.,)h(the)f(pro)q(cess)75 1636 y(w)o(as)c(started)h(with)g
Fp(MPI)p 517 1636 V 16 w(SP)l(A)-5 b(WN)p Ft(\))20 b(it)f(returns)g(an)
h(in)o(tercomm)o(unicator.)31 b(The)20 b(lo)q(cal)g(group)f(of)g(the)75
1692 y(in)o(tercomm)o(unicator)i(consists)g(of)f(the)h(pro)q(cesses)g
(created)g(with)g(the)g(same)g(call)h(to)e Fp(MPI)p 1699
1692 V 15 w(SP)l(A)-5 b(WN)p Ft(.)75 1749 y(The)16 b(remote)g(group)g
(consists)g(of)g(the)g(pro)q(cesses)h(that)f(co)q(op)q(erated)g(on)g
(the)g(call)i(to)d Fp(MPI)p 1652 1749 V 16 w(SP)l(A)-5
b(WN)p Ft(.)17 b(If)75 1805 y(there)e(is)h(no)f(paren)o(t,)g
Fp(MPI)p 541 1805 V 15 w(P)l(ARENT)i Ft(returns)e Fp(MPI)p
986 1805 V 16 w(COMM)p 1144 1805 V 16 w(NULL)p Ft(.)75
1927 y Fm(3.3.3)49 b(Sta)o(rting)16 b(Multiple)h(Bina)o(ries)g(with)f
(a)h(single)g(MPI)p 1121 1927 15 2 v 18 w(COMM)p 1290
1927 V 19 w(W)o(ORLD)75 2013 y Ft(While)g Fp(MPI)p 293
2013 14 2 v 15 w(SP)l(A)-5 b(WN)16 b Ft(is)g(su\016cien)o(t)g(for)f
(most)f(cases,)h(it)g(do)q(es)h(not)f(allo)o(w)g(the)g(follo)o(wing:)
143 2106 y Fo(\017)23 b Ft(Spa)o(wning)16 b(of)g(non-MPI)g(pro)q
(cesses)h(or)e(MPI)i(pro)q(cesses)f(whic)o(h)h(do)f(not)g(wish)g(to)g
(\(or)f(need)i(to\))189 2163 y(comm)o(unicate)e(with)h(their)f(paren)o
(t.)143 2257 y Fo(\017)23 b Ft(Spa)o(wning)15 b(of)g(m)o(ultiple)i
(binaries)g(whic)o(h)f(all)g(ha)o(v)o(e)f(the)g(same)g
Fp(MPI)p 1369 2257 V 16 w(COMM)p 1527 2257 V 16 w(W)o(ORLD)p
Ft(.)143 2351 y Fo(\017)23 b Ft(Spa)o(wning)15 b(of)g(the)g(same)g
(binary)h(with)g(di\013eren)o(t)f(argumen)o(ts.)166 2444
y(The)j(follo)o(wing)h(routine)g(spa)o(wns)f(m)o(ultiple)i(binaries)f
(or)f(the)g(same)g(binary)h(with)f(m)o(ultiple)i(ar-)75
2501 y(gumen)o(ts,)h(establishing)h(comm)o(unication)f(with)g(them.)36
b(All)22 b(spa)o(wned)e(programs)g(ha)o(v)o(e)g(the)g(same)75
2557 y Fp(MPI)p 160 2557 V 16 w(COMM)p 318 2557 V 16
w(W)o(ORLD)p Ft(.)1967 46 y Fk(1)1967 103 y(2)1967 159
y(3)1967 215 y(4)1967 272 y(5)1967 328 y(6)1967 385 y(7)1967
441 y(8)1967 498 y(9)1959 554 y(10)1959 611 y(11)1959
667 y(12)1959 724 y(13)1959 780 y(14)1959 836 y(15)1959
893 y(16)1959 949 y(17)1959 1006 y(18)1959 1062 y(19)1959
1119 y(20)1959 1175 y(21)1959 1232 y(22)1959 1288 y(23)1959
1345 y(24)1959 1401 y(25)1959 1457 y(26)1959 1514 y(27)1959
1570 y(28)1959 1627 y(29)1959 1683 y(30)1959 1740 y(31)1959
1796 y(32)1959 1853 y(33)1959 1909 y(34)1959 1966 y(35)1959
2022 y(36)1959 2078 y(37)1959 2135 y(38)1959 2191 y(39)1959
2248 y(40)1959 2304 y(41)1959 2361 y(42)1959 2417 y(43)1959
2474 y(44)1959 2530 y(45)1959 2587 y(46)1959 2643 y(47)1959
2699 y(48)p eop
%%Page: 9 11
9 10 bop 75 -100 a Fn(3.3.)34 b(PR)o(OCESS)16 b(MANA)o(GER)f(INTERF)-5
b(A)o(CE)916 b Ft(9)75 45 y Fp(MPI)p 160 45 14 2 v 16
w(SP)l(A)-5 b(WN)p 326 45 V 17 w(MUL)l(TIPLE\(ncommand-lines,)10
b(a)o(rra)o(y-of-comm)o(and-lines,)g(a)o(rra)o(y-of-n,)f(a)o(rra)o
(y-of-info,)g(a)o(rra)o(y-)75 102 y(of-\015ags,)15 b(ro)q(ot,)f(comm,)f
(intercomm,)h(a)o(rra)o(y-of-errco)q(des\))117 179 y
Fg(IN)155 b Fp(n-command-lines)267 b Fg(Num)o(b)q(er)9
b(of)h(command)d(lines)i(\(size)i(of)e(eac)o(h)h(of)f(the)i(follo)o
(wing)905 235 y(arra)o(ys\))117 310 y(IN)155 b Fp(a)o(rra)o
(y-of-command-lines)143 b Fg(signi\014can)o(t)14 b(only)f(at)g(ro)q(ot)
117 385 y(IN)155 b Fp(a)o(rra)o(y-of-n)117 461 y Fg(IN)g
Fp(a)o(rra)o(y-of-info)117 536 y Fg(IN)g Fp(a)o(rra)o(y-of-\015ags)117
611 y Fg(IN)g Fp(ro)q(ot)508 b Fg(rank)14 b(of)f(pro)q(cess)j(in)d
(whic)o(h)h(argumen)o(ts)f(are)i(v)n(alid)117 686 y(IN)155
b Fp(comm)470 b Fg(comm)o(unicator)11 b(of)j(group)f(of)h(spa)o(wning)f
(pro)q(cesses)117 761 y(OUT)108 b Fp(intercomm)384 b
Fg(in)o(tercomm)o(unicator)7 b(b)q(et)o(w)o(een)k(original)c(group)i
(and)g(spa)o(wned)905 818 y(group)117 893 y(OUT)108 b
Fp(a)o(rra)o(y-of-errco)q(des)269 b Fg(one)14 b(error)h(co)q(de)g(p)q
(er)g(pro)q(cess)166 1017 y Fp(MPI)p 251 1017 V 16 w(SP)l(A)-5
b(WN)p 417 1017 V 17 w(MUL)l(TIPLE)14 b Ft(is)h(iden)o(tical)h(to)e
Fp(MPI)p 1029 1017 V 16 w(SP)l(A)-5 b(WN)15 b Ft(except)g(that)f(there)
h(are)f(m)o(ultiple)j(ex-)75 1074 y(ecutable)e(sp)q(eci\014cations.)21
b(The)14 b(\014rst)f(argumen)o(t,)g Fp(n-command-lines)p
Ft(,)h(giv)o(es)g(the)g(n)o(um)o(b)q(er)g(of)f(sp)q(eci\014ca-)75
1130 y(tions.)25 b(Eac)o(h)16 b(of)g(the)h(next)g(four)f(argumen)o(ts)g
(are)h(simply)h(arra)o(ys)d(of)h(the)h(corresp)q(onding)h(argumen)o(ts)
75 1187 y(in)e Fp(MPI)p 213 1187 V 16 w(SP)l(A)-5 b(WN)p
Ft(.)166 1243 y(All)25 b(of)f(the)g(spa)o(wned)g(pro)q(cesses)h(ha)o(v)
o(e)e(the)h(same)g Fp(MPI)p 1203 1243 V 16 w(COMM)p 1361
1243 V 16 w(W)o(ORLD)p Ft(.)g(Their)g(ranks)g(in)75 1299
y Fp(MPI)p 160 1299 V 16 w(COMM)p 318 1299 V 16 w(W)o(ORLD)13
b Ft(corresp)q(ond)g(directly)h(to)e(the)g(order)h(in)g(whic)o(h)g(the)
g(command)g(lines)h(are)e(sp)q(ec-)75 1356 y(i\014ed)19
b(in)g Fp(MPI)p 317 1356 V 16 w(SP)l(A)-5 b(WN)p 483
1356 V 17 w(MUL)l(TIPLE)p Ft(.)17 b(Assume,)i(without)f(loss)h(of)e
(generalit)o(y)l(,)j(that)d(all)i(requests)f(are)75 1412
y(soft,)h(and)g(that)f Fe(m)414 1419 y Fd(1)452 1412
y Ft(pro)q(cesses)h(are)g(generated)g(b)o(y)g(the)g(\014rst)f(command,)
h Fe(m)1453 1419 y Fd(2)1492 1412 y Ft(b)o(y)f(the)h(second,)h(etc.)75
1469 y(The)f(pro)q(cesses)h(corresp)q(onding)f(to)g(the)g(\014rst)f
(command)h(line)i(ha)o(v)o(e)d(ranks)h(0)p Fe(;)8 b Ft(1)p
Fe(;)g(:)g(:)f(:)t(;)h(m)1650 1476 y Fd(1)1682 1469 y
Fo(\000)13 b Ft(1.)31 b(The)75 1525 y(pro)q(cesses)15
b(in)g(the)f(second)h(command)f(ha)o(v)o(e)f(ranks)h
Fe(m)1017 1532 y Fd(1)1037 1525 y Fe(;)8 b(m)1098 1532
y Fd(1)1125 1525 y Ft(+)g(1)p Fe(;)g(:)g(:)g(:)d(m)1312
1532 y Fd(1)1339 1525 y Ft(+)k Fe(m)1423 1532 y Fd(2)1450
1525 y Fo(\000)g Ft(1.)19 b(The)c(pro)q(cesses)f(in)75
1582 y(the)h(third)h(ha)o(v)o(e)f(ranks)g Fe(m)535 1589
y Fd(1)564 1582 y Ft(+)c Fe(m)650 1589 y Fd(2)670 1582
y Fe(;)d(m)731 1589 y Fd(1)759 1582 y Ft(+)j Fe(m)845
1589 y Fd(2)875 1582 y Ft(+)f(1)p Fe(;)e(:)g(:)g(:)d(;)j(m)1085
1589 y Fd(1)1114 1582 y Ft(+)i Fe(m)1199 1589 y Fd(2)1229
1582 y Ft(+)g Fe(m)1314 1589 y Fd(3)1344 1582 y Fo(\000)g
Ft(1,)15 b(etc.)189 1688 y Fj(A)n(dvic)n(e)i(to)i(users.)56
b Ft(If)18 b(y)o(ou)g(need)h(to)e(spa)o(wn)g(m)o(ultiple)j
(executables,)f(it)g(is)f(recommended)h(to)189 1744 y(use)d
Fp(MPI)p 353 1744 V 16 w(SP)l(A)-5 b(WN)p 519 1744 V
18 w(MUL)l(TIPLE)15 b Ft(instead)i(of)f(calling)j Fp(MPI)p
1208 1744 V 15 w(SP)l(A)-5 b(WN)18 b Ft(sev)o(eral)e(times.)25
b(There)16 b(are)189 1801 y(t)o(w)o(o)11 b(reasons)h(for)h(this.)19
b(First,)13 b(spa)o(wning)g(sev)o(eral)g(things)g(at)f(once)h(ma)o(y)f
(b)q(e)i(faster)d(than)i(spa)o(wn-)189 1857 y(ing)22
b(them)f(sequen)o(tially)l(.)41 b(Second,)23 b(in)f(some)g(implemen)o
(tations,)h(comm)o(unication)g(b)q(et)o(w)o(een)189 1914
y(pro)q(cesses)14 b(spa)o(wned)h(at)f(the)g(same)g(time)h(ma)o(y)e(b)q
(e)j(faster)d(than)h(comm)o(unication)h(b)q(et)o(w)o(een)g(pro-)189
1970 y(cesses)g(spa)o(wned)h(separately)l(.)k(\()p Fj(End)15
b(of)i(advic)n(e)f(to)g(users.)p Ft(\))166 2077 y(The)g
Fp(a)o(rra)o(y-of-errco)q(des)f Ft(argumen)o(t)h(is)h(1-dimensional)h
(arra)o(y)d(of)h(size)1394 2044 y Fc(P)1438 2058 y Fb(N)1438
2088 y(i)p Fd(=1)1504 2077 y Fe(n)1531 2084 y Fb(i)1546
2077 y Ft(,)g(where)g Fe(n)1734 2084 y Fb(i)1765 2077
y Ft(is)h(the)75 2133 y Fe(i)p Ft(th)12 b(elemen)o(t)i(of)f
Fp(a)o(rra)o(y-of-n)p Ft(.)k(Command)c(line)h(n)o(um)o(b)q(er)g
Fe(i)e Ft(corresp)q(onds)h(to)g Fe(n)1398 2140 y Fb(i)1425
2133 y Ft(con)o(tiguous)g(slots)g(in)h(this)75 2189 y(arra)o(y)l(.)19
b(If)c Fp(MPI)p 338 2189 V 16 w(SP)l(A)-5 b(WN)p 504
2189 V 17 w(SOFT)15 b Ft(is)g(sp)q(eci\014ed)i(for)e(command)f(line)j
Fe(i)p Ft(,)d(and)h Fe(m)1409 2196 y Fb(i)1438 2189 y
Ft(copies)g(are)g(successfully)75 2246 y(spa)o(wned,)23
b(the)f(\014rst)f Fe(m)504 2253 y Fb(i)540 2246 y Ft(slots)h(will)h(b)q
(e)f(\014lled)i(with)e Fp(MPI)p 1124 2246 V 16 w(SUCCESS)h
Ft(and)f(the)g(rest)f(will)i(indicate)75 2302 y(individual)18
b(spa)o(wning)e(errors.)75 2424 y Fm(3.3.4)49 b(Sta)o(rting)16
b(Indep)q(endent)g(Pro)q(cesses)75 2510 y Ft(The)g(follo)o(wing)h
(routine)g(spa)o(wns)f(pro)q(cesses)g(with)h(whic)o(h)g(the)f(paren)o
(t)g(do)q(es)g(not)g(wish)h(to)e(comm)o(uni-)75 2566
y(cate.)20 b(It)15 b(therefore)g(returns)g(a)g(group)g(rather)f(than)h
(an)g(in)o(tercomm)o(unicator.)-32 46 y Fk(1)-32 103
y(2)-32 159 y(3)-32 215 y(4)-32 272 y(5)-32 328 y(6)-32
385 y(7)-32 441 y(8)-32 498 y(9)-40 554 y(10)-40 611
y(11)-40 667 y(12)-40 724 y(13)-40 780 y(14)-40 836 y(15)-40
893 y(16)-40 949 y(17)-40 1006 y(18)-40 1062 y(19)-40
1119 y(20)-40 1175 y(21)-40 1232 y(22)-40 1288 y(23)-40
1345 y(24)-40 1401 y(25)-40 1457 y(26)-40 1514 y(27)-40
1570 y(28)-40 1627 y(29)-40 1683 y(30)-40 1740 y(31)-40
1796 y(32)-40 1853 y(33)-40 1909 y(34)-40 1966 y(35)-40
2022 y(36)-40 2078 y(37)-40 2135 y(38)-40 2191 y(39)-40
2248 y(40)-40 2304 y(41)-40 2361 y(42)-40 2417 y(43)-40
2474 y(44)-40 2530 y(45)-40 2587 y(46)-40 2643 y(47)-40
2699 y(48)p eop
%%Page: 10 12
10 11 bop 75 -100 a Ft(10)928 b Fn(CHAPTER)16 b(3.)34
b(D)o(YNAMIC)15 b(PR)o(OCESSES)75 45 y Fp(MPI)p 160 45
14 2 v 16 w(SP)l(A)-5 b(WN)p 326 45 V 17 w(INDEPENDENT\(command-line,)
10 b(n,)h(info,)g(\015ags,)g(ro)q(ot,)g(comm,)e(group,)h(a)o(rra)o
(y-of-errco)q(des\))117 179 y Fg(IN)155 b Fp(command-line)322
b Fg(executable)11 b(and)f(argumen)o(ts,)f(in)g(a)g(single)h(string)f
(signi\014can)o(t)905 235 y(only)k(on)h(ro)q(ot\))117
310 y(IN)155 b Fp(n)564 b Fg(n)o(um)o(b)q(er)13 b(of)h(pro)q(cesses)i
(to)e(start)117 385 y(IN)155 b Fp(info)516 b Fg(a)14
b(string)f(telling)g(the)h(run)o(time)e(system)i(where)h(to)e(start)h
(the)905 442 y(pro)q(cesses)117 517 y(IN)155 b Fp(\015ags)501
b Fg(set)15 b(of)e(\(b)q(o)q(olean\))h(\015ags)g(describing)g(spa)o(wn)
g(parameters)117 592 y(IN)155 b Fp(ro)q(ot)508 b Fg(rank)14
b(of)f(pro)q(cess)j(in)d(whic)o(h)h(argumen)o(ts)f(are)i(v)n(alid)117
667 y(IN)155 b Fp(comm)470 b Fg(comm)o(unicator)11 b(of)j(group)f(of)h
(spa)o(wning)f(pro)q(cesses)117 742 y(OUT)108 b Fp(group)479
b Fg(group)14 b(of)f(spa)o(wned)i(pro)q(cesses)117 818
y(OUT)108 b Fp(a)o(rra)o(y-of-errco)q(des)269 b Fg(status)15
b(of)e(spa)o(wned)i(pro)q(cesses)166 942 y Fp(MPI)p 251
942 V 16 w(SP)l(A)-5 b(WN)p 417 942 V 17 w(INDEPENDENT)11
b Ft(is)g(similar)h(to)e Fp(MPI)p 1080 942 V 16 w(SP)l(A)-5
b(WN)12 b Ft(except)f(that)f(it)h(do)q(es)g(not)g(establish)75
999 y(comm)o(unication)23 b(with)h(the)e(c)o(hildren)j(and)e(th)o(us)g
(do)q(es)g(not)f(ha)o(v)o(e)h(to)f(w)o(ait)g(till)i(the)f(c)o(hildren)i
(call)75 1055 y Fp(MPI)p 160 1055 V 16 w(INIT)16 b Ft(b)q(efore)h
(returning.)25 b(It)17 b(is)h(collectiv)o(e)g(only)g(in)f(the)g(paren)o
(t)g(comm)o(unicator)f(and)h(not)g(with)75 1111 y(the)e(c)o(hildren.)22
b(It)16 b(ma)o(y)e(b)q(e)i(used)g(to)f(start)f(indep)q(enden)o(t)k(MPI)
d(pro)q(cesses)h(or)e(non-MPI)i(pro)q(cesses.)21 b(If)75
1168 y(the)14 b(spa)o(wned)g(pro)q(cesses)h(are)e(MPI)h(pro)q(cesses,)h
(they)f(will)h(all)g(ha)o(v)o(e)f(the)g(same)g Fp(MPI)p
1542 1168 V 16 w(COMM)p 1700 1168 V 16 w(W)o(ORLD)75
1224 y Ft(but)h Fp(MPI)p 243 1224 V 16 w(P)l(ARENT)h
Ft(will)h(return)e Fp(MPI)p 756 1224 V 16 w(COMM)p 914
1224 V 17 w(NULL)p Ft(.)189 1331 y Fj(A)n(dvic)n(e)f(to)h
(implementors.)39 b Ft(Since)15 b Fp(MPI)p 908 1331 V
16 w(SP)l(A)-5 b(WN)p 1074 1331 V 17 w(INDEPENDENT)14
b Ft(do)q(es)g(not)g(kno)o(w)f(whether)189 1387 y(the)19
b(c)o(hildren)i(are)e(MPI)g(pro)q(cesses)g(or)g(not,)g(it)g(m)o(ust)g
(pro)o(vide)g(information)g(to)g(the)g(c)o(hildren)189
1444 y(in)d(suc)o(h)f(a)g(w)o(a)o(y)g(that)f(they)i(ha)o(v)o(e)e
(enough)i(information)g(to)e(establish)j(comm)o(unication)f(among)189
1500 y(themselv)o(es)j(\(with)g Fp(MPI)p 630 1500 V 16
w(INIT)p Ft(\))f(but)h(also)g(in)h(suc)o(h)f(a)f(w)o(a)o(y)g(that)g(it)
i(can)f(b)q(e)g(ignored)h(b)o(y)f(non-)189 1556 y(MPI)10
b(pro)q(cesses.)19 b(P)o(assing)11 b(the)f(information)h(through)f(the)
h(en)o(vironmen)o(t)g(w)o(ould)g(b)q(e)h(ok,)f(passing)189
1613 y(information)g(on)h(the)g(command)f(line)j(w)o(ould)e(not)f(b)q
(e.)19 b(This)12 b(requiremen)o(t)h(is)f(one)f(of)h(the)f(reasons)189
1669 y(wh)o(y)k(the)g(MPI-2)g(v)o(ersion)h(of)e Fp(MPI)p
796 1669 V 16 w(INIT)h Ft(no)g(longer)g(lo)q(oks)h(at)f(its)g(argumen)o
(ts.)k(\()p Fj(End)d(of)g(advic)n(e)189 1726 y(to)g(implementors.)p
Ft(\))166 1832 y(Finally)l(,)25 b(MPI)c(pro)o(vides)i(the)f(follo)o
(wing)g(routine)h(to)e(spa)o(wn)g(m)o(ultiple)j(executables)f(without)
75 1889 y(establishing)16 b(comm)o(unication)f(with)f(them.)20
b(If)14 b(the)g(executables)i(are)e(MPI)g(pro)q(cesses,)g(they)g(all)h
(ha)o(v)o(e)75 1945 y(the)g(same)g Fp(MPI)p 352 1945
V 16 w(COMM)p 510 1945 V 16 w(W)o(ORLD)p Ft(.)1967 46
y Fk(1)1967 103 y(2)1967 159 y(3)1967 215 y(4)1967 272
y(5)1967 328 y(6)1967 385 y(7)1967 441 y(8)1967 498 y(9)1959
554 y(10)1959 611 y(11)1959 667 y(12)1959 724 y(13)1959
780 y(14)1959 836 y(15)1959 893 y(16)1959 949 y(17)1959
1006 y(18)1959 1062 y(19)1959 1119 y(20)1959 1175 y(21)1959
1232 y(22)1959 1288 y(23)1959 1345 y(24)1959 1401 y(25)1959
1457 y(26)1959 1514 y(27)1959 1570 y(28)1959 1627 y(29)1959
1683 y(30)1959 1740 y(31)1959 1796 y(32)1959 1853 y(33)1959
1909 y(34)1959 1966 y(35)1959 2022 y(36)1959 2078 y(37)1959
2135 y(38)1959 2191 y(39)1959 2248 y(40)1959 2304 y(41)1959
2361 y(42)1959 2417 y(43)1959 2474 y(44)1959 2530 y(45)1959
2587 y(46)1959 2643 y(47)1959 2699 y(48)p eop
%%Page: 11 13
11 12 bop 75 -100 a Fn(3.3.)34 b(PR)o(OCESS)16 b(MANA)o(GER)f(INTERF)-5
b(A)o(CE)894 b Ft(11)75 45 y Fp(MPI)p 160 45 14 2 v 16
w(SP)l(A)-5 b(WN)p 326 45 V 17 w(MUL)l(TIPLE)p 560 45
V 16 w(INDEPENDENT\(ncommand-lines,)17 b(a)o(rra)o(y-of-command-lines,)
f(a)o(rra)o(y-of-)75 102 y(n,)f(a)o(rra)o(y-of-info,)e(a)o(rra)o
(y-of-\015ags,)g(ro)q(ot,)i(comm,)e(group,)h(a)o(rra)o(y-of-errco)q
(des\))117 179 y Fg(IN)155 b Fp(n-command-lines)267 b
Fg(Num)o(b)q(er)9 b(of)h(command)d(lines)i(\(size)i(of)e(eac)o(h)h(of)f
(the)i(follo)o(wing)905 235 y(arra)o(ys\))117 310 y(IN)155
b Fp(a)o(rra)o(y-of-command-lines)143 b Fg(\(signi\014can)o(t)14
b(only)f(at)h(ro)q(ot\))117 384 y(IN)155 b Fp(a)o(rra)o(y-of-n)117
459 y Fg(IN)g Fp(a)o(rra)o(y-of-info)117 534 y Fg(IN)g
Fp(a)o(rra)o(y-of-\015ags)117 608 y Fg(IN)g Fp(ro)q(ot)117
683 y Fg(IN)g Fp(comm)470 b Fg(comm)o(unicator)11 b(of)j(group)f(of)h
(spa)o(wning)f(pro)q(cesses)117 757 y(OUT)108 b Fp(group)479
b Fg(group)14 b(of)f(spa)o(wned)i(pro)q(cesses)117 832
y(OUT)108 b Fp(a)o(rra)o(y-of-errco)q(des)269 b Fg(one)14
b(p)q(er)h(pro)q(cess)166 956 y Fp(MPI)p 251 956 V 16
w(SP)l(A)-5 b(WN)p 417 956 V 17 w(MUL)l(TIPLE)p 651 956
V 16 w(INDEPENDENT)16 b Ft(is)h(similar)g(to)f Fp(MPI)p
1335 956 V 16 w(SP)l(A)-5 b(WN)p 1501 956 V 17 w(MUL)l(TIPLE)15
b Ft(except)75 1013 y(that)f(it)h(returns)g(a)f(group)h(instead)g(of)g
(an)f(in)o(tercomm)o(unicator.)20 b(It)15 b(do)q(es)g(not)f(establish)i
(comm)o(unica-)75 1069 y(tion)f(with)h(the)f(c)o(hildren,)i(and)e(is)h
(collectiv)o(e)h(only)f(in)g(the)f(paren)o(t.)189 1172
y Fj(R)n(ationale.)36 b Ft(With)11 b Fp(MPI)p 625 1172
V 16 w(SP)l(A)-5 b(WN)p 791 1172 V 17 w(MUL)l(TIPLE)p
1025 1172 V 16 w(INDEPENDENT)10 b Ft(it)h(is)g(no)o(w)e(p)q(ossible)k
(to)c(spa)o(wn)189 1228 y(an)o(y)14 b(t)o(yp)q(e)i(of)f(MPI-1)g
(application.)21 b(\()p Fj(End)16 b(of)g(r)n(ationale.)p
Ft(\))75 1350 y Fm(3.3.5)49 b(Environmental)17 b(inquiry)75
1435 y Ft(MPI)e(do)q(es)h(not)e(pro)o(vide)i(mec)o(hanisms)g(for)e(in)o
(teracting)i(with)f(an)g(external)h(resource)f(manager.)k(It)c(is)75
1492 y(assumed)i(that)g(all)h(suc)o(h)g(in)o(teraction)f(will)i(o)q
(ccur)f(through)f(a)g(run)o(time)g(en)o(vironmen)o(t-sp)q(eci\014c)j
(API,)75 1548 y(or,)14 b(indirectly)l(,)k(through)c(the)i(opaque)f
(\(to)f(MPI\))h(\\info")g(argumen)o(t)g(to)f(the)h(spa)o(wn)g(calls.)
166 1605 y(Ho)o(w)o(ev)o(er,)f(the)h(large)g(ma)s(jorit)o(y)e(of)h
(\\dynamic")i(MPI)f(applications)h(are)f(exp)q(ected)h(to)e(exist)i(in)
f(a)75 1661 y(static)h(run)o(time)h(en)o(vironmen)o(t,)g(in)g(whic)o(h)
g(resources)f(ha)o(v)o(e)g(b)q(een)i(allo)q(cated)f(b)q(efore)g(the)f
(application)75 1718 y(is)e(run.)19 b(This)14 b(is)f(the)g(case,)g(for)
g(instance,)h(with)f(most)f(PVM)h(applications,)i(whic)o(h)f(rarely)f
(manipulate)75 1774 y(the)i(virtual)h(mac)o(hine)g(within)h(an)e
(application.)166 1831 y(When)i(a)f(user)h(\(or)f(p)q(ossibly)i(a)e
(batc)o(h)g(system\))g(runs)h(one)g(of)f(these)h(quasi-static)g
(applications,)75 1887 y(he/she/it)c(will)h(usually)g(sp)q(ecify)g(a)e
(n)o(um)o(b)q(er)g(of)g(pro)q(cesses)h(to)f(start)f(and)i(a)f(total)g
(n)o(um)o(b)q(er)h(of)f(pro)q(cesses)75 1943 y(that)h(are)f(exp)q
(ected.)21 b(An)13 b(application)i(simply)g(needs)f(to)e(kno)o(w)h(ho)o
(w)g(man)o(y)g(slots)g(there)g(are,)g(i.e.,)g(ho)o(w)75
2000 y(man)o(y)i(pro)q(cesses)g(it)h(should)g(spa)o(wn.)166
2056 y(MPI)g(pro)o(vides)g(an)g(in)o(teger)g(v)m(ariable,)h
Fp(MPI)p 935 2056 V 15 w(UNIVERSE)p 1164 2056 V 18 w(SIZE)p
Ft(,)e(that)g(tells)i(an)f(application)h(ho)o(w)75 2113
y(man)o(y)e(pro)q(cesses)i(can)f(usefully)h(b)q(e)g(started)e
(alltogether.)22 b(The)16 b(v)m(ariable)h(is)g(initialized)i(in)e
Fp(MPI)p 1774 2113 V 16 w(INIT)75 2169 y Ft(and)12 b(is)f(not)g(c)o
(hanged)h(b)o(y)f(MPI.)g Fp(MPI)p 707 2169 V 16 w(UNIVERSE)p
937 2169 V 18 w(SIZE)g Ft(is)h(assumed)f(to)g(ha)o(v)o(e)g(b)q(een)i
(sp)q(eci\014ed)g(when)f(an)75 2226 y(application)i(w)o(as)e(started.)
18 b(Note)12 b(that)g(no)h(in)o(teraction)g(with)g(the)f(run)o(time)h
(en)o(vironmen)o(t)g(is)g(required.)166 2282 y(If)d(the)h(run)o(time)f
(en)o(vironmen)o(t)h(c)o(hanges)f(size)h(while)g(an)f(application)i(is)
f(running)g Fp(MPI)p 1637 2282 V 16 w(UNIVERSE)p 1867
2282 V 18 w(SIZE)75 2339 y Ft(is)17 b(not)e(up)q(dated,)i(and)g(the)f
(application)i(m)o(ust)d(\014nd)i(out)f(through)g(direct)h(comm)o
(unication)f(with)h(the)75 2395 y(run)o(time)f(system.)166
2534 y Fh(Discussion:)33 b Fg(I)12 b(ha)o(v)o(e)h(remo)o(v)o(ed)f(the)h
(prop)q(osal)f(for)h(a)f(dynamic)f(univ)o(erse)j(size,)f(as)g(there)h
(do)q(es)f(not)g(seem)75 2591 y(to)i(b)q(e)g(agreemen)o(t)g(on)f(what)h
(suc)o(h)h(a)e(function)h(should)g(lo)q(ok)f(lik)o(e.)20
b(The)15 b(previous)g(prop)q(osal)g(w)o(as)g(ok)f(for)h(some)75
2647 y(p)q(eople)j(but)g(not)f(enough)h(for)f(others.)29
b(I'd)17 b(lik)o(e)g(to)g(a)o(v)o(oid)g(getting)g(in)o(to)g(the)h(mess)
f(of)g(in)o(teraction)g(with)g(the)75 2704 y(run)o(time)c(system.)-32
46 y Fk(1)-32 103 y(2)-32 159 y(3)-32 215 y(4)-32 272
y(5)-32 328 y(6)-32 385 y(7)-32 441 y(8)-32 498 y(9)-40
554 y(10)-40 611 y(11)-40 667 y(12)-40 724 y(13)-40 780
y(14)-40 836 y(15)-40 893 y(16)-40 949 y(17)-40 1006
y(18)-40 1062 y(19)-40 1119 y(20)-40 1175 y(21)-40 1232
y(22)-40 1288 y(23)-40 1345 y(24)-40 1401 y(25)-40 1457
y(26)-40 1514 y(27)-40 1570 y(28)-40 1627 y(29)-40 1683
y(30)-40 1740 y(31)-40 1796 y(32)-40 1853 y(33)-40 1909
y(34)-40 1966 y(35)-40 2022 y(36)-40 2078 y(37)-40 2135
y(38)-40 2191 y(39)-40 2248 y(40)-40 2304 y(41)-40 2361
y(42)-40 2417 y(43)-40 2474 y(44)-40 2530 y(45)-40 2587
y(46)-40 2643 y(47)-40 2699 y(48)p eop
%%Page: 12 14
12 13 bop 75 -100 a Ft(12)928 b Fn(CHAPTER)16 b(3.)34
b(D)o(YNAMIC)15 b(PR)o(OCESSES)75 45 y Fm(3.3.6)49 b(Nonblo)q(cking)18
b(requests)75 131 y Ft(Spa)o(wning)e(new)g(pro)q(cesses)g(ma)o(y)f(b)q
(e)h(an)g(exp)q(ensiv)o(e)h(op)q(eration.)k(In)16 b(order)f(to)g(allo)o
(w)h(pro)q(cesses)g(to)f(do)75 187 y(useful)i(w)o(ork)e(while)i(pro)q
(cesses)g(are)e(b)q(eing)j(spa)o(wned,)d(MPI)h(pro)o(vides)h(non-blo)q
(c)o(king)g(v)o(ersions)f(of)g(the)75 244 y(eac)o(h)f(of)g(the)g(ab)q
(o)o(v)o(e)g(routines.)75 395 y Fp(MPI)p 160 395 14 2
v 16 w(ISP)l(A)-5 b(WN\(...,)14 b(request\))117 472 y
Fg(OUT)108 b Fp(request)452 b Fg(Request)15 b(ob)r(ject)g(that)f(can)g
(b)q(e)h(used)g(to)f(c)o(hec)o(k)h(for)e(comple-)905
528 y(tion.)75 747 y Fp(MPI)p 160 747 V 16 w(ISP)l(A)-5
b(WN)p 339 747 V 17 w(INDEPENDENT\(...,)13 b(request\))117
825 y Fg(OUT)108 b Fp(request)452 b Fg(Request)15 b(ob)r(ject)g(that)f
(can)g(b)q(e)h(used)g(to)f(c)o(hec)o(k)h(for)e(comple-)905
881 y(tion.)75 1100 y Fp(MPI)p 160 1100 V 16 w(ISP)l(A)-5
b(WN)p 339 1100 V 17 w(MUL)l(TIPLE\(...,)12 b(request\))117
1177 y Fg(OUT)108 b Fp(request)452 b Fg(Request)15 b(ob)r(ject)g(that)f
(can)g(b)q(e)h(used)g(to)f(c)o(hec)o(k)h(for)e(comple-)905
1234 y(tion.)75 1453 y Fp(MPI)p 160 1453 V 16 w(ISP)l(A)-5
b(WN)p 339 1453 V 17 w(MUL)l(TIPLE)p 573 1453 V 15 w(INDEPENDENT\(...,)
14 b(request\))117 1530 y Fg(OUT)108 b Fp(request)452
b Fg(Request)15 b(ob)r(ject)g(that)f(can)g(b)q(e)h(used)g(to)f(c)o(hec)
o(k)h(for)e(comple-)905 1586 y(tion.)166 1711 y Ft(The)22
b(argumen)o(ts)f(of)g(the)h(non-blo)q(c)o(king)h(v)o(ersions)f(are)g
(the)f(same)h(as)f(those)h(of)f(the)h(blo)q(c)o(king)75
1767 y(v)o(ersions,)16 b(except)h(that)f(there)h(is)g(an)f(additional)i
Fp(request)g Ft(argumen)o(t.)23 b(The)16 b(request)h(can)f(b)q(e)h
(used)g(as)75 1824 y(input)f(for)f Fp(MPI)p 351 1824
V 16 w(W)l(AIT)p Ft(,)f Fp(MPI)p 589 1824 V 16 w(TEST)p
Ft(,)h(etc.)166 1880 y(In)23 b(all)g(cases,)h(the)e(output)h
Fp(group)f Ft(or)g Fp(intercomm)p Ft(,)g(and)h(the)f
Fp(a)o(rra)o(y-of-errco)q(des)f Ft(are)h(up)q(dated)75
1937 y(async)o(hronously)16 b(and)f(are)g(not)g(v)m(alid)h(un)o(til)h
(the)e(request)g(completes.)166 1993 y(The)f(status)f(ob)s(ject)h
(returned)g(b)o(y)g Fp(MPI)p 858 1993 V 16 w(W)l(AIT)g
Ft(con)o(tains)g(an)g(error)f(co)q(de)h(indicating)i(whether)e(or)75
2049 y(not)c(the)g(spa)o(wn)g(w)o(as)f(successful.)20
b(The)10 b(failure)h(or)f(success)h(of)e(individual)14
b(pro)q(cesses)c(\(if)h Fp(MPI)p 1672 2049 V 15 w(SP)l(A)-5
b(WN)p 1837 2049 V 18 w(SOFT)75 2106 y Ft(w)o(as)14 b(sp)q(eci\014ed\))
j(is)f(indicated)h(in)f Fp(a)o(rra)o(y-of-errco)q(des)p
Ft(.)166 2162 y(The)f(follo)o(wing)h(accessor)f(function)h(retriev)o
(es)f(the)h(error)e(co)q(de)i(from)f(the)g(status.)75
2313 y Fp(MPI)p 160 2313 V 16 w(GET)p 264 2313 V 17 w
(ERRORCODE\(status,)j(errco)q(de\))117 2390 y Fg(IN)155
b Fp(status)476 b Fg(Status)10 b(ob)r(ject)g(returned)h(for)e(a)g(spa)o
(wn)g(call)g(after)g(W)m(ait/T)m(est/etc.)117 2466 y(OUT)108
b Fp(errco)q(de)448 b Fg(Error)15 b(co)q(de)g(for)e(the)i(spa)o(wn)e
(call)166 2590 y Ft(All)19 b(of)e(the)g(routines)h(in)g(this)g(section)
g(are)g(collectiv)o(e,)h(and)f(ob)q(ey)f(the)h(follo)o(wing)g(non-blo)q
(c)o(king)75 2647 y(collectiv)o(e)f(seman)o(tics.)1967
46 y Fk(1)1967 103 y(2)1967 159 y(3)1967 215 y(4)1967
272 y(5)1967 328 y(6)1967 385 y(7)1967 441 y(8)1967 498
y(9)1959 554 y(10)1959 611 y(11)1959 667 y(12)1959 724
y(13)1959 780 y(14)1959 836 y(15)1959 893 y(16)1959 949
y(17)1959 1006 y(18)1959 1062 y(19)1959 1119 y(20)1959
1175 y(21)1959 1232 y(22)1959 1288 y(23)1959 1345 y(24)1959
1401 y(25)1959 1457 y(26)1959 1514 y(27)1959 1570 y(28)1959
1627 y(29)1959 1683 y(30)1959 1740 y(31)1959 1796 y(32)1959
1853 y(33)1959 1909 y(34)1959 1966 y(35)1959 2022 y(36)1959
2078 y(37)1959 2135 y(38)1959 2191 y(39)1959 2248 y(40)1959
2304 y(41)1959 2361 y(42)1959 2417 y(43)1959 2474 y(44)1959
2530 y(45)1959 2587 y(46)1959 2643 y(47)1959 2699 y(48)p
eop
%%Page: 13 15
13 14 bop 75 -100 a Fn(3.3.)34 b(PR)o(OCESS)16 b(MANA)o(GER)f(INTERF)-5
b(A)o(CE)894 b Ft(13)143 45 y Fo(\017)23 b Ft(Eac)o(h)15
b(call)h(is)g(collectiv)o(e)h(o)o(v)o(er)d(the)h(calling)i(comm)o
(unicator.)143 139 y Fo(\017)23 b Ft(The)15 b(W)l(ait/T)l(est)g(for)f
(completion)j(is)e(collectiv)o(e)i(o)o(v)o(er)e(the)g(calling)i(comm)o
(unicator.)143 233 y Fo(\017)23 b Ft(The)17 b(request)g(ma)o(y)g(not)f
(b)q(e)i(cancelled.)28 b(An)18 b(attempt)e(to)g(cancel)j(the)e(request)
g(will)i(return)e(an)189 289 y(error)d(of)h(error)f(class)i
Fp(MPI)p 655 289 14 2 v 16 w(ERR)p 756 289 V 17 w(REQUEST)p
Ft(.)75 411 y Fm(3.3.7)49 b(Pro)q(cess)15 b(Utilities)75
497 y Ft(A)h(pro)q(cess)f(represen)o(ted)h(b)o(y)g(a)f(\(group,rank\))f
(pair)i(cannot)f(b)q(e)i(comm)o(unicated)f(with)g(directly)l(.)22
b(MPI)75 553 y(comm)o(unication)e(requires)g(a)f(comm)o(unicator.)32
b(Ho)o(w)o(ev)o(er,)19 b(MPI)g(allo)o(ws)h(an)f(MPI)g(pro)q(cess)h(to)e
(send)75 610 y(signals)e(to)f(an)g(arbitrary)f(pro)q(cess)i(group.)166
666 y(T)l(o)f(ask)g(the)g(pro)q(cess)g(manager)g(to)f(deliv)o(er)j
(signals)f(to)f(pro)q(cesses,)g(w)o(e)g(use)75 786 y
Fp(Prop)q(osal)g(1)75 966 y(MPI)p 160 966 V 16 w(SIGNAL\(group,)g
(rank,)f(signal\))117 1044 y Fg(IN)155 b Fp(group)479
b Fg(group)14 b(con)o(taining)f(pro)q(cess)i(to)f(signal)117
1119 y(IN)155 b Fp(rank)504 b Fg(rank)14 b(of)f(pro)q(cess)j(to)e
(signal)117 1194 y(IN)155 b Fp(signal)480 b Fg(signal)13
b(t)o(yp)q(e)h(\(in)o(t\))75 1413 y Fp(MPI)p 160 1413
V 16 w(SIGNAL)p 331 1413 V 16 w(GROUP\(group,)i(signal\))117
1490 y Fg(IN)155 b Fp(group)479 b Fg(group)14 b(of)f(pro)q(cesses)k(to)
c(signal)117 1565 y(IN)155 b Fp(signal)480 b Fg(signal)13
b(t)o(yp)q(e)h(\(in)o(t\))166 1690 y Ft(Where)20 b(POSIX)i(signals)f
(are)f(supp)q(orted,)i Fp(signal)f Ft(is)g(a)f(signal)h(de\014ned)h(b)o
(y)e(POSIX.)h(It)g(is)g(the)75 1746 y(resp)q(onsibilit)o(y)d(of)d(an)h
(implemen)o(tation)g(to)f(translate)h(b)q(et)o(w)o(een)f(signals;)i(in)
f(other)f(w)o(ords,)g(a)g Fl(SIGINT)75 1803 y Ft(that)e(has)h(v)m(alue)
i Fl(3)e Ft(on)g(system)g(A)g(m)o(ust)f(b)q(e)i(deliv)o(ered)h(as)e(a)g
Fl(SIGINT)f Ft(on)h(system)g(B,)g(ev)o(en)g(if)h(system)f(B)75
1859 y(uses)d(the)h(v)m(alue)g Fl(5)f Ft(for)g Fl(SIGINT)p
Ft(.)f(If)h(the)h(signal)g(can)f(not)g(b)q(e)h(deliv)o(ered)h(b)q
(ecause)f(there)g(is)f(no)g(corresp)q(ond-)75 1915 y(ing)16
b(signal,)g(the)f(error)f(co)q(de)i(is)g Fp(MPI)p 718
1915 V 16 w(ERR)p 819 1915 V 17 w(INV)l(ALID)p 1008 1915
V 16 w(SIGNAL)p Ft(.)f(In)h(a)f(high)h(qualit)o(y)g(implemen)o(tation,)
75 1972 y(the)i(full)h(range)f(of)g(POSIX)h(signals)f(will)i(b)q(e)f
(deliv)o(erable,)h(but)e(it)h(is)f(mandatory)f(that)g(at)h(least)g(the)
75 2028 y(KILL)f(signal)f(\()p Fp(MPI)p 431 2028 V 15
w(SIGNAL)p 601 2028 V 17 w(KILL)p Ft(\))d(b)q(e)j(supp)q(orted.)166
2085 y(The)h(function)g Fp(MPI)p 525 2085 V 16 w(SIGNAL)g
Ft(is)g(redundan)o(t,)g(since)h(one)f(can)g(alw)o(a)o(ys)f(use)h(MPI)g
(group)f(manip-)75 2141 y(ulations)j(to)e(construct)h(a)g(singleton)h
(group.)29 b(Ho)o(w)o(ev)o(er,)17 b(the)h(extra)g(con)o(v)o(enience)i
(of)d(b)q(eing)j(able)f(to)75 2198 y(signal)14 b(a)f(single)h(pro)q
(cess)g(directly)l(,)h(without)e(building)j(and)d(then)h(freeing)f(the)
h(singleton)g(group)f(seems)75 2254 y(w)o(orth)o(while.)189
2360 y Fj(A)n(dvic)n(e)g(to)i(users.)39 b Ft(Signals)15
b(do)e(not)g(pro)o(vide)h(an)o(y)g(of)f(the)g(reliabilit)o(y)j(or)d
(guaran)o(tees)g(of)g(regular)189 2417 y(MPI)j(comm)o(unication.)23
b(A)16 b(high)h(qualit)o(y)g(implemen)o(tation)g(will)h(deliv)o(er)f
(signals)g(quic)o(kly)h(and)189 2473 y(reliably)l(,)23
b(but)d(applications)i(should)f(nev)o(er)f(dep)q(end)i(on)e(ordering.)
35 b(Since)21 b(signals)g(ma)o(y)e(not)189 2530 y(b)q(e)h(queued,)i
(when)e(m)o(ultiple)i(signals)f(are)e(sen)o(t,)i(only)f(one)g(ma)o(y)f
(get)h(through.)33 b(Some)20 b(MPI)189 2586 y(implemen)o(tations)e(ma)o
(y)f(use)h(signals)g(in)o(ternally)l(.)29 b(If)18 b(an)f(application)i
(attempts)e(to)g(use)h(these)189 2643 y(signals,)g(unexp)q(ected)i(b)q
(eha)o(vior)e(ma)o(y)f(result.)27 b(Finally)l(,)20 b(it)e(ma)o(y)f(not)
g(b)q(e)h(p)q(ossible)i(at)d(the)g(im-)189 2699 y(plemen)o(tation)g
(lev)o(el)i(to)d(restrict)h(the)g(e\013ects)g(of)f(a)h(signal)h(to)e(a)
h(single)h(MPI)f(pro)q(cess,)g(so)g(that)-32 46 y Fk(1)-32
103 y(2)-32 159 y(3)-32 215 y(4)-32 272 y(5)-32 328 y(6)-32
385 y(7)-32 441 y(8)-32 498 y(9)-40 554 y(10)-40 611
y(11)-40 667 y(12)-40 724 y(13)-40 780 y(14)-40 836 y(15)-40
893 y(16)-40 949 y(17)-40 1006 y(18)-40 1062 y(19)-40
1119 y(20)-40 1175 y(21)-40 1232 y(22)-40 1288 y(23)-40
1345 y(24)-40 1401 y(25)-40 1457 y(26)-40 1514 y(27)-40
1570 y(28)-40 1627 y(29)-40 1683 y(30)-40 1740 y(31)-40
1796 y(32)-40 1853 y(33)-40 1909 y(34)-40 1966 y(35)-40
2022 y(36)-40 2078 y(37)-40 2135 y(38)-40 2191 y(39)-40
2248 y(40)-40 2304 y(41)-40 2361 y(42)-40 2417 y(43)-40
2474 y(44)-40 2530 y(45)-40 2587 y(46)-40 2643 y(47)-40
2699 y(48)p eop
%%Page: 14 16
14 15 bop 75 -100 a Ft(14)928 b Fn(CHAPTER)16 b(3.)34
b(D)o(YNAMIC)15 b(PR)o(OCESSES)189 45 y Ft(a)f(side-e\013ect)i(of)f
(sending)h(a)e(signal)i(to)e(a)h(pro)q(cess)g(ma)o(y)f(b)q(e)i(that)e
(other)h(pro)q(cesses)g(receiv)o(e)h(that)189 102 y(signal)g(or)e(are)h
(killed.)22 b(\()p Fj(End)16 b(of)g(advic)n(e)g(to)h(users.)p
Ft(\))75 220 y Fp(Prop)q(osal)e(2)189 306 y Fj(R)n(ationale.)60
b Ft(Prop)q(osal)19 b(1)f(is)h(a)g(partial)g(in)o(terface)f(to)g
(something)h(that)f(should)i(prop)q(erly)f(b)q(e)189
362 y(done)h(through)f(the)h(run)o(time)g(en)o(vironmen)o(t.)34
b(The)20 b(most)e(common)i(\(only?\))34 b(use)20 b(of)f(signals)189
419 y(will)e(b)q(e)f(to)e(kill)k(pro)q(cesses)d(that)g(are)g(b)q(eing)i
(managed.)j(Therefore)15 b(MPI)g(should)i(pro)o(vide)e(only)189
475 y(a)j(kill)i(function)f(and)f(lea)o(v)o(e)h(the)f(rest)g(to)g(en)o
(vironmen)o(t-sp)q(eci\014c)j(mec)o(hanisms.)29 b(An)o(y)19
b(pro)q(cess)189 531 y(manager)14 b(that)g(is)i(using)g(signals)f(in)h
(a)f(more)f(sophisticated)i(w)o(a)o(y)e(will)j(probably)f(w)o(an)o(t)e
(a)g(more)189 588 y(sophisticated)i(in)o(terface)f(all)h(around.)k(\()p
Fj(End)c(of)g(r)n(ationale.)p Ft(\))75 775 y Fp(MPI)p
160 775 14 2 v 16 w(KILL\(group,)d(rank\))117 853 y Fg(IN)155
b Fp(group)479 b Fg(group)14 b(con)o(taining)f(pro)q(cess)i(to)f
(signal)117 926 y(IN)155 b Fp(rank)504 b Fg(rank)14 b(of)f(pro)q(cess)j
(to)e(signal)75 1145 y Fp(MPI)p 160 1145 V 16 w(KILL)p
271 1145 V 15 w(GROUP\(group\))117 1222 y Fg(IN)155 b
Fp(group)479 b Fg(group)14 b(of)f(pro)q(cesses)k(to)c(signal)117
1295 y(IN)155 b Fp(signal)480 b Fg(signal)13 b(t)o(yp)q(e)h(\(in)o(t\))
189 1456 y Fj(A)n(dvic)n(e)j(to)h(users.)51 b Fp(MPI)p
644 1456 V 16 w(KILL)16 b Ft(is)h(guaran)o(teed)g(to)f(kill)j(a)e(pro)q
(cess,)g(but)g(the)h(implemen)o(tation)189 1512 y(ma)o(y)c(not)g(b)q(e)
h(able)h(to)e(restrict)g(the)h(damage)f(to)g(a)h(single)h(pro)q(cess.)k
(A)14 b(side)i(e\013ect)e(ma)o(y)g(b)q(e)i(that)189 1569
y(other)e(pro)q(cesses)i(are)f(killed.)22 b(\()p Fj(End)16
b(of)g(advic)n(e)g(to)h(users.)p Ft(\))75 1689 y Fm(3.3.8)49
b(Noti\014cation)75 1775 y Ft(In)16 b(order)g(to)f(manage)g(pro)q
(cesses)i(or)e(ha)o(v)o(e)g(the)h(minim)o(um)h(in)g(fault)f(tolerance,)
g(an)g(MPI)f(application)75 1831 y(m)o(ust)10 b(b)q(e)i(able)g(to)e(b)q
(e)i(noti\014ed)g(when)f(a)g(pro)q(cess)g(exits.)19 b(W)l(e)11
b(can)g(think)h(of)e(this)i(as)e(the)h(MPI)g(in)o(terface)h(to)75
1888 y(the)j(Pro)q(cess)g(Manager's)f(handling)j(of)d(the)i(signal)g
Fl(SIGCHILD)p Ft(.)d Fp(MPI)p 1285 1888 V 16 w(NOTIFY)i
Ft(can)h(b)q(e)f(used)h(reliably)75 1944 y(for)f(an)o(y)f(pro)q(cess,)i
(whether)f(or)g(not)f(that)h(pro)q(cess)g(is)h(a)f(c)o(hild)i(of)e(the)
g(calling)i(pro)q(cess.)166 2000 y(Note)d(that)f(this)i(lev)o(el)g(of)f
(pro)q(cess)g(managemen)o(t)g(allo)o(ws)g(us)g(to)g(manage)f(non-MPI)i
(pro)q(cesses)f(as)75 2057 y(w)o(ell,)i(since)g(comm)o(unicators)f(are)
g(not)g(in)o(v)o(olv)o(ed.)75 2175 y Fp(Prop)q(osal)g(1)75
2355 y(MPI)p 160 2355 V 16 w(NOTIFY\(event,)h(group,)f(a)o(rra)o(y)p
719 2355 V 14 w(of)p 770 2355 V 16 w(requests\))117 2433
y Fg(IN)155 b Fp(event)487 b Fg(a)14 b(\015ag)f(sp)q(ecifying)h(what)g
(ev)o(en)o(t)g(to)g(b)q(e)h(noti\014ed)e(ab)q(out)117
2506 y(IN)155 b Fp(group)479 b Fg(a)14 b(group)g(of)f(pro)q(cesses)117
2579 y(OUT)108 b Fp(a)o(rra)o(y-of-requests)273 b Fa(MPI)p
982 2579 13 2 v 15 w(Request)p Fg(s)15 b(to)f(b)q(e)g(tested)i(and/or)d
(w)o(aited)h(on)166 2704 y Ft(This)h(function)g(pro)o(vides)g(a)f
(general)g(metho)q(d)h(for)e(an)i(MPI)f(pro)q(cess)g(to)g(b)q(e)h
(noti\014ed)g(of)f(a)g(c)o(hange)1967 46 y Fk(1)1967
103 y(2)1967 159 y(3)1967 215 y(4)1967 272 y(5)1967 328
y(6)1967 385 y(7)1967 441 y(8)1967 498 y(9)1959 554 y(10)1959
611 y(11)1959 667 y(12)1959 724 y(13)1959 780 y(14)1959
836 y(15)1959 893 y(16)1959 949 y(17)1959 1006 y(18)1959
1062 y(19)1959 1119 y(20)1959 1175 y(21)1959 1232 y(22)1959
1288 y(23)1959 1345 y(24)1959 1401 y(25)1959 1457 y(26)1959
1514 y(27)1959 1570 y(28)1959 1627 y(29)1959 1683 y(30)1959
1740 y(31)1959 1796 y(32)1959 1853 y(33)1959 1909 y(34)1959
1966 y(35)1959 2022 y(36)1959 2078 y(37)1959 2135 y(38)1959
2191 y(39)1959 2248 y(40)1959 2304 y(41)1959 2361 y(42)1959
2417 y(43)1959 2474 y(44)1959 2530 y(45)1959 2587 y(46)1959
2643 y(47)1959 2699 y(48)p eop
%%Page: 15 17
15 16 bop 75 -100 a Fn(3.3.)34 b(PR)o(OCESS)16 b(MANA)o(GER)f(INTERF)-5
b(A)o(CE)894 b Ft(15)75 45 y(in)14 b(state)f(of)g(another)g(pro)q
(cess.)19 b(The)14 b(most)f(ob)o(vious)g(state-c)o(hange)g(and)h(the)f
(only)h(one)g(MPI)f(curren)o(tly)75 102 y(de\014nes)23
b(for)e Fp(event)h Ft(is)h Fp(MPI)p 567 102 14 2 v 15
w(NOTIFY)p 747 102 V 17 w(EXIT)p Ft(.)e Fp(MPI)p 981
102 V 16 w(NOTIFY)p 1162 102 V 17 w(EXIT)g Ft(requests)h
(noti\014cation)g(when)g(a)75 158 y(pro)q(cess)15 b(exits)g(or)f(b)q
(ecomes)h(unreac)o(hable.)21 b(Other)15 b(v)m(alues)g(for)f(the)h
Fp(event)h Ft(argumen)o(t)e(ma)o(y)f(b)q(e)j(de\014ned)75
214 y(b)o(y)h(an)h(implemen)o(tation,)h(some)e(examples)h(include)i
(pro)q(cess)d(is)h(susp)q(ended,)i(pro)q(cess)d(is)h(migrating,)75
271 y(and)d(pro)q(cess)h(resumed.)166 327 y Fp(a)o(rra)o(y-of-requests)
c Ft(m)o(ust)e(ha)o(v)o(e)h(at)g(least)h(as)f(man)o(y)g(elemen)o(ts)h
(as)f(the)g(size)i(of)e(the)g(group.)18 b(A)12 b(request)75
384 y(completes)18 b(when)f(the)g(corresp)q(onding)h(mem)o(b)q(er)f(of)
g(the)g(group)f(c)o(hanges)h(to)g(the)g(state)f(sp)q(eci\014ed)j(b)o(y)
75 440 y Fp(event)p Ft(.)34 b(T)l(o)19 b(b)q(e)h(noti\014ed)h(of)e
(further)g(c)o(hanges)h(in)g(state,)g(an)f(application)i(m)o(ust)e
(call)i Fp(MPI)p 1697 440 V 16 w(NOTIFY)75 497 y Ft(again)15
b({)g(the)g(requests)h(are)e(not)h(p)q(ersisten)o(t.)166
553 y(If)f(an)g(application)h(w)o(an)o(ts)e(to)g(b)q(e)i(noti\014ed)g
(separately)e(of)h(sev)o(eral)g(di\013eren)o(t)g(ev)o(en)o(ts,)f(it)i
(m)o(ust)e(call)75 610 y Fp(MPI)p 160 610 V 16 w(NOTIFY)p
341 610 V 17 w(EXIT)i Ft(once)g(for)g(eac)o(h)g(ev)o(en)o(t.)166
666 y(If)f Fp(MPI)p 295 666 V 16 w(NOTIFY)h Ft(is)f(called)i(with)e
Fp(MPI)p 847 666 V 16 w(NOTIFY)p 1028 666 V 17 w(EXIT)g
Ft(on)g(a)g(pro)q(cess)g(whic)o(h)h(is)g(already)f(kno)o(wn)75
723 y(to)g(b)q(e)i(dead)f(or)f(unreac)o(hable)i(\(p)q(ossibly)g(from)f
(a)f(previous)i(noti\014cation\))f(there)g(is)g(no)g(error,)f(but)h
(the)75 779 y(request)g(completes)h(immediately)l(.)166
835 y(F)l(or)e(a)g(request)g(generated)g(b)o(y)h Fp(MPI)p
795 835 V 16 w(NOTIFY)p Ft(,)f Fp(MPI)p 1085 835 V 16
w(W)l(AIT)g Ft(returns)g(a)g(status)g(that)g(con)o(tains)g(no)75
892 y(useful)i(information)g(\(i.e.,)e(the)h(status)g(is)h
(unde\014ned\).)166 1031 y Fh(Discussion:)43 b Fg(One)17
b(p)q(ossibilit)o(y)e(is)h(that)g(y)o(ou)g(could)g(get)g(the)h(exit)f
(co)q(de)h(from)e(the)h(status.)26 b(Ho)o(w)o(ev)o(er,)75
1088 y(the)17 b(pro)q(cess)h(ma)o(y)c(not)i(ha)o(v)o(e)g(exited)g(-)g
(it)g(ma)o(y)e(ha)o(v)o(e)i(b)q(ecome)g(unreac)o(hable.)25
b(It)16 b(ma)o(y)e(also)i(ha)o(v)o(e)g(b)q(een)h(killed)75
1144 y(b)o(y)h(a)f(signal)g(and)h(what)g(w)o(e'd)g(w)o(an)o(t)f(to)h
(kno)o(w)f(is)h(what)g(signal)f(killed)g(it.)30 b(In)18
b(the)g(end,)h(w)o(e)f(migh)o(t)e(ha)o(v)o(e)i(to)75
1200 y(reimplemen)o(t)d(w)o(ait\(\).)26 b(So)16 b(in)h(the)g(in)o
(terest)h(of)e(sta)o(ying)g(a)o(w)o(a)o(y)g(from)f(pro)q(cess)j
(managemen)o(t,)d(I'v)o(e)h(left)h(it)f(out)75 1257 y(altogether.)i(-)c
(w)o(cs)166 1479 y Fh(Discussion:)44 b Fg(Sev)o(eral)17
b(p)q(eople)g(ha)o(v)o(e)f(b)q(een)i(confused)f(b)o(y)f(the)h(name)e
Fa(MPI)p 1418 1479 13 2 v 15 w(NOTIFY)g Fg(since)j(it's)e(really)75
1535 y Fa(MPI)p 152 1535 V 14 w(BE)p 219 1535 V 15 w(NOTIFIED)p
Fg(.)c(Ideas)i(for)g(a)f(b)q(etter)j(name?)75 1738 y
Fp(Prop)q(osal)f(2)75 1918 y(MPI)p 160 1918 14 2 v 16
w(NOTIFY\(group,)g(a)o(rra)o(y)p 590 1918 V 14 w(of)p
641 1918 V 16 w(requests\))117 1995 y Fg(IN)155 b Fp(group)479
b Fg(a)14 b(group)g(of)f(pro)q(cesses)117 2071 y(OUT)108
b Fp(a)o(rra)o(y-of-requests)273 b Fa(MPI)p 982 2071
13 2 v 15 w(Request)p Fg(s)15 b(to)f(b)q(e)g(tested)i(and/or)d(w)o
(aited)h(on)166 2195 y Fp(MPI)p 251 2195 14 2 v 16 w(NOTIFY)19
b Ft(allo)o(ws)h(a)f(pro)q(cess)g(to)g(\014nd)h(out)e(when)i(another)f
(pro)q(cess)g(has)g(dies)i(or)d(b)q(ecome)75 2251 y(unreac)o(hable.)i
(It)14 b(is)f(the)h(same)f(as)g(the)g(ab)q(o)o(v)o(e)g(prop)q(osal)g
(with)h(the)f(single)i(ev)o(en)o(t)e Fp(MPI)p 1567 2251
V 16 w(NOTIFY)p 1748 2251 V 16 w(EXIT)p Ft(.)189 2358
y Fj(R)n(ationale.)54 b Ft(MPI)18 b(do)q(es)g(not)f(w)o(an)o(t)f(to)h
(get)g(in)o(to)h(the)g(pro)q(cess)f(managemen)o(t)g(business.)29
b(The)189 2414 y(only)14 b(thing)g(that)f(ma)o(y)g(matter)f(to)h(MPI)h
(itself)h(is)f(whether)g(a)f(pro)q(cess)h(is)g(dead)g(or)f(unreac)o
(hable.)189 2471 y(\()p Fj(End)i(of)i(r)n(ationale.)p
Ft(\))-32 46 y Fk(1)-32 103 y(2)-32 159 y(3)-32 215 y(4)-32
272 y(5)-32 328 y(6)-32 385 y(7)-32 441 y(8)-32 498 y(9)-40
554 y(10)-40 611 y(11)-40 667 y(12)-40 724 y(13)-40 780
y(14)-40 836 y(15)-40 893 y(16)-40 949 y(17)-40 1006
y(18)-40 1062 y(19)-40 1119 y(20)-40 1175 y(21)-40 1232
y(22)-40 1288 y(23)-40 1345 y(24)-40 1401 y(25)-40 1457
y(26)-40 1514 y(27)-40 1570 y(28)-40 1627 y(29)-40 1683
y(30)-40 1740 y(31)-40 1796 y(32)-40 1853 y(33)-40 1909
y(34)-40 1966 y(35)-40 2022 y(36)-40 2078 y(37)-40 2135
y(38)-40 2191 y(39)-40 2248 y(40)-40 2304 y(41)-40 2361
y(42)-40 2417 y(43)-40 2474 y(44)-40 2530 y(45)-40 2587
y(46)-40 2643 y(47)-40 2699 y(48)p eop
%%Page: 16 18
16 17 bop 75 -100 a Ft(16)928 b Fn(CHAPTER)16 b(3.)34
b(D)o(YNAMIC)15 b(PR)o(OCESSES)75 45 y Fq(3.4)59 b(Connecting)19
b(Indep)r(endent)d(Groups)k(of)g(Pro)r(cesses)75 147
y Ft(This)c(section)g(attempts)e(to)g(pro)o(vide)i(the)f(functions)h
(needed)h(to)d(solv)o(e)i(the)f(general)h(case)f(of)g(creating)75
203 y(an)20 b(in)o(tercomm)o(unicator)h(b)q(et)o(w)o(een)f(t)o(w)o(o)f
(sets)h(of)g(MPI)h(pro)q(cesses)f(that)g(do)g(not)g(share)h(an)f
(existing)75 259 y(comm)o(unicator.)g(This)15 b(situation)h(arises)f
(in)h(sev)o(eral)g(con)o(texts:)131 353 y(1.)22 b(Tw)o(o)14
b(parts)g(of)h(an)g(application)i(that)e(are)g(started)f(indep)q(enden)
o(tly)k(need)e(to)f(comm)o(unicate.)131 447 y(2.)22 b(A)15
b(visualization)i(to)q(ol)e(ma)o(y)g(w)o(an)o(t)f(to)g(attac)o(h)g(to)h
(a)g(running)h(pro)q(cess.)131 541 y(3.)22 b(A)16 b(serv)o(er)f(ma)o(y)
g(w)o(an)o(t)g(to)g(accept)h(connections)h(from)f(a)f(m)o(ultiple)j
(clien)o(ts.)23 b(This)16 b(situation)h(can)189 597 y(b)q(e)f(more)e
(complex)i(than)f(traditional)h(clien)o(t-serv)o(er)h(programs.)h(In)e
(particular,)243 691 y Fo(\017)23 b Ft(Both)15 b(clien)o(t)h(and)g
(serv)o(er)e(ma)o(y)h(b)q(e)h(parallel)g(programs.)243
764 y Fo(\017)23 b Ft(Multiple)18 b(instances)f(of)e(the)i(clien)o(t)g
(ma)o(y)f(w)o(an)o(t)f(to)h(in)o(teract)g(with)g(the)g(same)g(instance)
h(of)289 821 y(the)e(serv)o(er)g(at)f(the)i(same)e(time,)i(as)e(w)o
(ell)j(as)d(serially)l(.)243 894 y Fo(\017)23 b Ft(Since)17
b(this)f(is)g(an)f(application)i(rather)e(than)g(a)g(system)h(service,)
g(there)f(ma)o(y)g(b)q(e)h(m)o(ultiple)289 950 y(instances)g(of)e(the)i
(serv)o(er)e(running)j(on)e(the)g(same)g(host.)75 1044
y(In)21 b(eac)o(h)g(of)f(these)h(situations,)h(neither)f(set)g(of)f
(pro)q(cesses)h(spa)o(wns)f(the)h(other,)g(but)g(they)f(wish)i(to)75
1100 y(establish)12 b(comm)o(unication.)20 b(As)11 b(in)h(the)f(case)g
(of)g Fp(MPI)p 1003 1100 14 2 v 15 w(Spa)o(wn)p Ft(,)i(w)o(e)e(will)i
(use)e(MPI)g(in)o(tercomm)o(unicators)75 1157 y(to)j(express)h(this)g
(situation.)20 b(That)14 b(is,)h(w)o(e)g(will)h(de\014ne)g(MPI)f
(functions)g(that)f(supp)q(ort)h(creation)g(of)f(an)75
1213 y(in)o(tercomm)o(unicator)h(in)h(whic)o(h)g(the)g(lo)q(cal)g(and)f
(remote)g(groups)g(are)g(the)g(original)h(sets)f(of)g(pro)q(cesses.)166
1270 y(Establishing)21 b(con)o(tact)e(b)q(et)o(w)o(een)h(t)o(w)o(o)f
(groups)g(of)h(pro)q(cesses)g(that)f(do)h(not)f(share)h(an)g(existing)
75 1326 y(comm)o(unicator)14 b(is)i(a)e(collectiv)o(e,)i(but)f
(asymmetric)g(pro)q(cess.)20 b(One)c(group)e(of)g(pro)q(cesses)i
(indicates)g(its)75 1383 y(willingness)21 b(to)c(accept)h(connections)h
(from)e(other)h(groups)f(of)h(pro)q(cesses.)28 b(W)l(e)18
b(will)i(call)f(this)f(group)75 1439 y(the)c(\(parallel\))h
Fj(server)p Ft(,)f(ev)o(en)g(if)h(this)f(is)h(not)f(a)f(clien)o(t/serv)
o(er)i(t)o(yp)q(e)f(of)g(application.)21 b(The)15 b(other)e(group)75
1496 y(connects)j(to)e(the)h(serv)o(er;)g(w)o(e)g(will)i(call)f(it)f
(the)h Fj(client)p Ft(.)75 1617 y Fm(3.4.1)49 b(Names)75
1703 y Ft(In)20 b(order)e(for)h(t)o(w)o(o)f(indep)q(enden)o(t)j(sets)e
(of)f(pro)q(cesses,)i(p)q(ossibly)h(executing)f(on)f(separate)g(mac)o
(hines,)75 1760 y(to)d(establish)i(con)o(tact,)e(they)h(m)o(ust)f(ha)o
(v)o(e)g(a)g(w)o(a)o(y)g(to)g(iden)o(tify)i(and)f(recognize)g(one)g
(another.)24 b(This)17 b(is)75 1816 y(the)g Fj(name)h(pr)n(oblem)p
Ft(.)26 b(Since)19 b(establishmen)o(t)f(of)f(the)h(connection)g(will)h
(require)f(assistance)f(from)g(the)75 1873 y(system,)d(this)i(name)f
(cannot)g(b)q(e)g(left)h(completely)g(up)g(to)e(the)h(application)i
(programmer,)c(but)j(has)f(to)75 1929 y(b)q(e)20 b(negotiated)f(with)g
(the)g(system.)32 b(In)19 b(order)g(to)f(pro)o(vide)i(a)f(foundation)g
(for)g(the)g(discussion)i(that)75 1985 y(follo)o(ws,)13
b(w)o(e)g(iden)o(tify)h(three)f(di\013eren)o(t)g(kinds)h(of)e(names,)h
(dep)q(ending)j(on)c(the)h(w)o(a)o(y)f(in)i(whic)o(h)g(the)f(name)75
2042 y(is)j(used.)k(di\013eren)o(t)c(prop)q(osals)f(will)i(mak)o(e)e
(uses)g(of)g(these)g(di\013eren)o(t)h(kinds)g(of)f(name.)75
2148 y Fi(In)o(ternal)23 b Ft(this)14 b(is)f(a)g(lo)o(w-lev)o(el)i
(name)e(used)h(b)o(y)f(the)h(system)e(\(for)h(example)h(a)f(host-p)q
(ort)f(com)o(bination)189 2205 y(lik)o(e)h Fl(donner.mcs.anl.gov:1234)p
Ft(\))o(.)j(This)d(is)f(enough)h(information)f(for)f(a)h(pro)q(cess)g
(to)g(attempt)189 2261 y(a)j(connection.)75 2355 y Fi(Published)23
b Ft(This)15 b(is)f(the)g(name)g(that)f(is)h(comm)o(unicated)g(to)g
(the)f(clien)o(t)j(to)d(enable)i(it)f(to)f(con)o(tact)g(the)189
2411 y(serv)o(er.)75 2505 y Fi(Advice)23 b Ft(This)17
b(is)h(the)f(name)g(that)f(o)q(ccurs)h(in)h(the)f(serv)o(er)g(source)g
(co)q(de,)g(to)f(indicate)j(ho)o(w)d(it)i(w)o(ould)189
2562 y(lik)o(e)f(to)e(b)q(e)i(kno)o(wn.)23 b(This)17
b(do)q(es)f(not)g(completely)h(iden)o(tify)h(the)e(serv)o(er,)g(since)h
(there)f(migh)o(t)g(b)q(e)189 2618 y(m)o(ultiple)h(instances)f(on)f
(the)g(same)g(mac)o(hine.)1967 46 y Fk(1)1967 103 y(2)1967
159 y(3)1967 215 y(4)1967 272 y(5)1967 328 y(6)1967 385
y(7)1967 441 y(8)1967 498 y(9)1959 554 y(10)1959 611
y(11)1959 667 y(12)1959 724 y(13)1959 780 y(14)1959 836
y(15)1959 893 y(16)1959 949 y(17)1959 1006 y(18)1959
1062 y(19)1959 1119 y(20)1959 1175 y(21)1959 1232 y(22)1959
1288 y(23)1959 1345 y(24)1959 1401 y(25)1959 1457 y(26)1959
1514 y(27)1959 1570 y(28)1959 1627 y(29)1959 1683 y(30)1959
1740 y(31)1959 1796 y(32)1959 1853 y(33)1959 1909 y(34)1959
1966 y(35)1959 2022 y(36)1959 2078 y(37)1959 2135 y(38)1959
2191 y(39)1959 2248 y(40)1959 2304 y(41)1959 2361 y(42)1959
2417 y(43)1959 2474 y(44)1959 2530 y(45)1959 2587 y(46)1959
2643 y(47)1959 2699 y(48)p eop
%%Page: 17 19
17 18 bop 75 -100 a Fn(3.4.)34 b(CONNECTING)15 b(INDEPENDENT)g(GR)o
(OUPS)h(OF)f(PR)o(OCESSES)398 b Ft(17)166 45 y Fh(Discussion:)53
b Fg(Man)o(y)18 b(familia)o(r)e(clien)o(t/serv)o(er)k(programs)d(hide)i
(the)g(ab)q(o)o(v)o(e)g(distinctions)f(b)q(ecause)j(of)75
102 y(certain)13 b(restrictions)h(that)f(w)o(e)f(w)o(ould)g(not)g(lik)o
(e)g(to)h(imp)q(ose.)j(T)m(ak)o(e,)c(for)g(example)f(the)i
Ff(telnet)f Fg(serv)o(er.)19 b(A)12 b(single)75 158 y(instance)20
b(of)f Ff(telnetd)f Fg(runs)i(on)f(eac)o(h)g(mac)o(hine,)g(and)g(it)g
(accepts)i(connections)g(on)e(a)g(\\w)o(ell-kno)o(wn")e(p)q(ort.)75
214 y(That)e(is,)f(all)g Ff(telnetd)p Fg(s)g(use)h(the)h(same)e(p)q
(ort,)h(on)f(all)g(mac)o(hines.)20 b(Since)15 b(there)h(is)f(only)f
(one)h(instance)h(on)e(eac)o(h)75 271 y(mac)o(hine,)c(the)h(\\advice")f
(name)g(\()p Ff(telnet)p Fg(\))f(and)i(the)g(\\published")f(name)g(can)
h(b)q(e)g(the)g(same.)17 b(Publication)9 b(of)h(the)75
327 y(rest)16 b(of)e(the)h(name)f(is)h(accomplished)e(b)o(y)i(the)g
(\\w)o(ell-kno)o(wnedness")g(of)f(the)i(p)q(ort)f(that)f
Ff(telnetd)g Fg(is)g(accepting)75 384 y(connections)e(on.)17
b(Therefore)12 b(a)e(user)i(\(the)g(clien)o(t\))f(only)f(has)h(to)g(t)o
(yp)q(e)g Ff(telnet)21 b(donner.mcs.anl.g)o(ov)8 b Fg(to)i(mak)o(e)75
440 y(the)k(connection,)h(since)f(the)h(\\in)o(ternal)e(name")f(can)j
(b)q(e)f(deriv)o(ed)g(from)f(what)g(the)i(user)g(has)f(sp)q(eci\014ed.)
75 645 y Fm(3.4.2)49 b(Prop)q(osals)75 730 y Ft(In)14
b(this)h(section)f(w)o(e)f(suggest)g(sev)o(eral)h(prop)q(osals,)g(whic)
o(h)h(di\013er)f(in)g(ho)o(w)g(m)o(uc)o(h)f(of)h(the)g(name)f(manage-)
75 787 y(men)o(t)i(they)g(try)g(to)f(pro)o(vide)i(and)f(ho)o(w)g(m)o
(uc)o(h)g(they)h(put)f(name)g(managemen)o(t)g(outside)g(MPI.)75
907 y Fp(Prop)q(osal)f(1.)19 b(Only)c(internal)g(names)45
b Ft(This)15 b(giv)o(es)f(up)h(some)f(functionalit)o(y)h(and)f(p)q
(oten)o(tial)h(robustness)75 963 y(for)f(simplicit)o(y)l(.)22
b(It)15 b(essen)o(tially)i(mak)o(es)d(all)i(three)f(names)g(the)g
(same.)k(the)c(name)g(is)h(assumed)f(to)f(b)q(e)h(of)75
1020 y(a)g(form)f(that)g(the)h(system)g(can)g(use)h(directly)l(,)g(suc)
o(h)f(as)g Fl(host:port)p Ft(,)e(but)i(the)h(implemen)o(tation)g(could)
75 1076 y(allo)o(w)h(other)g(forms.)24 b(In)18 b(this)f(prop)q(osal,)g
(there)g(are)g(just)f(t)o(w)o(o)g(functions,)i(one)f(for)f(the)h
(\\clien)o(t")h(and)75 1133 y(one)d(for)g(the)g(\\serv)o(er",)f
(together)h(with)g(their)h(non-blo)q(c)o(king)h(v)o(ersions.)75
1284 y Fp(MPI)p 160 1284 14 2 v 16 w(A)o(CCEPT\(mycomm,)12
b(name,)i(ro)q(ot,)h(new)o(comm\))117 1361 y Fg(IN)155
b Fp(mycomm)412 b Fg(comm)o(unicator)11 b(o)o(v)o(er)j(whic)o(h)g(this)
g(call)f(is)h(collectiv)o(e)117 1436 y(IN)155 b Fp(name)485
b Fg(in)o(ternal)14 b(name)e(\(string\))117 1511 y(IN)155
b Fp(ro)q(ot)508 b Fg(the)15 b(pro)q(cess)g(on)f(whic)o(h)g
Fa(name)g Fg(is)f(v)n(alid)117 1586 y(OUT)108 b Fp(new)o(comm)397
b Fg(new)12 b(in)o(ter-comm)o(unicator,)d(whic)o(h)i(includes)h(the)g
(pro)q(cesses)905 1643 y(of)h(the)i(remote)e(group)166
1767 y Fp(MPI)p 251 1767 V 16 w(A)o(CCEPT)k Ft(indicates)i(that)d(the)h
(pro)q(cess)h(in)g(the)f(comm)o(unicator)g(are)g(prepared)g(to)g
(accept)75 1824 y(connections)c(from)e(other)g(pro)q(cesses.)19
b(The)12 b(name)f(need)i(only)f(b)q(e)g(v)m(alid)i(on)d(the)h(pro)q
(cess)g(giv)o(en)g(b)o(y)g Fp(ro)q(ot)p Ft(.)75 1880
y(On)k(completion,)g(the)g(clien)o(t)h(pro)q(cesses)f(will)h(b)q(e)f
(the)f(remote)g(group)h(of)f(the)g(in)o(tercomm)o(unicator.)21
b(It)75 1937 y(is)14 b(en)o(tirely)i(the)e(user's)f(resp)q(onsibilit)o
(y)k(to)c(ensure)i(that)e(the)h(name)g(is)g(kno)o(wn)g(to)g(the)g
(clien)o(t)h(so)e(that)h(it)75 1993 y(can)h(do)g(the)h(corresp)q
(onding)g Fp(MPI)p 677 1993 V 16 w(CONNECT)p Ft(.)75
2144 y Fp(MPI)p 160 2144 V 16 w(CONNECT\(mycomm,)c(name,)j(new)o
(comm\))117 2221 y Fg(IN)155 b Fp(mycomm)412 b Fg(comm)o(unicator)11
b(o)o(v)o(er)j(whic)o(h)g(this)g(call)f(is)h(collectiv)o(e)117
2296 y(IN)155 b Fp(name)485 b Fg(in)o(ternal)14 b(name)e(\(string\))117
2372 y(OUT)108 b Fp(new)o(comm)397 b Fg(new)12 b(in)o(ter-comm)o
(unicator,)d(whic)o(h)i(includes)h(the)g(pro)q(cesses)905
2428 y(of)h(the)i(remote)e(group)166 2552 y Ft(This)h(creates)g(the)g
(in)o(tercomm)o(unicator,)g(in)g(whic)o(h)h(the)f(serv)o(er)g(pro)q
(cesses)g(mak)o(e)f(up)i(the)f(remote)75 2609 y(group.)25
b(It)17 b(is)h(en)o(tirely)g(the)f(user's)g(resp)q(onsibilit)o(y)i(to)d
(ensure)i(that)e(the)h(name)g(used)h(is)g(adequate)f(to)75
2665 y(uniquely)g(iden)o(tify)g(the)e(collection)i(of)e(pro)q(cesses)g
(to)g(b)q(e)h(connected)g(to.)-32 46 y Fk(1)-32 103 y(2)-32
159 y(3)-32 215 y(4)-32 272 y(5)-32 328 y(6)-32 385 y(7)-32
441 y(8)-32 498 y(9)-40 554 y(10)-40 611 y(11)-40 667
y(12)-40 724 y(13)-40 780 y(14)-40 836 y(15)-40 893 y(16)-40
949 y(17)-40 1006 y(18)-40 1062 y(19)-40 1119 y(20)-40
1175 y(21)-40 1232 y(22)-40 1288 y(23)-40 1345 y(24)-40
1401 y(25)-40 1457 y(26)-40 1514 y(27)-40 1570 y(28)-40
1627 y(29)-40 1683 y(30)-40 1740 y(31)-40 1796 y(32)-40
1853 y(33)-40 1909 y(34)-40 1966 y(35)-40 2022 y(36)-40
2078 y(37)-40 2135 y(38)-40 2191 y(39)-40 2248 y(40)-40
2304 y(41)-40 2361 y(42)-40 2417 y(43)-40 2474 y(44)-40
2530 y(45)-40 2587 y(46)-40 2643 y(47)-40 2699 y(48)p
eop
%%Page: 18 20
18 19 bop 75 -100 a Ft(18)928 b Fn(CHAPTER)16 b(3.)34
b(D)o(YNAMIC)15 b(PR)o(OCESSES)166 45 y Ft(The)20 b(non-blo)q(c)o(king)
h(v)o(ersion)f(of)f Fp(MPI)p 837 45 14 2 v 16 w(A)o(CCEPT)h
Ft(is)g(needed)h(so)e(that)g(m)o(ultiple)j(clien)o(ts)f(can)e(b)q(e)75
102 y(serviced)e(at)f(the)g(same)f(time.)23 b(The)17
b(non-blo)q(c)o(king)g(v)o(ersion)g(of)e Fp(MPI)p 1280
102 V 16 w(CONNECT)i Ft(is)g(needed)g(b)q(ecause)75 158
y(the)e(op)q(eration)h(can)f(b)q(e)h(time-consuming)g(and)g(in)o(v)o
(olv)o(e)g(considerable)h(comm)o(unication.)75 309 y
Fp(MPI)p 160 309 V 16 w(IA)o(CCEPT\(mycomm,)11 b(name,)k(ro)q(ot,)f
(new)o(comm,)g(request\))117 386 y Fg(IN)155 b Fp(mycomm)412
b Fg(comm)o(unicator)11 b(o)o(v)o(er)j(whic)o(h)g(this)g(call)f(is)h
(collectiv)o(e)117 461 y(IN)155 b Fp(name)485 b Fg(in)o(ternal)14
b(name)e(\(string\))117 536 y(IN)155 b Fp(ro)q(ot)508
b Fg(the)15 b(pro)q(cess)g(on)f(whic)o(h)g Fa(name)g
Fg(is)f(v)n(alid)117 612 y(OUT)108 b Fp(new)o(comm)397
b Fg(new)12 b(in)o(ter-comm)o(unicator,)d(whic)o(h)i(includes)h(the)g
(pro)q(cesses)905 668 y(of)h(the)i(remote)e(group)117
743 y(OUT)108 b Fp(request)452 b Fg(an)14 b Fa(MPI)p
1040 743 13 2 v 14 w(Request)i Fg(that)d(can)i(b)q(e)f(w)o(aited)g(on)
75 962 y Fp(MPI)p 160 962 14 2 v 16 w(ICONNECT\(mycomm,)e(name,)j(new)o
(comm,)e(request\))117 1039 y Fg(IN)155 b Fp(mycomm)412
b Fg(comm)o(unicator)11 b(o)o(v)o(er)j(whic)o(h)g(this)g(call)f(is)h
(collectiv)o(e)117 1114 y(IN)155 b Fp(name)485 b Fg(in)o(ternal)18
b(name)g(b)o(y)g(whic)o(h)g(remote)h(pro)q(cess)h(can)f(b)q(e)g(con-)
905 1171 y(tacted)c(\(string\))117 1246 y(OUT)108 b Fp(new)o(comm)397
b Fg(new)12 b(in)o(ter-comm)o(unicator,)d(whic)o(h)i(includes)h(the)g
(pro)q(cesses)905 1302 y(of)h(the)i(remote)e(group)117
1378 y(OUT)108 b Fp(request)452 b Fg(an)14 b Fa(MPI)p
1040 1378 13 2 v 14 w(Request)i Fg(that)d(can)i(b)q(e)f(w)o(aited)g(on)
75 1566 y Fp(Prop)q(osal)f(2.)19 b(Getting)14 b(internal)g(name)e(from)
g(system)46 b Ft(this)13 b(second)h(prop)q(osal)f(adds)g(routines)g(to)
g(obtain)75 1622 y(the)18 b(in)o(ternal)h(name)f(to)g(b)q(e)h(passed)f
(to)f Fp(MPI)p 865 1622 14 2 v 16 w(A)o(CCEPT)i Ft(and)f
Fp(MPI)p 1247 1622 V 16 w(CONNECT)h Ft(from)e(the)h(system)g(in)75
1679 y(a)g(p)q(ortable)g(w)o(a)o(y)l(.)28 b(It)18 b(allo)o(ws)h(for)e
(the)h(existence)i(of)d(a)h(name)g(serv)o(er)g(that)f(is)i(accessed)g
(inside)h(these)75 1735 y(routines.)166 1792 y(On)c(the)f(serv)o(er)g
(side:)75 1942 y Fp(MPI)p 160 1942 V 16 w(PUBLISHED)p
421 1942 V 16 w(NAME)p 566 1942 V 17 w(GET\()g(advice)p
821 1942 V 17 w(name,)g(published)p 1142 1942 V 19 w(name,)f(internal)p
1432 1942 V 17 w(name)h(\))117 2020 y Fg(IN)155 b Fp(advice)p
438 2020 V 17 w(name)351 b Fg(name)13 b(that)h(the)g(serv)o(er)i(w)o
(ould)d(lik)o(e)g(to)h(b)q(e)g(kno)o(wn)g(b)o(y)117 2095
y(IN)155 b Fp(published)p 495 2095 V 20 w(name)291 b
Fg(name)14 b(that)i(the)f(clien)o(t)h(can)f(use)h(to)f(con)o(tact)h
(this)f(instance)905 2151 y(of)e(the)i(serv)o(er)117
2226 y(OUT)108 b Fp(internal)p 463 2226 V 18 w(name)325
b Fg(c)o(haracter)15 b(string)f(supplied)g(b)o(y)g(the)h(system)166
2351 y Ft(The)j Fp(advice)p 382 2351 V 17 w(name)g Ft(is)g(passed)g(in)
h(as)f(the)g(name)g(b)o(y)g(whic)o(h)h(the)f(application)h(w)o(ould)g
(lik)o(e)g(to)e(b)q(e)75 2407 y(kno)o(wn.)23 b(The)16
b Fp(published)p 511 2407 V 19 w(name)g Ft(returned)h(is)g(the)f(name)g
(to)g(b)q(e)h(comm)o(unicated)g(to)e(the)i(clien)o(t,)g(for)f(it)75
2464 y(to)h(use)g(in)i Fp(MPI)p 354 2464 V 15 w(Internal)p
513 2464 V 17 w(name)p 632 2464 V 16 w(get)p Ft(,)f(b)q(elo)o(w,)g(in)g
(order)g(to)e(con)o(tact)h(this)h(particular)g(instance)g(of)f(the)75
2520 y(serv)o(er.)i(The)d Fp(internal)p 463 2520 V 17
w(name)f Ft(is)g(to)g(b)q(e)h(used)g(in)g Fp(MPI)p 999
2520 V 16 w(A)o(CCEPT)p Ft(,)f(ab)q(o)o(v)o(e.)166 2577
y(When)g(the)h(serv)o(er)f(is)g(no)g(longer)h(accepting)g(connections,)
g(it)f(can)h(call)1967 46 y Fk(1)1967 103 y(2)1967 159
y(3)1967 215 y(4)1967 272 y(5)1967 328 y(6)1967 385 y(7)1967
441 y(8)1967 498 y(9)1959 554 y(10)1959 611 y(11)1959
667 y(12)1959 724 y(13)1959 780 y(14)1959 836 y(15)1959
893 y(16)1959 949 y(17)1959 1006 y(18)1959 1062 y(19)1959
1119 y(20)1959 1175 y(21)1959 1232 y(22)1959 1288 y(23)1959
1345 y(24)1959 1401 y(25)1959 1457 y(26)1959 1514 y(27)1959
1570 y(28)1959 1627 y(29)1959 1683 y(30)1959 1740 y(31)1959
1796 y(32)1959 1853 y(33)1959 1909 y(34)1959 1966 y(35)1959
2022 y(36)1959 2078 y(37)1959 2135 y(38)1959 2191 y(39)1959
2248 y(40)1959 2304 y(41)1959 2361 y(42)1959 2417 y(43)1959
2474 y(44)1959 2530 y(45)1959 2587 y(46)1959 2643 y(47)1959
2699 y(48)p eop
%%Page: 19 21
19 20 bop 75 -100 a Fn(3.4.)34 b(CONNECTING)15 b(INDEPENDENT)g(GR)o
(OUPS)h(OF)f(PR)o(OCESSES)398 b Ft(19)75 45 y Fp(MPI)p
160 45 14 2 v 16 w(FREE)p 285 45 V 17 w(NAME\()15 b(name\))117
122 y Fg(IN)155 b Fp(name)485 b Fg(in)o(ternal)14 b(name)166
247 y Ft(to)g(free)i(up)f(the)h(in)o(ternal)g(name.)166
303 y(On)g(the)f(clien)o(t)h(side:)75 454 y Fp(MPI)p
160 454 V 16 w(INTERNAL)p 395 454 V 17 w(NAME)p 541 454
V 16 w(GET\()g(published)p 853 454 V 19 w(name,)e(internal)p
1143 454 V 17 w(name)h(\))117 531 y Fg(IN)155 b Fp(published)p
495 531 V 20 w(name)291 b Fg(name)13 b(that)h(the)g(serv)o(er)i(has)e
(obtained)f(and)h(published)117 607 y(OUT)108 b Fp(internal)p
463 607 V 18 w(name)325 b Fg(c)o(haracter)15 b(string)f(supplied)g(b)o
(y)g(the)h(system)166 731 y Ft(The)g(clien)o(t,)h(ha)o(ving)f(learned)g
(\(someho)o(w\))f(the)h(published)i(name)e(\(not)f(the)h(advice)g
(name,)g(since)75 787 y(there)f(migh)o(t)f(b)q(e)i(sev)o(eral)e(instan)
o(tiations)h(of)g(the)f(advice)i(name,)f(calls)g Fp(MPI)p
1392 787 V 16 w(INTERNAL)p 1627 787 V 17 w(NAME)p 1773
787 V 17 w(GET)75 844 y Ft(to)h(\014nd)g(the)h(lo)o(w-lev)o(el)g(name)g
(it)f(will)i(pass)e(to)f Fp(MPI)p 977 844 V 16 w(CONNECT)p
Ft(.)75 964 y Fp(Prop)q(osal)c(3:)17 b(Hiding)11 b(the)g(internal)g
(name)45 b(MPI)p 892 964 V 16 w(GET)p 996 964 V 16 w(PUBLISHED)p
1257 964 V 17 w(NAME)11 b Ft(and)f Fp(MPI)p 1579 964
V 16 w(GET)p 1683 964 V 16 w(INTERNAL)p 1918 964 V 17
w(NAME)75 1020 y Ft(are)17 b(designed)i(to)d(b)q(e)i(added)g(to)f(Prop)
q(osal)g(1,)h(whic)o(h)g(w)o(as)e(designed)j(to)e(use)g(on)h(one)f
(form)g(of)g Fp(name)p Ft(.)75 1077 y(But)j(if)h(the)g(in)o(ternal)g
(name)g(passed)f(to)g Fp(MPI)p 896 1077 V 16 w(A)o(CCEPT)g
Ft(and)h Fp(MPI)p 1282 1077 V 16 w(CONNECT)g Ft(is)g(alw)o(a)o(ys)f
(obtains)75 1133 y(b)o(y)c(calling)i(these)e(functions,)h(than)f(w)o(e)
g(can)g(mak)o(e)g(it)g(an)h(opaque)f(ob)s(ject,)f(sa)o(y)h(an)g
Fp(MPI)p 1637 1133 V 16 w(Connection)p Ft(,)75 1190 y(instead)j(of)e(a)
h(string.)27 b(There)19 b(still)g(needs)g(to)e(b)q(e)h(a)g(prin)o
(table)h(form)e(of)h(it,)g(for)f(publication.)30 b(So)18
b(w)o(e)75 1246 y(could)e(ha)o(v)o(e)75 1397 y Fp(MPI)p
160 1397 V 16 w(REGISTER)p 387 1397 V 17 w(NAME\()g(advice)p
684 1397 V 16 w(name,)f(published)p 1004 1397 V 19 w(name,)f
(connection)j(\))117 1474 y Fg(IN)155 b Fp(advice)p 438
1474 V 17 w(name)351 b Fg(name)13 b(that)h(the)g(serv)o(er)i(w)o(an)o
(ts)e(to)f(b)q(e)i(kno)o(wn)e(b)o(y)117 1549 y(IN)155
b Fp(published)p 495 1549 V 20 w(name)291 b Fg(name)13
b(to)h(publish)f(for)h(the)g(clien)o(t)117 1625 y(OUT)108
b Fp(connection)385 b Fg(handle)14 b(supplied)g(b)o(y)g(the)g(system)75
1844 y Fp(MPI)p 160 1844 V 16 w(GET)p 264 1844 V 17 w(CONNECTION\()i
(published)p 780 1844 V 19 w(name,)e(connection)j(\))117
1921 y Fg(IN)155 b Fp(published)p 495 1921 V 20 w(name)291
b Fg(name)13 b(published)h(b)o(y)g(the)g(serv)o(er)117
1996 y(OUT)108 b Fp(connection)385 b Fg(handle)14 b(supplied)g(b)o(y)g
(the)g(system)166 2120 y Ft(Then)22 b(the)f Fp(internal)p
520 2120 V 17 w(name)g Ft(supplied)j(to)c Fp(MPI)p 989
2120 V 16 w(A)o(CCEPT)h Ft(and)h Fp(MPI)p 1377 2120 V
16 w(CONNECT)g Ft(b)q(ecomes)g(the)75 2177 y(handle)16
b(instead.)75 2297 y Fp(Prop)q(osal)21 b(4.)37 b(Eliminating)21
b(the)h(explicit)g(connection)48 b Ft(A)21 b(minimal-n)o(um)o(b)q
(er-of-functions)j(prop)q(osal)75 2353 y(could)17 b(com)o(bine)h(some)e
(of)g(the)g(ab)q(o)o(v)o(e)g(routines,)h(to)e(do)i(a)o(w)o(a)o(y)d
(with)j(an)o(y)f(explicit)j(men)o(tion)d(of)g(either)75
2410 y(the)f(in)o(ternal)h(name)f(or)g(the)g(connection.)21
b(The)15 b Fp(MPI)p 999 2410 V 16 w(A)o(CCEPT)g Ft(could)h(retriev)o(e)
f(the)g(published)j(name)75 2466 y(as)d(a)g(side)i(e\013ect)e(of)h
(accepting)g(with)g(the)g(advice)g(name,)g(and)f(the)h
Fp(MPI)p 1346 2466 V 16 w(CONNECT)g Ft(w)o(ould)g(just)g(use)75
2523 y(the)f(published)j(name.)-32 46 y Fk(1)-32 103
y(2)-32 159 y(3)-32 215 y(4)-32 272 y(5)-32 328 y(6)-32
385 y(7)-32 441 y(8)-32 498 y(9)-40 554 y(10)-40 611
y(11)-40 667 y(12)-40 724 y(13)-40 780 y(14)-40 836 y(15)-40
893 y(16)-40 949 y(17)-40 1006 y(18)-40 1062 y(19)-40
1119 y(20)-40 1175 y(21)-40 1232 y(22)-40 1288 y(23)-40
1345 y(24)-40 1401 y(25)-40 1457 y(26)-40 1514 y(27)-40
1570 y(28)-40 1627 y(29)-40 1683 y(30)-40 1740 y(31)-40
1796 y(32)-40 1853 y(33)-40 1909 y(34)-40 1966 y(35)-40
2022 y(36)-40 2078 y(37)-40 2135 y(38)-40 2191 y(39)-40
2248 y(40)-40 2304 y(41)-40 2361 y(42)-40 2417 y(43)-40
2474 y(44)-40 2530 y(45)-40 2587 y(46)-40 2643 y(47)-40
2699 y(48)p eop
%%Page: 20 22
20 21 bop 75 -100 a Ft(20)928 b Fn(CHAPTER)16 b(3.)34
b(D)o(YNAMIC)15 b(PR)o(OCESSES)75 45 y Fm(3.4.3)49 b(Prop)q(osal)18
b(4.5)e(\(w)o(cs\))75 214 y Fh(Discussion:)33 b Fg(This)12
b(prop)q(osal)g(is)h(essen)o(tially)f(a)g(\015ushed)i(out)f(v)o(ersion)
f(of)g(prop)q(osal)g(4.)18 b(The)13 b(names)e(ha)o(v)o(e)i(b)q(een)75
270 y(c)o(hanged)h(sligh)o(tly)m(,)e(but)i(the)g(functionalit)o(y)f(is)
h(exactly)f(the)i(same.)i(-)d(w)o(cs)166 409 y Ft(On)e(the)g(serv)o(er)
f(side,)i(there)f(are)g(t)o(w)o(o)e(routines:)18 b Fp(MPI)p
1085 409 14 2 v 16 w(LISTEN)12 b Ft(and)g Fp(MPI)p 1433
409 V 15 w(A)o(CCEPT)p Ft(.)g Fh(Discussion:)75 548 y
Fa(MPI)p 152 548 13 2 v 14 w(LISTEN)e Fg(is)g(the)g(same)f(as)g
Fa(MPI)p 641 548 V 15 w(REGISTER)p 851 548 V 13 w(NAME)h
Fg(of)f(other)h(prop)q(osals,)g(but)g(the)g(fo)q(cus)g(is)g(on)f(its)h
(function,)75 605 y(not)k(on)f(ho)o(w)h(it)f(deals)h(with)g(names.)166
744 y Ft(\(Note:)25 b(I)18 b(am)g(uncomfortable)g(with)g(\\published)p
1051 744 14 2 v 19 w(name")f(b)q(ecause)i(it)g(sounds)f(lik)o(e)h(it)f
(is)h(b)q(eing)75 800 y(published)f(b)o(y)d(a)g(nameserv)o(er.\))75
951 y Fp(MPI)p 160 951 V 16 w(LISTEN\(requested)p 525
951 V 18 w(name,)f(name\))117 1029 y Fg(IN)155 b Fp(requested)p
499 1029 V 19 w(name)288 b Fg(name)13 b(that)h(the)g(serv)o(er)i(w)o
(an)o(ts)e(to)f(b)q(e)i(kno)o(wn)e(b)o(y)117 1103 y(OUT)108
b Fp(name)485 b Fg(name)13 b(supplied)h(b)o(y)g(the)g(system)g(and)f
(used)i(b)o(y)f(clien)o(t)166 1228 y Fp(MPI)p 251 1228
V 16 w(LISTEN)j Ft(establishes)i(a)f(meeting)g(p)q(oin)o(t)g(at)g(whic)
o(h)g(a)g(serv)o(er)f(an)h(b)q(e)g(con)o(tacted.)28 b(The)18
b(re-)75 1284 y(turned)f Fp(name)p Ft(,)g(whic)o(h)h(iden)o(ti\014es)h
(the)e(meeting)g(p)q(oin)o(t,)h(is)g(guaran)o(teed)e(to)h(b)q(e)g
(unique)i(to)d(the)h(serv)o(er)75 1341 y(and)12 b(will)h(not)e(b)q(e)h
(returned)g(b)o(y)f Fp(MPI)p 702 1341 V 16 w(LISTEN)g
Ft(in)h(an)o(y)f(other)g(MPI)h(pro)q(cess)g(un)o(til)g(the)g(name)f(is)
h(released)75 1397 y(with)k Fp(MPI)p 264 1397 V 15 w(UNLISTEN)166
1453 y(requested)p 347 1453 V 19 w(name)g Ft(ma)o(y)h(b)q(e)h(a)e(NULL)
j(or)d(empt)o(y)h(string,)g(in)h(whic)o(h)g(case)f(the)h(system)e(c)o
(ho)q(oses)h(a)75 1510 y(name.)166 1649 y Fh(Discussion:)i
Fg(The)d(name)e(\\listen")h(is)h(in)o(tended)g(to)f(b)q(e)h(reminiscen)
o(t)g(of)e(the)j(Unix)e(so)q(c)o(k)o(et/bind/listen)75
1706 y(sequence.)20 b(Unfortunately)12 b Fa(MPI)p 607
1706 13 2 v 15 w(UNLISTEN)h Fg(is)f(a)o(wkw)o(ard.)17
b(Alternativ)o(e)c(names)f(w)o(ould)g(b)q(e)h Fa(MPI)p
1655 1706 V 14 w(PORT)p 1782 1706 V 14 w(GET)75 1762
y Fg(and)h Fa(MPI)p 233 1762 V 14 w(PORT)p 360 1762 V
14 w(FREE)p Fg(,)f(whic)o(h)g(aren't)h(w)o(onderful)g(either.)166
1901 y Ft(The)i(name)f(returned)h(b)o(y)f Fp(MPI)p 714
1901 14 2 v 16 w(LISTEN)g Ft(is)h(used)g(b)o(y)g(the)f(serv)o(er)g(in)h
Fp(MPI)p 1457 1901 V 16 w(A)o(CCEPT)g Ft(and)f(b)o(y)h(the)75
1958 y(clien)o(t)g(in)f Fp(MPI)p 334 1958 V 16 w(CONNECT)p
Ft(.)g(Once)h Fp(name)e Ft(has)g(b)q(een)i(established,)g
Fp(MPI)p 1337 1958 V 16 w(CONNECT)f Ft(will)i(blo)q(c)o(k)e(un)o(til)75
2014 y(the)g(corresp)q(onding)h Fp(MPI)p 530 2014 V 16
w(A)o(CCEPT)g Ft(has)f(b)q(een)h(called.)75 2165 y Fp(MPI)p
160 2165 V 16 w(A)o(CCEPT\(mycomm,)c(name,)i(ro)q(ot,)h(new)o(comm\))
117 2242 y Fg(IN)155 b Fp(mycomm)412 b Fg(comm)o(unicator)11
b(o)o(v)o(er)j(whic)o(h)g(this)g(call)f(is)h(collectiv)o(e)117
2317 y(IN)155 b Fp(name)485 b Fg(name)13 b(returned)i(b)o(y)f
Fa(MPI)p 1319 2317 13 2 v 14 w(LISTEN)117 2392 y Fg(IN)155
b Fp(ro)q(ot)508 b Fg(the)15 b(pro)q(cess)g(on)f(whic)o(h)g
Fa(name)g Fg(w)o(as)f(obtained)117 2466 y(OUT)108 b Fp(new)o(comm)397
b Fg(new)12 b(in)o(ter-comm)o(unicator,)d(whic)o(h)i(includes)h(the)g
(pro)q(cesses)905 2523 y(of)h(the)i(remote)e(group)166
2647 y Fp(MPI)p 251 2647 14 2 v 16 w(A)o(CCEPT)i Ft(indicates)i(that)e
(the)g(pro)q(cesses)h(in)g(the)g(comm)o(unicator)f(are)g(ready)g(to)g
(establish)75 2704 y(comm)o(unication)21 b(with)f(other)f(pro)q
(cesses.)34 b Fp(ro)q(ot)20 b Ft(iden)o(ti\014es)h(the)f(pro)q(cess)g
(that)f(obtained)h(the)g Fp(name)1967 46 y Fk(1)1967
103 y(2)1967 159 y(3)1967 215 y(4)1967 272 y(5)1967 328
y(6)1967 385 y(7)1967 441 y(8)1967 498 y(9)1959 554 y(10)1959
611 y(11)1959 667 y(12)1959 724 y(13)1959 780 y(14)1959
836 y(15)1959 893 y(16)1959 949 y(17)1959 1006 y(18)1959
1062 y(19)1959 1119 y(20)1959 1175 y(21)1959 1232 y(22)1959
1288 y(23)1959 1345 y(24)1959 1401 y(25)1959 1457 y(26)1959
1514 y(27)1959 1570 y(28)1959 1627 y(29)1959 1683 y(30)1959
1740 y(31)1959 1796 y(32)1959 1853 y(33)1959 1909 y(34)1959
1966 y(35)1959 2022 y(36)1959 2078 y(37)1959 2135 y(38)1959
2191 y(39)1959 2248 y(40)1959 2304 y(41)1959 2361 y(42)1959
2417 y(43)1959 2474 y(44)1959 2530 y(45)1959 2587 y(46)1959
2643 y(47)1959 2699 y(48)p eop
%%Page: 21 23
21 22 bop 75 -100 a Fn(3.4.)34 b(CONNECTING)15 b(INDEPENDENT)g(GR)o
(OUPS)h(OF)f(PR)o(OCESSES)398 b Ft(21)75 45 y(with)16
b Fp(MPI)p 264 45 14 2 v 16 w(LISTEN)p Ft(.)g Fp(name)f
Ft(is)i(signi\014can)o(t)g(in)g(that)e(pro)q(cess)h(and)g(ignored)h(in)
g(others)e(\(where)h(it)h(ma)o(y)75 102 y(b)q(e)f(NULL\).)166
158 y(On)d(completion,)h(the)e(clien)o(t)i(pro)q(cesses)f(will)h(b)q(e)
f(the)g(remote)f(group)g(of)g(the)g(in)o(tercomm)o(unicator.)75
214 y(It)i(is)g(en)o(tirely)h(the)f(user's)f(resp)q(onsibilit)o(y)j(to)
e(ensure)g(that)f(the)h(name)g(is)g(kno)o(wn)f(to)g(the)h(clien)o(t)h
(so)f(that)75 271 y(it)e(can)g(do)f(the)h(corresp)q(onding)h
Fp(MPI)p 705 271 V 16 w(CONNECT)p Ft(,)f(though)g(some)f(implemen)o
(tation)i(ma)o(y)e(mak)o(e)g(it)h(easy)75 327 y(for)j(the)g(clien)o(t)h
(to)f(guess)g(the)g(name)h(without)f(an)g(explicit)i(transfer.)75
478 y Fp(MPI)p 160 478 V 16 w(UNLISTEN\(name\))117 556
y Fg(IN)155 b Fp(name)485 b Fg(name)13 b(obtained)h(from)e
Fa(MPI)p 1362 556 13 2 v 14 w(LISTEN)166 680 y Ft(This)i(function)h
(frees)f Fp(name)p Ft(.)19 b(After)14 b(the)g(name)g(is)g(freed,)g
(attempts)f(to)h Fp(MPI)p 1497 680 14 2 v 15 w(CONNECT)h
Ft(to)f(that)75 736 y(name)h(will)i(fail.)75 887 y Fp(MPI)p
160 887 V 16 w(CONNECT\(mycomm,)12 b(name,)j(new)o(comm\))117
965 y Fg(IN)155 b Fp(mycomm)412 b Fg(comm)o(unicator)11
b(o)o(v)o(er)j(whic)o(h)g(this)g(call)f(is)h(collectiv)o(e)117
1040 y(IN)155 b Fp(name)485 b Fg(name)13 b(returned)i(b)o(y)f
Fa(MPI)p 1319 1040 13 2 v 14 w(LISTEN)h Fg(on)e(the)i(serv)o(er)g(side)
117 1115 y(OUT)108 b Fp(new)o(comm)397 b Fg(new)12 b(in)o(ter-comm)o
(unicator,)d(whic)o(h)i(includes)h(the)g(pro)q(cesses)905
1171 y(of)h(the)i(remote)e(group)166 1296 y Fp(MPI)p
251 1296 14 2 v 16 w(CONNECT)j Ft(establishes)h(comm)o(unication)g
(with)e(a)h(group)f(of)g(pro)q(cesses)h(that)f(ha)o(v)o(e)g(called)75
1352 y Fp(MPI)p 160 1352 V 16 w(A)o(CCEPT)p Ft(.)j(Logically)l(,)i
Fp(name)e Ft(sp)q(e\014cies)i(a)e(rendezv)o(ous)h(p)q(oin)o(t)g(from)f
(whic)o(h)h(the)f(pro)q(cesses)h(can)75 1409 y(b)q(o)q(otstrap)i(comm)o
(unication.)39 b Fp(MPI)p 727 1409 V 15 w(CONNECT)23
b Ft(returns)e(an)g(in)o(tercomm)o(unicator,)i(in)f(whic)o(h)g(the)75
1465 y(serv)o(er)15 b(pro)q(cesses)g(comprise)h(the)f(remote)g(group.)
75 1587 y Fm(3.4.4)49 b(Sample)16 b(implementations)75
1673 y Ft(The)i(follo)o(wing)h(examples)g(clarify)g(the)g(handling)g
(of)f(names.)29 b(They)18 b(are)g(all)h(p)q(ossible,)i(but)d(not)g(re-)
75 1729 y(quired,)e(implemen)o(tations)g(of)f Fp(MPI)p
707 1729 V 16 w(LISTEN)p Ft(,)f Fp(MPI)p 985 1729 V 16
w(A)o(CCEPT)p Ft(,)h Fp(MPI)p 1285 1729 V 16 w(CONNECT)p
Ft(,)h(etc.)166 1786 y(In)g(general,)f(there)g(will)i(t)o(w)o(o)c(w)o
(a)o(ys)h(for)h(the)g(clien)o(t)h(to)f(get)f(its)h(hands)h(on)f(the)g
Fp(name)g Ft(returned)g(b)o(y)75 1842 y Fp(MPI)p 160
1842 V 16 w(LISTEN)p Ft(.)143 1936 y Fo(\017)23 b Ft(The)c(p)q(ortable)
h(and)f(guaran)o(teed-to-w)o(ork)f(w)o(a)o(y)g(is)i(to)e(lo)q(ok)i(at)e
(the)i(name)f(and)g(supply)i(it)e(as)189 1992 y(input)f(to)f
Fp(MPI)p 455 1992 V 16 w(CONNECT)p Ft(.)h(This)g(migh)o(t)f(b)q(e)h
(done)g(b)o(y)f(a)g(user,)h(who)f(t)o(yp)q(es)g(in)h(the)g(name,)f(or)
189 2049 y(b)o(y)f(ha)o(ving)h(the)f(serv)o(er)h(write)f(the)h(name)f
(to)g(a)g(\014le)i(and)f(ha)o(ving)f(the)h(clien)o(t)h(read)e(that)g
(\014le,)h(or)189 2105 y(an)o(y)d(other)h(means.)143
2199 y Fo(\017)23 b Ft(The)15 b(non-p)q(ortable)h(but)f(p)q
(ossibly-more-con)o(v)o(enien)o(t)j(w)o(a)o(y)c(is)i(to)e(\\guess")h
(the)g(name.)20 b(Exactly)189 2255 y(ho)o(w)c(to)h(\\guess")f(w)o(ould)
i(dep)q(end)h(on)e(the)g(implemen)o(tation.)27 b(Sev)o(eral)18
b(p)q(ossible)h(implemen)o(ta-)189 2312 y(tions)c(are)g(describ)q(ed)i
(b)q(elo)o(w.)75 2432 y Fp(Unix-TCP/IP-So)q(ck)o(ets)75
2518 y Ft(In)j(this)f(implemen)o(tation)h(there)g(is)f(no)g(nameserv)o
(er.)31 b(The)19 b Fp(name)g Ft(returned)g(b)o(y)g Fp(MPI)p
1618 2518 V 16 w(LISTEN)g Ft(is)g(a)75 2574 y(string)g(of)f(the)g(form)
g(\\host:p)q(ost".)29 b(If)18 b(the)h(user)g(sp)q(eci\014es)h(a)e
(requested)h(name)g(of)f(NULL,)h(the)g(sys-)75 2631 y(tem)f(c)o(ho)q
(oses)h(a)f(p)q(ort)h(n)o(um)o(b)q(er.)30 b(The)19 b(user)g(can)g(also)
f(sp)q(ecify)i(a)f(p)q(ort)f(b)o(y)g(its)h(/etc/services)g(name,)75
2687 y(suc)o(h)j(as)f(\\telnet",)i(or)e(b)o(y)h(its)g(p)q(ort)f(n)o(um)
o(b)q(er,)i(suc)o(h)f(as)g(\\1234".)37 b(If)22 b(the)g(user)g(sp)q
(eci\014ed)i(a)d(name)-32 46 y Fk(1)-32 103 y(2)-32 159
y(3)-32 215 y(4)-32 272 y(5)-32 328 y(6)-32 385 y(7)-32
441 y(8)-32 498 y(9)-40 554 y(10)-40 611 y(11)-40 667
y(12)-40 724 y(13)-40 780 y(14)-40 836 y(15)-40 893 y(16)-40
949 y(17)-40 1006 y(18)-40 1062 y(19)-40 1119 y(20)-40
1175 y(21)-40 1232 y(22)-40 1288 y(23)-40 1345 y(24)-40
1401 y(25)-40 1457 y(26)-40 1514 y(27)-40 1570 y(28)-40
1627 y(29)-40 1683 y(30)-40 1740 y(31)-40 1796 y(32)-40
1853 y(33)-40 1909 y(34)-40 1966 y(35)-40 2022 y(36)-40
2078 y(37)-40 2135 y(38)-40 2191 y(39)-40 2248 y(40)-40
2304 y(41)-40 2361 y(42)-40 2417 y(43)-40 2474 y(44)-40
2530 y(45)-40 2587 y(46)-40 2643 y(47)-40 2699 y(48)p
eop
%%Page: 22 24
22 23 bop 75 -100 a Ft(22)928 b Fn(CHAPTER)16 b(3.)34
b(D)o(YNAMIC)15 b(PR)o(OCESSES)75 45 y Ft(that)g(could)h(not)f(b)q(e)i
(obtained)f(b)o(y)f(the)h(system,)e(the)i(implemen)o(tation)h(w)o(ould)
f(return)f(an)g(error.)21 b(An-)75 102 y(other)g(v)m(alid)h(implemen)o
(tation,)i(as)c(long)h(as)g(it)g(w)o(ere)g(do)q(cumen)o(ted,)i(w)o
(ould)e(b)q(e)h(to)e(silen)o(tly)j(ignore)75 158 y(the)c(user's)f
(request)h(and)g(return)g(a)f(di\013eren)o(t)i(p)q(ort)e(n)o(um)o(b)q
(er.)31 b(Finally)l(,)21 b(an)e(implemen)o(tation)h(could)75
214 y(also)e(c)o(ho)q(ose)g(to)f(lo)q(ok)i(for)e(other)h(information)g
(in)h(the)f Fp(requested)p 1237 214 14 2 v 19 w(name)p
Ft(.)28 b(F)l(or)17 b(instance,)j(a)d(name)h(of)75 271
y(\\p)q(ort=fo)q(o,authen)o(tication=k)o(erb)q(eros")h(could)h(tell)g
(the)f(implemen)o(tation)i(to)d(use)h(p)q(ort)g(1445)f(\(the)75
327 y(\\fo)q(o")h(p)q(ort)g(as)h(sp)q(eci\014ed)i(in)e(/etc/services\))
g(and)g(to)f(use)h(an)g(authen)o(tication)g(proto)q(col)g(based)g(on)75
384 y(k)o(erb)q(eros)d(to)f(v)o(erify)h(that)f(incoming)i(connections)f
(come)g(from)f(the)h(same)f(user.)25 b(Alternativ)o(ely)l(,)18
b(the)75 440 y(implemen)o(tation)13 b(could)g(automatically)f(authen)o
(ticate)f(all)i(connections)g(with)f(a)f(k)o(erb)q(eros-based)h(pro-)75
497 y(to)q(col.)166 553 y(In)g(an)o(y)f(case,)g(no)g(matter)f(what)h
(the)g Fp(requested)p 975 553 V 19 w(name)g Ft(supplied)i(b)o(y)e(the)h
(user,)g(the)f Fp(name)g Ft(returned)75 610 y(b)o(y)16
b Fp(MPI)p 224 610 V 15 w(LISTEN)g Ft(will)h(b)q(e)g(of)e(the)h(form)f
(\\host:p)q(ort".)20 b(This)c(name)g(m)o(ust)f(b)q(e)h(supplied)i(in)f
(the)f(clien)o(t)75 666 y(to)f Fp(MPI)p 216 666 V 15
w(CONNECT)p Ft(.)166 805 y Fh(Discussion:)k Fg(There)e(is)f(a)g(small,)
e(but)i(hop)q(efully)f(not)h(imp)q(ortan)o(t)e(hole)h(here.)26
b(>F)m(rom)13 b(the)k(implemen-)75 862 y(tation's)i(p)q(oin)o(t)g(of)g
(view,)i(\\telnet")f(and)f(\\23")g(are)h(the)h(same)d(thing.)35
b(So)20 b(supp)q(ose)h Fa(MPI)p 1574 862 13 2 v 14 w(LISTEN)f
Fg(returns)75 918 y(\\dop)q(ey:23".)e(Is)c(it)g(legal)f(for)h(the)h
(clien)o(t)f(to)g(supply)h(\\dop)q(ey:telnet"?)k(This)14
b(w)o(ould)f(mak)o(e)g(things)h(p)q(oten)o(tially)75
975 y(easier,)g(but)g(strictly)g(sp)q(eaking)g(is)g(not)g(allo)o(w)o
(ed)e(b)o(y)i(the)h(sp)q(eci\014cation.)75 1178 y Fm(3.4.5)49
b(Nameserver)15 b(I)75 1264 y Ft(The)f(goal)f(here)h(is)g(that)f(the)h
Fp(name)f Ft(returned)h(b)o(y)g Fp(MPI)p 1021 1264 14
2 v 16 w(LISTEN)f Ft(is)h(the)g(same)f(as)g(the)h Fp(requested)p
1745 1264 V 19 w(name)p Ft(.)75 1321 y(This)i(allo)o(ws)f(a)g(clien)o
(t)h(to)f(\\guess")g(the)g(name)g(to)g(use)g(without)g(an)o(y)g
(hassle.)166 1377 y(So)g(o)q(cean)h(do)q(es)f(the)g(follo)o(wing:)123
1479 y Fl(MPI_LISTEN\(``ocean'',)21 b(name\);)123 1536
y(/*)i(at)h(this)f(point)g(name)h(==)f(``ocean'')g(*/)123
1592 y(MPI_ACCEPT\(MPI_COMM_SELF)o(,)e(0,)j(name,)f(newcomm\))166
1694 y Ft(A)o(tmos)14 b(do)q(es:)123 1785 y Fl(MPI_CONNECT\(...,)21
b(``ocean'',)i(...\))166 1876 y Ft(Behind)17 b(the)e(scenes,)h(this)f
(is)h(what's)e(happ)q(ening:)166 1932 y(In)i(the)g Fp(MPI)p
387 1932 V 15 w(LISTEN)g Ft(call,)g(MPI)g(gets)f(a)g(p)q(ort.)20
b(It)c(tells)h(a)e(third)h(part)o(y)e(\(nameserv)o(er\))h(that)g(the)75
1989 y(name)g(\\o)q(cean")g(should)h(b)q(e)g(asso)q(ciated)g(with)f
(the)g(address)h(hostname:p)q(ort)e(that)g(it)i(just)f(obtained.)166
2045 y(The)f Fp(MPI)p 343 2045 V 15 w(CONNECT)h Ft(call)f(asks)f(the)h
(name)f(serv)o(er)g(for)g(an)h(address)f(asso)q(ciated)h(with)f(the)h
(name)75 2101 y(\\o)q(cean")h(and)g(is)h(giv)o(en)g(the)f(hostname:p)q
(ort)f(stored)h(there)g(b)o(y)g(the)h(serv)o(er.)75 2223
y Fm(3.4.6)49 b(Nameserver)15 b(2)75 2308 y Ft(The)i(previous)g
(example)g(is)g(all)g(\014ne)g(and)g(go)q(o)q(d)f(if)h(someho)o(w)e
(the)i(system)f(guaran)o(tees)f(that)h(there)g(is)75
2365 y(only)j(one)f(\\o)q(cean")g(at)f(a)h(time.)29 b(F)l(or)17
b(instance,)j(the)e(name)g(ma)o(y)f(b)q(e)i(scop)q(ed)g(to)f(a)f
(particular)i(user,)75 2421 y(so)f(that)g(the)h(name)g(\\o)q(cean")f
(for)h(user)f(\\w)o(cs")g(w)o(ould)h(b)q(e)h(asso)q(ciated)f(with)g(a)f
(di\013eren)o(t)h(p)q(ort)g(from)75 2478 y(the)c(name)f(\\o)q(cean")h
(for)f(the)h(user)f(\\lusk".)20 b(Another)15 b(p)q(ossibilit)o(y)l(,)i
(in)e(an)g(en)o(vironmen)o(t)g(with)g(a)f(batc)o(h)75
2534 y(queueing)j(system,)d(w)o(ould)i(b)q(e)f(that)g(the)g(name)g(w)o
(ould)h(b)q(e)g(lo)q(cal)g(to)f(a)f(job.)20 b(In)c(either)g(case,)f(a)f
(second)75 2591 y(instance)i(of)f(\\o)q(cean")g(with)g(the)h(same)e
(scop)q(e)i(could)g(not)f(exist.)166 2647 y(Ho)o(w)o(ev)o(er,)f(it)j
(is)f(also)g(p)q(ossible)h(to)e(imagine)i(an)f(en)o(vironmen)o(t)g
(with)g(m)o(ultiple)h(users)f(and)g(global)75 2704 y(name)h(scop)q(e.)
25 b(In)17 b(this)h(case,)e(w)o(e'd)h(need)g(some)g(w)o(a)o(y)f(to)g
(distinguish)j(b)q(et)o(w)o(een)e(\\o)q(cean"s)f(b)q(elonging)1967
46 y Fk(1)1967 103 y(2)1967 159 y(3)1967 215 y(4)1967
272 y(5)1967 328 y(6)1967 385 y(7)1967 441 y(8)1967 498
y(9)1959 554 y(10)1959 611 y(11)1959 667 y(12)1959 724
y(13)1959 780 y(14)1959 836 y(15)1959 893 y(16)1959 949
y(17)1959 1006 y(18)1959 1062 y(19)1959 1119 y(20)1959
1175 y(21)1959 1232 y(22)1959 1288 y(23)1959 1345 y(24)1959
1401 y(25)1959 1457 y(26)1959 1514 y(27)1959 1570 y(28)1959
1627 y(29)1959 1683 y(30)1959 1740 y(31)1959 1796 y(32)1959
1853 y(33)1959 1909 y(34)1959 1966 y(35)1959 2022 y(36)1959
2078 y(37)1959 2135 y(38)1959 2191 y(39)1959 2248 y(40)1959
2304 y(41)1959 2361 y(42)1959 2417 y(43)1959 2474 y(44)1959
2530 y(45)1959 2587 y(46)1959 2643 y(47)1959 2699 y(48)p
eop
%%Page: 23 25
23 24 bop 75 -100 a Fn(3.5.)29 b(EXAMPLES)1398 b Ft(23)75
45 y(to)18 b(di\013eren)o(t)i(users.)31 b(So)19 b Fp(MPI)p
613 45 14 2 v 16 w(LISTEN)f Ft(migh)o(t)h(return)g(\\o)q(cean1")f(for)h
(the)g(user)g(and)g(\\o)q(cean2")g(for)75 102 y(the)e(second)g(user.)24
b(These)17 b(names)f(w)o(ould)h(of)f(course)h(b)q(e)g(determined)h
(after)e(some)g(negotiation)h(with)75 158 y(a)i(serv)o(er.)34
b(The)20 b(clien)o(t)h(w)o(ould)f(therefore)f(kno)o(w)h(most)f(of)g
(the)h(name)g(but)g(not)f(all)i(of)e(it.)34 b(But)20
b(the)75 214 y(asso)q(ciation)c(of)g(a)f(name)h(with)g(a)g(p)q
(ort/hostname)f(address)g(w)o(ould)i(b)q(e)f(p)q(erformed)g(b)o(y)g(a)f
(third)i(part)o(y)75 271 y(serv)o(er.)166 327 y(In)j(some)g(sense,)h
(this)f(functionalit)o(y)h(is)f(no)g(b)q(etter)g(than)g(without)f(a)h
(nameserv)o(er,)g(though)g(it)75 384 y(migh)o(t)15 b(mak)o(e)g(things)g
(a)g(bit)h(simpler)g(to)f(handle.)166 440 y(F)l(or)k(the)h(non)o(blo)q
(c)o(king)i(calls)f Fp(MPI)p 784 440 V 15 w(ICONNECT)g
Ft(and)f Fp(MPI)p 1221 440 V 16 w(IA)o(CCEPT)p Ft(,)f
Fp(new)o(comm)g Ft(is)h(up)q(dated)75 497 y(async)o(hronously)c(and)f
(is)h(not)e(v)m(alid)j(un)o(til)g(the)e(request)g(completes.)166
553 y(The)f(status)f(ob)s(ject)h(returned)g(b)o(y)g Fp(MPI)p
858 553 V 16 w(W)l(AIT)g Ft(con)o(tains)g(an)g(error)f(co)q(de)h
(indicating)i(whether)e(or)75 610 y(not)h(the)h(accept/connect)g(w)o
(as)f(successful.)23 b(If)16 b(the)g(request)g(w)o(as)e(not)i
(successful,)h Fp(new)o(comm)d Ft(will)j(b)q(e)75 666
y(a)e(\\half-empt)o(y")g(comm)o(unicator,)f(with)i(a)f(remote)f(group)h
(of)g(size)h(zero.)166 723 y(The)f(follo)o(wing)h(accessor)f(function)h
(retriev)o(es)f(the)h(error)e(co)q(de)i(from)f(the)g(status.)75
874 y Fp(MPI)p 160 874 V 16 w(GET)p 264 874 V 17 w(ERRORCODE\(status,)j
(errco)q(de\))117 951 y Fg(IN)155 b Fp(status)476 b Fg(Status)15
b(ob)r(ject)f(returned)i(for)d(a)h(accept/connect)i(call)d(after)905
1007 y(W)m(ait/T)m(est/etc.)117 1082 y(OUT)108 b Fp(errco)q(de)448
b Fg(Error)15 b(co)q(de)g(for)e(the)i(spa)o(wn)e(call)166
1207 y Ft(A)h(collectiv)o(e)i(request)f(pro)q(duced)g(b)o(y)g
Fp(MPI)p 913 1207 V 15 w(ICONNECT)g Ft(cannot)g(b)q(e)g(cancelled.)22
b(An)14 b(attempt)g(to)75 1263 y(cancel)i(it)g(will)h(return)e(an)g
(error)f(co)q(de)i(of)f(class)h Fp(MPI)p 1005 1263 V
15 w(ERR)p 1105 1263 V 18 w(REQUEST)p Ft(.)166 1320 y(A)11
b(collectiv)o(e)h(request)f(pro)q(duced)g(b)o(y)g Fp(MPI)p
894 1320 V 16 w(IA)o(CCEPT)f Ft(ma)o(y)g(b)q(e)h(cancelled.)21
b(The)11 b(cancel)h(op)q(eration)75 1376 y(is)19 b(collectiv)o(e)h(o)o
(v)o(er)d(the)h(calling)i(group.)28 b(If)19 b(a)e(connection)i(has)f(b)
q(een)i(partially)f(established,)h(it)e(will)75 1433
y(either)i(complete)f(or)g(fail.)31 b(If)20 b(it)f(fails,)h(the)f
(corresp)q(onding)h Fp(MPI)p 1242 1433 V 16 w(CONNECT)f
Ft(will)i(return)e(with)g(an)75 1489 y(error.)189 1595
y Fj(R)n(ationale.)39 b Ft(A)15 b(serv)o(er)g(ma)o(y)f(p)q(ost)h(man)o
(y)f(accept)h(calls)h(so)f(that)f(clien)o(t)i(connections)g(don't)e
(fail)189 1652 y(or)e(hang.)19 b(When)13 b(the)g(game)g(is)g(o)o(v)o
(er,)f(it)h(ma)o(y)g(ha)o(v)o(e)f(some)h(lying)h(around)f(that)f(it)h
(needs)h(to)e(clean)189 1708 y(up.)20 b(\()p Fj(End)c(of)g(r)n
(ationale.)p Ft(\))75 1851 y Fq(3.5)59 b(Examples)75
1953 y Fp(Manager-w)o(o)o(rk)o(er)13 b(example,)i(using)h(SP)l(A)-5
b(WN.)75 2047 y Fl(/*)24 b(manager)e(*/)75 2103 y(#include)h(<mpi.h>)75
2160 y(main\(int,)g(argc,)g(char)g(*arg[]\))75 2216 y({)147
2273 y(MPI_Status)f(status;)147 2329 y(int)h(world_size)147
2385 y(MPI_Comm)f(everyone;)262 b(/*)23 b(intercommunicator)f(*/)147
2498 y(MPI_Init\(&argc,)f(&argv\);)147 2555 y(MPI_Comm_size\(MPI_COMM_)
o(WORLD,)f(&world_size\);)147 2611 y(if)j(\(world_size)g(!=)g(1\))191
b(error\("Top)22 b(heavy)h(with)h(management"\);)147
2668 y(if)f(\(MPI_UNIVERSE_SIZE)f(==)h(1\))h(error\("No)e(room)i(to)f
(start)g(workers"\);)-32 46 y Fk(1)-32 103 y(2)-32 159
y(3)-32 215 y(4)-32 272 y(5)-32 328 y(6)-32 385 y(7)-32
441 y(8)-32 498 y(9)-40 554 y(10)-40 611 y(11)-40 667
y(12)-40 724 y(13)-40 780 y(14)-40 836 y(15)-40 893 y(16)-40
949 y(17)-40 1006 y(18)-40 1062 y(19)-40 1119 y(20)-40
1175 y(21)-40 1232 y(22)-40 1288 y(23)-40 1345 y(24)-40
1401 y(25)-40 1457 y(26)-40 1514 y(27)-40 1570 y(28)-40
1627 y(29)-40 1683 y(30)-40 1740 y(31)-40 1796 y(32)-40
1853 y(33)-40 1909 y(34)-40 1966 y(35)-40 2022 y(36)-40
2078 y(37)-40 2135 y(38)-40 2191 y(39)-40 2248 y(40)-40
2304 y(41)-40 2361 y(42)-40 2417 y(43)-40 2474 y(44)-40
2530 y(45)-40 2587 y(46)-40 2643 y(47)-40 2699 y(48)p
eop
%%Page: 24 26
24 25 bop 75 -100 a Ft(24)933 b Fn(CHAPTER)16 b(3.)29
b(D)o(YNAMIC)15 b(PR)o(OCESSES)147 102 y Fl(MPI_Spawn\("worker",)21
b(count-1,)i(NULL,)g(0,)g(0,)h(MPI_COMM_SELF,)e(&everyone,)g(NULL\);)
147 214 y(/*)170 271 y(*)i(Parallel)f(code)g(here.)g(The)h
(communicator)e("everyone")h(can)g(be)h(used)170 327
y(*)g(to)g(communicate)e(with)h(the)h(spawned)f(processes,)f(which)h
(have)h(ranks)f(0,..)170 384 y(*)h(MPI_UNIVERSE_SIZE-1)d(in)j(the)f
(remote)h(group)f(of)g(the)h(intercommunicator)170 440
y(*)g("everyone".)170 497 y(*/)147 610 y(MPI_Finalize\(\);)75
666 y(})75 779 y(/*)g(worker)f(*/)75 892 y(#include)g(<mpi.h>)75
948 y(main\(int)g(argc,)g(char)g(*argv[]\))75 1005 y({)147
1061 y(MPI_Comm)f(myboss;)147 1118 y(MPI_Init\(&argc,)f(&argv\);)147
1231 y(MPI_Parent\(&myboss\);)147 1344 y(/*)170 1400
y(*)j(Parallel)f(code)g(here.)170 1456 y(*)h(The)g(manager)f(is)g
(represented)f(as)i(the)g(process)e(with)i(rank)f(0)h(in)f(\(the)h
(remote)170 1513 y(*)g(group)f(of\))h(``myboss''.)46
b(If)24 b(the)f(workers)g(need)g(to)h(communicate)e(among)170
1569 y(*)i(themselves,)f(they)g(can)g(either)g(extract)g(the)h(local)f
(group)g(of)h(the)170 1626 y(*)g(intercommunicator)e(MPI_COMM_PARENT,)f
(or)j(use)f(MPI_COMM_WORLD.)46 b(They)170 1682 y(*)24
b(should)f(be)h(the)f(same.)170 1739 y(*/)147 1852 y(MPI_Finalize\(\);)
75 1908 y(})75 2141 y Fp(T)l(ask)15 b(fa)o(rm)e(example.)44
b Ft(This)16 b(example)f(sho)o(ws)f(ho)o(w)g(to)g(manage)g(a)g(set)g
(of)g(non-MPI)h(pro)q(cesses.)20 b(Note)75 2198 y(that)c(all)h(groups)g
(con)o(tain)f(a)h(single)g(pro)q(cess)g(b)q(ecause)h(it)f(w)o(ould)g(b)
q(e)g(a)f(mess)h(otherwise.)24 b(This)17 b(could)75 2254
y(b)q(e)d(\\impro)o(v)o(ed")f(b)o(y)g(using)i Fp(MPI)p
641 2254 14 2 v 15 w(SP)l(A)-5 b(WN)p 806 2254 V 18 w(MUL)l(TIPLE)p
1041 2254 V 15 w(INDEPENDENT)14 b Ft(but)f(this)h(w)o(ould)g(also)f
(mak)o(e)75 2310 y(group)i(managemen)o(t)f(di\016cult.)75
2417 y Fl(#include)23 b(<mpi.h>)75 2473 y(#define)g(MAXPROC)g(1000)75
2530 y(main\(int)g(argc,)g(char)g(*argv[]\))75 2586 y({)147
2643 y(MPI_Group)f(workers[MAXPROC];)147 2699 y(MPI_Request)g
(obituaries[MAXPROC];)1967 46 y Fk(1)1967 103 y(2)1967
159 y(3)1967 215 y(4)1967 272 y(5)1967 328 y(6)1967 385
y(7)1967 441 y(8)1967 498 y(9)1959 554 y(10)1959 611
y(11)1959 667 y(12)1959 724 y(13)1959 780 y(14)1959 836
y(15)1959 893 y(16)1959 949 y(17)1959 1006 y(18)1959
1062 y(19)1959 1119 y(20)1959 1175 y(21)1959 1232 y(22)1959
1288 y(23)1959 1345 y(24)1959 1401 y(25)1959 1457 y(26)1959
1514 y(27)1959 1570 y(28)1959 1627 y(29)1959 1683 y(30)1959
1740 y(31)1959 1796 y(32)1959 1853 y(33)1959 1909 y(34)1959
1966 y(35)1959 2022 y(36)1959 2078 y(37)1959 2135 y(38)1959
2191 y(39)1959 2248 y(40)1959 2304 y(41)1959 2361 y(42)1959
2417 y(43)1959 2474 y(44)1959 2530 y(45)1959 2587 y(46)1959
2643 y(47)1959 2699 y(48)p eop
%%Page: 25 27
25 26 bop 75 -100 a Fn(3.5.)29 b(EXAMPLES)1398 b Ft(25)147
45 y Fl(int)23 b(nslots,)g(i,)h(deadone;)147 102 y(char)f(*args;)147
158 y(char)g(command_lines[MAXLEN];)147 271 y(ThingToDo)f(*thingstodo;)
147 327 y(int)h(nthingstodo,)f(nthingsdone;)147 440 y(MPI_Init\(&argc,)
f(&argv\);)147 497 y(nslots)i(=)g(MPI_UNIVERSE_SIZE)f(-)i(1;)f(//)h
(assume)f(only)g(one)h(copy)f(of)h(me!)147 553 y
(GetThingsToDo\(&thingsto)o(do,)d(nthingstodo\);)147
666 y(/*)i(need)g(to)h(initialize)f(these)g(for)g(Waitany/all\(\))f
(below)h(to)h(work)f(*/)147 723 y(for)g(\(i)h(=)f(0;)h(i)g(<)f
(MAXPROC;)g(i++\))g(obituaries[i])g(=)g(MPI_REQUEST_NULL;)147
835 y(/*)g(start)g(up)h(initial)f(set)g(of)h(tasks)f(*/)147
892 y(for)g(\(i)h(=)f(0;)h(i)g(<)f(nslots)g(&&)h(i)g(<)f(nthingstodo;)g
(i++\))147 948 y({)218 1005 y(//)h(we)f(want)h(to)f(run)h(the)f
(command)g("cow")g(with)h(some)f(special)g(args)218 1061
y(SetArgs\(thingstodo[i],)e(&args\);)218 1118 y(sprintf\(command_line,)
g("cow)i(\045s",)h(args\);)218 1174 y(MPI_Spawn_independent\(comma)o
(nd_line,)c(1,)k(NULL,)f(0,)h(0,)743 1231 y(MPI_COMM_SELF,)e
(&workers[i],)g(NULL\))218 1287 y(MPI_Notify\(MPI_NOTIFY_EXIT,)e
(&workers[i],)j(&obituaries[i]\);)147 1344 y(})147 1400
y(nthingsdone=i;)147 1513 y(/*)g(spawn)g(new)h(ones)f(as)h(old)f(ones)g
(finish)h(*/)147 1569 y(while\(nthingsdone)d(<)j(nthingstodo\))147
1626 y({)218 1682 y(MPI_Waitany\(nslots,)d(obituaries,)i(&deadone,)f
(NULL\);)218 1739 y(SetArgs\(thingstodo[nthingsd)o(one],)f(&args\);)218
1795 y(sprintf\(command_lines[0],)g("cow)i(\045s",)g(args\))218
1852 y(MPI_Spawn_independent\(comma)o(nd_line,)d(1,)k(NULL,)f(0,)h(0,)
743 1908 y(MPI_COMM_SELF,)e(&workers[deadone],)g(NULL\);)218
1965 y(MPI_Notify\(MPI_NOTIFY_EXIT,)e(&workers[deadone],)i
(&obituaries[nthingsdone])o(\);)147 2021 y(})147 2077
y(MPI_Waitall\(nslots,)f(obituaries,)h(NULL\);)147 2190
y(MPI_Finalize\(\);)75 2247 y(})75 2423 y Fp(PVM-st)o(yle)16
b(SPMD)f(example)45 b Ft(This)16 b(is)g(ho)o(w)f(man)o(y)f(PVM)h
(programs)f(are)h(t)o(ypically)i(written.)j(There)75
2480 y(is)f(no)g(reason)f(they)h(can't)f(b)q(e)h(done)g(with)g(MPI-1)g
(\(except)f(for)g(p)q(erformance!\),)h(but)g(in)g(case)g(users)75
2536 y(w)o(an)o(t)e(the)i(app)q(earance)f(of)g(minimal)i(c)o(hange,)f
(here)g(is)f(is.)30 b(\(V)l(ery)18 b(similar)i(to)d(the)i(manager-w)o
(ork)o(er)75 2593 y(example)d(ab)q(o)o(v)o(e.\))75 2699
y Fl(/*)24 b(myprog)f(*/)-32 46 y Fk(1)-32 103 y(2)-32
159 y(3)-32 215 y(4)-32 272 y(5)-32 328 y(6)-32 385 y(7)-32
441 y(8)-32 498 y(9)-40 554 y(10)-40 611 y(11)-40 667
y(12)-40 724 y(13)-40 780 y(14)-40 836 y(15)-40 893 y(16)-40
949 y(17)-40 1006 y(18)-40 1062 y(19)-40 1119 y(20)-40
1175 y(21)-40 1232 y(22)-40 1288 y(23)-40 1345 y(24)-40
1401 y(25)-40 1457 y(26)-40 1514 y(27)-40 1570 y(28)-40
1627 y(29)-40 1683 y(30)-40 1740 y(31)-40 1796 y(32)-40
1853 y(33)-40 1909 y(34)-40 1966 y(35)-40 2022 y(36)-40
2078 y(37)-40 2135 y(38)-40 2191 y(39)-40 2248 y(40)-40
2304 y(41)-40 2361 y(42)-40 2417 y(43)-40 2474 y(44)-40
2530 y(45)-40 2587 y(46)-40 2643 y(47)-40 2699 y(48)p
eop
%%Page: 26 28
26 27 bop 75 -100 a Ft(26)933 b Fn(CHAPTER)16 b(3.)29
b(D)o(YNAMIC)15 b(PR)o(OCESSES)75 102 y Fl(#include)23
b(<mpi.h>)75 158 y(main\(int)g(argc,)g(char)g(*argv[]\))75
214 y({)147 271 y(MPI_Comm)f(everyone;)238 b(/*)23 b(intercommunicator)
f(*/)147 327 y(MPI_Comm)g(new_world;)214 b(/*)23 b(corresponding)f
(intracommunicator)g(*/)147 384 y(MPI_Comm)g(myparent;)147
497 y(MPI_Init\(&argc,)f(&argv\);)147 610 y(MPI_Parent\(myparent\);)147
666 y(if)i(\(myparent)g(==)g(MPI_COMM_NULL\))46 b(/*)24
b(I'm)f(the)h(parent)f(*/)147 723 y({)218 779 y(MPI_Spawn\("myproc",)e
(count-1,)i(NULL,)g(0,)h(0,)g(MPI_COMM_SELF,)e(&everyone,)g(NULL\);)218
835 y(MPI_Intercomm_merge\(everyon)o(e,)f(FALSE,)i(&new_world\);)147
892 y(})147 948 y(else)218 1005 y(MPI_Intercomm_merge\(myparen)o(t,)e
(TRUE,)i(&new_world\);)170 1118 y(/*)h(SPMD)f(parallel)g(code)g(here,)h
(using)f(new_world)f(instead)h(of)h(MPI_COMM_WORLD)e(*/)170
1231 y(MPI_Finalize\(\);)75 1287 y(})75 1464 y Fp(Simple)e
(client-server)i(example.)44 b Ft(This)21 b(is)g(a)g(simple)h(example;)
h(the)e(serv)o(er)f(accepts)g(only)h(a)g(single)75 1520
y(connection)14 b(at)d(a)i(time)g(and)f(serv)o(es)h(that)e(connection)j
(un)o(til)g(the)e(clien)o(t)i(requests)f(to)e(b)q(e)j(disconnected.)75
1577 y(This)i(is)f(written)h(to)e(matc)o(h)h(Prop)q(osal)g(2,)g(in)h
(whic)o(h)g(the)f(in)o(ternal)h(name)f(is)h(explicit.)166
1633 y(Here)21 b(is)h(the)g(serv)o(er.)38 b(It)21 b(accepts)h(a)f
(single)h(connection)h(and)e(then)h(pro)q(cesses)g(data)e(un)o(til)j
(it)75 1689 y(receiv)o(es)16 b(a)f(message)g(with)g(tag)f
Fl(1)p Ft(.)20 b(A)15 b(message)g(with)h(tag)e Fl(0)h
Ft(tells)h(the)g(serv)o(er)e(to)h(exit.)75 1783 y Fl(#include)23
b("mpi.h")75 1840 y(main\()g(int)h(argc,)f(char)g(**argv)g(\))75
1896 y({)170 1953 y(MPI_Comm)g(client;)170 2009 y(MPI_Status)g(status;)
170 2066 y(double)g(buf[MAX_DATA];)170 2122 y(char)71
b(internal_name[MAX_NAME_SIZE],)20 b(published_name[MAX_NAME_SIZE])o(;)
170 2178 y(int)95 b(again;)170 2291 y(MPI_Init\()23 b(&argc,)g(&argv)g
(\);)170 2348 y(MPI_Get_published_name\("cavew)o(and",pub)o(lished_)o
(name,in)o(ternal_n)o(ame\);)170 2404 y(printf\("cavewand)f(server)h
(available)g(at)g(\045s\\n",published_name\);)e(/*)j(publish)f(name)g
(*/)170 2461 y(while)h(\(1\))f({)266 2517 y(MPI_Accept\()f
(MPI_COMM_WORLD,)g(0,)i(internal_name,)e(&client)h(\);)266
2574 y(again)g(=)h(1;)266 2630 y(while)f(\(again\))g({)361
2687 y(MPI_Recv\()g(buf,)g(MAX_DATA,)g(MPI_DOUBLE,)f(MPI_ANY_SOURCE,)g
(MPI_ANY_TAG,)1967 46 y Fk(1)1967 103 y(2)1967 159 y(3)1967
215 y(4)1967 272 y(5)1967 328 y(6)1967 385 y(7)1967 441
y(8)1967 498 y(9)1959 554 y(10)1959 611 y(11)1959 667
y(12)1959 724 y(13)1959 780 y(14)1959 836 y(15)1959 893
y(16)1959 949 y(17)1959 1006 y(18)1959 1062 y(19)1959
1119 y(20)1959 1175 y(21)1959 1232 y(22)1959 1288 y(23)1959
1345 y(24)1959 1401 y(25)1959 1457 y(26)1959 1514 y(27)1959
1570 y(28)1959 1627 y(29)1959 1683 y(30)1959 1740 y(31)1959
1796 y(32)1959 1853 y(33)1959 1909 y(34)1959 1966 y(35)1959
2022 y(36)1959 2078 y(37)1959 2135 y(38)1959 2191 y(39)1959
2248 y(40)1959 2304 y(41)1959 2361 y(42)1959 2417 y(43)1959
2474 y(44)1959 2530 y(45)1959 2587 y(46)1959 2643 y(47)1959
2699 y(48)p eop
%%Page: 27 29
27 28 bop 75 -100 a Fn(3.5.)34 b(EXAMPLES)1393 b Ft(27)600
45 y Fl(client,)23 b(&status)g(\);)361 102 y(switch)g(\(status.tag\))g
({)457 158 y(case)g(0:)h(MPI_Comm_free\()e(&client)h(\);)648
214 y(MPI_Finalize\(\);)648 271 y(return)g(0;)457 327
y(case)g(1:)h(MPI_Comm_free\()e(&client)h(\);)648 384
y(again)g(=)h(0;)648 440 y(break;)457 497 y(case)f(2:)h(/*)f(do)h
(something)f(*/)457 553 y(...)457 610 y(default:)648
666 y(MPI_Abort\()f(MPI_COMM_WORLD,)g("Unexpected)g(message)h(type")g
(\);)457 723 y(})361 779 y(})266 835 y(})75 892 y(})166
986 y Ft(Here)15 b(is)h(the)f(clien)o(t.)75 1092 y Fl(#include)23
b("mpi.h")75 1148 y(main\()g(int)h(argc,)f(char)g(**argv)g(\))75
1205 y({)170 1261 y(MPI_Comm)g(server;)170 1318 y(double)g
(buf[MAX_DATA];)170 1374 y(char)h(published_name[MAX_NAME_)o(SIZE],)d
(internal_name[MAX_NAME_)o(SIZE];)170 1487 y(MPI_Init\()i(&argc,)g
(&argv)g(\);)170 1544 y(strcpy\(published_name,)e(argv[1])i(\);/*)h
(assume)f(server's)f(name)i(is)f(cmd-line)g(arg)g(*/)170
1657 y(MPI_Internal_name_get\()e(published_name,)h(internal_name)g(\);)
170 1713 y(MPI_Connect\()h(MPI_COMM_WORLD,)e(internal_name,)h(&server)h
(\);)170 1826 y(while)h(\(!done\))f({)266 1882 y(tag)g(=)h(2;)g(/*)f
(Action)g(to)h(perform)f(*/)266 1939 y(MPI_Send\()g(buf,)g(n,)g
(MPI_DOUBLE,)g(0,)g(tag,)h(server)f(\);)266 1995 y(/*)g(etc)h(*/)266
2052 y(})170 2108 y(MPI_Send\()f(buf,)g(0,)h(MPI_DOUBLE,)e(0,)i(1,)g
(server)f(\);)170 2165 y(MPI_Comm_free\()f(&server)h(\);)170
2221 y(MPI_Finalize\(\);)75 2278 y(})166 2384 y Ft(If)17
b(the)g(serv)o(er)f(needs)i(to)e(manage)g(m)o(ultiple)i(connections)g
(at)e(once,)h(it)g(can)g(use)g Fp(MPI)p 1675 2384 14
2 v 16 w(IA)o(CCEPT)75 2440 y Ft(instead.)j(The)c(clien)o(t)g(need)g
(not)f(b)q(e)h(c)o(hanged.)75 2560 y Fp(Elab)q(o)o(rate)g
(client-server)g(example.)45 b Ft(This)16 b(example)h(should)f(sho)o(w)
f(a)g(concurren)o(t)h(parallel)h(serv)o(er,)e(in)75 2617
y(whic)o(h)i(a)f(serv)o(er)g(spa)o(wns)g(a)g(set)h(of)f(pro)q(cesses)g
(to)g(clone)i(itself)f(to)f(manage)f(the)i(clien)o(t,)h(while)f(it)g
(go)q(es)75 2673 y(bac)o(k)j(in)o(to)g(iaccept)h(mo)q(de.)35
b(The)21 b(complicated)g(part)f(is)g(to)g(set)g(up)g(the)h(in)o
(tercomm)o(unicator)f(that)-32 46 y Fk(1)-32 103 y(2)-32
159 y(3)-32 215 y(4)-32 272 y(5)-32 328 y(6)-32 385 y(7)-32
441 y(8)-32 498 y(9)-40 554 y(10)-40 611 y(11)-40 667
y(12)-40 724 y(13)-40 780 y(14)-40 836 y(15)-40 893 y(16)-40
949 y(17)-40 1006 y(18)-40 1062 y(19)-40 1119 y(20)-40
1175 y(21)-40 1232 y(22)-40 1288 y(23)-40 1345 y(24)-40
1401 y(25)-40 1457 y(26)-40 1514 y(27)-40 1570 y(28)-40
1627 y(29)-40 1683 y(30)-40 1740 y(31)-40 1796 y(32)-40
1853 y(33)-40 1909 y(34)-40 1966 y(35)-40 2022 y(36)-40
2078 y(37)-40 2135 y(38)-40 2191 y(39)-40 2248 y(40)-40
2304 y(41)-40 2361 y(42)-40 2417 y(43)-40 2474 y(44)-40
2530 y(45)-40 2587 y(46)-40 2643 y(47)-40 2699 y(48)p
eop
%%Page: 28 30
28 29 bop 75 -100 a Ft(28)928 b Fn(CHAPTER)16 b(3.)34
b(D)o(YNAMIC)15 b(PR)o(OCESSES)75 45 y Ft(connects)h(the)f(clien)o(t)h
(with)g(the)f(clone)h(of)f(the)g(serv)o(er,)f(while)j(getting)e(the)g
(original)i(serv)o(er)d(out)h(of)g(the)75 102 y(w)o(a)o(y)l(.)1967
46 y Fk(1)1967 103 y(2)1967 159 y(3)1967 215 y(4)1967
272 y(5)1967 328 y(6)1967 385 y(7)1967 441 y(8)1967 498
y(9)1959 554 y(10)1959 611 y(11)1959 667 y(12)1959 724
y(13)1959 780 y(14)1959 836 y(15)1959 893 y(16)1959 949
y(17)1959 1006 y(18)1959 1062 y(19)1959 1119 y(20)1959
1175 y(21)1959 1232 y(22)1959 1288 y(23)1959 1345 y(24)1959
1401 y(25)1959 1457 y(26)1959 1514 y(27)1959 1570 y(28)1959
1627 y(29)1959 1683 y(30)1959 1740 y(31)1959 1796 y(32)1959
1853 y(33)1959 1909 y(34)1959 1966 y(35)1959 2022 y(36)1959
2078 y(37)1959 2135 y(38)1959 2191 y(39)1959 2248 y(40)1959
2304 y(41)1959 2361 y(42)1959 2417 y(43)1959 2474 y(44)1959
2530 y(45)1959 2587 y(46)1959 2643 y(47)1959 2699 y(48)p
eop
%%Page: 29 31
29 30 bop 75 377 a Fr(Biblio)q(graph)m(y)75 600 y Ft([1])22
b(Al)d(Geist,)g(Adam)f(Beguelin,)j(Jac)o(k)e(Dongarra,)e(W)l(eic)o
(heng)j(Jiang,)g(Bob)e(Manc)o(hek,)h(and)g(V)l(aidy)146
656 y(Sunderam.)g Fj(PVM:)c(Par)n(al)r(lel)g(Virtual)h(Machine|A)g
(User's)f(Guide)h(and)g(T)m(utorial)g(for)g(Network)146
713 y(Par)n(al)r(lel)f(Computing)p Ft(.)20 b(MIT)15 b(Press,)g(1994.)
952 2828 y(29)p eop
%%Trailer
end
userdict /end-hook known{end-hook}if
%%EOF