mpi-dynamic@mcs.anl.gov
To subscribe to that discussion group if you are not already subscribed, send
the message
subscribe mpi-dynamic
to
majordomo@mcs.anl.gov
Rusty
%!PS-Adobe-2.0
%%Creator: dvips 5.528 Copyright 1986, 1994 Radical Eye Software
%%Title: temp.dvi
%%CreationDate: Thu Jul 13 09:11:17 1995
%%Pages: 32
%%PageOrder: Ascend
%%BoundingBox: 0 0 612 792
%%EndComments
%DVIPSCommandLine: dvips -o temp.ps temp
%DVIPSParameters: dpi=300, comments removed
%DVIPSSource: TeX output 1995.07.13:0910
%%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
%%BeginProcSet: special.pro
TeXDict begin /SDict 200 dict N SDict begin /@SpecialDefaults{/hs 612 N
/vs 792 N /ho 0 N /vo 0 N /hsc 1 N /vsc 1 N /ang 0 N /CLIP 0 N /rwiSeen
false N /rhiSeen false N /letter{}N /note{}N /a4{}N /legal{}N}B
/@scaleunit 100 N /@hscale{@scaleunit div /hsc X}B /@vscale{@scaleunit
div /vsc X}B /@hsize{/hs X /CLIP 1 N}B /@vsize{/vs X /CLIP 1 N}B /@clip{
/CLIP 2 N}B /@hoffset{/ho X}B /@voffset{/vo X}B /@angle{/ang X}B /@rwi{
10 div /rwi X /rwiSeen true N}B /@rhi{10 div /rhi X /rhiSeen true N}B
/@llx{/llx X}B /@lly{/lly X}B /@urx{/urx X}B /@ury{/ury X}B /magscale
true def end /@MacSetUp{userdict /md known{userdict /md get type
/dicttype eq{userdict begin md length 10 add md maxlength ge{/md md dup
length 20 add dict copy def}if end md begin /letter{}N /note{}N /legal{}
N /od{txpose 1 0 mtx defaultmatrix dtransform S atan/pa X newpath
clippath mark{transform{itransform moveto}}{transform{itransform lineto}
}{6 -2 roll transform 6 -2 roll transform 6 -2 roll transform{
itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll curveto}}{{
closepath}}pathforall newpath counttomark array astore /gc xdf pop ct 39
0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}if}N
/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1 -1
scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3 get
ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip
not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub neg 0
TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{noflips{TR
pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop 90 rotate 1
-1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg
TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr 1 get neg
sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr 2 get ppr
0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4 -1 roll add
2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S TR}if}N /cp
{pop pop showpage pm restore}N end}if}if}N /normalscale{Resolution 72
div VResolution 72 div neg scale magscale{DVImag dup scale}if 0 setgray}
N /psfts{S 65781.76 div N}N /startTexFig{/psf$SavedState save N userdict
maxlength dict begin /magscale false def normalscale currentpoint TR
/psf$ury psfts /psf$urx psfts /psf$lly psfts /psf$llx psfts /psf$y psfts
/psf$x psfts currentpoint /psf$cy X /psf$cx X /psf$sx psf$x psf$urx
psf$llx sub div N /psf$sy psf$y psf$ury psf$lly sub div N psf$sx psf$sy
scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub TR
/showpage{}N /erasepage{}N /copypage{}N /p 3 def @MacSetUp}N /doclip{
psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2
roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath
moveto}N /endTexFig{end psf$SavedState restore}N /@beginspecial{SDict
begin /SpecialSave save N gsave normalscale currentpoint TR
@SpecialDefaults count /ocount X /dcount countdictstack N}N /@setspecial
{CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto
closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx
sub div rhiSeen{rhi ury lly sub div}{dup}ifelse scale llx neg lly neg TR
}{rhiSeen{rhi ury lly sub div dup scale llx neg lly neg TR}if}ifelse
CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury
lineto closepath clip}if /showpage{}N /erasepage{}N /copypage{}N newpath
}N /@endspecial{count ocount sub{pop}repeat countdictstack dcount sub{
end}repeat grestore SpecialSave restore end}N /@defspecial{SDict begin}
N /@fedspecial{end}B /li{lineto}B /rl{rlineto}B /rc{rcurveto}B /np{
/SaveX currentpoint /SaveY X N 1 setlinecap newpath}N /st{stroke SaveX
SaveY moveto}N /fil{fill SaveX SaveY moveto}N /ellipse{/endangle X
/startangle X /yrad X /xrad X /savematrix matrix currentmatrix N TR xrad
yrad scale 0 0 1 startangle endangle arc savematrix setmatrix}N end
%%EndProcSet
TeXDict begin 40258431 52099146 1000 300 300
(/tmp_mnt/Net/antireo/antireo6/lusk/mpi2/report2/temp.dvi)
@start /Fa 1 111 df<1E07802318C023A06043C0704380704380708700E00700E00700
E00700E00E01C00E01C00E01C00E03821C03841C07041C07081C03083803101801E01714
7E931B>110 D E /Fb 2 104 df<003C00E001C001800380038003800380038003800380
038003800380038003800380030007001C00F0001C000700030003800380038003800380
03800380038003800380038003800380018001C000E0003C0E297D9E15>102
D<F0001C0007000300038003800380038003800380038003800380038003800380038001
8001C000E0003C00E001C001800380038003800380038003800380038003800380038003
800380030007001C00F0000E297D9E15>I E /Fc 12 117 df<FFC0FFC0FFC00A037D89
0F>45 D<03CC063C0C3C181C3838303870387038E070E070E070E070E0E2C0E2C0E261E4
62643C380F127B9115>97 D<01F007080C08181C3838300070007000E000E000E000E000
E000E008E010602030C01F000E127B9113>99 D<001F8000038000038000070000070000
0700000700000E00000E00000E00000E0003DC00063C000C3C00181C0038380030380070
3800703800E07000E07000E07000E07000E0E200C0E200C0E20061E4006264003C380011
1D7B9C15>I<0003C0000670000C70001C60001C00001C00003800003800003800003800
00380003FF8000700000700000700000700000700000E00000E00000E00000E00000E000
01C00001C00001C00001C00001C000038000038000038000030000030000070000C60000
E60000CC00007800001425819C0D>102 D<0FC00001C00001C000038000038000038000
0380000700000700000700000700000E78000E8C000F0E000E0E001C0E001C0E001C0E00
1C0E00381C00381C00381C00383800703880703880707080707100E03200601C00111D7D
9C15>104 D<3C1E0780266318C04683A0E04703C0E08E0380E08E0380E00E0380E00E03
80E01C0701C01C0701C01C0701C01C070380380E0388380E0388380E0708380E0710701C
0320300C01C01D127C9122>109 D<3C3C002646004687004707008E07008E07000E0700
0E07001C0E001C0E001C0E001C1C00381C40381C40383840383880701900300E0012127C
9117>I<01E007180C0C180C380C300E700E700EE01CE01CE01CE018E038E030E06060C0
31801E000F127B9115>I<3C3C26C2468747078E068E000E000E001C001C001C001C0038
003800380038007000300010127C9112>114 D<01F006080C080C1C18181C001F001FC0
0FF007F0007800386030E030C030806060C01F000E127D9111>I<00C001C001C001C003
80038003800380FFE00700070007000E000E000E000E001C001C001C001C003840384038
40388019000E000B1A7D990E>I E /Fd 27 122 df<0000600000E00000E00001C00001
C0000380000380000380000700000700000700000E00000E00001C00001C00001C000038
0000380000380000700000700000E00000E00000E00001C00001C0000380000380000380
000700000700000700000E00000E00001C00001C00001C00003800003800003800007000
00700000E00000E00000C00000132D7DA11A>47 D<0000E000000000E000000001F00000
0001F000000001F000000003F800000003F800000006FC00000006FC0000000EFE000000
0C7E0000000C7E000000183F000000183F000000303F800000301F800000701FC0000060
0FC00000600FC00000C007E00000FFFFE00001FFFFF000018003F000018003F000030001
F800030001F800060001FC00060000FC000E0000FE00FFE00FFFE0FFE00FFFE0231F7E9E
28>65 D<FFFFFFE0FFFFFFE007E007E007E001E007E000E007E0006007E0007007E00030
07E0003007E0603007E0603007E0600007E0E00007E1E00007FFE00007FFE00007E1E000
07E0E00007E0600007E0600C07E0600C07E0000C07E0001807E0001807E0001807E00038
07E0007807E000F807E003F0FFFFFFF0FFFFFFF01E1F7E9E22>69
D<FFFFFFFF07E007E007E007E007E007E007E007E007E007E007E007E007E007E007E007
E007E007E007E007E007E007E007E007E007E007E007E0FFFFFFFF101F7E9E14>73
D<FFE000003FF8FFF000007FF807F000007F0006F80000DF0006F80000DF0006F80000DF
00067C00019F00067C00019F00063E00031F00063E00031F00061F00061F00061F00061F
00060F800C1F00060F800C1F000607C0181F000607C0181F000607C0181F000603E0301F
000603E0301F000601F0601F000601F0601F000600F8C01F000600F8C01F0006007D801F
0006007D801F0006003F001F0006003F001F0006003F001F0006001E001F00FFF01E03FF
F8FFF00C03FFF82D1F7E9E32>77 D<FFFFFE00FFFFFF8007E00FE007E003F007E001F807
E001F807E001FC07E001FC07E001FC07E001FC07E001FC07E001F807E001F807E003F007
E00FE007FFFF8007FFFE0007E0000007E0000007E0000007E0000007E0000007E0000007
E0000007E0000007E0000007E0000007E0000007E00000FFFF0000FFFF00001E1F7E9E24
>80 D<03FC080FFF381E03F83800F8700078700038F00038F00018F00018F80000FC0000
7FC0007FFE003FFF801FFFE00FFFF007FFF000FFF80007F80000FC00007C00003CC0003C
C0003CC0003CE00038E00078F80070FE01E0E7FFC081FF00161F7D9E1D>83
D<07FC001FFF003F0F803F07C03F03E03F03E00C03E00003E0007FE007FBE01F03E03C03
E07C03E0F803E0F803E0F803E0FC05E07E0DE03FF8FE0FE07E17147F9319>97
D<FF0000FF00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00
001F1FC01F7FF01FE0F81F807C1F007E1F003E1F003E1F003F1F003F1F003F1F003F1F00
3F1F003F1F003E1F003E1F007C1F807C1EC1F81C7FE0181F8018207E9F1D>I<01FE0007
FF801F0FC03E0FC03E0FC07C0FC07C0300FC0000FC0000FC0000FC0000FC0000FC00007C
00007E00003E00603F00C01F81C007FF0001FC0013147E9317>I<0007F80007F80000F8
0000F80000F80000F80000F80000F80000F80000F80000F80000F801F8F80FFEF81F83F8
3E01F87E00F87C00F87C00F8FC00F8FC00F8FC00F8FC00F8FC00F8FC00F87C00F87C00F8
7E00F83E01F81F07F80FFEFF03F8FF18207E9F1D>I<01FE0007FF800F83C01E01E03E00
F07C00F07C00F8FC00F8FFFFF8FFFFF8FC0000FC0000FC00007C00007C00003E00181E00
180F807007FFE000FF8015147F9318>I<FF0000FF00001F00001F00001F00001F00001F
00001F00001F00001F00001F00001F00001F0FC01F3FE01F61F01FC0F81F80F81F00F81F
00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F8FF
E3FFFFE3FF18207D9F1D>104 D<1C003E007F007F007F003E001C000000000000000000
00000000FF00FF001F001F001F001F001F001F001F001F001F001F001F001F001F001F00
1F001F00FFE0FFE00B217EA00E>I<FF0000FF00001F00001F00001F00001F00001F0000
1F00001F00001F00001F00001F00001F01FE1F01FE1F00F01F00C01F03801F07001F0C00
1F18001F7C001FFC001F9E001F0F001E0F801E07C01E03C01E01E01E01F01E00F8FFC3FF
FFC3FF18207E9F1C>107 D<FF00FF001F001F001F001F001F001F001F001F001F001F00
1F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F00
FFE0FFE00B207E9F0E>I<FE0FE03F80FE1FF07FC01E70F9C3E01E407D01F01E807E01F0
1F807E01F01F007C01F01F007C01F01F007C01F01F007C01F01F007C01F01F007C01F01F
007C01F01F007C01F01F007C01F01F007C01F01F007C01F01F007C01F0FFE3FF8FFEFFE3
FF8FFE27147D932C>I<FE0FC0FE3FE01E61F01EC0F81E80F81F00F81F00F81F00F81F00
F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F8FFE3FFFFE3FF1814
7D931D>I<01FF0007FFC01F83F03E00F83E00F87C007C7C007CFC007EFC007EFC007EFC
007EFC007EFC007E7C007C7C007C3E00F83E00F81F83F007FFC001FF0017147F931A>I<
FF1FC0FF7FF01FE1F81F80FC1F007E1F007E1F003E1F003F1F003F1F003F1F003F1F003F
1F003F1F003E1F007E1F007C1F80FC1FC1F81F7FE01F1F801F00001F00001F00001F0000
1F00001F00001F0000FFE000FFE000181D7E931D>I<FE3E00FE7F801ECFC01E8FC01E8F
C01F8FC01F03001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00
001F0000FFF000FFF00012147E9316>114 D<0FE63FFE701E600EE006E006F800FFC07F
F83FFC1FFE03FE001FC007C007E007F006F81EFFFCC7F010147E9315>I<018001800180
03800380038007800F803F80FFFCFFFC0F800F800F800F800F800F800F800F800F800F80
0F860F860F860F860F8607CC03F801F00F1D7F9C14>I<FF07F8FF07F81F00F81F00F81F
00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F01F81F
01F80F06F807FCFF03F8FF18147D931D>I<FFE07F80FFE07F801F001C000F8018000F80
180007C0300007C0300003E0600003E0600001F0C00001F0C00001F9C00000F9800000FF
8000007F0000007F0000003E0000003E0000001C0000001C000019147F931C>I<FFE7FE
1FE0FFE7FE1FE01F00F003001F00F803000F80F806000F80F8060007C1BC0C0007C1BC0C
0007C1BE0C0003E31E180003E31E180001F60F300001F60F300001F60FB00000FC07E000
00FC07E000007803C000007803C000007803C000003001800023147F9326>I<FFE07F80
FFE07F801F001C000F8018000F80180007C0300007C0300003E0600003E0600001F0C000
01F0C00001F9C00000F9800000FF8000007F0000007F0000003E0000003E0000001C0000
001C0000001800000018000078300000FC300000FC600000C0E00000E1C000007F800000
1E000000191D7F931C>121 D E /Fe 42 123 df<E038F078F078F078F078F078F078F0
78E038E03860300D0B7C9816>34 D<00E001E0038007000E001C001C0038003800700070
007000E000E000E000E000E000E000E000E000E000700070007000380038001C001C000E
000700038001E000E00B217A9C16>40 D<C000E000700038001C000E000E000700070003
800380038001C001C001C001C001C001C001C001C001C0038003800380070007000E000E
001C0038007000E000C0000A217B9C16>I<387C7E7E3E0E1E1C78F060070B798416>44
D<FFFF80FFFF80FFFF8011037E8D16>I<01800380038007800F807F80FF807380038003
800380038003800380038003800380038003800380038003807FF87FFC7FF80E197C9816
>49 D<01F18007FB800FFF801F0F803C0780380380700380700380F00000E00000E00000
E00000E00000E00000E00000E00000F000007003807003803803803C07001F0F000FFE00
07FC0001F00011197E9816>67 D<FFFFE0FFFFE0FFFFE01C00E01C00E01C00E01C00E01C
00001C00001C1C001C1C001FFC001FFC001FFC001C1C001C1C001C00001C00001C00001C
00001C00001C0000FF8000FFC000FF800013197F9816>70 D<FFFEFFFEFFFE0380038003
800380038003800380038003800380038003800380038003800380038003800380FFFEFF
FEFFFE0F197D9816>73 D<FC07E0FE0FE0FE0FE03A0B803B1B803B1B803B1B803B1B803B
1B803BBB8039B38039B38039B38039B38039F38038E38038E38038038038038038038038
0380380380FE0FE0FE0FE0FE0FE013197F9816>77 D<7FF800FFFE007FFF001C0F801C03
801C03C01C01C01C01C01C01C01C03C01C03801C0F801FFF001FFE001FF8001C00001C00
001C00001C00001C00001C00001C00007F0000FF80007F000012197F9816>80
D<7FE000FFF8007FFC001C1E001C0F001C07001C07001C07001C07001C0F001C1E001FFC
001FF8001FFC001C1C001C0E001C0E001C0E001C0E001C0E201C0E701C0E707F07E0FF87
E07F03C014197F9816>82 D<07E3001FFF003FFF00781F00F00700E00700E00700E00000
F000007800003F80001FF00007FC0000FE00000F00000700000380000380600380E00380
E00700F80F00FFFE00FFFC00C7F00011197E9816>I<FC07E0FE0FE0FC07E07001C07001
C07001C030018038038038038038038038E38039F38039F38039B38019B30019B30019B3
0019B30019B30019B3001913001B1B000F1E000F1E000E0E0013197F9816>87
D<FFF0FFF0FFF0E000E000E000E000E000E000E000E000E000E000E000E000E000E000E0
00E000E000E000E000E000E000E000E000E000E000E000FFF0FFF0FFF00C20789C16>91
D<FFF0FFF0FFF00070007000700070007000700070007000700070007000700070007000
7000700070007000700070007000700070007000700070FFF0FFF0FFF00C207F9C16>93
D<FFFF80FFFF80FFFF8011037E7E16>95 D<1FE0003FF0007FF800783C00300E00000E00
000E0003FE001FFE003E0E00700E00E00E00E00E00E00E00783E007FFFE03FE7E00F83E0
13127E9116>97 D<7E0000FE00007E00000E00000E00000E00000E00000E3E000EFF000F
FF800F83C00F00E00E00E00E00700E00700E00700E00700E00700E00700E00E00F01E00F
83C00FFF800EFF00063C001419809816>I<03F80FFC1FFE3C1E780C7000E000E000E000
E000E000F000700778073E0E1FFC0FF803F010127D9116>I<003F00007F00003F000007
0000070000070000070003C7000FF7001FFF003C1F00780F00700700E00700E00700E007
00E00700E00700E00700700F00700F003C1F001FFFE00FE7F007C7E014197F9816>I<03
E00FF81FFC3C1E780E7007E007FFFFFFFFFFFFE000E000700778073C0F1FFE0FFC03F010
127D9116>I<001F00007F8000FF8001E78001C30001C00001C0007FFF00FFFF00FFFF00
01C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C000
3FFE007FFF003FFE0011197F9816>I<03E3C007F7E00FFFE01C1CC0380E00380E00380E
00380E00380E001C1C000FF8001FF0001BE0003800001800001FFC001FFF003FFF807803
C0E000E0E000E0E000E0E000E07001C07C07C03FFF800FFE0003F800131C7F9116>I<7E
0000FE00007E00000E00000E00000E00000E00000E3C000EFE000FFF000F87800F03800E
03800E03800E03800E03800E03800E03800E03800E03800E03800E03807FC7F0FFE7F87F
C7F01519809816>I<018003C003C0018000000000000000007FC07FC07FC001C001C001
C001C001C001C001C001C001C001C001C001C07FFFFFFF7FFF101A7D9916>I<7E0000FE
00007E00000E00000E00000E00000E00000E7FE00E7FE00E7FE00E0F000E1E000E3C000E
78000EF0000FF0000FF8000FBC000F1E000E0E000E07000E07807F87F0FFCFF07F87F014
19809816>107 D<FFC000FFC000FFC00001C00001C00001C00001C00001C00001C00001
C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001
C000FFFF80FFFF80FFFF8011197E9816>I<F9C380FFEFC0FFFFE03C78E03C78E03870E0
3870E03870E03870E03870E03870E03870E03870E03870E03870E0FE7CF8FE7CF8FE3C78
1512809116>I<7E3C00FEFE007FFF000F87800F03800E03800E03800E03800E03800E03
800E03800E03800E03800E03800E03807FC7F0FFE7F87FC7F01512809116>I<03E0000F
F8001FFC003C1E00780F00700700E00380E00380E00380E00380E00380F0078070070078
0F003C1E001FFC000FF80003E00011127E9116>I<7E3E00FEFF007FFF800F83C00F00E0
0E00E00E00700E00700E00700E00700E00700E00700E00E00F01E00F83C00FFF800EFF00
0E3C000E00000E00000E00000E00000E00000E00007FC000FFE0007FC000141B809116>
I<07C7000FE7001FF7003C1F00700F00700F00E00700E00700E00700E00700E00700E007
00700F00700F003C3F003FF7001FE70007C7000007000007000007000007000007000007
00003FE0007FF0003FE0141B7E9116>I<FF0FC0FF3FE0FF7FE007F04007C00007800007
8000070000070000070000070000070000070000070000070000FFFC00FFFC00FFFC0013
127F9116>I<0FEC3FFC7FFCF03CE01CE01C70007F801FF007F8003C600EE00EF00EF81E
FFFCFFF8C7E00F127D9116>I<0300000700000700000700000700007FFF00FFFF00FFFF
000700000700000700000700000700000700000700000701000703800703800703800787
0003FE0001FC0000F80011177F9616>I<7E1F80FE3F807E1F800E03800E03800E03800E
03800E03800E03800E03800E03800E03800E03800E03800E0F800FFFF007FBF803E3F015
12809116>I<7F1FC0FF1FE07F1FC01C07001E0F000E0E000E0E000E0E00071C00071C00
071C00071C0003B80003B80003B80001F00001F00000E00013127F9116>I<FF1FE0FFBF
E0FF1FE038038038038038038038038038E38019F30019F30019B3001DB7001DB7001DB7
001DB7000F1E000F1E000F1E0013127F9116>I<7F1FC07F3FC07F1FC00F1C00073C0003
B80003F00001F00000E00001E00001F00003B800073C00071C000E0E007F1FC0FF3FE07F
1FC013127F9116>I<7F1FC0FF9FE07F1FC01C07000E07000E0E000E0E00070E00071C00
071C00039C00039C0003980001B80001B80000F00000F00000F00000E00000E00000E000
01C00079C0007BC0007F80003F00003C0000131B7F9116>I<3FFFC07FFFC07FFFC07007
80700F00701E00003C0000780001F00003E0000780000F00001E01C03C01C07801C0FFFF
C0FFFFC0FFFFC012127F9116>I E /Ff 45 122 df<00E001C0038007000E000E001C00
1C003800380038007000700070007000E000E000E000E000E000E000E000E000E000E000
E000E00070007000700070003800380038001C001C000E000E000700038001C000E00B2A
7E9E10>40 D<E000700038001C000E000E000700070003800380038001C001C001C001C0
00E000E000E000E000E000E000E000E000E000E000E000E001C001C001C001C003800380
0380070007000E000E001C0038007000E0000B2A7E9E10>I<001C0000003E0000003E00
00002E0000006700000067000000E7800000C7800000C3800001C3C0000183C0000181C0
000381E0000381E0000700F0000700F0000600F0000E0078000FFFF8000FFFF8001C003C
001C003C0018003C0038001E0038001E0070001F0070000F0070000F00E0000780191D7F
9C1C>65 D<003FC000FFF003C0F00780300F00001E00003C00003C000078000078000078
0000F00000F00000F00000F00000F00000F00000F00000F00000F0000078000078000078
00003C00003C00001E00000F000807801803C07800FFF0003F80151F7D9D1B>67
D<FFFC00FFFF00F00F80F003E0F001F0F000F0F00078F00038F0003CF0003CF0001CF000
1EF0001EF0001EF0001EF0001EF0001EF0001EF0001EF0003CF0003CF0003CF00078F000
F0F000F0F003E0F00FC0FFFF00FFFC00171D7C9C1E>I<FFFFC0FFFFC0F00000F00000F0
0000F00000F00000F00000F00000F00000F00000F00000F00000FFFF80FFFF80F00000F0
0000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000FFFFC0FF
FFC0121D7C9C19>I<FFFF80FFFF80F00000F00000F00000F00000F00000F00000F00000
F00000F00000F00000F00000FFFF00FFFF00F00000F00000F00000F00000F00000F00000
F00000F00000F00000F00000F00000F00000F00000F00000111D7C9C18>I<003F8001FF
F003C0F80780380F00181E00003C00003C0000780000780000780000F00000F00000F000
00F00000F00000F00000F007F8F007F8F000387800387800387800383C00383C00381E00
380F003807803803C0F801FFF0003F80151F7D9D1C>I<F000F0F000F0F000F0F000F0F0
00F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0FFFFF0FFFFF0F000F0F0
00F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F0
00F0141D7C9C1D>I<F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0
F0F0041D7C9C0C>I<F000F000F000F000F000F000F000F000F000F000F000F000F000F0
00F000F000F000F000F000F000F000F000F000F000F000F000F000FFFEFFFE0F1D7C9C16
>76 D<FC0007E0FC0007E0FC0007E0EE000DE0EE000DE0EE000DE0E70019E0E70019E0E7
0019E0E78039E0E38031E0E3C071E0E3C071E0E1C061E0E1C061E0E1E0E1E0E1E0E1E0E0
E0C1E0E0F1C1E0E07181E0E07181E0E07181E0E03B01E0E03B01E0E03B01E0E01E01E0E0
1E01E0E01E01E0E00001E01B1D7C9C24>I<FC0070FC0070FE0070EE0070EF0070E70070
E70070E78070E38070E3C070E3C070E1E070E1E070E0E070E0F070E07070E07870E07870
E03C70E03C70E01C70E01E70E00E70E00E70E00F70E00770E007F0E003F0E003F0141D7C
9C1D>I<003F000001FFE00003FFF00007C0F8000F807C001E001E003E001F003C000F00
780007807800078078000780F00003C0F00003C0F00003C0F00003C0F00003C0F00003C0
F00003C0F00003C0F80007C078000780780007807C000F803C000F003E001F001F003E00
0F807C0007C0F80003FFF00001FFE000003F00001A1F7E9D1F>I<FFFC00FFFF00F00F80
F003C0F001E0F000F0F000F0F000F0F000F0F000F0F000F0F001E0F003E0F00FC0FFFF80
FFFE00F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000
F00000F00000141D7C9C1B>I<FFF800FFFF00F00F80F003C0F001E0F000F0F000F0F000
F0F000F0F000F0F001E0F003E0F00FC0FFFF80FFFF00FFF800F03C00F01C00F01E00F00F
00F00F00F00780F00780F003C0F003C0F001E0F000F0F000F0F00078151D7C9C1B>82
D<03F8000FFE001C0F00380700700300600000E00000E00000E00000E00000F000007800
007F00003FE0001FFC0007FE0001FF00001F800007800003C00003C00001C00001C00001
C00001C0C00180E00380F007007C0E001FFC0007F000121F7E9D17>I<FFFFFF80FFFFFF
80001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E00
00001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E00
00001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E00
00191D7F9C1C>I<F0000380F00003807800070078000700780007003C000E003C000E00
3E000E001E001C001E001C000F0038000F0038000F003800078070000780700003C06000
03C0E00003C0E00001E0C00001E1C00001E1C00000F1800000F380000073000000730000
007B0000003E0000003E0000001C0000191D7F9C1C>86 D<F000F00070F000F80070F000
F800707800B8006078019C00E078019C00E078019C00E03C039C01C03C031E01C03C030E
01C01E030E01801E070F03801E070F03801E060703800F060703000F0E0787000F0C0787
00070C038600070C038600078C038E00079803CE00039801CC00039801CC00039801CC00
01D001C80001D000D80001F000F80001E000F80000E0007000241D7F9C27>I<78000E00
7C001E003C003C001E0038000F0070000F00F0000781E00003C1C00001C3C00001E78000
00F70000007E0000003E0000003C0000003C0000007E00000077000000E7800001E38000
03C1C0000381E0000700F0000F00F8000E0078001C003C003C003E0078001F0070000F00
F0000F80191D7F9C1C>I<F80001E07C0001C03E0003801E0007801F0007000F800E0007
801E0007C01C0003E03C0001E0380001F0700000F0F0000078E000007DC000003FC00000
1F8000001F0000000F0000000F0000000F0000000F0000000F0000000F0000000F000000
0F0000000F0000000F0000000F0000000F00001B1D809C1C>I<0FC03FF07FF87038401C
001C001C00FC0FFC3FFC781CE01CE01CE01CF07C7FFC7FDC3F1C0E127E9114>97
D<E000E000E000E000E000E000E000E000E000E000E000E3E0EFF0FFF8F87CF01CE01EE0
0EE00EE00EE00EE00EE00EE01CF01CF87CFFF8EFF0E3C00F1D7D9C15>I<07E00FF81FFC
3C1C70047000E000E000E000E000E000E000700070043C1C1FFC0FF807E00E127E9112>
I<000E000E000E000E000E000E000E000E000E000E000E0F8E1FEE3FFE7C3E700E700EE0
0EE00EE00EE00EE00EE00EF00E701E7C3E3FFE1FEE0F8E0F1D7E9C15>I<07C01FE03FF0
78787018601CFFFCFFFCFFFCE000E000E000700070043C1C3FFC1FF807E00E127E9112>
I<00FC01FC03FC07000E000E000E000E000E000E000E00FFE0FFE00E000E000E000E000E
000E000E000E000E000E000E000E000E000E000E000E000E1D809C0D>I<03C3C00FFFC0
1FFFC01C3800381C00381C00381C00381C00381C001C38001FF8001FF0003BC000380000
3800001FFC001FFF003FFF80700780E001C0E001C0E001C0F003C07C0F803FFF001FFE00
07F800121B7F9115>I<E000E000E000E000E000E000E000E000E000E000E000E3E0EFF0
FFF8F83CF01CE01CE01CE01CE01CE01CE01CE01CE01CE01CE01CE01CE01CE01C0E1D7D9C
15>I<F0F0F0F000000000000000707070707070707070707070707070707070041D7E9C
0A>I<03C003C003C003C0000000000000000000000000000001C001C001C001C001C001
C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C0C3C0FF
80FF003E000A25839C0B>I<E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0
E0E0E0E0E0031D7D9C0A>108 D<E3F03F00EFF8FF80FFFDFFC0F81F81E0F00F00E0E00E
00E0E00E00E0E00E00E0E00E00E0E00E00E0E00E00E0E00E00E0E00E00E0E00E00E0E00E
00E0E00E00E0E00E00E0E00E00E01B127D9122>I<E3E0EFF0FFF8F83CF01CE01CE01CE0
1CE01CE01CE01CE01CE01CE01CE01CE01CE01CE01C0E127D9115>I<03F0000FFC001FFE
003C0F00780780700380E001C0E001C0E001C0E001C0E001C0F003C07003807807803C0F
001FFE000FFC0003F00012127F9115>I<E3E0EFF0FFF8F87CF01CE01EE00EE00EE00EE0
0EE00EE00EE01CF03CF87CFFF8EFF0E3C0E000E000E000E000E000E000E000E0000F1A7D
9115>I<078E1FEE3FFE7C3E781E700EE00EE00EE00EE00EE00EE00EF00E701E7C3E3FFE
1FEE0F8E000E000E000E000E000E000E000E000E0F1A7E9115>I<E380E780EF80FC00F8
00F000F000E000E000E000E000E000E000E000E000E000E000E00009127D910E>I<1FC0
3FF07FF0F030E000E000F0007F003FC01FE000F0003800388038F078FFF07FE01FC00D12
7F9110>I<1C001C001C001C001C001C00FFE0FFE01C001C001C001C001C001C001C001C
001C001C001C001C001C201FF00FF007C00C187F970F>I<E01CE01CE01CE01CE01CE01C
E01CE01CE01CE01CE01CE01CE01CE01CE07CFFFC7FDC3F1C0E127D9115>I<E007E00770
06700E700E381C381C381C1C381C381C380E700E700660076007E003C003C010127F9113
>I<E03E0380E03E0380E03E03807037030070770700707707007073070038E38E0038E3
8E0038E38E0018E18C001CC1CC001DC1DC001DC1DC000D80D8000F80F8000F80F8000780
700019127F911C>I<E007E007700E700E780E381C381C1C181C380C380E300E70067007
60036003C001C001C001800180030003000700FE00FC00F800101A7F9113>121
D E /Fg 68 124 df<007E1F0001C1B1800303E3C00703C3C00E03C1800E01C0000E01C0
000E01C0000E01C0000E01C0000E01C000FFFFFC000E01C0000E01C0000E01C0000E01C0
000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0
000E01C0000E01C0000E01C0007F87FC001A1D809C18>11 D<007E0001C1800301800703
C00E03C00E01800E00000E00000E00000E00000E0000FFFFC00E01C00E01C00E01C00E01
C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01
C07F87F8151D809C17>I<003F07E00001C09C18000380F018000701F03C000E01E03C00
0E00E018000E00E000000E00E000000E00E000000E00E000000E00E00000FFFFFFFC000E
00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00
E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E0
1C000E00E01C007FC7FCFF80211D809C23>14 D<60F0F0F0F0F0F0F06060606060606060
6060606060000000000060F0F060041E7C9D0C>33 D<6060F0F0F8F86868080808080808
101010102020404080800D0C7F9C15>I<60F0F8680808081010204080050C7C9C0C>39
D<004000800100020006000C000C0018001800300030007000600060006000E000E000E0
00E000E000E000E000E000E000E000E000E000600060006000700030003000180018000C
000C00060002000100008000400A2A7D9E10>I<800040002000100018000C000C000600
060003000300038001800180018001C001C001C001C001C001C001C001C001C001C001C0
01C0018001800180038003000300060006000C000C00180010002000400080000A2A7E9E
10>I<60F0F0701010101020204080040C7C830C>44 D<FFE0FFE00B0280890E>I<60F0F0
6004047C830C>I<00010003000600060006000C000C000C001800180018003000300030
0060006000C000C000C0018001800180030003000300060006000C000C000C0018001800
1800300030003000600060006000C000C00010297E9E15>I<03C00C301818300C300C70
0E60066006E007E007E007E007E007E007E007E007E007E007E007E007E0076006600670
0E300C300C18180C3007E0101D7E9B15>I<030007003F00C70007000700070007000700
070007000700070007000700070007000700070007000700070007000700070007000F80
FFF80D1C7C9B15>I<07C01830201C400C400EF00FF80FF807F8077007000F000E000E00
1C001C00380070006000C00180030006010C01180110023FFE7FFEFFFE101C7E9B15>I<
07E01830201C201C781E780E781E381E001C001C00180030006007E00030001C001C000E
000F000F700FF80FF80FF80FF00E401C201C183007E0101D7E9B15>I<000C00000C0000
1C00003C00003C00005C0000DC00009C00011C00031C00021C00041C000C1C00081C0010
1C00301C00201C00401C00C01C00FFFFC0001C00001C00001C00001C00001C00001C0000
1C0001FFC0121C7F9B15>I<60F0F0600000000000000000000060F0F06004127C910C>
58 D<60F0F0600000000000000000000060F0F0701010101020204080041A7C910C>I<0F
E03038401CE00EF00EF00EF00E000C001C0030006000C000800180010001000100010001
0001000000000000000000000003000780078003000F1D7E9C14>63
D<000600000006000000060000000F0000000F0000000F00000017800000178000001780
000023C0000023C0000023C0000041E0000041E0000041E0000080F0000080F0000180F8
000100780001FFF80003007C0002003C0002003C0006003E0004001E0004001E000C001F
001E001F00FF80FFF01C1D7F9C1F>65 D<FFFFC00F00F00F00380F003C0F001C0F001E0F
001E0F001E0F001E0F001C0F003C0F00780F01F00FFFE00F00780F003C0F001E0F000E0F
000F0F000F0F000F0F000F0F000F0F001E0F001E0F003C0F0078FFFFE0181C7E9B1D>I<
001F808000E0618001801980070007800E0003801C0003801C0001803800018078000080
7800008070000080F0000000F0000000F0000000F0000000F0000000F0000000F0000000
F0000000700000807800008078000080380000801C0001001C0001000E00020007000400
0180080000E03000001FC000191E7E9C1E>I<FFFFC0000F00F0000F003C000F000E000F
0007000F0007000F0003800F0003C00F0001C00F0001C00F0001E00F0001E00F0001E00F
0001E00F0001E00F0001E00F0001E00F0001E00F0001C00F0001C00F0003C00F0003800F
0007800F0007000F000E000F001C000F007000FFFFC0001B1C7E9B20>I<FFFFFC0F003C
0F000C0F00040F00040F00060F00020F00020F02020F02000F02000F02000F06000FFE00
0F06000F02000F02000F02000F02010F00010F00020F00020F00020F00060F00060F000C
0F003CFFFFFC181C7E9B1C>I<FFFFF80F00780F00180F00080F00080F000C0F00040F00
040F02040F02000F02000F02000F06000FFE000F06000F02000F02000F02000F02000F00
000F00000F00000F00000F00000F00000F00000F8000FFF800161C7E9B1B>I<001F8080
00E0618001801980070007800E0003801C0003801C000180380001807800008078000080
70000080F0000000F0000000F0000000F0000000F0000000F0000000F000FFF0F0000F80
700007807800078078000780380007801C0007801C0007800E00078007000B8001801180
00E06080001F80001C1E7E9C21>I<FFF3FFC00F003C000F003C000F003C000F003C000F
003C000F003C000F003C000F003C000F003C000F003C000F003C000F003C000FFFFC000F
003C000F003C000F003C000F003C000F003C000F003C000F003C000F003C000F003C000F
003C000F003C000F003C000F003C00FFF3FFC01A1C7E9B1F>I<FFF00F000F000F000F00
0F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F00
0F000F000F000F00FFF00C1C7F9B0F>I<FFF8000F80000F00000F00000F00000F00000F
00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F
00080F00080F00080F00180F00180F00100F00300F00700F01F0FFFFF0151C7E9B1A>76
D<FF8000FF800F8000F8000F8000F8000BC00178000BC00178000BC001780009E0027800
09E002780008F004780008F004780008F004780008780878000878087800087808780008
3C107800083C107800083C107800081E207800081E207800081E207800080F407800080F
40780008078078000807807800080780780008030078001C03007800FF8307FF80211C7E
9B26>I<FF007FC00F800E000F8004000BC0040009E0040009E0040008F0040008F80400
08780400083C0400083C0400081E0400080F0400080F0400080784000807C4000803C400
0801E4000801E4000800F40008007C0008007C0008003C0008003C0008001C0008000C00
1C000C00FF8004001A1C7E9B1F>I<003F800000E0E0000380380007001C000E000E001C
0007003C00078038000380780003C0780003C0700001C0F00001E0F00001E0F00001E0F0
0001E0F00001E0F00001E0F00001E0F00001E0700001C0780003C0780003C0380003803C
0007801C0007000E000E0007001C000380380000E0E000003F80001B1E7E9C20>I<FFFF
800F00E00F00780F003C0F001C0F001E0F001E0F001E0F001E0F001E0F001C0F003C0F00
780F00E00FFF800F00000F00000F00000F00000F00000F00000F00000F00000F00000F00
000F00000F0000FFF000171C7E9B1C>I<FFFF00000F01E0000F0078000F003C000F001C
000F001E000F001E000F001E000F001E000F001C000F003C000F0078000F01E0000FFF00
000F03C0000F00E0000F00F0000F0078000F0078000F0078000F0078000F0078000F0078
000F0078100F0078100F0038100F003C20FFF01C20000007C01C1D7E9B1F>82
D<07E0801C1980300580700380600180E00180E00080E00080E00080F00000F800007C00
007FC0003FF8001FFE0007FF0000FF80000F800007C00003C00001C08001C08001C08001
C0C00180C00180E00300D00200CC0C0083F800121E7E9C17>I<7FFFFFC0700F01C0600F
00C0400F0040400F0040C00F0020800F0020800F0020800F0020000F0000000F0000000F
0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F
0000000F0000000F0000000F0000000F0000000F0000001F800003FFFC001B1C7F9B1E>
I<FFF07FC00F000E000F0004000F0004000F0004000F0004000F0004000F0004000F0004
000F0004000F0004000F0004000F0004000F0004000F0004000F0004000F0004000F0004
000F0004000F0004000F0004000F0004000700080007800800038010000180100000C020
000070C000001F00001A1D7E9B1F>I<FFE00FF01F0003C00F0001800F0001000F800300
078002000780020003C0040003C0040003C0040001E0080001E0080001F0080000F01000
00F0100000F830000078200000782000003C4000003C4000003C4000001E8000001E8000
001F8000000F0000000F00000006000000060000000600001C1D7F9B1F>I<FFE0FFE0FF
1F001F003C1E001E00180F001F00100F001F00100F001F001007801F0020078027802007
8027802003C027804003C043C04003C043C04003E043C04001E081E08001E081E08001E0
81E08000F100F10000F100F10000F100F100007900FA00007A007A00007A007A00003E00
7C00003C003C00003C003C00003C003C00001800180000180018000018001800281D7F9B
2B>I<08081010202040404040808080808080B0B0F8F8787830300D0C7A9C15>92
D<1FC000307000783800781C00301C00001C00001C0001FC000F1C00381C00701C00601C
00E01C40E01C40E01C40603C40304E801F870012127E9115>97 D<FC00001C00001C0000
1C00001C00001C00001C00001C00001C00001C00001C00001C7C001D86001E03001C0180
1C01C01C00C01C00E01C00E01C00E01C00E01C00E01C00E01C00C01C01C01C01801E0300
19060010F800131D7F9C17>I<07E00C301878307870306000E000E000E000E000E000E0
0060007004300418080C3007C00E127E9112>I<003F0000070000070000070000070000
070000070000070000070000070000070003E7000C1700180F00300700700700600700E0
0700E00700E00700E00700E00700E00700600700700700300700180F000C370007C7E013
1D7E9C17>I<03E00C301818300C700E6006E006FFFEE000E000E000E000600070023002
18040C1803E00F127F9112>I<00F8018C071E061E0E0C0E000E000E000E000E000E00FF
E00E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E007FE00F
1D809C0D>I<00038003C4C00C38C01C3880181800381C00381C00381C00381C00181800
1C38000C300013C0001000003000001800001FF8001FFF001FFF803003806001C0C000C0
C000C0C000C06001803003001C0E0007F800121C7F9215>I<FC00001C00001C00001C00
001C00001C00001C00001C00001C00001C00001C00001C7C001C87001D03001E03801C03
801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03
80FF9FF0141D7F9C17>I<18003C003C0018000000000000000000000000000000FC001C
001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C00FF80091D7F
9C0C>I<00C001E001E000C000000000000000000000000000000FE000E000E000E000E0
00E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E060E0F0C0
F1C061803E000B25839C0D>I<FC00001C00001C00001C00001C00001C00001C00001C00
001C00001C00001C00001C3FC01C0F001C0C001C08001C10001C20001C40001CE0001DE0
001E70001C78001C38001C3C001C1C001C0E001C0F001C0F80FF9FE0131D7F9C16>I<FC
001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C
001C001C001C001C001C001C001C001C001C00FF80091D7F9C0C>I<FC7E07E0001C8388
38001D019018001E01E01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C
001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C00
1C01C01C00FF8FF8FF8021127F9124>I<FC7C001C87001D03001E03801C03801C03801C
03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C0380FF9FF014
127F9117>I<03F0000E1C00180600300300700380600180E001C0E001C0E001C0E001C0
E001C0E001C06001807003803003001806000E1C0003F00012127F9115>I<FC7C001D86
001E03001C01801C01C01C00C01C00E01C00E01C00E01C00E01C00E01C00E01C01C01C01
C01C01801E03001D06001CF8001C00001C00001C00001C00001C00001C00001C0000FF80
00131A7F9117>I<03C1000C3300180B00300F00700700700700E00700E00700E00700E0
0700E00700E00700600700700700300F00180F000C370007C70000070000070000070000
0700000700000700000700003FE0131A7E9116>I<FCE01D301E781E781C301C001C001C
001C001C001C001C001C001C001C001C001C00FFC00D127F9110>I<1F9030704030C010
C010E010F8007F803FE00FF000F880388018C018C018E010D0608FC00D127F9110>I<04
000400040004000C000C001C003C00FFE01C001C001C001C001C001C001C001C001C001C
101C101C101C101C100C100E2003C00C1A7F9910>I<FC1F801C03801C03801C03801C03
801C03801C03801C03801C03801C03801C03801C03801C03801C03801C07800C07800E1B
8003E3F014127F9117>I<FF07E03C03801C01001C01000E02000E020007040007040007
040003880003880003D80001D00001D00000E00000E00000E00000400013127F9116>I<
FF3FCFE03C0F03801C0701801C0701001C0B01000E0B82000E0B82000E1182000711C400
0711C4000720C40003A0E80003A0E80003C0680001C0700001C070000180300000802000
1B127F911E>I<7F8FF00F03800F030007020003840001C80001D80000F0000070000078
0000F800009C00010E00020E000607000403801E07C0FF0FF81512809116>I<FF07E03C
03801C01001C01000E02000E020007040007040007040003880003880003D80001D00001
D00000E00000E00000E000004000004000008000008000F08000F10000F300006600003C
0000131A7F9116>I<7FFC70386038407040F040E041C003C0038007000F040E041C043C
0C380870087038FFF80E127F9112>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 10 58 df<1F00318060C04040C060C060C060C060C060C060C060C060404060
C031801F000B107F8F0F>48 D<0C003C00CC000C000C000C000C000C000C000C000C000C
000C000C000C00FF8009107E8F0F>I<1F00618040C08060C0600060006000C001800300
06000C00102020207FC0FFC00B107F8F0F>I<1F00218060C060C000C0008001800F0000
8000400060C060C060804060801F000B107F8F0F>I<0300030007000F000B0013003300
23004300C300FFE003000300030003001FE00B107F8F0F>I<20803F002C002000200020
002F0030802040006000600060C06080C061801F000B107F8F0F>I<0780184030C060C0
6000C000CF00F080E040C060C060C060406060C030801F000B107F8F0F>I<40007FE07F
C08080808001000200040004000C0008000800180018001800180018000B117E900F>I<
1F00318060C060C060C071803F000F00338061C0C060C060C060404060801F000B107F8F
0F>I<1F00318060C0C040C060C060C06040E021E01E600060004060C0608043003E000B
107F8F0F>I E /Fj 80 126 df<70F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F87000000000
0070F8F8F870051C779B18>33 D<4010E038F078E038E038E038E038E038E038E038E038
E038E03860300D0E7B9C18>I<030600078F00078F00078F00078F00078F00078F007FFF
C0FFFFE0FFFFE07FFFC00F1E000F1E000F1E000F1E000F1E000F1E007FFFC0FFFFE0FFFF
E07FFFC01E3C001E3C001E3C001E3C001E3C001E3C000C1800131C7E9B18>I<01C00007
E0000FF0000E70001C38001C38001C38001C38001C73F01C73F01CE3F00FE3800FC7000F
87000F07001F0E003F0E007B8E0073DC00E1DC00E0F800E0F800E07070E0787070FC707F
FFE03FCFE00F03C0141C7F9B18>38 D<387C7C7E3E0E0E0E1C1C38F8F0C0070E789B18>
I<007000F001E003C007800F001E001C00380038007000700070007000E000E000E000E0
00E000E000E000E0007000700070007000380038001C001E000F00078003C001F000F000
700C24799F18>I<6000F00078003C001E000F000780038001C001C000E000E000E000E0
0070007000700070007000700070007000E000E000E000E001C001C0038007800F001E00
3C007800F00060000C247C9F18>I<01C00001C00001C00001C000C1C180F1C780F9CF80
7FFF001FFC0007F00007F0001FFC007FFF00F9CF80F1C780C1C18001C00001C00001C000
01C00011147D9718>I<00600000F00000F00000F00000F00000F00000F00000F0007FFF
C0FFFFE0FFFFE07FFFC000F00000F00000F00000F00000F00000F00000F0000060001314
7E9718>I<1C3E7E7F3F1F070E1E7CF860080C788518>I<7FFF00FFFF80FFFF807FFF0011
047D8F18>I<3078FCFC78300606778518>I<000300000780000780000F80000F00001F00
001E00001E00003E00003C00007C0000780000780000F80000F00001F00001E00003E000
03C00003C00007C0000780000F80000F00000F00001F00001E00003E00003C00003C0000
7C0000780000F80000F00000F0000060000011247D9F18>I<01F00007FC000FFE001F1F
001C07003803807803C07001C07001C0E000E0E000E0E000E0E000E0E000E0E000E0E000
E0E000E0E000E0F001E07001C07001C07803C03803801C07001F1F000FFE0007FC0001F0
00131C7E9B18>I<01800380038007800F803F80FF80FB80438003800380038003800380
038003800380038003800380038003800380038003807FFCFFFE7FFC0F1C7B9B18>I<03
F0000FFE003FFF007C0F807003C0E001C0F000E0F000E06000E00000E00000E00001C000
01C00003C0000780000F00001E00003C0000780000F00001E00007C0000F80001E00E03C
00E07FFFE0FFFFE07FFFE0131C7E9B18>I<07F8001FFE003FFF007807807803C07801C0
3001C00001C00003C0000380000F0003FF0003FE0003FF000007800003C00001C00000E0
0000E00000E0F000E0F000E0F001C0F003C07C07803FFF001FFE0003F800131C7E9B18>
I<001F00003F0000770000770000E70001E70001C7000387000787000707000E07001E07
003C0700380700780700F00700FFFFF8FFFFF8FFFFF80007000007000007000007000007
00000700007FF000FFF8007FF0151C7F9B18>I<1FFF803FFF803FFF8038000038000038
00003800003800003800003800003800003BF8003FFE003FFF003C07801803C00001C000
00E00000E06000E0F000E0F000E0E001C07003C07C0F803FFF001FFC0003F000131C7E9B
18>I<3078FCFC783000000000000000003078FCFC78300614779318>58
D<183C7E7E3C180000000000000000183C7E7E3E1E0E1C3C78F060071A789318>I<0003
00000780001F80003F00007E0001FC0003F00007E0001FC0003F00007E0000FC0000FC00
007E00003F00001FC00007E00003F00001FC00007E00003F00001F800007800003001118
7D9918>I<7FFFC0FFFFE0FFFFE0FFFFE0000000000000000000000000FFFFE0FFFFE0FF
FFE07FFFC0130C7E9318>I<600000F00000FC00007E00003F00001FC00007E00003F000
01FC00007E00003F00001F80001F80003F00007E0001FC0003F00007E0001FC0003F0000
7E0000FC0000F0000060000011187D9918>I<0FF0003FFC007FFF00700F00F00380F003
80600780000F00003E00007C0001F00001E00003C00003C00003C00003C00003C0000380
0000000000000000000000000000000003800007C00007C00007C000038000111C7D9B18
>I<00700000F80000F80000D80000D80001DC0001DC0001DC00018C00038E00038E0003
8E00038E000306000707000707000707000707000FFF800FFF800FFF800E03800E03801C
01C01C01C07F07F0FF8FF87F07F0151C7F9B18>65 D<FFFC00FFFF00FFFF801C03C01C01
C01C00E01C00E01C00E01C00E01C01E01C01C01C07C01FFF801FFF001FFFC01C03C01C00
E01C00F01C00701C00701C00701C00701C00F01C00E01C03E0FFFFC0FFFF80FFFE00141C
7F9B18>I<00F8E003FEE007FFE00F07E01E03E03C01E03800E07000E07000E0700000E0
0000E00000E00000E00000E00000E00000E00000E000007000007000E07000E03800E03C
00E01E01C00F07C007FF8003FE0000F800131C7E9B18>I<7FF800FFFE007FFF001C0F80
1C03C01C03C01C01E01C00E01C00E01C00F01C00701C00701C00701C00701C00701C0070
1C00701C00701C00F01C00E01C00E01C01E01C01C01C03C01C0F807FFF00FFFE007FF800
141C7F9B18>I<FFFFF0FFFFF0FFFFF01C00701C00701C00701C00701C00001C00001C0E
001C0E001C0E001FFE001FFE001FFE001C0E001C0E001C0E001C00001C00001C00381C00
381C00381C00381C0038FFFFF8FFFFF8FFFFF8151C7F9B18>I<FFFFE0FFFFE0FFFFE01C
00E01C00E01C00E01C00E01C00001C00001C1C001C1C001C1C001FFC001FFC001FFC001C
1C001C1C001C1C001C00001C00001C00001C00001C00001C00001C0000FFC000FFC000FF
C000131C7E9B18>I<01F1C003FDC00FFFC01F0FC01C03C03803C03801C07001C07001C0
700000E00000E00000E00000E00000E00000E00FF0E01FF0E00FF07001C07001C07003C0
3803C03803C01C07C01F0FC00FFFC003FDC001F1C0141C7E9B18>I<7F07F0FF8FF87F07
F01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01FFFC01FFFC01FFF
C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C07F07F0FF8F
F87F07F0151C7F9B18>I<7FFF00FFFF807FFF0001C00001C00001C00001C00001C00001
C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001
C00001C00001C00001C00001C0007FFF00FFFF807FFF00111C7D9B18>I<7FE000FFE000
7FE0000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E0000
0E00000E00000E00000E00000E00000E00000E00700E00700E00700E00700E00707FFFF0
FFFFF07FFFF0141C7F9B18>76 D<FC01F8FE03F8FE03F83B06E03B06E03B06E03B06E03B
8EE03B8EE0398CE0398CE039DCE039DCE039DCE038D8E038D8E038F8E03870E03870E038
00E03800E03800E03800E03800E03800E0FE03F8FE03F8FE03F8151C7F9B18>I<7E07F0
FF0FF87F07F01D81C01D81C01D81C01DC1C01CC1C01CC1C01CE1C01CE1C01CE1C01C61C0
1C71C01C71C01C31C01C39C01C39C01C39C01C19C01C19C01C1DC01C0DC01C0DC01C0DC0
7F07C0FF87C07F03C0151C7F9B18>I<0FF8003FFE007FFF00780F00700700F00780E003
80E00380E00380E00380E00380E00380E00380E00380E00380E00380E00380E00380E003
80E00380E00380E00380F00780700700780F007FFF003FFE000FF800111C7D9B18>I<FF
FE00FFFF80FFFFC01C03C01C01E01C00E01C00701C00701C00701C00701C00701C00E01C
01E01C03C01FFFC01FFF801FFE001C00001C00001C00001C00001C00001C00001C00001C
0000FF8000FF8000FF8000141C7F9B18>I<0FF8003FFE007FFF00780F00700700F00780
E00380E00380E00380E00380E00380E00380E00380E00380E00380E00380E00380E00380
E00380E00380E1E380E1E380F0E78070F700787F007FFF003FFE000FFC00001C00001E00
000E00000F0000070000070011227D9B18>I<7FF800FFFE007FFF001C0F801C03801C03
C01C01C01C01C01C01C01C03C01C03801C0F801FFF001FFE001FFE001C0F001C07001C03
801C03801C03801C03801C03801C039C1C039C1C039C7F01F8FF81F87F00F0161C7F9B18
>I<03F3801FFF803FFF807C0F80700780E00380E00380E00380E000007000007800003F
00001FF00007FE0000FF00000F800003C00001C00000E00000E06000E0E000E0E001E0F0
01C0F80780FFFF80FFFE00E7F800131C7E9B18>I<7FFFF8FFFFF8FFFFF8E07038E07038
E07038E07038007000007000007000007000007000007000007000007000007000007000
00700000700000700000700000700000700000700000700007FF0007FF0007FF00151C7F
9B18>I<FF83FEFF83FEFF83FE1C00701C00701C00701C00701C00701C00701C00701C00
701C00701C00701C00701C00701C00701C00701C00701C00701C00701C00701C00700E00
E00F01E00783C003FF8001FF00007C00171C809B18>I<FF07F8FF07F8FF07F81C01C01C
01C01C01C01C01C00E03800E03800E03800E03800F078007070007070007070007070003
8E00038E00038E00038E00018C0001DC0001DC0001DC0000D80000F80000F80000700015
1C7F9B18>I<FE03F8FE03F8FE03F87000707000707000703800E03800E03800E03800E0
3800E038F8E038F8E039DCE039DCE019DCC019DCC019DCC0198CC01D8DC01D8DC01D8DC0
1D8DC00D8D800D05800F07800F07800E0380151C7F9B18>I<7F8FE07F9FE07F8FE00E07
000F0700070E00078E00039C0003DC0001F80001F80000F00000F00000700000F00000F8
0001F80001DC00039E00038E00070F000707000E07800E03801E03C07F07F0FF8FF87F07
F0151C7F9B18>I<FF07F8FF07F8FF07F81C01C01E03C00E03800F078007070007070003
8E00038E0001DC0001DC0001DC0000F80000F80000700000700000700000700000700000
700000700000700000700001FC0003FE0001FC00151C7F9B18>I<FFF8FFF8FFF8E000E0
00E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E0
00E000E000E000E000E000E000E000E000E000E000FFF8FFF8FFF80D24779F18>91
D<600000F00000F00000F800007800007C00003C00003C00003E00001E00001F00000F00
000F00000F800007800007C00003C00003C00003E00001E00001F00000F00000F8000078
00007800007C00003C00003E00001E00001E00001F00000F00000F800007800007800003
0011247D9F18>I<FFF8FFF8FFF800380038003800380038003800380038003800380038
003800380038003800380038003800380038003800380038003800380038003800380038
0038FFF8FFF8FFF80D247F9F18>I<7FFF00FFFF80FFFF807FFF0011047D7F18>95
D<1FE0003FF8007FFC00781E00300E0000070000070000FF0007FF001FFF007F07007807
00E00700E00700E00700F00F00781F003FFFF01FFBF007E1F014147D9318>97
D<7E0000FE00007E00000E00000E00000E00000E00000E00000E3E000EFF800FFFC00FC1
E00F80E00F00700E00700E00380E00380E00380E00380E00380E00380F00700F00700F80
E00FC1E00FFFC00EFF80063E00151C809B18>I<01FE0007FF001FFF803E078038030070
0000700000E00000E00000E00000E00000E00000E000007000007001C03801C03E03C01F
FF8007FF0001FC0012147D9318>I<001F80003F80001F80000380000380000380000380
00038003E3800FFB801FFF803C1F80380F80700780700380E00380E00380E00380E00380
E00380E00380700780700780380F803C1F801FFFF00FFBF803E3F0151C7E9B18>I<01F0
0007FC001FFE003E0F00380780700380700380E001C0E001C0FFFFC0FFFFC0FFFFC0E000
007000007001C03801C03E03C01FFF8007FF0001FC0012147D9318>I<001F80007FC000
FFE000E1E001C0C001C00001C00001C0007FFFC0FFFFC0FFFFC001C00001C00001C00001
C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C0007FFF007F
FF007FFF00131C7F9B18>I<01E1F007FFF80FFFF81E1E301C0E00380700380700380700
3807003807001C0E001E1E001FFC001FF80039E0003800001C00001FFE001FFFC03FFFE0
7801F0700070E00038E00038E00038E000387800F07E03F01FFFC00FFF8001FC00151F7F
9318>I<7E0000FE00007E00000E00000E00000E00000E00000E00000E3E000EFF800FFF
C00FC1C00F80E00F00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00
E00E00E00E00E07FC3FCFFE7FE7FC3FC171C809B18>I<03800007C00007C00007C00003
80000000000000000000000000007FC000FFC0007FC00001C00001C00001C00001C00001
C00001C00001C00001C00001C00001C00001C00001C00001C00001C000FFFF00FFFF80FF
FF00111D7C9C18>I<0038007C007C007C003800000000000000000FFC1FFC0FFC001C00
1C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C00
1C001C001C6038F078FFF07FE03F800E277E9C18>I<FE0000FE0000FE00000E00000E00
000E00000E00000E00000E3FF00E7FF00E3FF00E07800E0F000E1E000E3C000E78000EF0
000FF8000FFC000F9C000F0E000E0F000E07000E03800E03C0FFC7F8FFC7F8FFC7F8151C
7F9B18>I<7FE000FFE0007FE00000E00000E00000E00000E00000E00000E00000E00000
E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000
E00000E00000E0007FFFC0FFFFE07FFFC0131C7E9B18>I<7CE0E000FFFBF8007FFFF800
1F1F1C001E1E1C001E1E1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C00
1C1C1C001C1C1C001C1C1C001C1C1C001C1C1C007F1F1F00FFBFBF807F1F1F0019148193
18>I<7E3E00FEFF807FFFC00FC1C00F80E00F00E00E00E00E00E00E00E00E00E00E00E0
0E00E00E00E00E00E00E00E00E00E00E00E07FC3FCFFE7FE7FC3FC1714809318>I<01F0
000FFE001FFF003E0F803803807001C07001C0E000E0E000E0E000E0E000E0E000E0F001
E07001C07803C03C07803E0F801FFF000FFE0001F00013147E9318>I<7E3E00FEFF807F
FFC00FC1E00F80E00F00700E00700E00380E00380E00380E00380E00380E00380F00700F
00700F80E00FC1E00FFFC00EFF800E3E000E00000E00000E00000E00000E00000E00000E
00007FC000FFE0007FC000151E809318>I<01E38007FB801FFF803E1F80380F80700780
700780E00380E00380E00380E00380E00380E00380700780700780380F803C1F801FFF80
0FFB8003E380000380000380000380000380000380000380000380003FF8003FF8003FF8
151E7E9318>I<7F87E0FF9FF07FBFF803F87803F03003E00003C00003C0000380000380
000380000380000380000380000380000380000380007FFE00FFFF007FFE0015147F9318
>I<07F7003FFF007FFF00780F00E00700E00700E007007C00007FE0001FFC0003FE0000
1F00600780E00380E00380F00380F80F00FFFF00FFFC00E7F00011147D9318>I<018000
0380000380000380000380007FFFC0FFFFC0FFFFC0038000038000038000038000038000
0380000380000380000380000380400380E00380E00380E001C1C001FFC000FF80003E00
13197F9818>I<7E07E0FE0FE07E07E00E00E00E00E00E00E00E00E00E00E00E00E00E00
E00E00E00E00E00E00E00E00E00E00E00E01E00F03E007FFFC03FFFE01FCFC1714809318
>I<7F8FF0FF8FF87F8FF01E03C00E03800E03800E0380070700070700070700038E0003
8E00038E00038E0001DC0001DC0001DC0000F80000F80000700015147F9318>I<FF8FF8
FF8FF8FF8FF83800E03800E03800E01C01C01C01C01C71C01CF9C01CF9C01CD9C01CD9C0
0DDD800DDD800DDD800D8D800F8F800F8F8007070015147F9318>I<7F8FF07F9FF07F8F
F0070700078E00039E0001DC0001F80000F80000700000F00000F80001DC00039E00038E
000707000F07807F8FF0FF8FF87F8FF015147F9318>I<7F8FF0FF8FF87F8FF00E01C00E
03800E0380070380070700070700038700038600038E0001CE0001CE0000CC0000CC0000
DC0000780000780000780000700000700000700000F00000E00079E0007BC0007F80003F
00001E0000151E7F9318>I<3FFFF07FFFF07FFFF07001E07003C0700780000F00001E00
003C0000F80001F00003C0000780000F00701E00703C0070780070FFFFF0FFFFF0FFFFF0
14147F9318>I<0007E0001FE0007FE000780000E00000E00000E00000E00000E00000E0
0000E00000E00000E00000E00000E00001E0007FC000FF8000FF80007FC00001E00000E0
0000E00000E00000E00000E00000E00000E00000E00000E00000E00000E000007800007F
E0001FE00007E013247E9F18>I<7C0000FF0000FFC00003C00000E00000E00000E00000
E00000E00000E00000E00000E00000E00000E00000E00000F000007FC0003FE0003FE000
7FC000F00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000
E00003C000FFC000FF00007C000013247E9F18>125 D E /Fk 53
122 df<007000E001C00380078007000E001E001E003C003C003C007800780078007800
7000F000F000F000F000F000F000F000F000F000F000F000F00070007800780078007800
3C003C003C001E001E000E0007000780038001C000E000700C2E7EA112>40
D<E000700038001C001E000E0007000780078003C003C003C001E001E001E001E000E000
F000F000F000F000F000F000F000F000F000F000F000F000E001E001E001E001E003C003
C003C00780078007000E001E001C0038007000E0000C2E7DA112>I<7878787818303060
60E0050A7D830D>44 D<FFC0FFC0FFC00A037F8B0F>I<F0F0F0F004047C830D>I<000100
030003000600060006000C000C000C00180018001800300030003000600060006000C000
C000C00180018001800300030003000600060006000C000C000C00180018001800300030
003000600060006000C000C000C000102D7DA117>I<003E00003E00005E00005E0000DE
0001DE00019E00039E00039E00079E00071E000F1E000E1E001E1E003C1E003C1E00781E
00781E00F01E00FFFFF0FFFFF0FFFFF0001E00001E00001E00001E00001E00001E00001E
00001E00141E7F9D17>52 D<001F0000001F0000003F8000003B8000003B8000007BC000
0073C0000071C00000F1E00000E1E00000E0E00001E0F00001E0F00001C0F00003C07800
03C078000380780007803C0007803C0007003C000FFFFE000FFFFE000FFFFE001E000F00
1E000F003C000F803C0007803C000780780007C0780003C0780003C0F00003E01B207F9F
1E>65 D<001FC000FFF801FFFC03E03C07800C0F00001E00003E00003C00007C00007800
00780000780000F00000F00000F00000F00000F00000F00000F00000F000007800007800
007800007C00003C00003E00001E00000F000207800E03E03E01FFFC00FFF0001FC01722
7DA01D>67 D<FFFC00FFFF80FFFFC0F007E0F001F0F000F8F00078F0003CF0003CF0001E
F0001EF0000EF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0001E
F0001EF0001EF0003CF0007CF000F8F001F0F007E0FFFFC0FFFF80FFFC0018207B9F21>
I<FFFFC0FFFFC0FFFFC0F00000F00000F00000F00000F00000F00000F00000F00000F000
00F00000F00000FFFF80FFFF80FFFF80F00000F00000F00000F00000F00000F00000F000
00F00000F00000F00000F00000F00000FFFFE0FFFFE0FFFFE013207B9F1B>I<FFFFC0FF
FFC0FFFFC0F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F0
0000FFFF00FFFF00FFFF00F00000F00000F00000F00000F00000F00000F00000F00000F0
0000F00000F00000F00000F00000F00000F0000012207B9F1A>I<001FE000FFF801FFFE
03E03E07800E0F00001E00003E00003C00007C0000780000780000780000F00000F00000
F00000F00000F00000F00000F003FEF003FE7803FE78001E78001E7C001E3C001E3E001E
1E001E0F001E07801E03E03E01FFFE00FFF8001FC017227DA01E>I<F00078F00078F000
78F00078F00078F00078F00078F00078F00078F00078F00078F00078F00078F00078FFFF
F8FFFFF8FFFFF8F00078F00078F00078F00078F00078F00078F00078F00078F00078F000
78F00078F00078F00078F00078F0007815207B9F20>I<F0F0F0F0F0F0F0F0F0F0F0F0F0
F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F004207C9F0D>I<F00000F00000F00000F0
0000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F0
0000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F0
0000F00000FFFF80FFFF80FFFF8011207B9F19>76 D<F80001F8FC0003F8FC0003F8F400
0378F6000778F6000778F6000778F3000E78F3000E78F3000E78F3801E78F3801E78F180
1C78F1C03C78F1C03C78F0C03878F0C03878F0E07878F0E07878F0607078F070F078F070
F078F030E078F039E078F039E078F019C078F019C078F019C078F00F8078F00F8078F00F
8078F00000781D207B9F28>I<FC0078FE0078FE0078F60078F70078F70078F38078F380
78F38078F3C078F1C078F1E078F1E078F0E078F0F078F07078F07078F07878F03878F03C
78F03C78F01C78F01E78F00E78F00E78F00E78F00778F00778F00378F003F8F003F8F001
F815207B9F20>I<003F000000FFC00003FFF00007E1F8000F807C001F003E001E001E00
3C000F003C000F00780007807800078078000780F00003C0F00003C0F00003C0F00003C0
F00003C0F00003C0F00003C0F00003C0F00003C0F80007C0780007807800078078000780
3C000F003C000F001E001E001F003E000F807C0007E1F80003FFF00000FFC000003F0000
1A227DA021>I<FFF800FFFF00FFFF80F00FC0F003E0F001E0F000F0F000F0F000F0F000
F0F000F0F000F0F000F0F001E0F003E0F00FC0FFFF80FFFF00FFF800F00000F00000F000
00F00000F00000F00000F00000F00000F00000F00000F00000F00000F0000014207B9F1D
>I<FFF800FFFF00FFFF80F007C0F003E0F001E0F000F0F000F0F000F0F000F0F000F0F0
01E0F003E0F007C0FFFF80FFFF00FFF800F03C00F01E00F01E00F00F00F00F00F00780F0
0780F003C0F001C0F001E0F000F0F000F0F00078F00078F0003C16207B9F1D>82
D<01FC0007FF800FFFC01F03C03C00C03C00007800007800007800007800007800007C00
003C00003F00001FE0000FFC0007FE0001FF00003F800007C00003C00003E00001E00001
E00001E00001E00001E00001C0C003C0F007C0FC0F807FFF001FFE0003F80013227EA019
>I<FFFFFFC0FFFFFFC0FFFFFFC0001E0000001E0000001E0000001E0000001E0000001E
0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E
0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E
0000001E0000001E0000001E0000001E0000001E00001A207E9F1F>I<F000F0F000F0F0
00F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F0
00F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000F07801E078
01E03C03C03C03C01F0F800FFF0007FE0001F80014217B9F1F>I<F00001E0F00001E078
0003C0780003C0780003C03C0007803C0007803C0007801E000F001E000F001F000F000F
001E000F001E0007801C0007803C0007803C0003C0380003C0780003C0780001E0700001
E0F00001E0F00000F0E00000F1E00000F1E0000071C000007BC000003B8000003B800000
3F8000001F0000001F00001B207F9F1E>I<F0007C000FF0007E000FF0007E000F78006E
000E7800EE001E7800E7001E7800E7001E3C00E7003C3C01E7803C3C01C7803C3C01C380
3C1E01C380781E03C3C0781E0383C0780E0381C0700F0381C0F00F0781E0F00F0701E0F0
070700E0E0078700E1E0078F00E1E0078E00F1E0038E0071C0038E0071C003CE0073C001
DC00738001DC003B8001DC003B8001DC003B8000F8003F0000F8001F0000F8001F002820
7F9F2B>I<780007807C000F003E001F001E001E000F003C000F807C000780780003C0F0
0003E1F00001F1E00000F3C000007FC000007F8000003F0000001F0000001E0000003F00
00007F8000007FC00000F3C00001F1E00001E0F00003C0F80007C0780007803C000F003E
001F001E001E000F003C000F807C0007C0780003C0F00003E01B207F9F1E>I<F80000F8
7C0001F03C0001E03E0003E01F0003C00F0007800F800F8007C00F0003C01F0003E01E00
01F03C0000F07C00007878000078F000003CF000001CE000001FE000000FC00000078000
000780000007800000078000000780000007800000078000000780000007800000078000
000780000007800000078000000780001D20809F1E>I<07E03FF87FFC701E401F000F00
0F000F003F07FF1FFF7E0FF80FF00FF00FF00FF83F7FFF3FEF1F8F10147E9316>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 /Fl 36 125 df<0E1F3F3F1D0102020404081020C0080E779F0E>39
D<7FF0FFE07FE00C037D8A10>45 D<070F1F1F0E0000000000000000000070F8F8F0E008
147B930E>58 D<00000200000006000000060000000E0000001E0000001E0000003F0000
002F0000004F0000004F0000008F0000010F0000010F0000020F0000020F0000040F0000
0C0F0000080F0000100F0000100F0000200F80003FFF800040078000C007800080078001
000780010007800200078002000780060007801E000F80FF807FF81D207E9F22>65
D<0000FE0200078186001C004C0038003C0060003C00C0001C01C0001803800018070000
180F0000181E0000101E0000103C0000003C000000780000007800000078000000780000
00F0000000F0000000F0000000F0000000F0000080700000807000008070000100380001
0038000200180004000C001800060020000381C00000FE00001F217A9F21>67
D<0000FC040007030C001C00980030007800E0007801C000380380003003800030070000
300E0000301E0000201E0000203C0000003C000000780000007800000078000000780000
00F0000000F000FFF0F0000780F0000780F0000F0070000F0070000F0070000F0070001E
0038001E0018003E001C002E000E00CC000383040000FC00001E217A9F23>71
D<01FE00007FC0001E0000FC00001E0000F80000170001780000170001780000270002F0
0000270004F00000270004F00000270008F00000470009E00000470011E00000470021E0
0000470021E00000870043C00000838043C00000838083C00000838083C0000103810780
000103820780000103820780000103840780000203840F00000203880F00000203900F00
000203900F00000401E01E00000401E01E00000401C01E00000C01801E00001C01803E00
00FF8103FFC0002A1F7D9E29>77 D<01FF007FE0001F000F00001F000400001780040000
1780040000278008000023C008000023C008000023C008000041E010000041E010000041
F010000040F010000080F0200000807820000080782000008078200001003C400001003C
400001003C400001001E400002001E800002001E800002000F800002000F800004000F00
00040007000004000700000C000700001C00020000FF80020000231F7D9E22>I<01FFFF
80001E00E0001E0070001E0038001E003C003C003C003C003C003C003C003C003C007800
7800780078007800F0007800E000F003C000F00F0000FFFC0000F0000001E0000001E000
0001E0000001E0000003C0000003C0000003C0000003C000000780000007800000078000
00078000000F800000FFF000001E1F7D9E1F>80 D<0FFFFFF01E0780E018078020100780
2020078020200F0020600F0020400F0020400F0020801E0040001E0000001E0000001E00
00003C0000003C0000003C0000003C00000078000000780000007800000078000000F000
0000F0000000F0000000F0000001E0000001E0000001E0000001E0000003E00000FFFF00
001C1F789E21>84 D<7FFC1FF807C003C00780010007800100078001000F0002000F0002
000F0002000F0002001E0004001E0004001E0004001E0004003C0008003C0008003C0008
003C00080078001000780010007800100078001000F0002000F0002000F0002000F00040
00F0004000700080007001000030020000380400000C18000007E000001D20779E22>I<
FFF007FC0F8000E00F0000C00F0000800F0001000F0001000F0002000F0004000F000400
0F8008000780080007801000078020000780200007804000078040000780800007810000
0781000007C2000003C2000003C4000003C8000003C8000003D0000003D0000003E00000
03C0000003C000000380000001800000010000001E20779E22>I<00F1800389C0070780
0E03801C03803C0380380700780700780700780700F00E00F00E00F00E00F00E20F01C40
F01C40703C40705C40308C800F070013147C9317>97 D<07803F8007000700070007000E
000E000E000E001C001C001CF01D0C3A0E3C0E380F380F700F700F700F700FE01EE01EE0
1EE01CE03CE038607060E031C01F0010207B9F15>I<007E0001C1000300800E07801E07
801C07003C0200780000780000780000F00000F00000F00000F00000F000007001007002
0030040018380007C00011147C9315>I<0000780003F800007000007000007000007000
00E00000E00000E00000E00001C00001C000F1C00389C00707800E03801C03803C038038
0700780700780700780700F00E00F00E00F00E00F00E20F01C40F01C40703C40705C4030
8C800F070015207C9F17>I<007C01C207010E011C013C013802780C7BF07C00F000F000
F000F0007000700170023804183807C010147C9315>I<00007800019C00033C00033C00
0718000700000700000E00000E00000E00000E00000E0001FFE0001C00001C00001C0000
1C0000380000380000380000380000380000700000700000700000700000700000700000
E00000E00000E00000E00000C00001C00001C0000180003180007B0000F300006600003C
00001629829F0E>I<003C6000E27001C1E00380E00700E00F00E00E01C01E01C01E01C0
1E01C03C03803C03803C03803C03803C07003C07001C0F001C17000C2E0003CE00000E00
000E00001C00001C00301C00783800F0700060E0003F8000141D7E9315>I<01E0000FE0
0001C00001C00001C00001C000038000038000038000038000070000070000071E000763
000E81800F01C00E01C00E01C01C03801C03801C03801C0380380700380700380700380E
10700E20700C20701C20700C40E00CC060070014207D9F17>I<00C001E001E001C00000
0000000000000000000000000E003300230043804300470087000E000E000E001C001C00
1C003840388030807080310033001C000B1F7C9E0E>I<01E0000FE00001C00001C00001
C00001C0000380000380000380000380000700000700000703C00704200E08E00E11E00E
21E00E40C01C80001D00001E00001FC00038E00038700038700038384070708070708070
7080703100E03100601E0013207D9F15>107 D<03C01FC0038003800380038007000700
070007000E000E000E000E001C001C001C001C0038003800380038007000700070007100
E200E200E200E200640038000A207C9F0C>I<1C0F80F0002630C318004740640C004780
680E004700700E004700700E008E00E01C000E00E01C000E00E01C000E00E01C001C01C0
38001C01C038001C01C038001C01C0708038038071003803806100380380E10038038062
007007006600300300380021147C9325>I<1C0F802630C0474060478060470070470070
8E00E00E00E00E00E00E00E01C01C01C01C01C01C01C0384380388380308380708380310
7003303001C016147C931A>I<007C0001C3000301800E01C01E01C01C01E03C01E07801
E07801E07801E0F003C0F003C0F003C0F00780F00700700F00700E0030180018700007C0
0013147C9317>I<01C1E002621804741C04781C04701E04701E08E01E00E01E00E01E00
E01E01C03C01C03C01C03C01C0380380780380700380E003C1C0072380071E0007000007
00000E00000E00000E00000E00001C00001C0000FFC000171D809317>I<00F0400388C0
0705800E03801C03803C0380380700780700780700780700F00E00F00E00F00E00F00E00
F01C00F01C00703C00705C0030B8000F3800003800003800007000007000007000007000
00E00000E0000FFE00121D7C9315>I<1C1E002661004783804787804707804703008E00
000E00000E00000E00001C00001C00001C00001C00003800003800003800003800007000
0030000011147C9313>I<00FC030206010C030C070C060C000F800FF007F803FC003E00
0E700EF00CF00CE008401020601F8010147D9313>I<018001C003800380038003800700
0700FFF007000E000E000E000E001C001C001C001C003800380038003820704070407080
708031001E000C1C7C9B0F>I<0E00C03300E02301C04381C04301C04701C08703800E03
800E03800E03801C07001C07001C07001C07101C0E20180E20180E201C1E200C264007C3
8014147C9318>I<0E03803307802307C04383C04301C04700C08700800E00800E00800E
00801C01001C01001C01001C02001C02001C04001C04001C08000E300003C00012147C93
15>I<0E00C1C03300E3C02301C3E04381C1E04301C0E04701C060870380400E0380400E
0380400E0380401C0700801C0700801C0700801C0701001C0701001C0602001C0F02000C
0F04000E13080003E1F0001B147C931E>I<0E00C03300E02301C04381C04301C04701C0
8703800E03800E03800E03801C07001C07001C07001C07001C0E00180E00180E001C1E00
0C3C0007DC00001C00001C00003800F03800F07000E06000C0C0004380003E0000131D7C
9316>121 D<FFFFFFFFFF8029017B8C2E>124 D E /Fm 42 122
df<787878781830306060E0050A7C830E>44 D<F0F0F0F004047B830E>46
D<00C001C007C0FFC0FFC0FBC003C003C003C003C003C003C003C003C003C003C003C003
C003C003C003C003C003C003C003C003C003C003C003C003C003C0FFFFFFFFFFFF10227C
A118>49 D<03F0000FFC001FFE003C1F003007807007C06003C0E003E0C001E04001E040
01E00001E00001E00001E00003C00003C0000780000780000F00001E00003C0000780000
F00001E00001C0000380000700000E00001C0000380000700000FFFFE0FFFFE0FFFFE013
227EA118>I<01F00007FC001FFF003E0F003807807003C02003C02003C00003C00003C0
0003C0000780000780000F00001E0003FC0003F80003FE00000F000007800003C00003C0
0001E00001E00001E00001E00001E08001E0C003C0E003C07007803C0F801FFF000FFC00
03F00013237EA118>I<001F00001F00002F00002F00006F0000EF0000CF0001CF0001CF
00038F00038F00078F00070F000F0F000E0F001E0F003C0F003C0F00780F00780F00F00F
00FFFFF8FFFFF8FFFFF8000F00000F00000F00000F00000F00000F00000F00000F00000F
0015217FA018>I<001F0000001F0000003F8000003F8000003B8000007BC0000073C000
0071C00000F1E00000F1E00000E0E00001E0F00001E0F00001C0F00003C0780003C07800
0380780007803C0007803C0007003C000F001E000F001E000FFFFE001FFFFF001FFFFF00
1C000F003C0007803C00078038000780780003C0780003C0700003C0F00001E0F00001E0
E00001E01B237EA220>65 D<000FF000007FFC0000FFFF0001F01F0003C0070007800000
0F0000001E0000003E0000003C0000003C000000780000007800000078000000F0000000
F0000000F0000000F0000000F0000000F0000000F0000000F0000000F000000078000000
78000000780000003C0000003C0000003E0000001E0000000F0000000780008003C00380
01F00F8000FFFF00007FFC00000FF00019257DA31F>67 D<FFFE0000FFFFC000FFFFE000
F003F000F000F800F0007C00F0003E00F0001E00F0000F00F0000F00F0000780F0000780
F0000780F00003C0F00003C0F00003C0F00003C0F00003C0F00003C0F00003C0F00003C0
F00003C0F0000380F0000780F0000780F0000780F0000F00F0001F00F0001E00F0003C00
F000FC00F003F800FFFFE000FFFFC000FFFE00001A237BA223>I<FFFFF0FFFFF0FFFFF0
F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000
FFFFE0FFFFE0FFFFE0F00000F00000F00000F00000F00000F00000F00000F00000F00000
F00000F00000F00000F00000F00000FFFFF8FFFFF8FFFFF815237BA21D>I<F0F0F0F0F0
F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F004237CA20D>
73 D<FC00007EFE0000FEFE0000FEFE0000FEF70001DEF70001DEF70001DEF78003DEF3
80039EF380039EF3C0079EF3C0079EF1C0071EF1C0071EF1E00F1EF0E00E1EF0E00E1EF0
F01E1EF0F01E1EF0701C1EF0783C1EF0783C1EF038381EF03C781EF03C781EF01C701EF0
1C701EF01EF01EF00EE01EF00EE01EF00FE01EF007C01EF007C01EF007C01EF000001E1F
237BA22A>77 D<001FC000007FF00001FFFC0003F07E0007C01F000F800F801F0007C01E
0003C03C0001E03C0001E0780000F0780000F0780000F070000070F0000078F0000078F0
000078F0000078F0000078F0000078F0000078F0000078F0000078780000F0780000F078
0000F07C0001F03C0001E03E0003E01E0003C01F0007C00F800F8007C01F0003F07E0001
FFFC00007FF000001FC0001D257DA324>79 D<FFFE00FFFF80FFFFC0F003E0F000F0F000
78F00078F0003CF0003CF0003CF0003CF0003CF0003CF00078F00078F000F0F003E0FFFF
C0FFFF80FFFE00F00000F00000F00000F00000F00000F00000F00000F00000F00000F000
00F00000F00000F00000F00000F0000016237BA21F>I<FFFC00FFFF80FFFFC0F003E0F0
00F0F00078F00038F0003CF0003CF0003CF0003CF0003CF00038F00078F000F0F003E0FF
FFC0FFFF80FFFE00F01E00F00F00F00700F00780F00380F003C0F001E0F001E0F000F0F0
00F0F00078F00038F0003CF0001EF0001EF0000F18237BA21F>82
D<00FE0003FFC007FFE00F81E01E00603C00003C00007800007800007800007800007800
007C00003C00003F00001FC0000FFC0007FF0001FF80003FC00007E00001F00000F00000
F8000078000078000078000078000078000078C000F0E000F0F801E07E07C03FFF800FFF
0001FC0015257EA31B>I<FFFFFFF0FFFFFFF0FFFFFFF0000F0000000F0000000F000000
0F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F000000
0F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F000000
0F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F000000
0F0000000F00001C237EA221>I<F0003CF0003CF0003CF0003CF0003CF0003CF0003CF0
003CF0003CF0003CF0003CF0003CF0003CF0003CF0003CF0003CF0003CF0003CF0003CF0
003CF0003CF0003CF0003CF0003CF0003CF0003CF0003C7800787800787800783C00F01E
01E01F87E00FFFC003FF0000FC0016247BA221>I<07E01FF83FFC381E201E000F000F00
0F000F00FF07FF1FFF3E0F780FF00FF00FF00FF00FF83F7FFF3FEF1F8F10167E9517>97
D<F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F000
00F00000F1F000F7FC00FFFE00FC1F00F80F00F00780F00780F003C0F003C0F003C0F003
C0F003C0F003C0F003C0F003C0F00780F00780F80F00FC3E00FFFE00F7F800F1F0001223
7CA219>I<01FC0007FF000FFF801F03803C0180780000780000700000F00000F00000F0
0000F00000F00000F000007800007800007800003C00401F03C00FFFC007FF8001FC0012
167E9516>I<0003C00003C00003C00003C00003C00003C00003C00003C00003C00003C0
0003C00003C00003C003E3C00FFBC01FFFC03F0FC03C07C07803C07803C0F003C0F003C0
F003C0F003C0F003C0F003C0F003C0F003C07803C07803C03C07C03E0FC01FFFC00FFBC0
03E3C012237EA219>I<03F00007FC001FFE003E0F003C0780780380780380F001C0FFFF
C0FFFFC0FFFFC0F00000F00000F000007000007800007800003C00801F07800FFF8007FF
0001F80012167E9516>I<003F00FF01FF03C00380078007800780078007800780078007
80FFF8FFF8FFF80780078007800780078007800780078007800780078007800780078007
800780078007800780102380A20F>I<01F07807FFF80FFFF81F1F001E0F003C07803C07
803C07803C07803C07801E0F001F1F000FFE001FFC0019F0003800003800003C00001FFE
001FFFC01FFFE03FFFF07801F07800F8F00078F00078F00078F000787800F03E03E01FFF
C00FFF8001FC0015217F9518>I<F000F000F000F000F000F000F000F000F000F000F000
F000F000F1F8F3FCF7FEFE1EF80FF80FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00F
F00FF00FF00FF00FF00FF00F10237CA219>I<F0F0F0F0000000000000000000F0F0F0F0
F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F004237DA20B>I<00F000F000F000F0000000
00000000000000000000000000000000F000F000F000F000F000F000F000F000F000F000
F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F080F0E3
E0FFE07FC01F000C2D83A20D>I<F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0
F0F0F0F0F0F0F0F0F0F0F0F0F004237DA20B>108 D<F0F807C0F3FE1FF0F7FF3FF8FE0F
7078FC0FE07CF807C03CF807C03CF007803CF007803CF007803CF007803CF007803CF007
803CF007803CF007803CF007803CF007803CF007803CF007803CF007803CF007803CF007
803C1E167C9527>I<F1F8F3FCF7FEFE1EF80FF80FF00FF00FF00FF00FF00FF00FF00FF0
0FF00FF00FF00FF00FF00FF00FF00FF00F10167C9519>I<01FC0007FF000FFF801F07C0
3C01E07800F07800F0700070F00078F00078F00078F00078F00078F000787800F07800F0
7C01F03E03E01F07C00FFF8007FF0001FC0015167F9518>I<F1F000F7FC00FFFE00FC3F
00F80F00F00780F00780F007C0F003C0F003C0F003C0F003C0F003C0F003C0F007C0F007
80F00F80F80F00FC3E00FFFE00F7F800F1F000F00000F00000F00000F00000F00000F000
00F00000F00000F00000F0000012207C9519>I<03E3C007FBC00FFFC01F0FC03C07C07C
03C07803C0F803C0F003C0F003C0F003C0F003C0F003C0F003C0F803C07803C07803C03C
07C03F0FC01FFFC00FFBC003E3C00003C00003C00003C00003C00003C00003C00003C000
03C00003C00003C012207E9519>I<F0E0F3E0F7E0FF00FE00FC00F800F800F000F000F0
00F000F000F000F000F000F000F000F000F000F000F0000B167C9511>I<07F01FFC3FFE
3C0E7806780078007C003F003FF01FF80FFC01FE001F000F000F000FC00FF81EFFFE3FFC
0FF010167F9513>I<0F000F000F000F000F000F00FFF8FFF8FFF80F000F000F000F000F
000F000F000F000F000F000F000F000F000F000F080F1C07FC07F803E00E1C7F9B12>I<
F00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF01F
F83F7FFF7FCF1F0F10167C9519>I<F001E0F001E07803C07803C07803C03C07803C0780
3C07801E07001E0F001E0F000F0E000F1E000F1E00071C00079C0007BC0003B80003B800
03F80001F00001F00013167F9516>I<F007803CF00FC03CF00FC03C780DC078781DC078
781DE078781CE0783C18E0F03C38E0F03C38F0F01C38F0E01E3871E01E3071E01E7079E0
0E7079C00E7039C00F603BC007603B8007601B8007C01F8007C01F8003C01F001E167F95
21>I<7801F07C01E03E03C01E07C00F0780078F0007DE0003FC0001FC0000F800007000
00F80001FC0003DC00039E00078F000F07801E07801E03C03C01E07800F0F800F8151680
9516>I<F001E0F001E07803C07803C07C03C03C07803C07801E07801E07001E0F000F0F
000F0E00071E00079E00039C00039C00039C0001980001D80000F80000F00000F00000F0
0000E00000E00001E00001C00001C0000380007F80007F00007E000013207F9516>I
E /Fn 27 90 df<3078F8787005057C840D>46 D<000C001C00FC0F3800380038003800
38003800700070007000700070007000E000E000E000E000E000E001C001C001C001C001
C001C0038003C0FFFE0F1E7C9D17>49 D<003F8000C1E00100F00200780400780400780F
007C0F807C0F807C0F00780600780000F80000F00001E00001C0000380000700000E0000
1C0000380000600000C0000180000300200600200800401000403FFFC07FFF80FFFF8016
1E7E9D17>I<007F000183C00201E00400F00700F00F00F00F01F00F01F00001E00001E0
0003C0000380000700000E0000F800000E000007000007800007C00003C00007C03007C0
7807C0F807C0F807C0F00780800F00400E00201C0018780007E000141F7D9D17>I<0000
600000600000E00001C00003C00005C0000DC00009C00011C000238000438000C3800083
80010380020380040700080700180700100700200700400700FFFFF0000E00000E00000E
00000E00000E00001C00001E0001FFE0141E7E9D17>I<01803001FFE003FFC003FF0003
FC00020000020000020000040000040000040000047C000587000603800C01800801C000
01C00001E00001E00001E00001E07003C0F803C0F003C0E00380800780400700400E0020
1C0018700007C000141F7D9D17>I<000010000000180000003800000038000000780000
0078000000FC000001BC0000013C0000033C0000023C0000063C0000043E0000081E0000
081E0000101E0000101E0000201E0000200F0000400F0000400F0000FFFF0000800F0001
000F8001000780020007800200078004000780040007800C0007C03E0007C0FF807FFC1E
207E9F22>65 D<07FFFF00007C01C0003C01E0003C00F0007800F8007800F8007800F800
7800F8007800F8007800F000F001F000F001E000F003C000F00F8000FFFE0000F00F0001
E007C001E003C001E003E001E001E001E001E001E001E003C001E003C003E003C003E003
C003C003C007C003C00F8007800F0007803E00FFFFF0001D1F7E9E20>I<0001F808000E
061800380138007000F801E0007803C0007007800030078000300F0000301F0000301E00
00303E0000203C0000007C0000007C0000007C0000007C000000F8000000F8000000F800
0000F8000000F80000007800004078000080780000803C0000803C0001001C0002000E00
020006000C000300100001C0E000003F00001D217B9F21>I<07FFFF00007C01E0003C00
F0003C00780078003C0078003C0078001E0078001E0078001E0078001F00F0001F00F000
1F00F0001F00F0001F00F0001F00F0001F01E0001E01E0003E01E0003E01E0003E01E000
3C01E0007C03C0007803C000F003C000F003C001E003C003C003C0078007800F0007803C
00FFFFE000201F7E9E23>I<07FFFFF8007C0078003C0038003C00180078001800780008
0078000800780008007800080078080800F0100000F0100000F0100000F0300000FFF000
00F0700001E0200001E0200001E0200001E0200001E0000801E0001003C0001003C00010
03C0002003C0002003C0006003C000C0078001C0078007C0FFFFFF801D1F7E9E1F>I<07
FFFFF8007C0078003C0038003C0018007800180078000800780008007800080078000800
78000800F0100000F0100000F0100000F0300000F0700000FFF00001E0600001E0200001
E0200001E0200001E0200001E0000003C0000003C0000003C0000003C0000003C0000003
C000000780000007C00000FFFE00001D1F7E9E1E>I<0001FC04000F030C003C009C0070
007C00E0003C01C0003803800018078000180F0000181F0000181E0000183E0000103C00
00007C0000007C0000007C0000007C000000F8000000F8000000F8007FFCF80003E07800
01E0780001E0780003C0780003C03C0003C03C0003C01C0003C00E0007C007000B800380
118001E06080003F80001E217B9F24>I<07FFC7FFC0007C00F800003C007800003C0078
00007800F000007800F000007800F000007800F000007800F000007800F00000F001E000
00F001E00000F001E00000F001E00000FFFFE00000F001E00001E003C00001E003C00001
E003C00001E003C00001E003C00001E003C00003C007800003C007800003C007800003C0
07800003C007800003C007800007800F000007C00F8000FFF8FFF800221F7E9E22>I<07
FFE0007C00003C00003C0000780000780000780000780000780000780000F00000F00000
F00000F00000F00000F00001E00001E00001E00001E00001E00001E00003C00003C00003
C00003C00003C00003C00007800007C000FFFC00131F7F9E10>I<00FFFC0007C00003C0
0003C0000780000780000780000780000780000780000F00000F00000F00000F00000F00
000F00001E00001E00001E00001E00001E00001E00003C00303C00783C00F83C00F83800
F0780080700040E00021C0001F000016207D9E17>I<07FFF000007E0000003C0000003C
000000780000007800000078000000780000007800000078000000F0000000F0000000F0
000000F0000000F0000000F0000001E0000001E0000001E0000001E0000001E0008001E0
010003C0010003C0010003C0030003C0020003C0060003C0060007801E0007807C00FFFF
FC00191F7E9E1C>76 D<07FC0000FFC0007C0000F800003C00017800003C00017800004E
0002F000004E0002F000004E0004F000004E0004F000004E0008F000004E0008F0000087
0011E00000870011E00000870021E00000870021E00000870041E00000838041E0000103
8083C00001038083C00001038103C00001038203C0000101C203C0000101C403C0000201
C40780000201C80780000201C80780000201D00780000200F00780000600E00780000600
E00F00000F00C00F8000FFE0C1FFF8002A1F7E9E2A>I<07FC01FFC0003E003E00003E00
1800003E001800004F001000004F001000004780100000478010000043C010000043C010
000083C020000081E020000081E020000080F020000080F0200000807820000100784000
01007C400001003C400001003C400001001E400001001E400002000F800002000F800002
000F800002000780000200078000060003800006000300000F00010000FFE0010000221F
7E9E22>I<0003F800001E0E000038070000E0038001C001C003C001E0078000E00F0000
F00F0000F01E0000F01E0000F83E0000F83C0000F87C0000F87C0000F87C0000F87C0000
F8F80001F0F80001F0F80001F0F80001F0F80003E0780003E0780003C0780007C07C0007
803C000F003C001E001E001C000E0038000700F00003C3C00000FE00001D217B9F23>I<
07FFFF00007C03C0003C01E0003C00F0007800F0007800F8007800F8007800F8007800F8
007800F000F001F000F001E000F003C000F0078000F00F0000FFF80001E0000001E00000
01E0000001E0000001E0000001E0000003C0000003C0000003C0000003C0000003C00000
03C000000780000007C00000FFFC00001D1F7E9E1F>I<07FFFC00007C0700003C03C000
3C01E0007801E0007801F0007801F0007801F0007801F0007801E000F003E000F003C000
F0078000F00F0000F03C0000FFF00001E0300001E0380001E01C0001E01C0001E01C0001
E01E0003C03E0003C03E0003C03E0003C03E0003C03E0003C03E0207803E0407C01F04FF
FC0F18000003E01F207E9E21>82 D<003F040060CC01803C03801C03001C070018060008
0E00080E00080E00080E00000F00000F80000FE00007FE0003FF8001FFC0007FE00007E0
0001E00000E00000F00000F04000E04000E04000E04000E06000C0600180E00380F80300
C60C0081F80016217D9F19>I<3FFFFFF03C0780F03007803060078030400F0010400F00
10C00F0010800F0010800F0010800F0010001E0000001E0000001E0000001E0000001E00
00001E0000003C0000003C0000003C0000003C0000003C0000003C000000780000007800
000078000000780000007800000078000000F0000001F800007FFFE0001C1F7A9E21>I<
FFF07FF81FF01F000FC007C01F00078003000F00078003000F00078002000F000F800200
0F000F8004000F001F8004000F0017C008000F8013C00800078023C01000078023C01000
078043C02000078043C02000078083C04000078083E0400007C101E0800003C101E08000
03C201E1000003C201E1000003C401E2000003C401E2000003C801F4000003E800F40000
01F000FC000001F000F8000001E000F8000001E000F0000001C000F0000001C000600000
00C0006000000080004000002C207A9E2F>87 D<03FFC0FFC0007F007E00003E00380000
1E003000001E002000000F004000000F008000000F81000000078200000007C600000003
C400000003E800000001F000000001F000000000F000000000F800000000F8000000017C
000000023C000000043C0000000C1E000000081E000000101F000000200F000000400F80
0000C0078000008007C000010003C000070003E0001F8007E000FFE01FFE00221F7F9E22
>I<FFF003FF1F8000F80F0000600F8000400780008007C0018003C0010003E0020001E0
040001F00C0001F0080000F0100000F8200000786000007C4000003C8000003F0000001F
0000001E0000001E0000001E0000001C0000003C0000003C0000003C0000003C0000003C
00000038000000780000007C00000FFFC000201F7A9E22>I E /Fo
1 16 df<03C00FF01FF83FFC7FFE7FFEFFFFFFFFFFFFFFFFFFFFFFFF7FFE7FFE3FFC1FF8
0FF003C010127D9317>15 D E /Fp 37 122 df<F8F8F8F8F805057A8411>46
D<00180000380000F80007F800FFF800FFF800F8F80000F80000F80000F80000F80000F8
0000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F8
0000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F8
0000F8007FFFF07FFFF07FFFF014287BA71E>49 D<00FE0003FFC007FFE00FFFF01F03F8
3C00FC38007E78003E70003EF0001FF0001F60001F20001F00001F00001F00001F00003E
00003E00007C00007C0000F80001F00001E00003C0000780000F00001E00003C00007800
00F00001E00003C0000780000F00001E00003C00007FFFFF7FFFFF7FFFFF7FFFFF18287E
A71E>I<007F000001FFC00007FFF0000FFFF8001FC1F8003E007C003C003E0078003E00
38003E0010003E0000003E0000003E0000003C0000007C000000FC000001F8000007F000
00FFE00000FFC00000FFE00000FFF0000001FC0000007C0000003E0000001F0000001F00
00000F8000000F8000000F8000000F8000000F8040000F8060001F00F0001F00F8003F00
7E007E003F81FC001FFFF8000FFFF00003FFE000007F000019297EA71E>I<0003F00000
07F0000005F000000DF000000DF000001DF0000039F0000039F0000079F0000079F00000
F1F00000F1F00001E1F00003E1F00003E1F00007C1F00007C1F0000F81F0000F81F0001F
01F0001F01F0003E01F0007C01F0007C01F000F801F000FFFFFF80FFFFFF80FFFFFF80FF
FFFF800001F0000001F0000001F0000001F0000001F0000001F0000001F0000001F00000
01F0000001F00019277EA61E>I<3FFFFC3FFFFC3FFFFC3FFFFC3E00003E00003E00003E
00003E00003E00003E00003E00003E00003E00003E3F003EFFC03FFFE03FFFF03FE1F83F
807C3F003E3E003E00003E00001F00001F00001F00001F00001F00001F00001F20001F60
003E70003EF8007C7C00FC3F03F81FFFF00FFFE007FF8000FE0018287EA61E>I<FFFFF0
0000FFFFFC0000FFFFFF0000F8003FC000F80007E000F80003F000F80001F800F80000FC
00F800007C00F800003E00F800001E00F800001F00F800000F00F800000F80F800000F80
F800000780F8000007C0F8000007C0F8000007C0F8000007C0F8000007C0F8000007C0F8
000007C0F8000007C0F8000007C0F8000007C0F800000780F800000F80F800000F80F800
000F80F800001F00F800001F00F800003E00F800007E00F800007C00F80000F800F80003
F000F80007E000F8003FC000FFFFFF0000FFFFFE0000FFFFF00000222A7BA92B>68
D<FFFFFFE0FFFFFFE0FFFFFFE0FFFFFFE0F8000000F8000000F8000000F8000000F80000
00F8000000F8000000F8000000F8000000F8000000F8000000F8000000F8000000F80000
00FFFFFF80FFFFFF80FFFFFF80FFFFFF80F8000000F8000000F8000000F8000000F80000
00F8000000F8000000F8000000F8000000F8000000F8000000F8000000F8000000F80000
00F8000000F8000000FFFFFFF0FFFFFFF0FFFFFFF0FFFFFFF01C2A7BA924>I<F8F8F8F8
F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8
F8F8052A7AA911>73 D<FE0000007F80FE0000007F80FE0000007F80FF000000FF80FB00
0000EF80FB800001EF80FB800001EF80FB800001EF80F9C00003CF80F9C00003CF80F9C0
0003CF80F8E000078F80F8E000078F80F8F0000F8F80F8F0000F8F80F870000F0F80F878
001F0F80F878001F0F80F838001E0F80F83C003E0F80F83C003E0F80F81E007C0F80F81E
007C0F80F80E00780F80F80F00F80F80F80F00F80F80F80700F00F80F80781F00F80F807
81F00F80F80381E00F80F803C3E00F80F803C3E00F80F801C3C00F80F801E7C00F80F800
E7800F80F800E7800F80F800E7800F80F8007F000F80F8007F000F80F8007F000F80F800
3E000F80F80000000F80292A7BA934>77 D<FF00003EFF00003EFF80003EFF80003EFBC0
003EFBC0003EF9E0003EF9E0003EF9F0003EF8F0003EF8F8003EF878003EF87C003EF83C
003EF83E003EF81E003EF81F003EF81F003EF80F803EF80F803EF807C03EF807C03EF803
E03EF803E03EF801F03EF801F03EF800F03EF800F83EF800783EF8007C3EF8003C3EF800
3E3EF8001E3EF8001F3EF8000F3EF8000F3EF80007BEF80007BEF80003FEF80003FEF800
01FEF80001FE1F2A7BA92A>I<0001FC0000000FFF8000003FFFE000007FFFF00001FE03
FC0003F800FE0007E0003F0007C0001F000F80000F801F000007C01F000007C03E000003
E03E000003E07C000001F07C000001F07C000001F078000000F0F8000000F8F8000000F8
F8000000F8F8000000F8F8000000F8F8000000F8F8000000F8F8000000F8F8000000F8F8
000000F87C000001F07C000001F07C000001F07E000003F03E000003E03F000007E01F00
0007C01F80000FC00FC0001F8007E0003F0007F0007F0003F800FE0001FE03FC0000FFFF
F800003FFFE000000FFF80000001FC0000252C7DAA2C>I<FFFFE000FFFFFC00FFFFFF00
F8003F80F8000FC0F80007E0F80001E0F80001F0F80000F0F80000F8F80000F8F80000F8
F80000F8F80000F8F80000F8F80000F0F80001F0F80001F0F80003E0F8000FC0F8003F80
FFFFFF00FFFFFE00FFFFF000F8000000F8000000F8000000F8000000F8000000F8000000
F8000000F8000000F8000000F8000000F8000000F8000000F8000000F8000000F8000000
F8000000F8000000F80000001D2A7BA926>I<007FC00001FFF80007FFFE000FFFFF001F
C07F003F000F007E0006007C0000007C000000F8000000F8000000F8000000F8000000F8
000000FC0000007E0000007F0000003F8000001FF800000FFF800007FFE00003FFF80000
FFFC00000FFE000000FF0000003F0000001F8000000F8000000FC0000007C0000007C000
0007C0000007C0000007C0000007C000000F8060000F80F0001F00FC003F00FF80FE007F
FFFC001FFFF80007FFE00000FF80001A2C7DAA21>83 D<FFFFFFFFF0FFFFFFFFF0FFFFFF
FFF0FFFFFFFFF00000F800000000F800000000F800000000F800000000F800000000F800
000000F800000000F800000000F800000000F800000000F800000000F800000000F80000
0000F800000000F800000000F800000000F800000000F800000000F800000000F8000000
00F800000000F800000000F800000000F800000000F800000000F800000000F800000000
F800000000F800000000F800000000F800000000F800000000F800000000F800000000F8
00000000F800000000F800000000F80000242A7EA929>I<01FE000FFF803FFFC03FFFE0
3C03F03001F00001F80000F80000F80000F80000F80000F8007FF807FFF81FFFF83FE0F8
7F00F8FC00F8F800F8F800F8F800F8FC01F87E07F87FFFF83FFFF81FFCF80FE0F8151B7E
9A1D>97 D<F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F8
0000F80000F80000F80000F80000F83F00F9FFC0FBFFE0FFFFF0FF07F0FC01F8F800FCF8
007CF8007CF8007EF8003EF8003EF8003EF8003EF8003EF8003EF8003EF8007CF8007CF8
007CFC00F8FC01F8FF07F0FFFFE0FBFFC0F9FF80F87E00172A7BA91F>I<007FC001FFF0
07FFFC0FFFFC1FC07C1F00083E00007C00007C00007C0000F80000F80000F80000F80000
F80000F80000F800007C00007C00007E00003E00001F000C1FC07C0FFFFC07FFFC01FFF0
007F80161B7E9A1B>I<00003E00003E00003E00003E00003E00003E00003E00003E0000
3E00003E00003E00003E00003E00003E00003E00FC3E03FF3E07FFFE0FFFFE1FC1FE3F00
7E3E003E7C003E7C003EFC003EF8003EF8003EF8003EF8003EF8003EF8003EF8003EFC00
3E7C003E7C003E3E007E3F00FE1FC1FE0FFFFE07FFBE03FF3E00FC3E172A7EA91F>I<00
7E0003FF8007FFC00FFFE01F83F03F00F03E00787C00787C003878003CFFFFFCFFFFFCFF
FFFCFFFFFCF80000F80000F800007800007C00007C00003E00003F000C1FC07C0FFFFC07
FFFC01FFF0007F80161B7E9A1B>I<001FC0007FC000FFC001FFC003F00003E00007C000
07C00007C00007C00007C00007C00007C00007C00007C000FFFE00FFFE00FFFE0007C000
07C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C000
07C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C000122A7F
A912>I<00F8078003FE7FC00FFFFFC01FFFFFC01F07C0003E03E0003E03E0007C01F000
7C01F0007C01F0007C01F0007C01F0007C01F0003E03E0003E03E0001F07C0001FFFC000
3FFF80003BFE000038F8000078000000780000003C0000003FFFC0003FFFF8001FFFFC00
1FFFFE003FFFFF007C007F00F8001F80F8000F80F8000F80F8000F80FC001F807E003F00
3F80FE003FFFFE000FFFF80007FFF00000FF80001A287E9A1E>I<F80000F80000F80000
F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000
F83F00F8FF80FBFFC0FFFFE0FF07E0FE03F0FC01F0FC01F0FC01F0F801F0F801F0F801F0
F801F0F801F0F801F0F801F0F801F0F801F0F801F0F801F0F801F0F801F0F801F0F801F0
F801F0F801F0F801F0142A7BA91F>I<F8F8F8F8F800000000000000000000F8F8F8F8F8
F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8052A7CA90E>I<007C007C007C00
7C007C0000000000000000000000000000000000000000007C007C007C007C007C007C00
7C007C007C007C007C007C007C007C007C007C007C007C007C007C007C007C007C007C00
7C007C007C007C007C007C007C007C007C40FCF1F8FFF8FFF07FE00F800E3683A910>I<
F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8
F8F8F8F8F8F8052A7CA90E>108 D<F83F003F00F8FFC0FFC0FBFFE3FFE0FFFFF7FFF0FF
83F783F0FE01FE01F8FC00FC00F8FC00FC00F8FC00FC00F8F800F800F8F800F800F8F800
F800F8F800F800F8F800F800F8F800F800F8F800F800F8F800F800F8F800F800F8F800F8
00F8F800F800F8F800F800F8F800F800F8F800F800F8F800F800F8F800F800F8F800F800
F8F800F800F8251B7B9A30>I<F83F00F8FF80FBFFC0FFFFE0FF07E0FE03F0FC01F0FC01
F0FC01F0F801F0F801F0F801F0F801F0F801F0F801F0F801F0F801F0F801F0F801F0F801
F0F801F0F801F0F801F0F801F0F801F0F801F0F801F0141B7B9A1F>I<007F000001FFC0
0007FFF0000FFFF8001FC1FC003F007E003E003E007C001F007C001F0078000F00F8000F
80F8000F80F8000F80F8000F80F8000F80F8000F80F8000F807C001F007C001F007E003F
003E003E003F007E001FC1FC000FFFF80007FFF00001FFC000007F0000191B7E9A1E>I<
F83F00F9FFC0FBFFE0FFFFF0FF07F0FC01F8F800FCF800FCF8007CF8007EF8003EF8003E
F8003EF8003EF8003EF8003EF8003EF8007CF8007CF800FCFC00F8FC03F8FF07F0FFFFE0
FBFFC0F9FF80F87E00F80000F80000F80000F80000F80000F80000F80000F80000F80000
F80000F80000F8000017277B9A1F>I<F838F8F8F9F8FBF8FFC0FF00FE00FE00FC00FC00
F800F800F800F800F800F800F800F800F800F800F800F800F800F800F800F800F8000D1B
7B9A14>114 D<03FC001FFF803FFFC07FFFC07C07C0F80080F80000F80000F80000FC00
007F80007FF8003FFE001FFF0007FF8000FFC0000FE00007E00003E00003E04003E0E007
E0FC0FC0FFFFC07FFF801FFE0003F800131B7E9A17>I<07C00007C00007C00007C00007
C00007C00007C000FFFFC0FFFFC0FFFFC007C00007C00007C00007C00007C00007C00007
C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007
C04007E1C003FFE003FFE001FF8000FC0013227FA116>I<F801F0F801F0F801F0F801F0
F801F0F801F0F801F0F801F0F801F0F801F0F801F0F801F0F801F0F801F0F801F0F801F0
F801F0F801F0F801F0F801F0F803F0F803F0FC0FF0FFFFF07FFDF03FF9F01FC1F0141B7B
9A1F>I<F800FC007CF801FC007C7C01FE00787C01DE00F87C01DE00F87C03DE00F83E03
CF00F03E03CF01F03E038F01F03E078F01F01F078F83E01F078783E01F070783E00F0F07
83C00F8F07C7C00F8F03C7C00F8E03C7C0078E03C780079E01C780079E01E78003DC01EF
0003DC01EF0003DC00EF0003D800EF0001F800FE0001F800FE0001F8007E00261B7F9A29
>119 D<7C000FC03E001F803F001F001F803E000F807C0007C0FC0003E0F80001F1F000
01FBE00000FFC000007FC000003F8000001F0000001F0000003F8000007FC00000FBC000
00F3E00001F1F00003E0F80007C07C000F807C000F803E001F001F003E000F807E000FC0
FC0007E01B1B809A1C>I<F8000F80FC000F807C001F007E001F003E003E003E003E001F
003E001F007C001F007C000F807C000F80F80007C0F80007C0F00007C1F00003E1F00003
E1E00001E1E00001E3E00001F3C00000F3C00000F3800000738000007380000037000000
3F0000003E0000001E0000001E0000003C0000003C0000003C0000007800000078000000
F0000000F000007FE000007FE000007FC000007F00000019277F9A1C>I
E /Fq 18 122 df<FFFFFFFFFFFFE00000FFFFFFFFFFFFFE0000FFFFFFFFFFFFFFC000FF
FFFFFFFFFFFFF000FFFFFFFFFFFFFFF800001FFF800001FFFE00001FFF8000007FFF0000
1FFF8000003FFF80001FFF8000001FFFC0001FFF8000000FFFC0001FFF80000007FFE000
1FFF80000007FFF0001FFF80000007FFF0001FFF80000003FFF0001FFF80000003FFF800
1FFF80000003FFF8001FFF80000003FFF8001FFF80000003FFF8001FFF80000003FFF800
1FFF80000003FFF8001FFF80000003FFF8001FFF80000003FFF8001FFF80000003FFF000
1FFF80000007FFF0001FFF80000007FFE0001FFF8000000FFFE0001FFF8000000FFFC000
1FFF8000001FFF80001FFF8000003FFF00001FFF8000007FFE00001FFF800001FFFC0000
1FFF800007FFF000001FFFFFFFFFFFC000001FFFFFFFFFFE0000001FFFFFFFFFFF800000
1FFFFFFFFFFFF000001FFF800000FFFC00001FFF8000003FFF00001FFF8000000FFFC000
1FFF80000007FFE0001FFF80000003FFF0001FFF80000003FFF8001FFF80000001FFF800
1FFF80000001FFFC001FFF80000000FFFC001FFF80000000FFFE001FFF80000000FFFE00
1FFF80000000FFFE001FFF80000000FFFF001FFF800000007FFF001FFF800000007FFF00
1FFF800000007FFF001FFF800000007FFF001FFF80000000FFFF001FFF80000000FFFF00
1FFF80000000FFFF001FFF80000000FFFE001FFF80000000FFFE001FFF80000001FFFE00
1FFF80000001FFFC001FFF80000003FFFC001FFF80000007FFF8001FFF80000007FFF000
1FFF8000001FFFE0001FFF8000003FFFE0001FFF800001FFFF80FFFFFFFFFFFFFFFF00FF
FFFFFFFFFFFFFC00FFFFFFFFFFFFFFF000FFFFFFFFFFFFFFC000FFFFFFFFFFFFF8000048
477CC654>66 D<FFFFFFFFFFFFC0000000FFFFFFFFFFFFFE000000FFFFFFFFFFFFFFC000
00FFFFFFFFFFFFFFF00000FFFFFFFFFFFFFFFC0000001FFF800007FFFF0000001FFF8000
007FFF8000001FFF8000000FFFE000001FFF80000007FFF000001FFF80000001FFF80000
1FFF80000000FFFC00001FFF800000007FFE00001FFF800000003FFF00001FFF80000000
1FFF00001FFF800000000FFF80001FFF800000000FFFC0001FFF8000000007FFC0001FFF
8000000007FFE0001FFF8000000003FFE0001FFF8000000003FFF0001FFF8000000003FF
F0001FFF8000000003FFF8001FFF8000000001FFF8001FFF8000000001FFF8001FFF8000
000001FFFC001FFF8000000001FFFC001FFF8000000001FFFC001FFF8000000001FFFC00
1FFF8000000001FFFC001FFF8000000001FFFE001FFF8000000000FFFE001FFF80000000
00FFFE001FFF8000000000FFFE001FFF8000000000FFFE001FFF8000000000FFFE001FFF
8000000000FFFE001FFF8000000000FFFE001FFF8000000000FFFE001FFF8000000000FF
FE001FFF8000000000FFFE001FFF8000000000FFFE001FFF8000000000FFFE001FFF8000
000001FFFE001FFF8000000001FFFC001FFF8000000001FFFC001FFF8000000001FFFC00
1FFF8000000001FFFC001FFF8000000001FFF8001FFF8000000001FFF8001FFF80000000
01FFF8001FFF8000000003FFF0001FFF8000000003FFF0001FFF8000000003FFF0001FFF
8000000007FFE0001FFF8000000007FFE0001FFF800000000FFFC0001FFF800000000FFF
80001FFF800000001FFF80001FFF800000003FFF00001FFF800000003FFE00001FFF8000
00007FFC00001FFF80000001FFF800001FFF80000003FFF000001FFF8000000FFFE00000
1FFF8000007FFFC000001FFF800003FFFF0000FFFFFFFFFFFFFFFE0000FFFFFFFFFFFFFF
F80000FFFFFFFFFFFFFFC00000FFFFFFFFFFFFFE000000FFFFFFFFFFFFC00000004F477C
C65B>68 D<FFFFFFFFFFFF800000FFFFFFFFFFFFFC0000FFFFFFFFFFFFFF0000FFFFFFFF
FFFFFFC000FFFFFFFFFFFFFFF000001FFF80000FFFFC00001FFF800001FFFE00001FFF80
00007FFF00001FFF8000003FFF80001FFF8000001FFFC0001FFF8000000FFFC0001FFF80
00000FFFE0001FFF8000000FFFE0001FFF80000007FFF0001FFF80000007FFF0001FFF80
000007FFF0001FFF80000007FFF8001FFF80000007FFF8001FFF80000007FFF8001FFF80
000007FFF8001FFF80000007FFF8001FFF80000007FFF8001FFF80000007FFF8001FFF80
000007FFF8001FFF80000007FFF0001FFF80000007FFF0001FFF80000007FFF0001FFF80
00000FFFE0001FFF8000000FFFE0001FFF8000000FFFC0001FFF8000001FFF80001FFF80
00003FFF80001FFF8000007FFF00001FFF800001FFFE00001FFF80000FFFF800001FFFFF
FFFFFFF000001FFFFFFFFFFFC000001FFFFFFFFFFE0000001FFFFFFFFFF00000001FFFC0
0000000000001FFFC00000000000001FFFC00000000000001FFFC00000000000001FFFC0
0000000000001FFFC00000000000001FFFC00000000000001FFFC00000000000001FFFC0
0000000000001FFFC00000000000001FFFC00000000000001FFFC00000000000001FFFC0
0000000000001FFFC00000000000001FFFC00000000000001FFFC00000000000001FFFC0
0000000000001FFFC00000000000001FFFC00000000000001FFFC00000000000001FFFC0
0000000000001FFFC00000000000001FFFC00000000000001FFFC00000000000001FFFC0
0000000000001FFFC00000000000001FFFC00000000000FFFFFFFFF800000000FFFFFFFF
F800000000FFFFFFFFF800000000FFFFFFFFF800000000FFFFFFFFF80000000045477CC6
51>80 D<0007FFFC000000007FFFFFC0000001FFFFFFF8000003FFFFFFFE000007FE001F
FF000007FF0003FFC0000FFF8001FFE0000FFF8000FFF0000FFF80007FF0000FFF80007F
F8000FFF80007FF80007FF00003FFC0007FF00003FFC0003FE00003FFC0000F800003FFC
00000000003FFC00000000003FFC00000000003FFC00000000003FFC00000007FFFFFC00
0000FFFFFFFC000007FFFFFFFC00003FFFE03FFC0000FFFE003FFC0003FFF0003FFC0007
FFC0003FFC000FFF00003FFC001FFE00003FFC003FFC00003FFC007FF800003FFC007FF8
00003FFC00FFF000003FFC00FFF000003FFC00FFF000003FFC00FFF000003FFC00FFF000
003FFC00FFF000007FFC007FF80000FFFC007FF80001EFFC003FFC0003EFFC003FFF0007
CFFF000FFFC03F8FFFF807FFFFFF07FFFC01FFFFFC03FFFC007FFFF001FFFC0003FF8000
7FF8362E7DAD3A>97 D<007FC00000000000FFFFC00000000000FFFFC00000000000FFFF
C00000000000FFFFC00000000000FFFFC0000000000003FFC0000000000001FFC0000000
000001FFC0000000000001FFC0000000000001FFC0000000000001FFC0000000000001FF
C0000000000001FFC0000000000001FFC0000000000001FFC0000000000001FFC0000000
000001FFC0000000000001FFC0000000000001FFC0000000000001FFC0000000000001FF
C0000000000001FFC0000000000001FFC0000000000001FFC0000000000001FFC0000000
000001FFC00FFC00000001FFC07FFFC0000001FFC3FFFFF0000001FFCFFFFFFC000001FF
DFF00FFF000001FFFF8003FF800001FFFE0001FFC00001FFF800007FE00001FFF000007F
F00001FFE000003FF80001FFE000001FFC0001FFE000001FFC0001FFE000001FFE0001FF
E000001FFE0001FFE000000FFF0001FFE000000FFF0001FFE000000FFF0001FFE000000F
FF0001FFE000000FFF8001FFE000000FFF8001FFE000000FFF8001FFE000000FFF8001FF
E000000FFF8001FFE000000FFF8001FFE000000FFF8001FFE000000FFF8001FFE000000F
FF8001FFE000000FFF8001FFE000000FFF0001FFE000000FFF0001FFE000000FFF0001FF
E000001FFE0001FFE000001FFE0001FFE000001FFC0001FFE000001FFC0001FFE000003F
F80001FFF000003FF80001FFF800007FF00001FFFC0000FFE00001FFFE0001FFC00001FF
BF0007FF800001FF1FE01FFE000001FE0FFFFFFC000001FC03FFFFF0000001F800FFFF80
000001F0001FF800000039487CC742>I<00001FFFC0000000FFFFF8000007FFFFFE0000
1FFFFFFF80007FFC00FFC000FFE001FFC001FFC003FFE003FF8003FFE007FF0003FFE00F
FE0003FFE00FFE0003FFE01FFC0001FFC01FFC0001FFC03FFC0000FF803FFC00003E007F
F8000000007FF8000000007FF800000000FFF800000000FFF800000000FFF800000000FF
F800000000FFF800000000FFF800000000FFF800000000FFF800000000FFF800000000FF
F8000000007FF8000000007FF8000000007FFC000000003FFC000000003FFC000000001F
FC000000F81FFE000000F80FFE000000F80FFF000001F007FF800003F003FFC00007E001
FFE0000FC000FFF0001F80007FFE00FF00001FFFFFFE000007FFFFF8000000FFFFE00000
001FFE00002D2E7CAD35>I<00001FFE00000001FFFFE0000007FFFFF800001FFFFFFE00
007FFC07FF0000FFE001FF8001FFC0007FC003FF80003FE007FF00003FF00FFE00001FF0
1FFE00000FF81FFC00000FF83FFC00000FFC3FFC000007FC7FFC000007FC7FF8000007FC
7FF8000007FE7FF8000007FEFFF8000007FEFFF8000007FEFFFFFFFFFFFEFFFFFFFFFFFE
FFFFFFFFFFFEFFFFFFFFFFFCFFF800000000FFF800000000FFF800000000FFF800000000
7FF8000000007FF8000000007FFC000000003FFC000000003FFC000000003FFC0000001C
1FFE0000003E0FFE0000003E07FF0000007E07FF000000FC03FF800001F801FFC00003F0
007FF0001FE0003FFE00FFC0001FFFFFFF800007FFFFFE000000FFFFF80000000FFF8000
2F2E7DAD36>101 D<00000000001F8000007FF000FFE00007FFFF03FFF0001FFFFFC7FF
F0007FFFFFFFC7F800FFE03FFE0FF801FF800FFC0FF803FF0007FE0FF807FE0003FF07F0
07FE0003FF07F00FFC0001FF81C00FFC0001FF80000FFC0001FF80001FFC0001FFC0001F
FC0001FFC0001FFC0001FFC0001FFC0001FFC0001FFC0001FFC0001FFC0001FFC0000FFC
0001FF80000FFC0001FF80000FFC0001FF800007FE0003FF000007FE0003FF000003FF00
07FE000001FF800FFC000000FFE03FF8000001FFFFFFF0000001DFFFFFC0000003C7FFFF
00000003C07FF000000007C0000000000007C0000000000007C0000000000007C0000000
000007E0000000000007F0000000000007F8000000000007FFFFFFF0000007FFFFFFFF00
0003FFFFFFFFE00003FFFFFFFFF80001FFFFFFFFFE0001FFFFFFFFFF0000FFFFFFFFFF80
007FFFFFFFFF8003FFFFFFFFFFC00FFFFFFFFFFFC01FF800001FFFE03FE0000001FFE07F
C00000007FF07FC00000003FF0FF800000001FF0FF800000001FF0FF800000001FF0FF80
0000001FF0FF800000001FF07FC00000003FE07FC00000003FE03FE00000007FC03FF000
0000FFC01FFC000003FF800FFF00000FFF0003FFF000FFFC0000FFFFFFFFF000003FFFFF
FFC0000007FFFFFE000000003FFFC0000035447DAE3B>103 D<007FC00000000000FFFF
C00000000000FFFFC00000000000FFFFC00000000000FFFFC00000000000FFFFC0000000
000003FFC0000000000001FFC0000000000001FFC0000000000001FFC0000000000001FF
C0000000000001FFC0000000000001FFC0000000000001FFC0000000000001FFC0000000
000001FFC0000000000001FFC0000000000001FFC0000000000001FFC0000000000001FF
C0000000000001FFC0000000000001FFC0000000000001FFC0000000000001FFC0000000
000001FFC0000000000001FFC0000000000001FFC001FFC0000001FFC00FFFF8000001FF
C03FFFFE000001FFC0FFFFFF000001FFC1FC07FF800001FFC3E003FFC00001FFC7C001FF
C00001FFCF0001FFE00001FFDE0000FFE00001FFDC0000FFE00001FFFC0000FFF00001FF
F80000FFF00001FFF00000FFF00001FFF00000FFF00001FFF00000FFF00001FFE00000FF
F00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FF
E00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FF
F00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FF
E00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FF
F00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FF
E00000FFF00001FFE00000FFF00001FFE00000FFF000FFFFFFC07FFFFFE0FFFFFFC07FFF
FFE0FFFFFFC07FFFFFE0FFFFFFC07FFFFFE0FFFFFFC07FFFFFE03B487CC742>I<00FC00
01FE0003FF0007FF800FFFC01FFFE01FFFE01FFFE01FFFE01FFFE01FFFE00FFFC007FF80
03FF0001FE0000FC00000000000000000000000000000000000000000000000000000000
000000000000007FC0FFFFC0FFFFC0FFFFC0FFFFC0FFFFC003FFC001FFC001FFC001FFC0
01FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC0
01FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC0
01FFC001FFC001FFC001FFC001FFC001FFC001FFC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
18497CC820>I<007FC000FFFFC000FFFFC000FFFFC000FFFFC000FFFFC00003FFC00001
FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001
FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001
FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001
FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001
FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001
FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001
FFC00001FFC00001FFC00001FFC00001FFC00001FFC000FFFFFF80FFFFFF80FFFFFF80FF
FFFF80FFFFFF8019487CC720>108 D<007FC001FFC00000FFE00000FFFFC00FFFF80007
FFFC0000FFFFC03FFFFE001FFFFF0000FFFFC0FFFFFF007FFFFF8000FFFFC1FC07FF80FE
03FFC000FFFFC3E003FFC1F001FFE00003FFC7C001FFC3E000FFE00001FFCF0001FFE780
00FFF00001FFDE0000FFEF00007FF00001FFDC0000FFEE00007FF00001FFFC0000FFFE00
007FF80001FFF80000FFFC00007FF80001FFF00000FFF800007FF80001FFF00000FFF800
007FF80001FFF00000FFF800007FF80001FFE00000FFF000007FF80001FFE00000FFF000
007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF000
007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF000
007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF000
007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF000
007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF000
007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF000
007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF000
007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF000
007FF800FFFFFFC07FFFFFE03FFFFFF0FFFFFFC07FFFFFE03FFFFFF0FFFFFFC07FFFFFE0
3FFFFFF0FFFFFFC07FFFFFE03FFFFFF0FFFFFFC07FFFFFE03FFFFFF05C2E7CAD63>I<00
7FC001FFC00000FFFFC00FFFF80000FFFFC03FFFFE0000FFFFC0FFFFFF0000FFFFC1FC07
FF8000FFFFC3E003FFC00003FFC7C001FFC00001FFCF0001FFE00001FFDE0000FFE00001
FFDC0000FFE00001FFFC0000FFF00001FFF80000FFF00001FFF00000FFF00001FFF00000
FFF00001FFF00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001
FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000
FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001
FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000
FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001
FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000
FFF000FFFFFFC07FFFFFE0FFFFFFC07FFFFFE0FFFFFFC07FFFFFE0FFFFFFC07FFFFFE0FF
FFFFC07FFFFFE03B2E7CAD42>I<00000FFF0000000000FFFFF000000007FFFFFE000000
1FFFFFFF8000003FFC03FFC00000FFE0007FF00001FF80001FF80003FF00000FFC0007FE
000007FE000FFE000007FF000FFC000003FF001FFC000003FF803FFC000003FFC03FF800
0001FFC03FF8000001FFC07FF8000001FFE07FF8000001FFE07FF8000001FFE0FFF80000
01FFF0FFF8000001FFF0FFF8000001FFF0FFF8000001FFF0FFF8000001FFF0FFF8000001
FFF0FFF8000001FFF0FFF8000001FFF0FFF8000001FFF0FFF8000001FFF07FF8000001FF
E07FF8000001FFE07FF8000001FFE07FF8000001FFE03FFC000003FFC03FFC000003FFC0
1FFC000003FF801FFE000007FF800FFE000007FF0007FF00000FFE0003FF80001FFC0001
FFC0003FF80000FFE0007FF000007FFC03FFE000001FFFFFFF80000007FFFFFE00000000
FFFFF0000000000FFF000000342E7DAD3B>I<007FC00FFC000000FFFFC07FFFC00000FF
FFC3FFFFF00000FFFFCFFFFFFC0000FFFFDFF01FFF0000FFFFFF8007FF800003FFFE0001
FFC00001FFF80000FFE00001FFF00000FFF00001FFE000007FF80001FFE000003FFC0001
FFE000003FFC0001FFE000003FFE0001FFE000001FFE0001FFE000001FFF0001FFE00000
1FFF0001FFE000001FFF0001FFE000000FFF0001FFE000000FFF8001FFE000000FFF8001
FFE000000FFF8001FFE000000FFF8001FFE000000FFF8001FFE000000FFF8001FFE00000
0FFF8001FFE000000FFF8001FFE000000FFF8001FFE000000FFF8001FFE000000FFF0001
FFE000001FFF0001FFE000001FFF0001FFE000001FFE0001FFE000001FFE0001FFE00000
3FFC0001FFE000003FFC0001FFE000007FF80001FFF000007FF80001FFF80000FFF00001
FFFC0001FFE00001FFFE0003FFC00001FFFF0007FF800001FFFFE03FFE000001FFEFFFFF
FC000001FFE3FFFFF0000001FFE0FFFF80000001FFE01FF800000001FFE0000000000001
FFE0000000000001FFE0000000000001FFE0000000000001FFE0000000000001FFE00000
00000001FFE0000000000001FFE0000000000001FFE0000000000001FFE0000000000001
FFE0000000000001FFE0000000000001FFE0000000000001FFE0000000000001FFE00000
000000FFFFFFC000000000FFFFFFC000000000FFFFFFC000000000FFFFFFC000000000FF
FFFFC00000000039427CAD42>I<00FF803F8000FFFF80FFF000FFFF83FFFC00FFFF87FF
FE00FFFF8FC3FF00FFFF8F07FF0003FF9E0FFF8001FFBC0FFF8001FFB80FFF8001FFF80F
FF8001FFF00FFF8001FFF007FF0001FFF007FF0001FFE003FE0001FFE000F80001FFE000
000001FFE000000001FFC000000001FFC000000001FFC000000001FFC000000001FFC000
000001FFC000000001FFC000000001FFC000000001FFC000000001FFC000000001FFC000
000001FFC000000001FFC000000001FFC000000001FFC000000001FFC000000001FFC000
000001FFC000000001FFC000000001FFC000000001FFC000000001FFC000000001FFC000
000001FFC0000000FFFFFFE00000FFFFFFE00000FFFFFFE00000FFFFFFE00000FFFFFFE0
0000292E7CAD31>114 D<000FFF00E0007FFFF3E001FFFFFFE007FFFFFFE00FF800FFE0
1FC0001FE03F80000FE03F000007E07F000003E07F000003E0FF000003E0FF000003E0FF
800003E0FFC0000000FFF0000000FFFE000000FFFFF800007FFFFFC0007FFFFFF0003FFF
FFFC001FFFFFFF000FFFFFFF8007FFFFFFC003FFFFFFE000FFFFFFF0003FFFFFF00003FF
FFF800001FFFF8000000FFFC0000001FFC7800000FFCF8000007FCF8000003FCFC000003
FCFC000003FCFE000003F8FE000003F8FF000003F8FF800007F0FFC0000FF0FFF0001FE0
FFFC00FFC0FFFFFFFF80FC7FFFFE00F81FFFF800E003FF8000262E7CAD2F>I<7FFFFFC0
00FFFF807FFFFFC000FFFF807FFFFFC000FFFF807FFFFFC000FFFF807FFFFFC000FFFF80
00FFF000000FE00000FFF800000FC00000FFF800000FC000007FFC00000F8000007FFC00
001F8000003FFC00001F0000003FFE00003F0000001FFE00003E0000001FFF00007E0000
000FFF00007C0000000FFF8000FC00000007FF8000F800000007FFC001F800000003FFC0
01F000000003FFE003F000000003FFE003F000000001FFF003E000000001FFF007E00000
0000FFF007C000000000FFF80FC0000000007FF80F80000000007FFC1F80000000003FFC
1F00000000003FFE3F00000000001FFE3E00000000001FFF7E00000000000FFF7C000000
00000FFFFC00000000000FFFFC000000000007FFF8000000000007FFF8000000000003FF
F0000000000003FFF0000000000001FFE0000000000001FFE0000000000000FFC0000000
000000FFC00000000000007F800000000000007F800000000000003F000000000000003F
000000000000003F000000000000003E000000000000007E000000000000007C00000000
000000FC000000001F8000F8000000003FC001F8000000007FE001F000000000FFF003F0
00000000FFF003E000000000FFF007E000000000FFF00FC000000000FFF01F8000000000
FFF03F80000000007FE07F00000000007F43FE00000000003FFFF800000000001FFFF000
0000000007FFC0000000000001FE00000000000039427EAD3F>121
D E /Fr 8 117 df<00001E000000003E00000000FE00000003FE0000003FFE0000FFFF
FE0000FFFFFE0000FFFFFE0000FFCFFE0000000FFE0000000FFE0000000FFE0000000FFE
0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE00
00000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000
000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE000000
0FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000F
FE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE
0000000FFE0000000FFE0000000FFE00007FFFFFFFC07FFFFFFFC07FFFFFFFC07FFFFFFF
C0223879B731>49 D<0000001FFF000030000001FFFFE000F000000FFFFFFC01F000007F
FFFFFE03F00001FFFE007F87F00003FFE0000FCFF0000FFF000003FFF0001FFC000001FF
F0003FF80000007FF0007FF00000003FF000FFC00000003FF001FFC00000001FF003FF80
0000000FF007FF000000000FF00FFF0000000007F00FFE0000000007F01FFE0000000003
F01FFE0000000003F03FFC0000000003F03FFC0000000001F03FFC0000000001F07FFC00
00000001F07FF80000000001F07FF80000000000007FF8000000000000FFF80000000000
00FFF8000000000000FFF8000000000000FFF8000000000000FFF8000000000000FFF800
0000000000FFF8000000000000FFF8000000000000FFF8000000000000FFF80000000000
00FFF80000000000007FF80000000000007FF80000000000007FF80000000000007FFC00
00000000F03FFC0000000000F03FFC0000000000F03FFC0000000000F01FFE0000000000
F01FFE0000000001E00FFE0000000001E00FFF0000000001E007FF0000000003C003FF80
00000003C001FFC0000000078000FFE00000000F00007FF00000001F00003FF80000003E
00001FFC0000007C00000FFF000001F8000003FFE00007F0000001FFFE003FC00000007F
FFFFFF000000000FFFFFFC0000000001FFFFF000000000001FFF0000003C3D7BBB47>67
D<001FFF00000001FFFFF0000003FFFFFC000007F007FE00000FF801FF00001FFC00FF80
001FFC007FC0001FFC007FE0001FFC003FE0000FF8003FF0000FF8003FF00007F0003FF0
0001C0003FF0000000003FF0000000003FF0000000003FF0000000FFFFF000000FFFFFF0
00007FF83FF00001FF803FF00007FE003FF0000FF8003FF0001FF0003FF0003FE0003FF0
007FE0003FF0007FE0003FF000FFC0003FF000FFC0003FF000FFC0003FF000FFC0003FF0
00FFC0007FF0007FE0007FF0007FE000DFF0003FF0039FF8001FFC0F0FFFF007FFFE0FFF
F001FFFC07FFF0003FE000FFF02C267DA530>97 D<0001FFC000000FFFF800003FFFFE00
00FF80FF0001FE003F8007FC001FC00FF8000FE00FF8000FF01FF00007F03FF00007F83F
F00007F87FE00007F87FE00003FC7FE00003FC7FE00003FCFFE00003FCFFFFFFFFFCFFFF
FFFFFCFFFFFFFFFCFFE0000000FFE0000000FFE0000000FFE00000007FE00000007FE000
00007FE00000003FE00000003FF000003C1FF000003C1FF000003C0FF800007807FC0000
F803FE0001F001FF0007E000FFC03FC0003FFFFF000007FFFC000000FFE00026267DA52D
>101 D<00FF00000000FFFF00000000FFFF00000000FFFF00000000FFFF0000000007FF
0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF
0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF
0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF007FC00003FF
01FFF80003FF07FFFC0003FF0F03FE0003FF1C01FF0003FF3001FF8003FF6000FF8003FF
E000FFC003FFC000FFC003FF8000FFC003FF8000FFC003FF8000FFC003FF0000FFC003FF
0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF
0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF
0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF
0000FFC003FF0000FFC003FF0000FFC0FFFFFC3FFFFFFFFFFC3FFFFFFFFFFC3FFFFFFFFF
FC3FFFFF303C7CBB37>104 D<00FF01FF8000FFFF0FFFF000FFFF3FFFFC00FFFFFE03FF
00FFFFF000FF8003FFC0007FC003FF80003FE003FF00003FF003FF00001FF803FF00001F
FC03FF00000FFC03FF00000FFE03FF00000FFE03FF000007FE03FF000007FF03FF000007
FF03FF000007FF03FF000007FF03FF000007FF03FF000007FF03FF000007FF03FF000007
FF03FF000007FF03FF000007FE03FF000007FE03FF00000FFE03FF00000FFC03FF00000F
FC03FF00001FF803FF00001FF803FF00003FF003FF80003FE003FFC0007FC003FFF001FF
8003FFFC07FF0003FF3FFFFC0003FF0FFFF00003FF01FF000003FF0000000003FF000000
0003FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF000000
0003FF0000000003FF0000000003FF0000000003FF0000000003FF00000000FFFFFC0000
00FFFFFC000000FFFFFC000000FFFFFC00000030377DA537>112
D<00FE03F000FFFE0FFE00FFFE1FFF00FFFE3C3F80FFFE707FC007FE60FFE003FEE0FFE0
03FEC0FFE003FFC0FFE003FF807FC003FF807FC003FF803F8003FF800E0003FF00000003
FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF
00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00
000003FF00000003FF00000003FF00000003FF00000003FF000000FFFFFE0000FFFFFE00
00FFFFFE0000FFFFFE000023267DA529>114 D<00078000000780000007800000078000
00078000000F8000000F8000000F8000000F8000001F8000001F8000003F8000003F8000
007F800000FF800001FF800007FF80001FFFFFF0FFFFFFF0FFFFFFF0FFFFFFF001FF8000
01FF800001FF800001FF800001FF800001FF800001FF800001FF800001FF800001FF8000
01FF800001FF800001FF800001FF800001FF800001FF800001FF800001FF800001FF8000
01FF803C01FF803C01FF803C01FF803C01FF803C01FF803C01FF803C01FF803C00FF8078
00FFC078007FC070003FE0E0001FFFC00007FF800001FF001E377EB626>116
D E /Fs 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<7038F87CFC7EFC7E743A040204020402080408041008
1008201040200F0E7E9F17>34 D<70F8FCFC74040404080810102040060E7C9F0D>39
D<0020004000800100020006000C000C00180018003000300030007000600060006000E0
00E000E000E000E000E000E000E000E000E000E000E00060006000600070003000300030
00180018000C000C000600020001000080004000200B2E7DA112>I<8000400020001000
08000C00060006000300030001800180018001C000C000C000C000E000E000E000E000E0
00E000E000E000E000E000E000E000C000C000C001C00180018001800300030006000600
0C00080010002000400080000B2E7DA112>I<01800180018001800180C183F18F399C0F
F003C003C00FF0399CF18FC1830180018001800180018010147DA117>I<70F8FCFC7404
0404080810102040060E7C840D>44 D<FFC0FFC00A027F8A0F>I<70F8F8F87005057C84
0D>I<000100030003000600060006000C000C000C001800180018003000300030006000
60006000C000C000C00180018001800300030003000600060006000C000C000C00180018
001800300030003000600060006000C000C000C000102D7DA117>I<03F0000E1C001C0E
00180600380700700380700380700380700380F003C0F003C0F003C0F003C0F003C0F003
C0F003C0F003C0F003C0F003C0F003C0F003C0F003C07003807003807003807807803807
001806001C0E000E1C0003F000121F7E9D17>I<018003800F80F3800380038003800380
038003800380038003800380038003800380038003800380038003800380038003800380
0380038007C0FFFE0F1E7C9D17>I<03F0000C1C00100E00200700400780800780F007C0
F803C0F803C0F803C02007C00007C0000780000780000F00000E00001C00003800007000
00600000C0000180000300000600400C00401800401000803FFF807FFF80FFFF80121E7E
9D17>I<03F0000C1C00100E00200F00780F80780780780780380F80000F80000F00000F
00000E00001C0000380003F000003C00000E00000F000007800007800007C02007C0F807
C0F807C0F807C0F00780400780400F00200E001C3C0003F000121F7E9D17>I<00060000
0600000E00000E00001E00002E00002E00004E00008E00008E00010E00020E00020E0004
0E00080E00080E00100E00200E00200E00400E00C00E00FFFFF0000E00000E00000E0000
0E00000E00000E00000E0000FFE0141E7F9D17>I<1803001FFE001FFC001FF8001FE000
10000010000010000010000010000010000011F000161C00180E00100700100780000380
0003800003C00003C00003C07003C0F003C0F003C0E00380400380400700200600100E00
0C380003E000121F7E9D17>I<007C000182000701000E03800C07801C07803803003800
00780000700000700000F1F000F21C00F40600F80700F80380F80380F003C0F003C0F003
C0F003C0F003C07003C07003C07003803803803807001807000C0E00061C0001F000121F
7E9D17>I<4000007FFFC07FFF807FFF8040010080020080020080040000080000080000
100000200000200000400000400000C00000C00001C00001800003800003800003800003
8000078000078000078000078000078000078000078000030000121F7D9D17>I<03F000
0C0C001006003003002001806001806001806001807001807803003E03003F06001FC800
0FF00003F80007FC000C7E00103F00300F806003804001C0C001C0C000C0C000C0C000C0
C000806001802001001002000C0C0003F000121F7E9D17>I<03F0000E18001C0C003806
00380700700700700380F00380F00380F003C0F003C0F003C0F003C0F003C07007C07007
C03807C0180BC00E13C003E3C0000380000380000380000700300700780600780E00700C
002018001070000FC000121F7E9D17>I<70F8F8F8700000000000000000000070F8F8F8
7005147C930D>I<70F8F8F8700000000000000000000070F0F8F8780808081010102020
40051D7C930D>I<7FFFFFE0FFFFFFF00000000000000000000000000000000000000000
000000000000000000000000FFFFFFF07FFFFFE01C0C7D9023>61
D<0FC0307040384038E03CF03CF03C603C0038007000E000C00180018001000300020002
0002000200020002000000000000000000000007000F800F800F8007000E207D9F15>63
D<000100000003800000038000000380000007C0000007C0000007C0000009E0000009E0
000009E0000010F0000010F0000010F00000207800002078000020780000403C0000403C
0000403C0000801E0000801E0000FFFE0001000F0001000F0001000F0002000780020007
8002000780040003C00E0003C01F0007E0FFC03FFE1F207F9F22>65
D<FFFFE0000F80380007801E0007801F0007800F0007800F8007800F8007800F8007800F
8007800F8007800F0007801F0007801E0007803C0007FFF00007803C0007801E0007800F
0007800F8007800780078007C0078007C0078007C0078007C0078007C00780078007800F
8007800F0007801F000F803C00FFFFF0001A1F7E9E20>I<000FC040007030C001C009C0
038005C0070003C00E0001C01E0000C01C0000C03C0000C07C0000407C00004078000040
F8000000F8000000F8000000F8000000F8000000F8000000F8000000F8000000F8000000
780000007C0000407C0000403C0000401C0000401E0000800E0000800700010003800200
01C0040000703800000FC0001A217D9F21>I<FFFFE0000F803C0007801E000780070007
800380078003C0078001E0078001E0078001F0078000F0078000F0078000F8078000F807
8000F8078000F8078000F8078000F8078000F8078000F8078000F8078000F0078000F007
8000F0078001E0078001E0078003C0078003800780070007800E000F803C00FFFFE0001D
1F7E9E23>I<FFFFFF000F800F0007800300078003000780010007800180078000800780
008007800080078080800780800007808000078080000781800007FF8000078180000780
800007808000078080000780800007800020078000200780002007800040078000400780
0040078000C0078000C0078001800F800F80FFFFFF801B1F7E9E1F>I<FFFFFF000F800F
000780030007800300078001000780018007800080078000800780008007800080078080
000780800007808000078080000781800007FF8000078180000780800007808000078080
000780800007800000078000000780000007800000078000000780000007800000078000
000FC00000FFFE0000191F7E9E1E>I<000FE0200078186000E004E0038002E0070001E0
0F0000E01E0000601E0000603C0000603C0000207C00002078000020F8000000F8000000
F8000000F8000000F8000000F8000000F8000000F8007FFCF80003E0780001E07C0001E0
3C0001E03C0001E01E0001E01E0001E00F0001E0070001E0038002E000E0046000781820
000FE0001E217D9F24>I<FFF8FFF80F800F8007800F0007800F0007800F0007800F0007
800F0007800F0007800F0007800F0007800F0007800F0007800F0007800F0007FFFF0007
800F0007800F0007800F0007800F0007800F0007800F0007800F0007800F0007800F0007
800F0007800F0007800F0007800F0007800F000F800F80FFF8FFF81D1F7E9E22>I<FFFC
0FC007800780078007800780078007800780078007800780078007800780078007800780
07800780078007800780078007800780078007800FC0FFFC0E1F7F9E10>I<0FFFC0007C
00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C
00003C00003C00003C00003C00003C00003C00003C00003C00003C00203C00F83C00F83C
00F83C00F0380040780040700030E0000F800012207E9E17>I<FFFC0FFC0FC003E00780
018007800100078002000780040007800800078010000780200007804000078080000781
00000783000007878000078F80000793C0000791E00007A1E00007C0F0000780F0000780
780007803C0007803C0007801E0007801E0007800F000780078007800780078007C00FC0
07E0FFFC3FFC1E1F7E9E23>I<FFFE000FC0000780000780000780000780000780000780
000780000780000780000780000780000780000780000780000780000780000780000780
0007800207800207800207800207800607800407800407800C07801C0F807CFFFFFC171F
7E9E1C>I<FF80001FF80F80001F800780001F0005C0002F0005C0002F0005C0002F0004
E0004F0004E0004F000470008F000470008F000470008F000438010F000438010F000438
010F00041C020F00041C020F00041C020F00040E040F00040E040F00040E040F00040708
0F000407080F000407080F000403900F000403900F000401E00F000401E00F000401E00F
000E00C00F001F00C01F80FFE0C1FFF8251F7E9E2A>I<FF803FF807C007C007C0038005
E0010005E0010004F001000478010004780100043C0100043C0100041E0100040F010004
0F010004078100040781000403C1000401E1000401E1000400F1000400F1000400790004
003D0004003D0004001F0004001F0004000F0004000700040007000E0003001F000300FF
E001001D1F7E9E22>I<001F800000F0F00001C0380007801E000F000F000E0007001E00
07803C0003C03C0003C07C0003E0780001E0780001E0F80001F0F80001F0F80001F0F800
01F0F80001F0F80001F0F80001F0F80001F0F80001F0780001E07C0003E07C0003E03C00
03C03C0003C01E0007800E0007000F000F0007801E0001C0380000F0F000001F80001C21
7D9F23>I<FFFFE0000F80780007801C0007801E0007800F0007800F8007800F8007800F
8007800F8007800F8007800F8007800F0007801E0007801C000780780007FFE000078000
000780000007800000078000000780000007800000078000000780000007800000078000
000780000007800000078000000FC00000FFFC0000191F7E9E1F>I<001F800000F0F000
01C0380007801E000F000F000E0007001E0007803C0003C03C0003C07C0003E07C0003E0
780001E0F80001F0F80001F0F80001F0F80001F0F80001F0F80001F0F80001F0F80001F0
F80001F0780001E0780001E07C0003E03C0003C03C0F03C01E1087800E2047000F204F00
07A03E0001E0380000F0F010001FB01000003010000038300000387000003FF000001FE0
00001FE000000FC0000007801C297D9F23>I<FFFF80000F80F0000780780007803C0007
801E0007801E0007801F0007801F0007801F0007801F0007801E0007801E0007803C0007
8078000780F00007FF80000781C0000780E0000780F00007807000078078000780780007
80780007807C0007807C0007807C0007807C0407807E0407803E040FC01E08FFFC0F1000
0003E01E207E9E21>I<07E0800C1980100780300380600180600180E00180E00080E000
80E00080F00000F000007800007F00003FF0001FFC000FFE0003FF00001F800007800003
C00003C00001C08001C08001C08001C08001C0C00180C00380E00300F00600CE0C0081F8
0012217D9F19>I<7FFFFFE0780F01E0600F0060400F0020400F0020C00F0030800F0010
800F0010800F0010800F0010000F0000000F0000000F0000000F0000000F0000000F0000
000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000
000F0000000F0000000F0000000F0000001F800007FFFE001C1F7E9E21>I<FFFC3FF80F
C007C0078003800780010007800100078001000780010007800100078001000780010007
800100078001000780010007800100078001000780010007800100078001000780010007
80010007800100078001000780010007800100038002000380020001C0020001C0040000
E008000070180000382000000FC0001D207E9E22>I<FFF003FE1F8000F80F0000600F80
0060078000400780004003C0008003C0008003C0008001E0010001E0010001F0010000F0
020000F0020000F806000078040000780400003C0800003C0800003C0800001E1000001E
1000001F3000000F2000000F20000007C0000007C0000007C00000038000000380000003
8000000100001F207F9E22>I<FFF07FF81FF01F800FC007C00F00078003800F00078001
000F0007C00100078007C00200078007C00200078007C0020003C009E0040003C009E004
0003C009E0040003E010F00C0001E010F0080001E010F0080001F02078080000F0207810
0000F02078100000F0403C10000078403C20000078403C20000078C03E2000003C801E40
00003C801E4000003C801E4000001F000F8000001F000F8000001F000F8000001E000780
00000E00070000000E00070000000C000300000004000200002C207F9E2F>I<7FF83FF8
0FE00FC007C0070003C0020001E0040001F00C0000F0080000781000007C1000003C2000
003E4000001E4000000F8000000F8000000780000003C0000007E0000005E0000009F000
0018F8000010780000207C0000603C0000401E0000801F0001800F0001000780020007C0
070003C01F8007E0FFE01FFE1F1F7F9E22>I<FFF003FF1F8000F80F8000600780004007
C0004003E0008001E0008001F0010000F0030000F80200007C0400003C0400003E080000
1E0800001F1000000FB0000007A0000007C0000003C0000003C0000003C0000003C00000
03C0000003C0000003C0000003C0000003C0000003C0000003C0000007C000007FFE0020
1F7F9E22>I<FEFEC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
C0C0C0C0C0C0C0C0C0C0C0C0C0FEFE072D7CA10D>91 D<08041008201020104020402080
4080408040B85CFC7EFC7E7C3E381C0F0E7B9F17>I<FEFE060606060606060606060606
0606060606060606060606060606060606060606060606060606060606FEFE072D7FA10D
>I<1FE000303000781800781C00300E00000E00000E00000E0000FE00078E001E0E0038
0E00780E00F00E10F00E10F00E10F01E10781E103867200F83C014147E9317>97
D<0E0000FE00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00
000E3E000EC3800F01C00F00E00E00E00E00700E00700E00780E00780E00780E00780E00
780E00780E00700E00700E00E00F00E00D01C00CC300083E0015207F9F19>I<03F80E0C
1C1E381E380C70007000F000F000F000F000F000F00070007000380138011C020E0C03F0
10147E9314>I<000380003F800003800003800003800003800003800003800003800003
8000038000038003E380061B801C0780380380380380700380700380F00380F00380F003
80F00380F00380F003807003807003803803803807801C07800E1B8003E3F815207E9F19
>I<03F0000E1C001C0E00380700380700700700700380F00380F00380FFFF80F00000F0
0000F000007000007000003800801800800C010007060001F80011147F9314>I<007C00
C6018F038F07060700070007000700070007000700FFF007000700070007000700070007
00070007000700070007000700070007000700070007007FF01020809F0E>I<0000E003
E3300E3C301C1C30380E00780F00780F00780F00780F00780F00380E001C1C001E380033
E0002000002000003000003000003FFE001FFF800FFFC03001E0600070C00030C00030C0
0030C000306000603000C01C038003FC00141F7F9417>I<0E0000FE00000E00000E0000
0E00000E00000E00000E00000E00000E00000E00000E00000E3E000E43000E81800F01C0
0F01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C0
0E01C00E01C00E01C0FFE7FC16207F9F19>I<1C001E003E001E001C0000000000000000
00000000000E007E000E000E000E000E000E000E000E000E000E000E000E000E000E000E
000E000E000E00FFC00A1F809E0C>I<00E001F001F001F000E000000000000000000000
0000007007F000F000700070007000700070007000700070007000700070007000700070
00700070007000700070007000706070F060F0C061803F000C28829E0E>I<0E0000FE00
000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E0FF00E03
C00E03000E02000E04000E08000E10000E30000E70000EF8000F38000E1C000E1E000E0E
000E07000E07800E03800E03C00E03E0FFCFF815207F9F18>I<0E00FE000E000E000E00
0E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E00
0E000E000E000E000E000E000E000E00FFE00B20809F0C>I<0E1F01F000FE618618000E
81C81C000F00F00E000F00F00E000E00E00E000E00E00E000E00E00E000E00E00E000E00
E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00E0
0E000E00E00E000E00E00E00FFE7FE7FE023147F9326>I<0E3E00FE43000E81800F01C0
0F01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C0
0E01C00E01C00E01C0FFE7FC16147F9319>I<01F800070E001C03803801C03801C07000
E07000E0F000F0F000F0F000F0F000F0F000F0F000F07000E07000E03801C03801C01C03
80070E0001F80014147F9317>I<0E3E00FEC3800F01C00F00E00E00E00E00F00E00700E
00780E00780E00780E00780E00780E00780E00700E00F00E00E00F01E00F01C00EC3000E
3E000E00000E00000E00000E00000E00000E00000E00000E0000FFE000151D7F9319>I<
03E0800619801C05803C0780380380780380700380F00380F00380F00380F00380F00380
F003807003807803803803803807801C0B800E138003E380000380000380000380000380
000380000380000380000380003FF8151D7E9318>I<0E78FE8C0F1E0F1E0F0C0E000E00
0E000E000E000E000E000E000E000E000E000E000E000E00FFE00F147F9312>I<1F9030
704030C010C010C010E00078007F803FE00FF00070803880188018C018C018E030D0608F
800D147E9312>I<020002000200060006000E000E003E00FFF80E000E000E000E000E00
0E000E000E000E000E000E000E080E080E080E080E080610031001E00D1C7F9B12>I<0E
01C0FE1FC00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E
01C00E01C00E01C00E01C00E03C00603C0030DC001F1FC16147F9319>I<FF83F81E01E0
1C00C00E00800E00800E008007010007010003820003820003820001C40001C40001EC00
00E80000E80000700000700000700000200015147F9318>I<FF9FE1FC3C0780701C0300
601C0380200E0380400E0380400E03C0400707C0800704C0800704E08003886100038871
0003C8730001D0320001D03A0000F03C0000E01C0000E01C0000601800004008001E147F
9321>I<7FC3FC0F01E00701C007018003810001C20000E40000EC00007800003800003C
00007C00004E000087000107000303800201C00601E01E01E0FF07FE1714809318>I<FF
83F81E01E01C00C00E00800E00800E008007010007010003820003820003820001C40001
C40001EC0000E80000E800007000007000007000002000002000004000004000004000F0
8000F08000F100006200003C0000151D7F9318>I<3FFF380E200E201C40384078407000
E001E001C00380078007010E011E011C0338027006700EFFFE10147F9314>I<FFFFFC16
01808C17>I E /Ft 46 122 df<70F8FCFC7404040404080810102040060F7C840E>44
D<FFE0FFE00B027F8B10>I<70F8F8F87005057C840E>I<01F000071C000C060018030038
03803803807001C07001C07001C07001C0F001E0F001E0F001E0F001E0F001E0F001E0F0
01E0F001E0F001E0F001E0F001E0F001E0F001E0F001E07001C07001C07001C07803C038
03803803801C07000C0600071C0001F00013227EA018>48 D<008003800F80F380038003
800380038003800380038003800380038003800380038003800380038003800380038003
80038003800380038003800380038007C0FFFE0F217CA018>I<03F8000C1E0010070020
07804007C07807C07803C07807C03807C0000780000780000700000F00000E0000380003
F000001C00000F000007800007800003C00003C00003E02003E07003E0F803E0F803E0F0
03C04003C0400780200780100F000C1C0003F00013227EA018>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<03FFF0001F00000F00000F00000F00000F
00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F
00000F00000F00000F00000F00000F00000F00000F00000F00700F00F80F00F80F00F80E
00F01E00401C0020380018700007C00014237EA119>I<FFC00003FF0FC00003F007C000
03E005E00005E005E00005E004F00009E004F00009E004F00009E004780011E004780011
E004780011E0043C0021E0043C0021E0043C0021E0041E0041E0041E0041E0040F0081E0
040F0081E0040F0081E004078101E004078101E004078101E00403C201E00403C201E004
01E401E00401E401E00401E401E00400F801E00400F801E00400F801E004007001E00E00
7001E01F007003F0FFE0203FFF28227EA12D>77 D<FF8007FF07C000F807C0007005E000
2004F0002004F0002004780020047C0020043C0020041E0020041F0020040F0020040780
20040780200403C0200401E0200401E0200400F0200400F8200400782004003C2004003E
2004001E2004000F2004000F20040007A0040003E0040003E0040001E0040001E0040000
E00E0000601F000060FFE0002020227EA125>I<FFFFF0000F803C0007800F0007800780
078007C0078003C0078003E0078003E0078003E0078003E0078003E0078003E0078003C0
078007C00780078007800F0007803C0007FFF00007800000078000000780000007800000
078000000780000007800000078000000780000007800000078000000780000007800000
078000000FC00000FFFC00001B227EA121>80 D<FFFFE000000F803C000007800E000007
80078000078007C000078003C000078003E000078003E000078003E000078003E0000780
03E000078003C000078007C000078007800007800E000007803C000007FFE00000078070
0000078038000007801C000007801E000007800E000007800F000007800F000007800F00
0007800F000007800F800007800F800007800F800007800F808007800FC080078007C080
0FC003C100FFFC01E2000000007C0021237EA124>82 D<03F0200C0C601802603001E070
00E0600060E00060E00060E00020E00020E00020F00000F000007800007F00003FF0001F
FE000FFF0003FF80003FC00007E00001E00000F00000F000007080007080007080007080
0070C00060C00060E000C0F000C0C80180C6070081FC0014247DA21B>I<7FFFFFF87807
807860078018400780084007800840078008C007800C8007800480078004800780048007
800400078000000780000007800000078000000780000007800000078000000780000007
800000078000000780000007800000078000000780000007800000078000000780000007
8000000780000007800000078000000FC00003FFFF001E227EA123>I<0FE0001838003C
0C003C0E0018070000070000070000070000FF0007C7001E07003C0700780700700700F0
0708F00708F00708F00F087817083C23900FC1E015157E9418>97
D<0E0000FE00001E00000E00000E00000E00000E00000E00000E00000E00000E00000E00
000E00000E00000E1F000E61C00E80600F00300E00380E003C0E001C0E001E0E001E0E00
1E0E001E0E001E0E001E0E001E0E001C0E003C0E00380F00700C80600C41C0083F001723
7FA21B>I<01FE000703000C07801C0780380300780000700000F00000F00000F00000F0
0000F00000F00000F000007000007800403800401C00800C010007060001F80012157E94
16>I<0000E0000FE00001E00000E00000E00000E00000E00000E00000E00000E00000E0
0000E00000E00000E001F8E00704E00C02E01C01E03800E07800E07000E0F000E0F000E0
F000E0F000E0F000E0F000E0F000E07000E07800E03800E01801E00C02E0070CF001F0FE
17237EA21B>I<01FC000707000C03801C01C03801C07801E07000E0F000E0FFFFE0F000
00F00000F00000F00000F000007000007800203800201C00400E008007030000FC001315
7F9416>I<003C00C6018F038F030F070007000700070007000700070007000700FFF807
000700070007000700070007000700070007000700070007000700070007000700070007
807FF8102380A20F>I<00007001F198071E180E0E181C07001C07003C07803C07803C07
803C07801C07001C07000E0E000F1C0019F0001000001000001800001800001FFE000FFF
C00FFFE03800F0600030400018C00018C00018C000186000306000303800E00E038003FE
0015217F9518>I<0E0000FE00001E00000E00000E00000E00000E00000E00000E00000E
00000E00000E00000E00000E00000E1F800E60C00E80E00F00700F00700E00700E00700E
00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E
0070FFE7FF18237FA21B>I<1C001E003E001E001C000000000000000000000000000000
00000E00FE001E000E000E000E000E000E000E000E000E000E000E000E000E000E000E00
0E000E000E00FFC00A227FA10E>I<01C003E003E003E001C00000000000000000000000
000000000001E00FE001E000E000E000E000E000E000E000E000E000E000E000E000E000
E000E000E000E000E000E000E000E000E000E000E060E0F0C0F18061803E000B2C82A10F
>I<0E0000FE00001E00000E00000E00000E00000E00000E00000E00000E00000E00000E
00000E00000E00000E03FC0E01F00E01C00E01800E02000E04000E08000E10000E38000E
F8000F1C000E1E000E0E000E07000E07800E03C00E01C00E01E00E00F00E00F8FFE3FE17
237FA21A>I<0E00FE001E000E000E000E000E000E000E000E000E000E000E000E000E00
0E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E00
0E00FFE00B237FA20E>I<0E1FC07F00FE60E183801E807201C00F003C00E00F003C00E0
0E003800E00E003800E00E003800E00E003800E00E003800E00E003800E00E003800E00E
003800E00E003800E00E003800E00E003800E00E003800E00E003800E00E003800E00E00
3800E0FFE3FF8FFE27157F942A>I<0E1F80FE60C01E80E00F00700F00700E00700E0070
0E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E0070
0E0070FFE7FF18157F941B>I<01FC000707000C01801800C03800E0700070700070F000
78F00078F00078F00078F00078F00078F000787000707800F03800E01C01C00E03800707
0001FC0015157F9418>I<0E1F00FE61C00E80600F00700E00380E003C0E001C0E001E0E
001E0E001E0E001E0E001E0E001E0E001E0E003C0E003C0E00380F00700E80E00E41C00E
3F000E00000E00000E00000E00000E00000E00000E00000E00000E0000FFE000171F7F94
1B>I<0E3CFE461E8F0F0F0F060F000E000E000E000E000E000E000E000E000E000E000E
000E000E000F00FFF010157F9413>114 D<0F8830786018C018C008C008E008F0007F80
3FE00FF001F8003C801C800C800CC00CC008E018D0308FC00E157E9413>I<0200020002
0002000600060006000E001E003E00FFF80E000E000E000E000E000E000E000E000E000E
000E000E040E040E040E040E040E040708030801F00E1F7F9E13>I<0E0070FE07F01E00
F00E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00
700E00700E00F00E00F006017003827800FC7F18157F941B>I<FFC1FE1E00780E00300E
00200E002007004007004003808003808003808001C10001C10000E20000E20000E20000
740000740000380000380000380000100017157F941A>I<FF8FF8FF1E01E03C1C01C018
0E01C0180E01E0100E01E010070260200702702007027020038430400384384003843840
01C8188001C81C8001C81C8000F00D0000F00F0000F00F00006006000060060000600600
20157F9423>I<FFC1FE1E00780E00300E00200E00200700400700400380800380800380
8001C10001C10000E20000E20000E2000074000074000038000038000038000010000010
00002000002000002000004000F04000F08000F180004300003C0000171F7F941A>121
D E /Fu 20 118 df<FFFF80FFFF80FFFF8011037F9016>45 D<FFFFFFE00000FFFFFFFC
000007E0007F000003E0000F800003E00003C00003E00001E00003E00000F00003E00000
780003E000003C0003E000001E0003E000001E0003E000000F0003E000000F0003E00000
0F8003E00000078003E0000007C003E0000007C003E0000003C003E0000003C003E00000
03E003E0000003E003E0000003E003E0000003E003E0000003E003E0000003E003E00000
03E003E0000003E003E0000003E003E0000003E003E0000003E003E0000003C003E00000
03C003E0000007C003E0000007C003E00000078003E00000078003E000000F8003E00000
0F0003E000001F0003E000001E0003E000003C0003E00000780003E00000F80003E00001
F00003E00003E00003E0000F800007E0003F0000FFFFFFFC0000FFFFFFE000002B317CB0
33>68 D<FFFF80FFFF8007F00003E00003E00003E00003E00003E00003E00003E00003E0
0003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E0
0003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E0
0003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00007F0
00FFFF80FFFF8011317DB017>73 D<FFF00000007FF8FFF00000007FF807F00000007F00
02F8000000BE0002F8000000BE0002F8000000BE00027C0000013E00027C0000013E0002
3E0000023E00023E0000023E00023E0000023E00021F0000043E00021F0000043E00021F
0000043E00020F8000083E00020F8000083E00020F8000083E000207C000103E000207C0
00103E000207C000103E000203E000203E000203E000203E000201F000403E000201F000
403E000201F000403E000200F800803E000200F800803E000200F800803E0002007C0100
3E0002007C01003E0002007C01003E0002003E02003E0002003E02003E0002003E02003E
0002001F04003E0002001F04003E0002000F88003E0002000F88003E0002000F88003E00
020007D0003E00020007D0003E00020007D0003E00020003E0003E00020003E0003E0002
0003E0003E00070001C0003E000F8001C0007F00FFF801C00FFFF8FFF800800FFFF83531
7CB03D>77 D<FFFFFFC000FFFFFFF80007E0007E0003E0001F0003E000078003E00003C0
03E00001E003E00001F003E00001F003E00000F003E00000F803E00000F803E00000F803
E00000F803E00000F803E00000F803E00000F003E00001F003E00001E003E00003E003E0
0003C003E000078003E0001F0003E0007C0003FFFFF00003E000000003E000000003E000
000003E000000003E000000003E000000003E000000003E000000003E000000003E00000
0003E000000003E000000003E000000003E000000003E000000003E000000003E0000000
03E000000003E000000003E000000003E000000007F0000000FFFF800000FFFF80000025
317CB02D>80 D<007F802001FFE02007C078600F001C601E0006E03C0003E0380001E078
0000E0700000E070000060F0000060F0000060F0000020F0000020F0000020F8000020F8
0000007C0000007E0000003F0000003FC000001FF800000FFF800007FFF80003FFFC0000
FFFF00000FFF800000FFC000001FE0000007E0000003F0000001F0000000F0000000F800
0000F88000007880000078800000788000007880000078C0000078C0000070E00000F0E0
0000E0F00000E0F80001C0EC000380C7000700C1F01E00807FFC00800FF0001D337CB125
>83 D<00FE00000303C0000C00E00010007000100038003C003C003E001C003E001E003E
001E0008001E0000001E0000001E0000001E00000FFE0000FC1E0003E01E000F801E001F
001E003E001E003C001E007C001E00F8001E04F8001E04F8001E04F8003E04F8003E0478
003E047C005E043E008F080F0307F003FC03E01E1F7D9E21>97 D<003F8000E060038018
0700040F00041E001E1C003E3C003E7C003E7C0008780000F80000F80000F80000F80000
F80000F80000F80000F80000F800007800007C00007C00003C00011E00011E00020F0002
07000403801800E060003F80181F7D9E1D>99 D<000001E000003FE000003FE0000003E0
000001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0
000001E0000001E0000001E0000001E0000001E0000001E0001F81E000F061E001C019E0
078005E00F0003E00E0003E01E0001E03C0001E03C0001E07C0001E0780001E0F80001E0
F80001E0F80001E0F80001E0F80001E0F80001E0F80001E0F80001E0F80001E0780001E0
780001E03C0001E03C0001E01C0001E01E0003E00E0005E0070009E0038011F000E061FF
003F81FF20327DB125>I<003F800000E0E0000380380007003C000E001E001E001E001C
000F003C000F007C000F0078000F8078000780F8000780F8000780FFFFFF80F8000000F8
000000F8000000F8000000F8000000F8000000780000007C0000003C0000003C0000801E
0000800E0001000F0002000780020001C00C0000F03000001FC000191F7E9E1D>I<0007
E0001C1000383800707C00E07C01E07C01C03803C00003C00003C00003C00003C00003C0
0003C00003C00003C00003C00003C00003C000FFFFC0FFFFC003C00003C00003C00003C0
0003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C0
0003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00007E0007FFF
007FFF0016327FB114>I<000000F0007F030801C1C41C0380E81C070070080F0078001E
003C001E003C003E003E003E003E003E003E003E003E003E003E003E003E001E003C001E
003C000F007800070070000780E00009C1C000087F000018000000180000001800000018
000000180000001C0000000E0000000FFFF80007FFFF0003FFFF800E000FC0180001E030
0000F070000070E0000038E0000038E0000038E0000038E0000038700000707000007038
0000E01C0001C00700070001C01C00003FE0001E2F7E9F21>I<07000F801F801F800F80
0700000000000000000000000000000000000000000000000780FF80FF800F8007800780
078007800780078007800780078007800780078007800780078007800780078007800780
07800780078007800FC0FFF8FFF80D307EAF12>105 D<0780FE001FC000FF83078060F0
00FF8C03C18078000F9001E2003C0007A001E4003C0007A000F4001E0007C000F8001E00
07C000F8001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E0007
8000F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E000780
00F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E00078000
F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0
001E000FC001F8003F00FFFC1FFF83FFF0FFFC1FFF83FFF0341F7E9E38>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 /Fv 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 Fv(D)26 b(R)g(A)f(F)h(T)225 999 y Fu(Do)r(cumen)n(t)
20 b(for)i(a)f(Standard)g(Message-P)n(assing)f(In)n(terface)621
1194 y Ft(Message)c(P)o(assing)h(In)o(terface)e(F)l(orum)833
1320 y(July)h(13,)g(1995)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 Fs(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 Fr(Chapter)34 b(1)75 564 y Fq(Dynamic)40
b(Pro)s(cesses)75 805 y Fp(1.1)59 b(Intro)r(duction)75
906 y Fs(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)22
b(users)g(ha)o(v)o(e)g(ask)o(ed)f(that)h(the)g(MPI-1)g(mo)q(del)h(b)q
(e)f(relaxed)h(to)f(allo)o(w)g(dynamic)h(pro)q(cess)75
1188 y(managemen)o(t.)17 b(The)11 b(main)f(imp)q(etus)i(comes)e(from)f
(the)h(PVM)g([1])f(researc)o(h)h(e\013ort,)g(whic)o(h)h(has)f(pro)o
(vided)75 1245 y(a)16 b(w)o(ealth)h(of)f(exp)q(erience)j(with)e
(dynamic)h(pro)q(cess)f(managemen)o(t)f(that)g(illustrates)h(its)g(b)q
(ene\014ts)h(and)75 1301 y(p)q(oten)o(tial)e(pitfalls.)22
b(The)15 b(reasons)g(for)g(adding)h(dynamic)g(pro)q(cess)g(managemen)o
(t)e(are)h(b)q(oth)g(tec)o(hnical)75 1358 y(and)g(practical.)143
1464 y Fo(\017)23 b Fs(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
1521 y(PVM's)14 b(capabilities)j(for)e(pro)q(cess)g(and)g(resource)h
(managemen)o(t.)j(While)d(relativ)o(ely)g(few)f(PVM)189
1577 y(applications)d(are)e(truly)h(dynamic)h(or)e(require)h(features)g
(not)f(in)h(MPI,)g(the)f(lac)o(k)h(of)f(these)h(features)189
1633 y(is)k(a)g(practical)h(stum)o(bling)g(blo)q(c)o(k)g(to)f
(migration.)143 1727 y Fo(\017)23 b Fs(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 1784 y(task)d(farming)h(jobs,)
g(require)h(dynamic)g(pro)q(cess)f(con)o(trol.)143 1878
y Fo(\017)23 b Fs(With)16 b(dynamic)h(resource)g(and)f(pro)q(cess)h
(managemen)o(t)e(extensions,)i(it)g(w)o(ould)g(b)q(e)g(p)q(ossible)h
(to)189 1934 y(write)d(ma)s(jor)f(parts)g(of)h(the)g(parallel)i
(programming)e(en)o(vironmen)o(t)g(in)h(MPI)f(itself.)143
2028 y Fo(\017)23 b Fs(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 2084 y(and)23 b(for)f(commercial)i
(applications.)45 b(MPI-1)23 b(do)q(es)g(not)f(pro)o(vide)i(mec)o
(hanisms)f(for)g(build-)189 2141 y(ing)18 b(fault-toleran)o(t)f
(applications.)30 b(The)18 b(mec)o(hanisms)g(required)h(to)e(supp)q
(ort)h(fault)g(tolerance)189 2197 y(largely)d(o)o(v)o(erlap)g(with)h
(those)f(needed)h(to)f(supp)q(ort)g(dynamic)h(pro)q(cess)g(managemen)o
(t.)166 2303 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 2360 y(p)q(ortabilit)o(y)j(or)f(p)q(erformance)g(of)g(MPI.)g
(In)h(particular:)143 2454 y Fo(\017)23 b Fs(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 2510 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 2567 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 2623 y(w)o(orkstations.)964 2828 y(1)p
eop
%%Page: 2 4
2 3 bop 75 -100 a Fs(2)951 b Fn(CHAPTER)16 b(1.)34 b(D)o(YNAMIC)15
b(PR)o(OCESSES)143 45 y Fo(\017)23 b Fs(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 102 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 195 y Fo(\017)23 b Fs(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 252 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 346
y Fo(\017)23 b Fs(MPI)15 b(m)o(ust)f(not)h(con)o(tain)h(features)e
(that)h(compromise)g(p)q(erformance.)143 439 y Fo(\017)23
b Fs(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
496 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 590 y(The)e(MPI)g(dynamic)h(pro)q(cess)g(managemen)o(t)e(mo)q
(del)i(address)f(these)h(issues)g(in)f(t)o(w)o(o)f(w)o(a)o(ys.)19
b(First,)75 646 y(it)13 b(separates)f(the)g(run)o(time)h(en)o(vironmen)
o(t)g(of)f(a)h(parallel)h(program)d(in)o(to)i(three)f(logical)i(parts:)
k(resource)75 703 y(managemen)o(t,)c(pro)q(cess)i(managemen)o(t,)e(and)
h(comm)o(unication.)21 b(MPI-1)15 b(addresses)h(the)f(comm)o(unica-)75
759 y(tion)20 b(comp)q(onen)o(t.)33 b(MPI-2)20 b(pro)o(vides)g(an)g(in)
o(terface)g(b)q(et)o(w)o(een)g(an)f(MPI)h(application)h(and)f
(logically)75 816 y(external)c(resource)f(and)g(pro)q(cess)g(managers.)
k(The)d(resource)f(and)g(pro)q(cess)g(managers)g(ma)o(y)f(b)q(e)i
(sepa-)75 872 y(rate)g(programs,)f(the)i(same)g(program,)e(part)h(of)g
(the)h(op)q(erating)g(system,)f(or)g(ev)o(en)h(con)o(tained)h(within)75
928 y(the)i(MPI)f(implemen)o(tation)i(itself,)h(but)d(their)h
(functionalit)o(y)h(is)f(w)o(ell-de\014ned)j(and)c(exists)h(in)h(most)
75 985 y(curren)o(t)15 b(message)g(passing)g(en)o(vironmen)o(ts,)g
(includin)q(g)i(PVM.)166 1041 y(Second,)g(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 1098 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 1154 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 1297 y Fp(1.2)59 b(The)19 b(MPI)h(Dynamic)f(Pro)r(cess)g(Mo)r
(del)75 1401 y Fm(1.2.1)49 b(Comp)q(onents)75 1486 y
Fs(The)13 b(MPI)g(dynamic)g(pro)q(cess)g(mo)q(del)h(separates)e(the)h
(functions)g(of)g Fl(r)n(esour)n(c)n(e)g(manager)p Fs(,)g
Fl(pr)n(o)n(c)n(ess)g(man-)75 1543 y(ager)i Fs(and)h
Fl(message-p)n(assing)e(libr)n(ary)p Fs(.)75 1663 y Fk(Resource)i
(Manager)44 b Fs(The)15 b Fl(r)n(esour)n(c)n(e)g(manager)20
b Fs(is)15 b(the)f(part)g(of)g(the)h(system)f(that)g(con)o(trols)g
(resources)75 1719 y(and)i(allo)q(cates)g(them)g(to)f(an)h
(application.)23 b(It)16 b(decides)h(when)f(a)g(job)f(will)j(run)e(and)
g(whic)o(h)g(pro)q(cessors)75 1776 y(will)21 b(b)q(e)f(allo)q(cated)g
(to)f(it)g(when)h(it)g(do)q(es)f(run.)33 b(In)20 b(some)f(en)o
(vironmen)o(ts)g(the)h(resource)f(manager)f(is)75 1832
y(a)f(sophisticated)h(batc)o(h)f(queueing)h(system;)f(in)h(others)f(it)
g(is)g(the)h(user)f(him/herself,)h(who)f(can)g(start)75
1889 y(jobs)f(on)g(a)f(net)o(w)o(ork)g(whenev)o(er)i(and)f(wherev)o(er)
g(he/she)g(lik)o(es.)23 b(Logically)l(,)18 b(the)e(resource)g(manager)f
(is)75 1945 y(external)h(to)e(an)h(application)i(ev)o(en)f(if)f(it)h
(is)g(implemen)o(ted)g(in)o(ternally)l(.)166 2002 y(In)g(con)o(trast,)f
(the)h(PVM)f(mo)q(del)i(of)e(a)h(resource)f(manager)g(is)i(in)o(ternal)
f(to)g(an)f(application,)j(ev)o(en)75 2058 y(though)g(it)g(ma)o(y)g(b)q
(e)h(implemen)o(ted)g(externally)h(through)d(the)h(hoster)g(and)g(task)
o(er)g(in)o(terfaces.)28 b(This)75 2115 y(mak)o(es)15
b(it)g(di\016cult)i(for)d(PVM)h(applications)i(to)d(in)o(teract)i(w)o
(ell)g(with)f(external)h(resource)f(managers.)75 2235
y Fk(Pro)q(cess)d(Manager)45 b Fs(Once)12 b(pro)q(cessors)f(ha)o(v)o(e)
f(b)q(een)i(allo)q(cated)g(to)f(a)g(program,)f(user)h(pro)q(cesses)h(m)
o(ust)e(b)q(e)75 2291 y(started)g(on)g(those)g(pro)q(cessors,)h(and)f
(managed)h(after)e(startup.)18 b(By)10 b(\\managed")g(w)o(e)g(mean)g
(that)g(signals)75 2348 y(m)o(ust)15 b(b)q(e)h(deliv)o(erable,)h(that)e
Fj(stdin)p Fs(,)f Fj(stdout)p Fs(,)g(and)h Fj(stderr)g
Fs(m)o(ust)g(b)q(e)h(handled)g(in)h(some)e(reasonable)75
2404 y(w)o(a)o(y)l(,)j(and)g(that)g(orderly)h(termination)f(can)h(b)q
(e)g(guaran)o(teed.)29 b(A)18 b(minimal)i(example)f(is)g
Fj(rsh)p Fs(,)f(whic)o(h)75 2460 y(starts)11 b(pro)q(cesses)i(and)g
(reroutes)f Fj(stdin)p Fs(,)g Fj(stdout)p Fs(,)g(and)h
Fj(stderr)e Fs(bac)o(k)i(to)f(the)g(originating)i(pro)q(cess.)19
b(A)75 2517 y(more)14 b(complex)i(example)g(is)f(giv)o(en)g(b)o(y)g
Fj(poe)f Fs(on)h(the)g(IBM)g(SP2)g(or)f Fj(prun)g Fs(on)h(the)g(Meik)o
(o)g(CS-2,)f(whic)o(h)75 2573 y(start)j(pro)q(cesses)i(on)f(pro)q
(cessors)g(giv)o(en)h(to)f(them)g(b)o(y)g(the)g(job)h(sc)o(heduler)g
(and)g(manage)f(them)g(un)o(til)75 2630 y(they)g(are)f(\014nished.)28
b(In)19 b(a)e(tigh)o(tly)h(in)o(tegrated)f(parallel)i(computer,)f(pro)q
(cess)g(managemen)o(t)e(ma)o(y)h(b)q(e)75 2686 y(done)f(en)o(tirely)g
(b)o(y)f(the)g(op)q(erating)h(system.)1967 46 y Fi(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(1.2.)34 b(THE)15 b(MPI)g(D)o(YNAMIC)g(PR)o(OCESS)h
(MODEL)813 b Fs(3)166 45 y(In)21 b(some)f(cases)g(the)h(situation)g(is)
g(m)o(uddied)h(b)q(ecause)f(a)f(single)i(piece)g(of)e(soft)o(w)o(are)e
(com)o(bines)75 102 y(the)i(functions)g(of)f(resource)g(manager)g(and)h
(pro)q(cess)f(manager.)32 b(Examples)20 b(of)f(this)h(approac)o(h)f
(are)75 158 y(the)i(batc)o(h)f(queueing)j(systems)d(suc)o(h)h(as)g
(Condor,)g(DQS,)g(and)g(LoadLev)o(eler.)38 b(Nonetheless,)22
b(it)f(is)75 214 y(con)o(v)o(enien)o(t)f(to)e(consider)i(resource)f
(and)g(pro)q(cess)g(managemen)o(t)g(separately)l(,)h(since)g(although)f
(they)75 271 y(in)o(teract,)c(they)g(are)g(separate)g(functions)g(that)
g(can)g(b)q(e)h(indep)q(enden)o(tly)i(mo)q(di\014ed.)75
391 y Fk(Message-P)o(assing)g(Lib)o(ra)o(ry)44 b Fs(By)17
b(the)g Fl(message-p)n(assing)f(libr)n(ary)k Fs(w)o(e)d(mean)f(the)h
(library)h(used)f(b)o(y)g(the)75 447 y(application)f(program)e(for)g
(its)h(in)o(terpro)q(cess)h(comm)o(unication.)k(Programs)14
b(con)o(taining)h(only)h(calls)g(to)75 504 y(a)i(message-passing)h
(library)g(can)f(b)q(e)h(extremely)g(p)q(ortable,)g(since)h(they)e
(\014t)g(cleanly)i(in)o(to)f(a)f(v)m(ariet)o(y)75 560
y(of)13 b(job)h(sc)o(heduler{pro)q(cess)h(manager)e(en)o(vironmen)o
(ts.)20 b(MPI-1)14 b(de\014nes)g(a)g(standard)f(message)h(passing)75
617 y(library)l(.)75 739 y Fm(1.2.2)49 b(Interaction)16
b(of)h(User,)d(Application)k(and)f(Runtime)f(Environment)375
1576 y @beginspecial 71 @llx 464 @lly 494 @urx 728 @ury
2880 @rwi @setspecial
%%BeginDocument: fig1.eps
1 setlinejoin
/M { moveto } bind def /S { show } bind def
/R { rmoveto } bind def /L { lineto } bind def
/B { newpath 0 0 M 0 1 L 1 1 L 1 0 L closepath } bind def
/CS { closepath stroke } bind def
/S {
/fixwidth exch def
dup length /nchars exch def
dup stringwidth pop
fixwidth exch sub nchars div
exch 0 exch ashow
} def
/bwproc {
rgbproc
dup length 3 idiv string 0 3 0
5 -1 roll {
add 2 1 roll 1 sub dup 0 eq
{ pop 3 idiv 3 -1 roll dup 4 -1 roll dup
3 1 roll 5 -1 roll put 1 add 3 0 }
{ 2 1 roll } ifelse
} forall
pop pop pop
} def
systemdict /colorimage known not {
/colorimage {
pop
pop
/rgbproc exch def
{ bwproc } image
} def
} if
1 1 scale
0 setlinewidth
/drawtri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
0 setgray
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
stroke
} bind def
/filltri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
fill
} bind def
/cliptri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
0 setgray
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
clip
} bind def
/imgscanrgb {
gsave
translate
/scandy exch def
/scandx exch def
/istr scandx 3 mul string def
scandx scandy scale
scandx scandy 8
[scandx 0 0 scandy neg 0 scandy]
{currentfile istr readhexstring pop}
false 3
colorimage
grestore
} bind def
/imgscanbw {
gsave
translate
/scandy exch def
/scandx exch def
/istr scandx string def
scandx scandy scale
scandx scandy 8
[scandx 0 0 scandy neg 0 scandy]
{currentfile istr readhexstring pop}
image
grestore
} bind def
/showcaseisoencoding [
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/space /exclam /quotedbl /numbersign
/dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus
/comma /minus /period /slash
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon
/less /equal /greater /question
/at /A /B /C /D /E /F /G
/H /I /J /K /L /M /N /O
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft
/backslash /bracketright /asciicircum /underscore
/quoteleft /a /b /c /d /e /f /g
/h /i /j /k /l /m /n /o
/p /q /r /s /t /u /v /w
/x /y /z /braceleft
/bar /braceright /asciitilde /guilsinglright
/fraction /florin /quotesingle /quotedblleft
/guilsinglleft /fi /fl /endash
/dagger /daggerdbl /bullet /quotesinglbase
/quotedblbase /quotedblright /ellipsis /trademark
/dotlessi /grave /acute /circumflex
/tilde /macron /breve /dotaccent
/dieresis /perthousand /ring /cedilla
/Ydieresis /hungarumlaut /ogonek /caron
/emdash /exclamdown /cent /sterling
/currency /yen /brokenbar /section
/dieresis /copyright /ordfeminine /guillemotleft
/logicalnot /hyphen /registered /macron
/degree /plusminus /twosuperior /threesuperior
/acute /mu /paragraph /periodcentered
/cedilla /onesuperior /ordmasculine /guillemotright
/onequarter /onehalf /threequarters /questiondown
/Agrave /Aacute /Acircumflex /Atilde
/Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis
/Igrave /Iacute /Icircumflex /Idieresis
/Eth /Ntilde /Ograve /Oacute
/Ocircumflex /Otilde /Odieresis /multiply
/Oslash /Ugrave /Uacute /Ucircumflex
/Udieresis /Yacute /Thorn /germandbls
/agrave /aacute /acircumflex /atilde
/adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis
/igrave /iacute /icircumflex /idieresis
/eth /ntilde /ograve /oacute
/ocircumflex /otilde /odieresis /divide
/oslash /ugrave /uacute /ucircumflex
/udieresis /yacute /thorn /ydieresis ] def
/showcasedingbatencoding [
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /a1 /a2 /a202 /a3 /a4 /a5 /a119 /a118 /a117
/a11 /a12 /a13 /a14 /a15 /a16 /a105 /a17 /a18 /a19
/a20 /a21 /a22 /a23 /a24 /a25 /a26 /a27 /a28 /a6 /a7
/a8 /a9 /a10 /a29
/a30 /a31 /a32 /a33 /a34 /a35 /a36 /a37 /a38 /a39
/a40 /a41 /a42 /a43 /a44 /a45 /a46 /a47 /a48 /a49
/a50 /a51 /a52 /a53 /a54 /a55 /a56 /a57 /a58 /a59
/a60 /a61 /a62 /a63 /a64 /a65 /a66 /a67 /a68 /a69
/a70 /a71 /a72 /a73 /a74 /a203 /a75 /a204 /a76 /a77 /a78
/a79 /a81 /a82 /a83 /a84 /a97 /a98 /a99 /a100 /.notdef
/a205 /a85 /a206 /a86 /a87 /a88 /a89 /a90 /a91 /a92 /a93
/a94 /a95 /a96
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /a101 /a102 /a103 /a104 /a106 /a107 /a108
/a112 /a111 /a110 /a109
/a120 /a121 /a122 /a123 /a124 /a125 /a126 /a127 /a128 /a129
/a130 /a131 /a132 /a133 /a134 /a135 /a136 /a137 /a138 /a139
/a140 /a141 /a142 /a143 /a144 /a145 /a146 /a147 /a148 /a149
/a150 /a151 /a152 /a153 /a154 /a155 /a156 /a157 /a158 /a159
/a160 /a161 /a163 /a164 /a196 /a165 /a192 /a166 /a167 /a168
/a169 /a170 /a171 /a172 /a173 /a162 /a174 /a175 /a176 /a177
/a178 /a179 /a193 /a180 /a199 /a181 /a200 /a182 /.notdef
/a201 /a183 /a184 /a197 /a185 /a194 /a198 /a186 /a195 /a187
/a188 /a189 /a190 /a191 /.notdef
] def
/Courier-Bold findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding showcaseisoencoding def
currentdict
end
/Courier-Bold-SHOWISO exch definefont pop
/newfont 10 dict def
newfont begin
/FontType 3 def
/FontMatrix [1 0 0 1 0 0] def
/FontBBox [0 0 1 1] def
/Encoding 256 array def
0 1 255 {Encoding exch /.notdef put} for
/CharProcs 1 dict def
CharProcs begin
/.notdef {} def
end
/BuildChar {
1 0
0 0 1 1
setcachedevice
exch begin
Encoding exch get
CharProcs exch get
end
exec
} def
end
/PatternFont newfont definefont pop
/#copies 1 def
gsave
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
214 599.5 M
208.75 600.25 L
205 602.5 L
202.75 606.25 L
202 611.5 L
202 611.5 L
202 612.373 L
202 614.496 L
202 617.692 L
202 621.781 L
202 626.585 L
202 631.926 L
202 637.624 L
202 643.5 L
202 649.376 L
202 655.074 L
202 660.415 L
202 665.219 L
202 669.308 L
202 672.504 L
202 674.627 L
202 675.5 L
202 675.5 L
202.75 680.75 L
205 684.5 L
208.75 686.75 L
214 687.5 L
214 687.5 L
215.535 687.5 L
219.527 687.5 L
225.624 687.5 L
233.469 687.5 L
242.708 687.5 L
252.988 687.5 L
263.954 687.5 L
275.25 687.5 L
286.523 687.5 L
297.418 687.5 L
307.581 687.5 L
316.656 687.5 L
324.291 687.5 L
330.129 687.5 L
333.817 687.5 L
335 687.5 L
335 687.5 L
340.25 686.75 L
344 684.5 L
346.25 680.75 L
347 675.5 L
347 675.5 L
347 674.627 L
347 672.504 L
347 669.308 L
347 665.219 L
347 660.415 L
347 655.074 L
347 649.376 L
347 643.5 L
347 637.624 L
347 631.926 L
347 626.585 L
347 621.781 L
347 617.692 L
347 614.496 L
347 612.373 L
347 611.5 L
347 611.5 L
346.25 606.25 L
344 602.5 L
340.25 600.25 L
335 599.5 L
335 599.5 L
333.487 599.5 L
329.555 599.5 L
323.548 599.5 L
315.812 599.5 L
306.694 599.5 L
296.539 599.5 L
285.692 599.5 L
274.5 599.5 L
263.308 599.5 L
252.461 599.5 L
242.306 599.5 L
233.187 599.5 L
225.452 599.5 L
219.445 599.5 L
215.513 599.5 L
214 599.5 L
closepath
stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 239.9 629.5] concat
newpath
0 0 M 0 28 L 69.2 28 L 69.2 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
237.9 627.5 M 237.9 659.5 L 311.1 659.5 L 311.1 627.5 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 239.9 629.5] concat
/Courier-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 17.5 M (Resource) 67.2 S
0 3.5 M (Manager) 58.8 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
83.5 464.5 M
78.25 465.25 L
74.5 467.5 L
72.25 471.25 L
71.5 476.5 L
71.5 476.5 L
71.5 477.373 L
71.5 479.496 L
71.5 482.692 L
71.5 486.781 L
71.5 491.585 L
71.5 496.926 L
71.5 502.624 L
71.5 508.5 L
71.5 514.376 L
71.5 520.074 L
71.5 525.415 L
71.5 530.219 L
71.5 534.308 L
71.5 537.504 L
71.5 539.627 L
71.5 540.5 L
71.5 540.5 L
72.25 545.75 L
74.5 549.5 L
78.25 551.75 L
83.5 552.5 L
83.5 552.5 L
85.0347 552.5 L
89.0273 552.5 L
95.1235 552.5 L
102.969 552.5 L
112.208 552.5 L
122.488 552.5 L
133.454 552.5 L
144.75 552.5 L
156.023 552.5 L
166.918 552.5 L
177.081 552.5 L
186.156 552.5 L
193.791 552.5 L
199.629 552.5 L
203.317 552.5 L
204.5 552.5 L
204.5 552.5 L
209.75 551.75 L
213.5 549.5 L
215.75 545.75 L
216.5 540.5 L
216.5 540.5 L
216.5 539.627 L
216.5 537.504 L
216.5 534.308 L
216.5 530.219 L
216.5 525.415 L
216.5 520.074 L
216.5 514.376 L
216.5 508.5 L
216.5 502.624 L
216.5 496.926 L
216.5 491.585 L
216.5 486.781 L
216.5 482.692 L
216.5 479.496 L
216.5 477.373 L
216.5 476.5 L
216.5 476.5 L
215.75 471.25 L
213.5 467.5 L
209.75 465.25 L
204.5 464.5 L
204.5 464.5 L
202.987 464.5 L
199.055 464.5 L
193.048 464.5 L
185.312 464.5 L
176.194 464.5 L
166.039 464.5 L
155.192 464.5 L
144 464.5 L
132.808 464.5 L
121.961 464.5 L
111.806 464.5 L
102.688 464.5 L
94.9521 464.5 L
88.9453 464.5 L
85.0127 464.5 L
83.5 464.5 L
closepath
stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 109.4 494.5] concat
newpath
0 0 M 0 28 L 69.2 28 L 69.2 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
107.4 492.5 M 107.4 524.5 L 180.6 524.5 L 180.6 492.5 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 109.4 494.5] concat
/Courier-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 17.5 M (Process ) 67.2 S
0 3.5 M (Manager) 58.8 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
340 464.5 M
334.75 465.25 L
331 467.5 L
328.75 471.25 L
328 476.5 L
328 476.5 L
328 477.373 L
328 479.496 L
328 482.692 L
328 486.781 L
328 491.585 L
328 496.926 L
328 502.624 L
328 508.5 L
328 514.376 L
328 520.074 L
328 525.415 L
328 530.219 L
328 534.308 L
328 537.504 L
328 539.627 L
328 540.5 L
328 540.5 L
328.75 545.75 L
331 549.5 L
334.75 551.75 L
340 552.5 L
340 552.5 L
341.535 552.5 L
345.527 552.5 L
351.624 552.5 L
359.469 552.5 L
368.708 552.5 L
378.988 552.5 L
389.954 552.5 L
401.25 552.5 L
412.523 552.5 L
423.418 552.5 L
433.581 552.5 L
442.656 552.5 L
450.291 552.5 L
456.129 552.5 L
459.817 552.5 L
461 552.5 L
461 552.5 L
466.25 551.75 L
470 549.5 L
472.25 545.75 L
473 540.5 L
473 540.5 L
473 539.627 L
473 537.504 L
473 534.308 L
473 530.219 L
473 525.415 L
473 520.074 L
473 514.376 L
473 508.5 L
473 502.624 L
473 496.926 L
473 491.585 L
473 486.781 L
473 482.692 L
473 479.496 L
473 477.373 L
473 476.5 L
473 476.5 L
472.25 471.25 L
470 467.5 L
466.25 465.25 L
461 464.5 L
461 464.5 L
459.487 464.5 L
455.555 464.5 L
449.548 464.5 L
441.812 464.5 L
432.694 464.5 L
422.539 464.5 L
411.692 464.5 L
400.5 464.5 L
389.308 464.5 L
378.461 464.5 L
368.306 464.5 L
359.187 464.5 L
351.452 464.5 L
345.445 464.5 L
341.513 464.5 L
340 464.5 L
closepath
stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 352.3 486.5] concat
newpath
0 0 M 0 42 L 94.4 42 L 94.4 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
350.3 484.5 M 350.3 530.5 L 448.7 530.5 L 448.7 484.5 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 352.3 486.5] concat
/Courier-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 31.5 M (Application) 92.4 S
0 17.5 M (\(Message) 67.2 S
0 3.5 M ( Passing\)) 75.6 S
setmatrix
grestore
gsave
1.000000 setlinewidth
matrix currentmatrix
[92.7699 0 0 92.7699 135 576] concat
0 0 0 setrgbcolor
newpath
0 0 1 116.565 116.565 arc
setmatrix stroke
grestore
gsave
1.000000 setlinewidth
matrix currentmatrix
[62.516 0 0 62.516 135 630] concat
0 0 0 setrgbcolor
newpath
0 0 1 331.699 331.699 arc
setmatrix stroke
grestore
gsave
0 0 0 setrgbcolor
1.000000 setlinewidth
newpath
488.024 707.855 M
486.739 709.928 L
485.304 711.944 L
483.721 713.889 L
481.997 715.747 L
480.138 717.503 L
478.154 719.143 L
476.055 720.654 L
473.855 722.024 L
471.569 723.244 L
469.211 724.306 L
466.799 725.205 L
464.348 725.937 L
461.877 726.501 L
459.401 726.899 L
456.937 727.134 L
454.5 727.21 L
454.5 727.21 L
452.063 727.134 L
449.599 726.899 L
447.123 726.501 L
444.652 725.937 L
442.201 725.205 L
439.789 724.306 L
437.431 723.244 L
435.145 722.024 L
432.945 720.654 L
430.846 719.143 L
428.862 717.503 L
427.003 715.747 L
425.279 713.889 L
423.696 711.944 L
422.261 709.928 L
420.976 707.855 L
420.976 707.855 L
419.824 705.706 L
418.795 703.455 L
417.902 701.112 L
417.155 698.69 L
416.563 696.202 L
416.135 693.663 L
415.876 691.09 L
415.79 688.5 L
415.876 685.91 L
416.135 683.337 L
416.563 680.798 L
417.155 678.31 L
417.902 675.888 L
418.795 673.545 L
419.824 671.294 L
420.976 669.145 L
420.976 669.145 L
422.261 667.072 L
423.696 665.056 L
425.279 663.111 L
427.003 661.253 L
428.862 659.497 L
430.846 657.857 L
432.945 656.346 L
435.145 654.976 L
437.431 653.756 L
439.789 652.694 L
442.201 651.795 L
444.652 651.063 L
447.123 650.499 L
449.599 650.101 L
452.063 649.866 L
454.5 649.79 L
454.5 649.79 L
456.937 649.866 L
459.401 650.101 L
461.877 650.499 L
464.348 651.063 L
466.799 651.795 L
469.211 652.694 L
471.569 653.756 L
473.855 654.976 L
476.055 656.346 L
478.154 657.857 L
480.138 659.497 L
481.997 661.253 L
483.721 663.111 L
485.304 665.056 L
486.739 667.072 L
488.024 669.145 L
488.024 669.145 L
489.176 671.294 L
490.205 673.545 L
491.098 675.888 L
491.845 678.311 L
492.437 680.798 L
492.865 683.337 L
493.124 685.91 L
493.21 688.5 L
493.124 691.09 L
492.865 693.663 L
492.437 696.202 L
491.845 698.69 L
491.098 701.112 L
490.205 703.455 L
489.176 705.706 L
488.024 707.855 L
closepath
stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 436.7 681.5] concat
newpath
0 0 M 0 14 L 35.6 14 L 35.6 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
434.7 679.5 M 434.7 697.5 L 474.3 697.5 L 474.3 679.5 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 436.7 681.5] concat
/Courier-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 3.5 M (User) 33.6 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
350.058 661.164 translate
-160.346 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
414 684 M
367.951 667.554 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
219.5 517.5 translate
180 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
gsave
0 setlinejoin
325 517.5 translate
0 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
238.5 517.5 M
306 517.5 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
138.567 553.141 translate
-158.962 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
gsave
0 setlinejoin
257.433 598.859 translate
21.0375 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
156.3 559.962 M
239.7 592.038 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
396.923 553.115 translate
-22.6199 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
gsave
0 setlinejoin
287.077 598.885 translate
157.38 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
379.385 560.423 M
304.615 591.577 L
stroke
grestore
grestore
showpage
%%EndDocument
@endspecial 470 1674 a Fs(Figure)f(1.1:)k(Structure)d(of)e(the)i(Run)o
(time)g(En)o(vironmen)o(t)75 1780 y(The)f(starting)f(p)q(oin)o(t)h(for)
f(dynamic)h(resource)g(and)f(pro)q(cess)h(managemen)o(t)f(is)h(the)f
(resource)h(manager.)75 1836 y(It)k(is)h(the)g(resource)f(manager)g
(that)g(allo)q(cates,)h(implicitly)j(or)c(explicitly)l(,)k(resources)c
(necessary)h(for)75 1893 y(running)f(pro)q(cesses.)29
b(The)18 b(\\resource)g(manager")f(ma)o(y)h(b)q(e)h(an)o(ything)f(from)
f(a)h(sophisticated)h(batc)o(h)75 1949 y(sc)o(heduling)f(system,)d(to)g
(a)h(\014le)h(con)o(taining)g(a)e(list)i(of)e(mac)o(hines)i(on)f(whic)o
(h)h(an)e(application)j(can)e(run,)75 2006 y(to)f(the)g(user)g
(him/herself.)75 2126 y Fk(Acquiring)j(Resources)47 b
Fs(In)18 b(a)f(generic)h(application,)h(there)f(are)f(t)o(w)o(o)f
(distinct)i(phases)g(of)e(in)o(teraction)75 2182 y(with)k(the)f
(resource)g(manager.)32 b(In)20 b(the)f(\014rst)g(phase,)i(the)e(user)h
(requests)f(the)g(initial)j(resources)d(on)75 2238 y(whic)o(h)g(an)f
(application)i(will)g(run.)29 b(This)19 b(phase)f(is)h(implicit)h(but)f
(not)e(sp)q(eci\014ed)k(in)e(the)f(static)g(MPI)75 2295
y(mo)q(del.)30 b(In)19 b(the)f(second)h(phase,)g(the)g(application)h
(itself)f(ma)o(y)e(request)i(additional)g(resources)g(from)75
2351 y(the)c(resource)h(manager.)166 2408 y(While)21
b(it)f(seems)g(at)g(\014rst)f(that)g(MPI)h(need)h(only)f(b)q(e)h
(concerned)g(with)f(the)g(second)h(phase,)g(it)75 2464
y(m)o(ust)16 b(b)q(e)i(a)o(w)o(are)d(of)i(the)g(\014rst)f(as)h(w)o
(ell.)25 b(The)18 b(reason)e(is)h(that)g(resources)f(ma)o(y)h(b)q(e)g
(\\preallo)q(cated")h(to)75 2521 y(an)d(application.)166
2577 y(W)l(e)g(exp)q(ect)h(the)f(most)f(common)h(t)o(yp)q(e)g(of)g
(\\dynamic")g(application)i(to)d(b)q(e)i(one)f(in)h(whic)o(h)g(all)g
(re-)75 2634 y(sources)e(are)h(actually)g(allo)q(cated)g(b)q(efore)g
(the)f(application)i(starts.)j(The)14 b(application)j(will)f(b)q(e)f
(started)75 2690 y(on)10 b(a)g(subset)g(of)g(the)g(resources,)h(will)h
Fl(disc)n(over)d Fs(the)i(additional)g(resources)f(using)h
Fk(MPI)p 1545 2690 14 2 v 16 w(Resource)p 1729 2690 V
18 w(discover)p Fs(,)-32 46 y Fi(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 Fs(4)951 b Fn(CHAPTER)16 b(1.)34 b(D)o(YNAMIC)15
b(PR)o(OCESSES)75 45 y Fs(and)i(will)h(start)d(the)i(rest)f(of)g(the)g
(application)i(on)f(those)f(additonal)h(resources.)24
b(W)l(e)16 b(term)g(these)h(ap-)75 102 y(plications)i
Fl(quasi-static)e Fs(b)q(ecause)i(they)e(use)h(static)f(resources)h
(but)f(ma)o(y)g(ha)o(v)o(e)g(dynamic)h(pro)q(cesses.)75
158 y(Applications)h(whic)o(h)f(disco)o(v)o(er)f(preallo)q(cated)h
(resources)f(but)g(do)g(not)g(allo)q(cate)h(new)f(ones)g(will)i(gen-)75
214 y(erally)e(b)q(e)g(more)f(p)q(ortable)h(than)f(those)g(whic)o(h)h
(allo)q(cate)g(new)g(resources.)23 b(Resource)17 b(disco)o(v)o(ery)g
(ma)o(y)75 271 y(or)g(ma)o(y)h(not)f(require)i(comm)o(unication)g(with)
f(an)g(external)g(resource)g(manager,)g(dep)q(ending)i(on)e(the)75
327 y(MPI)d(implemen)o(tation.)22 b(Resource)16 b(disco)o(v)o(ery)g
(can)f(b)q(e)i(an)e(extremely)h(simple)h(op)q(eration,)e(so)g(that)g
(it)75 384 y(can)k(b)q(e)g(used)g(b)o(y)f(a)g(naiv)o(e)h(user)g(in)g
(conjunction)g(with)g Fk(MPI)p 1160 384 14 2 v 16 w(Spa)o(wn)g
Fs(to)f(simply)h(mimic)h(PVM-st)o(yle)75 440 y(b)q(eha)o(vior.)166
497 y(T)l(ruly)e(dynamic)h(applications)g(will)g(allo)q(cate)f(new)g
(resources)g(while)h(running,)g(in)o(teracting)f(di-)75
553 y(rectly)c(with)g(the)g(resource)g(manager)f(through)h
Fk(MPI)p 995 553 V 16 w(Resource)p 1179 553 V 17 w(iallo)q(cate)p
Fs(.)20 b(Because)14 b(this)g(op)q(eration)g(is)75 610
y(p)q(oten)o(tially)f(\(and)f(usually\))h(exp)q(ensiv)o(e,)h(it)e(is)h
(non)o(blo)q(c)o(king.)20 b(A)12 b(resource)g(request)g(ma)o(y)g(b)q(e)
g(arbitrarily)75 666 y(complicated,)21 b(but)e(the)g(details)h(of)e
(the)h(request)g(are)f(in)o(terpreted)i(b)o(y)f(the)g(resource)g
(manager,)f(not)75 723 y(MPI.)d(The)g(request)g(itself)i(it)e
(therefore)g(a)g(string)g(whic)o(h)h(has)f(no)g(meaning)h(to)f(MPI.)166
779 y(Regardless)f(of)f(ho)o(w)g(an)h(application)h(acquires)f
(resources,)g(it)f(ma)o(y)g(release)h(them)g(to)f(the)g(system)75
835 y(through)i Fk(MPI)p 332 835 V 16 w(Resource)p 516
835 V 17 w(free)p Fs(.)166 968 y Fh(Discussion:)61 b
Fg(The)21 b(description)h(ab)q(o)o(v)o(e)e(is)h(sligh)o(tly)e
(di\013eren)o(t)j(from)d(earlier)i(descriptions)h(in)e(that)75
1018 y(it)f(con)o(tains)g(the)h(concept)h(of)e(resource)i(disco)o(v)o
(ery)m(.)34 b(There)21 b(are)e(t)o(w)o(o)g(reasons)i(for)e(this.)34
b(First,)21 b(almost)c(all)75 1068 y(applications)11
b(\(including)h(most)f(new)i(ones)g(w)o(e)g(target)g(in)f(MPI-2\))g
(need)i(only)e(the)h(\014rst)g(phase)g(-)f(making)e(use)k(of)75
1117 y(pre-allo)q(cated)f(resources.)19 b(An)13 b(application)e
(usually)g(do)q(es)j(not)e(actually)f(request)j(resources)h(nor)d(do)q
(es)h(it)f(kno)o(w)75 1167 y(what)f(it)g(w)o(an)o(ts)g(\(nor)g(should)g
(it!\).)16 b(It)c(only)e(w)o(an)o(ts)h(to)g(\014nd)g(out)g(what)g(the)h
(user)g(has)f(already)g(allo)q(cated.)17 b(Second,)75
1217 y(it)12 b(w)o(as)g(di\016cult)f(to)h(come)f(up)i(with)e(a)h
(uni\014ed)g(seman)o(tics)g(that)g(w)o(ould)f(w)o(ork)h(w)o(ell)g(for)f
(b)q(oth)i(resource)h(disco)o(v)o(ery)75 1267 y(and)h(resource)j(allo)q
(cation.)j(They)16 b(are)g(therefore)h(separate,)f(although)f(they)h(b)
q(oth)g(pro)q(duce)g(the)h(same)d(result)75 1317 y(-)i(an)h
Ff(MPI)p 243 1317 13 2 v 14 w(Resource)h Fg(ob)r(ject)g(\(or)e(ob)r
(jects\).)28 b(This)16 b(distinction)h(actually)e(exists)j(in)e(PVM,)g
(sort)i(of.)25 b(It)17 b(is)f(the)75 1366 y(di\013erence)g(b)q(et)o(w)o
(een)f Fe(pvm)p 490 1366 14 2 v 15 w(config)e Fg(and)g
Fe(pvm)p 796 1366 V 15 w(addhosts)p Fg(.)166 1416 y(It)22
b(w)o(ould)f(b)q(e)i(p)q(ossible)f(to)f(treat)i(b)q(oth)f(resource)i
(allo)q(cation)c(and)i(resource)i(disco)o(v)o(ery)e(through)g(an)75
1466 y(allo)q(cation-based)16 b(in)o(terface.)29 b(An)18
b(application)e(w)o(ould)g(\\allo)q(cate")h(the)h(resources)h(it)e
(knew)h(to)f(b)q(e)h(a)o(v)n(ailable)75 1516 y(and)e(the)h(allo)q
(cation)d(routine)i(w)o(ould)f(return)j(quic)o(kly)m(.)23
b(This)16 b(approac)o(h)g(is)g(undesirable)g(for)g(sev)o(eral)g
(reasons.)75 1566 y(First,)e(in)g(the)h(allo)q(cation-based)e(approac)o
(h,)h(an)g(application)f(m)o(ust)g(\014nd)h(out)g(through)h(some)e
(external)i(means)75 1616 y(\(suc)o(h)h(as)f(a)g(con\014guration)g
(\014le\))g(what)g(resources)j(it)d(should)f(ask)i(for.)21
b(This)15 b(is)g(cum)o(b)q(ersome)f(and)h(redundan)o(t)75
1665 y(with)e(the)i(initial)d(resource)j(request.)20
b(Second,)14 b(it)f(requires)i(ev)o(en)g(simple)d(applications)h(to)g
(form)o(ulate)f(a)i(p)q(oten-)75 1715 y(tially)e(complicated)h
(resource)i(request.)20 b(Resource)15 b(sp)q(eci\014cation)f(will)f(v)n
(ary)g(widely)g(with)g(resource)j(managers)75 1765 y(and)g(should)g
(remain)e(outside)i(an)g(application)f(as)h(m)o(uc)o(h)e(as)i(p)q
(ossible,)h(for)e(p)q(ortabilit)o(y)m(.)23 b(Third,)16
b(it)f(w)o(ould)g(b)q(e)75 1815 y(a)h(lie,)h(as)g(resource)h(ha)o(v)o
(e)f(already)f(b)q(een)i(allo)q(cated.)26 b(This)16 b(is)h(alw)o(a)o
(ys)f(a)g(dangerous)h(thing)f(and)h(can)g(mislead)75
1865 y(programmers.)166 1914 y(I)h(exp)q(ect)i(that)f(true)g(dynamic)e
(applications)g(are)i(rare.)32 b(A)18 b(lot)g(of)g(the)h(true)g
(dynamicism)c(ma)o(y)i(come)75 1964 y(in)e(parallel)g(en)o(vironmen)o
(ts)g(whic)o(h)h(are)g(written)g(in)g(MPI.)f(F)m(or)h(instance,)g(with)
g(the)g(dynamic)e(in)o(terface,)j(it)e(is)75 2014 y(p)q(ossible)e(to)g
(imagine)d(writing)j(an)f(MPI)h(console)h(similar)c(to)j(the)g(PVM)h
(console)f(that)g(puts)g(together)h(a)f(virtual)75 2064
y(mac)o(hine)g(and)g(spa)o(wns)i(MPI)f(applications)f(on)g(that)h
(virtual)f(mac)o(hine.)166 2114 y(I)i(also)g(exp)q(ect)i(that)f
(resource)i(disco)o(v)o(ery)e(will)e(b)q(e)i(quite)f(p)q(ortable,)h
(while)f(resource)j(allo)q(cation)c(ma)o(y)f(b)q(e)75
2163 y(tailored)g(to)h(sp)q(eci\014c)h(en)o(vironmen)o(ts.)166
2213 y(-)f(w)o(cs)166 2352 y Fs(MPI)h(do)q(es)g(not)g(address)g(the)g
(issue)h(of)f(\014nding)h(out)f(what)f(additional)j(resources)e(ma)o(y)
f(b)q(e)i(a)o(v)m(ail-)75 2409 y(able.)26 b(F)l(or)16
b(instance,)i(an)f(application)i(migh)o(t)d(w)o(an)o(t)g(to)h(kno)o(w)f
(what)g(is)i(p)q(ossible)h(b)q(efore)e(it)g(requests)75
2465 y(resources.)40 b(This)22 b(issue)h(is)f(quite)h(complex)f(and)g
(not)g(directly)h(necessary)f(for)f(MPI,)h(in)g(con)o(trast)75
2522 y(to)d(resource)h(allo)q(cation)h(itself,)h(in)f(whic)o(h)f(an)g
(application)i(obtains)e(simple)h(MPI-de\014ned)h(ob)s(jects)75
2578 y(necessary)g(for)f(starting)h(pro)q(cesses.)40
b(It)22 b(is)g(exp)q(ected)h(that)e(an)h(application)i(will)f(use)f(a)g
(resource)75 2635 y(manager-sp)q(eci\014c)17 b(API)e(to)g(inquire)i(ab)
q(out)e(resource)g(a)o(v)m(ailabilit)o(y)l(.)1967 46
y Fi(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(1.2.)34 b(THE)15 b(MPI)g(D)o(YNAMIC)g(PR)o(OCESS)h
(MODEL)813 b Fs(5)75 45 y Fk(Sta)o(rting)21 b(and)g(Managing)f(Pro)q
(cesses)47 b Fs(As)20 b(with)h(resource)g(managemen)o(t,)f(there)h(are)
f(t)o(w)o(o)f(t)o(yp)q(es)h(of)75 102 y(pro)q(cess)e(creation.)27
b(The)18 b(\014rst)f(is)h(the)f(creation)h(of)f(the)h(original)h(MPI)e
(application.)29 b(The)17 b(second)h(is)75 158 y(creation)g(of)g(pro)q
(cesses)g(from)f(within)i(an)f(MPI)g(application.)29
b(F)l(ortunately)18 b(MPI)g(need)h(only)f(w)o(orry)75
214 y(ab)q(out)d(the)g(second)h(t)o(yp)q(e.)166 271 y(MPI)h
(applications)h(ma)o(y)e(start)f(new)i(pro)q(cesses)h(\(including)h
(non-MPI)e(pro)q(cesses\),)g(send)g(them)75 327 y(signals,)24
b(and)e(\014nd)h(out)e(when)i(they)f(die)h(or)e(b)q(ecome)i(unreac)o
(hable.)41 b(They)22 b(do)g(this)g(through)g(an)75 384
y(in)o(terface)16 b(to)f(the)h(pro)q(cess)g(manager,)f(whic)o(h)i
(range)e(from)g(a)h(parallel)h(op)q(erating)f(system)g(\(CMOST\))75
440 y(to)f(la)o(y)o(ered)g(soft)o(w)o(are)e(\(POE\))i(to)g(an)g
Fj(rsh)g Fs(command)g(\(P4\).)166 497 y(There)h(are)f(t)o(w)o(o)g(w)o
(a)o(ys)g(to)g(start)f(new)i(pro)q(cesses.)22 b Fk(MPI)p
1132 497 14 2 v 16 w(Spa)o(wn)17 b Fs(is)f(a)g(simple)h(in)o(terface)f
(adequate)75 553 y(or)e(most)g(applications.)21 b Fk(MPI)p
596 553 V 16 w(Pro)q(cess)p 755 553 V 17 w(sta)o(rt)15
b Fs(pro)o(vides)g(more)f(\015exibilit)o(y)j(and)e(the)g(abilit)o(y)h
(to)d(manage)75 610 y(non-MPI)f(pro)q(cesses.)19 b(Both)11
b(tak)o(e)g(as)g(input)i(an)f Fk(MPI)p 996 610 V 15 w(Resource)h
Fs(ob)s(ject,)e(represen)o(ting)i(computational)75 666
y(resources)j(on)f(whic)o(h)i(a)e(job)g(can)h(run.)22
b(F)l(or)15 b(simple)i(applications,)g(there)f(is)g(a)f(simple)i(w)o(a)
o(y)e(to)g(obtain)75 723 y(this)h Fk(MPI)p 249 723 V
15 w(Resource)h Fs(ob)s(ject.)166 779 y Fk(MPI)p 251
779 V 16 w(Spa)o(wn)e Fs(starts)f(MPI)h(pro)q(cesses)g(and)g
(establishes)h(comm)o(unication)g(with)f(them,)f(returning)75
835 y(a)h(comm)o(unicator.)166 892 y Fk(MPI)p 251 892
V 16 w(Pro)q(cess)p 410 892 V 17 w(sta)o(rt)i Fs(merely)g(starts)e(new)
i(pro)q(cesses.)24 b(An)17 b(application)h(ma)o(y)e(establish)h(comm)o
(u-)75 948 y(nication)f(with)g(these)f(new)h(pro)q(cesses)f(through)g
Fk(MPI)p 1016 948 V 16 w(Pro)q(cess)p 1175 948 V 17 w(attach)p
Fs(.)75 1070 y Fm(1.2.3)49 b(Examples)16 b(of)h(Runtime)f(Environments)
75 1156 y Fs(T)l(o)11 b(illustrate)h(ho)o(w)f(the)h(ab)q(o)o(v)o(e)e
(framew)o(ork)g(allo)o(ws)i(us)f(to)g(describ)q(e)i(a)e(wide)h(v)m
(ariet)o(y)g(of)e(actual)i(systems,)75 1212 y(w)o(e)j(giv)o(e)g(here)h
(some)f(examples.)75 1332 y Fk(Environments)22 b(with)f(explicit)h
(Resource)g(Managers)45 b Fs(The)22 b(SP2)e(computers)h(at)g(Argonne)g
(National)75 1389 y(Lab)q(oratory)d(and)g(NASA)h(Ames)g(Lab)q(oratory)f
(use)g(\(di\013eren)o(t\))h(lo)q(cally)h(written)e(job)h(sc)o(hedulers)
h(to)75 1445 y(manage)d(the)g(SP2.)25 b(The)18 b(sc)o(hedulers)g
(ensure)g(that)f(only)g(one)h(user)f(has)g(access)g(to)g(an)o(y)f(SP)i
(no)q(de)g(at)75 1502 y(a)e(time)g(and)g(manage)f(resources)h(in)h(a)e
(\\fair")h(w)o(a)o(y)f(to)g(ensure)h(that)f(all)i(users)f(can)g(get)g
(access)g(to)f(the)75 1558 y(mac)o(hines.)20 b(They)15
b(require)g(users)f(to)f(pro)o(vide)i(times)f(limits)i(for)d(their)i
(jobs)f(so)f(that)h(the)g(mac)o(hine)h(can)75 1615 y(b)q(e)i(tigh)o
(tly)g(sc)o(heduled.)26 b(Users)16 b(submit)h(scripts)g(to)f(the)h(sc)o
(heduler,)h(whic)o(h)f(allo)q(cates)g(resources)g(and)75
1671 y(runs)f(jobs)f(using)i(IBM's)e(P)o(arallel)i(En)o(vironmen)o(t)f
(soft)o(w)o(are.)k(The)15 b(systems)h(in)o(teract)f(with)h(a)g(v)m
(ariet)o(y)75 1728 y(of)f(message-passing)g(libraries,)h(includin)q(g)h
(t)o(w)o(o)d(based)i(on)f(MPI.)166 1784 y(The)j(corresp)q(ondence)h
(with)f(the)f(mo)q(del)i(ab)q(o)o(v)o(e)e(is)h(straigh)o(tforw)o(ard.)
25 b(The)18 b(resource)g(manager)75 1841 y(is)h(the)g(lo)q(cally)i
(written)e(job)g(sc)o(heduler.)32 b(The)20 b(pro)q(cess)f(manager)f(is)
h(con)o(tained)h(in)g(IBM's)e(parallel)75 1897 y(en)o(vironmen)o(t)d
(soft)o(w)o(are.)166 1953 y(There)23 b(are)g(n)o(umerous)f(examples)i
(of)e(job)h(managemen)o(t)f(systems)h(that)f(allo)q(cate)h(resources.)
75 2010 y(These)d(include)i(PBS)e(\(from)f(NASA)h(Ames\),)g(EASY)g
(\(from)e(ANL\),)i(LSF)g(\(from)f(Platform)f(Com-)75
2066 y(puting\),)f(LoadLev)o(eler)g(\(from)e(IBM\),)h(DQS)g([2])f
(\(from)h(Florida)g(State)g(Univ)o(ersit)o(y\),)g(Condor)g(\(from)75
2123 y(the)f(Univ)o(ersit)o(y)h(of)f(Wisconsin\),)h(and)f(NQS.)166
2179 y(Eac)o(h)20 b(one)h(of)f(these)h(resource)g(managers)e(can)i(b)q
(e)g(used)h(in)f(conjunction)h(with)f(one)f(or)g(more)75
2236 y(pro)q(cess)c(managers.)22 b(Pro)q(cess)16 b(managers)g(ma)o(y)f
(b)q(e)i(programs)e(external)h(to)g(an)g(application)i(\()p
Fj(poe)d Fs(on)75 2292 y(the)i(IBM)h(SP2\),)f(part)g(of)g(the)g(op)q
(erating)h(system)f(\(usually)h(on)f(tigh)o(tly)h(in)o(tegrated)f(MPPs)
g(suc)o(h)g(as)75 2349 y(the)d(In)o(tel)g(P)o(aragon,)e(Meik)o(o)i
(CS-2)f(and)h(TMC)f(CM-5\),)g(part)g(of)g(the)h(message)f(passing)h
(library)g(\()p Fj(p4)f Fs(or)75 2405 y Fj(pvm)p Fs(\))h(or)h(in)o
(tegrated)g(with)h(the)f(resource)g(manager)g(\(Condor)f(with)i
Fj(pvm)p Fs(\).)75 2525 y Fk(Net)o(w)o(o)o(rk)c(of)f(W)o(o)o
(rkstations)i(with)f(PVM)h(o)o(r)e(P4)45 b Fs(One)13
b(reason)e(for)h(PVM's)f(p)q(opularit)o(y)i(is)f(that)g(it)g(can)g(b)q
(e)75 2582 y(view)o(ed)h(as)f(a)g(completely)i(self-con)o(tained)f
(system)f(that)g(supplies)i(its)f(o)o(wn)f(pro)q(cess)g(managemen)o(t)g
(and)75 2638 y(can)g(b)q(e)h(used)g(to)e(implemen)o(t)i(a)f(resource)g
(manager)f(as)h(w)o(ell.)20 b(On)13 b(systems)e(that)g(ha)o(v)o(e)h
(neither)h(of)f(these)75 2694 y(functions)20 b(pre-installed,)i(PVM)c
(can)h(pro)o(vide)h(a)e(complete)i(solution.)32 b(A)19
b(user)g(creates)g(a)g(\\virtual)-32 46 y Fi(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 Fs(6)951 b Fn(CHAPTER)16 b(1.)34 b(D)o(YNAMIC)15
b(PR)o(OCESSES)75 45 y Fs(mac)o(hine")h(b)o(y)f(starting)g(\\daemons")g
(on)g(an)g(assortmen)o(t)f(of)h(mac)o(hines)h(and)g(then)g(sc)o
(hedules)g(jobs)g(to)75 102 y(run)i(on)g(it)h(and)f(manages)f(his)i
(pro)q(cesses)f(with)h(the)f(help)h(of)f(the)g(daemons.)28
b(The)18 b(virtual)h(mac)o(hine)75 158 y(itself)h(can)g(b)q(e)g
(recon\014gured)g(from)f(inside)i(the)f(user)g(program.)31
b(A)20 b(di\016cult)o(y)h(with)e(this)h(approac)o(h)75
214 y(is)g(that)e(the)h(user)g(is)h(assumed)f(to)f(ha)o(v)o(e)h(the)g
(necessary)h(p)q(ermissions)g(to)e(execute)i(suc)o(h)g(functions.)75
271 y(This)15 b(ma)o(y)f(b)q(e)h(the)f(case)h(on)f(a)g(w)o(orkstation)f
(net)o(w)o(ork,)g(but)i(seldom)f(on)h(an)f(MPP)l(.)g(Con\015icts)h(b)q
(et)o(w)o(een)75 327 y(existing)e(pro)q(cess)g(managers)e(and)h(PVM)g
(can)h(inhibit)h(the)e(p)q(ortabilit)o(y)i(\(to)d(MPP's\))g(of)h
(self-con)o(tained)75 384 y(programs)i(that)g(assume)i(all)g
(functionalit)o(y)g(will)h(b)q(e)f(pro)o(vided)g(b)o(y)f(PVM.)166
440 y(Equiv)m(alen)o(t)h(MPI)f(functionalit)o(y)h(requires)g(an)f(MPI)f
(implemen)o(tation)i(in)g(whic)o(h)g(b)q(oth)f(resource)75
497 y(managemen)o(t)22 b(and)i(pro)q(cess)f(managemen)o(t)g(are)f(pro)o
(vided)i(b)o(y)g(the)f(MPI)g(implemen)o(tation)h(itself.)75
553 y(While)f(implemen)o(ted)g(within)f(MPI,)f(these)g(functions)h(w)o
(ould)g(b)q(e)g(logically)h(external)e(to)g(an)g(MPI)75
610 y(application,)f(allo)o(wing)f(the)e(application)j(to)d(run)h
(virtually)h(unc)o(hanged)g(in)g(the)f(presence)h(of)e(a)h(real)75
666 y(resource)c(and)g(pro)q(cess)g(managers.)19 b(In)14
b(suc)o(h)g(an)g(implemen)o(tation,)h(requests)f(to)f(the)h(\\resource)
g(man-)75 723 y(ager")k(w)o(ould)h(alw)o(a)o(ys)g(succeed,)h(assuming)g
(the)f(user)g(had)g(appropriate)g(p)q(ermission)h(to)e(start)g(pro-)75
779 y(cesses.)75 899 y Fk(PVM)11 b(p)o(ro)q(cess)h(management)e(with)i
(MPI)e(message-passing.)47 b Fs(One)11 b(can)h(conceiv)o(e)g(of)e(a)h
(system)f(in)i(whic)o(h)75 956 y(resource)j(allo)q(cation)h(and)f(pro)q
(cess)g(managemen)o(t)f(functions)i(w)o(ere)f(pro)o(vided)h(b)o(y)e
(the)h(existing)h(PVM)75 1012 y(daemon)d(structure,)g(while)h(MPI)f(w)o
(as)f(used)h(b)o(y)g(the)g(application)i(for)d(message)h(passing.)19
b(PVM)13 b(w)o(ould)75 1068 y(b)q(e)j(used)g(as)f(the)h(implemen)o
(tation)g(la)o(y)o(er)f(for)g(the)h(functions)g(describ)q(ed)h(in)f
(this)g(c)o(hapter,)f(but)h(w)o(ould)75 1125 y(not)f(b)q(e)h(visible)h
(to)e(the)g(application)i(program.)75 1247 y Fm(1.2.4)49
b(Applications)18 b(Requiring)f(Direct)e(Communication)i(with)g(the)e
(Runtime)h(System)75 1332 y Fs(The)i(existing)h(MPI)f(sp)q
(eci\014cation)h(is)g(adequate)e(for)g(most)g(parallel)j(applications.)
29 b(In)18 b(these)g(appli-)75 1389 y(cations,)e(the)h(resource)f
(manager)g(and)g(pro)q(cess)h(manager,)f(whether)g(simple)i(or)e(elab)q
(orate,)g(allo)q(cate)75 1445 y(resources)f(and)h(manage)e(user)i(pro)q
(cesses)g(without)f(in)o(teracting)h(with)f(the)g(application)i
(program.)i(In)75 1502 y(other)e(applications,)j(ho)o(w)o(ev)o(er,)c
(it)i(is)g(necessary)g(that)f(the)h Fl(user)g(level)j
Fs(of)c(the)h(application)h(comm)o(u-)75 1558 y(nicate)f(with)g(the)g
(job)g(sc)o(heduler)h(and/or)e(the)h(pro)q(cess)g(manager.)27
b(Here)18 b(w)o(e)f(describ)q(e)i(three)f(broad)75 1615
y(classes)e(of)g(suc)o(h)g(applications.)24 b(In)17 b(Section)f(1.5)f
(w)o(e)h(will)i(giv)o(e)e(concrete)g(examples)h(of)e(eac)o(h)h(of)g
(these)75 1671 y(classes.)75 1791 y Fk(T)l(ask)c(F)o(a)o(rming)43
b Fs(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 1848 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
1904 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)75 1961 y(in)o(v)o(o)q(cation)14 b(of)e(the)i(sequen)o
(tial)g(program)e(a)h Fl(task)p Fs(.)19 b(It)13 b(is)h(often)f
(simplest)h(to)f(\\parallelize")i(the)e(existing)75 2017
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 2073 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 2130 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 2186 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 Fj(rsh)p Fs(,)g(to)g(start)f(the)i
(new)75 2243 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 2299 y(scripting)k(language)f(lik)o(e)g Fj(csh)g
Fs(or)f Fj(perl)p Fs(,)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 2356 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 2412 y(non-MPI)h(pro)q(cesses.)
75 2532 y Fk(Dynamic)f(numb)q(er)i(of)e(p)o(ro)q(cesses)j(in)e(pa)o
(rallel)f(job)46 b Fs(The)16 b(program)f(wishes)i(to)e(decide)j
Fl(inside)g Fs(the)e(pro-)75 2589 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 2645
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
2702 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,)
1967 46 y Fi(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(1.3.)33 b(NEW)15 b(OBJECTS)g(F)o(OR)g
(IMPLEMENTING)g(D)o(YNAMIC)f(PR)o(OCESS)h(MANA)o(GEMENT)p
Fs(7)75 45 y(the)g(application)i(program)d(will)j(ha)o(v)o(e)d(to)h(in)
o(teract)g(with)g(the)g(resource)g(manager)g(\(ho)o(w)o(ev)o(er)e(it)j
(is)f(im-)75 102 y(plemen)o(ted\))20 b(to)f(request)g(and)g(acquire)h
(or)f(return)g(computation)g(resources.)32 b(It)19 b(will)i(also)e(ha)o
(v)o(e)g(to)75 158 y(in)o(teract)c(with)h(the)f(pro)q(cess)h(manager)e
(to)h(request)g(that)f(pro)q(cess)i(b)q(e)g(started)e(and)i(in)g(order)
f(to)f(mak)o(e)75 214 y(the)e(new)f(pro)q(cesses)h(kno)o(wn)f(to)g(the)
h(message-passing)g(library)g(so)f(that)g(the)g(larger)h(\(or)e
(smaller\))i(group)75 271 y(of)j(pro)q(cesses)g(can)h(comm)o(unicate.)
166 327 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 384 y(application)j(is)g(\\em)o
(barassingly)f(parallel")h(in)f(the)g(sense)g(that)f(it)h(p)q(erforms)g
(a)f(large)h(n)o(um)o(b)q(er)g(of)75 440 y(completely)17
b(indep)q(enden)o(t)h(tasks.)j(It)16 b(the)g(n)o(um)o(b)q(er)g(of)f
(tasks)g(is)i(large)f(enough,)f(suc)o(h)i(an)e(application)75
497 y(can)21 b(mak)o(e)f(use)h(of)f(an)o(y)h(resources)g(as)f(they)h(b)
q(ecome)g(a)o(v)m(ailable.)38 b(Con)o(v)o(ersely)l(,)22
b(it)f(can)g(easily)h(giv)o(e)75 553 y(up)17 b(resources)h(to)e
(another)h(application.)27 b(Sca)o(v)o(enger)16 b(applications)j(are)e
(excellen)o(t)h(for)f(\014lling)i(in)f(the)75 610 y(\\holes")d(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 730 y Fk(Client/Server)46
b Fs(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
786 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 843 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 899 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 956
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 1012 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 1068 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
1125 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 1181 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 1238 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
1294 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 1351 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 1407 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 1550 y Fp(1.3)59 b(New)20 b(Objects)e(fo)n(r)j
(Implementing)c(Dynamic)i(Pro)r(cess)g(Management)75
1652 y Fs(Using)d(dynamic)g(pro)q(cesses)f(in)h(MPI)g(is)f(a)g(three)h
(step)f(pro)q(cess)g(sho)o(wn)g(in)h(Figure)g(1.2.)131
1746 y(1.)22 b Fd(Allo)q(cate)14 b(or)e(disco)o(v)o(er)f(resources)p
Fs(,)f(obtaining)h(one)g(or)g(more)f Fk(MPI)p 1403 1746
14 2 v 16 w(Resource)h Fs(ob)s(jects,)g(whic)o(h)189
1802 y(represen)o(t)k(p)q(ermission)h(to)f(start)f(additional)j(pro)q
(cesses.)131 1896 y(2.)22 b Fd(Start)12 b(tasks)f(on)h(allo)q(cated/di)
q(sco)o(v)o(ered)g(resources)p Fs(,)e(obtaining)h(one)f(or)g(more)f
Fk(MPI)p 1742 1896 V 16 w(Pro)q(cess)189 1952 y Fs(ob)s(jects,)14
b(whic)o(h)i(represen)o(t)f(running)h(pro)q(cesses)g(but)f(don't)g
(allo)o(w)g(comm)o(unication.)131 2046 y(3.)22 b Fd(Establish)16
b(MPI)e(comm)o(unication)i(with)f(or)g(b)q(et)o(w)o(een)f(newly)h
(created)g(pro)q(cesses)d Fs(b)o(y)189 2103 y(obtaining)k(a)f(comm)o
(unicator)f(whose)h(group)g(con)o(tains)h(the)f(new)g(pro)q(cesses.)75
2262 y Fm(1.3.1)49 b(The)16 b(MPI)p 409 2262 15 2 v 18
w(Resource)g(Object)75 2348 y Fs(A)23 b(request)g(to)f(the)g(resource)h
(manager)f(returns)h(an)g Fk(MPI)p 1144 2348 14 2 v 15
w(Resource)h Fs(ob)s(ject.)42 b(An)23 b Fk(MPI)p 1693
2348 V 16 w(Resource)75 2404 y Fs(represen)o(ts)18 b(a)g(set)g(of)g
(computational)h(resources)f(on)g(whic)o(h)h(an)f(application)i(ma)o(y)
e(start)f(pro)q(cesses.)75 2460 y(Dep)q(ending)23 b(on)e(the)g(request)
g(that)f(generated)h(it,)i(an)e Fk(MPI)p 1163 2460 V
15 w(Resource)i Fs(ma)o(y)d(represen)o(t)h(a)g(ph)o(ysical)75
2517 y(CPU,)14 b(a)f(collection)j(of)e(CPUs,)g(or)f(ev)o(en)i(a)f
(promise)g(from)f(a)h(resource)g(manager)g(that)f(an)h(application)75
2573 y(is)22 b(allo)o(w)o(ed)g(to)e(spa)o(wn)i(one)f(or)g(more)g(pro)q
(cesses)h(\(whose)f(ph)o(ysical)h(lo)q(cation)h(will)g(b)q(e)f
(determined)75 2630 y(dynamically\).)-32 46 y Fi(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 Fs(8)951 b Fn(CHAPTER)16 b(1.)34 b(D)o(YNAMIC)15
b(PR)o(OCESSES)375 691 y @beginspecial 90 @llx 451 @lly
518 @urx 696 @ury 2880 @rwi @setspecial
%%BeginDocument: fig2.eps
1 setlinejoin
/M { moveto } bind def /S { show } bind def
/R { rmoveto } bind def /L { lineto } bind def
/B { newpath 0 0 M 0 1 L 1 1 L 1 0 L closepath } bind def
/CS { closepath stroke } bind def
/S {
/fixwidth exch def
dup length /nchars exch def
dup stringwidth pop
fixwidth exch sub nchars div
exch 0 exch ashow
} def
/bwproc {
rgbproc
dup length 3 idiv string 0 3 0
5 -1 roll {
add 2 1 roll 1 sub dup 0 eq
{ pop 3 idiv 3 -1 roll dup 4 -1 roll dup
3 1 roll 5 -1 roll put 1 add 3 0 }
{ 2 1 roll } ifelse
} forall
pop pop pop
} def
systemdict /colorimage known not {
/colorimage {
pop
pop
/rgbproc exch def
{ bwproc } image
} def
} if
1 1 scale
0 setlinewidth
/drawtri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
0 setgray
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
stroke
} bind def
/filltri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
fill
} bind def
/cliptri {
/y3 exch def
/x3 exch def
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
0 setgray
newpath
x1 y1 moveto
x2 y2 lineto
x3 y3 lineto
closepath
clip
} bind def
/imgscanrgb {
gsave
translate
/scandy exch def
/scandx exch def
/istr scandx 3 mul string def
scandx scandy scale
scandx scandy 8
[scandx 0 0 scandy neg 0 scandy]
{currentfile istr readhexstring pop}
false 3
colorimage
grestore
} bind def
/imgscanbw {
gsave
translate
/scandy exch def
/scandx exch def
/istr scandx string def
scandx scandy scale
scandx scandy 8
[scandx 0 0 scandy neg 0 scandy]
{currentfile istr readhexstring pop}
image
grestore
} bind def
/showcaseisoencoding [
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/space /exclam /quotedbl /numbersign
/dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus
/comma /minus /period /slash
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon
/less /equal /greater /question
/at /A /B /C /D /E /F /G
/H /I /J /K /L /M /N /O
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft
/backslash /bracketright /asciicircum /underscore
/quoteleft /a /b /c /d /e /f /g
/h /i /j /k /l /m /n /o
/p /q /r /s /t /u /v /w
/x /y /z /braceleft
/bar /braceright /asciitilde /guilsinglright
/fraction /florin /quotesingle /quotedblleft
/guilsinglleft /fi /fl /endash
/dagger /daggerdbl /bullet /quotesinglbase
/quotedblbase /quotedblright /ellipsis /trademark
/dotlessi /grave /acute /circumflex
/tilde /macron /breve /dotaccent
/dieresis /perthousand /ring /cedilla
/Ydieresis /hungarumlaut /ogonek /caron
/emdash /exclamdown /cent /sterling
/currency /yen /brokenbar /section
/dieresis /copyright /ordfeminine /guillemotleft
/logicalnot /hyphen /registered /macron
/degree /plusminus /twosuperior /threesuperior
/acute /mu /paragraph /periodcentered
/cedilla /onesuperior /ordmasculine /guillemotright
/onequarter /onehalf /threequarters /questiondown
/Agrave /Aacute /Acircumflex /Atilde
/Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis
/Igrave /Iacute /Icircumflex /Idieresis
/Eth /Ntilde /Ograve /Oacute
/Ocircumflex /Otilde /Odieresis /multiply
/Oslash /Ugrave /Uacute /Ucircumflex
/Udieresis /Yacute /Thorn /germandbls
/agrave /aacute /acircumflex /atilde
/adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis
/igrave /iacute /icircumflex /idieresis
/eth /ntilde /ograve /oacute
/ocircumflex /otilde /odieresis /divide
/oslash /ugrave /uacute /ucircumflex
/udieresis /yacute /thorn /ydieresis ] def
/showcasedingbatencoding [
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /a1 /a2 /a202 /a3 /a4 /a5 /a119 /a118 /a117
/a11 /a12 /a13 /a14 /a15 /a16 /a105 /a17 /a18 /a19
/a20 /a21 /a22 /a23 /a24 /a25 /a26 /a27 /a28 /a6 /a7
/a8 /a9 /a10 /a29
/a30 /a31 /a32 /a33 /a34 /a35 /a36 /a37 /a38 /a39
/a40 /a41 /a42 /a43 /a44 /a45 /a46 /a47 /a48 /a49
/a50 /a51 /a52 /a53 /a54 /a55 /a56 /a57 /a58 /a59
/a60 /a61 /a62 /a63 /a64 /a65 /a66 /a67 /a68 /a69
/a70 /a71 /a72 /a73 /a74 /a203 /a75 /a204 /a76 /a77 /a78
/a79 /a81 /a82 /a83 /a84 /a97 /a98 /a99 /a100 /.notdef
/a205 /a85 /a206 /a86 /a87 /a88 /a89 /a90 /a91 /a92 /a93
/a94 /a95 /a96
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /a101 /a102 /a103 /a104 /a106 /a107 /a108
/a112 /a111 /a110 /a109
/a120 /a121 /a122 /a123 /a124 /a125 /a126 /a127 /a128 /a129
/a130 /a131 /a132 /a133 /a134 /a135 /a136 /a137 /a138 /a139
/a140 /a141 /a142 /a143 /a144 /a145 /a146 /a147 /a148 /a149
/a150 /a151 /a152 /a153 /a154 /a155 /a156 /a157 /a158 /a159
/a160 /a161 /a163 /a164 /a196 /a165 /a192 /a166 /a167 /a168
/a169 /a170 /a171 /a172 /a173 /a162 /a174 /a175 /a176 /a177
/a178 /a179 /a193 /a180 /a199 /a181 /a200 /a182 /.notdef
/a201 /a183 /a184 /a197 /a185 /a194 /a198 /a186 /a195 /a187
/a188 /a189 /a190 /a191 /.notdef
] def
/Courier-Bold findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding showcaseisoencoding def
currentdict
end
/Courier-Bold-SHOWISO exch definefont pop
/pmask10 {
<18182424424281811818242442428181
18182424424281811818242442428181>
} def
/newfont 10 dict def
newfont begin
/FontType 3 def
/FontMatrix [1 0 0 1 0 0] def
/FontBBox [0 0 1 1] def
/Encoding 256 array def
0 1 255 {Encoding exch /.notdef put} for
Encoding 42 /patchar10 put
/CharProcs 2 dict def
CharProcs begin
/.notdef {} def
/patchar10 {
16 16 true [16.08 0 0 -16.08 0 16.08] pmask10 imagemask
} def
end
/BuildChar {
1 0
0 0 1 1
setcachedevice
exch begin
Encoding exch get
CharProcs exch get
end
exec
} def
end
/PatternFont newfont definefont pop
/#copies 1 def
gsave
gsave
matrix currentmatrix
[117 0 0 -126 90 648] concat
B
setmatrix
0 0 0 setrgbcolor
2.000000 setlinewidth
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 91.7 654] concat
newpath
0 0 M 0 42 L 77.6 42 L 77.6 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
89.2 651.5 M 89.2 698.5 L 171.8 698.5 L 171.8 651.5 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 91.7 654] concat
/Courier-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 31.5 M (Allocate/) 75.6 S
0 17.5 M (Discover) 67.2 S
0 3.5 M (Resources) 75.6 S
setmatrix
grestore
gsave
matrix currentmatrix
[117 0 0 -126 247.5 648] concat
B
setmatrix
0 0 0 setrgbcolor
2.000000 setlinewidth
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 249.2 654.5] concat
newpath
0 0 M 0 28 L 77.6 28 L 77.6 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
246.7 652 M 246.7 685 L 329.3 685 L 329.3 652 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 249.2 654.5] concat
/Courier-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 17.5 M (Start) 42 S
0 3.5 M (Processes) 75.6 S
setmatrix
grestore
gsave
matrix currentmatrix
[117 0 0 -126 400.5 648] concat
B
setmatrix
0 0 0 setrgbcolor
2.000000 setlinewidth
gsave stroke grestore
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 402.2 654.5] concat
newpath
0 0 M 0 28 L 111.2 28 L 111.2 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
399.7 652 M 399.7 685 L 515.9 685 L 515.9 652 L
closepath clip newpath
0 0 0 setrgbcolor
matrix currentmatrix
[1 0 0 1 402.2 654.5] concat
/Courier-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 17.5 M (Establish ) 84 S
0 3.5 M (Communication) 109.2 S
setmatrix
grestore
gsave
0 0 0 setrgbcolor
2.000000 setlinewidth
newpath
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
274.5 523 translate
90 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
180 522 M
180 468 L
274.5 468 L
274.5 504 L
stroke
grestore
gsave
0 0 0 setrgbcolor
gsave
0 setlinejoin
441 523 translate
90 rotate
1.2 1.2 scale
newpath 0 0 M -20 -5 L -20 5 L closepath fill
grestore
2.000000 setlinewidth
newpath
337.5 522 M
337.5 495 L
337.5 468 L
441 468 L
441 504 L
stroke
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 179 451] concat
newpath
0 0 M 0 14 L 102.8 14 L 102.8 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
176.5 448.5 M 176.5 467.5 L 284.3 467.5 L 284.3 448.5 L
closepath clip newpath
0.560784 0.560784 0.87451 setrgbcolor
matrix currentmatrix
[1 0 0 1 179 451] concat
/Courier-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 3.5 M (MPI_Resource) 100.8 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 341 451] concat
newpath
0 0 M 0 14 L 94.4 14 L 94.4 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
338.5 448.5 M 338.5 467.5 L 437.9 467.5 L 437.9 448.5 L
closepath clip newpath
0.560784 0.560784 0.87451 setrgbcolor
matrix currentmatrix
[1 0 0 1 341 451] concat
/Courier-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 3.5 M (MPI_Process) 92.4 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 98 585] concat
newpath
0 0 M 0 42 L 102.8 42 L 102.8 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
95.5 582.5 M 95.5 629.5 L 203.3 629.5 L 203.3 582.5 L
closepath clip newpath
0.560784 0.560784 0.87451 setrgbcolor
matrix currentmatrix
[1 0 0 1 98 585] concat
/Courier-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 31.5 M (MPI_Resource) 100.8 S
0 17.5 M ( _Discover) 92.4 S
0 3.5 M ( _Allocate) 92.4 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 255.5 599] concat
newpath
0 0 M 0 28 L 94.4 28 L 94.4 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
253 596.5 M 253 629.5 L 352.4 629.5 L 352.4 596.5 L
closepath clip newpath
0.560784 0.560784 0.87451 setrgbcolor
matrix currentmatrix
[1 0 0 1 255.5 599] concat
/Courier-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 17.5 M (MPI_Process) 92.4 S
0 3.5 M ( _Start) 67.2 S
setmatrix
grestore
gsave
gsave
matrix currentmatrix
[1 0 0 1 413 613] concat
newpath
0 0 M 0 14 L 86 14 L 86 0 L
closepath setmatrix
0 0 0 setrgbcolor
grestore
newpath
410.5 610.5 M 410.5 629.5 L 501.5 629.5 L 501.5 610.5 L
closepath clip newpath
0.560784 0.560784 0.87451 setrgbcolor
matrix currentmatrix
[1 0 0 1 413 613] concat
/Courier-Bold-SHOWISO findfont 14 scalefont setfont
0 0 0 setrgbcolor
0 3.5 M (MPI_Attach) 84 S
setmatrix
grestore
grestore
showpage
%%EndDocument
@endspecial 552 788 a Fs(Figure)g(1.2:)k(Dynamic)d(Pro)q(cess)f
(Managemen)o(t)166 922 y(Within)g(MPI,)e(an)g Fk(MPI)p
581 922 14 2 v 16 w(Resource)i Fs(is)f(simply)h(a)e(con)o(tainer)h(of)f
(pro)q(cess)h(slots.)20 b(Pro)q(cess)13 b(slots)h(ma)o(y)75
978 y(either)i(b)q(e)f(\014lled)i(\(b)o(y)d(a)h(single)h(running)g(pro)
q(cess\))e(or)h(empt)o(y)l(.)k(The)c(con)o(tainer)g(should)h(b)q(e)f
(though)o(t)f(of)75 1035 y(as)g(a)f(bag)h(b)q(ecause)h(there)f(is)g(no)
g(in)o(ternal)h(structure)f(visible)i(to)d(an)h(application)i(\(i.e.,)d
(if)i(it)f(represen)o(ts)75 1091 y(m)o(ultiple)i(CPUs,)e(there)g(is)h
(no)f(w)o(a)o(y)f(for)h(an)g(application)i(to)d(tell)j(on)e(whic)o(h)h
(of)f(those)g(CPUs)g(a)g(pro)q(cess)75 1148 y(is)k(running\).)29
b(An)18 b Fk(MPI)p 498 1148 V 16 w(Resource)h Fs(is)f(generally)h
(reusable,)g(as)e(it)h(represen)o(ts)g(a)g(committmen)o(t)f(from)75
1204 y(an)e(external)h(resource)f(manager)g(that)f(resources)h(are)g(a)
o(v)m(ailable.)166 1337 y Fh(Discussion:)61 b Fg(One)21
b(big)f(hole)h(in)f(the)h(curren)o(t)i Ff(MPI)p 1088
1337 13 2 v 14 w(Resource)f Fg(description)f(is)g(that)g(o)o(wnership)g
(of)75 1386 y(resources)16 b(is)e(v)n(aguely)f(de\014ned.)20
b(I)14 b(think)f(collectiv)o(e)h(o)o(wnership)h(is)f(unnatural)f(and)h
(single-pro)q(cess)i(o)o(wnership)75 1436 y(is)g(m)o(uc)o(h)e(easier)j
(to)e(understand.)25 b(Collectiv)o(e)15 b(o)o(wnership)h(do)q(esn't)h
(mak)o(e)d(things)h(an)o(y)h(easier.)24 b(It)16 b(just)g(means)75
1486 y(that)e(all)f(op)q(erations)h(are)g(collectiv)o(e)g(-)g(not)f
(that)h(an)o(y)g(pro)q(cess)h(can)g(start)f(c)o(hildren.)166
1536 y(This)g(lea)o(v)o(es)g(t)o(w)o(o)f(problems)134
1611 y(1.)22 b(Can)13 b(w)o(e)i(transfer)g(resource)h(o)o(wnership?)j
(It)14 b(ma)o(y)e(b)q(e)j(clean)f(to)g(transfer)h(it)f(to)f(c)o
(hildren)i(but)f(otherwise)189 1660 y(I)f(don't)h(see)h(a)f(nice)g(in)o
(terface.)134 1735 y(2.)22 b(Who)15 b(o)o(wns)h(the)h(resources)h(used)
f(b)o(y)f(initial)e(pro)q(cesses)19 b(and)d(preallo)q(cated)g
(resources?)27 b(My)16 b(ten)o(tativ)o(e)189 1785 y(prop)q(osals)11
b(are)h(that)f(a)g(pro)q(cess)i(o)o(wns)e(its)g(o)o(wn)g(resources)j
(\(un)o(til)c(transferred)j(someho)o(w\))d(and)h(that)h(no)q(de)189
1835 y(0)h(o)o(wns)h(all)f(the)h(preallo)q(cated)g(resources)j(\(yuc)o
(k!\).)166 1909 y(Another)h(issue)f(is)g(what)g(happ)q(ens)h(to)f
(resources)i(that)e(expire.)28 b(I)17 b(don't)g(think)f(this)h(is)g(to)
q(o)g(m)o(uc)o(h)f(of)g(a)75 1959 y(problem,)c(esp.)19
b(if)13 b(resources)j(aren't)e(collectiv)o(e.)k(-w)o(cs)166
2009 y(The)f(uses)h(of)e(o)o(wnership)h(\(eg.)27 b(y)o(ou)17
b(can)g(only)f(free)h(resources)i(y)o(ou)e(o)o(wn\))f(needs)i(to)f(b)q
(e)g(sp)q(elled)g(out.)27 b(I)75 2059 y(opp)q(ose)14
b(an)o(ything)f(fancy)h(with)f(resp)q(ect)k(to)c(o)o(wnership)h(\(e.g.)
k(transfer)d(of)e(it)h(or)g(collectiv)o(e)f(o)o(wnership\))i(on)e(the)
75 2109 y(grounds)h(that)g(it)f(will)f(b)q(e)j(to)q(o)e(dep)q(enden)o
(t)j(on)d(the)i(capabilities)d(of)i(the)g(\(unkno)o(wn\))g(resource)h
(manager.)i(-)c(RL)166 2248 y Fs(The)19 b(notion)h(of)f
Fl(r)n(esour)n(c)n(e)f Fs(is)i(delib)q(erately)h(\015exible.)35
b(Most)18 b(applications)j(do)e(not)g(care)g(where)75
2304 y(pro)q(cesses)h(are)f(spa)o(wned,)i(as)e(long)h(as)g(there)f(is)i
(one)e(pro)q(cess)h(p)q(er)h(CPU.)e(F)l(or)g(these)h(applications,)75
2361 y(a)e(single)i(resource)e(ob)s(ject)g(con)o(taining)h(sev)o(eral)f
(CPUs)g(ma)o(y)g(b)q(e)g(appropriate.)30 b(Other)18 b(appications)75
2417 y(will)g(w)o(an)o(t)c(explicit)19 b(con)o(trol)c(o)o(v)o(er)g
(whic)o(h)i(pro)q(cesses)f(go)g(on)g(whic)o(h)g(mac)o(hine.)23
b(In)17 b(this)f(case,)g(a)g(single)75 2474 y(resource)i(ob)s(ject)e
(ma)o(y)h(corresp)q(ond)h(to)f(a)g(single)i(mac)o(hine.)27
b(Similarly)l(,)20 b(it)e(migh)o(t)f(b)q(e)i(con)o(v)o(enien)o(t)f(to)
75 2530 y(think)e(of)f(an)g(SMP)g(as)g(a)g(single)h(\\no)q(de")f(or)g
(as)g(a)g(collection)i(of)e(\(virtual\))g(pro)q(cessors.)166
2587 y(Within)c(MPI,)f(ho)o(w)o(ev)o(er,)g(a)g(resource)h(is)g(nothing)
f(more)g(than)h(a)f(bag)g(of)f(pro)q(cess)i(slots.)18
b(Additional)75 2643 y(information)13 b(ab)q(out)f(what)g(ph)o(ysical)i
(resources)f(the)g(pro)q(cesses)g(will)h(use)f(ma)o(y)f(b)q(e)h(kno)o
(wn)g(to)f(and)g(used)75 2699 y(b)o(y)j(the)g(application,)i(but)e(is)h
(not)f(imp)q(ortan)o(t)g(to)f(MPI.)1967 46 y Fi(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(1.3.)33 b(NEW)15 b(OBJECTS)g(F)o(OR)g
(IMPLEMENTING)g(D)o(YNAMIC)f(PR)o(OCESS)h(MANA)o(GEMENT)p
Fs(9)166 45 y(Three)g(n)o(um)o(b)q(ers)h(c)o(haracterize)f(an)g
Fk(MPI)p 880 45 14 2 v 16 w(Resource)p Fs(.)131 139 y(1.)22
b(Num)o(b)q(er)15 b(of)g(running)h(pro)q(cesses)131 233
y(2.)22 b(Num)o(b)q(er)15 b(of)g(pro)q(cess)g(slots)h(\(\014lled)g(and)
g(empt)o(y\))e(recommended)131 327 y(3.)22 b(Num)o(b)q(er)15
b(of)g(pro)q(cess)g(slots)h(\(\014led)g(and)f(empt)o(y\))g(total)166
420 y(It)e(is)g(necessary)g(to)g(distinguish)i(b)q(et)o(w)o(een)e(the)g
(total)f(n)o(um)o(b)q(er)h(of)g(pro)q(cess)g(slots)g(and)g(the)g(n)o
(um)o(b)q(er)75 477 y(of)j(pro)q(cesses)i(recommended)f(for)f(a)h(giv)o
(en)g(resource.)25 b(F)l(or)16 b(instance,)i(if)f(a)g(resource)f
(corresp)q(onds)i(to)75 533 y(a)f(Unix)i(w)o(orkstation,)e(it)h(ma)o(y)
f(theoreticaly)h(run)g(as)g(man)o(y)f(pro)q(cesses)h(as)f(Unix)i(can)f
(supp)q(ort.)27 b(On)75 590 y(the)17 b(other)g(hand,)g(it)g(should)h
(probably)g(run)f(at)f(most)g(one)h(pro)q(cess)g(p)q(er)h(pro)q
(cessor.)25 b(W)l(e)17 b(could)h(giv)o(e)75 646 y(it)e(one)g(pro)q
(cess)h(slot,)e(but)i(some)e(applications)j(will)g(need)e(to)g(b)q(e)g
(able)h(to)f(do)g(more.)21 b(W)l(e)c(don't)e(w)o(an)o(t)75
703 y(to)j(tell)h(the)g(user,)g(ho)o(w)o(ev)o(er,)f(that)g(there)h(are)
f(100)g(slots)g(a)o(v)m(ailable)i(b)q(ecause)g(there)e(will)i(b)q(e)g
(no)e(w)o(a)o(y)75 759 y(to)d(distinguish)i(this)f(resource)f(from)g
(one)g(with)h(100)e(CPUs.)20 b(W)l(e)c(ma)o(y)e(ha)o(v)o(e)h(an)h(SMP)l
(,)e(but)i(our)f(MPI)75 816 y(pro)q(cesses)g(ma)o(y)f(b)q(e)h(m)o
(ultithreaded)g(pro)q(cesses,)g(so)f(that)g(w)o(e)g(still)i(w)o(an)o(t)
d(only)i(one)g(pro)q(cess)g(p)q(er)g(no)q(de.)75 872
y(Th)o(us)c(\\recommended)i(pro)q(cesses")e(do)q(esn't)h(alw)o(a)o(ys)e
(mean)i(\\n)o(um)o(b)q(er)g(of)f(CPUs.")18 b(Most)10
b(applications)75 928 y(can)19 b(lo)q(ok)g(at)f(recommended)i(pro)q
(cesses)f(and)h(ignore)f(max)f(pro)q(cesses.)31 b(Finally)l(,)22
b(for)c(debugging,)i(a)75 985 y(user)d(migh)o(t)f(w)o(an)o(t)f(to)h
(\\fo)q(ol")g(an)g(application)i(b)o(y)e(suggesting)h(that)e(it)i
(start)e(m)o(ultiple)j(pro)q(cesses)f(on)75 1041 y(a)e(single)h(w)o
(orkstation.)166 1180 y Fh(Discussion:)32 b Fg(Suggestions)13
b(for)f(an)h(alternativ)o(e)f(name)f(to)i(\\recommended")e(are)i(w)o
(elcome.)j(Thanks)d(to)75 1237 y(Ian)f(F)m(oster)g(for)g(making)d
(clear)j(the)h(need)f(to)g(distinguish)f(b)q(et)o(w)o(een)j(max/recomm)
o(ended)c(\(hop)q(e)i(I)g(got)f(it)h(righ)o(t!\))75 1293
y(-)i(w)o(cs)166 1433 y Fs(The)h(follo)o(wing)h(routines)g(can)f(b)q(e)
h(used)g(to)e(access)i(information)f(ab)q(out)g(an)g
Fk(MPI)p 1589 1433 V 16 w(Resource)p Fs(.)75 1583 y Fk(MPI)p
160 1583 V 16 w(RESOURCE)p 406 1583 V 18 w(NSLOTS\(resource,)h
(nslots\))117 1661 y Fg(IN)155 b Fk(resource)432 b Fg(an)14
b Ff(MPI)p 1040 1661 13 2 v 14 w(Resource)h Fg(ob)r(ject)117
1736 y(OUT)108 b Fk(nslots)480 b Fg(n)o(um)o(b)q(er)13
b(of)h(slots)166 1860 y Fk(nslots)21 b Fs(giv)o(es)f(the)h(n)o(um)o(b)q
(er)f(of)g(recommended)h(pro)q(cesses)f(in)h(a)f(resource.)34
b(This)21 b(n)o(um)o(b)q(er)f(will)75 1917 y(alw)o(a)o(ys)14
b(b)q(e)i(a)f(\014nite)h(non-negativ)o(e)g(in)o(teger)f(\(it)h(ma)o(y)e
(b)q(e)i(zero,)f(if)g(resources)g(ha)o(v)o(e)g(expired\).)75
2068 y Fk(MPI)p 160 2068 14 2 v 16 w(RESOURCE)p 406 2068
V 18 w(NSLOTS)p 595 2068 V 17 w(TOT)l(AL\(resource,)g(nslots\))117
2145 y Fg(IN)155 b Fk(resource)432 b Fg(an)14 b Ff(MPI)p
1040 2145 13 2 v 14 w(Resource)h Fg(ob)r(ject)117 2220
y(OUT)108 b Fk(nslots)480 b Fg(n)o(um)o(b)q(er)13 b(of)h(slots)166
2344 y Fk(nslots)i Fs(giv)o(es)g(the)f(total)g(n)o(um)o(b)q(er)g(of)g
(pro)q(cess)g(slots)g(in)h(a)f(resource.)-32 46 y Fi(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 Fs(10)928 b Fn(CHAPTER)16 b(1.)34
b(D)o(YNAMIC)15 b(PR)o(OCESSES)75 45 y Fk(MPI)p 160 45
14 2 v 16 w(RESOURCE)p 406 45 V 18 w(NPROCS)p 601 45
V 18 w(RUNNING\(resource,)h(np)o(ro)q(cs\))117 122 y
Fg(IN)155 b Fk(resource)432 b Fg(an)14 b Ff(MPI)p 1040
122 13 2 v 14 w(Resource)h Fg(ob)r(ject)117 197 y(OUT)108
b Fk(np)o(ro)q(cs)465 b Fg(n)o(um)o(b)q(er)13 b(of)h(pro)q(cesses)i
(curren)o(tly)f(running)75 416 y Fk(MPI)p 160 416 14
2 v 16 w(RESOURCE)p 406 416 V 18 w(NAME\(resource,)g(name\))117
494 y Fg(IN)155 b Fk(resource)432 b Fg(an)14 b Ff(MPI)p
1040 494 13 2 v 14 w(Resource)h Fg(ob)r(ject)117 569
y(OUT)108 b Fk(name)485 b Fg(a)14 b(string)g(iden)o(tifying)e(the)j
(resource)166 693 y Fs(The)f(v)m(alue)h(of)e Fk(name)h
Fs(only)g(suggested)g(b)o(y)f(the)h(MPI)g(standard.)19
b(If)14 b(the)g(resource)g(corresp)q(onds)g(to)75 750
y(a)g(particular)h(host,)e Fk(name)h Fs(should)h(b)q(e)g(the)f(name)g
(of)g(that)g(host.)19 b(If)14 b(the)g(resource)h(w)o(as)e(obtained)i
(from)75 806 y(a)h(request)g(for)f(m)o(ultiple)j(hosts)d(of)h(a)f(giv)o
(en)i(arc)o(hitecture,)f Fk(name)f Fs(should)i(con)o(tain)f(the)g(name)
g(of)g(that)75 863 y(arc)o(hitecture.)28 b(If)18 b(the)g(resource)g(w)o
(as)f(obtained)h(from)f(a)h(complicated)h(resource)f(description)h
(string)75 919 y(\(opaque)14 b(to)g(MPI)h(but)g(sen)o(t)f(to)g(an)g
(external)h(resource)g(manager\))f Fk(name)g Fs(ma)o(y)g(b)q(e)h(that)f
(string.)19 b Fk(name)75 975 y Fs(is)d(primarily)g(useful)g(when)g
(disco)o(v)o(ering)g(pre-allo)q(cated)h(resources.)75
1126 y Fk(MPI)p 160 1126 14 2 v 16 w(RESOURCE)p 406 1126
V 18 w(DESCRIPTION\(resource,)e(description\))117 1204
y Fg(IN)155 b Fk(resource)432 b Fg(an)14 b Ff(MPI)p 1040
1204 13 2 v 14 w(Resource)h Fg(ob)r(ject)117 1279 y(OUT)108
b Fk(description)384 b Fg(a)14 b(string)g(describing)g(the)h(resource)
166 1403 y Fs(The)c(v)m(alue)h(of)e Fk(description)i
Fs(is)f(only)h(suggested)e(b)o(y)h(the)g(MPI)f(standard.)18
b(It)11 b(describ)q(es)h(the)f(resource)75 1460 y(in)17
b(a)e(w)o(a)o(y)g(that)g(is)h(opaque)g(to)f(MPI)h(itself,)g(but)g(ma)o
(y)f(b)q(e)i(understo)q(o)q(d)f(b)o(y)g(the)g(resource)f(manager)g(or)
75 1516 y(application.)21 b(Its)15 b(primary)f(use)h(is)g(in)g
(conjunction)g(with)g Fk(MPI)p 1174 1516 14 2 v 16 w(Resource)p
1358 1516 V 17 w(discover)g Fs(if)g(a)f(user)g(needs)i(to)75
1573 y(get)f(more)g(detailed)h(information)g(ab)q(out)f(a)g(resource.)
75 1724 y Fk(MPI)p 160 1724 V 16 w(RESOURCE)p 406 1724
V 18 w(PROCESSES\(resource,)i(np)o(ro)q(cs,)f(a)o(rra)o(y)p
1122 1724 V 14 w(of)p 1173 1724 V 16 w(p)o(ro)q(cesses\))117
1801 y Fg(IN)155 b Fk(resource)432 b Fg(an)14 b Ff(MPI)p
1040 1801 13 2 v 14 w(Resource)h Fg(ob)r(ject)117 1876
y(OUT)108 b Fk(np)o(ro)q(cs)465 b Fg(n)o(um)o(b)q(er)13
b(of)h(pro)q(cesses)i(returned)g(in)d(arra)o(y)117 1951
y(OUT)108 b Fk(a)o(rra)o(y)p 416 1951 14 2 v 15 w(of)p
468 1951 V 16 w(p)o(ro)q(cesses)251 b Fg(an)14 b(arra)o(y)f(of)h
Ff(MPI)p 1196 1951 13 2 v 14 w(Pro)q(cess)g Fg(ob)r(jects)h(\(see)h(b)q
(elo)o(w\))166 2158 y Fh(Discussion:)34 b Fg(Should)13
b Ff(np)o(ro)q(cs)i Fg(b)q(e)g(an)e(IN)h(v)n(ariable)f(as)h(w)o(ell,)f
(to)h(sp)q(ecify)g(the)g(length)g(of)g(the)g(arra)o(y?)166
2380 y Fh(Discussion:)50 b Fg(Should)17 b(sev)o(eral)i(of)e(these)i
(routines)g(b)q(e)f(com)o(bined)f(in)o(to)g(one,)i(whic)o(h)e(returns)j
(lots)e(of)75 2436 y(information)11 b(ab)q(out)j(a)f(resource)j(in)e(a)
f(single)h(call?)1967 46 y Fi(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(1.4.)34 b(SIMPLE)16 b(INTERF)-5
b(A)o(CE)1191 b Fs(11)75 45 y Fm(1.3.2)49 b(The)16 b(MPI)p
409 45 15 2 v 18 w(Pro)q(cess)g(Object)75 207 y Fh(Discussion:)38
b Fg(In)15 b(MPI-1,)g(pro)q(cesses)j(can)d(b)q(e)h(iden)o(ti\014ed)f(b)
o(y)g(their)g(rank)g(in)g(a)f(group)h(or)g(comm)o(unicator.)k(It)75
257 y(migh)o(t)12 b(b)q(e)k(p)q(ossible)f(to)f(con)o(tin)o(ue)h(to)f
(use)i(a)e(\(group,rank\))g(pair)g(to)h(iden)o(tify)f(a)g(pro)q(cess)i
(as)f(required)h(for)e(MPI-)75 307 y(2.)29 b(While)17
b(con)o(v)o(enien)o(t)h(for)g(some)f(op)q(erations)h(\(e.g.,)f(spa)o
(wning)h(a)f(group)h(of)f(pro)q(cesses\),)k(the)d(\(group,rank\))75
356 y(iden)o(ti\014cation)d(w)o(ould)g(b)q(e)h(incon)o(v)o(enien)o(t)f
(or)h(unnatural)f(for)g(others)h(\(e.g.,)f(sending)h(a)f(signal\).)22
b(Moreo)o(v)o(er,)16 b(an)75 406 y Ff(MPI)p 152 406 13
2 v 14 w(Group)c Fg(ob)r(ject)h(pro)o(vides)e(an)h(abstraction)f(for)g
(a)h(collection)f(of)g(pro)q(cesses)j(whic)o(h)d(is)h(an)f(unnatural)g
(starting)75 456 y(p)q(oin)o(t)h(to)g(de\014ne)i(a)e(single)g(pro)q
(cess.)19 b(Therefore,)14 b(in)e(the)h(follo)o(wing)d(w)o(e)j(in)o(tro)
q(duce)g(a)f(new)h(ob)r(ject,)g Ff(MPI)p 1720 456 V 14
w(Pro)q(cess)p Fg(.)75 506 y(When)f(the)g(b)q(eha)o(vior)f(of)f(this)i
(ob)r(ject)g(is)f(agreed)h(up)q(on)g(and)f(understo)q(o)q(d,)i(w)o(e)e
(can)h(decide)g(among)e(three)i(options)134 581 y(1.)22
b(Absorb)14 b Ff(MPI)p 410 581 V 14 w(Pro)q(cess)h Fg(in)o(to)e
Ff(MPI)p 729 581 V 14 w(Group)134 655 y Fg(2.)22 b(Ha)o(v)o(e)13
b(t)o(w)o(o)h(separate)h(ob)r(jects)g(\(with)f(p)q(erhaps)h(additional)
d(accessor/creation)k(functions\))134 730 y(3.)22 b(Go)13
b(with)g Ff(MPI)p 427 730 V 15 w(Pro)q(cess)h Fg(and)g(deprecate)h
Ff(MPI)p 929 730 V 15 w(Group)166 894 y Fs(An)g Fk(MPI)p
325 894 14 2 v 16 w(Pro)q(cess)h Fs(represen)o(ts)f(a)g(pro)q(cess)h({)
f(a)g(program)f(executing)i(on)f(a)g(pro)q(cessor.)20
b(It)15 b(ma)o(y)f(or)75 950 y(ma)o(y)d(not)f(b)q(e)i(\\registered")f
(with)h(MPI;)f(it)g(ma)o(y)g(or)g(ma)o(y)f(not)h(call)h
Fk(MPI)p 1289 950 V 16 w(INIT)p Fs(.)e(Y)l(ou)i(can't)f(comm)o(unicate)
75 1007 y(directly)18 b(with)e(an)h Fk(MPI)p 496 1007
V 15 w(Pro)q(cess)h Fs(\(that)d(requires)i(a)f(comm)o(unicator\),)g
(but)g(y)o(ou)g(can)h(send)f(signals)i(to)75 1063 y(one.)28
b(If)18 b(it)g(is)g(an)f(MPI)h(pro)q(cess)g(in)h(the)f(sense)g(that)f
(it)h(has)f(a)h(rank)f(in)i(a)e(comm)o(unicator,)h(then)g(the)75
1120 y Fk(MPI)p 160 1120 V 16 w(Pro)q(cess)13 b Fs(ob)s(ject)e
(represen)o(ting)i(it)g(can)f(b)q(e)h(retriev)o(ed)g(from)e(its)h(rank)
g(in)h(that)f(comm)o(unicator)g(\(See)75 1176 y Fk(MPI)p
160 1176 V 16 w(COMM)p 318 1176 V 16 w(PROCESS)i Fs(b)q(elo)o(w\).)19
b(MPI)13 b(pro)o(vides)f(no)h(guaran)o(tees)e(on)i(the)f(order)g(of)g
(op)q(erations)h(with)75 1233 y(resp)q(ect)e(to)f(an)h
Fk(MPI)p 421 1233 V 15 w(PROCESS)i Fs(and)d(pro)o(vides)h(none)g(of)g
(the)f(safet)o(y)g(asso)q(ciated)h(with)g(comm)o(unicators.)75
1289 y(In)16 b(particular,)f(there)h(is)f(no)g(guaran)o(tee)g(of)g
(order)g(b)q(et)o(w)o(een)g(messages)g(and)g(signals.)166
1428 y Fh(Discussion:)34 b Fg(A)14 b(bad)g(programming)d(practice)k
(that)f(has)g(b)q(een)h(seen)g(b)o(y)f(naiv)o(e)g(users)h(of)f(systems)
g(that)75 1485 y(pro)o(vide)f(b)q(oth)g(messages)h(and)f(signals)f(is)i
(to)f(send)h(a)f(pro)q(cess)i(a)e(message)g(and)g(then)h(signal)e(it)h
(to)g(w)o(ak)o(e)g(up)g(and)75 1541 y(receiv)o(e)i(the)g(message.)i
(This)d(needs)h(to)f(b)q(e)h(plainly)d(forbidden.)18
b(-)13 b(A)o(G.)75 1767 y Fp(1.4)59 b(Simple)20 b(Interface)75
1945 y Fh(Discussion:)37 b Fg(\(w)o(cs\))15 b(I'v)o(e)g(done)g(some)e
(rethinking)i(of)f Ff(MPI)p 1067 1945 13 2 v 14 w(Spa)o(wn)p
Fg(.)21 b(In)15 b(particular,)f(as)h(presen)o(ted)i(earlier)d(it)75
1994 y(b)q(oth)f(allo)q(cates)f(resources)j(and)e(spa)o(wns)g(pro)q
(cesses.)20 b(This)13 b(is)f(to)q(o)g(m)o(uc)o(h.)17
b(Generally)12 b(sp)q(eaking,)g(resources)j(will)75 2044
y(already)g(b)q(e)h(allo)q(cated.)23 b(This)15 b(is)g(true)i(in)e(PVM.)
g Fe(pvm)p 951 2044 14 2 v 15 w(spawn)g Fg(do)q(es)h(not)f(add)h(an)o
(y)f(hosts.)23 b(It)16 b(only)e(spa)o(wns)i(on)75 2094
y(the)h(existing)f(virtual)f(mac)o(hine.)24 b(I)16 b(think)g(what)g(w)o
(e)g(need)h(is)f(to)g(mak)o(e)f(the)i(\\simple")d(in)o(terface)j(a)f(t)
o(w)o(o)g(stage)75 2144 y(pro)q(cess:)134 2219 y(1.)22
b(Disco)o(v)o(er)12 b(existing)g(resources)j(with)d Ff(MPI)p
853 2219 13 2 v 15 w(Resource)p 1021 2219 V 16 w(discover)i
Fg(\(using)e(a)h(simple)d(form)h(of)h(the)h(subroutine)189
2268 y(to)g(get)i(a)e(single)h(resource\))134 2343 y(2.)22
b(Spa)o(wn)c(on)o(to)g(this)h(resource)i(with)d Ff(MPI)p
853 2343 V 15 w(Spa)o(wn)p Fg(.)33 b(This)19 b(will)e(b)q(e)j(a)e
(single)g(call)g(that)h(will)e(b)q(oth)i(start)189 2393
y(pro)q(cesses)d(and)e(attac)o(h)g(to)g(them.)166 2468
y(This)9 b(approac)o(h)g(also)g(has)g(an)g(adv)n(an)o(tage)g(of)f
(eliminating)f(the)j(\\other)f(args")g(a)o(wkw)o(ardness)h(from)e
Ff(PVM)p 1804 2468 V 14 w(Spa)o(wn)p Fg(.)75 2517 y(Normally)h(these)14
b(w)o(ouldn't)d(b)q(e)h(used.)19 b(If)11 b(the)i(user)g(w)o(an)o(ts)f
(the)h(extra)f(functionalit)o(y)f(\(i.e.,)g(to)h(spa)o(wn)g(on)f(sp)q
(eci\014c)75 2567 y(hosts)k(or)e(arc)o(hitectures\))k(he/she)e(can)f
(use)g(a)g(sligh)o(tly)f(more)f(complicated)h(form)f(of)h
Ff(MPI)p 1513 2567 V 15 w(Resource)p 1681 2567 V 16 w(discover)p
Fg(.)-32 46 y Fi(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 Fs(12)928 b Fn(CHAPTER)16 b(1.)34
b(D)o(YNAMIC)15 b(PR)o(OCESSES)166 45 y Fs(In)23 b(this)f(section)h(w)o
(e)f(pro)o(vide)h(high-lev)o(el)h(functions)f(b)q(oth)g(for)e(resource)
i(disco)o(v)o(ery)l(,)h(pro)q(cess)75 102 y(creation)d(and)f(for)g
(clien)o(t-serv)o(er)h(requiremen)o(ts)g(that)f(are)g(the)g(easiest)h
(to)f(use.)36 b(These)20 b(pro)o(vide)h(a)75 158 y(useful)16
b(subset)e(of)g(op)q(erations;)h(routines)g(that)f(pro)o(vide)h(more)f
(con)o(trol)g(and)h(\015exibilit)o(y)i(are)d(describ)q(ed)75
214 y(later.)27 b(Indeed,)19 b(the)f(functions)g(in)h(this)f(section)g
(can)g(b)q(e)g(la)o(y)o(ered)g(on)f(those)g(routines,)i(describ)q(ed)g
(in)75 271 y(Sections)d(1.4.1,)d(1.4.1,)g(and)j(1.4.1.)75
388 y Fk(Spa)o(wning)h(p)o(ro)q(cesses)47 b Fs(In)16
b(the)g(most)e(common)i(case,)f(an)g(application)j(will)f(simply)g(spa)
o(wn)e(new)h(pro-)75 444 y(cesses)f(on)f(preallo)q(cated)i(resources.)k
(This)15 b(is)g(a)f(t)o(w)o(o)f(step)i(pro)q(cess.)20
b(First)14 b(the)h(application)h(disco)o(v)o(ers)75 500
y(its)f(resources,)g(then)h(it)f(spa)o(wns)g(a)g(program.)166
557 y(Detailed)i(mec)o(hanisms)g(for)f(obtaining)h(resources)g(are)f
(describ)q(ed)i(in)g(Section)f(1.4.1.)22 b(F)l(or)16
b(most)75 613 y(applications,)g(the)g(follo)o(wing)g(is)f(su\016cien)o
(t:)147 694 y Fj(nresource=1)147 750 y(MPI_RESOURCE_DISCOVER\(M)o
(PI_RESO)o(URCE_DEF)o(AULT,)21 b(resource,)h(nresource\))147
807 y(MPI_RESOURCE_NSLOTS\(res)o(ource,)e(nslots\))166
888 y Fs(This)15 b(pro)q(duces)h(a)f(resource)g(ob)s(ject)f(on)h(whic)o
(h)g(to)g(spa)o(wn)f(pro)q(cesses)h(and)g(tells)h(the)f(application)75
944 y(ho)o(w)g(man)o(y)f(pro)q(cesses)i(it)f(ma)o(y)g(spa)o(wn.)166
1000 y(The)g(follo)o(wing)h(function)g(is)g(the)g(easiest)f(w)o(a)o(y)f
(to)h(create)g(new)h(pro)q(cesses,)f(and)g(is)h(most)e(lik)o(e)j(the)75
1057 y(PVM)g(routine)g Fj(pvm)p 432 1057 15 2 v 17 w(spawn)p
Fs(.)24 b(It)17 b(starts)f(the)h(same)f(executable)j(with)e(the)g(same)
g(argumen)o(t)f(list)h(on)g(a)75 1113 y(set)c(of)g(pro)q(cessors.)19
b(It)13 b(is)h(a)f(collectiv)o(e)i(op)q(eration)e(o)o(v)o(er)g(the)g
(pro)q(cesses)h(in)g(the)f(group)g(asso)q(ciated)h(with)75
1170 y Fk(oldcomm)p Fs(,)d(and)i(returns)g(an)g(in)o(ter-comm)o
(unicator)f Fk(new)o(comm)p Fs(,)g(whic)o(h)i(has)e(the)h(new)g(pro)q
(cesses)g(as)g(the)75 1226 y(remote)18 b(group.)30 b(If)19
b(an)f(expanded)i(comm)o(unicator)e(is)i(desired,)g(an)f(ordinary)f(in)
o(tra-comm)o(unicator)75 1283 y(con)o(taining)12 b(all)f(pro)q(cesses)g
(can)g(then)g(b)q(e)h(constructed)f(using)g Fk(MPI)p
1218 1283 14 2 v 16 w(INTERCOMM)p 1508 1283 V 17 w(MERGE)p
Fs(.)g(Only)h(one)75 1339 y(of)17 b(the)h(pro)q(cesses)h(in)f
Fk(oldcomm)f Fs(m)o(ust)g(supply)i(the)f(argumen)o(ts)f(that)g(describ)
q(e)j(the)e(new)g(pro)q(cesses;)75 1396 y(that)c(pro)q(cess)i(is)g
(designated)g(b)o(y)f Fk(ro)q(ot)p Fs(.)75 1547 y Fk(MPI)p
160 1547 V 16 w(SP)l(A)-5 b(WN\(oldcomm,)13 b(resource,)i(count,)i
(executable,)f(other)p 1185 1547 V 17 w(a)o(rgs,)e(new)o(comm\))117
1624 y Fg(IN)155 b Fk(oldcomm)413 b Fg(comm)o(unicator)11
b(of)j(spa)o(wning)f(group)117 1695 y(IN)155 b Fk(resource)432
b Fg(resource)16 b(to)e(spa)o(wn)g(on)o(to)117 1767 y(IN)155
b Fk(count)482 b Fg(n)o(um)o(b)q(er)13 b(of)h(pro)q(cesses)i(to)e(spa)o
(wn)g(\(in)o(t\))117 1838 y(IN)155 b Fk(executable)391
b Fg(executable)15 b(\014le)f(for)g(new)g(pro)q(cesses)j(to)c(execute)j
(\(string\))117 1910 y(OUT)108 b Fk(new)o(comm)397 b
Fg(new)21 b(in)o(ter-comm)o(unicator)d(including)i(new)h(pro)q(cesses)i
(as)905 1966 y(the)15 b(remote)e(group)166 2173 y Fh(Discussion:)34
b Fg(Arg.)18 b(There)d(should)f(b)q(e)g(a)g(ro)q(ot)g(argumen)o(t)e(to)
i(sp)q(ecify)h(the)f(o)o(wner)g(of)g(the)g(resource)166
2395 y Fh(Discussion:)h Fg(F)m(or)f(ease)g(of)f(use,)h(w)o(e)g(ma)o(y)e
(w)o(an)o(t)h(to)h(create)h(a)e(regular)h(comm)o(unicator,)c(con)o
(taining)j(b)q(oth)75 2452 y(new)j(and)f(old)g(pro)q(cesses,)j(so)e
(that)g(casual)f(users)i(don't)e(ha)o(v)o(e)g(to)h(w)o(orry)f(ab)q(out)
h(in)o(tercomm)o(unicators,)d(whic)o(h)75 2508 y(can)h(b)q(e)h
(confusing.)166 2647 y Fs(The)20 b(spa)o(wned)f(pro)q(cesses)h(are)f
(created)h(with)g Fk(MPI)p 1089 2647 V 15 w(COMM)p 1246
2647 V 17 w(W)o(ORLD)f Fs(consisting)h(of)g(the)f(pro-)75
2704 y(cesses)f(spa)o(wned)f(with)g(this)h(call,)g(and)g(in)g(addition)
g(they)f(ha)o(v)o(e)g(a)g(prede\014ned)i(in)o(ter-comm)o(unicator)1967
46 y Fi(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(1.4.)34 b(SIMPLE)16 b(INTERF)-5
b(A)o(CE)1191 b Fs(13)75 45 y Fk(MPI)p 160 45 14 2 v
16 w(COMM)p 318 45 V 16 w(P)l(ARENT)p Fs(,)17 b(in)g(whic)o(h)g(the)f
(remote)f(group)h(consists)g(of)g(the)g(spa)o(wning)g(pro)q(cesses.)23
b(The)75 102 y(call)17 b(blo)q(c)o(ks)f(un)o(til)h(all)g(pro)q(cesses)f
(in)g Fk(oldcomm)e Fs(ha)o(v)o(e)h(called)j Fk(MPI)p
1227 102 V 15 w(Spa)o(wn)f Fs(and)f(all)g(the)g(spa)o(wned)g(pro-)75
158 y(cesses)f(ha)o(v)o(e)f(called)i Fk(MPI)p 521 158
V 16 w(INIT)p Fs(,)d(after)h(whic)o(h)h(comm)o(unication)g(is)g(p)q
(ossible.)22 b(\(W)l(e)14 b(treat)g(spa)o(wning)g(of)75
214 y(non-MPI)i(pro)q(cesses)g(b)q(elo)o(w.\))21 b(Note)16
b(that)f(this)h(means)f(that)g Fk(MPI)p 1252 214 V 16
w(COMM)p 1410 214 V 16 w(W)o(ORLD)h Fs(is)g(di\013eren)o(t)g(on)75
271 y(the)c(spa)o(wners)g(and)h(spa)o(wnees.)19 b(Also)12
b(note)g(that)g(b)o(y)g(using)h Fk(MPI)p 1194 271 V 16
w(COMM)p 1352 271 V 16 w(SELF)p Fs(,)f(a)g(single)h(pro)q(cess)g(can)75
327 y(create)h(man)o(y)g(others;)g(this)g(is)h(useful)h(b)q(oth)e(for)g
(master-sla)o(v)o(e)f(programs)g(and)i(for)f(dynamic)h(sizing)g(of)75
384 y(parallel)f(jobs)e(from)f(a)h(single)i(initial)g(pro)q(cess.)19
b(This)13 b(function)g(is)g(similar)h(to)d(the)i(one)f(describ)q(ed)i
(in)f([3],)75 440 y(but)k(here)f(the)h(argumen)o(ts)e(are)i(made)f
(explicit)j(instead)e(of)f(b)q(eing)h(com)o(bined)h(in)f(a)f(single)i
(string.)23 b(In)75 497 y(the)16 b(case)h(where)f(job-sc)o(heduler-dep)
q(ende)q(n)o(t)i(information)f(m)o(ust)e(b)q(e)i(supplied,)i(w)o(e)d
(do)g(use)g(a)g(string,)75 553 y(in)g(the)f(more)g(\015exible)i
Fk(MPI)p 560 553 V 16 w(RESOURCE)p 806 553 V 19 w(IALLOCA)l(TE)e
Fs(describ)q(ed)i(in)f(Section)g(1.2.1.)166 692 y Fh(Discussion:)33
b Fg(In)13 b(order)h(to)g(mak)o(e)d Ff(MPI)p 827 692
13 2 v 15 w(SP)m(A)-5 b(WN)13 b Fg(easy)g(to)g(use,)h(it)f(seems)h
(easiest)g(to)f(ha)o(v)o(e)g Ff(MPI)p 1726 692 V 14 w(INIT)g
Fg(b)q(e)75 749 y(the)h(corresp)q(onding)f(collectiv)o(e)g(op)q
(eration)g(in)g(the)g(c)o(hildren.)18 b(The)c(usage)f(of)f
Ff(MPI)p 1387 749 V 15 w(A)m(TT)m(A)o(CH)f Fg(\(Section)j(1.4.1\))d(is)
75 805 y(no)o(w)i(consisten)o(t)j(with)d(this.)18 b(-w)o(cs)166
1027 y Fh(Discussion:)45 b Fg(I)17 b(think)f(that)h(although)f(this)h
(is)f(p)q(ossible,)i(it)e(is)h(not)f(desireable.)28 b(I)17
b(w)o(ould)e(prefer)j(the)75 1084 y(separate)c(call)e(to)h
Ff(MPI)p 440 1084 V 15 w(COMM)p 585 1084 V 14 w(P)m(ARENT)p
Fg(.)f(That)h(w)o(a)o(y)f(is)h(is)g(easy)g(to)g(read)g(the)h(co)q(de)g
(for)e(the)i(spa)o(wnee)g(and)f(see)75 1140 y(easily)g(that)h(this)g
(co)q(de)h(is)f(mean)o(t)e(to)i(b)q(e)h(spa)o(wned.)j({)c(RL)75
1343 y Fk(Client-Server)d(Applications)48 b Fs(The)11
b(ab)q(o)o(v)o(e)f(paragraphs)g(co)o(v)o(ered)g(the)h(case)g(of)f
(creating)h(new)g(pro)q(cesses.)75 1399 y(F)l(or)17 b(clien)o(t-serv)o
(er)i(applications,)h(the)e(situation)g(is)h(di\013eren)o(t,)f(b)q
(ecause)h(the)f(pro)q(cesses)h(in)f(question)75 1456
y(already)h(exist,)g(and)f(what)g(w)o(e)g(need)h(is)f(a)g(comm)o
(unicator)g(to)g(b)q(e)h(used)g(b)o(y)f(them)g(to)g(comm)o(unicate)75
1512 y(with)e(one)f(another.)166 1569 y(The)f(follo)o(wing)g(are)f(the)
h(simplest,)h(blo)q(c)o(king)f(calls.)21 b(The)14 b(non-blo)q(c)o(king)
h(v)o(ersions)f(are)f(describ)q(ed)75 1625 y(in)j(Section)g(1.4.2.)-32
46 y Fi(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 Fs(14)928 b Fn(CHAPTER)16 b(1.)34
b(D)o(YNAMIC)15 b(PR)o(OCESSES)75 45 y Fk(MPI)p 160 45
14 2 v 16 w(CLIENT)p 333 45 V 16 w(CONNECT\(mycomm,)d(name,)j(new)o
(comm\))117 122 y Fg(IN)155 b Fk(mycomm)412 b Fg(comm)o(unicator)10
b(of)h(the)i(clien)o(t,)f(o)o(v)o(er)g(whic)o(h)h(this)f(call)f(is)h
(col-)905 179 y(lectiv)o(e)117 254 y(IN)155 b Fk(name)485
b Fg(w)o(ell-kno)o(wn)9 b(name)g(b)o(y)g(whic)o(h)h(the)h(serv)o(er)g
(can)f(b)q(e)h(con)o(tacted)905 310 y(\(string\))117
385 y(OUT)108 b Fk(new)o(comm)397 b Fg(new)10 b(in)o(ter-comm)o
(unicator,)d(whic)o(h)i(includes)h(the)g(serv)o(er)h(pro-)905
442 y(cesses)17 b(as)c(the)i(remote)e(group)75 661 y
Fk(MPI)p 160 661 V 16 w(SERVER)p 343 661 V 18 w(CONNECT\(mycomm,)f
(name,)j(new)o(comm\))117 738 y Fg(IN)155 b Fk(mycomm)412
b Fg(comm)o(unicator)18 b(of)i(the)h(serv)o(er,)j(o)o(v)o(er)c(whic)o
(h)h(this)f(call)g(is)905 795 y(collectiv)o(e)117 870
y(IN)155 b Fk(name)485 b Fg(w)o(ell-kno)o(wn)9 b(name)g(b)o(y)g(whic)o
(h)h(the)h(serv)o(er)g(can)f(b)q(e)h(con)o(tacted)905
926 y(\(string\))117 1001 y(OUT)108 b Fk(new)o(comm)397
b Fg(new)10 b(in)o(ter-comm)o(unicator,)d(whic)o(h)i(includes)h(the)g
(clien)o(t)f(pro-)905 1058 y(cesses)17 b(as)c(the)i(remote)e(group)166
1182 y Fs(Then)j(an)o(y)g(pro)q(cess)g(in)g(the)g(clien)o(t)h(group)e
(can)h(comm)o(unicate)g(with)h(an)o(y)e(pro)q(cess)h(in)h(the)e(serv)o
(er)75 1239 y(group)g(and)g(vice)h(v)o(ersa,)f(using)h(the)f(in)o
(ter-comm)o(unicator.)166 1295 y(Disconnection)c(o)q(ccurs)g(when)g
(pro)q(cesses)f(call)h Fk(MPI)p 1057 1295 V 16 w(COMM)p
1215 1295 V 17 w(FREE)f Fs(on)g(the)h(in)o(ter-comm)o(unicator.)166
1352 y(The)17 b(form)g(of)f(the)i Fk(name)f Fs(argumen)o(t)f(has)h(sev)
o(eral)g(p)q(ossibilitie)q(s.)28 b(The)18 b(most)e(ob)o(vious)h(is)h
(to)f(use)75 1408 y(the)c Fj(net-address:port-number)d
Fs(format)h(that)h(curren)o(t)h(systems)f(will)j(\014nd)e(most)f
(straigh)o(tforw)o(ard.)75 1464 y(Ho)o(w)o(ev)o(er,)i(in)i(the)f(long)h
(run,)f(name)g(serv)o(ers)g(of)f(v)m(arious)i(kinds)g(ma)o(y)f(require)
h(more)f(\015exibilit)o(y)l(.)75 1586 y Fm(1.4.1)49 b(Interfacing)16
b(to)h(the)e(Resource)g(Manager)75 1672 y Fs(This)h(section)g(describ)q
(es)g(an)g(in)o(terface)f(for)g(obtaining)h(resources)f(from)f(a)h
(resource)g(manager.)166 1728 y(There)e(are)f(t)o(w)o(o)f(w)o(a)o(ys)h
(that)g(applications)i(t)o(ypically)g(use)f(new)g(resources.)19
b(The)13 b(\014rst)f(is)h(that)f(they)75 1785 y(mak)o(e)k(use)g(of)g
(existing,)h(pre-allo)q(cated)g(resources.)23 b(F)l(or)16
b(instance,)h(in)g(PVM,)e(a)h(user)g(ma)o(y)g(con\014gure)75
1841 y(a)21 b(virtual)g(mac)o(hine,)i(and)e(start)e(up)j(a)e(master)g
(pro)q(cess.)37 b(The)21 b(master)g(pro)q(cess)g(determines)g(ho)o(w)75
1898 y(man)o(y)c(hosts)g(are)g(a)o(v)m(ailable)i(and)f(spa)o(wns)f(sla)
o(v)o(e)h(pro)q(cesses)g(on)f(the)h(un)o(used)g(hosts.)26
b(New)18 b(resources)75 1954 y(are)c(disco)o(v)o(ered,)g(not)g(allo)q
(cated.)20 b(The)15 b(second)f(w)o(a)o(y)f(is)i(for)e(an)h(application)
i(to)d(obtain)i(new)f(resources)75 2011 y(explicitly)l(.)23
b(In)16 b(PVM,)e(this)i(is)f(done)h(through)f(the)g Fj(pvm)p
1045 2011 15 2 v 17 w(addhosts)f Fs(routine.)166 2067
y(It)h(is)h(p)q(ossible)i(to)c(treat)h(these)h(in)g(the)f(same)g(w)o(a)
o(y)l(,)g(using)h(a)f(single)i Fk(ALLOCA)l(TE)f Fs(function.)21
b(This)75 2124 y(requires)e(in)h(the)e(case)h(of)f(pre-allo)q(cated)i
(resources)e(that)g(an)h(application)h(kno)o(w)e(in)h(adv)m(ance)h
(what)75 2180 y(resources)14 b(are)h(a)o(v)m(ailable)h(so)e(that)g(it)g
(kno)o(ws)g(what)g(to)g(allo)q(cate.)20 b(W)l(e)15 b(therefore)f
(distinguish)j(b)q(et)o(w)o(een)75 2237 y(allo)q(cation)e(and)f(disco)o
(v)o(ery)g(of)g(resources.)19 b(Resource)c(disco)o(v)o(ery)f(is)h(exp)q
(ected)g(to)e(b)q(e)i(a)f(fast)f(op)q(eration)75 2293
y(that)k(ma)o(y)f(b)q(e)i(p)q(ossible)i(to)c(implemen)o(t)j(through)e
(in)o(ternal)h(lo)q(okup)g(rather)f(than)g(external)h(comm)o(u-)75
2349 y(nication)e(\(dep)q(ending)h(on)e(the)g(MPI)g(implemen)o
(tation\).)21 b(Resource)16 b(allo)q(cation,)g(on)f(the)g(other)g
(hand,)75 2406 y(can)h(b)q(e)h(time-consuming,)g(and)f(is)h(therefore)f
(a)f(non-blo)q(c)o(king)j(op)q(eration)e(whic)o(h)h(returns)f(a)g
(request)75 2462 y(to)f(b)q(e)g(w)o(aited)h(on)f(later.)166
2519 y(Neither)h(function)f(starts)f(an)o(y)h(application-visibl)q(e)j
(pro)q(cesses;)d(rather,)f(they)h(obtain)g(resources)75
2575 y(from)10 b(the)h(resource)g(manager)g(for)f(use)i(b)o(y)f(other)f
(functions.)19 b(Ho)o(w)o(ev)o(er,)11 b(w)o(e)g(need)h(to)e(tak)o(e)g
(in)o(to)h(accoun)o(t)75 2632 y(those)j(resource)g(managers)g(that)f
(cannot)i(pro)o(vide)f(this)h(function)g(without)f(starting)g(pro)q
(cesses,)h(suc)o(h)1967 46 y Fi(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(1.4.)34 b(SIMPLE)16 b(INTERF)-5
b(A)o(CE)1191 b Fs(15)75 45 y(as)12 b(LoadLev)o(eler)i(or)f(DQS.)f(In)i
(those)e(cases,)h(the)g(executables)h(ma)o(y)e(not)h(b)q(e)g(the)g
(application)i(executa-)75 102 y(bles,)g(but)g(rather)f(in)o(terface)g
(pro)q(cesses)h(that)f(will)i(create)e(the)h(application)h(pro)q
(cesses)e(in)i(resp)q(onse)f(to)75 158 y(one)g(of)g(the)g(pro)q
(cess-creation)h(functions)g(describ)q(ed)h(here)f(\(lik)o(e)g
Fk(MPI)p 1303 158 14 2 v 16 w(Spa)o(wn)p Fs(\).)166 214
y(The)f(in)o(terface)g(to)f(an)h(external)g(resource)g(manager)f(could)
i(b)q(e)f(arbitrarily)g(complex.)21 b(The)15 b(MPI)75
271 y(in)o(terface)20 b(sp)q(eci\014es)i(the)e(absolute)g(minim)o(um)i
(amoun)o(t)d(of)g(information)h(that)g(m)o(ust)f(b)q(e)i(kno)o(wn)f(to)
75 327 y(MPI)15 b(and)h(tries)f(to)f(mak)o(e)h(common)g(cases)g(v)o
(ery)g(simple)i(to)d(sp)q(ecify)l(.)75 445 y Fk(Resource)i(Discovery)75
625 y(MPI)p 160 625 V 16 w(RESOURCE)p 406 625 V 18 w(DISCO)o
(VER\(resource)p 815 625 V 17 w(t)o(yp)q(e,)g(nresources,)g(a)o(rra)o
(y)p 1260 625 V 15 w(of)p 1312 625 V 16 w(resources\))117
702 y Fg(IN)155 b Fk(resource)p 476 702 V 17 w(t)o(yp)q(e)335
b Fg(explained)14 b(b)q(elo)o(w)117 774 y(OUT)108 b Fk(nresources)392
b Fg(n)o(um)o(b)q(er)13 b(of)h(elemen)o(ts)f(returned)j(in)d(arra)o(y)
117 847 y(OUT)108 b Fk(a)o(rra)o(y)p 416 847 V 15 w(of)p
468 847 V 16 w(resources)252 b Fg(arra)o(y)14 b(of)f
Ff(MPI)p 1138 847 13 2 v 14 w(Resource)j Fg(ob)r(jects)166
1054 y Fh(Discussion:)37 b Fg(There's)15 b(the)h(usual)e(question)h(of)
f(whether)i(nresources)h(should)d(b)q(e)i(an)e(IN/OUT)h(arg)f(to)75
1110 y(sp)q(ecify)g(the)h(total)e(length)h(of)f(the)i(arra)o(y)m(.)166
1249 y Fk(resource)p 324 1249 14 2 v 17 w(t)o(yp)q(e)20
b Fs(determines)h(ho)o(w)e(resources)h(are)g(split)g(up)h(in)o(to)e
(one)h(or)g(more)f(MPI)p 1684 1249 V 16 w(Resource)75
1306 y(ob)s(jects.)g(It)14 b(is)g(a)g(suggestion,)g(not)f(a)h
(requiremen)o(t,)g(as)g(certain)g(concepts)g(ma)o(y)g(b)q(e)g(foreign)g
(to)g(certain)75 1362 y(parallel)j(en)o(vironmen)o(ts.)j(It)15
b(can)g(tak)o(e)g(the)g(follo)o(wing)h(prede\014ned)h(v)m(alues.)143
1449 y Fo(\017)23 b Fk(MPI)p 274 1449 V 15 w(RESOURCE)p
519 1449 V 19 w(DEF)l(A)o(UL)l(T)p Fs(:)d(A)g(single)h(resource)g(ob)s
(ject)e(is)i(returned,)h(with)e(all)h(a)o(v)m(ailable)189
1505 y(resources)15 b(in)h(that)e(ob)s(ject.)143 1593
y Fo(\017)23 b Fk(MPI)p 274 1593 V 15 w(RESOURCE)p 519
1593 V 19 w(HOST)p Fs(:)g(Eac)o(h)f(returned)g(resource)h(corresp)q
(onds)f(to)g(one)g(host.)41 b(A)22 b(host)189 1650 y(can)16
b(b)q(e)h(an)g(SMP)l(.)f(The)h(name)f(of)g(the)h(host)f(ma)o(y)g(b)q(e)
h(disco)o(v)o(ered)g(using)g Fk(MPI)p 1562 1650 V 16
w(Resource)p 1746 1650 V 18 w(name)p Fs(.)189 1706 y(If)k(the)g
(pre-allo)q(cated)h(resources)f(cannot)f(b)q(e)i(describ)q(ed)h(as)d(a)
h(host,)g(\(e.g.,)g(it)g(is)g(a)g(promise)189 1762 y(from)j(a)g
(resource)h(manager,)h(not)e(an)h(explicit)h(ph)o(ysical)g(resource\))f
(this)g(is)g(the)g(same)f(as)189 1819 y Fk(MPI)p 274
1819 V 15 w(RESOURCE)p 519 1819 V 19 w(DEF)l(A)o(UL)l(T)p
Fs(.)143 1907 y Fo(\017)f Fk(MPI)p 274 1907 V 15 w(RESOURCE)p
519 1907 V 19 w(ARCH)p Fs(:)15 b(Eac)o(h)g(returned)g(resource)g
(corresp)q(onds)h(to)e(a)h(single)h(arc)o(hitecture.)189
1963 y(An)e(arc)o(hitecture)h(is)g(a)f(class)h(of)e(binary-compatible)k
(computers.)i(The)c(name)f(of)g(the)g(arc)o(hitec-)189
2020 y(ture)h(ma)o(y)f(b)q(e)i(disco)o(v)o(ered)g(using)g
Fk(MPI)p 868 2020 V 16 w(Resource)p 1052 2020 V 17 w(name)p
Fs(.)143 2108 y Fo(\017)23 b Fk(MPI)p 274 2108 V 15 w(RESOURCE)p
519 2108 V 19 w(PROCESSOR)p Fs(:)d(Eac)o(h)e(returned)h(resource)g
(corresp)q(onds)f(to)g(a)g(single)i(pro-)189 2164 y(cessor.)38
b(These)22 b(ma)o(y)e(b)q(e)i(virtual)g(pro)q(cessors.)39
b(F)l(or)20 b(instance)j(in)f(an)f(SMP)l(,)g(the)h(op)q(erating)189
2221 y(system)14 b(ma)o(y)h(not)g(ha)o(v)o(e)f(con)o(trol)h(o)o(v)o(er)
g(whic)o(h)h(ph)o(ysical)g(pro)q(cessor)f(is)h(used)g(b)o(y)f(a)g(pro)q
(cess.)143 2309 y Fo(\017)23 b Fk(MPI)p 274 2309 V 15
w(RESOURCE)p 519 2309 V 19 w(SPECIAL)p Fs(:)14 b(Resource)h(splitting)h
(done)f(in)g(some)g(sp)q(ecial)h(w)o(a)o(y)l(.)j(Usually)d(this)189
2365 y(will)g(b)q(e)f(sp)q(eci\014ed)i(externally)l(,)f(b)o(y)e(the)h
(user.)20 b(The)15 b(order)f(of)h(resources)f(can)h(b)q(e)g(coun)o(ted)
g(on)g(b)o(y)189 2422 y(the)g(application.)24 b(F)l(or)15
b(instance,)h(the)g(user)g(ma)o(y)f(ha)o(v)o(e)g(requested)h(a)f(HP)h
(no)q(de)h(with)f(a)f(HiPPI)189 2478 y(connection,)h(an)f(HP)g(no)q(de)
h(with)f(a)g(FDDI)g(connection,)h(8)f(pro)q(cessors)f(of)h(an)g(SP2,)g
(etc.)166 2647 y Fh(Discussion:)36 b Fg(Suggestions)14
b(for)g(additional)f(allo)q(cation)f(strategies)k(are)f(encouraged.)20
b(Are)15 b(there)h Fc(c)n(om-)75 2704 y(mon)e Fg(things)g(y)o(ou)g
(migh)o(t)d(w)o(an)o(t)j(to)f(do)h(that)g(y)o(ou)f(can't)h(do)g(with)f
(the)i(ab)q(o)o(v)o(e?)-32 46 y Fi(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 Fs(16)928 b Fn(CHAPTER)16 b(1.)34
b(D)o(YNAMIC)15 b(PR)o(OCESSES)75 45 y Fk(Resource)h(Allo)q(cation)75
225 y(MPI)p 160 225 14 2 v 16 w(RESOURCE)p 406 225 V
18 w(IALLOCA)l(TE\(resource)p 836 225 V 17 w(t)o(yp)q(e,)22
b(np)o(ro)q(cs,)f(resource)p 1279 225 V 17 w(description,)h(resource,)g
(request\))117 359 y Fg(IN)155 b Fk(resource)p 476 359
V 17 w(t)o(yp)q(e)335 b Fg(See)15 b(description)g(b)q(elo)o(w)117
434 y(IN)155 b Fk(np)o(ro)q(cs)465 b Fg(The)15 b(minim)n(um)9
b(n)o(um)o(b)q(er)k(of)h(pro)q(cess)h(slots)f(requested)117
508 y(IN)155 b Fk(resource)p 476 508 V 17 w(description)212
b Fg(String)14 b(con)o(taining)f(description)h(of)f(resources)117
583 y(OUT)108 b Fk(resource)432 b Ff(MPI)p 982 583 13
2 v 15 w(Resource)15 b Fg(allo)q(cated)117 657 y(OUT)108
b Fk(request)452 b Fg(an)14 b Ff(MPI)p 1040 657 V 14
w(Request)166 782 y Fk(resource)h Fs(is)h(set)f(async)o(hronously)h(b)o
(y)f(MPI)g(\(as)g(with)g(other)g(MPI)p 1326 782 14 2
v 17 w(I*)g(routines\).)20 b(It)c(is)f(not)g(v)m(alid)75
838 y(un)o(til)23 b(the)g(request)f(has)g(b)q(een)h(completed.)42
b(One)23 b(can)f(w)o(ait)g(for)g(the)g(request)g(to)g(complete)h(with)
75 895 y Fk(MPI)p 160 895 V 16 w(W)o(ait)p Fs(,)14 b(test)h(with)h
Fk(MPI)p 569 895 V 15 w(T)l(est)p Fs(,)g(etc.)166 951
y Fk(resource)p 324 951 V 17 w(t)o(yp)q(e)j Fs(is)f(a)g(general)g
(category)f(of)g(resource)h(request,)h(used)f(to)f(mak)o(e)h(it)g(easy)
g(to)f(sp)q(ec-)75 1008 y(ify)22 b(simple)h(requests.)40
b(The)22 b(categories)f(are)h(the)g(same)f(as)g(for)g(the)h
Fk(resource)p 1494 1008 V 17 w(t)o(yp)q(e)h Fs(argumen)o(t)e(for)75
1064 y Fk(MPI)p 160 1064 V 16 w(RESOURCE)p 406 1064 V
18 w(DISCO)o(VER)p Fs(.)16 b(In)g(this)f(con)o(text,)f(they)i(mean:)143
1166 y Fo(\017)23 b Fk(MPI)p 274 1166 V 15 w(RESOURCE)p
519 1166 V 19 w(DEF)l(A)o(UL)l(T)p Fs(:)15 b(Unde\014ned)i(for)d
(resource)h(allo)q(cation.)143 1259 y Fo(\017)23 b Fk(MPI)p
274 1259 V 15 w(RESOURCE)p 519 1259 V 19 w(HOST)p Fs(:)15
b(The)h(string)f(in)h Fk(resource)p 1118 1259 V 17 w(description)h
Fs(is)e(a)g(hostname.)143 1351 y Fo(\017)23 b Fk(MPI)p
274 1351 V 15 w(RESOURCE)p 519 1351 V 19 w(ARCH)p Fs(:)e(The)f(string)h
(in)g Fk(resource)p 1138 1351 V 16 w(description)h Fs(is)f(an)g(arc)o
(hitecture.)35 b(Note)189 1408 y(that)14 b(arc)o(hitecture)i(names)f
(are)g(not)f(sp)q(eci\014ed)k(b)o(y)d(MPI)g(itself.)143
1501 y Fo(\017)23 b Fk(MPI)p 274 1501 V 15 w(RESOURCE)p
519 1501 V 19 w(PROCESSOR)p Fs(:)g(The)e(string)g(in)h
Fk(resource)p 1281 1501 V 17 w(description)g Fs(describ)q(es)h(a)e
(single)189 1557 y(pro)q(cessor.)k(The)17 b(recommended)h(approac)o(h)f
(is)g(that)g(the)g(name)g(should)h(b)q(e)g(the)f(name)g(of)g(the)189
1613 y(host)d(in)i(whic)o(h)g(the)g(pro)q(cessor)f(resides.)143
1706 y Fo(\017)23 b Fk(MPI)p 274 1706 V 15 w(RESOURCE)p
519 1706 V 19 w(SPECIAL)p Fs(:)c(The)h(string)g(in)g
Fk(resource)p 1192 1706 V 17 w(description)i Fs(describ)q(es)f(an)f
(arbitrary)189 1763 y(set)15 b(of)f(resources.)166 1947
y Fh(Discussion:)31 b Fg(Need)11 b(a)g(w)o(a)o(y)e(to)i(deal)f(with)g
(hard/soft)h(requests.)19 b(A)10 b Fc(har)n(d)15 b Fg(allo)q(cation)9
b(request)k(is)d(required)75 2004 y(to)h(ev)o(en)o(tually)f(return)i
(the)f(en)o(tire)g(n)o(um)o(b)q(er)g(of)f(pro)q(cessors)j(requested,)g
(whereas)f(a)e Fc(soft)k Fg(allo)q(cation)c(request)i(ma)o(y)75
2060 y(complete)g(when)h(it)g(can)g(allo)q(cate)f(some)g(pro)q(cessors)
j(ev)o(en)e(if)f(it)h(kno)o(ws)f(that)h(it)f(will)g(not)g(b)q(e)i(able)
e(to)h(satisfy)f(the)75 2117 y(en)o(tire)j(request.)166
2339 y Fh(Discussion:)39 b Fg(Note)16 b(that)f Ff(MPI)p
709 2339 13 2 v 15 w(Resource)p 877 2339 V 16 w(Iallo)q(cate)g
Fg(do)q(es)h(not)f(tak)o(e)h(a)f(comm)o(uni)o(cator)e(argumen)o(t)h
(and)75 2395 y(is)g(called)f(in)g(a)g(single)h(pro)q(cess.)19
b(This)14 b(means)f(that)h(an)f Ff(MPI)p 1038 2395 V
14 w(Resource)i Fg(ob)r(ject)g(has)f(a)f(single)g(o)o(wner.)18
b(T)m(rying)13 b(to)75 2452 y(mak)o(e)f(this)h(op)q(eration)g
(collectiv)o(e)g(w)o(ould)f(force)i(us)f(to)g(in)o(tro)q(duce)h
(collectiv)o(e)f(ob)r(jects)h(\(collectiv)o(e)f(requests)i(and)75
2508 y(collectiv)o(e)f Ff(MPI)p 332 2508 V 14 w(No)q(de)h
Fg(ob)r(jects\).)166 2647 y Fk(MPI)p 251 2647 14 2 v
16 w(W)o(ait)h Fs(or)f Fk(MPI)p 512 2647 V 16 w(T)l(est)i
Fs(can)g(b)q(e)g(used)f(to)g(c)o(hec)o(k)g(for)g(completion.)24
b(The)16 b Fk(MPI)p 1557 2647 V 16 w(ST)l(A)l(TUS)i Fs(ob)s(ject)75
2704 y(can)d(b)q(e)h(mo)q(di\014ed)h(to)d(con)o(tain)i(information)f
(relating)h(to)e(the)i(completion)g(of)f(the)g(op)q(eration.)1967
46 y Fi(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(1.4.)34 b(SIMPLE)16 b(INTERF)-5
b(A)o(CE)1191 b Fs(17)166 45 y Fh(Discussion:)32 b Fg(This)13
b(is)f(left)h(o)o(v)o(er)f(from)f(a)h(previous)h(v)o(ersion,)f(but)h
(will)e(b)q(ecome)i(relev)n(an)o(t)f(again)g(once)h(w)o(e)75
95 y(get)h(deep)q(er)i(in)o(to)d(the)i(discussion)f(of)f(describing)i
(resources.)20 b({)14 b(RL)166 145 y(Authen)o(tication)i(information,)d
(if)i(required)i(b)o(y)f(the)g(resource)i(manager,)d(can)h(b)q(e)h
(supplied)f(in)f(the)i(job-)75 195 y(sc)o(heduler-dep)q(enden)o(t)h
(resource)f(description)e(string.)21 b(The)16 b(executable)g(\014les)f
(are)g(not)g(sp)q(eci\014ed)i(on)d(this)h(call,)75 244
y(since)k(this)g(is)f(just)h(for)f(resource)i(allo)q(cation.)30
b(W)m(e)18 b(can)h(attac)o(h)g(them)e(to)i(the)g(requests)h(with)e(the)
h(function)75 294 y(describ)q(ed)d(in)d(the)i(next)f(section.)166
344 y(The)g(string)g(con)o(taining)f(resource-manager-dep)q(enden)o(t)i
(strings)g(are)f(implem)o(en)o(tation)d(de\014ned)k(\(b)o(y)e(the)75
394 y(resource)22 b(manager,)e(not)g(MPI\).)g(These)h(ma)o(y)e(con)o
(tain)g(information)e(to)j(b)q(e)h(applied)f(to)g(all)e(pro)q(cesses)23
b(\(in)75 444 y Ff(global)p 180 444 13 2 v 15 w(js)p
222 444 V 15 w(dep)p 297 444 V 16 w(string)p Fg(\))14
b(and)g(information)d(for)i(a)h(particular)g(pro)q(cess)h(\(in)75
493 y Ff(a)o(rra)o(y)p 162 493 V 15 w(of)p 211 493 V
14 w(lo)q(cal)p 305 493 V 16 w(js)p 348 493 V 14 w(dep)p
422 493 V 17 w(strings)p Fg(\).)27 b(An)17 b(example)e(of)h
Ff(global)p 996 493 V 15 w(js)p 1038 493 V 15 w(dep)p
1113 493 V 16 w(string)h Fg(is)g Fe(gang)p 1377 493 14
2 v 14 w(schedule)p Fg(;)f(and)h(example)f(of)75 543
y Ff(a)o(rra)o(y)p 162 543 13 2 v 15 w(of)p 211 543 V
14 w(lo)q(cal)p 305 543 V 16 w(js)p 348 543 V 14 w(dep)p
422 543 V 17 w(strings)e Fg(is)f Fb(f)22 b Fe("large)p
783 543 14 2 v 14 w(memory",)f("local)p 1126 543 V 14
w(hippi")p Fb(g)p Fg(.)166 600 y(A)15 b(no)q(de)g(ma)o(y)e(ha)o(v)o(e)h
(m)o(ultiple)f(comm)o(unicati)o(on)f(in)o(terfaces)k(\(Ethernet,)g
(HiPPI,)e(A)m(TM\).)h(These)h(ha)o(v)o(e)e(to)75 656
y(sp)q(eci\014ed)h(so)f(that)g(the)h(desired)g(comm)o(unicatio)o(n)c
(infrastructure)16 b(can)e(b)q(e)g(used.)75 859 y Fk(Interfacing)h(to)h
(the)g(Pro)q(cess)g(Manager)75 945 y Fs(While)h Fk(MPI)p
293 945 V 16 w(SP)l(A)-5 b(WN)17 b Fs(con)o(v)o(enien)o(tly)g(captures)
g(man)o(y)e(asp)q(ects)h(of)g(resource)g(allo)q(cation)h(and)g(pro)q
(cess)75 1001 y(startup)g(in)h(one)f(call,)h(w)o(e)f(need)h(more)f
(detailed)i(con)o(trol)e(of)g(these)g(steps.)26 b(Our)18
b(mo)q(del)g(will)h(b)q(e)f(that)75 1058 y(one)e(calls)g
Fk(MPI)p 345 1058 V 16 w(IALLOCA)l(TE)g Fs(to)f(reserv)o(e)g(pro)q
(cessors,)g(getting)h(bac)o(k)f(a)g(set)h(of)f(resources.)21
b(Pro)q(cesses)75 1114 y(can)16 b(then)g(b)q(e)g(started)f(on)g(these)h
(resources)g(\(i.e.)21 b(the)15 b(pro)q(cess)h(manager)f(can)h(b)q(e)g
(requested)g(to)f(start)75 1171 y(pro)q(cesses)h(on)f(these)g
(resources\))g(with)h(the)f(routines)g(presen)o(ted)h(in)g(this)g
(section.)75 1321 y Fk(MPI)p 160 1321 V 16 w(EXEC\(executable,)h(a)o
(rguments,)d(n,)i(resource,)f(a)o(rra)o(y)p 1086 1321
V 14 w(of)p 1137 1321 V 16 w(p)o(ro)q(cesses\))117 1399
y Fg(IN)155 b Fk(executable)391 b Fg(executable)15 b(\014le)f(con)o
(taining)f(program)f(to)i(b)q(e)g(run)117 1474 y(IN)155
b Fk(a)o(rguments)391 b Fg(argumen)o(ts)13 b(for)h(the)g(program)117
1549 y(IN)155 b Fk(n)564 b Fg(n)o(um)o(b)q(er)13 b(of)h(pro)q(cesses)i
(to)e(start)117 1624 y(IN)155 b Fk(resource)432 b Ff(MPI)p
982 1624 13 2 v 15 w(Resource)15 b Fg(to)f(run)g(pro)q(cesses)i(on)117
1699 y(OUT)108 b Fk(a)o(rra)o(y)p 416 1699 14 2 v 15
w(of)p 468 1699 V 16 w(p)o(ro)q(cesses)251 b Ff(MPI)p
982 1699 13 2 v 15 w(Pro)q(cess)14 b Fg(ob)r(jects)h(returned)166
1824 y Fs(This)g(is)g(a)g(blo)q(c)o(king)h(call;)g(when)f(it)g(returns)
f(the)h(pro)q(cesses)g(ha)o(v)o(e)g(b)q(een)h(started.)i(Note)d(that)f
(the)75 1880 y(resources)k(ha)o(v)o(e)g(already)g(b)q(een)i(allo)q
(cated.)29 b(Unless)19 b(there)g(is)f(an)g(error)g(in)h(argumen)o(ts)e
(\(executable)75 1937 y(do)q(es)i(not)g(exist,)h(for)f(example\))h
Fk(MPI)p 750 1937 14 2 v 15 w(Exec)g Fs(normally)g(should)g(w)o(ork.)31
b(\(The)19 b(system)f(ma)o(y)h(ha)o(v)o(e)g(to)75 1993
y(con)o(tact)11 b(the)h(resource)g(manager,)f(but)h(the)g(resources)g
(ha)o(v)o(e)f(b)q(een)i(promised)g(and)f(should)h(b)q(e)f(a)o(v)m
(ailable)75 2049 y(immediately\).)23 b(There)16 b(is)g(one)g
(executable)h(name)f(and)g(one)g(set)f(of)h(argumen)o(ts.)21
b(T)l(o)15 b(start)g(pro)q(cesses)75 2106 y(with)h(m)o(ultiple)h
(executables)f(or)f(di\013eren)o(t)g(argumen)o(ts,)f(call)i(this)g(t)o
(wice.)166 2162 y(Note:)25 b(in)19 b(this)f(v)o(ersion)g(of)g
Fk(MPI)p 743 2162 V 16 w(Exec)p Fs(,)h(all)f(tasks)g(initiated)h(with)g
(one)f(call)h(to)e Fk(MPI)p 1666 2162 V 16 w(Exec)h Fs(ha)o(v)o(e)75
2219 y(the)e(same)f(executable)h(and)g(same)f(argumen)o(ts,)f(and)i
(execute)g(on)g(the)f(same)g(resource.)21 b(One)16 b(can)g(use)75
2275 y(m)o(ultiple)j Fk(MPI)p 340 2275 V 16 w(Exec)e
Fs(calls)h(to)f(spa)o(wn)f(m)o(ultiple)j(executables,)f(to)f(pass)f
(di\013eren)o(t)i(argumen)o(t)e(lists)i(to)75 2332 y(eac)o(h)d
(executatable,)h(or)e(to)h(run)g(di\013eren)o(t)h(pro)q(cesses)f(on)h
(di\013eren)o(t)f(resources.)166 2471 y Fh(Discussion:)50
b Fg(Note)19 b(that)f(a)g(single)f(resource)j(migh)o(t)c(b)q(e)j(\\a)f
(P)o(aragon",)f(so)h(it)g(mak)o(es)f(sense)j(to)e(run)75
2527 y(m)o(ultiple)12 b(pro)q(cesses)18 b(on)c(a)h(single)f(resource.)
23 b(If)14 b(w)o(e)h(allo)o(w)f(construction)h(of)g(a)f(\\virtual)g
(mac)o(hine")f(as)i(a)f(single)75 2584 y(resource,)f(then)d(it)g(again)
g(mak)o(es)f(sense)j(and)e(is)g(con)o(v)o(enien)o(t)h(to)f(use)h(a)f
(single)g(call)f(to)h(start)h(m)o(ultiple)d(pro)q(cesses)13
b(on)75 2640 y(a)g(single)h(resource.)20 b(On)14 b(the)g(other)h(hand,)
e(one)h(migh)o(t)d(conceiv)o(e)k(of)e(situation)g(where)i(it)e(w)o
(ould)g(b)q(e)i(con)o(v)o(enien)o(t)75 2697 y(to)f(replace)h(the)f
Ff(resource)i Fg(argumem)o(t)11 b(ab)q(o)o(v)o(e)j(with)f(an)h(arra)o
(y)f(of)h(resources.)-32 46 y Fi(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 Fs(18)928 b Fn(CHAPTER)16 b(1.)34
b(D)o(YNAMIC)15 b(PR)o(OCESSES)166 45 y Fs(The)g(non)o(blo)q(c)o(king)i
(v)o(ersion)e(returns)g(a)g(request)g(that)g(can)g(b)q(e)h(tested)f
(and)h(w)o(aited)f(on.)75 196 y Fk(MPI)p 160 196 14 2
v 16 w(IEXEC\(executable,)h(a)o(rguments,)f(n,)g(resource,)g(a)o(rra)o
(y)p 1098 196 V 15 w(of)p 1150 196 V 16 w(p)o(ro)q(cesses,request\))117
273 y Fg(IN)155 b Fk(executable)391 b Fg(executable)15
b(\014le)f(con)o(taining)f(program)f(to)i(b)q(e)g(run)117
348 y(IN)155 b Fk(a)o(rguments)391 b Fg(argumen)o(ts)13
b(for)h(the)g(program)117 424 y(IN)155 b Fk(n)564 b Fg(n)o(um)o(b)q(er)
13 b(of)h(pro)q(cesses)117 499 y(IN)155 b Fk(resource)432
b Ff(MPI)p 982 499 13 2 v 15 w(Resourc)p Fg(s)15 b(to)e(run)i(pro)q
(cesses)h(on)117 574 y(OUT)108 b Fk(a)o(rra)o(y)p 416
574 14 2 v 15 w(of)p 468 574 V 16 w(p)o(ro)q(cesses)251
b Ff(MPI)p 982 574 13 2 v 15 w(Pro)q(cess)14 b Fg(ob)r(jects)h
(returned)117 649 y(OUT)108 b Fk(request)452 b Ff(MPI)p
982 649 V 15 w(Request)15 b Fg(ob)r(jects)g(returned,)g(to)f(w)o(ait)f
(on)166 856 y Fh(Discussion:)32 b Fg(A)12 b(more)g(detailed)g(v)o
(ersion)g(w)o(ould)g(return)h(an)f(arra)o(y)g(of)g(requests,)i(so)e
(that)g(startup)h(could)75 913 y(b)q(e)j(w)o(aited)f(on)g(one)g(pro)q
(cess)i(at)e(a)g(time.)20 b(This)15 b(functionalit)o(y)f(could)h(b)q(e)
h(pro)o(vided)f(with)g(the)g(ab)q(o)o(v)o(e)g(prop)q(osal)75
969 y(b)o(y)f(using)f Ff(MPI)p 318 969 V 15 w(IEXEC)f
Fg(on)h(one)h(pro)q(cess)i(at)e(a)g(time.)166 1191 y
Fh(Discussion:)22 b Fg(W)m(e)16 b(ma)o(y)g(w)o(an)o(t)g(to)h(consider)h
(routines)g(that)f(build)f(a)h(resource,)i(corresp)q(onding)f(to)f(the)
75 1247 y(w)o(a)o(y)d(PVM)h(users)h(build)d(a)i(virtual)e(mac)o(hine.)
19 b(In)c(this)f(w)o(a)o(y)g(m)o(ultiple)e(resources)17
b(can)e(b)q(e)g(com)o(bined)e(in)o(to)h(one,)75 1304
y(handy)i(for)f(constructing)i(a)f(sp)q(eci\014c)h(set)g(of)e(w)o
(orkstations,)h(for)g(example.)22 b(This)16 b(w)o(ould)f(mak)o(e)g(it)g
(ev)o(en)i(more)75 1360 y(unnecessary)f(to)e(mak)o(e)e(m)o(ultiple)g
Ff(MPI)p 704 1360 V 14 w(EXEC)h Fg(calls.)75 1563 y Fk(Utilit)o(y)j
(routines)75 1649 y Fs(In)d(this)g(section)g(w)o(e)f(collect)h
(routines)g(that)f(pro)o(vide)h(access)f(to)g(the)g(data)g(con)o
(tained)h(in)g(the)g(datat)o(yp)q(es)75 1705 y Fk(MPI)p
160 1705 14 2 v 16 w(Pro)q(cess)j Fs(and)f Fk(MPI)p 505
1705 V 16 w(Resource)p Fs(.)75 1856 y Fk(MPI)p 160 1856
V 16 w(PROCESS)p 373 1856 V 18 w(RESOURCE\(p)o(ro)q(cess,)i(resource\))
117 1933 y Fg(IN)155 b Fk(p)o(ro)q(cess)451 b Fg(an)14
b Ff(MPI)p 1040 1933 13 2 v 14 w(Pro)q(cess)117 2008
y Fg(OUT)108 b Fk(resource)432 b Fg(the)15 b Ff(MPI)p
1054 2008 V 14 w(Resource)g Fg(on)f(whic)o(h)g(the)g(pro)q(cess)i(is)e
(running)75 2133 y Fs(Gets)k(the)g(resource)g(on)h(whic)o(h)g(a)f(pro)q
(cess)g(is)h(running.)30 b(This)19 b(routine)g(can)f(only)h(b)q(e)g
(called)h(on)e(the)75 2189 y(pro)q(cess)d(whic)o(h)i(o)o(wns)d(the)h
(resource.)20 b(On)c(all)g(other)f(pro)q(cess)h(it)f(returns)g
Fk(MPI)p 1453 2189 14 2 v 16 w(RESOURCE)p 1699 2189 V
18 w(NULL)p Fs(.)166 2328 y Fh(Discussion:)36 b Fg(Allo)o(wing)13
b(other)i(pro)q(cesses)i(to)d(retriev)o(e)i(the)f(corresp)q(onding)g
(resource)i(causes)f(all)d(sorts)75 2385 y(of)h(problems.)19
b(The)c(curren)o(t)h(de\014nition)e(is)h(probably)e(\014ne)i(un)o(til)f
(w)o(e)h(start)g(talking)e(ab)q(out)i(fault)e(tolerance,)i(in)75
2441 y(whic)o(h)f(case)h(w)o(e)f(ha)o(v)o(e)f(another)i(problem.)1967
46 y Fi(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(1.4.)34 b(SIMPLE)16 b(INTERF)-5
b(A)o(CE)1191 b Fs(19)75 45 y Fk(MPI)p 160 45 14 2 v
16 w(RESOURCE)p 406 45 V 18 w(PROCESSES\(resource,)17
b(n,)e(a)o(rra)o(y)p 1022 45 V 15 w(of)p 1074 45 V 16
w(p)o(ro)q(cesses\))117 122 y Fg(IN)155 b Fk(resource)432
b Fg(an)14 b Ff(MPI)p 1040 122 13 2 v 14 w(Resource)117
196 y Fg(OUT)108 b Fk(n)564 b Fg(n)o(um)o(b)q(er)13 b(of)h(pro)q
(cesses)i(running)e(on)f(resource)117 270 y(OUT)108 b
Fk(a)o(rra)o(y)p 416 270 14 2 v 15 w(of)p 468 270 V 16
w(p)o(ro)q(cesses)251 b Fg(arra)o(y)14 b(of)f Ff(MPI)p
1138 270 13 2 v 14 w(Pro)q(cess)p Fg(es)75 395 y Fs(Gets)18
b(the)g(pro)q(cesses)g(running)i(on)e(a)f(giv)o(en)i(resource.)29
b(Returns)18 b Fa(n)g Fs(=)g(0)g(if)h(none)f(\(resource)g(is)h(then)75
451 y(free)c(for)g(a)g(new)g(task\))166 590 y Fh(Discussion:)30
b Fg(Do)9 b(w)o(e)i(need)g(to)f(sp)q(ecify)g(the)h(size)g(of)e(the)i
(arra)o(y)f(or)g(do)g(w)o(e)g(let)g(the)h(user)g(hang)e(him/herself)s
(?)75 880 y Fk(MPI)p 160 880 14 2 v 16 w(FREE)p 285 880
V 17 w(RESOURCE\(resources\))117 957 y Fg(IN)155 b Fk(resources)415
b Fg(resource)16 b(to)e(b)q(e)g(returned)i(to)e(resource)i(manager)75
1082 y Fs(releases)24 b(resources)g(to)f(resource)g(manager.)45
b(Pro)q(cesses)24 b(running)g(on)g(those)f(resources)h(are)f(lost)75
1138 y(\(killed?\).)f(\(dealing)15 b(with)g(this)g(case)f(is)h
(di\016cult)h(and)f(should)g(should)g(b)q(e)g(addressed\).)20
b(The)15 b(resource)75 1195 y(m)o(ust)g(b)q(e)g(o)o(wned)h(b)o(y)f(the)
g(caller.)75 1346 y Fk(MPI)p 160 1346 V 16 w(PROCESS)p
373 1346 V 18 w(IN)p 436 1346 V 16 w(GROUP\(group,)h(rank,)f(p)o(ro)q
(cess\))117 1423 y Fg(IN)155 b Fk(comm)470 b Fg(group)117
1497 y(IN)155 b Fk(rank)504 b Fg(rank)14 b(in)f(group)117
1571 y(OUT)108 b Fk(p)o(ro)q(cess)451 b Ff(MPI)p 982
1571 13 2 v 15 w(Pro)q(cess)14 b Fg(corresp)q(onding)h(to)e(rank)h(in)g
(group)75 1695 y Fs(gets)h(the)g Fk(MPI)p 332 1695 14
2 v 16 w(Pro)q(cess)h Fs(corresp)q(onding)g(to)e(a)h(giv)o(en)h(group)f
(and)g(rank.)166 1752 y(A)g(pro)q(cess)f(represen)o(ted)i(b)o(y)e(an)h
Fk(MPI)p 824 1752 V 16 w(Pro)q(cess)g Fs(cannot)f(b)q(e)i(comm)o
(unicated)f(with)g(directly)l(,)h(un)o(til)75 1808 y(a)i(comm)o
(unicator)h(is)g(constructed)f(con)o(taining)i(it)f(\(see)f(next)h
(section\).)30 b(It)19 b(need)g(not)f(b)q(e)i(an)e(\\MPI)75
1864 y(pro)q(cess")h(in)g(the)g(sense)g(that)f(it)i(migh)o(t)e(not)h
(call)g Fk(MPI)p 1059 1864 V 16 w(INIT)p Fs(.)f(On)h(the)g(other)g
(hand,)g(it)g(allo)o(ws)g(out-)75 1921 y(of-band)h(comm)o(unication,)h
(suc)o(h)e(as)g(signals,)i(and)f(migh)o(t)f(b)q(e)h(a)f(useful)i
(concept)f(for)f(dealing)i(with)75 1977 y(failures.)166
2034 y(T)l(o)15 b(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 2185 y
Fk(MPI)p 160 2185 V 16 w(SIGNAL\(signal,)g(num)p 567
2185 V 16 w(p)o(ro)q(cesses,)i(a)o(rra)o(y)p 881 2185
V 14 w(of)p 932 2185 V 16 w(p)o(ro)q(cesses\))117 2262
y Fg(IN)155 b Fk(signal)480 b Fg(signal)13 b(t)o(yp)q(e)h(\(in)o(t\))
117 2336 y(IN)155 b Fk(num)p 404 2336 V 17 w(p)o(ro)q(cesses)314
b Fg(n)o(um)o(b)q(er)13 b(of)h(pro)q(cesses)i(in)e(arra)o(y)117
2410 y(IN)155 b Fk(a)o(rra)o(y)p 416 2410 V 15 w(of)p
468 2410 V 16 w(p)o(ro)q(cesses)251 b Ff(MPI)p 982 2410
13 2 v 15 w(Pro)q(cess)p Fg(es)15 b(to)e(b)q(e)i(signalled)166
2534 y Fs(It)22 b(is)g(the)f(resp)q(onsibilit)o(y)j(of)d(an)h(implemen)
o(tation)h(to)e(translate)g(b)q(et)o(w)o(een)h(signals;)j(in)d(other)75
2591 y(w)o(ords,)13 b(a)h Fj(SIGINT)g Fs(that)f(has)i(v)m(alue)g
Fj(3)f Fs(on)h(system)e(A)i(m)o(ust)f(b)q(e)h(deliv)o(ered)h(as)e(a)g
Fj(SIGINT)f Fs(on)h(system)g(B,)75 2647 y(ev)o(en)i(if)g
Fj(SIGINT)f Fs(on)g(system)h(B)f(uses)h(the)g(v)m(alue)h
Fj(5)e Fs(for)g Fj(SIGINT)p Fs(.)g(If)h(the)f(signal)i(can)f(not)f(b)q
(e)h(deliv)o(ered)75 2704 y(b)q(ecause)g(there)f(is)h(no)f(corresp)q
(onding)h(signal,)g(the)f(error)g(co)q(de)h(is)f Fk(MPI)p
1327 2704 14 2 v 16 w(ERR)p 1428 2704 V 17 w(INV)l(ALID)p
1617 2704 V 17 w(SIGNAL)p Fs(.)-32 46 y Fi(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 Fs(20)928 b Fn(CHAPTER)16 b(1.)34
b(D)o(YNAMIC)15 b(PR)o(OCESSES)166 45 y Fh(Discussion:)29
b Fg(Should)9 b(there)i(b)q(e)e(a)g(single-request)i(v)o(ersion)e(of)g
(this,)h(and)f(the)h(ab)q(o)o(v)o(e)f(renamed)g Ff(MPI)p
1767 45 13 2 v 14 w(SIGNAL)p 1923 45 V 15 w(ALL)p Fg(?)75
102 y(Is)14 b(the)h(notion)e(of)g(signals)g(to)q(o)h(Unix-cen)o(tric?)
166 241 y Fs(There)j(needs)h(to)f(b)q(e)h(some)f(w)o(a)o(y)f(of)h
(\014nding)h(out)f(when)h(a)f(pro)q(cess)g(\014nishes.)27
b(In)18 b(MPI)f(w)o(e)g(ha)o(v)o(e)75 297 y(no)f(mec)o(hanism)h(for)e
(async)o(hronous)h(noti\014cation.)23 b(Therefore)16
b(the)h(b)q(est)f(w)o(e)g(can)g(do)g(is)h(to)e(construct)75
354 y(a)f(request)g(that)f(can)h(b)q(e)h(tested)f(and)g(w)o(aited)g
(on.)19 b(If)14 b(pro)q(cesses)h(w)o(ere)e(represen)o(ted)i(b)o(y)f
(requests,)g(then)75 410 y(w)o(e)k(could)g(w)o(ait)g(on)g(them)f
(directly)l(.)30 b(Since)19 b(w)o(e)f(ha)o(v)o(e)f(in)o(tro)q(duced)i
(the)f(notion)g(of)g Fk(MPI)p 1636 410 14 2 v 15 w(Pro)q(cess)p
Fs(,)h(w)o(e)75 467 y(explicitly)f(attac)o(h)c(a)h(request)g(to)g(it)g
(in)h(order)f(to)g(w)o(ait)f(on)i(it.)75 617 y Fk(MPI)p
160 617 V 16 w(NOTIFY)p 341 617 V 17 w(WHEN)p 492 617
V 16 w(DONE\(n,)g(a)o(rra)o(y)p 798 617 V 15 w(of)p 850
617 V 16 w(p)o(ro)q(cesses,)g(request\))117 695 y Fg(IN)155
b Fk(n)564 b Fg(n)o(um)o(b)q(er)13 b(of)h(pro)q(cesses)i(in)e(follo)o
(wing)d(arra)o(y)117 770 y(IN)155 b Fk(a)o(rra)o(y)p
416 770 V 15 w(of)p 468 770 V 16 w(p)o(ro)q(cesses)251
b Fg(arra)o(y)14 b(of)f Ff(MPI)p 1138 770 13 2 v 14 w(Pro)q(cess)i
Fg(ob)r(jects)117 845 y(OUT)108 b Fk(request)452 b Fg(mpifuncMPI)p
1136 845 V 14 w(Request)15 b(to)e(b)q(e)i(tested)g(and/or)f(w)o(aited)f
(on)166 1052 y Fh(Discussion:)40 b Fg(Should)15 b Ff(MPI)p
657 1052 V 15 w(NOTIFY)p 824 1052 V 14 w(WHEN)p 960 1052
V 15 w(DONE)g Fg(return)i(an)e(arra)o(y)h(of)f(requests)i(instead)f(of)
f(just)75 1109 y(one?)166 1248 y Fs(W)l(e)g(can)g(think)g(of)g(this)g
(as)g(MPI)g(in)o(terface)g(to)f(the)h(Pro)q(cess)g(Manager's)e
(handling)k(of)d(the)h(signal)75 1304 y Fj(SIGCHILD)p
Fs(\).)g(The)i(exit)g(co)q(de)h(from)e(the)h(pro)q(cess)g(\(from)f(a)g
Fj(return)23 b(n)17 b Fs(or)f Fj(exit\(n\))g Fs(in)i(C)e(or)h
Fj(STOP)23 b(n)75 1361 y Fs(in)16 b(F)l(ortran\)\))d(can)j(b)q(e)g
(retriev)o(ed)f(from)g(the)g Fk(MPI)p 934 1361 14 2 v
16 w(status)i Fs(\014lled)g(in)f(the)f Fk(MPI)p 1402
1361 V 16 w(W)l(AIT)p Fs(.)166 1417 y(Note)i(that)g(this)h(lev)o(el)h
(of)e(pro)q(cess)h(managemen)o(t)f(allo)o(ws)h(us)g(to)f(manage)g
(non-MPI)h(pro)q(cesses,)75 1473 y(since)e(comm)o(unicators)f(are)g
(not)g(in)o(v)o(olv)o(ed.)166 1530 y(If)d(the)f(started)g(pro)q(cesses)
h(are)f(MPI)h(pro)q(cesses)g(\(that)f(is,)h(if)g(they)g(call)g
Fk(MPI)p 1461 1530 V 16 w(INIT)p Fs(\),)e(then)i(the)g(com-)75
1586 y(m)o(unicator)17 b(that)f(includes)j(them)e(can)g(b)q(e)g
(constructed)g(with)g(the)g Fk(MPI)p 1352 1586 V 16 w(A)o(ttach)h
Fs(function)g(describ)q(ed)75 1643 y(b)q(elo)o(w.)i(In)14
b(either)h(case,)e(at)g(this)h(stage)f(w)o(e)g(ha)o(v)o(e)h(allo)q
(cated)g(resources)g(and)g(the)g(pro)q(cesses)g(ha)o(v)o(e)f(b)q(een)75
1699 y(started.)25 b(The)18 b(third)f(comp)q(onen)o(t)h(of)f(the)g(run)
o(time)g(en)o(vironmen)o(t)h(is)g(the)f(message-passing)g(library)l(.)
75 1756 y(In)f(order)e(to)h(comm)o(unicate)g(with)h(these)f(pro)q
(cesses,)g(w)o(e)g(m)o(ust)f(in)o(terface)h(with)h(the)f
(message-passing)75 1812 y(library)l(.)21 b(In)16 b(MPI)f(terms,)f
(this)i(means)f(setting)g(up)h(comm)o(unicators.)75 1932
y Fk(Communicating)f(with)g(Dynamically)f(Created)i(MPI)f(Pro)q(cesses)
75 2018 y Fs(Once)g(the)f(pro)q(cesses)g(ha)o(v)o(e)f(b)q(een)i
(started,)e(w)o(e)h(ma)o(y)f(or)g(ma)o(y)g(not)h(wish)g(to)f(establish)
i(comm)o(unication)75 2075 y(with)d(them.)19 b(Note)11
b(that)h(the)g Fk(MPI)p 670 2075 V 15 w(IALLOCA)l(TE)p
Fs(/)p Fk(MPI)p 1029 2075 V 16 w(EXEC)h Fs(mec)o(hanism)f(can)g(b)q(e)h
(used)f(b)o(y)g(a)g(pro)q(cess)75 2131 y(manager)18 b(written)h(in)g
(MPI)g(to)f(manage)g(non-MPI)i(pro)q(cesses)f(as)f(w)o(ell)i(as)e(MPI)h
(pro)q(cesses.)31 b(If)19 b(the)75 2187 y(application)j(program)e(is)h
(creating)g(new)g(pro)q(cesses,)i(ho)o(w)o(ev)o(er,)e(it)g(is)g(lik)o
(ely)h(that)e(it)h(will)i(w)o(an)o(t)d(to)75 2244 y(comm)o(unicate)d
(with)f(them,)h(via)f(an)h(in)o(ter-comm)o(unicator.)23
b(The)17 b(complication)g(is)g(that)f(creation)g(of)75
2300 y(this)i(in)o(ter-comm)o(unicator)g(is)g(a)f(collectiv)o(e)i(op)q
(eration)f(o)o(v)o(er)f(all)h(pro)q(cesses)g(in)o(v)o(olv)o(ed,)h(y)o
(et)e(w)o(e)g(don't)75 2357 y(w)o(an)o(t)j(the)h(spa)o(wning)h(pro)q
(cess\(es\))f(to)f(blo)q(c)o(k)i(if)f(the)h(spa)o(wned)f(pro)q(cesses)g
(are)g(not)g(ev)o(en)g(going)h(to)75 2413 y(call)e Fk(MPI)p
247 2413 V 16 w(INIT)p Fs(.)e(Our)i(solution)f(is)h(to)f(create)f(this)
i(comm)o(unicator)f(through)f(a)h(collectiv)o(e)i(function)75
2470 y(separate)15 b(from)f Fk(MPI)p 447 2470 V 16 w(Exec)p
Fs(.)1967 46 y Fi(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(1.4.)34 b(SIMPLE)16 b(INTERF)-5
b(A)o(CE)1191 b Fs(21)75 45 y Fk(MPI)p 160 45 14 2 v
16 w(A)l(TT)l(A)o(CH\(comm,)13 b(ro)q(ot,)i(n,)g(a)o(rra)o(y)p
764 45 V 15 w(of)p 816 45 V 16 w(p)o(ro)q(cesses,)h(intercomm\))117
122 y Fg(IN)155 b Fk(comm)470 b Fg(comm)o(unicator)11
b(o)o(v)o(er)j(whic)o(h)g(this)g(op)q(eration)g(is)f(collectiv)o(e)117
197 y(IN)155 b Fk(ro)q(ot)508 b Fg(pro)q(cess)16 b(where)f
Ff(n)f Fg(and)g Ff(a)o(rra)o(y)p 1373 197 13 2 v 15 w(of)p
1422 197 V 14 w(p)o(ro)q(cesses)i Fg(are)e(v)n(alid)117
273 y(IN)155 b Fk(n)564 b Fg(n)o(um)o(b)q(er)13 b(of)h(pro)q(cesses)i
(in)e(follo)o(wing)d(arra)o(y)117 348 y(IN)155 b Fk(a)o(rra)o(y)p
416 348 14 2 v 15 w(of)p 468 348 V 16 w(p)o(ro)q(cesses)251
b Fg(the)15 b(spa)o(wned)f(pro)q(cesses)j(to)c(b)q(e)i(connected)h(to)
117 423 y(OUT)108 b Fk(intercomm)384 b Fg(in)o(tercomm)o(unicator)7
b(in)i(whic)o(h)g(spa)o(wned)h(pro)q(cesses)i(are)e(the)905
479 y(remote)k(group)75 604 y Fk(MPI)p 160 604 V 16 w(A)l(TT)l(A)o(CH)i
Fs(is)f(collectiv)o(e)i(among)e(the)g(pro)q(cesses)g(in)h
Fk(comm)d Fs(and)j(with)f(the)g(routine)h Fk(MPI)p 1721
604 V 16 w(INIT)e Fs(in)75 660 y(the)h(pro)q(cesses)h(b)q(eing)g(attac)
o(hed)f(to)g(the)g(MPI)g(univ)o(erse.)166 717 y Fk(MPI)p
251 717 V 16 w(INIT)e Fs(creates)h(an)g Fk(MPI)p 664
717 V 16 w(COMM)p 822 717 V 17 w(W)o(ORLD)g Fs(con)o(taining)h(all)g
(one's)f(sibling)i(pro)q(cesses,)f(where)75 773 y(siblings)g(are)d
(de\014ned)j(as)d(all)i(the)f(new)g(pro)q(cesses)g(that)f(participate)i
(in)g(the)f Fk(MPI)p 1474 773 V 15 w(A)l(TT)l(A)o(CH)h
Fs(op)q(eration,)75 830 y(not)h(all)h(tasks)e(that)h(w)o(ere)g(spa)o
(wned)g(in)h(one)f(op)q(eration.)166 886 y(The)j(\\other)f(side")h(of)g
Fk(intercomm)e Fs(is)i Fk(MPI)p 929 886 V 16 w(COMM)p
1087 886 V 16 w(P)l(ARENT)h Fs(in)g(the)f(c)o(hildren.)29
b(In)18 b(MPI)g(pro-)75 942 y(cesses)e(whic)o(h)g(w)o(ere)f(not)f
(created)i(b)o(y)f Fk(MPI)p 828 942 V 15 w(Exec)p Fs(,)h
Fk(MPI)p 1042 942 V 16 w(COMM)p 1200 942 V 16 w(P)l(ARENT)g
Fs(is)g Fk(MPI)p 1534 942 V 16 w(COMM)p 1692 942 V 16
w(NULL)p Fs(.)166 1075 y Fh(Discussion:)49 b Fg(In)18
b(the)g(curren)o(t)i(prop)q(osal,)e(c)o(hildren)g(attac)o(h)f(to)h
(their)g(paren)o(ts)h(automatically)14 b(when)75 1125
y(they)g(call)f Ff(MPI)p 321 1125 13 2 v 15 w(INIT)p
Fg(.)g(This)g(means)g(that)h(pro)q(cesses)i(cannot)e(call)f
Ff(MPI)p 1219 1125 V 15 w(INIT)g Fg(unless)i(they)f(comm)o(unicate)d
(with)75 1175 y(their)j(paren)o(ts)h(\(and)f(their)g(paren)o(ts)h(call)
e Ff(MPI)p 817 1175 V 14 w(A)o(ttach)p Fg(\).)166 1224
y(An)h(alternativ)o(e)g(w)o(ould)g(b)q(e)h(to)f(allo)o(w)f(c)o(hildren)
h(to)g(call)g Ff(MPI)p 1143 1224 V 14 w(INIT)g Fg(without)g(comm)o
(unicating)d(with)j(their)75 1274 y(paren)o(ts,)g(and)g(ha)o(v)o(e)g
(another)g(function)g(to)f(obtain)h(the)g(in)o(tercomm)o(unicator:)75
1419 y Ff(MPI)p 152 1419 V 14 w(P)o(a)o(rent\(intercomm\))117
1489 y Fg(OUT)107 b Ff(intercomm)403 b Fg(in)o(tercomm)o(unicator)15
b(in)i(whic)o(h)g(the)h(lo)q(cal)f(group)g(consists)905
1539 y(of)d(one's)g(siblings)g(and)g(the)h(remote)f(group)g(consists)i
(of)d(the)905 1589 y(pro)q(cess)j(that)e(did)f(the)i
Ff(MPI)p 1360 1589 V 14 w(A)o(ttach)166 1707 y Fg(This)10
b(has)g(the)h(disadv)n(an)o(tage)e(of)g(requiring)h(an)g(extra)g(sync)o
(hronization)g(in)g(the)g(c)o(hildren)h(and)f(less)g(straigh)o(t-)75
1756 y(forw)o(ard)h(usage.)17 b(On)12 b(the)f(other)h(hand,)f(similar)e
(functionalit)o(y)h(migh)o(t)f(b)q(e)i(necessary)j(when)d(b)q(o)q
(otstrapping)h(new)75 1806 y(comm)o(unicators)f(for)j(fault)f(reco)o(v)
o(ery)m(.)166 1856 y(Are)g(there)h(cases)g(where)g(c)o(hildren)f(w)o
(ould)e(w)o(an)o(t)h(to)h(comm)o(unicate)d(using)i(MPI)h(but)g(not)f(w)
o(an)o(t)h(to)f(b)q(e)h(able)75 1906 y(to)h(talk)f(to)h(their)g(paren)o
(ts?)166 1956 y(De\014nitely)m(.)20 b(One)c(example)e(is)h(the)g(case)h
(where)g(a)f(pro)q(cess)i(manager)c(written)j(in)e(MPI)h(starts)h(pro)q
(cesses)75 2005 y(\(with)g Ff(MPI)p 265 2005 V 15 w(EXEC)p
Fg(\))f(that)i(comprise)f(an)g(MPI)h(application.)25
b(There)18 b(is)e(no)g(reason)i(for)e(them)g(to)g(con)o(tact)h(the)75
2055 y(pro)q(cess)f(manager.)166 2105 y(I)e(prop)q(ose)g(to)g(mak)o(e)f
(this)h(discussion)g(section)h(the)f(main)e(prop)q(osal)h({)h(RL.)166
2327 y Fh(Discussion:)33 b Fg(The)13 b(goal)e(is)i(to)f(establish)h
(some)f(metho)q(d)g(of)g(comm)o(unicating)d(with)j(the)i(new)f(pro)q
(cesses.)75 2383 y(The)g(alternativ)o(es)g(are)g(to)f(create)i(an)e(in)
o(tercomm)o(unicator,)e(to)i(create)i(a)f(con)o(taining)e(comm)o
(unicator,)f(or)i(to)g(re-)75 2440 y(size)g(an)e(existing)h(comm)o
(unicator.)j(Resizing)d(an)g(existing)f(comm)o(unicator)e(seems)k(a)e
(bad)h(idea.)17 b(Giv)o(en)10 b(an)h(in)o(ter-)75 2496
y(comm)o(unicator,)f(it)i(is)h(easy)g(to)g(create)i(a)d(con)o(taining)g
(comm)o(unicator)e(b)o(y)j(using)f Ff(MPI)p 1445 2496
V 15 w(INTERCOMM)p 1711 2496 V 14 w(MERGE)p Fg(.)75 2553
y(Therefore)j(w)o(e)f(c)o(ho)q(ose)h(to)f(create)h(an)f(in)o(tercomm)o
(unicator.)-32 46 y Fi(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 Fs(22)928 b Fn(CHAPTER)16 b(1.)34
b(D)o(YNAMIC)15 b(PR)o(OCESSES)166 45 y Fs(The)21 b Fk(MPI)p
350 45 14 2 v 16 w(P)o(a)o(rent)p Fs(/)p Fk(MPI)p 595
45 V 15 w(A)o(ttach)i Fs(scenario)e(allo)o(ws)g(one)g(to)g(manage)f
(spa)o(wned)h(pro)q(cesses)h(that)75 102 y(b)q(ecome)f(part)f(of)g(MPI)
g(\(b)o(y)g(calling)i Fk(MPI)p 833 102 V 16 w(INIT)p
Fs(,)d(as)h(w)o(ell)h(as)f(spa)o(wned)h(pro)q(cesses)g(that)e(nev)o(er)
i(call)75 158 y Fk(MPI)p 160 158 V 16 w(INIT)p Fs(.)14
b(The)h(latter)g(can)h(only)f(b)q(e)h(\\comm)o(unicated")f(with)h(via)f
Fk(MPI)p 1361 158 V 16 w(SIGNAL)p Fs(.)166 214 y(Note)c(that)f
Fk(MPI)p 451 214 V 16 w(SP)l(A)-5 b(WN)12 b Fs(can)g(b)q(e)f(written)h
(in)g(terms)e(of)h(the)h(lo)o(w)o(er-lev)o(el)g(routines.)19
b(F)l(or)10 b(example,)123 321 y Fj(MPI\\_SPAWN\(oldcomm,)21
b(resource,)i(num,)g(executable,)f(arguments,)h(newcomm\))75
427 y Fs(can)15 b(b)q(e)h(written)f(as)g(\(without)g(error)g
(handling\))123 521 y Fj(MPI_RESOURCE_IALLOCATE\(M)o(PI_RESO)o
(URCE_DEF)o(AULT,nu)o(m,"",re)o(source,r)o(equest\))123
577 y(MPI_WAIT\(request,status\))123 634 y(MPI_EXEC\(executable,argu)o
(ments,n)o(um,resou)o(rce,arr)o(ay_of_p)o(rocesses)o(\))123
690 y(MPI_ATTACH\(comm,myrank,n)o(um,arra)o(y_of_pro)o(cesses,)o
(newcomm)o(\))75 812 y Fm(1.4.2)49 b(Clients)16 b(and)h(Servers)75
898 y Fs(In)22 b(a)e(previous)i(section)g(w)o(e)f(describ)q(ed)i
(simpli\014ed,)i(blo)q(c)o(king)d(calls)g(for)f(a)f(clien)o(t)j(and)e
(serv)o(er.)37 b(In)75 954 y(general,)15 b(just)f(as)g(MPI)g(needs)i
(non-blo)q(c)o(king)g(message-passing)e(op)q(erations,)h(w)o(e)f(need)h
(non-blo)q(c)o(king)75 1011 y(connection)h(op)q(erations.)166
1067 y(The)g(new)g(functions)g(needed)h(for)e(clien)o(t-serv)o(er)i
(applications)g(b)q(egin)g(with)f(routines)g(needed)h(so)75
1124 y(that)11 b(the)i(clien)o(ts)g(can)g(\014nd)f(the)h(serv)o(er.)18
b(The)13 b(\014rst)e(one)i(is)g(called)g(b)o(y)f(the)h(serv)o(er)f(in)h
(order)f(to)f(announce)75 1180 y(that)j(it)i(is)f(ready)g(to)g(accept)g
(connections.)21 b(It)15 b(pro)o(vides)g(an)g(arra)o(y)f(of)h(requests)
g(that)f(it)h(can)g(test)g(and)75 1236 y(w)o(ait)j(on)g(to)f(tell)i
(whether)f(a)g(clien)o(t)h(wishes)g(to)f(connect.)28
b(W)l(e)19 b(assume)e(here)i(that)e(b)q(oth)h(clien)o(t)i(and)75
1293 y(serv)o(er)f(ma)o(y)f(b)q(e)i(parallel)g(programs,)f(whose)g(pro)
q(cesses)g(are)g(already)g(in)h(in)o(ternal)g(comm)o(unication)75
1349 y(via)15 b(a)g(comm)o(unicator.)166 1406 y(When)22
b(a)e(connection)j(is)e(established,)j(it)e(will)h(b)q(e)f(returned)f
(in)h(a)f(new)h(MPI)f(datat)o(yp)q(e,)h(the)75 1462 y
Fk(MPI)p 160 1462 V 16 w(Connection)p Fs(.)28 b(Connections)18
b(are)f(the)g(clien)o(t-serv)o(er)i(analogue)e(of)g(pro)q(cesses)h
(whic)o(h)g(ha)o(v)o(e)f(b)q(een)75 1519 y(created)d(b)o(y)f(MPI)h(but)
f(with)h(whom)f(comm)o(unication)i(has)e(not)g(y)o(et)g(b)q(een)i
(establish.)20 b(After)14 b(establish-)75 1575 y(ing)d(the)g
(connection,)i(a)e(separate)f(call)i(actually)g(builds)h(the)e(comm)o
(unicator)f(so)h(that)f(message-passing)75 1632 y(can)15
b(tak)o(e)g(place.)166 1688 y(Both)g(of)g(the)g(follo)o(wing)h(op)q
(erations)f(are)g(collectiv)o(e)i(o)o(v)o(er)d(the)i(comm)o(unicator)f
Fk(comm)p Fs(.)75 1839 y Fk(MPI)p 160 1839 V 16 w(IA)o(CCEPT\(comm,)d
(name,)j(num)p 736 1839 V 16 w(connections,)i(a)o(rra)o(y)p
1096 1839 V 15 w(of)p 1148 1839 V 16 w(connections,a)o(rra)o(y)p
1491 1839 V 16 w(of)p 1544 1839 V 16 w(requests\))117
1916 y Fg(IN)155 b Fk(comm)470 b Fg(serv)o(er's)16 b(comm)o(uni)o
(cator)117 1991 y(IN)155 b Fk(name)485 b Fg(w)o(ell-kno)o(wn)9
b(name)g(b)o(y)g(whic)o(h)h(the)h(serv)o(er)g(can)f(b)q(e)h(con)o
(tacted)905 2048 y(\(string\))117 2123 y(IN)155 b Fk(num)p
404 2123 V 17 w(connections)268 b Fg(n)o(um)o(b)q(er)13
b(of)h(connections)h(in)e(arra)o(y)h(\(in)o(t\))117 2198
y(OUT)108 b Fk(a)o(rra)o(y)p 416 2198 V 15 w(of)p 468
2198 V 16 w(connections)205 b Ff(MPI)p 982 2198 13 2
v 15 w(Connections)11 b Fg(represen)o(ting)h(\\p)q(orts")e(on)g(whic)o
(h)h(clien)o(ts)905 2255 y(can)j(connect)117 2330 y(OUT)108
b Fk(a)o(rra)o(y)p 416 2330 14 2 v 15 w(of)p 468 2330
V 16 w(requests)272 b Ff(MPI)p 982 2330 13 2 v 15 w(Request)p
Fg(s)15 b(for)f(w)o(aiting/testing)166 2454 y Fs(The)h(next)h(routine)f
(is)h(called)h(b)o(y)e(the)g(clien)o(t)i(in)f(order)f(to)f(mak)o(e)h
(con)o(tact)f(with)i(the)f(serv)o(er.)1967 46 y Fi(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(1.4.)34 b(SIMPLE)16 b(INTERF)-5
b(A)o(CE)1191 b Fs(23)75 45 y Fk(MPI)p 160 45 14 2 v
16 w(ICONT)l(A)o(CT\(comm,)13 b(name,)h(connection,)j(request\))117
122 y Fg(IN)155 b Fk(comm)470 b Fg(clien)o(t's)14 b(comm)o(unicator)117
197 y(IN)155 b Fk(name)485 b Fg(w)o(ell-kno)o(wn)9 b(name)g(b)o(y)g
(whic)o(h)h(the)h(serv)o(er)g(can)f(b)q(e)h(con)o(tacted)905
254 y(\(string\))117 329 y(OUT)108 b Fk(connection)385
b Ff(MPI)p 982 329 13 2 v 15 w(Connection)15 b Fg(for)e(the)i(serv)o
(er)117 404 y(OUT)108 b Fk(request)452 b Fg(request)13
b(that)f(is)f(satis\014ed)h(when)g(a)f(serv)o(er)i(accepts)g(the)f
(con-)905 461 y(nection)166 585 y Fs(The)f(ab)q(o)o(v)o(e)f(are)h(b)q
(oth)g(collectiv)o(e,)i(non-blo)q(c)o(king)g(calls,)f(to)e(allo)o(w)h
(eac)o(h)g(collection)i(of)d(pro)q(cesses)i(to)75 642
y(o)o(v)o(erlap)i(computation)g(with)h(the)g(p)q(ossibly)g
(time-consuming)h(task)e(of)g(establishing)i(the)e(connection.)166
781 y Fh(Discussion:)42 b Fg(Building)14 b(in)i(a)f(certain)i(lev)o(el)
e(of)g(securit)o(y)i(in)o(to)e(the)h(clien)o(t-serv)o(er)i(connection)e
(pro)q(cess)75 837 y(could)d(b)q(e)g(done)g(in)f(the)i(follo)o(wing)c
(w)o(a)o(y)m(.)16 b(An)d(extra)g(argumen)o(t)f(to)h Ff(MPI)p
1211 837 V 14 w(IA)o(CCEPT)d Fg(w)o(ould)i(consist)i(of)e(the)h(name)75
894 y(of)j(a)h(function)f(to)h(b)q(e)g(called)g(to)g(pro)o(vide)f(v)n
(alidation)f(for)h(the)i(clien)o(t)f(that)f(is)h(attempting)f(to)g
(connect.)29 b(The)75 950 y(clien)o(t,)13 b(in)g(an)g(extra)g(argumen)o
(t)f(on)h(the)h(call)f(to)g Ff(MPI)p 925 950 V 14 w(ICONT)m(A)o(CT)p
Fg(,)e(w)o(ould)h(pro)o(vide)h(a)g(k)o(ey)h(that)f(w)o(as)g(v)n
(alidated)75 1006 y(b)o(y)k(the)g(routine)h(passed)g(to)f
Ff(MPI)p 623 1006 V 14 w(IA)o(CCEPT)p Fg(.)d(If)j(the)h(k)o(ey)f(w)o
(as)g(not)g(v)n(alidated,)f(the)h(request)i(w)o(ould)d(ha)o(v)o(e)h(no)
75 1063 y(e\013ect)f(on)d(the)i(requests)h(supplied)e(to)f
Ff(MPI)p 766 1063 V 15 w(IA)o(CCEPT)p Fg(.)166 1202 y
Fs(It)18 b(is)g(useful)g(if)g(it)g(is)g(not)f(required)i(that)e(the)h
Fk(name)f Fs(argumen)o(t)g(to)g(the)g(ab)q(o)o(v)o(e)g(calls)i(b)q(e)f
(kno)o(wn)75 1259 y(un)o(til)e(execution)g(time.)k(The)c(follo)o(wing)f
(routine)h(pro)o(vides)f(a)g(w)o(a)o(y)f(for)g(the)h(application)i(to)d
(request)h(a)75 1315 y Fk(name)p Fs(,)f(but)i(b)q(e)g(giv)o(en)f(a)g
(di\013eren)o(t)h(one)f(if)h(the)f(system)g(prefers)g(it)g(that)g(w)o
(a)o(y)l(.)75 1466 y Fk(MPI)p 160 1466 14 2 v 16 w(GET)p
264 1466 V 17 w(SERVER)p 448 1466 V 17 w(NAME\(requested)p
790 1466 V 19 w(name,)g(given)p 1037 1466 V 16 w(name\))117
1543 y Fg(IN)155 b Fk(requested)p 499 1543 V 19 w(name)288
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 1618 y(OUT)108 b Fk(given)p
419 1618 V 17 w(name)370 b Fg(name)13 b(supplied)h(b)o(y)g(the)g
(system)166 1743 y Fs(In)23 b(order)f(for)f(comm)o(unication)i(to)e
(tak)o(e)h(place,)i(an)e(in)o(ter-comm)o(unicator)h(m)o(ust)e(b)q(e)i
(created)75 1799 y(connecting)15 b(the)f(clien)o(t)h(with)f(the)f(serv)
o(er.)19 b(The)14 b(follo)o(wing)h(routine)f(serv)o(es)f(this)h(purp)q
(ose.)20 b(It)14 b(is)g(called)75 1856 y(b)o(y)h(b)q(oth)g(the)h(clien)
o(t)g(and)g(the)f(serv)o(er.)75 2007 y Fk(MPI)p 160 2007
V 16 w(REMOTE)p 363 2007 V 17 w(A)l(TT)l(A)o(CH\(oldcomm,)f(num)p
856 2007 V 16 w(connections,)j(a)o(rra)o(y)p 1216 2007
V 15 w(of)p 1268 2007 V 15 w(connections,)g(new)o(comm\))117
2084 y Fg(IN)155 b Fk(oldcomm)413 b Fg(comm)o(unicator)117
2159 y(IN)155 b Fk(num)p 404 2159 V 17 w(connections)268
b Fg(n)o(um)o(b)q(er)13 b(of)h(connections)h(in)e(arra)o(y)h(\(in)o
(t\))117 2234 y(IN)155 b Fk(a)o(rra)o(y)p 416 2234 V
15 w(of)p 468 2234 V 16 w(connections)205 b Fg(the)16
b Ff(MPI)p 1055 2234 13 2 v 14 w(Connection)p Fg(s)g(represen)o(ting)h
(the)e(pro)q(cesses)j(to)c(b)q(e)905 2291 y(attac)o(hed)h(to)117
2366 y(IN)155 b Fk(new)o(comm)397 b Fg(new)15 b(in)o(ter-comm)o
(unicator)c(for)i(the)i(new)f(pro)q(cesses)75 2490 y
Fs(This)20 b(op)q(eration)g(is)g(collectiv)o(e)h(o)o(v)o(er)e
Fk(oldcomm)p Fs(,)g(and)g(returns)h(an)f(in)o(ter-comm)o(unicator.)33
b(One)21 b(can)75 2547 y(think)f(of)f(this)g(op)q(eration)h(as)e(v)o
(ery)h(m)o(uc)o(h)g(lik)o(e)i Fk(MPI)p 1016 2547 14 2
v 15 w(INTERCOMM)p 1305 2547 V 17 w(CREA)l(TE)p Fs(,)f(where)f(the)h
(remote)75 2603 y(pro)q(cesses)c(are)e(represen)o(ted)i(b)o(y)f(an)g
(arra)o(y)f(of)h(requests)g(rather)g(than)g(b)o(y)g(another)g(group.)
-32 46 y Fi(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 Fs(24)933 b Fn(CHAPTER)16 b(1.)29
b(D)o(YNAMIC)15 b(PR)o(OCESSES)166 45 y Fh(Discussion:)g
Fg(One)f(option)e(w)o(ould)g(b)q(e)h(to)g(com)o(bine)f(this)h(call)f
(with)h(the)g(previous)g(ones,)h(but)f(that)g(w)o(ould)75
102 y(require)19 b(that)g(the)g(in)o(ter-comm)o(unicator)d(b)q(eing)i
(constructed)j(b)q(e)e(in)f(an)g(unde\014ned)i(state)f(b)q(et)o(w)o
(een)h(the)f(re-)75 158 y(quest)h(and)f(the)h(time)f(that)g(the)h
(requests)h(w)o(ere)g(satis\014ed.)35 b(Still)18 b(another)i(option)e
(w)o(ould)h(b)q(e)h(to)f(ha)o(v)o(e)g(the)75 214 y(in)o(ter-comm)o
(unicator)e(returned)k(as)e(part)g(of)g(the)h Ff(status)f
Fg(ob)r(ject)i(on)e(the)h Ff(MPI)p 1376 214 13 2 v 14
w(W)m(AIT)p Fg(.)e(W)m(e)h(ha)o(v)o(e)g(c)o(hosen)h(to)75
271 y(mak)o(e)13 b(separate)k(the)e(pro)q(cess)i(of)d(constructing)i
(the)g(in)o(ter-comm)o(unicator)c(after)k(the)f Ff(MPI)p
1547 271 V 15 w(W)m(AIT)p Fg(s)f(ha)o(v)o(e)h(b)q(een)75
327 y(completed.)166 460 y Fs(The)j(sequence)g(of)f(ev)o(en)o(ts)g(for)
g(a)g(sequen)o(tial)i(clien)o(t)g(con)o(tacting)e(a)g(parallel)i(serv)o
(er)e(migh)o(t)h(lo)q(ok)75 510 y(lik)o(e)e(this:)337
594 y Fe(Client)783 b(Server)337 644 y(------)g(------)75
694 y(MPI_Icontact\(serv)o(er_na)o(me,co)o(nn,re)o(quest)o(\))84
b(MPI_Iaccept\(myname,)o(num,c)o(onns,)o(requ)o(ests\))75
743 y(MPI_Wait\(request,)o(statu)o(s\))389 b(MPI_Waitsome\(num,re)o
(quest)o(s,num)o(read)o(y,)1208 793 y(which,statuses\))75
843 y(MPI_Remote_attach)o(\(comm)o(,1,co)o(nn,ne)o(wcomm)o(\))84
b(MPI_Remote_attach\(c)o(omm,1)o(,conn)o(s[wh)o(ich],)1448
893 y(newcomm\))75 943 y(\()22 b(MPI)f(communication)e(in)i(newcomm)g
(\))217 b(\()22 b(MPI)f(communication)e(in)j(newcomm)e(\))75
992 y(MPI_Comm_free\(new)o(comm\))432 b(MPI_Comm_free\(newco)o(mm\))75
1042 y(MPI_Finalize\(\))607 b(\(process)20 b(other)h(requests,)f(loop)h
(back)1056 1092 y(to)g(accept)g(again\))75 1142 y(\(exit\))166
1233 y Fs(Just)g(as)f(MPI)g(allo)o(ws)h(a)f(non)o(blo)q(c)o(king)i
(send)f(to)f(b)q(e)i(matc)o(hed)e(with)h(a)f(blo)q(c)o(king)i(receiv)o
(e)g(and)75 1289 y(vice)16 b(v)o(ersa,)e(the)h(ab)q(o)o(v)o(e)g
(non-blo)q(c)o(king)i(op)q(erations)e(ma)o(y)f(b)q(e)i(matc)o(hed)f
(with)g(their)h(simpli\014ed)h(forms,)75 1346 y Fk(MPI)p
160 1346 14 2 v 16 w(CLIENT)p 333 1346 V 16 w(CONNECT)f
Fs(and)f Fk(MPI)p 748 1346 V 16 w(SERVER)p 931 1346 V
18 w(CONNECT)p Fs(.)75 1488 y Fp(1.5)59 b(Examples)75
1590 y Fs(These)17 b(Examples)h(are)e(no)h(longer)g(v)m(alid.)27
b(I)17 b(am)g(w)o(orking)f(on)h(con)o(v)o(erting)g(them)g(to)f(matc)o
(h)h(the)g(new)75 1646 y(v)o(ersion)e(of)g(the)g(prop)q(osal.)21
b({)14 b(RL)75 1766 y Fk(Manager-w)o(o)o(rk)o(er)f(example.)75
1857 y Fj(/*)24 b(manager)e(*/)75 1913 y(#include)h("mpi.h")75
2026 y(main\(int)g(argc,)g(char)g(*argv[]\))75 2083 y({)123
2139 y(int)g(n;)123 2195 y(MPI_Resource)f(resources[MAXPROC];)123
2252 y(MPI_Process)g(processes[MAXPROC];)123 2308 y(MPI_Comm)g
(my_children,)h(my_family;)123 2365 y(Resource_Description)e(descrip;)
123 2421 y(MPI_Status)h(status;)123 2478 y(MPI_Request)g(*request;)123
2591 y(MPI_Init\(&argc,)g(&argv\);)123 2647 y(...)h(/*)h(set)f(up)h
(resource)f(description)f(here.)h(It)h(includes)290 2704
y(a)f(hard)h(or)f(soft)h(number)f(of)g(resources)47 b(*/)1967
46 y Fi(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(1.5.)29 b(EXAMPLES)1398 b Fs(25)123
45 y Fj(MPI_Iallocate\(descrip,)21 b(resources,)h(request\);)123
102 y(MPI_Wait\(request,&status)o(\);)123 158 y(n)h(=)h(<extract)f
(number)g(of)h(successes)e(from)i(status>)123 214 y
(MPI_Exec\("worker",)d(NULL,)i(resources,)g(processes\);)123
271 y(/*)g(could)g(check)h(for)f(errors)g(here.)g(Assume)g(all)h(n)g
(succeed)e(*/)123 384 y(MPI_Attach\(MPI_COMM_SELF)o(,)f(0,)j
(processes,)e(n,)i(&my_children\);)123 440 y(/*)147 497
y(*)f(parallel)g(code)g(here.)h(the)f(intercommunicator)f
("my_children")147 553 y(*)h(can)h(be)f(used)h(to)f(communicate)g(with)
g(the)g(spawned)g(processes)147 610 y(*/)123 723 y(MPI_Finalize\(\);)75
779 y(})75 892 y(/*)h(worker)f(*/)75 948 y(main\(int)g(argc,)g(char)g
(*argv[]\))75 1005 y({)123 1118 y(MPI_Init\(&argc,)f(&argv\);)123
1174 y(if)h(\(MPI_COMM_PARENT)f(==)i(MPI_COMM_NULL\))e({)194
1231 y(error\("Where's)g(my)i(mommy?"\);)194 1287 y(MPI_Abort\(\);)123
1344 y(})123 1400 y(/*)f(parallel)g(code)g(here.)h(MPI_COMM_PARENT)d
(is)j(an)g(intercommunicator)147 1456 y(*)f(that)h(allows)f(all)g
(resources)g(to)g(talk)h(to)f(their)g(parent)g(\(in)h(this)f(case,)147
1513 y(*)g(the)h(single)f(manager)g(process)g(that)g(spawned)g(them\).)
147 1569 y(*/)123 1682 y(MPI_Finalize\(\);)75 1739 y(})75
1859 y Fk(T)l(ask)12 b(fa)o(rm)e(example.)45 b Fs(The)12
b(nice)h(thing)g(here)f(is)g(that)f(y)o(ou)h(need)h(allo)q(cate)f
(resources)g(only)g(once.)19 b(Then)75 1915 y(y)o(ou)c(can)g(reuse)g
(them.)20 b(It)15 b(also)g(sho)o(ws)f(that)g(y)o(ou)h(can)g(in)o
(teract)g(with)g(pro)q(cesses)g(without)g(using)h(MPI)75
1972 y(to)f(comm)o(unicate.)75 2078 y Fj(/*)24 b(manager)e(*/)75
2134 y(#include)h("mpi.h")75 2247 y(main\(int)g(argc,)g(char)g
(*argv[]\))75 2304 y({)123 2360 y(int)g(i,)h(n,)f(nthings_done;)123
2417 y(MPI_Resource)f(resources[20];)123 2473 y(MPI_Process)g
(processes[20];)123 2530 y(MPI_Request)g(*request[20];)123
2586 y(Thingtodo)g(tbd[NTHINGSTODO];)123 2643 y(MPI_Status)g(status,)h
(statuses[20];)123 2699 y(char)g(**args;)-32 46 y Fi(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 Fs(26)933 b Fn(CHAPTER)16 b(1.)29
b(D)o(YNAMIC)15 b(PR)o(OCESSES)123 45 y Fj(Resource_Description)21
b(descrip;)123 158 y(MPI_Init\(&argc,)h(&argv\);)123
214 y(...)h(/*)h(set)f(up)h(resource)f(description)f(here.)h(For)h
(this)f(example,)290 271 y(assume)g(it)g(is)h(a)g(hard)f(request,)g(so)
g(we)h(will)f(get)h(20)f(or)h(0)g(resources)e(*/)123
327 y(MPI_Iallocate\(descrip,)f(resources,)h(&request\);)123
384 y(MPI_Wait\(request\);)123 497 y(/*)h(set)h(up)f(tbd)h(array)f
(with)g(everything)g(that)g(needs)g(to)h(be)f(done)h(*/)123
553 y(/*)f(assume)g(NTHINGSTODO>20)f(*/)123 666 y(for)h(\(i)h(=)f(0;)h
(i)g(<)g(20;)f(i++\))g({)170 723 y(my_set_args\(tbd[i],)f(&args\);)170
779 y(MPI_Exec\("cow",)g(args,)h(&resource[i],)g(&processes[i]\);)170
835 y(MPI_Notify_when_done\(&process)o([i],)e(1,)i(&request[i]\);)123
892 y(})123 948 y(nthings_done)f(=)i(20;)123 1061 y(/*)f(at)h(this)f
(point)g(we)h(have)f(20)h(processes)f(running.)f(wait)i(for)194
1118 y(a)g(process)f(to)h(finish)f(and)g(start)g(a)h(new)f(one)h(in)f
(its)h(place)194 1174 y(until)f(we've)h(exhausted)e(the)i(list)f(of)h
(things)f(to)g(do)147 1231 y(*/)123 1344 y(while)g(\(nthings_done)f(<)i
(NTHINGSTODO\))e({)170 1400 y(my_set_args\(tbd[nthings_done])o(,)f
(&args\);)170 1456 y(MPI_Waitany\(20,)h(request,)h(&n,)g(status\);)170
1513 y(MPI_Exec\("worker",)f(args,)h(&resource[n],)f(&processes[n]\);)
170 1569 y(MPI_Notify_when_done\(&process)o([n],)f(1,)i(&request[n]\);)
170 1626 y(nthings_done++;)123 1682 y(})123 1795 y(/*)g(no)h(more)f
(things)g(to)h(do,)f(but)h(we've)f(got)g(20)h(processes)f(still)g
(running)g(*/)123 1852 y(MPI_Waitall\(20,)f(request,)g(statuses\);)123
1908 y(MPI_Finalize\(\);)75 1965 y(})75 2085 y Fk(Another)c(task)f(fa)o
(rm)e(example,)h(in)h(old)g(syntax.)46 b Fs(It)16 b(alw)o(a)o(ys)g(k)o
(eeps)h(a)f(request)h(for)f(ten)h(resources)f(out-)75
2141 y(standing,)k(but)g(starts)e(jobs)h(as)g(so)q(on)h(as)f(p)q
(ossible.)34 b(T)l(o)19 b(a)o(v)o(oid)g(spin-w)o(aits)h(on)g(the)f
(allo)q(cation)i(and)75 2198 y(running)h(of)d(jobs,)j(it)e(uses)h
Fk(MPI)p 658 2198 14 2 v 16 w(W)l(AITSOME)g Fs(on)f(an)g(arra)o(y)f(of)
h(requests)h(that)e(includes)k(b)q(oth)d(al-)75 2254
y(lo)q(cation)g(requests)f(and)h(started)e(jobs.)32 b(The)19
b(index)i Fj(alloc)p 1155 2254 15 2 v 16 w(top)e Fs(giv)o(es)g(the)g(n)
o(um)o(b)q(er)h(of)f(allo)q(cation)75 2310 y(requests)c(curren)o(tly)h
(activ)o(e;)e Fj(r)p 616 2310 V 17 w(top)h Fs(giv)o(es)g(the)g(total)g
(n)o(um)o(b)q(er)g(of)g(activ)o(e)g(requests)g(\(b)q(oth)g(allo)q
(cations)75 2367 y(and)g(started)g(pro)q(cesses\).)166
2423 y(The)k(programs)f(in)i(this)f(example)h(are)f Fl(not)f
Fs(MPI)h(jobs;)h(MPI)f(is)h(simply)g(b)q(eing)g(used)g(to)e(start)75
2480 y(and)f(manage)g(the)g(programs.)23 b(F)l(or)17
b(simplicit)o(y)l(,)i(w)o(e)e(ha)o(v)o(e)f(not)h(included)i(an)o(y)e
(co)q(de)h(to)e(decide)i(when)75 2536 y(the)g(program)f(is)i(done)f(or)
g(to)g(describ)q(e)h(the)g(program)e(to)g(b)q(e)i(run)f(and)h(its)f
(argumen)o(ts.)28 b(Note)18 b(that)75 2593 y Fk(MPI)p
160 2593 14 2 v 16 w(CANCEL)d Fs(can)h(b)q(e)g(used)f(to)g(cancel)h(an)
o(y)f(unneeded)i(allo)q(cation)f(requests.)75 2699 y
Fj(#include)23 b("mpi.h")1967 46 y Fi(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(1.5.)34 b(EXAMPLES)1393 b Fs(27)75
45 y Fj(main\()23 b(int)h(argc,)f(char)g(**argv)g(\))75
102 y({)75 158 y(MPI_Request)f(r[20];)75 214 y(MPI_Status)46
b(s[20];)75 271 y(int)214 b(idx[20],)23 b(nout;)75 327
y(int)214 b(alloc_top,)23 b(r_top;)75 384 y(int)214 b(rc;)75
553 y(MPI_Iallocate\()22 b(10,)h(\(char)h(*\)0,)f(\(char)g(**\)0,)g
("*",)h(\(char)f(**\)0,)g(MPI_HARD,)g(r)g(\);)75 610
y(alloc_top)g(=)g(10;)75 666 y(r_top)119 b(=)23 b(10;)75
723 y(while)g(\(!done\))g({)170 779 y(MPI_Waitsome\()g(r_top,)g(r,)g
(&nout,)g(idx,)h(s)f(\);)170 835 y(for)h(\(i=0;)f(i<nout;)g(i++\))g({)
266 892 y(if)g(\(idx[i])g(<)h(alloc_top\))f({)361 948
y(/*)h(Processor)f(is)g(ready.)47 b(Start)23 b(program)g(*/)361
1005 y(j)h(=)g(idx[i];)361 1061 y(MPI_Set_exec\()e(r[j],)i
(program_name)e(\);)361 1118 y(MPI_Set_args\()g(r[j],)i(program_args)e
(\);)361 1174 y(MPI_Start\()h(r[j])g(\);)361 1231 y(r[r_top])g(=)h
(r[j];)361 1287 y(r[j])g(=)f(r[alloc_top];)361 1344 y(r[alloc_top])g(=)
g(MPI_REQUEST_NULL;)361 1400 y(alloc_top--;)361 1456
y(})266 1513 y(else)g({)361 1569 y(/*)h(Program)f(has)g(finished)g(*/)
361 1626 y(j)h(=)g(idx[i];)361 1682 y(MPI_Get_return_code\()d(&s[i],)j
(&rc)f(\);)361 1739 y(/*)h(Make)f(use)h(of)f(return)g(code)h(...)f(*/)
361 1795 y(/*)h(Note)f(that)h(r[j])f(is)g(MPI_REQUEST_NULL)f(already)
433 1852 y(\(the)h(wait)h(does)f(it\))g(*/)361 1908 y(})266
1965 y(})170 2021 y(/*)h(Repack)f(request)g(array)g(and)h(issue)f
(additional)f(allocations)h(*/)170 2077 y(j)h(=)g(alloc_top;)170
2134 y(for)g(\(i=alloc_top;)e(i<r_top;)h(i++\))g({)266
2190 y(if)g(\(r[i])h(!=)f(MPI_REQUEST_NULL\))361 2247
y(r[j++])g(=)h(r[i];)266 2303 y(})170 2360 y(r_top)g(=)f(j;)170
2416 y(MPI_Iallocate\()f(20)i(-)g(r_top,)f(\(char)g(*\)0,)g(\(char)g
(**\)0,)h("*",)f(\(char)g(**\)0,)528 2473 y(MPI_HARD,)g(r)h(+)f
(r_top\);)170 2529 y(})75 2586 y(MPI_Finalize\(\);)75
2642 y(return)g(0;)75 2698 y(})-32 46 y Fi(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 Fs(28)933 b Fn(CHAPTER)16 b(1.)29
b(D)o(YNAMIC)15 b(PR)o(OCESSES)75 45 y Fk(Client-server)f(example.)44
b Fs(This)14 b(is)f(a)f(simple)j(example;)f(the)f(serv)o(er)f(accepts)h
(only)g(a)g(single)h(connection)75 102 y(at)h(a)f(time)i(and)f(serv)o
(es)g(that)g(connection)h(un)o(til)g(the)g(clien)o(t)g(requests)f(to)g
(b)q(e)h(disconnected.)166 158 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 214 y(receiv)o(es)16
b(a)f(message)g(with)g(tag)f Fj(1)p Fs(.)20 b(A)15 b(message)g(with)h
(tag)e Fj(0)h Fs(tells)h(the)g(serv)o(er)e(to)h(exit.)75
306 y Fj(#include)23 b("mpi.h")75 363 y(main\()g(int)h(argc,)f(char)g
(**argv)g(\))75 419 y({)75 476 y(MPI_Comm)g(client;)75
532 y(MPI_Status)f(status;)75 589 y(double)h(buf[MAX_DATA];)75
645 y(int)95 b(again;)75 758 y(MPI_Init\()23 b(&argc,)g(&argv)g(\);)75
814 y(while)g(\(1\))h({)170 871 y(MPI_Server_connect\()e
(MPI_COMM_WORLD,)g("cave:1234",)g(&client)h(\);)170 927
y(again)h(=)f(1;)170 984 y(while)h(\(again\))f({)266
1040 y(MPI_Recv\()g(buf,)g(MAX_DATA,)f(MPI_DOUBLE,)h(0,)g(MPI_ANY_TAG,)
505 1097 y(client,)f(&status)h(\);)266 1153 y(switch)g(\(status.tag\))f
({)361 1210 y(case)i(0:)f(MPI_Comm_free\()f(&client)h(\);)552
1266 y(MPI_Finalize\(\);)552 1323 y(return)g(0;)361 1379
y(case)h(1:)f(MPI_Comm_free\()f(&client)h(\);)552 1435
y(again)g(=)h(0;)552 1492 y(break;)361 1548 y(case)g(2:)f(/*)h(do)f
(something)g(*/)361 1605 y(...)361 1661 y(default:)552
1718 y(MPI_Abort\()g(MPI_COMM_WORLD,)f("Unexpected)g(message)h(type")g
(\);)361 1774 y(})266 1831 y(})170 1887 y(})75 1944 y(})166
2035 y Fs(Here)15 b(is)h(the)f(clien)o(t.)75 2139 y Fj(#include)23
b("mpi.h")75 2195 y(main\()g(int)h(argc,)f(char)g(**argv)g(\))75
2252 y({)75 2308 y(MPI_Comm)g(server;)75 2365 y(double)g
(buf[MAX_DATA];)75 2478 y(MPI_Init\()g(&argc,)g(&argv)g(\);)75
2534 y(MPI_Client_connect\()e(MPI_COMM_WORLD,)h("cave:1234",)g(&server)
h(\);)75 2591 y(while)g(\(!done\))g({)170 2647 y(tag)h(=)g(2;)f(/*)h
(Action)f(to)g(perform)g(*/)170 2704 y(MPI_Send\()g(buf,)g(n,)h
(MPI_DOUBLE,)e(0,)i(tag,)f(server)g(\);)1967 46 y Fi(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 -100 a Fn(1.5.)34 b(EXAMPLES)1393 b Fs(29)170
45 y Fj(/*)24 b(etc)f(*/)170 102 y(})75 158 y(MPI_Send\()g(buf,)g(0,)h
(MPI_DOUBLE,)e(0,)h(1,)h(server)f(\);)75 214 y(MPI_Comm_free\()f
(&client)h(\);)75 271 y(MPI_Finalize\(\);)75 327 y(})166
434 y Fs(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 Fk(MPI)p
1675 434 14 2 v 16 w(IA)o(CCEPT)75 490 y Fs(instead.)j(The)c(clien)o(t)
g(need)g(not)f(b)q(e)h(c)o(hanged.)-32 46 y Fi(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: 30 32
30 31 bop 75 377 a Fq(Biblio)q(graph)m(y)75 600 y Fs([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 Fl(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 Fs(.)20 b(MIT)15 b(Press,)g(1994.)75
806 y([2])22 b(T)l(om)d(Green)i(and)f(Je\013)g(Sn)o(yder.)35
b(DQS,)20 b(a)g(distributed)i(queuing)f(system.)35 b(T)l(ec)o(hnical)22
b(Rep)q(ort)146 863 y(FSU-SCRI-92-115,)15 b(Florida)g(State)g(Univ)o
(ersit)o(y)l(,)g(August)h(1992.)75 957 y([3])22 b(An)o(thon)o(y)f
(Skjellum,)j(Nathan)d(E.)g(Doss,)h(Kishore)g(Visw)o(anathan,)h(Aswini)g
(Cho)o(wdappa,)f(and)146 1013 y(Purushotham)11 b(V.)g(Bangalore.)j
(Extending)f(the)f(message)f(passing)h(in)o(terface)g(\(MPI\).)i
(Mississippi)146 1070 y(State)g(Univ)o(ersit)o(y)l(,)i(1994.)952
2828 y(30)p eop
%%Trailer
end
userdict /end-hook known{end-hook}if
%%EOF