Subject: a proposal for MPI-IO (don't worry -- this is for MPI-II)

From: [email-masked] (Marc Snir)
Date: Sat, 15 Jan 94 09:59:11 -0500

-:) -:) -:) -:) -:)

%!PS-Adobe-2.0
%%Creator: dvips 5.47 (RS/6000 1.0) Copyright 1986-91 Radical Eye Software
%%Title: mpi-io-v1.dvi
%%Pages: 28 1
%%BoundingBox: 0 0 612 792
%%EndComments
%%BeginProcSet: tex.pro
/TeXDict 250 dict def TeXDict begin /N /def load def /B{bind def}N /S /exch
load def /X{S N}B /TR /translate load N /isls false N /vsize 10 N /@rigin{
isls{[0 1 -1 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale
Resolution VResolution vsize neg mul TR matrix currentmatrix dup dup 4 get
round 4 exch put dup dup 5 get round 5 exch put setmatrix}N /@letter{/vsize 10
N}B /@landscape{/isls true N /vsize -1 N}B /@a4{/vsize 10.6929133858 N}B /@a3{
/vsize 15.5531 N}B /@ledger{/vsize 16 N}B /@legal{/vsize 13 N}B /@manualfeed{
statusdict /manualfeed true put}B /@copies{/#copies X}B /FMat[1 0 0 -1 0 0]N
/FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{/nn 8 dict N nn begin
/FontType 3 N /FontMatrix fntrx N /FontBBox FBB N string /base X array
/BitMaps X /BuildChar{CharBuilder} N /Encoding IE N end dup{/foo setfont}2
array copy cvx N load 0 nn put /ctr 0 N[}B /df{/sf 1 N /fntrx FMat N df-tail}
B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0]N df-tail}B /E{pop nn dup definefont
setfont}B /ch-width{ch-data dup length 5 sub get} B /ch-height{ch-data dup
length 4 sub get} B /ch-xoff{128 ch-data dup length 3 sub get sub} B /ch-yoff{
ch-data dup length 2 sub get 127 sub} B /ch-dx{ch-data dup length 1 sub get} B
/ch-image{ch-data dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0
N /rw 0 N /rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S
dup /base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx 0
ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff setcachedevice
ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff .1 add]{ch-image}
imagemask restore}B /D{/cc X dup type /stringtype ne{]}if nn /base get cc ctr
put nn /BitMaps get S ctr S sf 1 ne{dup dup length 1 sub dup 2 index S get sf
div put}if put /ctr ctr 1 add N}B /I{cc 1 add D}B /bop{userdict /bop-hook
known{bop-hook}if /SI save N @rigin 0 0 moveto}N /eop{clear SI restore
showpage userdict /eop-hook known{eop-hook}if}N /@start{userdict /start-hook
known{start-hook}if /VResolution X /Resolution X 1000 div /DVImag X /IE 256
array N 0 1 255{IE S 1 string dup 0 3 index put cvn put} for}N /p /show load N
/RMat[1 0 0 -1 0 0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X
/rulex X V}B /V statusdict begin /product where{pop product dup length 7 ge{0
7 getinterval(Display)eq}{pop false}ifelse}{false}ifelse end{{gsave TR -.1 -.1
TR 1 1 scale rulex ruley false RMat{BDot}imagemask grestore}}{{gsave TR -.1
-.1 TR rulex ruley scale 1 1 false RMat{BDot}imagemask grestore}}ifelse B /a{
moveto}B /delta 0 N /tail{dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{
S p tail}B /c{-4 M}B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B
/j{3 M}B /k{4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w
}B /q{p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p
a}B /bos{/SS save N}B /eos{clear SS restore}B end
%%EndProcSet
%%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 false N /BBcalc false N
/p 3 def}B /@scaleunit 100 N /@hscale{@scaleunit div /hsc X}B /@vscale{
@scaleunit div /vsc X}B /@hsize{/hs X /CLIP true N}B /@vsize{/vs X /CLIP true
N}B /@hoffset{/ho X}B /@voffset{/vo X}B /@angle{/ang X}B /@rwi{10 div /rwi X}
B /@llx{/llx X}B /@lly{/lly X}B /@urx{/urx X}B /@ury{/ury X /BBcalc true N}B
/magscale true def end /@MacSetUp{userdict /md known{userdict /md get type
/dicttype eq{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}N /psfts{S 65536 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}N /@setspecial{CLIP{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 BBcalc{rwi urx llx sub div dup scale llx neg lly neg
TR}if /showpage{}N /erasepage{}N /copypage{}N newpath}N /@endspecial{grestore
clear 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 1000 300 300 @start /Fa 3 50 df<00600000600000600000600000600000
6000006000006000006000006000FFFFF0FFFFF000600000600000600000600000600000600000
600000600000600000600014167E9119>43 D<0FC01FE0387070386018E01CE01CE01CE01CE01C
E01CE01CE01CE01C6018703838701FE00FC00E137F9211>48 D<06001E00FE00EE000E000E000E
000E000E000E000E000E000E000E000E000E000E00FFE0FFE00B137D9211>I
E /Fb 1 2 df<60F0F06004047E880A>1 D E /Fc 10 119 df<60F0F07030303060E040040A7E
830A>59 D<07FFE007FFF801C03801C01C01C01C01C01C0380380380700381E003FFC007FFE007
00700700700700380E00700E00700E00E00E03C0FFFF80FFFE0016147F9319>66
D<07FC7FC007FC7FC001C01C0001C01C0001C01C0001C01C0003803800038038000380380003FF
F80007FFF0000700700007007000070070000E00E0000E00E0000E00E0000E00E000FF8FF800FF
8FF8001A147F931B>72 D<3E003E000C000C000C000C00180019E01FF01E303830383030303030
7060606660C660CCC0FCC0700F147E9313>104 D<03000380030000000000000000001C003E00
6600C600CC000C000C0018001980318033003F001C00091480930C>I<00600070006000000000
00000000038007C00CE018C018C000C000C0018001800180018003000300030003006600EE00FC
0078000C1A81930E>I<387C007CFE006F8600CF0600CE06000E06000C06001C0C00180CC01818
C0181980301F80300E00120D808C15>110 D<38E07DF06F30CE70CE300C000C00180018001800
1800300030000C0D808C0F>114 D<07001F8019C0318030001E001F0003804180E180C300FE00
7C000A0D7E8C10>I<1C083E186618C618CC180C180C181830183018201C600FC007800D0D808C
11>118 D E /Fd 27 123 df<70F8F8F87005057C840D>58 D<70F8FCFC7C0C0C0C1818383060
40060E7C840D>I<000001C00000078000001E00000078000001E00000078000000E0000003C00
0000F0000003C000000F0000003C000000F0000000F00000003C0000000F00000003C0000000F0
0000003C0000000E0000000780000001E0000000780000001E0000000780000001C01A1A7C9723
>I<00030003000700060006000E000C000C001C0018001800380030003000700060006000E000
C000C001C00180018001800380030003000700060006000E000C000C001C001800180038003000
3000700060006000E000C000C000102D7DA117>I<E0000000780000001E0000000780000001E0
000000780000001C0000000F00000003C0000000F00000003C0000000F00000003C0000003C000
000F0000003C000000F0000003C000000F0000001C00000078000001E00000078000001E000000
78000000E00000001A1A7C9723>I<00FFFFE000FFFFF8000F007C000F003C000F003E001E003E
001E003E001E003E001E003E003C007C003C007C003C00F8003C01F0007807E0007FFF80007FFF
C0007803E000F001F000F001F000F000F000F000F001E001F001E001F001E001F001E001E003C0
03E003C007C003C00F8003C01F007FFFFE00FFFFF0001F1F7E9E22>66 D<00FFF9FFF000FFF9FF
F0000F001E00000F001E00000F001E00001E003C00001E003C00001E003C00001E003C00003C00
7800003C007800003C007800003C007800007800F000007FFFF000007FFFF000007800F00000F0
01E00000F001E00000F001E00000F001E00001E003C00001E003C00001E003C00001E003C00003
C007800003C007800003C007800003C00780007FFCFFF800FFF8FFF800241F7E9E26>72
D<00FFFC01FFF8000F00000F00000F00001E00001E00001E00001E00003C00003C00003C00003C
0000780000780000780000780000F00000F00000F00000F00001E00001E00001E00001E00003C0
0003C00003C00003C000FFFC00FFFC00161F7F9E14>I<FFF803FFFFF007FF0F0000F00F0000E0
0F0000C00F8001800780018007800300078006000780060007800C0007800C0007801800078030
000780300007C0600003C0600003C0C00003C1800003C1800003C3000003C3000003C6000003CC
000003EC000001F8000001F8000001F0000001E0000001E0000001C0000001C0000020207E9E1B
>86 D<00F18003FDC0078F800E07801C07803C07803C0700780700780700780700F00E00F00E00
F00E00F00E18F01C30F03C30707C3078FC603FCFC00F078015147E9318>97
D<07803F803F000700070007000E000E000E000E001C001C001CF01FFC3F1E3E0E3C0F380F700F
700F700F700FE01EE01EE01EE03CE03CE038607071E03FC01F0010207E9F14>I<007C01FE0787
0F0F1E0F1C0E3C04780078007800F000F000F000F000F00070027007381E1FF80FE010147E9314
>I<007C01FE07870E031E033C033C06781C7FF87FC0F000F000F000F000700070027007381E1F
F807E010147E9315>101 D<01E0000FE0000FC00001C00001C00001C000038000038000038000
038000070000070000071F00077F800EE1C00F81C00F00E00E00E01E01C01C01C01C01C01C01C0
38038038038038038038070670070C700E0C700E18700638E007F06003C017207E9F1A>104
D<007000F000F00060000000000000000000000000000007001F8039C031C061C061C0C3800380
0380070007000E000E000E181C301C301C601CE00FC007000D1F7F9E10>I<0000C00001E00001
E00001C0000000000000000000000000000000000000000000003E00007F0000C3800183800303
80030380060700000700000700000700000E00000E00000E00000E00001C00001C00001C00001C
0000380000380000380000380000700000700030700078E000F3C0007F80003E00001328819E13
>I<01E0000FE0000FC00001C00001C00001C00003800003800003800003800007000007000007
01C00707E00E0C300E18700E30F00E60F01CC0E01F80001F80001FE00038F00038380038380038
1C307038607038607038407018C0E01F80600F0014207E9F18>I<03C01FC01F80038003800380
07000700070007000E000E000E000E001C001C001C001C00380038003800380070007000700071
80E300E300E300E6007E003C000A207E9F0E>I<0F03E03E001F8FF0FF0031DC39C38061F03B03
8061E01E01C061C01C01C0C3C03C03800380380380038038038003803803800700700700070070
070007007007000700700E0C0E00E00E180E00E01C180E00E01C300E00E00C701C01C00FE00C00
C0078026147F9328>I<0F07C0001F8FE00031D8700061F0380061E0380061C03800C3C0700003
80700003807000038070000700E0000700E0000700E0000701C1800E01C3000E0383000E038600
0E018E001C01FC000C00F00019147F931B>I<007C0001FF000383800F01C01E01C01C01E03C01
E07801E07801E07801E0F003C0F003C0F003C0F00780F00700700F00701E003838001FF00007C0
0013147E9316>I<03C1E007E7F80C7E3C187C1C18781E18701E30E01E00E01E00E01E00E01E01
C03C01C03C01C03C01C07803C07803C07003C0E003E3C0077F80071E000700000700000E00000E
00000E00000E00001C0000FFC000FFC000171D819317>I<0F0F001F9F8031F1C061E1C061E3C0
61C3C0C3C3800380000380000380000700000700000700000700000E00000E00000E00000E0000
1C00000C000012147F9315>114 D<007C01FE0387070F070F070E0F00078007F803FC01FE001E
000F700FF00EF00EE01C70383FF01FC010147E9315>I<00C000E001C001C001C001C003800380
FFF8FFF807000700070007000E000E000E000E001C001C001C001C1838303830386038E01FC00F
000D1C7F9B10>I<0780C01FC1E038C1F030E0F060E0F061C070C1C06003806003806003806007
00C00700C00700C0070180070180070300070200078E0003FC0000F00014147F9316>118
D<01E06003F0C007FFC00E1F800C0300000600000C0000180000300000600000C0000180000300
000600C00C01801803803F87007FFE0061FC00C0700013147E9315>122
D E /Fe 5 81 df<0018007800F001E003C007800F001F001E003E003C007C007C007800F800F8
00F800F800F800F800F800F800F800F800F800F800F800F800F800F800F800F800F800F800F800
F800F8000D25707E25>56 D<F800F800F800F800F800F800F800F800F800F800F800F800F800F8
00F800F800F800F800F800F800F800F800F80078007C007C003C003E001E001F000F00078003C0
01E000F0007800180D25708025>58 D<007C007C007C007C007C007C007C007C007C007C007C00
7C007C007C007C007C007C007C007C007C007C007C007C007C00F800F800F800F001F001E003E0
03C0078007000E001C003800F000C000F00038001C000E000700078003C003E001E001F000F000
F800F800F8007C007C007C007C007C007C007C007C007C007C007C007C007C007C007C007C007C
007C007C007C007C007C007C007C0E4D798025>60 D<F8F8F8F8F8F8F8F8F8F8F8F8F8F8050E70
8025>62 D<FFFFFFFFE0FFFFFFFFF07800001FF07C000003F03E000000F81F000000380F000000
1C0F8000000C07C000000C03C000000603E000000001F000000000F80000000078000000007C00
0000003E000000001E000000001F000000000F8000000007C000000003C000000003C000000001
800000000380000000030000000006000000000C00000000180000000038000000003000000000
6000000000C0000006018000000C038000000C030000001C06000000380C000000F818000001F8
3800001FF03FFFFFFFF07FFFFFFFF0FFFFFFFFE0272A7E7F2C>80 D E /Ff
1 106 df<E0E0E00000000000E0E0E0E0E0E0E0E0E0E0E0E0E003157E9408>105
D E /Fg 5 22 df<FFFFFFC0FFFFFFC01A027C8B23>0 D<70F8F8F87005057C8D0D>I<07E01FF8
3FFC7FFE7FFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFE7FFE3FFC1FF807E010127D9317>15
D<000000C0000003C000000F0000003C000000F0000003C000000F0000001C00000078000001E0
0000078000001E00000078000000E0000000780000001E0000000780000001E000000078000000
1C0000000F00000003C0000000F00000003C0000000F00000003C0000000C00000000000000000
0000000000000000000000000000000000000000FFFFFFC0FFFFFFC01A247C9C23>20
D<C0000000F00000003C0000000F00000003C0000000F00000003C0000000E0000000780000001
E0000000780000001E0000000780000001C00000078000001E00000078000001E0000007800000
0E0000003C000000F0000003C000000F0000003C000000F0000000C00000000000000000000000
0000000000000000000000000000000000000000FFFFFFC0FFFFFFC01A247C9C23>I
E /Fh 56 123 df<007000F001F003C007800F001E001C003C003800780070007000F000E000E0
00E000E000E000E000E000E000F00070007000780038003C001C001E000F00078003C001F000F0
00700C24799F18>40 D<6000F00078003C001E000F000780038003C001C001E000E000E000F000
70007000700070007000700070007000F000E000E001E001C003C0038007800F001E003C007800
F00060000C247C9F18>I<01C00001C00001C00001C000C1C180F1C780F9CF807FFF001FFC0007
F00007F0001FFC007FFF00F9CF80F1C780C1C18001C00001C00001C00001C00011147D9718>I<
3C7E7F7F7F3F0F0E1E7CF870080C788518>44 D<000300000F80001F80003F0000FE0001FC0003
F00007E0001FC0003F80007E0000FC0000FC00007E00003F80001FC00007E00003F00001FC0000
FE00003F00001F80000F8000030011187D9918>60 D<600000F80000FC00007E00003F80001FC0
0007E00003F00001FC0000FE00003F00001F80001F80003F0000FE0001FC0003F00007E0001FC0
003F80007E0000FC0000F8000060000011187D9918>62 D<00700000F80000F80000D80000D800
01DC0001DC0001DC00018C00038E00038E00038E00038E00030600070700070700070700070700
0FFF800FFF800FFF800E03800E03801C01C01C01C07F07F0FF8FF87F07F0151C7F9B18>65
D<FFFC00FFFF00FFFF801C03C01C01C01C00E01C00E01C00E01C00E01C01E01C01C01C07C01FFF
801FFF001FFFC01C03C01C00E01C00F01C00701C00701C00701C00701C00F01C00E01C03E0FFFF
C0FFFF80FFFE00141C7F9B18>I<01FCE003FEE007FFE00F07E01E03E03C01E07800E07000E070
00E0F00000E00000E00000E00000E00000E00000E00000E00000E00000F000007000E07000E078
00E03C01E01E01C00F07C007FF8003FF0001FC00131C7E9B18>I<7FF800FFFE007FFF001C0F80
1C03C01C03C01C01E01C00E01C00E01C00F01C00701C00701C00701C00701C00701C00701C0070
1C00701C00F01C00E01C00E01C01E01C01C01C03C01C0F807FFF00FFFE007FF800141C7F9B18>
I<FFFFF0FFFFF0FFFFF01C00701C00701C00701C00701C00001C00001C0E001C0E001C0E001FFE
001FFE001FFE001C0E001C0E001C0E001C00001C00001C00381C00381C00381C00381C0038FFFF
F8FFFFF8FFFFF8151C7F9B18>I<FFFFE0FFFFE0FFFFE01C00E01C00E01C00E01C00E01C00001C
00001C1C001C1C001C1C001FFC001FFC001FFC001C1C001C1C001C1C001C00001C00001C00001C
00001C00001C00001C0000FFC000FFC000FFC000131C7E9B18>I<01F9C007FFC00FFFC01F0FC0
1C03C03C03C07801C07001C07001C0F00000E00000E00000E00000E00000E00000E00FF0E01FF0
E00FF0F001C07001C07003C07803C03C03C01C07C01F0FC00FFFC007FDC001F9C0141C7E9B18>
I<7F07F0FF8FF87F07F01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01FFF
C01FFFC01FFFC01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C07F07
F0FF8FF87F07F0151C7F9B18>I<7FFF00FFFF807FFF0001C00001C00001C00001C00001C00001
C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001
C00001C00001C00001C0007FFF00FFFF807FFF00111C7D9B18>I<7F07F0FF87F87F07F01C03C0
1C07801C07001C0F001C1E001C3C001C38001C78001CF0001DF0001DF8001FF8001FBC001F1C00
1E1E001E0E001C0F001C07001C07801C03801C03C01C01C07F03F0FF87F87F03F0151C7F9B18>
75 D<7FE000FFE0007FE0000E00000E00000E00000E00000E00000E00000E00000E00000E0000
0E00000E00000E00000E00000E00000E00000E00000E00000E00700E00700E00700E00700E0070
7FFFF0FFFFF07FFFF0141C7F9B18>I<FC01F8FE03F8FE03F83B06E03B06E03B06E03B06E03B8E
E03B8EE0398CE0398CE039DCE039DCE039DCE038D8E038D8E038F8E03870E03870E03800E03800
E03800E03800E03800E03800E0FE03F8FE03F8FE03F8151C7F9B18>I<7E07F0FF0FF87F07F01D
81C01D81C01D81C01DC1C01CC1C01CC1C01CE1C01CE1C01CE1C01C61C01C71C01C71C01C31C01C
39C01C39C01C39C01C19C01C19C01C1DC01C0DC01C0DC01C0DC07F07C0FF87C07F03C0151C7F9B
18>I<0FF8003FFE007FFF00780F00700700F00780E00380E00380E00380E00380E00380E00380
E00380E00380E00380E00380E00380E00380E00380E00380E00380E00380F00780700700780F00
7FFF003FFE000FF800111C7D9B18>I<FFFE00FFFF80FFFFC01C03C01C01E01C00E01C00701C00
701C00701C00701C00701C00E01C01E01C03C01FFFC01FFF801FFE001C00001C00001C00001C00
001C00001C00001C00001C0000FF8000FF8000FF8000141C7F9B18>I<0FF8003FFE007FFF0078
0F00700700F00780E00380E00380E00380E00380E00380E00380E00380E00380E00380E00380E0
0380E00380E00380E00380E1E380E1E380F0E78070F700787F007FFF003FFE000FFC00001C0000
1E00000E00000F0000070000070011227D9B18>I<7FF800FFFE007FFF001C0F801C03801C03C0
1C01C01C01C01C01C01C03C01C03801C0F801FFF001FFE001FFE001C0F001C07801C03801C0380
1C03801C03801C03801C039C1C039C1C039C7F03FCFF81F87F00F0161C7F9B18>I<07F3801FFF
803FFF807C1F80700780F00380E00380E00380E00000F000007800003F00001FF0000FFE0001FF
00001F800003C00001E00000E00000E06000E0E000E0E001E0F001C0FC07C0FFFF80FFFF00E7FC
00131C7E9B18>I<7FFFF8FFFFF8FFFFF8E07038E07038E07038E0703800700000700000700000
700000700000700000700000700000700000700000700000700000700000700000700000700000
700000700007FF0007FF0007FF00151C7F9B18>I<FF83FEFF83FEFF83FE1C00701C00701C0070
1C00701C00701C00701C00701C00701C00701C00701C00701C00701C00701C00701C00701C0070
1C00701C00701E00F00E00E00F01E007C7C003FF8001FF00007C00171C809B18>I<FF07F8FF07
F8FF07F81C01C01C01C01C01C01C01C00E03800E03800E03800E03800F07800707000707000707
00070700038E00038E00038E00038E00018C0001DC0001DC0001DC0000D80000F80000F8000070
00151C7F9B18>I<FE03F8FE03F8FE03F87000707000707000703800E03800E03800E03800E038
00E038F8E038F8E039DCE039DCE019DCC019DCC019DCC0198CC01D8DC01D8DC01D8DC01D8DC00D
8D800D05800F07800F07800E0380151C7F9B18>I<7F8FE07F9FE07F8FE00E07000F0700070E00
078E00039C0003DC0001F80001F80000F00000F00000700000F00000F80001F80001DC00039E00
038E00070F000707000E07800E03801E03C07F07F0FF8FF87F07F0151C7F9B18>I<FF07F8FF07
F8FF07F81C01C01E03C00E03800F0780070700070700038E00038E0001DC0001DC0001FC0000F8
0000F80000700000700000700000700000700000700000700000700000700001FC0003FE0001FC
00151C7F9B18>I<3FFFE07FFFE07FFFE07001C07003C0700780700700000F00001E00001C0000
3C0000780000700000F00001E00001C00003C0000780000700000F00001E00E01C00E03C00E078
00E07000E0FFFFE0FFFFE0FFFFE0131C7E9B18>I<1FE0003FF8007FFC00783E00300F00000700
00070001FF000FFF003FFF007F0700780700F00700E00700E00700F00F00783F007FFFF03FFBF0
0FE1F014147D9318>97 D<7E0000FE00007E00000E00000E00000E00000E00000E00000E3E000E
FF800FFFC00FE3E00F80F00F00700F00780E00380E00380E00380E00380E00380F00380F00780F
00700F80F00FC3E00FFFC00EFF80067E00151C809B18>I<01FE0007FF001FFF803F07803C0300
780000700000F00000E00000E00000E00000E00000F000007000007801C03C01C03F07C01FFF80
07FF0001FC0012147D9318>I<001F80003F80001F8000038000038000038000038000038003F3
800FFB801FFF803E1F80780F80700780F00780E00380E00380E00380E00380E00380E00780F007
80700780780F803E3F801FFFF00FFBF803E3F0151C7E9B18>I<03F0000FFC001FFE003E1F0078
0780700380F003C0E001C0E001C0FFFFC0FFFFC0FFFFC0F000007000007801C03C01C03F07C01F
FF8007FF0001FC0012147D9318>I<001FC0007FE000FFE001F1E001C0C001C00001C00001C000
7FFFC0FFFFC0FFFFC001C00001C00001C00001C00001C00001C00001C00001C00001C00001C000
01C00001C00001C00001C0007FFF007FFF007FFF00131C7F9B18>I<03F1F007FFF80FFFF81E1F
303C0F003807003807003807003807003807003C0F001E1E001FFC003FF8003BF0003800003C00
001FFF001FFFC03FFFE07801F0F00078E00038E00038E00038F000787800F07E03F03FFFE00FFF
8003FE00151F7F9318>I<7E0000FE00007E00000E00000E00000E00000E00000E00000E3F000E
FF800FFFC00FE1E00F80E00F00E00F00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E
00E00E00E00E00E07FC3FCFFE7FE7FC3FC171C809B18>I<03800007C00007C00007C000038000
0000000000000000000000007FC000FFC0007FC00001C00001C00001C00001C00001C00001C000
01C00001C00001C00001C00001C00001C00001C00001C000FFFF00FFFF80FFFF00111D7C9C18>
I<FE0000FE0000FE00000E00000E00000E00000E00000E00000E3FF00E7FF00E3FF00E07800E0F
000E1E000E3C000E78000EF0000FF8000FFC000F9C000F1E000E0F000E07800E03800E03C0FFC7
F8FFC7F8FFC7F8151C7F9B18>107 D<7FE000FFE0007FE00000E00000E00000E00000E00000E0
0000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E0
0000E00000E00000E00000E0007FFFC0FFFFE07FFFC0131C7E9B18>I<7DF1F000FFFBF8007FFF
FC001F1F1C001E1E1C001E1E1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C001C
1C1C001C1C1C001C1C1C001C1C1C001C1C1C007F1F1F00FFBFBF807F1F1F001914819318>I<7E
3F00FEFF807FFFC00FE1E00F80E00F00E00F00E00E00E00E00E00E00E00E00E00E00E00E00E00E
00E00E00E00E00E00E00E07FC3FCFFE7FE7FC3FC1714809318>I<01F0000FFE001FFF003E0F80
3803807001C07001C0E000E0E000E0E000E0E000E0E000E0F001E07001C07803C03C07803E0F80
1FFF000FFE0001F00013147E9318>I<7E3E00FEFF807FFFC00FE3E00F80F00F00700F00780E00
380E00380E00380E00380E00380F00380F00780F00700F80F00FC3E00FFFC00EFF800E7E000E00
000E00000E00000E00000E00000E00000E00007FC000FFE0007FC000151E809318>I<03F3800F
FB801FFF803E1F80780F80700780F00780E00380E00380E00380E00380E00380E00380F0078070
0780780F803E1F801FFF800FFB8003F38000038000038000038000038000038000038000038000
3FF8003FF8003FF8151E7E9318>I<7F87E0FF9FF87FBFF803FC7803F03003E00003C00003C000
03C0000380000380000380000380000380000380000380000380007FFE00FFFF007FFE0015147F
9318>I<0FF7003FFF007FFF00F81F00E00700E00700F007007C00007FF0001FFC0007FE00001F
00600780E00380F00380F00780FC0F00FFFF00FFFE00E7F80011147D9318>I<01800003800003
80000380000380007FFFC0FFFFC0FFFFC003800003800003800003800003800003800003800003
80000380000380400380E00380E00381E003C3C001FFC000FF80007E0013197F9818>I<7E07E0
FE0FE07E07E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E0
0E00E00E01E00F07E007FFFC03FFFE01FCFC1714809318>I<7F8FF0FF8FF87F8FF01E03C00E03
800E03800E0380070700070700070700038E00038E00038E00038E0001DC0001DC0001DC0000F8
0000F80000700015147F9318>I<FF8FF8FF8FF8FF8FF83800E03800E03800E01C01C01C01C01C
71C01CF9C01CF9C01CD9C01CD9C00DDD800DDD800DDD800D8D800F8F800F8F8007070015147F93
18>I<7F8FF07F9FF07F8FF0070700078E00039E0001DC0001F80000F80000700000F00000F800
01DC00039E00038E000707000F07807F8FF0FF8FF87F8FF015147F9318>I<7F8FF0FF8FF87F8F
F00E01C00E03800E0380070380070700070700038700038600038E0001CE0001CE0000CC0000CC
0000DC0000780000780000780000700000700000700000F00000E00079E0007BC0007F80003F00
001E0000151E7F9318>I<3FFFF07FFFF07FFFF07001E07003C0700780000F00001E00007C0000
F80001F00003E0000780000F00701E00703C0070780070FFFFF0FFFFF0FFFFF014147F9318>I
E /Fi 2 63 df<0000038000000F0000003C000000F0000003C000000F0000003C000000F00000
03C000000F0000003C000000F0000000F00000003C0000000F00000003C0000000F00000003C00
00000F00000003C0000000F00000003C0000000F000000038019187D9520>60
D<E0000000780000001E0000000780000001E0000000780000001E0000000780000001E0000000
780000001E00000007800000078000001E00000078000001E00000078000001E00000078000001
E00000078000001E00000078000000E000000019187D9520>62 D E /Fj
43 122 df<0003C001F3C003F3C007F3C00700000E00000E00000E00000E00000E00000E00000E
0000FFF1C0FFF1C0FFF1C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E
01C00E01C00E01C00E01C00E01C00E01C0121E809D16>12 D<7878787838307060E005097D830C
>44 D<00030003000700060006000E000C001C0018001800380030003000700060006000E000C0
00C001C001800380030003000700060006000E000C000C001C0018001800380030007000600060
00E000C000C00010297E9E15>47 D<001C0000003E0000003E0000002E00000067000000670000
00E7800000C7800000C3800001C3C0000183C0000181C0000381E0000381E0000700F0000700F0
000600F0000E0078000FFFF8000FFFF8001FFFFC001C003C0018003C0038001E0038001E007000
1F0070000F0070000F00E0000780191D7F9C1C>65 D<FFF800FFFF00FFFF80F00FC0F003E0F000
F0F000F0F000F0F000F0F000F0F001E0F007C0FFFF80FFFE00FFFF80F01FC0F003E0F000F0F000
78F00078F00078F00078F00078F000F0F001F0F007E0FFFFC0FFFF80FFFC00151D7C9C1C>I<00
3FC000FFF003FFF007C0700F80001E00003E00003C0000780000780000780000F00000F00000F0
0000F00000F00000F00000F00000F00000F000007800007800007800003C00003E00001E00000F
800807C07803FFF800FFF0003F80151F7D9D1B>I<FFFC00FFFF00FFFF80F00FE0F003F0F000F0
F00078F00078F0003CF0003CF0001CF0001EF0001EF0001EF0001EF0001EF0001EF0001EF0001E
F0003CF0003CF0007CF00078F000F0F001F0F007E0FFFFC0FFFF00FFFC00171D7C9C1E>I<FFFF
C0FFFFC0FFFFC0F00000F00000F00000F00000F00000F00000F00000F00000F00000FFFF80FFFF
80FFFF80F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000FFFF
C0FFFFC0FFFFC0121D7C9C19>I<FFFF80FFFF80FFFF80F00000F00000F00000F00000F00000F0
0000F00000F00000F00000F00000FFFF00FFFF00FFFF00F00000F00000F00000F00000F00000F0
0000F00000F00000F00000F00000F00000F00000F00000111D7C9C18>I<003F8001FFF003FFF8
07C0F80F00181E00003E00003C0000780000780000780000F00000F00000F00000F00000F00000
F00000F007F8F007F8F007F87800387800387800383C00383E00381E00380F003807C07803FFF8
01FFF0003F80151F7D9D1C>I<F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000
F0F000F0F000F0F000F0FFFFF0FFFFF0FFFFF0F000F0F000F0F000F0F000F0F000F0F000F0F000
F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0141D7C9C1D>I<F0F0F0F0F0F0F0F0F0F0
F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0041D7C9C0C>I<F0003CF00078F000F0F001E0F0
03C0F00780F00F00F01E00F03C00F07800F0F000F0E000F1F000F3F000F77800FE7C00FC3C00FC
1E00F81F00F00F00F00F80F00780F003C0F003E0F001E0F000F0F000F0F00078F0007C161D7C9C
1D>75 D<F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F0
00F000F000F000F000F000F000F000F000FFFEFFFEFFFE0F1D7C9C16>I<FC0007E0FC0007E0FC
0007E0EE000DE0EE000DE0EE000DE0E70019E0E70019E0E70019E0E78039E0E38031E0E3C071E0
E3C071E0E1C061E0E1C061E0E1E0E1E0E1E0E1E0E0E0C1E0E0F1C1E0E07181E0E07181E0E07181
E0E03B01E0E03B01E0E03B01E0E01E01E0E01E01E0E01E01E0E00001E01B1D7C9C24>I<FC0070
FC0070FE0070EE0070EF0070E70070E70070E78070E38070E3C070E3C070E1E070E1E070E0E070
E0F070E07070E07870E07870E03C70E03C70E01C70E01E70E00E70E00E70E00F70E00770E007F0
E003F0E003F0141D7C9C1D>I<003F000001FFE00003FFF00007C0F8000F807C001E001E003E00
1F003C000F00780007807800078078000780F00003C0F00003C0F00003C0F00003C0F00003C0F0
0003C0F00003C0F00003C0F80007C078000780780007807C000F803C000F003E001F001F003E00
0F807C0007C0F80003FFF00001FFE000003F00001A1F7E9D1F>I<FFFC00FFFF00FFFF80F007C0
F003E0F001E0F000F0F000F0F000F0F000F0F000F0F001E0F003E0F007C0FFFF80FFFF00FFFC00
F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000141D7C
9C1B>I<003F000001FFE00003FFF00007C0F8000F807C001F003E003E001F003C000F00780007
807800078078000780F00003C0F00003C0F00003C0F00003C0F00003C0F00003C0F00003C0F000
03C0F00003C07800078078000780781E07803C0F0F003E079F001E07DE000F83FC0007C1F80003
FFF00001FFF800003F7C0000003C0000003E0000001F0000000F801A237E9D1F>I<FFF800FFFF
00FFFF80F007C0F001E0F000E0F000F0F000F0F000F0F000F0F000E0F001E0F007C0FFFF80FFFF
00FFF800F03C00F01C00F01E00F00F00F00F00F00780F00780F003C0F003C0F001E0F000F0F000
F0F00078151D7C9C1B>I<03F8000FFE001FFF003E0F00780300780000F00000F00000F00000F0
0000F800007C00007F00003FE0001FFC0007FE0001FF00001F800007800007C00003C00003C000
03C00003C00003C0C00780E00780FC1F007FFE001FFC0007F000121F7E9D17>I<FFFFFF80FFFF
FF80FFFFFF80001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E000000
1E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000
001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000191D7F9C1C>I<
F00070F00070F00070F00070F00070F00070F00070F00070F00070F00070F00070F00070F00070
F00070F00070F00070F00070F00070F00070F00070F00070F00070F000F07800E07801E03C03C0
1F07800FFF8007FE0001F800141E7C9C1D>I<F0000380F0000380780007007800070078000700
3C000E003C000E003E000E001E001C001E001C000F0038000F0038000F00380007807000078070
0003C0600003C0E00003C0E00001E0C00001E1C00001E1C00000F1800000F38000007300000073
0000007B0000003E0000003E0000001C0000191D7F9C1C>I<F000F00070F000F80070F000F800
707800B8006078019C00E078019C00E078019C00E03C039C01C03C031E01C03C030E01C01E030E
01801E070F03801E070F03801E060F03800F060703000F0E0787000F0C078700070C038600070C
038600079C038E00079803CE00039801CC00039801CC00039801CC0001D001C80001D000D80001
F000F80001E000F80000E0007000241D7F9C27>I<78000E007C001E003C003C001E0038000F00
70000F00F0000781E00003C1C00001C3C00001E7800000F70000007E0000003E0000003C000000
3C0000007E00000077000000E7800001E3800003C1C0000381E0000700F0000F00F8000E007800
1C003C003C003E0078001F0070000F00F0000F80191D7F9C1C>I<0FC03FF07FF87038401C001C
001C00FC0FFC3FFC781CE01CE01CE01CF07C7FFC7FDC3F1C0E127E9114>97
D<07E00FF81FFC3C1C70047000E000E000E000E000E000E000700070043C1C1FFC0FF807E00E12
7E9112>99 D<000E000E000E000E000E000E000E000E000E000E000E0F8E1FEE3FFE7C3E700E70
0EE00EE00EE00EE00EE00EE00EF00E701E7C3E3FFE1FEE0F8E0F1D7E9C15>I<07C01FE03FF078
787018601CFFFCFFFCFFFCE000E000E000700070043C1C3FFC1FF807E00E127E9112>I<00FC01
FC03FC07000E000E000E000E000E000E000E00FFE0FFE0FFE00E000E000E000E000E000E000E00
0E000E000E000E000E000E000E000E000E1D809C0D>I<F0F0F0F0000000000000007070707070
70707070707070707070707070041D7E9C0A>105 D<E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0
E0E0E0E0E0E0E0E0E0E0E0E0031D7D9C0A>108 D<E3F03F00EFF8FF80FFFDFFC0F81F81E0F00F
00E0E00E00E0E00E00E0E00E00E0E00E00E0E00E00E0E00E00E0E00E00E0E00E00E0E00E00E0E0
0E00E0E00E00E0E00E00E0E00E00E01B127D9124>I<E3E0EFF0FFF8F83CF01CE01CE01CE01CE0
1CE01CE01CE01CE01CE01CE01CE01CE01CE01C0E127D9115>I<03F0000FFC001FFE003C0F0078
0780700380E001C0E001C0E001C0E001C0E001C0F003C07003807807803C0F001FFE000FFC0003
F00012127F9115>I<E3E0EFF0FFF8F87CF01CE01EE00EE00EE00EE00EE00EE00EE01CF03CF87C
FFF8EFF0E3C0E000E000E000E000E000E000E000E0000F1A7D9115>I<E380E780EF80FC00F800
F000F000E000E000E000E000E000E000E000E000E000E000E00009127D910E>114
D<1FC03FF07FF0F030E000E000F0007F003FC01FE000F0003800388038F078FFF07FE01FC00D12
7F9110>I<1C001C001C001C001C001C00FFE0FFE0FFE01C001C001C001C001C001C001C001C00
1C001C001C001C201FF00FF007C00C187F970F>I<E01CE01CE01CE01CE01CE01CE01CE01CE01C
E01CE01CE01CE01CE01CE07CFFFC7FDC3F1C0E127D9115>I<E007E0077006700E700E381C381C
381C1C381C381C380E700E700660076007E003C003C010127F9113>I<E007E007700E700E780E
381C381C1C181C380C380E300E7006700760036003C001C001C001800180030003000700FE00FC
00F800101A7F9113>121 D E /Fk 53 123 df<003F0F0000FFBF8003C3F3C00703E3C00703C1
800E01C0000E01C0000E01C0000E01C0000E01C0000E01C000FFFFFC00FFFFFC000E01C0000E01
C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E
01C0000E01C0000E01C0007F87FC007F87FC001A1D809C18>11 D<003F0000FF8003C1C00703C0
0703C00E01800E00000E00000E00000E00000E0000FFFFC0FFFFC00E01C00E01C00E01C00E01C0
0E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C07F87F87F87F8151D80
9C17>I<70F8FCFC7C0C0C0C1818306040060D7D9C0C>39 D<00C00180030006000E000C001C00
18003800300030007000700060006000E000E000E000E000E000E000E000E000E000E000E000E0
00600060007000700030003000380018001C000C000E0006000300018000C00A2A7D9E10>I<C0
006000300018001C000C000E000600070003000300038003800180018001C001C001C001C001C0
01C001C001C001C001C001C001C0018001800380038003000300070006000E000C001C00180030
006000C0000A2A7E9E10>I<70F0F8F8781818183030706040050D7D840C>44
D<FFE0FFE0FFE00B0380890E>I<70F8F8F87005057D840C>I<00030003000700060006000E000C
001C0018001800380030003000700060006000E000C000C001C001800380030003000700060006
000E000C000C001C001800180038003000700060006000E000C000C00010297E9E15>I<70F8F8
F870000000000000000070F8F8F87005127D910C>58 D<70F8F8F870000000000000000070F0F8
F8781818183030706040051A7D910C>I<0FE03FF8703C601CF01EF01EF01E001E003C007800E0
01C001800380030003000300030003000200000000000000000007000F800F800F8007000F1D7E
9C14>63 D<00060000000F0000000F0000000F0000001F8000001F8000001F8000001F80000033
C0000033C0000033C0000061E0000061E0000061E00000C0F00000C0F00000C0F0000180780001
80780001FFF80003FFFC0003003C0003003C0006001E0006001E0006001E001F001F00FFC0FFF0
FFC0FFF01C1D7F9C1F>65 D<FFFFC000FFFFF0000F007C000F001E000F000F000F0007000F0003
800F0003C00F0003C00F0001C00F0001E00F0001E00F0001E00F0001E00F0001E00F0001E00F00
01E00F0001E00F0001C00F0001C00F0003C00F0003800F0007800F000F000F001E000F007C00FF
FFF000FFFFC0001B1C7E9B20>68 D<FFFFF8FFFFF80F00780F00380F00180F001C0F000C0F000C
0F030C0F030C0F03000F03000F07000FFF000FFF000F07000F03000F03000F03000F03000F0000
0F00000F00000F00000F00000F0000FFF800FFF800161C7E9B1B>70 D<FFF3FFC0FFF3FFC00F00
3C000F003C000F003C000F003C000F003C000F003C000F003C000F003C000F003C000F003C000F
FFFC000FFFFC000F003C000F003C000F003C000F003C000F003C000F003C000F003C000F003C00
0F003C000F003C000F003C000F003C00FFF3FFC0FFF3FFC01A1C7E9B1F>72
D<FFF0FFF00F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F00
0F000F000F000F000F000F000F00FFF0FFF00C1C7F9B0F>I<FF8000FF80FFC001FF800FC001F8
000FC001F8000DE00378000DE00378000DE00378000CF00678000CF00678000CF00678000C780C
78000C780C78000C780C78000C3C1878000C3C1878000C3C1878000C1E3078000C1E3078000C1E
3078000C0F6078000C0F6078000C0F6078000C07C078000C07C078000C07C078001E03807800FF
C387FF80FFC387FF80211C7E9B26>77 D<FF00FFC0FF80FFC00F801E000FC00C000FC00C000DE0
0C000CF00C000CF00C000C780C000C780C000C3C0C000C1E0C000C1E0C000C0F0C000C0F0C000C
078C000C07CC000C03CC000C01EC000C01EC000C00FC000C00FC000C007C000C003C000C003C00
1E001C00FFC01C00FFC00C001A1C7E9B1F>I<003F800000FFE00003E0F80007803C000E000E00
1E000F003C00078038000380780003C0780003C0700001C0F00001E0F00001E0F00001E0F00001
E0F00001E0F00001E0F00001E0F00001E0780003C0780003C0780003C03C0007803C0007801E00
0F000F001E0007803C0003E0F80000FFE000003F80001B1E7E9C20>I<FFFF80FFFFE00F00F00F
00380F003C0F001E0F001E0F001E0F001E0F001E0F001E0F003C0F00380F00F00FFFE00FFF800F
00000F00000F00000F00000F00000F00000F00000F00000F00000F0000FFF000FFF000171C7E9B
1C>I<07E0801FF9803C1F80700780700380E00380E00180E00180E00180F00000F000007C0000
7FC0003FF8001FFE0007FF0000FF80000F800003C00003C00001C0C001C0C001C0C001C0E00180
E00380F00300FC0E00CFFC0083F800121E7E9C17>83 D<7FFFFFC07FFFFFC0780F03C0700F01C0
600F00C0E00F00E0C00F0060C00F0060C00F0060C00F0060000F0000000F0000000F0000000F00
00000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F
0000000F0000000F000003FFFC0003FFFC001B1C7F9B1E>I<FFF0FFC0FFF0FFC00F001E000F00
0C000F000C000F000C000F000C000F000C000F000C000F000C000F000C000F000C000F000C000F
000C000F000C000F000C000F000C000F000C000F000C000F000C000F000C000F000C0007001800
078018000380300001C0300000E0E000007FC000001F00001A1D7E9B1F>I<FFE01FF0FFE01FF0
0F0007800F0003000F000300078006000780060007C00E0003C00C0003C00C0003E01C0001E018
0001E0180000F0300000F0300000F03000007860000078600000786000003CC000003CC000003C
C000001F8000001F8000001F8000000F0000000F0000000F0000000600001C1D7F9B1F>I<FFE0
FFE1FFFFE0FFE1FF1F001E007C0F001E00300F003F00300F003F00300F803F0070078067806007
80678060078067806003C0E780C003C0C3C0C003C0C3C0C001E0C3C18001E181E18001E181E180
01E181E18000F381F30000F300F30000F300F300007B00F600007E007E00007E007E00007E007E
00003C003C00003C003C00003C003C00001C0038000018001800281D7F9B2B>I<06000F001F80
39C070E0E07040200C077C9C15>94 D<0FE0001FF8003C3C003C1E00180E00000E00001E0007FE
001FFE003E0E00780E00F00E00F00E60F00E60F01E60783E603FFFC01F878013127F9115>97
D<FC0000FC00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C7E001DFF
001F87801E01C01C01E01C00E01C00F01C00F01C00F01C00F01C00F01C00F01C00E01C01E01E01
C01F078019FF00187C00141D7F9C17>I<03F00FF81E3C383C78187000F000F000F000F000F000
F000780078063C061E0C0FF803E00F127F9112>I<001F80001F80000380000380000380000380
00038000038000038000038000038003E3800FFB801E0F80380780780380700380F00380F00380
F00380F00380F00380F003807003807803803807801E1F800FFBF007E3F0141D7F9C17>I<03E0
0FF01C38381C781E700EFFFEFFFEF000F000F000F000700078063C061E0C0FF803E00F127F9112
>I<007801FC039E071E0E0C0E000E000E000E000E000E00FFE0FFE00E000E000E000E000E000E
000E000E000E000E000E000E000E000E007FE07FE00F1D809C0D>I<00038007E7C00FFDC03C3D
C0381C00781E00781E00781E00781E00381C003C3C003FF00037E0007000007000003000003FFC
001FFF003FFF80700780E001C0E001C0E001C0E001C07003803C0F001FFE0007F800121C7F9215
>I<FC0000FC00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C7C001D
FF001F07001E03801E03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C
03801C0380FF9FF0FF9FF0141D7F9C17>I<18003C007C003C0018000000000000000000000000
00FC00FC001C001C001C001C001C001C001C001C001C001C001C001C001C001C00FF80FF80091D
7F9C0C>I<01C003E003E003E001C00000000000000000000000000FE00FE000E000E000E000E0
00E000E000E000E000E000E000E000E000E000E000E000E000E000E000E060E0F1C0F1C07F803E
000B25839C0D>I<FC0000FC00001C00001C00001C00001C00001C00001C00001C00001C00001C
00001C7FC01C7FC01C3E001C18001C30001C60001CC0001DE0001FE0001E70001C78001C38001C
3C001C1C001C0E001C0F00FF9FE0FF9FE0131D7F9C16>I<FC00FC001C001C001C001C001C001C
001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C00
FF80FF80091D7F9C0C>I<FC7E07E000FDFF9FF8001F83B838001E01E01C001E01E01C001C01C0
1C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01
C01C001C01C01C001C01C01C00FF8FF8FF80FF8FF8FF8021127F9124>I<FC7C00FDFF001F0700
1E03801E03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C0380
FF9FF0FF9FF014127F9117>I<03F0000FFC001E1E00380700780780700380F003C0F003C0F003
C0F003C0F003C0F003C07003807807803807001E1E000FFC0003F00012127F9115>I<FC7E00FD
FF001F87801E03C01C01E01C01E01C00F01C00F01C00F01C00F01C00F01C00F01C01E01C01E01E
03C01F07801DFF001C7C001C00001C00001C00001C00001C00001C0000FF8000FF8000141A7F91
17>I<03E1800FF9801E1F803C0780780780780380F00380F00380F00380F00380F00380F00380
7803807807803C07801E1F800FFB8007E380000380000380000380000380000380000380001FF0
001FF0141A7F9116>I<FDE0FFF01F781E781E301C001C001C001C001C001C001C001C001C001C
001C00FFC0FFC00D127F9110>I<1F903FF07070E030E030E030F8007F803FE00FF000F8C038C0
38E038E038F070DFE08FC00D127F9110>I<0C000C000C000C000C001C001C003C00FFE0FFE01C
001C001C001C001C001C001C001C001C301C301C301C301C301E600FC007800C1A7F9910>I<FC
1F80FC1F801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C
03801C07800C0F800FFBF003E3F014127F9117>I<FF0FE0FF0FE01C07801C03000E06000E0600
0E0600070C00070C00071C0003980003980003F80001F00001F00000E00000E00000E00013127F
9116>I<FF3FCFE0FF3FCFE01C0F07801C0F03001C1F03000E1B06000E1B86000E1B86000E318E
000731CC000731CC000760CC0003E0F80003E0F80003E0F80001C0700001C0700001C070001B12
7F911E>I<7F8FF07F8FF00F0780070600038E0001DC0001D80000F00000700000780000F80001
DC00038E00030E000607000F0380FF8FF8FF8FF81512809116>I<FF0FE0FF0FE01C07801C0300
0E06000E06000E0600070C00070C00071C0003980003980003F80001F00001F00000E00000E000
00E00000C00000C00000C000F18000F18000C700007E00003C0000131A7F9116>I<7FFC7FFC78
38707060F060E061C063C00380070C0F0C0E0C1C1C3C1838187078FFF8FFF80E127F9112>I
E /Fl 20 119 df<387CFEFEFE7C3807077D860D>46 D<387CFEFEFE7C3800000000387CFEFEFE
7C3807127D910D>58 D<001FE02000FFF8E003F80FE007E007E00FC001E01F8001E03F0000E03F
0000E07E0000607E000060FE000060FE000000FE000000FE000000FE000000FE000000FE000000
FE0000007E0000607E0000603F0000603F0000C01F8000C00FC0018007E0030003F80E0000FFFC
00001FE0001B1C7D9B22>67 D<FFFFF800FFFFFF000FC01FC00FC007E00FC003F00FC001F80FC0
01F80FC000FC0FC000FC0FC000FC0FC000FE0FC000FE0FC000FE0FC000FE0FC000FE0FC000FE0F
C000FE0FC000FE0FC000FC0FC000FC0FC000FC0FC001F80FC001F80FC003F00FC007E00FC01FC0
FFFFFF00FFFFF8001F1C7E9B25>I<FFFFFFFF07E007E007E007E007E007E007E007E007E007E0
07E007E007E007E007E007E007E007E007E007E007E007E007E007E0FFFFFFFF101C7F9B12>73
D<0FF8001FFE003E1F803E07803E07C01C07C00007C003FFC01FFFC03F87C07E07C0FC07C0FC07
C0FC07C0FC0FC07E1FC03FFBF80FE1F815127F9117>97 D<03FC000FFE001F1F003E1F007C1F00
7C0E00FC0000FC0000FC0000FC0000FC0000FC00007C00007E01803E03801F07000FFE0003F800
11127E9115>99 D<01FC000FFF001F0F803E07C07C03C07C03E0FC03E0FFFFE0FFFFE0FC0000FC
0000FC00007C00007E00603E00C01F81C00FFF0001FC0013127F9116>101
D<FF0000FF00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F1FC01F7F
E01FE1F01F80F81F80F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00
F81F00F8FFE7FFFFE7FF181D7F9C1B>104 D<1E003F003F007F003F003F001E00000000000000
00000000FF00FF001F001F001F001F001F001F001F001F001F001F001F001F001F001F00FFE0FF
E00B1E7F9D0E>I<FF00FF001F001F001F001F001F001F001F001F001F001F001F001F001F001F
001F001F001F001F001F001F001F001F001F001F001F00FFE0FFE00B1D7F9C0E>108
D<FF1FC0FE00FF7FE3FF001FE1F70F801F80FC07C01F80FC07C01F00F807C01F00F807C01F00F8
07C01F00F807C01F00F807C01F00F807C01F00F807C01F00F807C01F00F807C01F00F807C01F00
F807C0FFE7FF3FF8FFE7FF3FF825127F9128>I<FF1FC0FF7FE01FE1F01F80F81F80F81F00F81F
00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F8FFE7FFFFE7FF18127F91
1B>I<01FC000FFF801F07C03E03E07C01F07C01F0FC01F8FC01F8FC01F8FC01F8FC01F8FC01F8
7C01F07C01F03E03E01F07C00FFF8001FC0015127F9118>I<FF1FC0FFFFE01FC1F81F00F81F00
FC1F007C1F007E1F007E1F007E1F007E1F007E1F007E1F007C1F00FC1F80F81FC1F01F7FE01F1F
801F00001F00001F00001F00001F00001F0000FFE000FFE000171A7F911B>I<FE3E00FE7F001E
CF801F8F801F8F801F07001F00001F00001F00001F00001F00001F00001F00001F00001F00001F
0000FFF000FFF00011127F9114>114 D<1FD83FF87038E018E018F000FF807FE07FF01FF807FC
007CC01CC01CE01CF038FFF0CFC00E127E9113>I<030003000300070007000F000F003F00FFFC
FFFC1F001F001F001F001F001F001F001F001F001F0C1F0C1F0C1F0C0F9807F003E00E1A7F9913
>I<FF07F8FF07F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F
00F81F00F81F01F80F03F80FFEFF03F8FF18127F911B>I<FFC1FCFFC1FC1F00601F80E00F80C0
0FC0C007C18007C18003E30003E30001F60001F60001FE0000FC0000FC00007800007800003000
16127F9119>I E /Fm 55 123 df<007F07F001FF1FF003FF3FF007807800070070000F00F000
0F00F0000F00F0000F00F0000F00F0000F00F0000F00F000FFF8FF80FFF8FF80FFF8FF800F00F0
000F00F0000F00F0000F00F0000F00F0000F00F0000F00F0000F00F0000F00F0000F00F0000F00
F0000F00F0000F00F0000F00F0000F00F0000F00F0000F00F0001C20809F1B>11
D<0000F000F8F001F8F003F8F00780000700000F00000F00000F00000F00000F00000F00000F00
00FFF8F0FFF8F0FFF8F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00F00
F00F00F00F00F00F00F00F00F00F00F00F00F00F00F0142180A018>I<007000E001C003800780
07000E001E001E003C003C003C0078007800780078007000F000F000F000F000F000F000F000F0
00F000F000F000F000700078007800780078003C003C003C001E001E000E0007000780038001C0
00E000700C2E7EA112>40 D<E000700038001C001E000E0007000780078003C003C003C001E001
E001E001E000E000F000F000F000F000F000F000F000F000F000F000F000F000E001E001E001E0
01E003C003C003C00780078007000E001E001C0038007000E0000C2E7DA112>I<000600000006
000000060000000600000006000000060000000600000006000000060000000600000006000000
060000000600000006000000060000FFFFFFF0FFFFFFF000060000000600000006000000060000
000600000006000000060000000600000006000000060000000600000006000000060000000600
00000600001C207D9A23>43 D<787878781830306060E0050A7D830D>I<FFC0FFC0FFC00A037F
8B0F>I<03F00007F8001FFE001E1E003C0F00380700780780780780700380F003C0F003C0F003
C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C07807807807
807807803807003C0F001E1E001FFE000FFC0003F00012207E9E17>48 D<00C001C00FC0FFC0FF
C0F3C003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C0
03C003C003C003C0FFFEFFFEFFFE0F1F7C9E17>I<FFFFFFF0FFFFFFF000000000000000000000
00000000000000000000000000000000000000000000FFFFFFF0FFFFFFF01C0C7D9023>61
D<001F0000001F0000003F8000003B8000003B8000007BC0000073C0000071C00000F1E00000E1
E00000E0E00001E0F00001E0F00001C0F00003C0780003C078000380780007803C0007803C0007
003C000FFFFE000FFFFE000FFFFE001E000F001E000F003C000F803C0007803C000780780007C0
780003C0780003C0F00003E01B207F9F1E>65 D<FFF800FFFF00FFFF80F00FC0F003E0F001E0F0
00F0F000F0F000F0F000F0F000F0F001E0F003C0F01F80FFFF00FFFF00FFFF80F007E0F001E0F0
00F0F00078F00078F00078F00078F00078F00078F000F0F001F0F007E0FFFFC0FFFF80FFFC0015
207B9F1E>I<001FC000FFF801FFFC03E03C07800C0F00001E00003E00003C00007C0000780000
780000780000F00000F00000F00000F00000F00000F00000F00000F00000780000780000780000
7C00003C00003E00001E00000F000207800E03E03E01FFFC00FFF0001FC017227DA01D>I<FFFC
00FFFF80FFFFC0F007E0F001F0F000F8F00078F0003CF0003CF0001EF0001EF0000EF0000FF000
0FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0001EF0001EF0001EF0003CF0007CF000
F8F001F0F007E0FFFFC0FFFF80FFFC0018207B9F21>I<FFFFC0FFFFC0FFFFC0F00000F00000F0
0000F00000F00000F00000F00000F00000F00000F00000F00000FFFF80FFFF80FFFF80F00000F0
0000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000FFFFE0FFFFE0FF
FFE013207B9F1B>I<FFFFC0FFFFC0FFFFC0F00000F00000F00000F00000F00000F00000F00000
F00000F00000F00000F00000FFFF00FFFF00FFFF00F00000F00000F00000F00000F00000F00000
F00000F00000F00000F00000F00000F00000F00000F00000F0000012207B9F1A>I<001FE000FF
F801FFFE03E03E07800E0F00001E00003E00003C00007C0000780000780000780000F00000F000
00F00000F00000F00000F00000F003FEF003FE7803FE78001E78001E7C001E3C001E3E001E1E00
1E0F001E07801E03E03E01FFFE00FFF8001FC017227DA01E>I<F00078F00078F00078F00078F0
0078F00078F00078F00078F00078F00078F00078F00078F00078F00078FFFFF8FFFFF8FFFFF8F0
0078F00078F00078F00078F00078F00078F00078F00078F00078F00078F00078F00078F00078F0
0078F0007815207B9F20>I<F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0
F0F0F0F0F004207C9F0D>I<F0003EF0007CF000F8F001F0F003E0F007C0F00780F00F00F01F00
F03E00F07C00F0F800F1F000F3F800F3F800F7FC00FFBC00FF1E00FE1F00FC0F00F80780F00780
F003C0F003E0F001E0F000F0F000F8F00078F0003CF0003CF0001EF0001F18207B9F20>75
D<F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F000
00F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F000
00F00000F00000F00000FFFF80FFFF80FFFF8011207B9F19>I<F80001F8FC0003F8FC0003F8F4
000378F6000778F6000778F6000778F7000F78F3000E78F3000E78F3801E78F3801E78F1801C78
F1C03C78F1C03C78F1C03C78F0C03878F0E07878F0E07878F0607078F070F078F070F078F030E0
78F039E078F039E078F019C078F019C078F019C078F00F8078F00F8078F00F8078F00000781D20
7B9F28>I<FC0078FE0078FE0078F60078F70078F70078F38078F38078F38078F3C078F1C078F1
E078F1E078F0E078F0F078F07078F07078F07878F03878F03C78F03C78F01C78F01E78F00E78F0
0E78F00E78F00778F00778F00378F003F8F003F8F001F815207B9F20>I<003F000000FFC00003
FFF00007E1F8000F807C001F003E001E001E003C000F003C000F00780007807800078078000780
F00003C0F00003C0F00003C0F00003C0F00003C0F00003C0F00003C0F00003C0F00003C0F80007
C07800078078000780780007803C000F003C000F001E001E001F003E000F807C0007E1F80003FF
F00000FFC000003F00001A227DA021>I<FFF800FFFF00FFFF80F00FC0F003E0F001E0F000F0F0
00F0F000F0F000F0F000F0F000F0F000F0F001E0F003E0F00FC0FFFF80FFFF00FFF800F00000F0
0000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F0000014207B9F
1D>I<FFF800FFFF00FFFF80F007C0F003E0F001E0F000F0F000F0F000F0F000F0F000F0F001E0
F003E0F007C0FFFF80FFFF00FFF800F03C00F01E00F01E00F00F00F00F00F00780F00780F003C0
F001C0F001E0F000F0F000F0F00078F00078F0003C16207B9F1D>82 D<01FC0007FF800FFFC01F
03C03C00C03C00007800007800007800007800007800007C00003C00003F00001FE0000FFC0007
FE0001FF00003F800007C00003C00003E00001E00001E00001E00001E00001E00001C0C003C0F0
07C0FC0F807FFF001FFE0003F80013227EA019>I<FFFFFFC0FFFFFFC0FFFFFFC0001E0000001E
0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E000000
1E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E0000
001E0000001E0000001E0000001E0000001E0000001E0000001E0000001E00001A207E9F1F>I<
F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0
F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000F0F000F07801E0
7801E03C03C03C03C01F0F800FFF0007FE0001F80014217B9F1F>I<F00001E0F00001E0780003
C0780003C0780003C03C0007803C0007803C0007801E000F001E000F001F000F000F001E000F00
1E0007801C0007803C0007803C0003C0380003C0780003C0780001E0700001E0F00001E0F00000
F0E00000F1E00000F1E0000071C000007BC000003B8000003B8000003F8000001F0000001F0000
1B207F9F1E>I<F0007C000FF0007E000FF0007E000F78006E000E7800EE001E7800E7001E7800
E7001E3C00E7003C3C01E7803C3C01C7803C3C01C3803C1E01C380781E03C3C0781E0383C0780E
0381C0700F0381C0F00F0781E0F00F0701E0F0070700E0E0078700E1E0078F00F1E0078E00F1E0
038E0071C0038E0071C003CE0073C001DC007B8001DC003B8001DC003B8001DC003B8000F8003F
0000F8001F0000F8001F0028207F9F2B>I<F80000F87C0001F03C0001E03E0003E01F0003C00F
0007800F800F8007C00F0003C01F0003E01E0001F03C0000F07C00007878000078F000003CF000
001DE000001FE000000FC000000780000007800000078000000780000007800000078000000780
00000780000007800000078000000780000007800000078000000780001D20809F1E>89
D<07E03FF87FFC701E401F000F000F000F003F07FF1FFF7E0FF80FF00FF00FF00FF83F7FFF3FEF
1F8F10147E9316>97 D<F00000F00000F00000F00000F00000F00000F00000F00000F00000F000
00F00000F00000F1F000F7FC00FFFE00FC3E00F80F00F00F00F00780F00780F00780F00780F007
80F00780F00780F00F00F00F00F81F00FC3E00FFFC00F7F800F1E00011207D9F17>I<03F00FFC
1FFE3E0E3C0278007800F000F000F000F000F000F000780078003C013E0F1FFF0FFE03F010147E
9314>I<0007800007800007800007800007800007800007800007800007800007800007800007
8007C7800FF7801FFF803E1F807C0780780780F80780F00780F00780F00780F00780F00780F007
80F00780780780780F803E1F801FFF800FF78007C78011207E9F17>I<03F0000FFC001FFE003E
1F003C0700780700700380FFFF80FFFF80FFFF80F00000F00000F000007000007800003C01003E
07001FFF0007FE0001F80011147F9314>I<007E01FE03FE078007000F000F000F000F000F000F
000F00FFF0FFF0FFF00F000F000F000F000F000F000F000F000F000F000F000F000F000F000F00
0F000F000F20809F0E>I<F000F000F000F000F000F000F000F000F000F000F000F000F1F8F3FC
F7FEFC1FF80FF80FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00F10207D
9F17>104 D<F0F0F0F00000000000000000F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F004
207D9F0B>I<F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F004
207D9F0B>108 D<F0FC07E0F3FE1FF0F7FF3FF8FE0FF07CF807C03CF807C03CF007803CF00780
3CF007803CF007803CF007803CF007803CF007803CF007803CF007803CF007803CF007803CF007
803CF007803CF007803C1E147D9327>I<F1F8F3FCF7FEFC1FF80FF80FF00FF00FF00FF00FF00F
F00FF00FF00FF00FF00FF00FF00FF00FF00F10147D9317>I<01F80007FE001FFF803F0FC03C03
C07801E07801E0F000F0F000F0F000F0F000F0F000F0F000F07801E07801E03C03C03F0FC01FFF
8007FE0001F80014147F9317>I<F1F000F7FC00FFFE00FC3E00F81F00F00F00F00F80F00780F0
0780F00780F00780F00780F00780F00F00F00F00F81F00FC3E00FFFC00F7F800F1E000F00000F0
0000F00000F00000F00000F00000F00000F00000F00000111D7D9317>I<03C7800FF7801FFF80
3E1F807C0F80780780780780F00780F00780F00780F00780F00780F00780F807807807807C0F80
3E1F801FFF800FF78007C780000780000780000780000780000780000780000780000780000780
111D7E9317>I<F0E0F3E0F7E0FF00FC00FC00F800F800F000F000F000F000F000F000F000F000
F000F000F000F0000B147D9310>I<07F01FFC3FFC780C7800780078007C003FC01FF00FF803F8
007C003C003CC03CF07CFFF87FF00FC00E147F9311>I<1E001E001E001E001E001E00FFF0FFF0
FFF01E001E001E001E001E001E001E001E001E001E001E001E001E001E201FF00FF007C00C1A7F
9910>I<F00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF01FF03FFF
FF7FEF3F0F10147D9317>I<F003C0F003C07803807807807807803C0F003C0F003C0F001E0E00
1E1E001E1E000F1C000F3C000F3C0007380007380007B80003F00003F00001E00012147F9315>
I<F01F00F0F01F80F0F01F80F0781B81E0783B81E0783BC1E07839C1E03C31C3C03C71C3C03C71
E3C01C70E3801E60E7801E60E7801EE0E7800EE077000EC077000EC0770007C07E0007C03E0007
803E001C147F931F>I<7801E07C03C03E07801E0F000F0F00079E0003FC0003F80001F80000F0
0001F00001F80003FC00079E000F0F000E0F001E07803C03C07801E0F801F01414809315>I<F0
03C0F003C07807807807807C07803C0F003C0F001E0F001E1E000E1E000F1C000F1C00073C0007
380003B80003B80003B00001F00001F00000E00000E00001C00001C00003C0000380000780007F
00007E00007C0000121D7F9315>I<7FFF7FFF7FFF003E003C007800F800F001E003E007C00780
0F001F001E003C007C00FFFFFFFFFFFF10147F9314>I E /Fn 35 121 df<000FE000007FF800
00F81C0001E07C0003E07C0007C07C0007C07C0007C0380007C0000007C0000007C0000007C1FE
00FFFFFE00FFFFFE0007C03E0007C03E0007C03E0007C03E0007C03E0007C03E0007C03E0007C0
3E0007C03E0007C03E0007C03E0007C03E0007C03E0007C03E0007C03E0007C03E003FF9FFC03F
F9FFC01A20809F1D>12 D<0018007000E001C00380038007000E000E001E001C003C003C007800
780078007800F800F000F000F000F000F000F000F000F000F000F80078007800780078003C003C
001C001E000E000E0007000380038001C000E0007000180D2D7DA114>40
D<C000700038001C000E000E0007000380038003C001C001E001E000F000F000F000F000F80078
0078007800780078007800780078007800F800F000F000F000F001E001E001C003C00380038007
000E000E001C0038007000C0000D2D7DA114>I<FFF0FFF0FFF0FFF00C047F8B11>45
D<00700000F0000FF000FFF000F3F00003F00003F00003F00003F00003F00003F00003F00003F0
0003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F00003F0
0003F000FFFF80FFFF80111D7C9C1A>49 D<07F0001FFE00383F007C1F80FE0FC0FE0FC0FE0FE0
FE07E07C07E03807E0000FE0000FC0000FC0001F80001F00003E0000780000F00000E00001C060
0380600700600C00E01FFFE01FFFC03FFFC07FFFC0FFFFC0FFFFC0131D7D9C1A>I<3803803FFF
803FFF003FFE003FFC003FF0003F800030000030000030000030000033F8003FFE003C1F00380F
80300FC0000FC0000FE0000FE0780FE0FC0FE0FE0FE0FE0FE0FC0FC0780FC0601F80383F001FFC
0007F000131D7D9C1A>53 D<387CFEFEFE7C38000000000000387CFEFEFE7C3807147C930F>58
D<0007FC02003FFF0E00FE03DE03F000FE07E0003E0FC0001E1F80001E3F00000E3F00000E7F00
00067E0000067E000006FE000000FE000000FE000000FE000000FE000000FE000000FE0000007E
0000007E0000067F0000063F0000063F00000C1F80000C0FC0001807E0003803F0007000FE01C0
003FFF800007FC001F1F7D9E26>67 D<FFFF9FFFF0FFFF9FFFF007F000FE0007F000FE0007F000
FE0007F000FE0007F000FE0007F000FE0007F000FE0007F000FE0007F000FE0007F000FE0007F0
00FE0007F000FE0007FFFFFE0007FFFFFE0007F000FE0007F000FE0007F000FE0007F000FE0007
F000FE0007F000FE0007F000FE0007F000FE0007F000FE0007F000FE0007F000FE0007F000FE00
07F000FE00FFFF9FFFF0FFFF9FFFF0241F7E9E29>72 D<FFF000007FF8FFF80000FFF807F80000
FF0006FC0001BF0006FC0001BF0006FC0001BF00067E00033F00067E00033F00063F00063F0006
3F00063F00061F800C3F00061F800C3F00061F800C3F00060FC0183F00060FC0183F000607E030
3F000607E0303F000603F0603F000603F0603F000603F0603F000601F8C03F000601F8C03F0006
00FD803F000600FD803F0006007F003F0006007F003F0006003E003F0006003E003F0006003E00
3F00FFF01C07FFF8FFF01C07FFF82D1F7E9E32>77 D<FFFFFE00FFFFFF8007F00FE007F003F007
F001F807F001F807F001FC07F001FC07F001FC07F001FC07F001FC07F001F807F001F807F003F0
07F00FE007FFFF8007FFFE0007F0000007F0000007F0000007F0000007F0000007F0000007F000
0007F0000007F0000007F0000007F0000007F00000FFFF8000FFFF80001E1F7E9E24>80
D<03FC080FFF381E03F83C00F8780078780038F80038F80018FC0018FC0000FF0000FFF8007FFF
007FFFC03FFFE01FFFF00FFFF803FFF8001FFC0001FC0000FC0000FCC0007CC0007CC0007CE000
78E00078F800F0FE01E0E7FFC081FF00161F7D9E1D>83 D<FFFF81FFE0FFFF81FFE007F0000C00
07F0000C0007F0000C0007F0000C0007F0000C0007F0000C0007F0000C0007F0000C0007F0000C
0007F0000C0007F0000C0007F0000C0007F0000C0007F0000C0007F0000C0007F0000C0007F000
0C0007F0000C0007F0000C0007F0000C0007F0000C0007F0001C0003F000180003F800380001F8
00300000FC007000007F03E000001FFF80000003FC0000231F7E9E28>85
D<FFFF003FF8FFFF003FF807F000038007F000030007F800070003F800060003FC000E0001FC00
0C0001FE000C0000FE00180000FF001800007F003000007F003000003F806000003F806000003F
C0E000001FC0C000001FE1C000000FE18000000FF180000007F300000007FB00000003FE000000
03FE00000003FE00000001FC00000001FC00000000F800000000F8000000007000000000700000
251F7F9E28>I<07FC001FFF003F0F803F07C03F03E03F03E00C03E00003E001FFE00FFFE03F83
E07E03E07C03E0F803E0F803E0F803E0FC07E07E0DE03FF9FE07E07E17147F9319>97
D<FF0000FF00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F1F
C01F7FF01FE0F81F807C1F007E1F003E1F003E1F003F1F003F1F003F1F003F1F003F1F003F1F00
3E1F003E1F007C1F807C1EC1F81C7FE0181F8018207E9F1D>I<01FE0007FF801F0FC03E0FC03E
0FC07C0FC07C0300FC0000FC0000FC0000FC0000FC0000FC00007C00007E00003E00603F00C01F
81C007FF0001FC0013147E9317>I<0007F80007F80000F80000F80000F80000F80000F80000F8
0000F80000F80000F80000F801F8F80FFEF81F83F83E01F87E00F87C00F87C00F8FC00F8FC00F8
FC00F8FC00F8FC00F8FC00F87C00F87C00F87E00F83E01F81F07F80FFEFF03F8FF18207E9F1D>
I<01FE0007FF801F83E03F01F07E00F07E00F8FC00F8FC00F8FFFFF8FFFFF8FC0000FC0000FC00
007C00007E00003E00183F00380F807007FFE000FF8015147F9318>I<001F8000FFC001F3E003
E7E003C7E007C7E007C3C007C00007C00007C00007C00007C000FFFC00FFFC0007C00007C00007
C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007
C0003FFC003FFC0013207F9F10>I<01FC3C07FFFE0F07DE1E03DE3E03E03E03E03E03E03E03E0
3E03E01E03C00F07800FFF0019FC001800001800001C00001FFF801FFFF00FFFF83FFFFC7C007C
70003EF0001EF0001EF0001E78003C78003C3F01F80FFFE001FF00171E7F931A>I<FF0000FF00
001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F0FC01F3FE01F61
F01FC0F81F80F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00
F81F00F81F00F8FFE3FFFFE3FF18207D9F1D>I<1C003F007F007F007F003F001C000000000000
00000000000000FF00FF001F001F001F001F001F001F001F001F001F001F001F001F001F001F00
1F001F00FFE0FFE00B217EA00E>I<FF00FF001F001F001F001F001F001F001F001F001F001F00
1F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F00FFE0FF
E00B207E9F0E>108 D<FE0FE03F80FE3FF0FFC01E70F9C3E01EC07F01F01F807E01F01F807E01
F01F007C01F01F007C01F01F007C01F01F007C01F01F007C01F01F007C01F01F007C01F01F007C
01F01F007C01F01F007C01F01F007C01F01F007C01F0FFE3FF8FFEFFE3FF8FFE27147D932C>I<
FE0FC0FE3FE01E61F01EC0F81F80F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F8
1F00F81F00F81F00F81F00F81F00F8FFE3FFFFE3FF18147D931D>I<01FF0007FFC01F83F03E00
F83E00F87C007C7C007CFC007EFC007EFC007EFC007EFC007EFC007E7C007C7C007C3E00F83E00
F81F83F007FFC001FF0017147F931A>I<FF1FC0FF7FF01FE1F81F80FC1F007E1F007E1F003E1F
003F1F003F1F003F1F003F1F003F1F003F1F003E1F007E1F007C1F80FC1FC1F81F7FE01F1F801F
00001F00001F00001F00001F00001F00001F0000FFE000FFE000181D7E931D>I<FE3E00FE7F80
1ECFC01F8FC01F8FC01F8FC01F03001F00001F00001F00001F00001F00001F00001F00001F0000
1F00001F00001F0000FFF000FFF00012147E9316>114 D<0FE63FFE701E600EE006E006F800FF
C07FF83FFC1FFE03FE001FC007C007E007F006F81EFFFCC7F010147E9315>I<01800180018003
800380038007800F803F80FFFCFFFC0F800F800F800F800F800F800F800F800F800F800F860F86
0F860F860F8607CC03F801F00F1D7F9C14>I<FF07F8FF07F81F00F81F00F81F00F81F00F81F00
F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F01F81F01F80F07F807FEFF03F8
FF18147D931D>I<FFE07F80FFE07F801F001C000F8018000F80180007C0300007C0300003E060
0003E0600001F0C00001F0C00001F9C00000F9800000FF8000007F0000007F0000003E0000003E
0000001C0000001C000019147F931C>I<FFE1FF00FFE1FF000F80700007C0E00007E0C00003E1
800001F3800000FF0000007E0000003E0000003F0000007F8000006F800000C7C0000183E00003
81F0000701F8000E00FC00FF81FF80FF81FF8019147F931C>120 D E /Fo
30 120 df<000078007C7800FC7801FC7803C40003800007800007800007800007800007800007
8000078000078000FFFC78FFFC78FFFC7807807807807807807807807807807807807807807807
8078078078078078078078078078078078078078078078078078078078078078078078152480A3
1A>12 D<F0F0F0F004047B830E>46 D<00C001C007C0FFC0FFC0FBC003C003C003C003C003C003
C003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C003C0
FFFFFFFFFFFF10227CA118>49 D<03F0000FFC001FFE003C1F003807807007C07003C0F003E0E0
01E06001E02001E00001E00001E00001E00003C00003C0000780000780000F00001E00003C0000
780000F00001E00001C0000380000700000E00001C0000380000700000FFFFE0FFFFE0FFFFE013
227EA118>I<01F00007FC001FFF003E0F003807807003C02003C02003C00003C00003C00003C0
000780000780000F00001E0003FC0003F80003FE00000F000007800003C00003C00001E00001E0
0001E00001E00001E08001E0C003C0E003C07007803C0F801FFF000FFC0003F00013237EA118>
I<3FFF803FFF803FFF803C00003C00003C00003C00003C00003C00003C00003C00003C00003CF8
003FFE003FFF003F0F803E07803C03C03803C00001E00001E00001E00001E00001E00001E00001
E04003C04003C0E003C07007807C1F003FFE000FFC0003F00013227EA018>53
D<007E0001FF0003FF0007C1000F00001E00001E00003C00003C000078000078000078F800F3FE
00F7FF00FF0F80FC0780F803C0F803C0F801C0F001E0F001E0F001E0F001E0F001E07001E07001
E07801E07803C03803C03C03801C07801F0F000FFE0007FC0001F00013237EA118>I<01F00007
FC000FFE001E0F003C07803C07807803C07803C07803C07803C07803C03803803C07801E0F000F
1E0007FC0003F8000FFE001E0F003C07807803C07803C0F001E0F001E0F001E0F001E0F001E0F0
01E07803C07803C03C07803E0F801FFF0007FC0001F00013237EA118>56
D<001F0000001F0000003F8000003F8000003B8000007BC0000073C0000071C00000F1E00000F1
E00000E0E00001E0F00001E0F00001C0F00003C0780003C078000380780007803C0007803C0007
003C000F001E000F001E000FFFFE001FFFFF001FFFFF001C000F003C0007803C00078038000780
780003C0780003C0700003C0F00001E0F00001E0E00001E01B237EA220>65
D<FFFE0000FFFFC000FFFFE000F003F000F000F800F0007C00F0003E00F0001E00F0000F00F000
0F00F0000780F0000780F0000780F00003C0F00003C0F00003C0F00003C0F00003C0F00003C0F0
0003C0F00003C0F00003C0F0000380F0000780F0000780F0000780F0000F00F0001F00F0001E00
F0003C00F000FC00F003F800FFFFE000FFFFC000FFFE00001A237BA223>68
D<FFFFF0FFFFF0FFFFF0F00000F00000F00000F00000F00000F00000F00000F00000F00000F000
00F00000F00000F00000FFFFC0FFFFC0FFFFC0F00000F00000F00000F00000F00000F00000F000
00F00000F00000F00000F00000F00000F00000F00000F00000F0000014237BA21C>70
D<F0000078F0000078780000F0780000F0780000F03C0001E03C0001E03C0001E01E0003C01E00
03C01F0003C00F0007800F0007800F80078007800F0007800F0003C00E0003C01E0003C01E0001
E03C0001E03C0001E03C0000F0780000F0780000F07800007870000078F0000078F0000038E000
003DE000001DC000001FC000001FC000000F8000000F80001D237FA220>86
D<07E01FF83FFC3C1E301E200F000F000F000F01FF0FFF3FFF7F0F780FF00FF00FF00FF80F7C3F
7FFF3FFF1F8F10167E9517>97 D<F00000F00000F00000F00000F00000F00000F00000F00000F0
0000F00000F00000F00000F00000F1F000F7FC00FFFE00FC1F00F80F00F00780F00780F003C0F0
03C0F003C0F003C0F003C0F003C0F003C0F003C0F00780F00780F80F00FC3E00FFFE00F7F800F3
F00012237CA219>I<01FC0007FF000FFF801F07803C0180780000780000700000F00000F00000
F00000F00000F00000F000007800007800007800403C00C01F07C00FFFC007FF8001FC0012167E
9516>I<0003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003
C00003C003F3C00FFFC01FFFC03F0FC03C07C07803C07803C0F003C0F003C0F003C0F003C0F003
C0F003C0F003C0F003C07803C07803C03C07C03E0FC01FFFC00FFBC003E3C012237EA219>I<03
F00007FC001FFE003E0F003C0780780380780380F001C0FFFFC0FFFFC0FFFFC0F00000F00000F0
00007000007800007800003C00801F07800FFF8007FF0001F80012167E9516>I<01F0F807FFF8
0FFFF81F1F801E0F003C07803C07803C07803C07803C07801E0F001F1F001FFE001FFC0039F000
3800003800003C00003FFE001FFFC01FFFE03FFFF07801F0F800F8F00078F00078F00078F00078
7800F03E03E01FFFC00FFF8001FC0015217F9518>103 D<F0F0F0F0000000000000000000F0F0
F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F004237DA20B>105 D<F00000F00000F00000F0
0000F00000F00000F00000F00000F00000F00000F00000F00000F00000F01F80F03F00F03E00F0
7C00F0F800F1F000F3E000F7C000FFC000FFC000FFE000FFE000FDF000F8F800F07800F07C00F0
3E00F01E00F01F00F00F00F00F80F007C012237CA218>107 D<F0F0F0F0F0F0F0F0F0F0F0F0F0
F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F004237DA20B>I<F0F807C0F3FE1FF0FFFF
7FF8FE0FF078FC0FE07CF807C03CF807C03CF007803CF007803CF007803CF007803CF007803CF0
07803CF007803CF007803CF007803CF007803CF007803CF007803CF007803CF007803CF007803C
1E167C9529>I<F1F8F7FCFFFEFE1EF80FF80FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00F
F00FF00FF00FF00FF00FF00F10167C9519>I<01FC0007FF000FFF801F07C03C01E07800F07800
F0700070F00078F00078F00078F00078F00078F000787800F07800F07C01F03E03E01F07C00FFF
8007FF0001FC0015167F9518>I<F1F000F7FC00FFFE00FC3F00F80F00F00780F00780F007C0F0
03C0F003C0F003C0F003C0F003C0F003C0F007C0F00780F00F80F80F00FC3E00FFFE00F7F800F3
F000F00000F00000F00000F00000F00000F00000F00000F00000F00000F0000012207C9519>I<
F0E0F3E0F7E0FFE0FF00FC00F800F800F000F000F000F000F000F000F000F000F000F000F000F0
00F000F0000B167C9511>114 D<07F01FFE3FFF3C0F7803780078007C003F003FF01FF80FFC01
FE001F000F000F400FE00FF81EFFFE3FFC0FF010167F9513>I<0F000F000F000F000F000F00FF
F8FFF8FFF80F000F000F000F000F000F000F000F000F000F000F000F000F000F000F080F1C07FC
07F803E00E1C7F9B12>I<F00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00F
F00FF00FF00FF01FF83F7FFF7FEF1F8F10167C9519>I<F007803CF00FC03CF00FC03C780DC078
781DC078781DE078781CE0783C18E0F03C38E0F03C38F0F01C38F0E01E3871E01E3071E01E7079
E00E7079C00E7039C00F603BC007603B8007601B8007C01F8007C01F8003C01F001E167F9521>
119 D E /Fp 26 87 df<3078F8787005057C840D>46 D<00000300000700000600000E00000C
00001C0000180000380000300000700000600000E00000C00001C0000180000380000300000700
000600000E00000C00001C0000180000380000300000700000600000E00000C00001C000018000
0380000300000700000600000E00000C00001C0000180000380000300000700000600000E00000
C00000182D7FA117>I<000C001C00FC0FF80F3800380038003800380070007000700070007000
7000E000E000E000E000E000E001C001C001C001C001C001C003C07FFEFFFE0F1E7C9D17>49
D<007F0001FFC00383E00701E00700F00F00F00F01F00F01F00001E00001E00003C0000780000F
0000FE0000F800000E000007000007800003C00003C00003C03007C07807C0F807C0F807C0F00F
80C00F00601E00383C001FF80007E000141F7D9D17>51 D<0001C00003C00003C0000780000F80
001B80003B8000738000638000C7000187000307000707000E07000C0700180E00300E00600E00
E00E00FFFFF0FFFFF0001C00001C00001C00001C00001C00001C00003C0003FFC003FFC0141E7D
9D17>I<03007003FFF003FFE003FF8003FE000600000600000600000600000600000600000C7C
000DFF000F87800E03800C01C00C01C00001E00001E00001E00001E07003C0F003C0F003C0F003
80C00780E00700600E00383C001FF0000FC000141F7D9D17>I<000F80007FC000F0E001C0E003
81E00701E00E00C01E00001C00003C000038000079FC007BFE007E07007C0380F80380F803C0F0
03C0F003C0F003C0F003C0F00780E00780E00780E00700E00F00700E00701C003838001FF00007
C000131F7C9D17>I<003F0000FF8001C1E00380E00700700E00700E00700E00700E00E00F00E0
0F81C00FC38007F70003FC0001FC0003FF000F3F801C0F803807C03803C07001C07001C0E001C0
E001C0E001C0E003807003007007003C1C001FF80007E000141F7D9D17>56
D<0000180000003800000038000000780000007C000000FC000000FC000001BC000001BC000003
3C0000033E0000061E0000061E00000C1E00000C1E0000181E0000181F0000300F0000300F0000
600F00007FFF0000FFFF0000C00F00018007800180078003000780030007800600078006000780
1F0007C0FFC07FFCFFC07FFC1E207E9F22>65 D<0003F808000FFE18003F0738007801F801F000
F803C000F007C00070078000700F0000701F0000701E0000703E0000603C0000607C0000007C00
00007C0000007C000000F8000000F8000000F8000000F8000000F80000C0780000C0780001807C
0001803C0003003C0003001E0006001E000C000F80180007E0700001FFC000007F00001D217B9F
21>67 D<07FFFF0007FFFFE0003C01F0003C00F80078007C0078003C0078001E0078001E007800
1E0078001F00F0001F00F0001F00F0001F00F0001F00F0001F00F0001F01E0001E01E0003E01E0
003E01E0003E01E0003C01E0007C03C0007803C000F003C000F003C001E003C003C003C00F8007
C03F007FFFFC00FFFFE000201F7E9E23>I<07FFFFF807FFFFF8003C00F8003C00780078003800
78003800780038007800380078003800780C3000F0183000F0180000F0180000F0380000FFF800
00FFF80001E0700001E0300001E0300001E0301801E0303001E0003003C0003003C0006003C000
6003C000E003C001C003C003C007C00FC07FFFFF80FFFFFF801D1F7E9E1F>I<07FFFFF807FFFF
F8003C00F8003C0078007800380078003800780038007800380078003800780C3000F0183000F0
180000F0180000F0380000FFF80000FFF80001E0700001E0300001E0300001E0300001E0300001
E0000003C0000003C0000003C0000003C0000003C0000003C0000007C000007FFE0000FFFE0000
1D1F7E9E1E>I<0001FC04000FFF0C003F039C007800FC00F000FC03E0007803C0007807800038
0F0000381F0000381E0000383E0000303E0000307C0000007C0000007C0000007C000000F80000
00F8000000F8007FFCF8007FFCF80001E0780001E0780003C07C0003C03C0003C03C0003C01E00
03C00F0007C007800F8003E0398001FFF080003F80001E217B9F24>I<07FFC7FFC007FFC7FFC0
003C007800003C007800007800F000007800F000007800F000007800F000007800F000007800F0
0000F001E00000F001E00000F001E00000F001E00000FFFFE00000FFFFE00001E003C00001E003
C00001E003C00001E003C00001E003C00001E003C00003C007800003C007800003C007800003C0
07800003C007800003C007800007C00F80007FFCFFF800FFF8FFF800221F7E9E22>I<07FFE007
FFE0003C00003C0000780000780000780000780000780000780000F00000F00000F00000F00000
F00000F00001E00001E00001E00001E00001E00001E00003C00003C00003C00003C00003C00003
C00007C000FFFC00FFFC00131F7F9E10>I<07FFF00007FFF000003C0000003C00000078000000
7800000078000000780000007800000078000000F0000000F0000000F0000000F0000000F00000
00F0000001E0000001E0000001E0000001E0018001E0018001E0030003C0030003C0030003C007
0003C0060003C00E0003C01E0007C07E007FFFFC00FFFFFC00191F7E9E1C>76
D<07FC0000FFC007FC0001FFC0003E0001F800003E00037800006E0003F000006E0006F000006E
0006F000006E000CF0000067000CF00000670018F00000C70019E00000C70031E00000C70031E0
0000C70061E00000C38061E00000C380C1E000018380C3C00001838183C00001838183C0000181
C303C0000181C303C0000181C603C0000301C60780000301CC0780000301CC0780000300F80780
000300F80780000700F00780000F80F00F80007FF0E0FFF800FFF0E1FFF8002A1F7E9E2A>I<07
FC03FFC007FC03FFC0003E007C00003E003800006F003000006F003000006F0030000067803000
00678030000063C0300000C3C0600000C3C0600000C1E0600000C1E0600000C0F0600000C0F060
000180F0C000018078C000018078C00001803CC00001803CC00001803CC00003001F800003001F
800003000F800003000F800003000F800007000780000F800700007FF0030000FFF0030000221F
7E9E22>I<0003F800001FFE00003C1F0000F0078001E003C003C001E0078001E00F8000F00F00
00F01F0000F01E0000F83E0000F83C0000F87C0000F87C0000F87C0000F87C0000F8F80001F0F8
0001F0F80001F0F80001F0F80003E0780003E0780007C07C0007C07C000F803C000F003E001E00
1E003C000F00780007C1F00003FFC00000FE00001D217B9F23>I<07FFFF0007FFFFC0003C03E0
003C01F0007800F0007800F8007800F8007800F8007800F8007800F800F001F000F001F000F001
E000F003C000F00F8000FFFE0001FFF80001E0000001E0000001E0000001E0000001E0000003C0
000003C0000003C0000003C0000003C0000003C0000007C000007FFC0000FFFC00001D1F7E9E1F
>I<07FFFC0007FFFF00003C07C0003C03E0007801E0007801F0007801F0007801F0007801F000
7801E000F003E000F003C000F0078000F01F0000FFFC0000FFF00001E0380001E03C0001E01C00
01E01C0001E01E0001E01E0003C03E0003C03E0003C03E0003C03E0003C03E0603C03E0607C03E
0C7FFC1F18FFFC0FF8000003E01F207E9E21>82 D<003F04007FCC01E0FC03807C03003C070038
0600180E00180E00180E00180E00000F00000F00000FE00007FE0003FF8001FFC0007FE00007E0
0001E00000E00000F00000F06000E06000E06000E06000E07001C0700180F80380FE0F00C7FC00
81F80016217D9F19>I<1FFFFFF81FFFFFF81E03C0F83803C03838078038300780387007801860
0780186007803860078030C00F0030000F0000000F0000000F0000000F0000000F0000001E0000
001E0000001E0000001E0000001E0000001E0000003C0000003C0000003C0000003C0000003C00
00003C0000007C00001FFFF0003FFFF0001D1F7B9E21>I<FFFC7FF8FFFC7FF807800F80078007
000F0006000F0006000F0006000F0006000F0006000F0006001E000C001E000C001E000C001E00
0C001E000C001E000C003C0018003C0018003C0018003C0018003C0018003C0018003800300038
00300038003000380060003C00C0001C00C0001E0180000F07000007FC000001F800001D20799E
22>I<FFF007FEFFF007FE0F0001F00F0000C00F0000C00F000180078001800780030007800700
0780060007800E0007C00C0003C01C0003C0180003C0300003C0300003C0600001E0600001E0C0
0001E0C00001E1800001E1800000F3000000F3000000F6000000F6000000FC000000FC00000078
00000078000000700000007000001F207A9E22>I E /Fq 15 116 df<60F0F0703030306060C0
40040B7D830B>44 D<03000700FF00FF0007000700070007000700070007000700070007000700
07000700070007000700070007000700FFF0FFF00C197D9813>49 D<0F801FE038F07070787878
38787830780070007000E00FC00F8000E000700038003C003C703CF83CF83CF038607870F03FE0
0F800E1A7E9813>51 D<0070007000F000F001F003F00370067006700C701C7018703070307060
70E070FFFFFFFF0070007000700070007007FF07FF10197F9813>I<07801FE0387030306038E0
18E018E01CE01CE01CE01CE01C603C703C307C3FDC1F9C00180018003830307870786071C03F80
1F000E1A7E9813>57 D<0FFF0FFF00780078007800780078007800780078007800780078007800
7800780078007800787078F878F878F878F0F070E03FC00F80101B7F9914>74
D<FFC03FC0FFC03FC01E000E000F000C000F000C000F000C00078018000780180007C0380003C0
300003C0300003E0700001E0600001E0600000F0C00000F0C00000F0C000007980000079800000
798000003F0000003F0000003F0000001E0000001E0000001E0000000C00001A1B7F991D>86
D<3F80FFC0F0E0F070607000700FF03FF07870E070E070E073E07370F37FFE3E3C10107E8F13>
97 D<07C01FF038387018701CFFFCFFFCE000E000E000E0007000300C3C180FF007E00E107F8F
11>101 D<00F801FC03BC073C0E180E000E000E000E000E00FFC0FFC00E000E000E000E000E00
0E000E000E000E000E000E000E007FE07FE00E1A80990C>I<18003C003C001800000000000000
000000000000FC00FC001C001C001C001C001C001C001C001C001C001C001C001C00FF80FF8009
1A80990A>105 D<FCF800FFFC001F1E001E0E001C0E001C0E001C0E001C0E001C0E001C0E001C
0E001C0E001C0E001C0E00FF9FC0FF9FC012107F8F15>110 D<07E01FF8381C700E6006E007E0
07E007E007E007E007700E700E3C3C1FF807E010107F8F13>I<FDE0FFF01F701E201C001C001C
001C001C001C001C001C001C001C00FFC0FFC00C107F8F0F>114 D<1F207FE070E0E060E060F0
007F003FC01FE001F0C070C070E070F0E0FFC08F800C107F8F0F>I E /Fr
10 58 df<1F003F8060C04040C060C060C060C060C060C060C060C06060C060C03F801F000B10
7F8F0F>48 D<18007800F80098001800180018001800180018001800180018001800FF80FF8009
107E8F0F>I<3F007F80F1C0F0E06060006000E000C00180030006001C0038606060FFC0FFC00B
107F8F0F>I<1F003F8071C071C031C001800F800F0001C000E060E0F0E0F0E0F1C07F801F000B
107F8F0F>I<070007000F001F001B003B0033006300E300FFE0FFE00300030003001FE01FE00B
107F8F0F>I<60807F807F007C00600060006F007F8070C060E000E060E0E0E0E1C07F803F000B
107F8F0F>I<07801FC039C061C06000C000DF80FFC0E060C060C060C060606060C03F801F000B
107F8F0F>I<60007FE07FE0C0C0C1800180030006000E000C000C001C001C001C001C001C0008
000B117E900F>I<1F003F8061C060C060C079C03F801F803FC063E0C0E0C060C06060C03F801F
000B107F8F0F>I<1F003F8060C0C0C0C060C060C060C0E07FE03F60006000C070C071807F003E
000B107F8F0F>I E /Fs 49 122 df<1C3E7E7E3E060C0C18183060C080070E769F0E>39
D<7FF0FFE0FFE00C037D8A10>45 D<70F8F8F0E005057B840E>I<0000006000000060000000E0
000000C0000001C00000038000000300000007000000060000000E0000001C0000001800000038
000000300000007000000060000000E0000001C000000180000003800000030000000700000006
0000000E0000001C0000001800000038000000300000007000000060000000E0000001C0000001
800000038000000300000007000000060000000E0000001C000000180000003800000030000000
70000000E0000000C00000001B2D80A117>I<000F80003FE000F0F001C0700380700380380700
780F00780F00780E00781E00781E00703C00F03C00F03C00F03C00F07801E07801E07801E07801
C07003C0F003C0F00380F00780F00700700F00700E00701C003878001FF0000FC000151F7C9D17
>I<000200060006000E003C00FC07DC071C0038003800380038007000700070007000E000E000
E000E001C001C001C001C00380038003800380FFF8FFF80F1E7B9D17>I<000F80003FC00070E0
00C0700180780330380638380618780C30780C30780C60780CE0780FC0F00701E00001C0000380
000700001E0000380000E00001C0000700000E00300C00301800603000E07F81C07FFFC061FF80
C07F00C03C00151F7D9D17>I<001F80007FE000E0E00180700300380660380670380630380660
7007C0700380600000E00001C000078000FE0000FE000007000007000007800007800007803007
80780780780780F00F00C00F00601E00603C007078003FE0001F8000151F7C9D17>I<001F0000
7F8000E1C001C1C00380E00700E00F00E00F01E01E01E01E01E01E01E01E01C01C03C03C03C03C
07C01C07C01C0F801C1F800F778007E700000F00000E00001E00001C00603C00F03800F07000E0
E000C1C0007F80003E0000131F7B9D17>57 D<070F1F1F0E0000000000000000000070F8F8F0E0
08147B930E>I<000007000000070000000F0000000F0000001F0000003F0000003F0000006F00
00006F000000CF000000CF0000018F0000038F0000030F0000060F0000060F00000C0F80000C07
800018078000180780003FFF80007FFF800060078000C0078000C0078001800780018007800300
0780070007800F0007807FC07FF8FFC07FF81D207E9F22>65 D<0000FC020007FF06001F818C00
3C00DC0070007C01E0007C03C0003803800038070000380F0000381E0000301E0000303C000030
3C00000078000000780000007800000078000000F0000000F0000000F0000000F00000C0F00001
807000018070000300780003007800060038000C001C0018000E0030000780E00003FF800000FE
00001F217A9F21>67 D<01FFFFFE01FFFFFC001E003C001E001C001E001C003C000C003C000C00
3C000C003C001800780C1800780C1800780C0000781C0000F0380000FFF80000FFF80000F03800
01E0300001E0300001E0303001E0306003C0006003C0006003C000C003C001C007800180078003
800780070007801F00FFFFFF00FFFFFE001F1F7D9E1F>69 D<01FFFFFC01FFFFF8001E0078001E
0038001E0038003C0018003C0018003C0018003C003000780C3000780C3000780C0000781C0000
F0380000FFF80000FFF80000F0380001E0300001E0300001E0300001E0300003C0000003C00000
03C0000003C0000007800000078000000780000007800000FFFC0000FFF800001E1F7D9E1E>I<
0001FC040007FE0C001F0398003C01B800F000F801E000F803C0007007800070070000700F0000
701E0000601E0000603C0000603C00000078000000780000007800000078000000F0000000F000
FFF0F000FFF0F0000780F0000F00F0000F0070000F0078000F0078001E0038001E003C003E001E
007E000F81EC0003FF840000FE00001E217A9F23>I<01FFF3FFE001FFF3FFE0001E003C00001E
003C00001E003C00003C007800003C007800003C007800003C007800007800F000007800F00000
7800F000007800F00000F001E00000FFFFE00000FFFFE00000F001E00001E003C00001E003C000
01E003C00001E003C00003C007800003C007800003C007800003C007800007800F000007800F00
0007800F000007800F0000FFF9FFF000FFF1FFE000231F7D9E22>I<01FFF001FFF0001E00001E
00001E00003C00003C00003C00003C0000780000780000780000780000F00000F00000F00000F0
0001E00001E00001E00001E00003C00003C00003C00003C000078000078000078000078000FFF8
00FFF800141F7D9E12>I<01FF00FFE001FF00FFE0001F001E00001F800C00001F800C00003780
18000033C018000033C018000033C018000063C030000061E030000061E030000061E0300000C0
F0600000C0F0600000C0F0600000C0786000018078C000018078C00001803CC00001803CC00003
003D800003001F800003001F800003001F800006000F000006000F000006000F00000E000F0000
FFE0060000FFC0060000231F7D9E22>78 D<0001FC000007FF00001F07C0003801E000F000E001
E0007003C0007007800078070000380F0000381E0000381E0000383C0000383C00003878000078
780000787800007878000078F00000F0F00000F0F00000E0F00001E0F00001C0F00003C0700007
807800070078000F0038001E003C003C001E00F0000F83E00007FF800001FC00001D217A9F23>
I<01FFFF8001FFFFE0001E00F0001E0078001E0038003C003C003C003C003C003C003C003C0078
00780078007800780070007800E000F001E000F0078000FFFF0000FFF80001E0000001E0000001
E0000001E0000003C0000003C0000003C0000003C0000007800000078000000780000007800000
FFF80000FFF000001E1F7D9E1F>I<01FFFF0001FFFFC0001E01E0001E00F0001E0078003C0078
003C0078003C0078003C0078007800F0007800F0007801E0007803C000F00F0000FFFE0000FFF8
0000F03C0001E01E0001E00E0001E00F0001E00F0003C01E0003C01E0003C01E0003C01E000780
3C0007803C1807803C1807803C30FFF81E30FFF00FE0000007C01D207D9E21>82
D<0007E040001FF8C0003C1D8000700F8000E0078001C007800180030003800300038003000380
0300038000000380000003C0000003F8000001FF800001FFE000007FF000001FF0000001F80000
00780000003800000038000000380030003800300038003000300070007000700060007800E000
7801C000EE078000C7FE000081F800001A217D9F1A>I<0FFFFFF01FFFFFE01E0781E0180780E0
38078060300F0060300F0060600F0060600F00C0C01E00C0C01E00C0001E0000001E0000003C00
00003C0000003C0000003C00000078000000780000007800000078000000F0000000F0000000F0
000000F0000001E0000001E0000001E0000003E00000FFFF0000FFFF00001C1F789E21>I<7FFC
3FF87FFC3FF80780078007800300078003000F0006000F0006000F0006000F0006001E000C001E
000C001E000C001E000C003C0018003C0018003C0018003C001800780030007800300078003000
78003000F0006000F0006000F0006000F000C000F00080007001800070030000380600003C1C00
001FF8000007E000001D20779E22>I<FFF00FFCFFF00FFC0F0003C00F0001800F0003000F0003
000F0006000F000E000F000C000F0018000F8018000780300007803000078060000780E0000780
C0000781800007818000078300000787000007860000078C0000078C000007D8000003D8000003
F0000003F0000003E0000003C0000003C0000003800000038000001E20779E22>I<FFF0FFE1FF
80FFE0FFE1FF801F001E003C001E001E0030001E003E0030001E007E0060001E007E0060001E00
FE00C0001E00DE00C0001F01DE0180001F019E0180000F031E0300000F031E0300000F061E0600
000F061E0600000F0C1E0C00000F0C1E0C00000F181E1800000F181E1800000F301E3000000F30
1E3000000F601E6000000F601EE000000FC01EC000000FC01FC000000F801F8000000F800F8000
000F000F0000000F000E0000000E000E0000000E000C0000000C000C0000002920779E2D>I<00
F18003FDC0078F800E07801C07803C07803C0700780700780700780700F00E00F00E00F00E00F0
0E30F01C60F03C60707C6078FCC03FCFC00F078014147C9317>97 D<07803F803F000700070007
000E000E000E000E001C001C001CF01FFC3F1E3E0E3C0F380F700F700F700F700FE01EE01EE01E
E03CE03CE038607071E03FC01F0010207B9F15>I<007E0001FF000383800F07801E07801C0700
3C0200780000780000780000F00000F00000F00000F00000F00000700200700700381E001FF800
07E00011147C9315>I<0000780003F80003F00000700000700000700000E00000E00000E00000
E00001C00001C000F1C003FDC0078F800E07801C07803C07803C0700780700780700780700F00E
00F00E00F00E00F00E30F01C60F03C60707C6078FCC03FCFC00F078015207C9F17>I<007C0001
FF000783000F01801E01803C01803C0300780E007FFC007FE000F00000F00000F00000F0000070
00007002007807003C1E001FF80007E00011147C9315>I<0000F80001FC0003BC00033C000718
000700000700000E00000E00000E00000E00000E0001FFE001FFE0001C00001C00001C00003800
00380000380000380000380000700000700000700000700000700000700000E00000E00000E000
00E00001C00001C00001C0000180003380007B8000F300007E00003C00001629829F0E>I<003C
6000FF7001E3E00381E00701E00F01E00F01C01E01C01E01C01E01C03C03803C03803C03803C03
803C07003C0F001C1F001E3F000FFE0003CE00000E00000E00001C00001C00301C00783800F0F0
007FE0003F8000141D7E9315>I<01E0000FE0000FC00001C00001C00001C00003800003800003
8000038000070000070000073E00077F000EC3800F81C00F01C00E01C01E03801C03801C03801C
0380380700380700380700380E18700E30700E30701C60700C60E00FC060078015207D9F17>I<
006000F000F000E000000000000000000000000000000F001F80318031C063806380C380070007
0007000E000E000E001C301C601C6038C018C01F800F000C1F7D9E0E>I<01E0000FE0000FC000
01C00001C00001C0000380000380000380000380000700000700000703C00707E00E0C600E10E0
0E21E00E61E01CC1C01F80001F00001FC00039E0003870003870003838607070C07070C07070C0
703180E03F00601E0013207D9F15>107 D<03C01FC01F8003800380038007000700070007000E
000E000E000E001C001C001C001C0038003800380038007000700070007180E300E300E300E600
7E003C000A207C9F0C>I<1E07C0F8003F1FE1FC0033B8730E0063E076070063C03C0700638038
0700C780780E000700700E000700700E000700700E000E00E01C000E00E01C000E00E01C000E00
E038601C01C038C01C01C038C01C01C071801C01C031803803803F001801801E0023147D9325>
I<1E07C03F1FE033B87063E07063C038638038C780700700700700700700700E00E00E00E00E00
E00E01C31C01C61C01C61C038C1C018C3801F81800F018147D931A>I<007C0001FF000383800F
01C01E01C01C01E03C01E07801E07801E07801E0F003C0F003C0F003C0F00780F00700700F0070
1E003838001FF00007C00013147C9317>I<03C1E007E7F8067E3C0C7C1C0C781E0C701E18E01E
00E01E00E01E00E01E01C03C01C03C01C03C01C07803C07803C07003C0E003E3C0077F80071E00
0700000700000E00000E00000E00000E00001C0000FFC000FFC000171D809317>I<1E0F003F3F
8033F1C063C1C063C3C06383C0C783800700000700000700000E00000E00000E00000E00001C00
001C00001C00001C000038000018000012147D9313>114 D<00FC03FE07070E0F0E0F0E0E1E00
0F800FF007F803FC003E001E701EF01CF01CE03860703FE01F8010147D9313>I<018001C00380
03800380038007000700FFF0FFF00E000E000E000E001C001C001C001C00380038003800383070
60706070C071803F001E000C1C7C9B0F>I<0F00601F80703180E031C0E06380E06380E0C381C0
0701C00701C00701C00E03800E03800E03800E038C0E07180E07180E0F180E1F3007F3F003E1E0
16147D9318>I<0F01C01F83C03183E031C1E06380E06380E0C380C00700C00700C00700C00E01
800E01800E01800E03000E03000E06000E06000F0C0007F80001E00013147D9315>I<0F0060E0
1F8071E03180E1F031C0E0F06380E0706380E070C381C0600701C0600701C0600701C0600E0380
C00E0380C00E0380C00E0381800E0381800E0781000E078300070F860007F9FC0001F0F8001C14
7D931E>I<0787800FCFC018F8E03070E06071E06071E0C0E1C000E00000E00000E00001C00001
C00001C00071C060F380C0F380C0E38180C7C3007CFE00387C0013147D9315>I<0F00601F8070
3180E031C0E06380E06380E0C381C00701C00701C00701C00E03800E03800E03800E03800E0700
0E07000E0F000E1F0007FE0003EE00000E00000E00001C00781C0078380070700060E0003FC000
1F0000141D7D9316>I E /Ft 81 124 df<000FC3E0007FEFF000E07C7801C0F8780380F83007
007000070070000700700007007000070070000700700007007000FFFFFF80FFFFFF8007007000
070070000700700007007000070070000700700007007000070070000700700007007000070070
0007007000070070000700700007007000070070007FE3FF007FE3FF001D20809F1B>11
D<001F80007FC001E0E00381E00381E00701E0070000070000070000070000070000070000FFFF
E0FFFFE00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700
E00700E00700E00700E00700E07FC3FE7FC3FE1720809F19>I<001FE0007FE001E1E00381E003
80E00700E00700E00700E00700E00700E00700E00700E0FFFFE0FFFFE00700E00700E00700E007
00E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E07F
E7FE7FE7FE1720809F19>I<000F80F800007FE7FE0000E06E060001C0FC0F000380F80F000700
F00F00070070000007007000000700700000070070000007007000000700700000FFFFFFFF00FF
FFFFFF000700700700070070070007007007000700700700070070070007007007000700700700
070070070007007007000700700700070070070007007007000700700700070070070007007007
0007007007007FE3FE3FF07FE3FE3FF02420809F26>I<7038F87CFC7EFC7E7C3E0C060C060C06
180C180C381C3018603040200F0E7E9F17>34 D<70F8FCFC7C0C0C0C181838306040060E7C9F0D
>39 D<006000C001800300070006000C001C00180038003800300070007000700060006000E000
E000E000E000E000E000E000E000E000E000E000E0006000600070007000700030003800380018
001C000C00060007000300018000C000600B2E7DA112>I<C0006000300018001C000C00060007
00030003800380018001C001C001C000C000C000E000E000E000E000E000E000E000E000E000E0
00E000E000C000C001C001C001C00180038003800300070006000C001C00180030006000C0000B
2E7DA112>I<000600000006000000060000000600000006000000060000000600000006000000
060000000600000006000000060000000600000006000000060000FFFFFFF0FFFFFFF000060000
000600000006000000060000000600000006000000060000000600000006000000060000000600
00000600000006000000060000000600001C207D9A23>43 D<70F8FCFC7C0C0C0C181838306040
060E7C840D>I<FFC0FFC0FFC00A037F8A0F>I<70F8F8F87005057C840D>I<0003000300070006
0006000E000C000C001C0018001800380030003000700060006000E000C000C001C00180018001
800380030003000700060006000E000C000C001C0018001800380030003000700060006000E000
C000C000102D7DA117>I<03F0000FFC001E1E001C0E00380700780780700380700380700380F0
03C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C070
03807003807003807807803807001C0E001E1E000FFC0003F000121F7E9D17>I<018003801F80
FF80E3800380038003800380038003800380038003800380038003800380038003800380038003
8003800380038003800380FFFEFFFE0F1E7C9D17>I<03F0000FFC00183E00300F00600F80C007
80F007C0F807C0F803C0F803C02003C00007C0000780000780000F00000E00001C000038000070
0000E00001C0000380000300000600C00C00C01800C03001807FFF80FFFF80FFFF80121E7E9D17
>I<03F0000FFC001C1E00300F00780F80780F80780780380F80000F80000F00000F00001E0000
3C0003F80003F000001C00000E00000F000007800007800007C02007C0F807C0F807C0F807C0F0
0780600F80700F003C1E001FFC0003F000121F7E9D17>I<000E00000E00001E00003E00003E00
006E0000EE0000CE00018E00038E00030E00060E000E0E000C0E00180E00380E00300E00600E00
E00E00FFFFF0FFFFF0000E00000E00000E00000E00000E00000E00000E0000FFE000FFE0141E7F
9D17>I<3803003FFF003FFE003FF8003FE00030000030000030000030000030000030000031F0
0037FC003E0E003C07003807803003800003800003C00003C00003C06003C0F003C0F003C0F003
80C00780600700700E003C1E000FF80007E000121F7E9D17>I<007C0001FE000783000E03800C
07801C0780380300380000780000700000700000F3F800F7FE00FC0E00F80700F80380F80380F0
03C0F003C0F003C0F003C0F003C07003C07003C07003803803803807001C07000E1E0007FC0001
F000121F7E9D17>I<6000007FFFC07FFFC07FFF80600180C00300C00600C00600000C00001800
00180000300000600000600000E00000C00001C00001C00001C000038000038000038000038000
078000078000078000078000078000078000078000030000121F7D9D17>I<03F0000FFC001E1E
003807003007007003807003807003807003807807003E07003F0E001FDC000FF80003F80007FC
001E7E00383F00700F80700780E003C0E001C0E001C0E001C0E001C0F001807003803807001E0E
000FFC0003F000121F7E9D17>I<03F00007F8001E1C00380E00380700700700700380F00380F0
0380F003C0F003C0F003C0F003C0F003C07007C07007C0380FC01C0FC01FFBC007F3C000038000
0380000780000700300700780E00780E00701C003078001FF0000FC000121F7E9D17>I<70F8F8
F8700000000000000000000070F8F8F87005147C930D>I<70F8F8F87000000000000000000000
70F8F8F878181818183030606040051D7C930D>I<7FFFFFE0FFFFFFF000000000000000000000
00000000000000000000000000000000000000000000FFFFFFF07FFFFFE01C0C7D9023>61
D<0003800000038000000380000007C0000007C0000007C000000DE000000DE000000DE0000018
F0000018F0000018F00000307800003078000030780000603C0000603C0000603C0000E01E0000
C01E0000FFFE0001FFFF0001800F0001800F0003800F800300078003000780070007C0070003C0
0F8003C0FFE03FFEFFE03FFE1F207F9F22>65 D<FFFFE000FFFFF80007803E0007801F0007800F
0007800F8007800F8007800F8007800F8007800F8007800F0007801F0007803E0007807C0007FF
F80007FFFC0007801E0007800F0007800F8007800780078007C0078007C0078007C0078007C007
8007C00780078007800F8007801F0007803E00FFFFFC00FFFFF0001A1F7E9E20>I<001FC04000
7FF0C001F839C003C00DC0078007C00F0003C01E0003C03E0001C03C0001C07C0001C07C0000C0
780000C0F80000C0F8000000F8000000F8000000F8000000F8000000F8000000F8000000F80000
00780000C07C0000C07C0000C03C0000C03E0001801E0001800F0003000780030003C00E0001F8
1C00007FF000001FC0001A217D9F21>I<FFFFE000FFFFFC0007803E0007800F00078007800780
03C0078003E0078001E0078001F0078000F0078000F0078000F8078000F8078000F8078000F807
8000F8078000F8078000F8078000F8078000F8078000F0078000F0078001F0078001E0078001E0
078003C00780078007800F0007803E00FFFFFC00FFFFE0001D1F7E9E23>I<FFFFFF00FFFFFF00
07801F000780070007800300078003000780038007800180078001800780C1800780C1800780C0
000780C0000781C00007FFC00007FFC0000781C0000780C0000780C0000780C0600780C0600780
0060078000C0078000C0078000C0078001C0078001C0078003C007800F80FFFFFF80FFFFFF801B
1F7E9E1F>I<FFFFFF00FFFFFF0007801F00078007000780030007800300078003800780018007
8001800780C1800780C1800780C0000780C0000781C00007FFC00007FFC0000781C0000780C000
0780C0000780C0000780C000078000000780000007800000078000000780000007800000078000
0007800000FFFE0000FFFE0000191F7E9E1E>I<000FC020007FF86001F81CE003E006E0078003
E00F0001E01E0001E01E0000E03C0000E07C0000E07C00006078000060F8000060F8000000F800
0000F8000000F8000000F8000000F8000000F8007FFCF8007FFC780001E07C0001E07C0001E03C
0001E01E0001E01E0001E00F0001E0078003E003E003E001F80E60007FFC20000FE0001E217D9F
24>I<FFF8FFF8FFF8FFF807800F0007800F0007800F0007800F0007800F0007800F0007800F00
07800F0007800F0007800F0007800F0007800F0007FFFF0007FFFF0007800F0007800F0007800F
0007800F0007800F0007800F0007800F0007800F0007800F0007800F0007800F0007800F000780
0F00FFF8FFF8FFF8FFF81D1F7E9E22>I<FFFCFFFC078007800780078007800780078007800780
078007800780078007800780078007800780078007800780078007800780078007800780FFFCFF
FC0E1F7F9E10>I<0FFFC00FFFC0003C00003C00003C00003C00003C00003C00003C00003C0000
3C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C0020
3C00F83C00F83C00F83C00F0780060780070F0003FE0000F800012207E9E17>I<FFFC1FFCFFFC
1FFC078007C0078007000780060007800C000780180007803000078070000780E0000781C00007
8380000787000007878000078F8000079BC00007B1E00007E1E00007C0F0000780F00007807800
07803C0007803C0007801E0007801E0007800F000780078007800780078007C0FFFC3FFCFFFC3F
FC1E1F7E9E23>I<FFFE00FFFE0007800007800007800007800007800007800007800007800007
800007800007800007800007800007800007800007800007800007800607800607800607800607
800E07800E07800C07801C07803C0780FCFFFFFCFFFFFC171F7E9E1C>I<FF80001FF8FFC0003F
F807C0003F0007C0003F0006E0006F0006E0006F0006E0006F00067000CF00067000CF00067000
CF000638018F000638018F000638018F00061C030F00061C030F00061C030F00060E060F00060E
060F00060E060F0006070C0F0006070C0F0006070C0F000603980F000603980F000603980F0006
01F00F000601F00F000601F00F000F00E00F00FFF0E1FFF8FFF0E1FFF8251F7E9E2A>I<FF807F
F8FFC07FF807C0078007E0030007E0030006F0030006F0030006780300063C0300063C0300061E
0300061E0300060F0300060F0300060783000607C3000603C3000601E3000601E3000600F30006
00F30006007B0006007B0006003F0006001F0006001F0006000F0006000F000F000700FFF00700
FFF003001D1F7E9E22>I<001F800000FFF00001E0780007C03E000F801F000F000F001E000780
3C0003C03C0003C07C0003E07C0003E0780001E0F80001F0F80001F0F80001F0F80001F0F80001
F0F80001F0F80001F0F80001F0F80001F0780001E07C0003E07C0003E03C0003C03E0007C01E00
07800F000F000F801F0007C03E0001F0F80000FFF000001F80001C217D9F23>I<FFFFE000FFFF
F80007807C0007801E0007801F0007800F0007800F8007800F8007800F8007800F8007800F8007
800F0007801F0007801E0007807C0007FFF80007FFE00007800000078000000780000007800000
0780000007800000078000000780000007800000078000000780000007800000FFFC0000FFFC00
00191F7E9E1F>I<001F800000FFF00001E0780007C03E000F801F000F000F001E0007803E0007
C03C0003C07C0003E07C0003E0780001E0F80001F0F80001F0F80001F0F80001F0F80001F0F800
01F0F80001F0F80001F0F80001F0780001E07C0003E07C0003E03C0003C03E0F07C01E1F87800F
38CF000FB0DF0007F0FE0001F0780000FFF010001FF01000007010000078300000387000003FF0
00003FE000001FE000000FC0000007801C297D9F23>I<FFFF8000FFFFF0000780F80007803C00
07803E0007801E0007801F0007801F0007801F0007801F0007801E0007803E0007803C000780F8
0007FFF00007FF80000781C0000780E00007807000078070000780780007807800078078000780
7C0007807C0007807C0007807C0C07807E0C07803E0CFFFC1F18FFFC0FF0000003E01E207E9E21
>I<07E0800FF9801C1F80300F80700780600380E00380E00180E00180E00180F00000F0000078
00007F00003FF0001FFC000FFE0003FF00001F800007800003C00003C00001C0C001C0C001C0C0
01C0C001C0E00180F00380F80700FE0E00CFFC0081F80012217D9F19>I<7FFFFFE07FFFFFE078
0F01E0700F00E0600F0060600F0060E00F0070C00F0030C00F0030C00F0030C00F0030000F0000
000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F00
00000F0000000F0000000F0000000F0000000F0000000F0000000F000007FFFE0007FFFE001C1F
7E9E21>I<FFFC7FF8FFFC7FF80780078007800300078003000780030007800300078003000780
030007800300078003000780030007800300078003000780030007800300078003000780030007
80030007800300078003000780030007800300078003000380020003C0060003C0060001C00C00
00E0180000783000003FE000000FC0001D207E9E22>I<FFF007FEFFF007FE0F8001F00F0000E0
078000C0078000C007C001C003C0018003C0018003E0038001E0030001E0030000F0060000F006
0000F0060000780C0000780C0000780C00003C1800003C1800003C1800001E3000001E3000001F
7000000F6000000F6000000FE0000007C0000007C0000003800000038000000380001F207F9E22
>I<FFF07FF83FF0FFF07FF83FF00F0007800F800F00078003000F000780030007800FC0060007
800FC0060007800FC00600078019E00E0003C019E00C0003C019E00C0003C039E00C0001E030F0
180001E030F0180001E030F0180000F06078300000F06078300000F06078300000F0E07C300000
78C03C60000078C03C60000078C03C6000003D801EC000003D801EC000003D801EC000003F000F
C000001F000F8000001F000F8000001F000F8000000E00070000000E00070000000E000700002C
207F9E2F>I<FFF007FFFFF007FF0F8001F0078000C007C001C003E0018001E0038001F0030000
F0070000F80600007C0C00003C0C00003E1800001E3800001F3000000FF0000007E0000007C000
0003C0000003C0000003C0000003C0000003C0000003C0000003C0000003C0000003C0000003C0
000003C000007FFE00007FFE00201F7F9E22>89 D<7FFFF87FFFF87E00F07801F07001E06003E0
E003C0E00780C00780C00F00C01F00001E00003C00003C0000780000F80000F00001E00001E00C
03C00C07C00C07800C0F001C0F001C1E00183E00183C00387C00787801F8FFFFF8FFFFF8161F7D
9E1C>I<FEFEC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
C0C0C0C0C0C0C0C0FEFE072D7CA10D>I<0804180C3018703860306030C060C060C060F87CFC7E
FC7E7C3E381C0F0E7B9F17>I<FEFE060606060606060606060606060606060606060606060606
0606060606060606060606060606060606FEFE072D7FA10D>I<1FE0003FF000783800781C0030
0E00000E00000E00000E0003FE001FFE003E0E00780E00F80E00F00E30F00E30F00E30F01E3078
3F703FEFE00F878014147E9317>97 D<0E0000FE0000FE00000E00000E00000E00000E00000E00
000E00000E00000E00000E00000E3F000EFF800FC3C00F00E00E00F00E00700E00780E00780E00
780E00780E00780E00780E00780E00700E00F00F00F00F01E00FC3C00CFF800C3E0015207F9F19
>I<03F80FFC1E1E3C1E380C78007000F000F000F000F000F000F0007000780038033C031F0E0F
FC03F010147E9314>I<000380003F80003F800003800003800003800003800003800003800003
8000038000038003E3800FFB801E0F803C0780780380780380700380F00380F00380F00380F003
80F00380F003807003807003807807803807801E1F800FFBF803E3F815207E9F19>I<03F0000F
FC001E1E003C0F00380700780700700380F00380FFFF80FFFF80F00000F00000F0000070000078
00003801801C03800F070007FE0001F80011147F9314>I<003C00FE01CF038F03060700070007
000700070007000700FFF0FFF00700070007000700070007000700070007000700070007000700
0700070007007FF07FF01020809F0E>I<0001E003E3F00FFF701C1C703C1E00380E00780F0078
0F00780F00780F00380E003C1E001C1C003FF80033E0003000003000003800003FFE001FFF803F
FFC07003E07000F0E00070E00070E00070F000F07801E03E07C00FFF0003FC00141F7F9417>I<
0E0000FE0000FE00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E3E00
0EFF000FC3800F01C00F01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C0
0E01C00E01C00E01C00E01C0FFE7FCFFE7FC16207F9F19>I<1C001E003E001E001C0000000000
00000000000000000E007E007E000E000E000E000E000E000E000E000E000E000E000E000E000E
000E000E00FFC0FFC00A1F809E0C>I<00E001F001F001F000E000000000000000000000000000
7007F007F000F00070007000700070007000700070007000700070007000700070007000700070
00700070007000706070F0E0F1C07F803E000C28829E0E>I<0E0000FE0000FE00000E00000E00
000E00000E00000E00000E00000E00000E00000E00000E1FF00E1FF00E0F800E0E000E0C000E18
000E30000E70000EF0000FF8000F38000E1C000E1E000E0E000E07000E07800E03800E03C0FFCF
F8FFCFF815207F9F18>I<0E00FE00FE000E000E000E000E000E000E000E000E000E000E000E00
0E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E00FFE0FFE00B2080
9F0C>I<0E3F03F000FEFF8FF800FFC1DC1C000F80F80E000F00F00E000E00E00E000E00E00E00
0E00E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E
000E00E00E000E00E00E000E00E00E00FFE7FE7FE0FFE7FE7FE023147F9326>I<0E3E00FEFF00
FFC3800F01C00F01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C0
0E01C00E01C00E01C0FFE7FCFFE7FC16147F9319>I<01F80007FE001E07803C03C03801C07000
E07000E0F000F0F000F0F000F0F000F0F000F0F000F07000E07801E03801C03C03C01E078007FE
0001F80014147F9317>I<0E3F00FEFF80FFC3C00F01E00E00F00E00F00E00780E00780E00780E
00780E00780E00780E00780E00700E00F00F00F00F01E00FC3C00EFF800E3E000E00000E00000E
00000E00000E00000E00000E0000FFE000FFE000151D7F9319>I<03E1800FF9801E1F803C0780
780780780380700380F00380F00380F00380F00380F00380F003807003807803807807803C0F80
1E1F800FF38003E380000380000380000380000380000380000380000380003FF8003FF8151D7E
9318>I<0E78FEFCFF9E0F1E0F0C0F000E000E000E000E000E000E000E000E000E000E000E000E
00FFE0FFE00F147F9312>I<1F903FF07070E030E030E030F00078007F803FE00FF000F0C078C0
38C038E038E038F070DFE08F800D147E9312>I<06000600060006000E000E001E003E00FFF8FF
F80E000E000E000E000E000E000E000E000E000E000E180E180E180E180E18073007E003C00D1C
7F9B12>I<0E01C0FE1FC0FE1FC00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E
01C00E01C00E01C00E01C00E03C00E03C0070FC007FDFC01F1FC16147F9319>I<FF87F8FF87F8
1E01E00E01C00E01800E0180070300070300070300038600038600038E0001CC0001CC0001FC00
00F80000F80000700000700000700015147F9318>I<FF9FF3FCFF9FF3FC1C0780F01C0780601C
07C0E00E0FC0C00E0CC0C00E0CE0C0070CE18007186180071871800398730003B0330003B03300
03B03F0001F03E0001E01E0001E01E0000E01C0000C00C001E147F9321>I<7FC7FC7FC7FC0703
E007038003830001C70000EE0000EC00007800003800003C00007C0000EE0001C7000187000303
800701C00F01E0FF87FEFF87FE1714809318>I<FF87F8FF87F81E01E00E01C00E01800E018007
0300070300070300038600038600038E0001CC0001CC0001FC0000F80000F80000700000700000
700000600000600000600000C000F0C000F18000F380007F00003C0000151D7F9318>I<3FFF3F
FF380E301C703C6038607060F001E001C0038007830F030E031C073C063806701EFFFEFFFE1014
7F9314>I<FFFFFCFFFFFC1602808C17>I E /Fu 34 119 df<F8F8F8F8F805057B8410>46
D<00000C00001C00001C00003C0000380000380000780000700000700000F00000E00000E00001
E00001C00001C00003C0000380000380000780000700000700000F00000E00000E00001E00001C
00001C00003C0000380000780000700000700000F00000E00000E00001E00001C00001C00003C0
000380000380000780000700000700000F00000E00000E00001E00001C00001C00003C00003800
00380000780000700000700000F00000E00000E00000E00000163C7DAC1D>I<00180000380000
F80007F800FFF800FFF800FFF800F8F80000F80000F80000F80000F80000F80000F80000F80000
F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000
F80000F80000F80000F80000F80000F80000F80000F8007FFFF07FFFF07FFFF07FFFF014287CA7
1D>49 D<00FE0003FF800FFFC01FFFE01F07F03C01F87800FC78007C70007CF0003EF0003E6000
3E20003E00003E00003E00003E00007C00007C0000780000F80001F00001E00003E00007C0000F
80001F00003E00007C0000F80001F00003E00003C0000780000F00001E00003C00007FFFFE7FFF
FE7FFFFE7FFFFE17287EA71D>I<007E0003FF8007FFE00FFFF01F81F83E00F87C007C78007C30
007C10007C00007C00007C0000780000F80000F80001F00007E000FFC000FF8000FFC000FFF000
01F80000FC00007C00003E00003E00001F00001F00001F00001F00001F80001FC0003EE0003EF0
007E7C00FC3F01F81FFFF00FFFE003FFC000FE0018297EA71D>I<0007E0000FE0000BE0001BE0
001BE0003BE0003BE00073E00073E000F3E000F3E001E3E001E3E003E3E003C3E007C3E00F83E0
0F83E01F03E01F03E03E03E03E03E07C03E07C03E0F803E0FFFFFFFFFFFFFFFFFFFFFFFF0003E0
0003E00003E00003E00003E00003E00003E00003E00003E00003E018277EA61D>I<3FFFF83FFF
F83FFFF83FFFF83E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E3E
003EFF803FFFE03FFFF03FC1F03F80F83F007C3E007C00007C00003E00003E00003E00003E0000
3E00003E00003E20003E60007C70007CF800F87C01F87F07F03FFFE00FFFC007FF0001FC001728
7EA61D>I<000FE0003FF800FFF801FFF803F81807E0000F80000F80001F00003E00003E00003C
00007C00007C02007C3FC0F8FFE0F9FFF0FBFFF8FF80FCFE007CFE003EFC003EFC003FFC001FF8
001FF8001FF8001FF8001F78001F7C001F7C001F7C001E3C003E3E003E1E007C1F00FC0FC1F807
FFF003FFE001FF80007E0018297EA71D>I<FFFFFFFFFFFFFFFFFFFFFFFF00000F00001E00003C
0000780000780000F00001F00001E00003E00003C00007C0000F80000F80000F00001F00001E00
003E00003E00003C00007C00007C00007C0000F80000F80000F80000F80000F80000F00001F000
01F00001F00001F00001F00001F00001F00018277EA61D>I<007E0003FFC007FFE00FFFF01F81
F83F00FC3E007C7E007E7C003E7C003E7C003E7C003E7C003E3E007C3E007C1F00F80FC3F007FF
E003FFC003FFC00FFFF01F81F83F00FC3E007C7C003E7C003EF8001FF8001FF8001FF8001FF800
1FF8001F7C003E7C003E7E007E3F00FC1F81F80FFFF007FFE003FFC0007E0018297EA71D>I<00
03FE00000FFFC0003FFFF000FFFFF001FE03F003F8006007E0002007C000000F8000001F800000
1F0000003E0000003E0000007C0000007C0000007C0000007C000000F8000000F8000000F80000
00F8000000F8000000F8000000F8000000F8000000F8000000F80000007C0000007C0000007C00
00007C0000003E0000003E0000001F0000001F8000000F80000007C0000007E0000803F8003801
FE01F800FFFFF8003FFFF0000FFFC00003FE001D2C7CAA25>67 D<FFFFFFC0FFFFFFC0FFFFFFC0
FFFFFFC0F8000000F8000000F8000000F8000000F8000000F8000000F8000000F8000000F80000
00F8000000F8000000F8000000F8000000F8000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00F800
0000F8000000F8000000F8000000F8000000F8000000F8000000F8000000F8000000F8000000F8
000000F8000000F8000000F8000000F8000000F8000000FFFFFFE0FFFFFFE0FFFFFFE0FFFFFFE0
1B2A7BA923>69 D<FFFFFF80FFFFFF80FFFFFF80FFFFFF80F8000000F8000000F8000000F80000
00F8000000F8000000F8000000F8000000F8000000F8000000F8000000F8000000F8000000F800
0000F8000000FFFFFC00FFFFFC00FFFFFC00FFFFFC00F8000000F8000000F8000000F8000000F8
000000F8000000F8000000F8000000F8000000F8000000F8000000F8000000F8000000F8000000
F8000000F8000000F8000000F8000000F8000000192A7BA921>I<F8F8F8F8F8F8F8F8F8F8F8F8
F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8052A7BA910>73
D<0003FC0000000FFF0000003FFFC00000FFFFF00001FE07F80003F801FC0007E0007E000FC000
3F000F80001F001F00000F801F00000F803E000007C03E000007C07C000003E07C000003E07C00
0003E078000001E0F8000001F0F8000001F0F8000001F0F8000001F0F8000001F0F8000001F0F8
000001F0F8000001F0F8000001F0F8000001F07C000003E07C000003E07C000003E07E000007E0
3E000007C03E000007C01F00000F801F80001F800F80001F000FC0003F0007E0007E0003F801FC
0001FE07F80000FFFFF000003FFFC000001FFF80000003FC0000242C7DAA2B>79
D<F8000001F0FC000001F07C000003E07C000003E07E000003E03E000007C03E000007C01F0000
0F801F00000F801F00000F800F80001F000F80001F000FC0001F0007C0003E0007C0003E0007E0
003E0003E0007C0003E0007C0001F000780001F000F80001F000F80000F801F00000F801F00000
F801F000007C03E000007C03E000007C03E000003E07C000003E07C000001E078000001F0F8000
001F0F8000000F0F0000000F8F0000000F9F000000079E000000079E00000007DE00000003FC00
000003FC00000001F800000001F80000242A7FA927>86 D<01FC000FFF003FFF803FFFC03C07E0
3003E00001F00001F00001F00001F00001F00003F001FFF007FFF01FFFF03FC1F07E01F0FC01F0
F801F0F801F0F801F0FC03F07E0FF07FFFF03FFFF01FF9F00FE1F0141B7E9A1C>97
D<007F8001FFE007FFF80FFFF81FC0783F00103E00007C00007C00007C0000F80000F80000F800
00F80000F80000F80000F800007C00007C00007C00003E00003F00181FC0780FFFF807FFF801FF
E0007F80151B7E9A1A>99 D<00007C00007C00007C00007C00007C00007C00007C00007C00007C
00007C00007C00007C00007C00007C00007C00FC7C03FF7C07FFFC0FFFFC1FC1FC3F00FC3E007C
7C007C7C007CFC007CF8007CF8007CF8007CF8007CF8007CF8007CF8007CF8007C7C007C7C007C
7E00FC3F00FC1F83FC1FFFFC0FFF7C03FE7C01F87C162A7EA91E>I<00FC0003FF0007FF800FFF
C01F87E03F01E03E00F07C00F07C0070F80078FFFFF8FFFFF8FFFFF8FFFFF8F80000F80000F800
007800007C00007C00003E00003F00181FC0F80FFFF807FFF801FFE0007F00151B7E9A1A>I<00
1FC0007FC000FFC001FFC003F00003E00007C00007C00007C00007C00007C00007C00007C00007
C00007C000FFFE00FFFE00FFFE00FFFE0007C00007C00007C00007C00007C00007C00007C00007
C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007
C00007C00007C000122A7FA912>I<00F80F0003FE7F800FFFFF801FFFFF801F07C0003E03E000
3E03E0007C01F0007C01F0007C01F0007C01F0007C01F0003E03E0003E03E0001F07C0001FFFC0
003FFF80003BFE000038F8000078000000780000007C0000003FFF80003FFFF0001FFFF8001FFF
FC003FFFFE007C00FE007C003F00F8001F00F8001F00F8001F00F8001F00FC003F007E007E003F
81FC001FFFF8000FFFF00007FFE00000FF000019287E9A1D>I<F80000F80000F80000F80000F8
0000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F87E00F9FF00FB
FF80FFFFC0FF0FC0FE07E0FC03E0FC03E0F803E0F803E0F803E0F803E0F803E0F803E0F803E0F8
03E0F803E0F803E0F803E0F803E0F803E0F803E0F803E0F803E0F803E0F803E0F803E0132A7BA9
1E>I<F8F8F8F8F800000000000000000000F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8
F8F8F8F8F8F8052A7CA90E>I<F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8
F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8052A7CA90E>108 D<F83F007E00F9FF83FF00FBFFC7FF
80FFFFEFFFC0FF07FE0FC0FE03FC07E0FC01F803E0FC01F803E0F801F003E0F801F003E0F801F0
03E0F801F003E0F801F003E0F801F003E0F801F003E0F801F003E0F801F003E0F801F003E0F801
F003E0F801F003E0F801F003E0F801F003E0F801F003E0F801F003E0F801F003E0F801F003E0F8
01F003E0231B7B9A30>I<F87E00F9FF00FBFF80FFFFC0FF0FC0FE07E0FC03E0FC03E0F803E0F8
03E0F803E0F803E0F803E0F803E0F803E0F803E0F803E0F803E0F803E0F803E0F803E0F803E0F8
03E0F803E0F803E0F803E0F803E0131B7B9A1E>I<007E0001FF8007FFE00FFFF01F81F83F00FC
3E007C7C003E7C003E78001EF8001FF8001FF8001FF8001FF8001FF8001FF8001F7C003E7C003E
7C003E3E007C3F00FC1FC3F80FFFF007FFE003FFC0007E00181B7E9A1D>I<F87E00F9FF80FFFF
C0FFFFE0FF0FE0FC03F0F801F8F800F8F800F8F800FCF8007CF8007CF8007CF8007CF8007CF800
7CF8007CF800FCF800F8F801F8F801F0FC03F0FE0FE0FFFFC0FFFF80FBFF00F8FC00F80000F800
00F80000F80000F80000F80000F80000F80000F80000F80000F80000F8000016277B9A1E>I<F8
38F8F8F9F8FBF8FFC0FF00FE00FE00FC00FC00F800F800F800F800F800F800F800F800F800F800
F800F800F800F800F800F800F8000D1B7B9A14>114 D<07F8001FFF003FFF807FFF807C0780F8
0100F80000F80000F80000FC00007F00007FF0003FFC001FFE0007FF0000FF80001FC0000FC000
07C00007C04007C0E007C0FC1F80FFFF807FFF001FFE0007F800121B7E9A16>I<07C00007C000
07C00007C00007C00007C00007C000FFFF80FFFF80FFFF80FFFF8007C00007C00007C00007C000
07C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C00007C000
07C08007E38003FFC003FFC001FF0000FC0012227FA115>I<F803E0F803E0F803E0F803E0F803
E0F803E0F803E0F803E0F803E0F803E0F803E0F803E0F803E0F803E0F803E0F803E0F803E0F803
E0F803E0F803E0F807E0F807E0FC1FE0FFFFE07FFBE03FF3E01F83E0131B7B9A1E>I<F8001FF8
001F7C003E7C003E7C003E3E007C3E007C3E007C1F00F81F00F81F00F80F81F00F81F00F81F007
C3E007C3E007C3E003C3C003E7C001E78001E78001E78000E70000F70000FF00007E00007E0018
1B7F9A1B>I E /Fv 13 122 df<FFFFFFFFFFFFC00000FFFFFFFFFFFFFC0000FFFFFFFFFFFFFF
FC00FFFFFFFFFFFFFFF000FFFFFFFFFFFFFF8000FFFFFFFFFFFFF8000048477CC653>66
D<FFFFFFFFFCFFFFFFFFFCFFFFFFFFFCFFFFFFFFFCFFFFFFFFFC000FFFC000000FFFC000000FFF
FFFFFFFFFC26477EC62B>73 D<00000003FFF0000000000000007FFFFF80000000000003FFFFFF
00004A497AC757>79 D<0003FFF0000000003FFFFF00000000FFFFFFE0000001FFFFFFF8000003
FF003FFC000007FF800FFE000007FF8007FF000007FF8003FF800007FF8003FFC00007FF8001FF
C00007FF8001FFC00003FF0000FFE00001FE0000FFE00000FC0000FFE00000000000FFE0000000
0000FFE00000000000FFE00000000000FFE00000000000FFE000000000FFFFE00000007FFFFFE0
000007FFFFFFE000003FFFFCFFE00000FFFE00FFE00003FFF000FFE00007FFC000FFE0000FFF00
00FFE0001FFE0000FFE0003FFC0000FFE0007FFC0000FFE0007FF80000FFE000FFF80000FFE000
FFF00000FFE000FFF00000FFE000FFF00000FFE000FFF00001FFE000FFF00001FFE000FFF80003
FFE0007FFC0007FFE0007FFC000FFFE0003FFE001F7FF8001FFF80FE7FFFF007FFFFFC3FFFF003
FFFFF01FFFF0007FFFC00FFFF00007FE0003FFF0342E7DAD38>97 D<007FC000000000FFFFC000
FFFFF80001FC03FFFFF00001F800FFFF800001F0001FF8000038487CC741>I<00000000003F00
0034447DAE3A>103 D<007FC000000000FFFFC000000000FFFFC000000000FFFFC000000000FF
FFFFFF81FFFFFF38487BC741>I<00FC0001FF0003FF8007FF800FFFC00FFFC00FFFE00FFFE00F
FFE00FFFC00FFFC007FF8003FF8001FF0000FC0000000000000000000000000000000000000000
0000000000000000000000000000000000007FC0FFFFC0FFFFC0FFFFC0FFFFC0FFFFC003FFC001
FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001
FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001
FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18
497CC820>I<007FC000FFFFC000FFFFC000FFFFC000FFFFC000FFFFC00003FFC00001FFC00001
FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC000
01FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC0
0001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FF
C00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001
FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC000
01FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC0
00FFFFFF80FFFFFF80FFFFFF80FFFFFF80FFFFFF8019487CC720>108 D<00000FFE0000000001
00332E7DAD3A>111 D<007FC00FFE0000FFFFC0FFFFC000FFFFC3FFFFF000FFFFCFFFFFFC00FF
8000000038427CAD41>I<00FF807F00FFFF81FFC0FFFF87FFF0FFFF8FFFF8FFFF9F8FFCFFFF9F
1FFE03FFBE1FFE01FFBC1FFE01FFF81FFE01FFF81FFE01FFF01FFE01FFF00FFC01FFE007F801FF
E003F001FFE0000001FFE0000001FFE0000001FFC0000001FFC0000001FFC0000001FFC0000001
FFC0000001FFC0000001FFC0000001FFC0000001FFC0000001FFC0000001FFC0000001FFC00000
01FFC0000001FFC0000001FFC0000001FFC0000001FFC0000001FFC0000001FFC0000001FFC000
0001FFC0000001FFC0000001FFC0000001FFC00000FFFFFFE000FFFFFFE000FFFFFFE000FFFFFF
E000FFFFFFE000272E7CAD2F>114 D<FFFFFF0003FFFFFFFFFF0003FFFFFFFFFF0003FFFFFFFF
00000001FE000000000038427EAD3D>121 D E /Fw 8 117 df<00001E000000003E00000000FE
00000003FE0000003FFE0000FFFFFE0000FFFFFE0000FFFFFE0000FFCFFE0000000FFE0000000F
FE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE000000
0FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000
000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE00
00000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE
0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000F
FE0000000FFE0000000FFE00007FFFFFFF807FFFFFFF807FFFFFFF807FFFFFFF80213879B730>
49 D<0000001FFE0000E0000003FFFFE001E000001FFFFFF803E000007FFFFFFE07E00001FFFC
001FFFFFFC0000000003FFFFE000000000001FFE0000003B3D7BBB46>67
D<003FFF00000001FFFFE0000007FFFFFC00000FF007FE00001FF801FF80001FF800FFC0001FF8
007FE0001FF8007FE0001FF8007FF0000FF0003FF00007E0003FF00003C0003FF0000000003FF0
000000003FF0000000003FF0000000003FF0000000FFFFF000000FFFFFF000007FF83FF00003FF
803FF00007FE003FF0001FFC003FF0003FF8003FF0007FF0003FF0007FE0003FF000FFE0003FF0
00FFC0003FF000FFC0003FF000FFC0003FF000FFC0007FF000FFC0007FF000FFE000FFF0007FE0
01DFF0003FF003DFFC001FFC0F9FFFE00FFFFE0FFFE001FFF807FFE0003FE001FFE02B267DA52F
>97 D<0003FF8000001FFFF000007FFFFC0000FF83FF0003FE00FF8007FC003F800FF8003FC01F
F8001FE01FF0001FE03FF0001FF03FF0000FF07FE0000FF07FE0000FF87FE0000FF8FFE0000FF8
FFE0000FF8FFFFFFFFF8FFFFFFFFF8FFFFFFFFF8FFE0000000FFE0000000FFE0000000FFE00000
00FFE00000007FE00000007FE00000007FF00000003FF00000783FF00000781FF80000F80FF800
00F007FC0001F003FE0003E001FF000FC000FFC07F80003FFFFE00000FFFFC000001FFC0002526
7DA52C>101 D<00FF0000000000FFFF0000000000FFFF0000000000FFFF0000000000FFFF0000
7DBB36>104 D<00FF00FF8000FFFF0FFFF800FFFF3FFFFE00FFFFFE03FF00FFFFF000FFC007FF
E0007FE003FFC0003FF003FF80003FF803FF00001FF803FF00001FFC03FF00000FFC03FF00000F
FE03FF00000FFE03FF00000FFE03FF000007FF03FF000007FF03FF000007FF03FF000007FF03FF
000007FF03FF000007FF03FF000007FF03FF000007FF03FF000007FF03FF000007FF03FF00000F
FE03FF00000FFE03FF00000FFE03FF00000FFC03FF00001FFC03FF00001FF803FF80003FF003FF
C0007FF003FFE000FFE003FFF001FF8003FFFE07FF0003FF3FFFFC0003FF0FFFF00003FF01FF00
0003FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF
0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF000000
00FFFFFC000000FFFFFC000000FFFFFC000000FFFFFC00000030377EA536>112
D<00FE01F800FFFE07FF00FFFE1FFF80FFFE3E3FC0FFFE787FE007FE707FE003FEE07FE003FEE0
7FE003FFC07FE003FFC03FC003FF801F8003FF800F0003FF80000003FF80000003FF00000003FF
00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003
FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF000000
03FF00000003FF00000003FF000000FFFFFE0000FFFFFE0000FFFFFE0000FFFFFE000023267EA5
28>114 D<000F0000000F0000000F0000000F0000000F0000001F0000001F0000001F0000001F
0000003F0000003F0000007F0000007F000000FF000001FF000003FF000007FF00001FFFFFF0FF
FFFFF0FFFFFFF0FFFFFFF003FF000003FF000003FF000003FF000003FF000003FF000003FF0000
03FF000003FF000003FF000003FF000003FF000003FF000003FF000003FF000003FF000003FF00
0003FF000003FF000003FF003C03FF003C03FF003C03FF003C03FF003C03FF003C03FF003C03FF
003C01FF807801FF807800FFC0F000FFE1F0003FFFE0000FFF800001FE001E377EB626>116
D E /Fx 25 122 df<70F8FCFC7C0C0C0C0C181830306040060F7C840E>44
D<FFE0FFE0FFE00B037F8B10>I<018003800F80FF80F380038003800380038003800380038003
80038003800380038003800380038003800380038003800380038003800380038003800380FFFE
FFFE0F217CA018>49 D<000E00000E00001E00001E00003E00003E00006E0000EE0000CE0001CE
00018E00030E00070E00060E000E0E000C0E00180E00180E00300E00700E00600E00E00E00FFFF
F8FFFFF8000E00000E00000E00000E00000E00000E00000E0001FFF001FFF015217FA018>52
D<01F00007FC000E0E001C0700380380780380700380F001C0F001C0F001C0F001E0F001E0F001
E0F001E0F001E07001E07003E07803E03807E01C0DE00FF9E007F1E00081C00001C00003C00003
80000380300700780700780E00701C003838001FF0000FC00013227EA018>57
D<000FE010003FF83000F81C7001E0067003C003F0078001F00F0000F01E0000F03E0000703C00
00707C0000707C0000307800003078000030F8000030F8000000F8000000F8000000F8000000F8
000000F8000000F800000078000030780000307C0000307C0000303C0000603E0000601E000060
0F0000C0078000C003C0018001E0030000F80E00003FF800000FE0001C247DA223>67
D<FFFFF000FFFFFE0007801F00078007C0078003C0078001E0078000F0078000F8078000780780
007C0780003C0780003C0780003C0780003E0780003E0780003E0780003E0780003E0780003E07
80003E0780003E0780003E0780003C0780003C0780007C0780007807800078078000F0078001E0
078003E0078007C007801F00FFFFFE00FFFFF8001F227EA125>I<FFFFFFC0FFFFFFC007800FC0
078003C0078001C0078000C0078000E0078000E007800060078000600780606007806060078060
00078060000780E0000781E00007FFE00007FFE0000781E0000780E00007806000078060000780
6000078060000780000007800000078000000780000007800000078000000780000007800000FF
FE0000FFFE00001B227EA120>70 D<03FFF003FFF0000F00000F00000F00000F00000F00000F00
000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00
000F00000F00000F00000F00000F00700F00F80F00F80F00F80F00F01E00601C003878001FF000
07C00014237EA119>74 D<FFC00003FFFFE00007FF07E00007E007E00007E006F0000DE006F000
0DE006F0000DE006780019E006780019E006780019E0063C0031E0063C0031E0063C0031E0061E
0061E0061E0061E0061E0061E0060F00C1E0060F00C1E006078181E006078181E006078181E006
03C301E00603C301E00603C301E00601E601E00601E601E00601E601E00600FC01E00600FC01E0
0600FC01E006007801E01F807801E0FFF0783FFFFFF0303FFF28227EA12D>77
D<FFFFF000FFFFFC0007803F0007800F8007800780078003C0078003C0078003E0078003E00780
03E0078003E0078003E0078003C0078003C00780078007800F8007803F0007FFFC0007FFF00007
800000078000000780000007800000078000000780000007800000078000000780000007800000
078000000780000007800000FFFC0000FFFC00001B227EA121>80 D<03F0200FFC601C0EE03803
E07001E07001E0E000E0E000E0E00060E00060E00060F00000F000007800007F00003FF0001FFE
000FFF0003FF80003FC00007E00001E00000F00000F0000070C00070C00070C00070C00070E000
60E000E0F000C0F801C0EF0380C7FF0081FC0014247DA21B>83 D<0FE0001FF8003C1C003C0E00
180700000700000700000F0003FF000FFF003F07007C0700780700F00700F00718F00718F00F18
780F187C3FB83FF3F00FC3C015157E9418>97 D<0E0000FE0000FE00001E00000E00000E00000E
00000E00000E00000E00000E00000E00000E00000E00000E1F800E7FE00FC0F00F00780E00380E
003C0E001C0E001E0E001E0E001E0E001E0E001E0E001E0E001E0E001C0E003C0F00380F80700F
C1F00C7FC00C1F0017237FA21B>I<01FE0007FF000F07801C0780380300780000700000F00000
F00000F00000F00000F00000F00000F000007800007800C03C00C01E01800F030007FE0001F800
12157E9416>I<01FC0007FF000F07801C03C03801C07801E07000E0FFFFE0FFFFE0F00000F000
00F00000F00000F000007800007800603C00601E00C00F838007FF0000FC0013157F9416>101
D<1C001E003E001E001C00000000000000000000000000000000000E00FE00FE001E000E000E00
0E000E000E000E000E000E000E000E000E000E000E000E000E00FFC0FFC00A227FA10E>105
D<0E00FE00FE001E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E00
0E000E000E000E000E000E000E000E000E000E000E000E000E000E00FFE0FFE00B237FA20E>
108 D<0E1F80FE7FC0FFC1E01F80F00F00700E00700E00700E00700E00700E00700E00700E0070
0E00700E00700E00700E00700E00700E00700E0070FFE7FFFFE7FF18157F941B>110
D<01FC0007FF000F07801C01C03800E07800F0700070F00078F00078F00078F00078F00078F000
78F000787000707800F03800E01C01C00F078007FF0001FC0015157F9418>I<0E3CFEFEFFCF1F
8F0F060F000E000E000E000E000E000E000E000E000E000E000E000E000E00FFF0FFF010157F94
13>114 D<0F883FF87078E038E018E018E018F0007F003FE01FF001F8003CC01CC01CE01CE01C
F018F878DFF08FC00E157E9413>I<060006000600060006000E000E000E001E003E00FFF8FFF8
0E000E000E000E000E000E000E000E000E000E000E0C0E0C0E0C0E0C0E0C0E08071803F001E00E
1F7F9E13>I<0E0070FE07F0FE07F01E00F00E00700E00700E00700E00700E00700E00700E0070
0E00700E00700E00700E00700E00700E00F00E01F007037803FE7F01F87F18157F941B>I<FFC3
FEFFC3FE1E00F80E00600E00600700C00700C00700C003818003818003C38001C30001C30000E6
0000E60000E600007C00007C00007C00003800003800003000003000007000006000006000F0C0
00F1C000F380007F00003E0000171F7F941A>121 D E /Fy 20 122 df<FFFFFFE00000FFFFFF
FC000007E0007F000003E0000F800003E00007C00003E00001E00003E00000F00003E000007800
03E000007C0003E000003E0003E000003E0003E000001F0003E000001F0003E000000F8003E000
000F8003E000000FC003E000000FC003E0000007C003E0000007C003E0000007E003E0000007E0
03E0000007E003E0000007E003E0000007E003E0000007E003E0000007E003E0000007E003E000
0007E003E0000007E003E0000007E003E0000007C003E0000007C003E0000007C003E000000FC0
03E000000F8003E000000F8003E000000F8003E000001F0003E000001F0003E000003E0003E000
007C0003E00000780003E00000F80003E00001F00003E00007E00003E0000F800007E0007F0000
FFFFFFFC0000FFFFFFE000002B317CB033>68 D<FFFF80FFFF8007F00003E00003E00003E00003
E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003
E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003
E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003
E00007F000FFFF80FFFF8011317DB017>73 D<FFFFC00000FFFFC0000007F000000003E0000000
03E000000003E000000003E000000003E000000003E000000003E000000003E000000003E00000
0003E000000003E000000003E000000003E000000003E000000003E000000003E000000003E000
000003E000000003E000000003E000000003E000000003E000000003E000000003E000000003E0
00000003E000000003E000000003E000000003E00000C003E00000C003E00000C003E00000C003
E000018003E000018003E000018003E000018003E000038003E000038003E000038003E0000780
03E0000F8003E0001F0003E0003F0007E001FF00FFFFFFFF00FFFFFFFF0022317CB029>76
D<FFF00000007FF8FFF8000000FFF807F8000000FF0003F8000000FE00037C000001BE00037C00
0001BE00037C000001BE00033E0000033E00033E0000033E00033E0000033E00031F0000063E00
031F0000063E00031F0000063E00030F80000C3E00030F80000C3E00030F80000C3E000307C000
183E000307C000183E000307C000183E000303E000303E000303E000303E000303E000303E0003
01F000603E000301F000603E000301F000C03E000300F800C03E000300F800C03E0003007C0180
3E0003007C01803E0003007C01803E0003003E03003E0003003E03003E0003003E03003E000300
1F06003E0003001F06003E0003001F06003E0003000F8C003E0003000F8C003E0003000F8C003E
00030007D8003E00030007D8003E00030007D8003E00030003F0003E00030003F0003E00030003
F0003E00078001E0003E000FC001E0007F00FFFC01E00FFFF8FFFC00C00FFFF835317CB03D>I<
00003FC000000001FFF800000007C03E0000001F000F8000003C0003C00000F80001F00001F000
00F80003E000007C0003C000003C0007C000003E000F8000001F000F8000001F001F0000000F80
1F0000000F803E00000007C03E00000007C07E00000007E07E00000007E07C00000003E07C0000
0003E0FC00000003F0FC00000003F0FC00000003F0FC00000003F0FC00000003F0FC00000003F0
FC00000003F0FC00000003F0FC00000003F0FC00000003F0FC00000003F07E00000007E07E0000
0007E07E00000007E07E00000007E03E00000007C03F0000000FC01F0000000F801F0000000F80
0F8000001F000F8000001F0007C000003E0003E000007C0003E000007C0001F00000F80000F800
01F000003E0007C000001F000F80000007E07E00000001FFF8000000003FC000002C337CB134>
79 D<FFFFFFC000FFFFFFF80007E000FE0003E0001F0003E0000F8003E00007C003E00003E003
E00003F003E00001F003E00001F003E00001F803E00001F803E00001F803E00001F803E00001F8
03E00001F803E00001F003E00001F003E00003F003E00003E003E00007C003E0000F8003E0001F
0003E000FE0003FFFFF80003FFFFC00003E000000003E000000003E000000003E000000003E000
000003E000000003E000000003E000000003E000000003E000000003E000000003E000000003E0
00000003E000000003E000000003E000000003E000000003E000000003E000000003E000000007
F0000000FFFF800000FFFF80000025317CB02D>I<01FE00000FFFC0001C03E0003C00F0003E00
78003E003C003E001C0008001E0000001E0000001E0000001E0000001E000001FE00003FFE0001
FF1E0007F01E000F801E001F001E003E001E007C001E007C001E00F8001E0CF8001E0CF8001E0C
F8003E0CF8003E0C7C007E0C3E00DF1C1F038FB80FFF07F003F803C01E1F7D9E21>97
D<07800000FF800000FF8000000F80000007800000078000000780000007800000078000000780
000007800000078000000780000007800000078000000780000007800000078000000780000007
80FC000787FF80079E07C007B801E007E000F007C0007807C0007C0780003C0780003E0780003E
0780001E0780001F0780001F0780001F0780001F0780001F0780001F0780001F0780001F078000
1F0780001E0780003E0780003E0780003C07C0007807C00078076000F0073801E0071E07C00607
FF000601FC0020327EB125>I<003FC000FFF803E01C07801E0F003E1E003E1E003E3C00087C00
007C0000780000F80000F80000F80000F80000F80000F80000F80000F80000F800007C00007C00
007C00003E00031E00031F00060F800E07C01C03F03800FFE0003F80181F7D9E1D>I<003F8000
00FFE00003E0F80007803C000F001E001E001E001E000F003C000F007C000F007C000F80780007
80F8000780FFFFFF80FFFFFF80F8000000F8000000F8000000F8000000F8000000F80000007800
00007C0000003C0000003C0001801E0001800F0003000F80060007C00E0001F03C0000FFF00000
1FC000191F7E9E1D>101 D<0003E0001FF8003C3800707C00F07C01E07C01E03803C00003C000
03C00003C00003C00003C00003C00003C00003C00003C00003C00003C000FFFFC0FFFFC003C000
03C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C000
03C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00007E000
7FFF007FFF0016327FB114>I<07000F801F801F800F8007000000000000000000000000000000
00000000000000000780FF80FF800F800780078007800780078007800780078007800780078007
800780078007800780078007800780078007800780078007800FC0FFF8FFF80D307EAF12>105
D<0780FF80FF800F80078007800780078007800780078007800780078007800780078007800780
078007800780078007800780078007800780078007800780078007800780078007800780078007
80078007800780078007800780078007800FC0FFFCFFFC0E327EB112>108
D<0781FE003FC000FF87FF80FFF000FF8E07C1C0F8000F9803E3007C0007B001E6003C0007E000
FC001E0007C000F8001E0007C000F8001E0007C000F8001E00078000F0001E00078000F0001E00
078000F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0
001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E0007
8000F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E00078000F000
1E000FC001F8003F00FFFC1FFF83FFF0FFFC1FFF83FFF0341F7E9E38>I<0781FE0000FF87FF80
00FF8E07C0000F9803E00007B001E00007E000F00007C000F00007C000F00007C000F000078000
F000078000F000078000F000078000F000078000F000078000F000078000F000078000F0000780
00F000078000F000078000F000078000F000078000F000078000F000078000F000078000F00007
8000F000078000F000078000F0000FC001F800FFFC1FFF80FFFC1FFF80211F7E9E25>I<001FC0
0000FFF80001E03C0007800F000F0007801E0003C01E0003C03C0001E03C0001E0780000F07800
00F0780000F0F80000F8F80000F8F80000F8F80000F8F80000F8F80000F8F80000F8F80000F878
0000F07C0001F03C0001E03C0001E01E0003C01E0003C00F00078007C01F0001F07C0000FFF800
001FC0001D1F7E9E21>I<0783E0FF8FF8FF9C7C0FB07C07F07C07E03807C00007C00007C00007
800007800007800007800007800007800007800007800007800007800007800007800007800007
80000780000780000780000780000780000FC000FFFE00FFFE00161F7E9E19>114
D<00C00000C00000C00000C00000C00001C00001C00001C00003C00003C00007C0000FC0001FC0
00FFFFE0FFFFE003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C0
0003C00003C00003C00003C00003C00003C03003C03003C03003C03003C03003C03003C03003C0
3001E06001E06000F0C0007F80001F00142C7FAB19>116 D<078000F000FF801FF000FF801FF0
000F8001F000078000F000078000F000078000F000078000F000078000F000078000F000078000
F000078000F000078000F000078000F000078000F000078000F000078000F000078000F0000780
00F000078000F000078000F000078000F000078000F000078001F000078001F000078003F00003
8007F00003C00EF00001F03CF80000FFF0FF80003FC0FF80211F7E9E25>I<FFF803FF80FFF803
FF800FC000FC000780007800078000700003C000600003C000600003E000E00001E000C00001E0
00C00000F001800000F001800000F801800000780300000078030000007C070000003C06000000
3C060000001E0C0000001E0C0000001F1C0000000F180000000F1800000007B000000007B00000
0007B000000003E000000003E000000003E000000001C000000001C00000000180000000018000
0000038000000003000000000300000000060000000006000000700E000000F80C000000F81C00
0000F83800000070700000003FE00000001F80000000212D7F9E23>121
D E /Fz 5 85 df<00000000600000000000E00000000000E00000000001E00000000001F00000
000003F00000000003F00000000007F0000000000FF0000000000FF0000000001BF0000000001B
F00000000033F00000000033F00000000063F00000000063F000000000C3F000000001C3F00000
000183F00000000303F00000000303F00000000603F80000000603F80000000C01F80000000C01
F80000001801F80000003801F80000003001F80000006001F80000006001F8000000C001F80000
00C001F80000018001F8000001FFFFF8000003FFFFF80000070001F80000060001F800000C0001
F800000C0001F80000180001FC0000180001FC0000300000FC0000300000FC0000600000FC0000
E00000FC0000C00000FC0001C00000FC0003C00000FC000FE00003FC00FFFC003FFFE0FFF8003F
FFE02B337CB234>65 D<000FFFFFFC00000FFFFFFF8000007F000FC000007E0003E000007E0001
F000007E0000F800007E00007C0000FC00007C0000FC00003E0000FC00003E0000FC00003E0001
F800001E0001F800001F0001F800001F0001F800001F0003F000001F0003F000001F0003F00000
1F0003F000001F0007E000003F0007E000003F0007E000003F0007E000003F000FC000003E000F
C000007E000FC000007E000FC000007E001F8000007C001F800000FC001F800000FC001F800000
F8003F000001F8003F000001F0003F000003F0003F000003E0007E000007E0007E000007C0007E
00000F80007E00000F0000FC00001F0000FC00003E0000FC00007C0000FC0000F80001F80001F0
0001F80007C00001F8000F800003F8007E0000FFFFFFF80000FFFFFFC0000030317BB035>68
D<000FFFFFFFF8000FFFFFFFF800007F0003F800007E0000F800007E00007800007E0000780000
7E0000300000FC0000300000FC0000300000FC0000300000FC0000300001F80000300001F80000
300001F80000300001F80000600003F00180600003F00180000003F00180000003F00180000007
E00300000007E00300000007E00700000007E01F0000000FFFFE0000000FFFFE0000000FC01E00
00000FC00E0000001F800C0000001F800C0000001F800C0000001F800C0000003F00180000003F
00180000003F00000000003F00000000007E00000000007E00000000007E00000000007E000000
0000FC0000000000FC0000000000FC0000000000FC0000000001F80000000001F80000000001F8
0000000003F800000000FFFFF0000000FFFFF00000002D317BB02E>70 D<000FFFFFE000000FFF
FFFC0000007F003F0000007E000F8000007E0007C000007E0003E000007E0003F00000FC0001F0
0000FC0001F00000FC0001F00000FC0001F00001F80003F00001F80003F00001F80003F00001F8
0003E00003F00007E00003F00007C00003F0000FC00003F0001F800007E0003F000007E0007C00
0007E000F8000007E007E000000FFFFF8000000FFFFF0000000FC00FC000000FC007E000001F80
03F000001F8001F000001F8001F800001F8001F800003F0001F800003F0001F800003F0001F800
003F0001F800007E0003F000007E0003F000007E0003F000007E0003F00000FC0007E00000FC00
07E00000FC0007E00000FC0007E01801F80007E03001F80007E03001F80007E06003F80003E060
FFFFE001F1C0FFFFC000FF80000000003E002D327BB033>82 D<07FFFFFFFFF007FFFFFFFFF00F
E007F007F00F8007E001F00E0007E000E00C0007E000E01C0007E000E018000FC000E018000FC0
00E030000FC000C030000FC000C030001F8000C060001F8000C060001F8000C060001F8000C0C0
003F00018000003F00000000003F00000000003F00000000007E00000000007E00000000007E00
000000007E0000000000FC0000000000FC0000000000FC0000000000FC0000000001F800000000
01F80000000001F80000000001F80000000003F00000000003F00000000003F00000000003F000
00000007E00000000007E00000000007E00000000007E0000000000FC0000000000FC000000000
0FC0000000000FC0000000001F80000000001F80000000001F80000000003F800000007FFFFF80
00007FFFFF8000002C3174B032>84 D E end
%%EndProlog
%%BeginSetup
%%Feature: *Resolution 300
TeXDict begin
%%EndSetup
%%Page: 0 1
bop 799 988 a Fz(D)25 b(R)g(A)g(F)g(T)388 1079 y Fy(Do)r(cumen)n(t)c(for)h(a)
f(P)n(arallel)h(MPI)g(IO)g(Library)207 1274 y Fx(Marc)16 b(Snir)116
b(P)o(eter)16 b(Corb)q(ett)117 b(Dror)17 b(F)l(eitelson)116
b(Jean-Pierre)15 b(Prost)793 1400 y(Jan)o(uary)i(14,)f(1994)p
eop
%%Page: 1 2
bop 75 362 a Fw(Chapter)31 b(1)75 570 y Fv(IO)75 812 y Fu(1.1)59
b(Intro)r(duction)75 916 y Ft(This)16 b(do)q(cumen)o(t)f(is)g(a)g(prop)q
(osal)g(for)g(an)g(extension)g(of)g(MPI)g(in)h(supp)q(ort)f(of)f(\014le)i
(I/O)g(\(MPI-IO\).)f(The)75 972 y(need)g(for)e(suc)o(h)i(extension)g(arises)f
(from)f(the)i(fact)e(that)g(not)h(all)h(parallel)h(mac)o(hines)f(supp)q(ort)f
(Unix)h(\014le)75 1029 y(access)h(at)e(eac)o(h)i(no)q(de;)g(when)f(it)h(is)g
(supp)q(orted,)g(the)f(sharing)h(seman)o(tics)f(of)g(Unix)i(\014les)f(are)f
(ill-suited)75 1085 y(to)c(parallel)j(computing,)e(and)h(dep)q(end)g(on)f
(the)g(t)o(yp)q(e)g(of)f(\014le)i(system)f(accessed)g(and)g(on)g(the)g(mec)o
(hanism)75 1141 y(used)18 b(to)e(share)h(access)g(across)f(a)g(parallel)j
(application.)27 b(It)16 b(is)i(hard)f(to)f(co)q(ordinate)h(accesses)h(to)e
(the)75 1198 y(same)f(\014le)h(b)o(y)f(all)h(pro)q(cesses)g(in)f(a)g
(parallel)i(computation,)e(and)g(imp)q(ossible)i(to)e(guaran)o(tee)f
(atomicit)o(y)75 1254 y(and)j(serializabili)q(t)o(y)i(of)d(accesses)i(with)f
(lev)o(els)h(of)e(p)q(erformance)h(required)h(b)o(y)f(parallel)i
(applications.)75 1311 y(The)i(b)q(eha)o(vior)g(of)f(F)l(ortran)f(I/O)i
(libraries)h(further)e(complicate)i(the)f(picture.)36 b(Therefore,)22
b(use)e(of)75 1367 y(regular)11 b(I/O)h(within)h(parallel)f(applications)h
(should)g(b)q(e)f(exercised)g(with)g(m)o(uc)o(h)f(caution,)h(in)g(particular)
75 1424 y(when)k(using)g(standard)e(input,)i(standard)f(output)g(and)g
(standard)g(error.)166 1481 y(MPI-IO)k(pro)o(vides)h(a)e(paradigm)h(for)f
(I/O)h(that)f(matc)o(hes)g(the)h(general)g(computing)g(paradigm)75
1538 y(supp)q(orted)c(b)o(y)g(MPI.)f(In)h(particular,)g(it)g(supp)q(orts)f(a)
g(lo)q(osely)i(sync)o(hronous)f(collectiv)o(e)h(mo)q(de)f(of)f(I/O,)75
1594 y(analogous)i(to)g(the)h(lo)q(osely)g(sync)o(hronous)g(mo)q(de)g(of)f
(comm)o(unication)h(pro)o(vided)g(b)o(y)g(collectiv)o(e)h(com-)75
1651 y(m)o(unication.)166 1708 y(The)11 b(general)g(approac)o(h)f(tak)o(en)g
(b)o(y)h(MPI-IO)g(is)g(to)f(mo)q(del)h(\014le)h(I/O)f(as)f(a)g(comm)o
(unication)i(b)q(et)o(w)o(een)75 1765 y(computing)19 b(pro)q(cesses)f
(\(readers)g(or)f(writers\))h(and)g(a)f(\014le)i(serv)o(er)f(pro)q(cess.)29
b(A)18 b(simple,)h(nonscalable)75 1821 y(implemen)o(tation)e(of)e(MPI-IO)i
(will)h(ha)o(v)o(e)d(one)h(\014le)h(serv)o(er)e(pro)q(cess)h(that)f(accesses)
h(the)g(\014le)h(on)f(b)q(ehalf)75 1877 y(of)j(the)g(remaining)i(pro)q
(cesses;)g(those)e(pro)q(cesses)h(comm)o(unicate)g(with)f(the)h(\014le)g
(serv)o(er)f(pro)q(cess)h(via)75 1934 y(messages.)e(More)11
b(e\016cien)o(t)h(implemen)o(tations)g(are)f(p)q(ossible;)j(in)f(particular,)
f(one)f(can)h(tak)o(e)f(adv)m(an)o(tage)75 1990 y(of)h(the)g(concurrency)h(a)
o(v)m(ailable)h(in)f(a)f(parallel)i(\014le)f(system)f(suc)o(h)g(as)g(V)l
(esta)g([2)o(],)g(in)h(order)f(to)g(replace)h(the)75 2047 y(sequen)o(tial)j
(\014le)h(serv)o(er)d(b)o(y)i(m)o(ultiple)h(parallel)f(\014le)h(serv)o(ers,)d
(th)o(us)h(a)o(v)o(oiding)g(sequen)o(tial)i(b)q(ottlenec)o(ks.)166
2104 y(The)g(I/O)h(calls)g(use)f(the)g(same)g(syn)o(tax)f(and)h(seman)o(tics)
h(as)e(message)h(passing)g(comm)o(unication)75 2161 y(in)h(MPI.)e(A)h(\014le)
h(is)g(op)q(ened)g(b)o(y)e(a)h(group)g(of)f(pro)q(cesses,)h(sp)q(eci\014ed)i
(b)o(y)e(a)g Fs(c)n(ommunic)n(ator)p Ft(.)25 b(The)17 b(op)q(en)75
2217 y(op)q(eration)k(creates)f(a)g(new)h(comm)o(unicator,)g(whic)o(h)g(is)g
(used)h(for)d(accessing)j(the)e(\014le.)37 b(File)22 b(access)75
2274 y(can)e(b)q(e)h(individual,)j(analogous)c(to)g(a)g(p)q(oin)o(t-to-p)q
(oin)o(t)h(comm)o(unication,)g(or)f(it)g(can)h(b)q(e)g(collectiv)o(e,)75
2330 y(in)o(v)o(olving)f(all)f(pro)q(cesses)g(in)g(the)f(group.)30
b(Both)18 b(individual)j(and)e(collectiv)o(e)h(accesses)f(ha)o(v)o(e)f(sev)o
(eral)75 2387 y(v)m(arian)o(ts,)d(according)g(to)g(the)g(mo)q(de)h(of)e(in)o
(teraction)i(b)q(et)o(w)o(een)g(accesses)f(to)g(the)g(same)g(\014le.)166
2444 y(MPI-IO)i(supp)q(orts)g(\014les)h(that)e(are)g(structured)h(as)f(C)g
(\014les)i(\(a)e(sequence)i(of)e(b)o(ytes\),)g(as)g(F)l(ortran)75
2501 y(direct-access)h(\014les)g(\(a)f(sequence)h(of)f(\014xed-size)i
(records\))e(and)g(as)g(F)l(ortran)f(sequen)o(tial)j(unformatted)75
2557 y(\014les)e(\(a)f(sequence)h(of)f(v)m(ariable)h(size)h(records\).)166
2615 y(Regular)22 b(F)o(OR)l(TRAN)f(or)g(C)g(I/O)g(library)h(routines)f(ma)o
(y)f(co)q(exist)i(in)g(a)e(co)q(de)i(with)f(MPI-IO)p 75 2661
720 2 v 127 2688 a Fr(1)144 2704 y Fq(V)m(ersion)14 b(as)f(of)g(Jan)g(13,)g
(1994)-32 46 y Fr(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: 2 3
bop 75 -100 a Ft(2)1410 b Fp(CHAPTER)16 b(1.)34 b(IO)75 49
y Ft(pro)q(cedures.)39 b(Ho)o(w)o(ev)o(er,)22 b(implemen)o(tations)g(ma)o(y)f
(prohibit)i(concurren)o(t)e(access)h(to)e(the)i(same)f(\014le)75
106 y(using)16 b(b)q(oth)f(MPI-IO)h(and)g(regular)f(\014le)h(I/O.)166
165 y(MPI-IO)g(inherits)g(from)e(the)h(design)g(of)g(MPI)f(comm)o(unication)i
(calls)g(sev)o(eral)f(features)f(that)g(are)75 222 y(imp)q(ortan)o(t)j(for)h
(high)g(p)q(erformance)g(I/O.)g(Data)e(can)i(b)q(e)h(mo)o(v)o(ed)e(directly)i
(to)e(user)h(space,)h(a)o(v)o(oiding)75 278 y(extra)12 b(bu\013ering)i(at)e
(the)h(computation)g(no)q(de.)19 b(Deriv)o(ed)14 b(datat)o(yp)q(es)e(pro)o
(vide)h(a)g(facilit)o(y)h(for)e(scattering)75 335 y(data)k(read)h(or)g
(gathering)g(data)f(to)g(b)q(e)i(written)f(as)g(part)f(of)g(the)i(I/O)f
(call.)26 b(Async)o(hronous)17 b(I/O)h(can)75 391 y(b)q(e)e(executed)g(in)g
(a)f(manner)g(similar)i(to)d(non)o(blo)q(c)o(king)j(comm)o(unication.)166
450 y(The)e(\014rst)f(sections)h(of)f(this)h(do)q(cumen)o(t)g(describ)q(e)i
(the)d(MPI-IO)i(functions)f(in)g(terms)g(of)f(accesses)75 507
y(to)g(a)h(regular)g(\(F)l(ortran)f(or)g(C\))h(\014le.)21 b(The)15
b(last)g(section)g(of)g(this)g(do)q(cumen)o(t)h(presen)o(ts)f(extensions)h
(that)75 563 y(are)f(sp)q(eci\014cally)j(targeted)c(to)g(a)h(parallel)i
(\014le)f(system)f(suc)o(h)g(as)g(V)l(esta)g([2)o(],)f(and)i(allo)o(w)f(the)g
(user)g(more)75 620 y(con)o(trol)h(on)h(the)f(ph)o(ysical)i(\014le)f(la)o(y)o
(out,)f(the)h(logical)g(view)g(of)f(the)h(\014le)g(and)g(on)f(\014le)i
(sharing.)23 b(W)l(e)17 b(also)75 676 y(sp)q(ecify)g(in)f(the)f(last)g
(section)h(the)f(precise)h(seman)o(tics)g(of)e(MPI-IO)j(accesses)e(to)g
(parallel)h(\014les.)75 815 y Fo(1.1.1)49 b(Ackno)o(wledgements)75
907 y Ft(The)19 b(prop)q(osal)h(is)f(based)h(on)f(an)g(earlier)h(do)q(cumen)o
(t)g(of)e(Jean-Pierre)j(Prost)d([7)o(],)h(and)h(incorp)q(orates)75
964 y(ideas)14 b(dev)o(elop)q(ed)g(b)o(y)f(the)h(V)l(esta)e(team)h([3)o(].)19
b(The)13 b(o)o(v)o(erall)g(design)h(has)f(b)q(een)h(in\015uenced)i(b)o(y)d
(the)g(design)75 1020 y(of)i(the)g(Express)g(I/O)h(library)g([6)o(].)75
1180 y Fu(1.2)59 b(File)20 b(structure)75 1288 y Ft(MPI-IO)c(supp)q(orts)f
(three)h(t)o(yp)q(es)f(of)g(\014les:)75 1394 y Fn(stream)i(\014le)23
b Ft(whic)o(h)16 b(consists)g(of)e(a)h(sequence)i(of)d(b)o(ytes.)75
1500 y Fn(\014xed)j(record)g(\014le)23 b Ft(whic)o(h)16 b(consists)g(of)e(a)h
(sequence)i(of)d(\014xed)i(size)g(records.)75 1606 y Fn(v)m(ariable)i(record)
f(\014le)24 b Ft(whic)o(h)16 b(consists)f(of)g(a)g(sequence)h(of)f(v)m
(ariable)h(size)h(records.)166 1712 y(Stream)10 b(\014les)i(ha)o(v)o(e)f(the)
g(same)g(structure)f(as)h(C)g(\(binary\))g(\014les.)19 b(Fixed)12
b(record)f(\014les)h(ha)o(v)o(e)e(the)h(same)75 1768 y(structure)18
b(as)g(F)l(ortran)g(direct)h(access,)g(unformatted)f(\014les.)30
b(V)l(ariable)20 b(record)e(\014les)i(ha)o(v)o(e)e(the)g(same)75
1824 y(structure)g(as)g(F)l(ortran)g(sequen)o(tial,)i(unformatted)e(\014les.)
30 b(Th)o(us,)19 b(\014les)h(can)e(b)q(e)i(exc)o(hanged)f(b)q(et)o(w)o(een)75
1881 y(parallel)f(MPI)e(programs)f(and)i(sequen)o(tial)g(C)f(or)g(F)l(ortran)
f(programs.)22 b(MPI-IO)17 b(supp)q(orts)f(access)h(to)75 1937
y(all)f(three)f(t)o(yp)q(es)h(of)e(\014les)j(b)q(oth)e(from)f(F)l(ortran)g
(and)i(C.)166 1997 y(Bytes)k(in)h(a)f(stream)g(\014le)h(and)g(records)f(in)h
(a)f(\(\014xed)g(or)g(v)m(ariable\))i(record)e(\014le)h(are)f(n)o(um)o(b)q
(ered)75 2053 y(consecutiv)o(ely)l(,)25 b(starting)c(from)g(zero)h(\(this)g
(is)g(di\013eren)o(t)g(from)f(F)l(ortran)g(record)h(n)o(um)o(b)q(ering,)i
(that)75 2110 y(starts)17 b(from)h(one\).)31 b(A)19 b(lo)q(cation)g(in)h(a)e
(\014le)i(is)f(recorded)g(b)o(y)g(a)f Fn(\014le)k(p)q(oin)o(ter)p
Ft(,)e(whic)o(h)g(stores)e(a)g(b)o(yte)75 2166 y(n)o(um)o(b)q(er,)g(for)f
(stream)f(\014les,)j(and)e(a)g(record)h(n)o(um)o(b)q(er,)f(for)g(records)g
(\014le.)28 b(The)18 b(\014le)g(p)q(oin)o(ter)g(is)g(alw)o(a)o(ys)75
2223 y(lo)q(cated)d(at)f(the)h(b)q(eginning)i(of)d(a)g(record)h(after)f(eac)o
(h)g(\014le)i(access)f(or)f(\014le)i(p)q(ositioning)g(op)q(eration.)k(The)75
2279 y(\014le)14 b(p)q(oin)o(ter)g(is)g(at)f Fn(end-of-\014le)i
Ft(if)f(it)g(p)q(oin)o(ts)g(to)e(the)i(\014rst)f(b)o(yte)g(after)g(the)h
(last)f(v)m(alid)i(b)o(yte)e(in)i(a)e(stream)75 2336 y(\014le,)k(or)f(the)h
(\014rst)f(record)g(after)g(the)h(last)f(v)m(alid)i(record)f(in)g(a)f(record)
g(\014le)i(\(i.e.,)e(if)h(the)f(\014le)i(con)o(tains)f Fm(n)75
2392 y Ft(b)o(ytes)e(\(records\),)f(then)i(the)f(\014le)h(p)q(oin)o(ter)g(is)
f(at)g(end-of-\014le)i(when)f(it)f(has)g(v)m(alue)h Fm(n)p
Ft(\).)166 2534 y Fl(Discussion:)39 b Fk(F)m(ortran)15 b(assumes)g(that)h(a)
30 b Fj(SEQUENTIAL)14 b Fk(\014le)h(is)g(terminated)g(b)o(y)g(a)g
(zero-length)h(end-)75 2591 y(of-\014le)f(record.)26 b(This)16
b(is)g(somewhat)f(di\013eren)o(t)i(from)d(the)j(de\014nition)e(ab)q(o)o(v)o
(e.)25 b(The)16 b(di\013erence)i(seems)e(to)g(ha)o(v)o(e)75
2647 y(only)d(one)g(visible)g(consequence:)20 b(a)26 b Fj(BA)o(CKSP)m(A)o(CE)
10 b Fk(is)j(not)h(required)g(b)q(efore)g(one)f(start)h(writing)f(after)h(a)f
(call)f(to)75 2704 y Fj(ENDFILE)p Fk(.)1967 46 y Fr(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 4
bop 75 -100 a Fp(1.3.)34 b(FILE)16 b(SHARING)g(AND)f(A)o(CCESS)g(MODES)841
b Ft(3)166 49 y(A)15 b(read)h(or)e(write)i(starts)e(at)g(the)i(curren)o(t)f
(p)q(osition)h(of)f(the)h(\014le)g(p)q(oin)o(ter.)21 b(If)15
b(the)h(\014le)g(is)g(a)f(stream)75 106 y(\014le)f(then)f(the)g(\(priv)m(ate)
g(or)g(shared\))g(\014le)g(p)q(oin)o(ter)h(is)f(p)q(ositioned)i(at)d(the)h
(end)g(of)g(the)g(access)g(at)f(the)h(b)o(yte)75 162 y(follo)o(wing)i(the)g
(last)g(accessed)g(b)o(yte.)k(If)c(the)g(\014le)h(is)f(a)f(record)h(\014le)h
(then)f(the)f(\014le)i(p)q(oin)o(ter)f(is)g(p)q(ositioned)75
219 y(at)g(the)g(end)h(of)e(the)i(access)f(at)g(the)g(start)f(of)h(the)g
(\014rst)g(record)g(follo)o(wing)h(the)f(last)g(accessed)h(record.)166
275 y(The)11 b(end-of-\014le)i(p)q(osition)f(is)f(mo)q(di\014ed)i(b)o(y)d(a)h
(write)g(op)q(eration)g(that)g(writes)g(b)q(ey)o(ond)g(the)g(previous)75
332 y(end-of-\014le)17 b(p)q(osition,)f(th)o(us)f(increasing)i(the)e(\014le)h
(size.)21 b(The)16 b(new)g(\014le)g(p)q(oin)o(ter)g(p)q(osition)g(b)q(ecomes)
g(the)75 388 y(curren)o(t)k(end-of-\014le.)35 b(The)20 b(\014le)h(size)g(can)
f(b)q(e)h(reduced)g(\(and)e(the)h(end-of-\014le)i(b)q(e)e(mo)o(v)o(ed)g(bac)o
(k\))f(b)o(y)75 445 y(calls)f(to)e Fm(MPI)p 320 445 14 2 v
16 w(ENDFILE)p Ft(.)f(A)i(\014le)h(p)q(oin)o(ter)f(can)g(b)q(e)g(mo)o(v)o(ed)
g(b)q(ey)o(ond)g(the)g(end-of-\014le)h(\(using)f(a)g(call)h(to)75
501 y Fm(MPI)p 160 501 V 16 w(SEEK)p Ft(\).)c(This)i(do)q(es)g(not)e
(a\013ect)h(the)g(\014le)h(length)g(and)g(the)f(end-of-\014le)i(p)q(osition.)
166 558 y(It)e(is)g(erroneous)f(for)g(a)g(read)h(op)q(eration)g(to)f(access)g
(b)o(ytes)h(that)f(w)o(ere)g(not)g(set)g(b)o(y)h(some)f(previous)75
614 y(write)h(op)q(eration.)k(E.g.,)13 b(if)i(a)g(\014le)g(is)g(extended)g(b)
o(y)g(mo)o(ving)f(the)h(\014le)g(p)q(oin)o(ter)g(b)q(ey)o(ond)g(the)g
(end-of-\014le,)75 671 y(then)e(the)g(\014le)g(con)o(tains)g(no)o(w)f(b)o
(ytes)h(or)f(records)g(that)g(w)o(ere)g(nev)o(er)h(written;)g(these)g(need)h
(to)e(b)q(e)h(written)75 727 y(b)q(efore)j(they)g(are)f(read.)21
b(Also,)16 b(one)g(cannot)f(read)h(from)f(a)g(\014xed)i(size)f(record)g(more)
f(b)o(ytes)h(than)f(w)o(ere)75 784 y(written)g(b)o(y)g(the)h(last)f(write)g
(op)q(eration)g(that)g(up)q(dated)h(that)e(record.)166 923
y Fl(Discussion:)32 b Fk(Implemen)o(tations)10 b(ma)o(y)g(supp)q(ort)j(in)f
(some)f(cases)j(reads)f(that)g(access)h(data)e(that)g(w)o(as)g(not)75
980 y(set)17 b(b)o(y)e(a)h(previous)g(write:)22 b(In)16 b(a)f(P)o(osix)h(en)o
(vironmen)o(t,)f(a)g(read)h(to)g(a)f(p)q(osition)h(that)f(w)o(as)h(not)g
(written)g(b)q(efore)75 1036 y(will)d(return)j(zero)g(b)o(ytes,)f(if)f(the)h
(read)h(is)e(b)q(ey)o(ond)h(the)g(end-of-\014le,)g(or)f(will)g(return)i(an)e
(all)g(zero)h(record,)h(if)e(it)g(is)75 1093 y(b)q(elo)o(w)f(the)h
(end-of-\014le.)j(Suc)o(h)d(read)g(in)f(V)m(esta)g(will)f(also)h(return)h
(either)g(zero)h(b)o(ytes)f(or)f(an)g(all-zero)g(record,)h(but)75
1149 y(the)k(conditions)f(under)h(whic)o(h)f(either)h(o)q(ccur)h(are)f
(somewhat)e(less)i(in)o(tuitiv)o(e.)27 b(Also,)18 b(implemen)o(tati)o(ons)d
(ma)o(y)75 1206 y(supp)q(ort)g(zero)f(\014lling)f(of)g(\014xed)h(size)h
(records)g(that)f(are)h(only)e(partially)f(up)q(dated.)75 1433
y Fu(1.3)59 b(File)20 b(sha)n(ring)g(and)g(access)g(mo)r(des)75
1535 y Ft(A)15 b(\014le)g(is)g(op)q(ened)h(for)e(parallel)i(I/O)f(b)o(y)g(a)f
(group)g(of)h(pro)q(cesses)g(that)e(is)j(de\014ned)g(b)o(y)e(an)h(MPI)f
Fs(c)n(ommu-)75 1592 y(nic)n(ator)p Ft(.)19 b(MPI-IO)d(supp)q(orts)e(three)g
(distinct)i Fn(sharing)g(mo)q(des)e Ft(for)g(\014les.)21 b(The)14
b(\014le)h(sharing)g(mo)q(de)f(is)75 1648 y(sp)q(eci\014ed)j(when)f(the)f
(\014le)i(is)e(op)q(ened.)75 1756 y Fn(Priv)m(ate:)22 b Ft(Eac)o(h)15
b(pro)q(cess)h(accesses)f(a)g(distinct)i(\014le.)75 1851 y
Fn(Shared:)22 b Ft(All)i(pro)q(cesses)e(in)h(the)g(group)f(access)g(the)g
(same)g(\014le.)42 b(The)23 b(pro)q(cesses)f(share)h(one)f(\014le)189
1908 y(p)q(oin)o(ter.)e(Eac)o(h)15 b(pro)q(cess)g(can)h(access)f(the)g
(\014le)i(individuall)q(y)l(.)75 2003 y Fn(Collectiv)o(e:)23
b Ft(All)f(pro)q(cesses)e(in)h(the)f(group)g(access)g(the)g(same)g(\014le.)36
b(File)21 b(accesses)f(are)g(collectiv)o(e)189 2059 y(op)q(erations)15
b(that)f(in)o(v)o(olv)o(e)i(all)g(pro)q(cesses)g(in)g(the)f(group.)166
2167 y(Accesses)i(to)e(record)h(\014les)i(are)e(record-orien)o(ted.)23
b(MPI-IO)17 b(supp)q(orts)f(t)o(w)o(o)f(distinct)j(\014le)f
Fn(access)75 2223 y(metho)q(ds)e Ft(for)g(record)g(\014les.)21
b(The)15 b(\014le)i(access)e(metho)q(d)g(is)h(sp)q(eci\014ed)h(when)f(the)f
(\014le)h(is)g(op)q(ened.)75 2331 y Fn(Uni:)23 b Ft(Eac)o(h)15
b(\(individual)j(or)d(collectiv)o(e\))h(\014le)h(access)e(is)h(con)o(tained)g
(within)g(one)f(record.)75 2426 y Fn(Multi:)23 b Ft(A)15 b(\014le)g(access)g
(ma)o(y)e(span)i(m)o(ultiple)h(successiv)o(e)g(records;)e(eac)o(h)g
(individual)k(item)d(in)g(the)g(I/O)189 2483 y(list)h(is)f(con)o(tained)h
(within)h(one)e(distinct)h(record.)166 2591 y(MPI-IO)h(calls)g(b)q(eha)o(v)o
(e)g(as)f(if)g(the)h(\014le)g(serv)o(er)f(initiates)h(one)g(I/O)f(op)q
(eration)h(on)f(b)q(ehalf)h(of)f(eac)o(h)75 2647 y(individual)e(call)f(b)o(y)
e(one)h(pro)q(cess)f(in)h(priv)m(ate)g(or)f(shared)h(mo)q(des,)f(and)h(one)f
(I/O)h(op)q(eration)g(on)f(b)q(ehalf)h(of)75 2704 y(the)i(en)o(tire)g(group,)
g(for)f(eac)o(h)h(collectiv)o(e)i(I/O)e(call)h(in)g(collectiv)o(e)g(mo)q(de.)
20 b(The)14 b(outcome)f(of)h(concurren)o(t)-32 46 y Fr(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 5
bop 75 -100 a Ft(4)1410 b Fp(CHAPTER)16 b(1.)34 b(IO)75 49
y Ft(accesses)16 b(to)f(the)h(same)f(\014le)i(b)o(y)f(sev)o(eral)f(pro)q
(cesses)i(is)f(as)f(if)h(the)g(accesses)g(w)o(ere)f(executed)i(serially)l(,)g
(in)75 106 y(some)e(unsp)q(eci\014ed)j(order)d(that)g(is)h(consisten)o(t)f
(with)h(program)e(execution)j(order:)i(i.e.)i(\(individual)d(or)75
162 y(collectiv)o(e\))f(I/O)e(op)q(erations)h(are)f(atomic,)f(serializable)k
(and)d(causal.)166 1091 y(The)f(same)f(\014le)h(can)g(b)q(e)g(sim)o
(ultaneously)h(op)q(ened)g(b)o(y)e(di\013eren)o(t)h(comm)o(unication)g
(groups.)19 b(Th)o(us,)75 1147 y(if)h(pro)q(cesses)g(access)g(a)f(\014le)h
(in)h(a)e(totally)g(unco)q(ordinated)i(manner,)f(then)g(eac)o(h)g(pro)q(cess)
g(can)f(op)q(en)75 1204 y(the)c(\014le)g(separately)l(.)20
b(The)15 b(prede\014ned)h(comm)o(unicator)e Fj(MPI)p 1140 1204
13 2 v 14 w(COMM)p 1284 1204 V 15 w(I)g Ft(whic)o(h)h(has)g(a)f(singleton)h
(group)75 1260 y(con)o(taining)i(only)f(the)g(lo)q(cal)h(pro)q(cess,)f(can)h
(b)q(e)f(used)h(b)o(y)f(a)f(pro)q(cess)i(in)f(order)g(to)f(op)q(en)i(a)f
(\014le)h(with)f(no)75 1317 y(co)q(ordination)j(with)g(an)o(y)f(other)f(pro)q
(cess.)30 b(\()p Fj(MPI)p 940 1317 V 14 w(COMM)p 1084 1317
V 14 w(I)18 b Ft(is)h(not)f(part)g(of)f(the)i(MPI)f(de\014nition;)j(w)o(e)75
1373 y(prop)q(ose)15 b(to)g(add)g(it.\))166 2385 y Fl(Discussion:)49
b Fk(The)18 b(main)e(raison)i(d')o(^)-20 b(etre)18 b(of)f(the)i
Fj(p)o(rivate)f Fk(mo)q(de)f(is)h(for)f(allo)o(wing)f(pro)q(cesses)k(to)e(op)
q(en)75 2441 y(priv)n(ate)e(\014les)h(without)g(w)o(orrying)f(ab)q(out)g(sp)q
(ecifying)h(a)f(distinct)h(\014le)g(name)e(for)i(eac)o(h)g(pro)q(cess.)28
b(In)17 b(a)f(system)75 2498 y(where)j(all)e(\014les)h(are)h(in)e(a)h(shared)
h(directory)m(,)f(a)g(con)o(v)o(en)o(tion)g(migh)o(t)d(b)q(e)k(used)g(whereb)
o(y)g(the)f(\014le)g(op)q(ened)h(b)o(y)75 2554 y(pro)q(cess)14
b Fj(id)f Fk(is)f(named)f Fj(\014lename)p Fi(<)p Fj(id)p Fi(>)p
Fk(.)17 b(In)12 b(a)g(system)g(where)h(eac)o(h)g(pro)q(cess)h(has)e(it)g(o)o
(wn)g(priv)n(ate)g Fj(/tmp)d Fk(directory)75 2611 y(the)14
b(con)o(v)o(en)o(tion)g(ma)o(y)e(b)q(e)i(that)g(eac)o(h)h(pro)q(cess)h(op)q
(ens)e(a)g(\014le)g Fj(\014lename)e Fk(in)h(its)h(o)o(wn)g
Fj(/tmp)d Fk(directory)m(.)1967 46 y Fr(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 6
bop 75 -100 a Fp(1.4.)34 b(FILE)16 b(MANIPULA)l(TION)g(FUNCTIONS)893
b Ft(5)75 49 y Fu(1.4)59 b(File)20 b(manipulation)d(functions)75
198 y Fm(MPI)p 160 198 14 2 v 16 w(OPEN\(\014lename,)9 b(status,)k(action,)e
(p)q(osition,)h(t)o(yp)q(e,)g(rec)p 1106 198 V 16 w(size,)f(mo)q(de,)e(metho)
q(d,)g(concurrency)l(,)j(comm)m(,)75 254 y(new)o(comm)n(\))117
332 y Fk(IN)155 b Fm(\014lename)428 b Fk(name)13 b(of)g(op)q(ened)i(\014le)f
(\(string\))117 404 y(IN)155 b Fm(status)476 b Fk(one)15 b(of)e
Fj(MPI)p 1106 404 13 2 v 14 w(OLD)h Fk(\(\014le)h(exists\),)f
Fj(MPI)p 1518 404 V 15 w(NEW)g Fk(\(\014le)g(do)q(es)h(not)905
460 y(exist\))k(,)h Fj(MPI)p 1133 460 V 14 w(REPLA)o(CE)d Fk(\(\014le)i(is)g
(created)h(if)e(it)h(do)q(es)g(not)905 517 y(exist,)g(replaced)f(if)f(it)h
(exists\))g(,)g Fj(MPI)p 1516 517 V 14 w(UNKNO)o(WN)g Fk(\(\014le)g(is)905
573 y(op)q(ened)d(if)e(it)h(exists,)g(created)h(if)e(it)h(do)q(es)g(not)g
(exist\))905 629 y Fj(MPI)p 982 629 V 15 w(SCRA)m(TCH)8 b Fk(\(new)h(unnamed)
g(\014le)g(is)g(created;)j(it)d(is)g(deleted)905 686 y(when)k(it)f(is)g
(closed)h(or)g(when)g(program)e(terminates\))h(\(state\))117
758 y(IN)155 b Fm(action)472 b Fk(one)14 b(of)f Fj(MPI)p 1105
758 V 14 w(READ,)g(MPI)p 1329 758 V 14 w(WRITE)p Fk(,)f(or)i
Fj(MPI)p 1624 758 V 14 w(READ)o(WRITE)905 814 y Fk(\(state\))117
886 y(IN)155 b Fm(p)q(osition)439 b Fk(one)19 b(of)e Fj(MPI)p
1114 886 V 15 w(REWIND)h Fk(\(start)h(of)e(\014le\))i(or)f
Fj(MPI)p 1698 886 V 14 w(APPEND)905 943 y Fk(\(end)d(of)e(\014le\))h
(\(state\))117 1015 y(IN)155 b Fm(t)o(yp)q(e)507 b Fk(one)16
b(of)e Fj(MPI)p 1108 1015 V 15 w(STREAM)p Fk(,)g Fj(MPI)p 1391
1015 V 15 w(FIXED)f Fk(\(\014xed)j(size)g(record\),)905 1071
y(or)e Fj(MPI)p 1033 1071 V 14 w(V)m(ARIABLE)e Fk(\(v)n(ariable)h(size)i
(record\))g(\(state\))117 1143 y(IN)155 b Fm(rec)p 377 1143
14 2 v 17 w(size)446 b Fk(record)19 b(length)f(for)f(\014xed)h(size)h(record)
g(\014le,)f(and)f(maxima)o(l)905 1200 y(record)e(length)f(for)g(v)n(ariable)e
(size)j(record)g(\014le)f(\(in)o(teger\))117 1272 y(IN)155
b Fm(mo)q(de)481 b Fk(one)14 b(of)g Fj(MPI)p 1106 1272 13 2
v 14 w(PRIV)m(A)m(TE,)d(MPI)p 1387 1272 V 14 w(SHARED)905 1328
y Fk(or)j Fj(MPI)p 1033 1328 V 14 w(COLLECTIVE)f Fk(\(state\))117
1400 y(IN)155 b Fm(metho)q(d)442 b Fk(one)14 b(of)g Fj(MPI)p
1106 1400 V 14 w(UNI)f Fk(or)h Fj(MPI)p 1329 1400 V 14 w(MUL)m(TI)g
Fk(\(state\))117 1472 y(IN)155 b Fm(concurrency)362 b Fk(one)10
b(of)e Fj(MPI)p 1096 1472 V 15 w(EX)o(CLUSIVE)f Fk(or)i Fj(MPI)p
1457 1472 V 14 w(CONCURRENT)f Fk(\(state\))117 1544 y(IN)155
b Fm(comm)466 b Fk(comm)o(unicator)11 b(of)j(group)f(that)h(op)q(ens)h(the)f
(\014le)g(\(handle\))117 1616 y(OUT)108 b Fm(new)o(comm)393
b Fk(comm)o(unicator)13 b(asso)q(ciated)j(with)f(\014le)h(b)o(y)f(op)q(en)h
(op)q(eration)905 1672 y(\(handle\))75 1797 y Fh(int)47 b(MPI)p
269 1797 15 2 v 17 w(Open\(char)23 b(*filename,)f(MPI)p 859
1797 V 17 w(IO)i(status,)e(MPI)p 1210 1797 V 17 w(IO)i(action,)f(MPI)p
1562 1797 V 17 w(IO)g(position,)393 1853 y(MPI)p 468 1853 V
17 w(IO)h(type,)f(int)g(rec)p 867 1853 V 17 w(size,)g(MPI)p
1099 1853 V 17 w(IO)g(mode,)h(MPI)p 1403 1853 V 16 w(IO)g(method,)393
1910 y(MPI)p 468 1910 V 17 w(IO)g(concurrency,)e(MPI)p 939
1910 V 17 w(Comm)h(comm,)g(MPI)p 1290 1910 V 17 w(Comm)g(*newcomm\))75
1996 y(MPI)p 150 1996 V 17 w(OPEN\()g(FILENAME,)g(STATUS,)f(ACTION,)h
(POSITION,)g(TYPE,)g(REC)p 1384 1996 V 17 w(SIZE,)g(MODE,)g(METHOD,)393
2053 y(CONCURRENCY,)f(COMM,)i(NEWCOMM,)e(IERROR\))170 2109
y(CHARACTER\(*\))h(FILENAME)170 2165 y(INTEGER)g(STATUS,)g(ACTION,)g
(POSITION,)g(TYPE,)g(REC)p 1200 2165 V 17 w(SIZE,)g(MODE,)g(METHOD,)170
2222 y(CONCURRENCY,)g(COMM,)g(NEWCOMM,)g(IERROR)166 2308 y
Ft(Op)q(en)d(the)e(\014le)i(iden)o(ti\014ed)g(b)o(y)f(\014le)g(name)g
(\(path\))f Fm(\014lename)e Ft(in)j(the)g(access)g(mo)q(de)f(sp)q(eci\014ed)j
(b)o(y)75 2365 y Fm(mo)q(de)p Ft(.)c(This)d(is)g(a)g(collectiv)o(e)h(call)g
(that)e(is)h(executed)g(b)o(y)g(all)g(pro)q(cesses)g(in)h(the)e(group)h(asso)
q(ciated)g(with)75 2421 y Fm(comm)m Ft(;)k(all)j(should)g(pro)o(vide)f(the)f
(same)h(argumen)o(t)e(v)m(alues.)34 b Fm(new)o(comm)15 b Ft(returns)k(a)g
(comm)o(unicator)75 2478 y(handle)g(that)f(can)g(b)q(e)h(subsequen)o(tly)g
(used)g(to)e(access)h(the)h(op)q(ened)g(\014le.)29 b(This)19
b(new)f(comm)o(unicator)75 2534 y(should)e(not)f(b)q(e)h(used)g(for)e(an)o(y)
h(other)g(purp)q(ose.)166 2591 y(The)f(argumen)o(ts)f Fm(status,)i(action)g
Ft(and)e Fm(p)q(osition)i Ft(ha)o(v)o(e)f(the)g(same)f(meaning)h(as)g(for)f
(F)l(ortran)f(90)h([1].)75 2647 y(The)19 b Fm(p)q(osition)h
Ft(argumen)o(t)f(is)g(ignored)h(if)f(the)g(\014le)h(is)g(new)f(or)g
(replaced.)32 b(The)20 b Fm(rec)p 1539 2647 14 2 v 16 w(size)f
Ft(and)g Fm(metho)q(d)75 2704 y Ft(argumen)o(ts)14 b(are)h(ignored)h(if)g
Fm(t)o(yp)q(e)g Ft(=)f Fj(MPI)p 799 2704 13 2 v 15 w(STREAM)p
Ft(.)-32 46 y Fr(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 7
bop 75 -100 a Ft(6)1410 b Fp(CHAPTER)16 b(1.)34 b(IO)166 49
y Ft(The)23 b Fm(\014lename)e Ft(argumen)o(t)h(is)i(alw)o(a)o(ys)e
(signi\014can)o(t.)44 b(If)23 b(the)g(\014le)h(is)g(a)f(scratc)o(h)f(\014le)i
(\()p Fm(status)h Ft(=)75 106 y Fj(MPI)p 152 106 13 2 v 14
w(SCRA)m(TCH)p Ft(\))19 b(then)i(the)f Fm(\014lename)e Ft(is)j(signi\014can)o
(t)g(only)g(during)g(the)g(duration)f(of)g(the)g(program.)75
162 y(It)f(can)h(b)q(e)g(used)g(in)g(order)f(to)g(op)q(en)h(the)f(same)h
(scratc)o(h)e(\014le)j(sev)o(eral)e(times)h(during)g(program)e(exe-)75
219 y(cution,)j(p)q(ossibly)g(with)f(di\013eren)o(t)g(parameters)f(and)g(a)h
(di\013eren)o(t)g(group)f(of)g(pro)q(cesses.)34 b(Th)o(us,)20
b(the)75 275 y(\014rst)15 b(call)h(to)e Fm(MPI)p 392 275 14
2 v 16 w(OPEN)i Ft(with)f Fm(status)j Ft(=)d Fj(MPI)p 901 275
13 2 v 14 w(SCRA)m(TCH)f Ft(and)h(a)g(particular)h Fm(\014lename)d
Ft(v)m(alue)j(creates)75 332 y(a)k(new)h(\014le;)k(subsequen)o(t)c(calls)h
(with)f(the)g(same)f Fm(\014lename)f Ft(v)m(alue)j(op)q(en)f(the)g(existing)h
(scratc)o(h)e(\014le.)75 388 y(Implemen)o(tations)c(ma)o(y)f(restrict)g(the)g
(set)g(of)g(allo)o(w)o(able)h(names)f(for)f(scratc)o(h)h(\014les.)166
534 y Fl(Implemen)o(tati)o(on)g(note:)44 b Fk(A)16 b(p)q(ossible)g(implemen)o
(tation)d(is)j(to)f(map)g(a)g(scratc)o(h)j(\014le)e Fj(\014lename)e
Fk(in)o(to)h(a)75 590 y(Unix)e(\014le)h Fj(/tmp/\014lenam)n(e)p
Fk(.)166 736 y Ft(The)20 b(corresp)q(ondence)h(b)q(et)o(w)o(een)g(the)f(v)m
(alues)h(of)e(the)h Fm(MPI)p 1214 736 14 2 v 16 w(OPEN)h Ft(argumen)o(ts)e
(and)h(the)g Fm(mo)q(de)75 792 y Ft(parameter)14 b(of)h(the)g(P)o(osix)h
Fm(fop)q(en)g Ft(function)g(is)g(giv)o(en)f(b)o(y)g(the)h(table)f(b)q(elo)o
(w)p 75 855 1927 2 v 74 911 2 57 v 100 894 a(mo)q(de)50 b(op)q(eration)545
b Fm(ST)l(A)l(TUS)230 b(A)o(CTION)180 b(POSITION)p 2000 911
V 75 913 1927 2 v 74 969 2 57 v 100 952 a(r)141 b Ft(op)q(en)16
b(for)e(reading)397 b Fm(MPI)p 1064 952 14 2 v 15 w(OLD)193
b(MPI)p 1445 952 V 16 w(READ)123 b(MPI)p 1785 952 V 16 w(REWIND)p
2000 969 2 57 v 74 1082 2 113 v 100 1009 a(w)j Ft(create)13
b(for)f(writing;)i(if)f(\014le)h(exists,)257 1065 y(o)o(v)o(erwrite)926
1009 y Fm(MPI)p 1011 1009 14 2 v 16 w(REPLA)o(CE)129 b(MPI)p
1433 1009 V 16 w(WRITE)111 b(MPI)p 1785 1009 V 16 w(REWIND)p
2000 1082 2 113 v 74 1195 V 100 1122 a(a)135 b Ft(op)q(en)16
b(for)e(writing)i(at)f(end)h(of)e(\014le;)257 1178 y(create)h(if)h(\014le)g
(do)q(es)f(not)g(exist)907 1122 y Fm(MPI)p 992 1122 14 2 v
16 w(UNKNO)o(WN)109 b(MPI)p 1433 1122 V 16 w(WRITE)g(MPI)p
1783 1122 V 16 w(APPEND)p 2000 1195 2 113 v 74 1308 V 100 1235
a(r+)d Ft(up)q(date)19 b(existing)h(\014le)g(\(read)e(and)257
1291 y(write\))979 1235 y Fm(MPI)p 1064 1235 14 2 v 15 w(OLD)122
b(MPI)p 1374 1235 V 16 w(READ)o(WRITE)52 b(MPI)p 1785 1235
V 16 w(REWIND)p 2000 1308 2 113 v 74 1421 V 100 1348 a(w+)91
b Ft(create)22 b(new)g(\014le)h(for)f(up)q(date;)k(if)257 1404
y(\014le)16 b(exists,)f(o)o(v)o(erwrite)926 1348 y Fm(MPI)p
1011 1348 14 2 v 16 w(REPLA)o(CE)70 b(MPI)p 1374 1348 V 16
w(READ)o(WRITE)52 b(MPI)p 1785 1348 V 16 w(REWIND)p 2000 1421
2 113 v 74 1534 V 100 1460 a(a+)100 b Ft(op)q(en)17 b(for)e(up)q(date)h(at)f
(end)i(of)e(\014le;)257 1517 y(create)g(if)h(\014le)g(do)q(es)f(not)g(exist)
907 1460 y Fm(MPI)p 992 1460 14 2 v 16 w(UNKNO)o(WN)50 b(MPI)p
1374 1460 V 16 w(READ)o(WRITE)g(MPI)p 1783 1460 V 16 w(APPEND)p
2000 1534 2 113 v 75 1535 1927 2 v 166 1659 a Ft(A)18 b(\014le)h(ma)o(y)f(b)q
(e)g(op)q(ened)i(at)d(the)h(same)g(time)g(with)h(sev)o(eral)f(di\013eren)o(t)
g(comm)o(unicators.)29 b(If)18 b(the)75 1716 y(\014le)13 b(is)g(op)q(ened)h
(with)f Fm(concurrency)g(=)g(MPI)p 813 1716 14 2 v 16 w(CONCURRENT)h
Ft(then)f(MPI-IO)g(ensures)g(that)f(concurren)o(t)75 1772 y(accesses)18
b(to)g(the)g(\014le)h(are)f(atomic,)g(serializable)j(and)d(causal:)26
b(the)18 b(outcome)g(is)h(as)e(if)i(MPI-IO)g(calls)75 1829
y(w)o(ere)f(executed)g(in)h(some)f(serial)g(order,)g(compatible)h(with)f(the)
g(program)f(order.)27 b(\(This)19 b(result)f(can)75 1885 y(b)q(e)f(ac)o(hiev)
o(ed,)g(e.g.,)e(b)o(y)h(serializing)i(all)f(accesses)g(to)e(the)h(\014le)i
(at)d(a)h(unique)i(\014le)f(serv)o(er.\))22 b(If)16 b(the)g(\014le)h(is)75
1941 y(op)q(ened)e(with)f Fm(concurrency)g Ft(=)g Fj(MPI)p
696 1941 13 2 v 15 w(EX)o(CLUSIVE)d Ft(then)j(no)g(suc)o(h)g(concurrency)g
(proto)q(col)g(is)g(used.)20 b(The)75 1998 y Fj(MPI)p 152 1998
V 14 w(EX)o(CLUSIVE)d Ft(mo)q(de)j(should)g(b)q(e)g(used)g(only)g(when)f(the)
h(\014le)g(is)g(exclusiv)o(ely)h(accessed)f(with)g(one)75 2054
y(comm)o(unicator,)14 b(or)h(is)h(only)g(accessed)f(in)h(read)g(mo)q(de.)166
2117 y(When)g(a)f(\014le)h(is)g(op)q(ened)g(with)g Fm(mo)q(de)d
Ft(=)j Fj(MPI)p 962 2117 V 14 w(PRIV)m(A)m(TE)d Ft(then)i Fm(n)h
Ft(\014les)h(are)e(actually)h(op)q(ened,)g(one)75 2174 y(for)g(eac)o(h)h(pro)
q(cess)g(in)g(the)g(group.)24 b(Tw)o(o)16 b(\014les)h(op)q(ened)h(with)f(the)
g Fm(p)o(rivate)f Ft(mo)q(de)h(are)g(the)f(same)h(\014le)g(if)75
2230 y(they)e(w)o(ere)g(op)q(ened)i(with)e(the)g(same)g(name)g(and)h(b)o(y)f
(the)g(same)g(pro)q(cess.)166 2293 y(Implemen)o(tations)f(ma)o(y)e(restrict)h
(the)g(supp)q(orted)h(com)o(binations)f(of)g(argumen)o(ts)f(in)i
Fm(MPI)p 1728 2293 14 2 v 16 w(OPEN)p Ft(.)75 2350 y(F)l(or)h(example:)143
2470 y Fg(\017)23 b Ft(The)13 b(t)o(yp)q(e)h(and)g(record)g(length)g
(parameters)f(of)g(a)g(preexisting)i(\014le)g(ma)o(y)e(b)q(e)h(required)h(to)
e(matc)o(h)189 2527 y(t)o(yp)q(e)i(and)g(record)g(length)h(at)f(\014le)h
(creation.)143 2647 y Fg(\017)23 b Ft(Priv)m(ate)15 b(mo)q(de)g(\()p
Fm(m)o(o)q(de)e Ft(=)i Fj(MPI)p 732 2647 13 2 v 14 w(PRIV)m(A)m(TE)p
Ft(\))d(ma)o(y)i(b)q(e)h(supp)q(orted)g(only)h(for)e(scratc)o(h)g(\014les)i
(\()e Fm(status)189 2704 y Ft(=)h Fj(SCRA)m(TCH)p Ft(\),)e(whic)o(h)j(disapp)
q(ear)h(at)d(the)h(end)h(of)f(the)g(program)f(execution.)1967
46 y Fr(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 8
bop 75 -100 a Fp(1.4.)34 b(FILE)16 b(MANIPULA)l(TION)g(FUNCTIONS)893
b Ft(7)166 49 y Fl(Discussion:)39 b Fk(It)16 b(is)f(usually)f(feasible)h(to)g
(ha)o(v)o(e)g(consisten)o(t)i(organizations)d(for)h(stream)g(\014les)g(and)h
(\014xed)75 106 y(record)f(\014les;)f(v)n(ariable)f(record)i(\014les)f
(require)h(additional)d(structure.)166 255 y Ft(The)j(new)h(comm)o(unicator)f
(has)g(the)g(same)g(comm)o(unication)h(group)f(as)f(the)i(old)g(comm)o
(unicator.)166 405 y Fl(Implemen)o(tati)o(on)h(note:)53 b Fk(The)19
b(new)g(comm)o(unicator)c(ma)o(y)h(ha)o(v)o(e)i(additional)f(cac)o(hed)i
(information)75 462 y(\(suc)o(h)c(as)f(a)f(\014le)h(descriptor)h(or)f(a)g
(comm)o(unicator)d(to)j(comm)o(unicate)d(with)j(the)g(\014le)g(serv)o
(er\(s\)\).)166 694 y Fl(Discussion:)44 b Fk(The)17 b(requiremen)o(t)f(that)h
(the)g(new)f(comm)o(unicator)e(ha)o(v)o(e)i(the)h(same)f(group)g(as)h(the)g
(old)75 750 y(one)i(imp)q(oses)f(some)g(o)o(v)o(erhead)i(\(one)f(could,)h
(otherwise,)g(put)f(the)h(\014le)f(serv)o(er\(s\))i(as)e(mem)o(b)q(ers)f(of)g
(the)i(new)75 807 y(comm)o(unication)15 b(group\).)32 b(Ho)o(w)o(ev)o(er,)20
b(it)e(seems)h(more)f(elegan)o(t)g(that)h(the)g(ob)r(ject)h(visible)e(to)g
(the)h(user)h(\(the)75 863 y(new)d(comm)o(unicator\))d(has)i(no)h(visible)e
(information)f(on)i(\014le)h(serv)o(ers,)h(and)e(that)h(it)f(represen)o(ts)j
(the)e(group)g(of)75 920 y(pro)q(cesses)g(that)c(are)i(in)o(v)o(olv)o(ed)d
(in)i(collectiv)o(e)g(I/O)g(op)q(erations.)75 1117 y Fm(MPI)p
160 1117 14 2 v 16 w(REOPEN\()i(action,)f(p)q(osition,)h(mo)q(de,)d(metho)q
(d,)g(concurrency)l(,)j(comm)m(\))117 1205 y Fk(IN)155 b Fm(action)472
b Fk(one)14 b(of)f Fj(MPI)p 1105 1205 13 2 v 14 w(READ,)g(MPI)p
1329 1205 V 14 w(WRITE)p Fk(,)f(or)i Fj(MPI)p 1624 1205 V 14
w(READ)o(WRITE)905 1261 y Fk(\(state\))117 1357 y(IN)155 b
Fm(p)q(osition)439 b Fk(one)10 b(of)e Fj(MPI)p 1096 1357 V
15 w(ASIS)p Fk(,)g Fj(MPI)p 1292 1357 V 14 w(REWIND)h Fk(or)g
Fj(MPI)p 1598 1357 V 15 w(APPEND)f Fk(\(state\))117 1454 y(IN)155
b Fm(mo)q(de)481 b Fk(one)119 b(of)f Fj(MPI)p 1315 1454 V 14
w(PRIV)m(A)m(TE,)e(MPI)p 1701 1454 V 14 w(SHARED)905 1510 y
Fk(or)14 b Fj(MPI)p 1033 1510 V 14 w(COLLECTIVE)f Fk(\(state\))117
1607 y(IN)155 b Fm(metho)q(d)442 b Fk(one)14 b(of)g Fj(MPI)p
1106 1607 V 14 w(UNI)f Fk(or)h Fj(MPI)p 1329 1607 V 14 w(MUL)m(TI)g
Fk(\(state\))117 1703 y(IN)155 b Fm(concurrency)362 b Fk(one)10
b(of)e Fj(MPI)p 1096 1703 V 15 w(EX)o(CLUSIVE)f Fk(or)i Fj(MPI)p
1457 1703 V 14 w(CONCURRENT)f Fk(\(state\))117 1799 y(INOUT)62
b Fm(comm)466 b Fk(comm)o(unicator)11 b(of)j(group)f(that)h(op)q(ens)h(the)f
(\014le)g(\(handle\))75 1934 y Fh(int)47 b(MPI)p 269 1934 15
2 v 17 w(reopen\()23 b(MPI)p 549 1934 V 17 w(IO)g(action,)g(MPI)p
900 1934 V 17 w(IO)h(position,)e(MPI)p 1299 1934 V 17 w(IO)i(mode,)f(MPI)p
1603 1934 V 17 w(IO)g(method,)393 1991 y(MPI)p 468 1991 V 17
w(IO)h(concurrency,)e(MPI)p 939 1991 V 17 w(Comm)h(*comm\))75
2088 y(MPI)p 150 2088 V 17 w(REOPEN\()g(ACTION,)g(POSITION,)f(MODE,)h
(METHOD,)g(CONCURRENCY,)g(COMM,)g(IERROR\))170 2144 y(INTEGER)g(ACTION,)g
(POSITION,)g(MODE,)g(METHOD,)g(CONCURRENCY,)f(COMM,)h(IERROR)166
2241 y Ft(Reop)q(ens)16 b(an)f(already)h(op)q(ened)g(\014le,)g(p)q(ossibly)g
(c)o(hanging)g(the)f(action,)g(p)q(osition,)h(mo)q(de,)f(metho)q(d)75
2298 y(and)21 b(concurrency)g(parameters.)36 b(This)21 b(op)q(eration)g(is)g
(equiv)m(alen)o(t)h(to)e(closing)i(and)f(op)q(ening)h(a)e(\014le)75
2354 y(anew,)14 b(but)h(it)g(allo)o(ws)g(to)f(preserv)o(e)h(the)g(use)g(of)g
(the)f(same)h(comm)o(unicator,)f(preserv)o(e)h(the)g(\014le)g(p)q(oin)o(ter)
75 2411 y(p)q(osition)g(\(using)27 b Fm(p)q(osition)15 b Ft(=)e
Fj(MPI)p 683 2411 13 2 v 15 w(ASIS)p Ft(\))f(and)i(a)o(v)o(oid)f(sp)q
(ecifying)i(anew)f(the)f(parameters)g(that)g(do)g(not)75 2467
y(c)o(hange)k(\(\014le)h(name,)f(t)o(yp)q(e)g(and)g(record)h(length\).)25
b(The)18 b Fm(metho)q(d)d Ft(argumen)o(ts)i(is)g(the)g(\014le)h(is)g(a)f
(stream)75 2524 y(\014le.)166 2591 y(MPI-IO)d(do)q(es)g(not)f(pro)o(vide)h
(an)g(explicit)h Fm(CLOSE)f Ft(function.)20 b(A)14 b(\014le)g(is)g(closed)h
(when)f(all)g(comm)o(u-)75 2647 y(nicators)h(that)g(w)o(ere)g(asso)q(ciated)h
(to)e(the)i(\014le)g(b)o(y)f(calls)i(to)e Fm(MPI)p 1181 2647
14 2 v 15 w(OPEN)i Ft(or)d Fm(MPI)p 1471 2647 V 16 w(REOPEN)j
Ft(ha)o(v)o(e)e(b)q(een)75 2704 y(freed)h(\(b)o(y)e(calling)j
Fm(MPI)p 497 2704 V 16 w(COMM)p 655 2704 V 16 w(FREE)p Ft(\).)-32
46 y Fr(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 9
bop 75 -100 a Ft(8)1410 b Fp(CHAPTER)16 b(1.)34 b(IO)75 49
y Fm(MPI)p 160 49 14 2 v 16 w(GET)p 264 49 V 17 w(FILE\(com)o(m)m(,)22
b(exist,)k(\014lename,)d(action,)j(p)q(osition,)h(t)o(yp)q(e,)f(rec)p
1378 49 V 17 w(size,)f(concurrency)l(,)i(mode,)75 106 y(metho)q(d\))117
185 y Fk(IN)155 b Fm(comm)466 b Fk(comm)o(unicator)11 b(attac)o(hed)k(to)f
(\014le)f(\(handle\))117 264 y(OUT)108 b Fm(exist)502 b Fj(true)11
b Fk(if)d(\014le)i(is)f(attac)o(hed)h(to)f(comm)o(unicator,)18
b Fj(false)9 b Fk(otherwise)117 344 y(OUT)108 b Fm(\014lename)428
b Fk(name)13 b(of)g(op)q(ened)i(\014le)f(\(string\))117 423
y(OUT)108 b Fm(action)472 b Fk(one)14 b(of)f Fj(MPI)p 1105
423 13 2 v 14 w(READ,)g(MPI)p 1329 423 V 14 w(WRITE)p Fk(,)f(or)i
Fj(MPI)p 1624 423 V 14 w(READ)o(WRITE)905 480 y Fk(\(state\))117
559 y(OUT)108 b Fm(p)q(osition)439 b Fk(one)11 b(of)e Fj(MPI)p
1098 559 V 15 w(REWIND)h Fk(\(start)h(of)e(\014le\),)i Fj(MPI)p
1607 559 V 14 w(APPEND)e Fk(\(end)905 615 y(of)k(\014le\))i(or)e
Fj(MPI)p 1163 615 V 15 w(ASIS)g Fk(\(none)h(of)f(the)i(ab)q(o)o(v)o(e\))f
(\(state\))117 695 y(OUT)108 b Fm(t)o(yp)q(e)507 b Fk(one)16
b(of)e Fj(MPI)p 1108 695 V 15 w(STREAM)p Fk(,)g Fj(MPI)p 1391
695 V 15 w(FIXED)f Fk(\(\014xed)j(size)g(record\),)905 751
y(or)e Fj(MPI)p 1033 751 V 14 w(V)m(ARIABLE)e Fk(\(v)n(ariable)h(size)i
(record\))g(\(state\))117 831 y(OUT)108 b Fm(rec)p 377 831
14 2 v 17 w(size)446 b Fk(record)19 b(length)f(for)f(\014xed)h(size)h(record)
g(\014le,)f(and)f(maxima)o(l)905 887 y(record)e(length)f(for)g(v)n(ariable)e
(size)j(record)g(\014le)f(\(in)o(teger\))117 967 y(OUT)108
b Fm(mo)q(de)481 b Fk(one)119 b(of)f Fj(MPI)p 1315 967 13 2
v 14 w(PRIV)m(A)m(TE,)e(MPI)p 1701 967 V 14 w(SHARED)905 1023
y Fk(or)14 b Fj(MPI)p 1033 1023 V 14 w(COLLECTIVE)f Fk(\(state\))117
1102 y(OUT)108 b Fm(metho)q(d)442 b Fk(one)14 b(of)g Fj(MPI)p
1106 1102 V 14 w(UNI)f Fk(or)h Fj(MPI)p 1329 1102 V 14 w(MUL)m(TI)g
Fk(\(state\))117 1182 y(OUT)108 b Fm(concurrency)362 b Fk(one)10
b(of)e Fj(MPI)p 1096 1182 V 15 w(EX)o(CLUSIVE)f Fk(or)i Fj(MPI)p
1457 1182 V 14 w(CONCURRENT)f Fk(\(state\))75 1308 y Fh(int)47
b(MPI)p 269 1308 15 2 v 17 w(Get)p 358 1308 V 17 w(file\()23
b(MPI)p 590 1308 V 17 w(Comm)g(comm,)g(int)h(*exist,)f(char)g(*filename,)393
1365 y(MPI)p 468 1365 V 17 w(IO)h(*action,)e(MPI)p 843 1365
V 17 w(IO)i(*position,)e(MPI)p 1266 1365 V 17 w(IO)i(*type,)f(int)g(*rec)p
1713 1365 V 17 w(size,)393 1421 y(MPI)p 468 1421 V 17 w(IO)h(*mode,)f(MPI)p
796 1421 V 16 w(IO)h(*method)f(,)h(MPI)p 1195 1421 V 16 w(IO)g
(*concurrency\))75 1510 y(MPI)p 150 1510 V 17 w(GET)p 239 1510
V 17 w(FILE\()f(COMM,)g(EXIST,)g(FILENAME,)g(ACTION,)f(POSITION,)h(TYPE,)g
(REC)p 1592 1510 V 17 w(SIZE,)g(MODE,)393 1566 y(METHOD,)g(CONCURRENCY,)f
(IERROR\))170 1623 y(INTEGER)h(COMM,)h(ACTION,)e(POSITION,)h(TYPE,)g(REC)p
1152 1623 V 17 w(SIZE,)g(MODE,)g(METHOD,)170 1679 y(CONCURRENCY,)g(IERROR)170
1736 y(LOGICAL)g(EXIST)170 1792 y(CHARACTER\(*\))g(FILENAME)166
1881 y Ft(Query)d(whether)f(an)g(op)q(en)h(\014le)h(is)f(curren)o(tly)f
(attac)o(hed)g(with)h(comm)o(unicator)f Fm(comm)m Ft(.)29 b(If)20
b(y)o(es,)75 1937 y(returns)14 b Fm(exist)i(=)f(true)g Ft(and)g(returns)f(in)
i(the)e(remaining)i(parameters)e(information)h(on)f(the)h(\014le.)21
b(If)14 b(no,)75 1994 y Fm(exist)i(=)g(false)f Ft(is)h(returned,)f(and)g(the)
g(v)m(alue)i(of)e(the)g(remaining)h(argumen)o(ts)f(is)g(unde\014ned.)166
2052 y(A)23 b(\014le)g(is)h(p)q(ositioned)g(at)e(start)g(of)g(\014le)i(\()e
Fm(p)q(osition)i Ft(=)f Fj(MPI)p 1250 2052 13 2 v 14 w(REWIND)p
Ft(\))f(if)i(the)e(\014le)i(p)q(oin)o(ter)f(is)75 2109 y(p)q(ositioned)18
b(at)e(the)h(\014rst)g(b)o(yte)f(in)i(a)e(stream)g(\014le)i(or)e(\014rst)g
(record)h(in)h(a)e(record)h(\014le.)25 b(It)17 b(is)g(p)q(ositioned)75
2165 y(at)f(the)h(end)g(of)g(\014le)g(\()g Fm(p)q(osition)h
Ft(=)f Fj(MPI)p 757 2165 V 14 w(APPEND)p Ft(\))e(if)i(it)g(is)h(at)e(the)g
(\014rst)h(record)f(\(\014rst)g(b)o(yte\))h(past)f(the)75 2221
y(signi\014can)o(t)g(records)f(\(b)o(ytes\))g(in)h(the)f(\014le.)21
b(Otherwise,)15 b(the)h(p)q(osition)g(returned)g(is)f Fj(MPI)p
1611 2221 V 15 w(ASIS)p Ft(.)166 2280 y(MPI-IO)d(do)q(es)f(not)f(pro)o(vide)h
(a)g(mec)o(hanism)g(for)g(allo)o(wing)g(a)g(pro)q(cess)g(to)f(inquire)i
(whether)f(another)75 2337 y(pro)q(cess)k(has)h(op)q(ened)g(a)f(named)g
(\014le.)166 2478 y Fl(Discussion:)32 b Fk(The)12 b(curren)o(t)h
(de\014nition)e(of)g(MPI-IO)h(allo)o(ws)e(for)h(a)h(distributed)g(implemen)o
(tati)o(on,)d(where)75 2534 y(only)14 b(those)i(pro)q(cesses)i(that)e(op)q
(en)f(a)g(\014le)g(are)h(in)o(v)o(olv)o(ed)e(in)h(the)g(op)q(en)h(op)q
(eration.)22 b(An)15 b(implemen)o(tation,)d(that)75 2591 y(uses)18
b(a)f(globally)e(kno)o(wn)i(serv)o(er)i(for)e(eac)o(h)g(\014le,)h(will)e
(allo)o(w)f(to)i(supp)q(ort)h(additional)e(queries)i(\(e.g.,)f(c)o(hec)o
(king)75 2647 y(whether)j(a)e(\014le)h(has)g(b)q(een)g(op)q(ened)h(b)o(y)e
(another)i(pro)q(cess\),)h(and)d(will)f(allo)o(w)g(to)i(test)h(that)e(the)i
Fj(concurrency)75 2704 y Fk(argumen)o(t)13 b(is)h(used)g(correctly)m(,)g(but)
h(it)e(ma)o(y)f(cause)j(p)q(erformance)f(b)q(ottlenec)o(ks.)1967
46 y Fr(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 10
bop 75 -100 a Fp(1.5.)34 b(INDIVIDUAL)17 b(I/O)1298 b Ft(9)75
49 y Fu(1.5)59 b(Individual)19 b(I/O)75 151 y Ft(The)13 b(functions)h(in)g
(this)g(section)f(apply)h(to)f(\014les)h(op)q(ened)g(in)g(the)f
Fj(PRIV)m(A)m(TE)e Ft(or)h Fj(SHARED)h Ft(mo)q(des.)20 b(These)75
207 y(functions)i(are)f(executed)h(individuall)q(y)i(b)o(y)d(pro)q(cesses)h
(that)e(ha)o(v)o(e)h(access)g(to)g(the)g(\014le.)39 b(They)21
b(are)75 264 y(\\lo)q(cal",)i(in)f(the)g(sense)g(that)e(their)i(completion)h
(do)q(es)e(not)g(dep)q(end)i(on)f(an)o(y)f(activit)o(y)g(of)g(another)75
320 y(computation)15 b(pro)q(cess.)75 439 y Fo(1.5.1)49 b(Data)17
b(access)75 572 y Fm(MPI)p 160 572 14 2 v 16 w(READ\(bu\013er,)e(count,)h(t)o
(yp)q(e,)g(comm)m(,)c(status\))117 649 y Fk(OUT)124 b Fm(bu\013er)462
b Fk(initial)12 b(address)j(of)f(bu\013er)g(where)i(data)d(is)h(put)g(\(c)o
(hoice\))117 722 y(IN)171 b Fm(count)466 b Fk(n)o(um)o(b)q(er)13
b(of)h(elemen)o(ts)f(read)i(\(in)o(teger\))117 794 y(IN)171
b Fm(t)o(yp)q(e)491 b Fk(datat)o(yp)q(e)14 b(of)g(eac)o(h)g(elemen)o(t)f
(read)i(\(handle\))117 866 y(IN)171 b Fm(comm)450 b Fk(comm)o(unicator)7
b(for)i(\014le)g(access)i(that)e(w)o(as)g(returned)i(b)o(y)e
Fj(MPI)p 1865 866 13 2 v 15 w(OPEN)905 923 y Fk(\(handle\))117
995 y(OUT)124 b Fm(status)460 b Fk(return)15 b(status)g(of)e(read)i(op)q
(eration)e(\(Status\))75 1119 y Fh(int)47 b(MPI)p 269 1119
15 2 v 17 w(Read\(void*)23 b(buffer,)f(int)i(count,)f(MPI)p
1074 1119 V 17 w(Datatype)g(type,)g(MPI)p 1521 1119 V 16 w(Comm)h(comm,)393
1176 y(MPI)p 468 1176 V 17 w(Status)f(*status\))75 1262 y(MPI)p
150 1262 V 17 w(READ\(BUFFER,)f(COUNT,)h(TYPE,)g(COMM,)g(STATUS,)g(IERROR\))
170 1319 y(<type>)g(BUFFER\(*\))170 1375 y(INTEGER)g(COUNT,)g(TYPE,)h(COMM,)f
(STATUS\(MPI)p 1058 1375 V 16 w(STATUS)p 1218 1375 V 16 w(SIZE\),)g(IERROR)
166 1462 y Ft(The)16 b(sequence)i(of)e(v)m(alues)h(sp)q(eci\014ed)i(b)o(y)d
(the)g(t)o(yp)q(e)g(signature)h(of)f Fm(t)o(yp)q(e,)h(count)g
Ft(is)g(read)f(from)g(the)75 1518 y(\014le)k(asso)q(ciated)f(with)g
Fm(comm)m Ft(,)d(and)j(is)g(stored)f(in)i(the)f(comm)o(unication)g(bu\013er)g
(sp)q(eci\014ed)i(b)o(y)d Fm(bu\013er,)75 1574 y(t)o(yp)q(e,)d(count)p
Ft(.)21 b(Arbitrary)15 b(deriv)o(ed)g(datat)o(yp)q(es)f(can)h(b)q(e)g(used.)
20 b(This)15 b(function)h(can)e(b)q(e)i(called)g(for)e(a)g(\014le)75
1631 y(op)q(ened)i(in)g(priv)m(ate)g(or)f(shared)g(mo)q(des.)166
1687 y(Let)f Fm(t)o(yp)q(e)p 329 1687 14 2 v 17 w(size)h Ft(b)q(e)f(the)g(n)o
(um)o(b)q(er)g(of)g(b)o(ytes)f(for)h(the)g(t)o(yp)q(e)g(signature)g(of)f
Fm(t)o(yp)q(e)p Ft(;)i(let)f Fm(size)f Ft(=)g Fm(t)o(yp)q(e)p
1772 1687 V 18 w(size)7 b Fg(\001)75 1744 y Fm(count)p Ft(.)166
1800 y(On)15 b(a)g(stream)f(\014le,)h(the)g(call)h(causes)f
Fm(size)g Ft(b)o(ytes)g(to)f(b)q(e)h(read)g(from)f(the)h(\(priv)m(ate)g(or)g
(shared\))f(\014le;)75 1857 y(the)e(\(priv)m(ate)h(or)e(shared\))h(\014le)h
(p)q(oin)o(ter)g(is)f(incremen)o(ted)i(b)o(y)e Fm(size)p Ft(.)19
b(If)12 b(less)h(than)e Fm(size)i Ft(b)o(ytes)f(are)f(a)o(v)m(ailable)75
1913 y(to)k(the)g(end)h(of)e(the)i(\014le,)g(then)f(an)g(end-of-\014le)i
(error)e(indication)i(is)e(returned.)166 1970 y(On)21 b(a)f(record)h(\014le)h
(accessed)f(with)g Fm(uni)g Ft(metho)q(d)g Fm(size)g Ft(b)o(ytes)f(will)j(b)q
(e)e(read)f(from)g(the)h(curren)o(t)75 2026 y(record)14 b(and)g(the)g(\014le)
h(p)q(oin)o(ter)f(is)h(incremen)o(ted)g(b)o(y)f(one.)19 b(If)14
b(less)h(than)f Fm(size)g Ft(b)o(ytes)f(are)h(a)o(v)m(ailable)i(to)d(the)75
2083 y(end)i(of)f(record)h(then)f(the)h(call)h(returns)e(an)g(end-of-record)i
(error)d(indication;)k(if)e(the)f(\014le)i(p)q(oin)o(ter)f(is)g(at)75
2139 y(end-of-\014le)i(then)e(the)h(call)g(returns)f(an)g(end-of-\014le)i
(error)e(indication.)166 2195 y(On)i(a)g(record)g(\014le)h(accessed)f(with)g
(the)g Fm(multi)e Ft(metho)q(d)i Fm(t)o(yp)q(e)p 1230 2195
V 17 w(size)g Ft(b)o(ytes)g(will)i(b)q(e)e(accessed)h(from)75
2252 y(eac)o(h)g(of)g Fm(count)i Ft(consecutiv)o(e)f(records;)h(the)e(\014le)
i(p)q(oin)o(ter)f(is)g(incremen)o(ted)g(b)o(y)g Fm(count)p
Ft(.)30 b(If)19 b(an)o(y)f(of)g(the)75 2308 y(records)d(accessed)g(con)o
(tains)h(less)f(than)g Fm(t)o(yp)q(e)p 862 2308 V 17 w(size)h
Ft(b)o(ytes)e(then)i(an)f(end-of-record)g(error)g(indication)h(is)75
2365 y(returned;)i(if)g(less)f(than)g Fm(count)i Ft(records)e(are)g(a)o(v)m
(ailable)h(to)f(the)g(end)h(of)e(the)i(\014le,)g(then)f(an)g(end-of-\014le)75
2421 y(error)d(indication)k(is)d(returned.)166 2478 y(MPI-IO)c(do)q(es)g(not)
f(sp)q(ecify)i(the)e(v)m(alues)i(returned)f(b)o(y)f(a)g(call)i(to)d
Fm(MPI)p 1341 2478 V 16 w(READ)i Ft(that)f(encoun)o(tered)h(an)75
2534 y(end-of-\014le)j(or)d(end-of-record)i(error;)f(nor)g(do)q(es)g(it)h(sp)
q(ecify)g(the)f(lo)q(cation)h(of)f(the)g(\014le)h(p)q(oin)o(ter)g(if)f(an)g
(end-)75 2591 y(of-\014le)17 b(error)e(o)q(ccurred.)22 b(The)16
b(status)f(parameter)g(can)h(b)q(e)h(queried)g(b)o(y)f(a)f(call)i(to)f
Fm(MPI)p 1601 2591 V 15 w(GET)p 1704 2591 V 17 w(COUNT)75 2647
y Ft(or)f Fm(MPI)p 216 2647 V 16 w(GET)p 320 2647 V 17 w(ELEMENTS)h
Ft(in)h(order)e(to)h(\014nd)g(the)g(n)o(um)o(b)q(er)h(of)e(en)o(tries)i(\(of)
e(t)o(yp)q(e)h Fm(t)o(yp)q(e)p Ft(\))g(or)g(the)g(n)o(um-)75
2704 y(b)q(er)i(of)f(basic)h(elemen)o(ts)h(actually)f(read)g(\(see)f([4)o(,)h
(3.13.5]\),)d(when)j(end-of-\014le)i(or)d(end-of-record)h(w)o(as)-32
46 y Fr(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 11
bop 75 -100 a Ft(10)1387 b Fp(CHAPTER)16 b(1.)34 b(IO)75 49
y Ft(encoun)o(tered.)d(If)19 b Fm(MPI)p 491 49 14 2 v 16 w(GET)p
595 49 V 17 w(COUNT)g Ft(\(resp.)g Fm(MPI)p 1000 49 V 15 w(GET)p
1103 49 V 17 w(ELEMENT)p Ft(\))f(returns)h Fm(n)g Ft(then)g(the)g(\014rst)g
Fm(n)75 106 y Ft(en)o(tries)i(\(resp.)e(the)i(\014rst)f Fm(n)g
Ft(basic)h(elemen)o(ts\))g(of)f(the)g(receiv)o(e)h(bu\013er)f(w)o(ere)g
(correctly)h(up)q(dated)g(b)o(y)75 162 y(the)d(I/O)f(op)q(eration.)27
b(The)18 b(remaining)g(en)o(tries)g(\(elemen)o(ts\))g(of)f(the)g(receiv)o(e)i
(bu\013er)e(ma)o(y)g(ha)o(v)o(e)g(b)q(een)75 219 y(partially)f(or)f(totally)g
(mo)q(di\014ed,)h(to)q(o,)e(b)o(y)i(the)f(read.)166 276 y(The)f(error)f
(handler)h(attac)o(hed)f(with)h(the)g(comm)o(unicator)f(is)h(in)o(v)o(ok)o
(ed)g(if)g(an)f(error)g(o)q(ccurs)h(during)75 332 y(the)k(call.)30
b(The)19 b(standard)e(MPI)i(error)e(handler)i(considers)g(end-of-\014le)h(or)
e(end-of-record)h(errors)e(on)75 389 y(read)i(to)g(b)q(e)h(non-fatal)g(and)f
(has)g(no)h(e\013ect.)32 b(The)20 b(user)f(can)h(c)o(hange)f(this)h(b)q(eha)o
(vior)g(b)o(y)f(attac)o(hing)75 445 y(another)c(error)f(handler.)166
502 y(The)20 b(use)f(of)g(deriv)o(ed)i(datat)o(yp)q(es)d(allo)o(ws)i
(scattering)f(of)g(con)o(tiguous)h(data)e(from)h(the)h(\014le)g(in)o(to)75
559 y(non-con)o(tiguous)c(lo)q(cations)g(in)g(the)f(reader's)g(memory)l(.)75
663 y Fm(MPI)p 160 663 V 16 w(WRITE\(bu\013er,)f(count,)j(t)o(yp)q(e,)e(comm)
n(,)c(status\))117 741 y Fk(OUT)124 b Fm(bu\013er)462 b Fk(initial)12
b(address)j(of)f(bu\013er)g(to)g(write)g(from)f(\(c)o(hoice\))117
817 y(IN)171 b Fm(count)466 b Fk(n)o(um)o(b)q(er)13 b(of)h(elemen)o(ts)f
(written)i(\(in)o(teger\))117 893 y(IN)171 b Fm(t)o(yp)q(e)491
b Fk(datat)o(yp)q(e)14 b(of)g(eac)o(h)g(elemen)o(t)f(written)i(\(handle\))117
970 y(IN)171 b Fm(comm)450 b Fk(comm)o(unicator)7 b(for)i(\014le)g(access)i
(that)e(w)o(as)g(returned)i(b)o(y)e Fj(MPI)p 1865 970 13 2
v 15 w(OPEN)905 1026 y Fk(\(handle\))117 1102 y(OUT)124 b Fm(status)460
b Fk(return)15 b(status)g(of)e(write)h(op)q(eration)g(\(Status\))75
1227 y Fh(int)47 b(MPI)p 269 1227 15 2 v 17 w(Write\(void*)22
b(buffer,)h(int)h(count,)f(MPI)p 1098 1227 V 17 w(Datatype)f(type,)i(MPI)p
1545 1227 V 16 w(Comm)g(comm,)393 1284 y(MPI)p 468 1284 V 17
w(Status)f(*status\))75 1371 y(MPI)p 150 1371 V 17 w(WRITE\(BUFFER,)f(COUNT,)
h(TYPE,)g(COMM,)g(STATUS,)g(IERROR\))170 1427 y(<type>)g(BUFFER\(*\))170
1484 y(INTEGER)g(COUNT,)g(TYPE,)h(COMM,)f(STATUS\(MPI)p 1058
1484 V 16 w(STATUS)p 1218 1484 V 16 w(SIZE\),)g(IERROR)166
1571 y Ft(The)f(data)f(con)o(tained)i(in)f(the)g(comm)o(unication)h(bu\013er)
f(sp)q(eci\014ed)i(b)o(y)e Fm(bu\013er,)h(t)o(yp)q(e,)h(count)f
Ft(is)75 1627 y(written)c(on)o(to)f(the)h(\014le)h(sp)q(eci\014ed)h(b)o(y)e
Fm(comm)m Ft(.)29 b(Arbitrary)18 b(deriv)o(ed)i(datat)o(yp)q(es)f(can)g(b)q
(e)h(used.)31 b(This)75 1684 y(function)16 b(can)f(b)q(e)h(called)h(for)e(a)f
(\014le)j(op)q(ened)f(in)g(priv)m(ate)g(or)f(shared)g(mo)q(des.)166
1741 y(Let)f Fm(t)o(yp)q(e)p 329 1741 14 2 v 17 w(size)h Ft(b)q(e)f(the)g(n)o
(um)o(b)q(er)g(of)g(b)o(ytes)f(for)h(the)g(t)o(yp)q(e)g(signature)g(of)f
Fm(t)o(yp)q(e)p Ft(;)i(let)f Fm(size)f Ft(=)g Fm(t)o(yp)q(e)p
1772 1741 V 18 w(size)7 b Fg(\001)75 1797 y Fm(count)p Ft(.)166
1854 y(On)23 b(a)f(stream)f(\014le,)k Fm(size)d Ft(b)o(ytes)g(are)g(written)g
(and)h(the)f(\(priv)m(ate)h(or)e(shared\))h(\014le)i(p)q(oin)o(ter)e(is)75
1911 y(incremen)o(ted)16 b(b)o(y)g Fm(size)p Ft(.)k(An)15 b(end-of-\014le)i
(error)d(is)i(rep)q(orted)g(if)f(the)g(maxim)o(um)h(\014le)g(size)g(is)g
(exceeded.)166 1968 y(On)f(a)f(record)g(\014le)i(accessed)f(with)f
Fm(uni)h Ft(metho)q(d,)g Fm(size)f Ft(b)o(ytes)h(are)f(written)g(on)g(the)h
(curren)o(t)f(record)75 2024 y(and)c(the)h(\014le)g(p)q(oin)o(ter)g(is)f
(incremen)o(ted)i(b)o(y)e(one.)18 b(An)11 b(end-of-record)g(error)e(is)i(rep)
q(orted)f(if)h(the)f(maxim)o(um)75 2081 y(record)k(size)h(is)g(exceeded;)h
(an)e(end-of-\014le)i(error)d(is)i(rep)q(orted)f(if)h(the)g(maxim)o(um)f
(\014le)h(size)g(is)g(exceeded.)166 2138 y(On)g(a)g(record)g(\014le)h
(accessed)g(with)f(the)g Fm(multi)e Ft(metho)q(d,)i Fm(t)o(yp)q(e)p
1226 2138 V 17 w(size)g Ft(b)o(ytes)g(are)g(written)g(in)o(to)g
Fm(count)75 2194 y Ft(successiv)o(e)j(records,)f(and)g(the)g(\014le)h(p)q
(oin)o(ter)f(is)h(incremen)o(ted)g(b)o(y)e Fm(count)p Ft(.)27
b(An)17 b(end-of-record)g(error)f(is)75 2251 y(rep)q(orted)g(if)f(the)h
(maxim)o(um)f(record)g(size)i(is)f(exceeded;)g(and)g(an)f(end-of-\014le)i
(error)e(is)h(rep)q(orted)f(if)h(the)75 2307 y(maxim)o(um)f(\014le)h(size)g
(is)g(exceeded.)166 2364 y(If)i(a)f(v)m(ariable)i(size)g(record)e(is)h
(written,)g(then)g(the)g(record)f(size)i(is)f(adjusted)g(to)f(the)g(size)i
(of)e(the)75 2421 y(data)f(written.)23 b(If)17 b(a)f(\014xed)h(size)g(record)
f(is)h(written)f(and)h(only)g(partially)g(\014lled,)h(then)f(the)f(remainder)
75 2477 y(of)f(the)g(record)g(is)h(unde\014ned.)166 2534 y(MPI-IO)h(do)q(es)f
(not)f(sp)q(ecify)j(whic)o(h)e(v)m(alues)h(are)f(stored)g(on)f(\014le)i(b)o
(y)f(a)g(call)h(to)e Fm(MPI)p 1620 2534 V 16 w(WRITE)h Ft(that)75
2591 y(encoun)o(tered)g(an)f(end-of-\014le)h(or)f(end-of-record)g(error;)f
(nor)h(do)q(es)g(it)g(sp)q(ecify)i(the)e(lo)q(cation)g(of)g(the)g(\014le)75
2647 y(p)q(oin)o(ter)j(if)g(an)f(end-of-\014le)i(error)e(o)q(ccurred.)27
b(The)17 b(status)g(parameter)g(can)g(b)q(e)h(queried)h(b)o(y)e(a)g(call)i
(to)75 2704 y Fm(MPI)p 160 2704 V 16 w(GET)p 264 2704 V 17
w(COUNT)d Ft(or)f Fm(MPI)p 591 2704 V 15 w(GET)p 694 2704 V
17 w(ELEMENTS)h Ft(in)g(order)f(to)g(\014nd)h(the)f(n)o(um)o(b)q(er)h(of)f
(en)o(tries)g(\(of)g(t)o(yp)q(e)1967 46 y Fr(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 12
bop 75 -100 a Fp(1.5.)34 b(INDIVIDUAL)17 b(I/O)1276 b Ft(11)75
49 y Fm(t)o(yp)q(e)p Ft(\))16 b(or)f(the)h(n)o(um)o(b)q(er)g(of)f(basic)h
(elemen)o(ts)g(actually)g(written)g(\(see)f([4,)g(3.13.5]\),)d(when)k
(end-of-\014le)h(or)75 106 y(end-of-record)e(w)o(as)e(encoun)o(tered.)20
b(If)15 b Fm(MPI)p 838 106 14 2 v 16 w(GET)p 942 106 V 16 w(COUNT)g
Ft(\(resp.)f Fm(MPI)p 1337 106 V 16 w(GET)p 1441 106 V 17 w(ELEMENT)p
Ft(\))f(returns)i Fm(n)75 162 y Ft(then)j(the)g(\014rst)g Fm(n)g
Ft(en)o(tries)g(\(resp.)g(the)g(\014rst)f Fm(n)i Ft(basic)f(elemen)o(ts\))g
(of)g(the)g(send)g(bu\013er)g(w)o(ere)g(correctly)75 219 y(written)g(on)g
(\014le)h(b)o(y)g(the)f(I/O)g(op)q(eration.)29 b(F)l(urther)18
b(data)g(ma)o(y)f(ha)o(v)o(e)h(b)q(een)h(\(partially\))g(written)f(on)75
275 y(the)d(\014le.)166 332 y(The)f(error)f(handler)h(attac)o(hed)f(with)h
(the)g(comm)o(unicator)f(is)h(in)o(v)o(ok)o(ed)g(if)g(an)f(error)g(o)q(ccurs)
h(during)75 388 y(the)k(call.)30 b(The)19 b(standard)e(MPI)i(error)e(handler)
i(considers)g(end-of-\014le)h(or)e(end-of-record)h(errors)e(on)75
444 y(write)f(to)f(b)q(e)h(fatal)f(and)h(ab)q(orts)f(the)h(program.)k(The)c
(user)g(can)g(c)o(hange)f(this)i(b)q(eha)o(vior)f(b)o(y)f(attac)o(hing)75
501 y(another)g(error)f(handler.)166 557 y(The)k(use)g(of)f(deriv)o(ed)i
(datat)o(yp)q(es)e(allo)o(ws)g(gathering)h(of)f(data)g(from)g(non-con)o
(tiguous)h(lo)q(cations)75 614 y(in)e(the)f(reader's)g(memory)g(and)g(write)g
(them)g(on)o(to)g(a)g(con)o(tiguous)g(blo)q(c)o(k)h(on)f(the)g(\014le.)166
670 y(If)g(a)f(\014le)i(is)f(op)q(en)g(b)q(oth)g(for)f(reads)h(and)f(writes)h
(\()p Fm(action)g(=)g(MPI)p 1274 670 V 16 w(READ)o(WRITE)p
Ft(\))f(then)h(reads)g(and)75 727 y(writes)f(can)h(b)q(e)f(mixed)h(in)g(an)g
(arbitrary)e(manner)h({)g(there)g(is)h(no)f(need)h(to)f(rep)q(osition)h(the)f
(\014le)h(p)q(oin)o(ter)75 783 y(b)q(et)o(w)o(een)h(reads)f(and)g(writes.)75
887 y Fm(MPI)p 160 887 V 16 w(IREAD\(bu\013er,)g(count,)h(t)o(yp)q(e,)g(comm)
m(,)c(request\))117 964 y Fk(OUT)124 b Fm(bu\013er)462 b Fk(initial)12
b(address)j(of)f(bu\013er)g(where)i(data)d(is)h(put)g(\(c)o(hoice\))117
1039 y(IN)171 b Fm(count)466 b Fk(n)o(um)o(b)q(er)13 b(of)h(elemen)o(ts)f
(read)i(\(in)o(teger\))117 1114 y(IN)171 b Fm(t)o(yp)q(e)491
b Fk(datat)o(yp)q(e)14 b(of)g(eac)o(h)g(elemen)o(t)f(read)i(\(handle\))117
1189 y(IN)171 b Fm(comm)450 b Fk(comm)o(unicator)11 b(for)j(\014le)g(access)h
(\(handle\))117 1263 y(OUT)124 b Fm(request)436 b Fk(comm)o(unication)11
b(request)k(\(handle\))75 1388 y Fh(int)47 b(MPI)p 269 1388
15 2 v 17 w(Iread\(void*)22 b(buffer,)h(int)h(count,)f(MPI)p
1098 1388 V 17 w(Datatype)f(type,)i(MPI)p 1545 1388 V 16 w(Comm)g(comm,)393
1444 y(MPI)p 468 1444 V 17 w(Comm)p 581 1444 V 17 w(request)e(*request\))75
1531 y(MPI)p 150 1531 V 17 w(IREAD\(BUFFER,)g(COUNT,)h(TYPE,)g(COMM,)g
(REQUEST,)g(IERROR\))170 1587 y(<type>)g(BUFFER\(*\))170 1644
y(INTEGER)g(COUNT,)g(TYPE,)h(COMM,)f(REQUEST,)g(IERROR)166
1730 y Ft(Initiates)e(a)f(non)o(blo)q(c)o(king)i(\(async)o(hronous\))e(read)g
(op)q(eration.)36 b(The)20 b(op)q(eration)h(is)g(completed)75
1787 y(in)d(the)g(same)f(manner)g(as)g(a)g(non)o(blo)q(c)o(king)i(message)e
(passing)g(op)q(eration,)h(b)o(y)f(a)g(call)i(to)e Fm(MPI)p
1737 1787 14 2 v 15 w(W)l(AIT)p Ft(,)75 1843 y Fm(MPI)p 160
1843 V 16 w(TEST)p Ft(,)h(or)f(one)h(of)g(the)g(deriv)o(ed)h(functions.)29
b(Calls)18 b(to)g Fm(MPI)p 1242 1843 V 16 w(W)l(AIT)l(ALL)p
Ft(,)f Fm(MPI)p 1559 1843 V 16 w(W)l(AIT)l(ANY)p Ft(,)h(etc.)75
1900 y(can)d(b)q(e)h(used)g(to)e(w)o(ait)h(for)f(the)h(completion)i(of)d(a)h
(set)g(of)f(I/O)i(op)q(erations)f(\(or,)f(more)h(generally)l(,)h(for)e(a)75
1956 y(mixed)i(set)f(of)g(comm)o(unication)h(and)f(I/O)h(op)q(erations\).)75
2060 y Fm(MPI)p 160 2060 V 16 w(IWRITE\(bu\013er,)e(count,)i(t)o(yp)q(e,)g
(comm)m(,)c(request\))117 2137 y Fk(OUT)124 b Fm(bu\013er)462
b Fk(initial)12 b(address)j(of)f(bu\013er)g(to)g(write)g(from)f(\(c)o
(hoice\))117 2212 y(IN)171 b Fm(count)466 b Fk(n)o(um)o(b)q(er)13
b(of)h(elemen)o(ts)f(written)i(\(in)o(teger\))117 2287 y(IN)171
b Fm(t)o(yp)q(e)491 b Fk(datat)o(yp)q(e)14 b(of)g(eac)o(h)g(elemen)o(t)f
(written)i(\(handle\))117 2361 y(IN)171 b Fm(comm)450 b Fk(comm)o(unicator)11
b(for)j(\014le)g(access)h(\(handle\))117 2436 y(OUT)124 b Fm(request)436
b Fk(comm)o(unication)11 b(request)k(\(handle\))75 2561 y Fh(int)47
b(MPI)p 269 2561 15 2 v 17 w(Iwrite\(void*)22 b(buffer,)h(int)h(count,)f(MPI)
p 1122 2561 V 16 w(Datatype)g(type,)g(MPI)p 1568 2561 V 17
w(Comm)h(comm,)393 2617 y(MPI)p 468 2617 V 17 w(Comm)p 581
2617 V 17 w(request)e(*request\))75 2704 y(MPI)p 150 2704 V
17 w(IWRITE\(BUFFER,)g(COUNT,)h(TYPE,)g(COMM,)g(REQUEST,)g(IERROR\))-32
46 y Fr(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 13
bop 75 -100 a Ft(12)1387 b Fp(CHAPTER)16 b(1.)34 b(IO)170 49
y Fh(<type>)23 b(BUFFER\(*\))170 106 y(INTEGER)g(COUNT,)g(TYPE,)h(COMM,)f
(REQUEST,)g(IERROR)166 193 y Ft(Initiates)16 b(a)f(non)o(blo)q(c)o(king)i
(\(async)o(hronous\))d(write)h(op)q(eration.)75 319 y Fo(1.5.2)49
b(File)17 b(p)q(ositioning)75 406 y Ft(The)d(\014le)g(p)q(ositioning)i
(functions)e(allo)o(w)g(to)f(rep)q(osition)h(the)g(\014le)h(p)q(oin)o(ter)f
(at)e(a)i(particular)g(place)g(in)h(the)75 462 y(\014le)d(with)f(the)g
(function)g Fm(MPI)p 575 462 14 2 v 16 w(SEEK)p Ft(,)f(at)h(the)f(b)q
(eginning)j(of)d(the)h(\014le)h(with)f(the)g(function)g Fm(MPI)p
1672 462 V 16 w(REWIND)p Ft(,)75 519 y(or)k(one)h(lo)q(cation)h(bac)o(k)e
(with)i(the)e(function)i Fm(MPI)p 942 519 V 16 w(BA)o(CKSP)l(A)o(CE)p
Ft(.)f(In)g(addition,)h(the)f(user)g(ma)o(y)f(query)75 575
y(the)j(\014le)i(p)q(oin)o(ter)f(lo)q(cation)g(with)f(a)g(call)i(to)d
Fm(MPI)p 946 575 V 16 w(GETPOS)p Ft(,)i(and)g(truncate)f(the)g(\014le)i(with)
e(a)g(call)i(to)75 632 y Fm(MPI)p 160 632 V 16 w(ENDFILE)p
Ft(.)166 689 y(The)f(\014le)h(p)q(oin)o(ter)g(p)q(osition)g(is)g(a)f(b)o(yte)
g(n)o(um)o(b)q(er,)h(for)e(stream)g(\014les,)j(or)e(a)f(record)i(n)o(um)o(b)q
(er,)g(for)75 745 y(record)e(\014les.)29 b(The)19 b(p)q(osition)g(is)f(a)g(v)
m(ariable)h(of)f(t)o(yp)q(e)34 b Fj(INTEGER)18 b Ft(in)h(F)l(ortran,)e(and)h
(of)g(in)o(tegral)g(t)o(yp)q(e)75 802 y Fj(MPI)p 152 802 13
2 v 14 w(Fint)d Ft(in)h(C.)189 912 y Fs(R)n(ationale.)38 b
Ft(The)14 b(use)f(of)g(t)o(yp)q(e)25 b Fj(MPI)p 836 912 V 14
w(Fint)14 b Ft(allo)o(w)f(implemen)o(tors)h(to)e(pro)o(vide)i(64)f(bit)g
(addressing)189 968 y(in)o(to)i(\014les)h(in)g(a)f(transparen)o(t)f(manner.)
20 b(\()p Fs(End)c(of)g(r)n(ationale.)p Ft(\))75 1125 y Fm(MPI)p
160 1125 14 2 v 16 w(SEEK\(comm)m(,)c(o\013set,)j(whence\))117
1203 y Fk(IN)155 b Fm(comm)466 b Fk(comm)o(unicator)11 b(asso)q(ciated)k
(with)f(\014le)f(\(handle\))117 1280 y(IN)155 b Fm(o\013set)484
b Fk(o\013set)15 b(in)o(to)e(\014le)h(\(in)o(teger\))117 1356
y(IN)155 b Fm(whence)450 b Fk(one)20 b(of)f Fj(MPI)p 1117 1356
13 2 v 15 w(SET)g Fk(\(indicating)g(start)i(of)e(\014le\),)i
Fj(MPI)p 1779 1356 V 14 w(END)905 1413 y Fk(\(indicating)16
b(end)i(of)e(\014le\),)h(or)g Fj(MPI)p 1479 1413 V 15 w(CUR)e
Fk(\(indicating)h(cur-)905 1469 y(ren)o(t)f(p)q(osition\))e(\(state\))p
Ft(.)75 1594 y Fh(int)47 b(MPI)p 269 1594 15 2 v 17 w(Seek\(MPI)p
478 1594 V 16 w(Comm)23 b(comm,)h(MPI)p 829 1594 V 16 w(Fint)g(offset,)f(MPI)
p 1228 1594 V 16 w(IO)h(whence\))75 1681 y(MPI)p 150 1681 V
17 w(SEEK\(COMM,)e(OFFSET,)h(WHENCE,)g(IERROR\))170 1738 y(INTEGER)g(COMM,)h
(OFFSET,)e(WHENCE,)h(IERROR)166 1825 y Ft(Mo)o(v)o(es)15 b(the)h(\(priv)m
(ate)h(or)f(shared\))g(\014le)h(p)q(oin)o(ter)g(to)e(the)i(p)q(osition)g
(determined)h(b)o(y)e(adding)h Fm(o\013set)75 1882 y Ft(to)e(the)g(p)q
(osition)h(indicated)h(b)o(y)e Fm(whence)p Ft(.)166 1939 y(The)20
b(\014le)i(p)q(oin)o(ter)e(cannot)g(b)q(e)h(set)f(to)f(b)q(e)i(negativ)o(e.)
35 b(The)20 b(\014le)i(p)q(oin)o(ter)e(can)h(b)q(e)f(rep)q(ositioned)75
1995 y(b)q(ey)o(ond)c(the)f(end-of-\014le,)i(e.g.)i(using)d(a)f(p)q(ositiv)o
(e)h(displacemen)o(t)h(with)e Fm(whence)i Ft(=)f Fj(MPI)p 1605
1995 13 2 v 14 w(END)p Ft(.)166 2052 y(MPI-IO)g(do)q(es)g(not)e(require)i
Fm(MPI)p 758 2052 14 2 v 16 w(SEEK)f Ft(to)g(b)q(e)h(supp)q(orted)g(for)e(v)m
(ariable)j(size)f(record)f(\014les.)75 2157 y Fm(MPI)p 160
2157 V 16 w(REWIND\(comm)m(\))117 2235 y Fk(IN)155 b Fm(comm)466
b Fk(comm)o(unicator)11 b(asso)q(ciated)k(with)f(\014le)f(\(handle\))75
2360 y Fh(int)47 b(MPI)p 269 2360 15 2 v 17 w(Rewind\(MPI)p
526 2360 V 16 w(Comm)23 b(comm\))75 2447 y(MPI)p 150 2447 V
17 w(REWIND\(COMM,)f(IERROR\))170 2504 y(INTEGER)h(COMM,)h(IERROR)166
2591 y Ft(Mo)o(v)o(es)9 b(the)h(\014le)h(p)q(oin)o(ter)g(to)f(the)g(b)q
(eginning)i(of)e(the)g(\014le.)19 b(This)11 b(is)g(equiv)m(alen)o(t)h(to)d
Fm(MPI)p 1615 2591 14 2 v 16 w(SEEK\(comm)m(,)75 2647 y(0,)18
b(MPI)p 214 2647 V 16 w(SET\))p Ft(.)g(\()p Fm(MPI)p 462 2647
V 16 w(REWIND)g Ft(is)h(supp)q(orted)g(for)f(all)h(\014le)g(t)o(yp)q(es,)g
(including)i(v)m(ariable)f(record)e(size)75 2704 y(\014les.\))j(The)15
b(call)h(has)f(no)g(e\013ect)g(if)h(the)f(\014le)i(is)e(already)h(p)q
(ositioned)g(at)f(its)g(start.)1967 46 y Fr(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 14
bop 75 -100 a Fp(1.6.)34 b(COLLECTIVE)16 b(A)o(CCESSES)1095
b Ft(13)75 49 y Fm(MPI)p 160 49 14 2 v 16 w(BA)o(CKSP)l(A)o(CE\(comm)m(\))117
147 y Fk(IN)155 b Fm(comm)466 b Fk(comm)o(unicator)11 b(asso)q(ciated)k(with)
f(\014le)f(\(handle\))75 291 y Fh(int)47 b(MPI)p 269 291 15
2 v 17 w(Backspace\(MPI)p 598 291 V 15 w(Comm)24 b(comm\))75
398 y(MPI)p 150 398 V 17 w(BACKSPACE\(COMM,)e(IERROR\))170
454 y(INTEGER)h(COMM,)h(IERROR)166 561 y Ft(Mo)o(v)o(es)17
b(the)h(\014le)h(p)q(oin)o(ter)g(one)f(lo)q(cation)h(bac)o(k.)28
b(This)19 b(is)f(equiv)m(alen)o(t)i(to)d Fm(MPI)p 1536 561
14 2 v 16 w(SEEK\(comm)m(,)e(-1,)75 617 y(MPI)p 160 617 V 16
w(CUR\))p Ft(.)i(\()p Fm(MPI)p 413 617 V 15 w(BA)o(CKSP)l(A)o(CE)h
Ft(is)f(supp)q(orted)h(for)e(all)i(\014le)g(t)o(yp)q(es.\))26
b(The)17 b(call)h(is)f(erroneous)g(if)h(the)75 674 y(\014le)e(is)g(p)q
(ositioned)h(at)d(its)i(start.)75 797 y Fm(MPI)p 160 797 V
16 w(GETPOS\(comm)n(,)c(p)q(os\))117 895 y Fk(IN)155 b Fm(comm)466
b Fk(comm)o(unicator)11 b(asso)q(ciated)k(with)f(\014le)f(\(handle\))117
1010 y(OUT)108 b Fm(p)q(os)523 b Fk(\014le)14 b(p)q(oin)o(ter)g(p)q(osition)
75 1154 y Fh(int)47 b(MPI)p 269 1154 15 2 v 17 w(Getpos\(MPI)p
526 1154 V 16 w(Comm)23 b(comm,)g(MPI)p 876 1154 V 17 w(Fint)g(*pos\))75
1261 y(MPI)p 150 1261 V 17 w(GETPOS\(COMM,)f(POS,)h(IERROR\))170
1317 y(INTEGER)g(COMM,)h(POS,)f(IERROR)166 1424 y Ft(Returns)16
b(in)g Fm(p)q(os)g Ft(the)f(curren)o(t)g(p)q(osition)h(of)f(the)g(\(priv)m
(ate)h(or)f(shared\))g(\014le)h(p)q(oin)o(ter.)166 1501 y(MPI-IO)g(do)q(es)g
(not)e(require)i Fm(MPI)p 758 1501 14 2 v 16 w(GETPOS)g Ft(to)f(b)q(e)h(supp)
q(orted)g(for)e(v)m(ariable)j(size)f(record)f(\014les.)75 1624
y Fm(MPI)p 160 1624 V 16 w(ENDFILE\(com)o(m)m(\))117 1722 y
Fk(IN)155 b Fm(comm)466 b Fk(comm)o(unicator)11 b(asso)q(ciated)k(with)f
(\014le)75 1866 y Fh(int)47 b(MPI)p 269 1866 15 2 v 17 w(Endfile\(MPI)p
550 1866 V 16 w(Comm)23 b(comm\))75 1973 y(MPI)p 150 1973 V
17 w(ENDFILE\(COMM,)f(IERROR\))170 2029 y(INTEGER)h(COMM,)h(IERROR)166
2136 y Ft(T)l(runcate)18 b(the)h(\014le)g(at)f(the)g(curren)o(t)g(p)q
(osition.)31 b(I.e.)e(if)19 b(the)f(curren)o(t)g(v)m(alue)i(of)e(the)g
(\014le)h(p)q(oin)o(ter)75 2192 y(is)g Fm(n)g Ft(then)g(the)f(\014le)h(is)g
(left)g(with)g Fm(n)g Ft(b)o(ytes)f(\(records\),)g(and)h(the)f(\014le)h(p)q
(oin)o(ter)g(p)q(osition)h(b)q(ecomes)f(the)75 2249 y(end-of-\014le.)75
2507 y Fu(1.6)59 b(Collective)20 b(accesses)75 2647 y Ft(The)11
b(functions)g(in)g(this)g(section)g(apply)h(to)e(\014les)h(op)q(ened)h(in)20
b Fj(COLLECTIVE)10 b Ft(mo)q(de.)18 b(These)11 b(are)f(collectiv)o(e)75
2704 y(calls)16 b(executed)g(b)o(y)g(all)g(pro)q(cesses)f(in)h(the)g(group.)
-32 46 y Fr(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 15
bop 75 -100 a Ft(14)1387 b Fp(CHAPTER)16 b(1.)34 b(IO)75 49
y Fo(1.6.1)49 b(Data)17 b(access)75 198 y Fm(MPI)p 160 198
14 2 v 16 w(READ)p 295 198 V 17 w(ALL\(bu\013er,)d(count,)i(t)o(yp)q(e,)g
(comm)m(,)c(status\))117 284 y Fk(OUT)124 b Fm(bu\013er)462
b Fk(initial)12 b(address)j(of)f(bu\013er)g(where)i(data)d(is)h(put)g(\(c)o
(hoice\))117 375 y(IN)171 b Fm(count)466 b Fk(n)o(um)o(b)q(er)13
b(of)h(elemen)o(ts)f(read)i(\(in)o(teger\))117 467 y(IN)171
b Fm(t)o(yp)q(e)491 b Fk(datat)o(yp)q(e)14 b(of)g(eac)o(h)g(elemen)o(t)f
(read)i(\(handle\))117 558 y(IN)171 b Fm(comm)450 b Fk(comm)o(unicator)11
b(asso)q(ciated)k(with)f(\014le)f(\(handle\))117 650 y(OUT)124
b Fm(status)460 b Fk(return)15 b(status)g(of)e(read)i(op)q(eration)e
(\(Status\))75 782 y Fh(int)47 b(MPI)p 269 782 15 2 v 17 w(Read)p
382 782 V 17 w(all\()23 b(void*)g(buffer,)g(int)h(count,)f(MPI)p
1187 782 V 16 w(Datatype)g(type,)393 839 y(MPI)p 468 839 V
17 w(Comm)g(comm,)g(MPI)p 819 839 V 17 w(Status)g(*status\))75
933 y(MPI)p 150 933 V 17 w(READ)p 263 933 V 16 w(ALL\()h(BUFFER,)f(COUNT,)g
(TYPE,)g(COMM,)g(STATUS,)g(IERROR\))170 990 y(<type>)g(BUFFER\(*\))170
1046 y(INTEGER)g(COUNT,)g(TYPE,)h(COMM,)f(STATUS\(MPI)p 1058
1046 V 16 w(STATUS)p 1218 1046 V 16 w(SIZE\),)g(IERROR)166
1141 y Ft(This)14 b(function)g(b)q(eha)o(v)o(es)f(lik)o(e)h
Fm(MPI)p 777 1141 14 2 v 16 w(READ)p Ft(,)g(except)f(that)g(the)g(data)f
(read)i(from)e(the)h(\014le)h(is)g(broad-)75 1197 y(cast)21
b(to)h(all)h(pro)q(cesses)f(in)h(the)f(group)f(of)h Fm(comm)m
Ft(;)g(eac)o(h)g(pro)q(cess)g(receiv)o(es)h(the)f(same)g(data)f(in)i(its)75
1254 y(comm)o(unication)17 b(bu\013er)g(that)f(is)h(sp)q(eci\014ed)i(b)o(y)e
(the)g Fm(bu\013er,)f(t)o(yp)q(e,)i(count)g Ft(argumen)o(ts.)24
b(All)18 b(pro)q(cesses)75 1310 y(supply)d(consisten)o(t)e(v)m(alues)h(for)f
Fm(t)o(yp)q(e,)h(count)h Ft(\(i.e.,)e(the)g(t)o(yp)q(e)h(signature)f(sp)q
(eci\014ed)j(b)o(y)d(these)g(t)o(w)o(o)f(argu-)75 1367 y(men)o(ts)k(should)g
(b)q(e)h(iden)o(tical)h(at)d(all)i(no)q(des\).)22 b(The)16
b Fm(status)i Ft(argumen)o(t)d(can)h(b)q(e)h(queried)g(after)e(the)h(call)75
1423 y(to)f(\014nd)g(out)g(the)h(n)o(um)o(b)q(er)f(of)g(elemen)o(ts)h
(actually)g(read.)75 1535 y Fm(MPI)p 160 1535 V 16 w(WRITE)p
319 1535 V 16 w(ALL\(bu\013er,)e(count,)i(t)o(yp)q(e,)g(comm)m(,)c(status\))
117 1620 y Fk(IN)171 b Fm(bu\013er)462 b Fk(initial)12 b(address)j(of)f
(bu\013er)g(where)i(data)d(is)h(tak)o(en)g(\(c)o(hoice\))117
1712 y(IN)171 b Fm(count)466 b Fk(n)o(um)o(b)q(er)13 b(of)h(elemen)o(ts)f
(written)i(\(in)o(teger\))117 1803 y(IN)171 b Fm(t)o(yp)q(e)491
b Fk(datat)o(yp)q(e)14 b(of)g(eac)o(h)g(elemen)o(t)f(written)i(\(handle\))117
1895 y(IN)171 b Fm(comm)450 b Fk(comm)o(unicator)11 b(asso)q(ciated)k(with)f
(\014le)f(\(handle\))117 1986 y(OUT)124 b Fm(status)460 b Fk(return)15
b(status)g(of)e(write)h(op)q(eration)g(\(Status\))75 2119 y
Fh(int)47 b(MPI)p 269 2119 15 2 v 17 w(Write)p 406 2119 V 17
w(all\()23 b(void*)g(buffer,)g(int)g(count,)g(MPI)p 1210 2119
V 17 w(Datatype)g(type,)393 2176 y(MPI)p 468 2176 V 17 w(Comm)g(comm,)g(MPI)p
819 2176 V 17 w(Status)g(*status\))75 2270 y(MPI)p 150 2270
V 17 w(WRITE)p 287 2270 V 16 w(ALL\()h(BUFFER,)e(COUNT,)i(TYPE,)f(COMM,)g
(STATUS,)g(IERROR\))170 2327 y(<type>)g(BUFFER\(*\))170 2383
y(INTEGER)g(COUNT,)g(TYPE,)h(COMM,)f(STATUS\(MPI)p 1058 2383
V 16 w(STATUS)p 1218 2383 V 16 w(SIZE\),)g(IERROR)166 2478
y Ft(This)18 b(function)g(b)q(eha)o(v)o(es)f(lik)o(e)h Fm(MPI)p
793 2478 14 2 v 16 w(WRITE)p Ft(,)f(except)g(that)g(it)g(is)h(executed)g(b)o
(y)f(all)h(pro)q(cesses)f(in)75 2534 y(the)f(group;)f(all)i(pro)q(cesses)f
(pro)o(vide)g(the)g(same)g(data.)21 b(The)16 b(pro)q(cesses)g(supply)h
(consisten)o(t)f(v)m(alues)h(for)75 2591 y Fm(t)o(yp)q(e,)j(count)g
Ft(\(i.e.,)e(the)h(t)o(yp)q(e)f(signature)h(sp)q(eci\014ed)i(b)o(y)d(these)h
(t)o(w)o(o)e(argumen)o(ts)g(should)j(b)q(e)f(iden)o(tical)75
2647 y(at)c(all)i(no)q(des\).)22 b(The)16 b Fm(status)h Ft(argumen)o(t)e(can)
h(b)q(e)h(queried)g(after)e(the)h(call)g(to)g(\014nd)g(out)f(the)h(n)o(um)o
(b)q(er)g(of)75 2704 y(elemen)o(ts)g(actually)g(written.)1967
46 y Fr(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 16
bop 75 -100 a Fp(1.6.)34 b(COLLECTIVE)16 b(A)o(CCESSES)1095
b Ft(15)75 49 y Fm(MPI)p 160 49 14 2 v 16 w(READ)p 295 49 V
17 w(SCA)l(TTER\()16 b(bu\013er,)f(count,)h(t)o(yp)q(e,)g(comm)m(,)c
(status\))117 126 y Fk(OUT)124 b Fm(bu\013er)462 b Fk(initial)12
b(address)j(of)f(bu\013er)g(where)i(data)d(is)h(put)g(\(c)o(hoice\))117
200 y(IN)171 b Fm(count)466 b Fk(n)o(um)o(b)q(er)13 b(of)h(elemen)o(ts)f
(read)i(\(in)o(teger\))117 274 y(IN)171 b Fm(t)o(yp)q(e)491
b Fk(datat)o(yp)q(e)14 b(of)g(eac)o(h)g(elemen)o(t)f(read)i(\(handle\))117
348 y(IN)171 b Fm(comm)450 b Fk(comm)o(unicator)11 b(asso)q(ciated)k(with)f
(\014le)f(\(handle\))117 421 y(OUT)124 b Fm(status)460 b Fk(return)15
b(status)g(of)e(read)i(op)q(eration)e(\(Status\))75 546 y Fh(int)47
b(MPI)p 269 546 15 2 v 17 w(read)p 382 546 V 17 w(scatter\()22
b(void*)i(buffer,)f(int)g(count,)g(MPI)p 1282 546 V 17 w(Datatype)g(type,)393
602 y(MPI)p 468 602 V 17 w(Comm)g(comm,)g(MPI)p 819 602 V 17
w(Status)g(*status\))75 689 y(MPI)p 150 689 V 17 w(READ)p 263
689 V 16 w(SCATTER\()g(BUFFER,)g(COUNT,)g(TYPE,)g(COMM,)g(STATUS,)g(IERROR\))
170 745 y(<type>)g(BUFFER\(*\))170 801 y(INTEGER)g(COUNT,)g(TYPE,)h(COMM,)f
(STATUS\(MPI)p 1058 801 V 16 w(STATUS)p 1218 801 V 16 w(SIZE\),)g(IERROR)166
888 y Ft(This)14 b(is)g(a)f(collectiv)o(e)j(read)d(function)h(that)f(is)h(in)
o(v)o(ok)o(ed)g(b)o(y)f(all)i(pro)q(cesses)f(in)g(the)g(group)f(of)g
Fm(comm)m Ft(.)75 944 y(Its)20 b(seman)o(tics)g(is)g(similar)h(to)e(the)h
(seman)o(tics)g(of)f(the)h(collectiv)o(e)i(comm)o(unication)e
Fm(MPI)p 1663 944 14 2 v 16 w(SCA)l(TTER)75 1001 y Ft(function:)28
b(a)18 b(blo)q(c)o(k)h(of)f(data)g(is)h(read)g(from)f(the)g(\014le)i(and)f
(scattered)f(among)g(the)h(group)f(pro)q(cesses;)75 1057 y(eac)o(h)h(pro)q
(cess)f(receiv)o(es)i(the)e(same)h(coun)o(t)f(of)g(data.)29
b(The)19 b(t)o(yp)q(e)g(signature)f(asso)q(ciated)h(with)g
Fm(count,)75 1114 y(t)o(yp)q(e)d Ft(should)g(b)q(e)g(iden)o(tical)h(at)e(all)
h(calling)h(no)q(des.)166 1170 y(Let)f Fm(n)g Ft(b)q(e)g(the)g(size)g(of)g
(the)f(comm)o(unication)i(group)e(and)h(let)g Fm(t)o(yp)q(e)p
1330 1170 V 17 w(size)g Ft(b)q(e)g(the)g(size)h(of)e(the)h(data)75
1227 y(describ)q(ed)f(b)o(y)f Fm(t)o(yp)q(e)p Ft(.)20 b(The)14
b(data)e(transfer)h(e\013ected)g(b)o(y)h(this)g(call)g(is)g(as)f(if)h
Fm(n)6 b Fg(\001)g Fm(count)16 b Ft(copies)e(of)f Fm(t)o(yp)q(e)h
Ft(w)o(ere)75 1283 y(read)g(from)f(the)h(\014le;)h(the)f(resulting)h(message)
e(w)o(as)g(split)i(in)o(to)f Fm(n)g Ft(equal)h(sized)g(segmen)o(ts;)e(and)h
(segmen)o(t)75 1340 y Fm(i)h Ft(w)o(as)f(sen)o(t)h(to)g(the)g
Fm(i)p Ft(-th)g(pro)q(cessor)g(in)h(the)f(comm)o(unication)h(group.)k(Eac)o
(h)15 b(pro)q(cess)g(stores)g(incoming)75 1396 y(data)g(in)h(the)f(receiv)o
(e)h(bu\013er)f(sp)q(eci\014ed)i(b)o(y)f Fm(bu\013er,)f(count,)h(t)o(yp)q(e)p
Ft(.)166 1452 y(On)c(a)g(stream)f(\014le,)i(the)f(\014le)h(p)q(oin)o(ter)g
(is)f(incremen)o(ted)h(b)o(y)f Fm(n)t Fg(\001)t Fm(count)t
Fg(\001)t Fm(t)o(yp)q(e)p 1409 1452 V 17 w(size)p Ft(;)h(on)e(a)h(record)g
(\014le)h(ac-)75 1509 y(cessed)f(with)g Fm(uni)g Ft(metho)q(d,)g
Fm(n)s Fg(\001)s Fm(count)s Fg(\001)s Fm(t)o(yp)q(e)p 801 1509
V 18 w(size)f Ft(b)o(ytes)h(are)f(accessed)h(from)f(the)g(curren)o(t)h
(record)f(and)h(the)75 1565 y(record)j(p)q(oin)o(ter)h(is)g(incremen)o(ted)h
(b)o(y)e(one;)g(on)g(a)g(record)h(\014le)g(accessed)g(with)g
Fm(multi)d Ft(metho)q(d)i Fm(t)o(yp)q(e)p 1792 1565 V 18 w(size)75
1622 y Ft(b)o(ytes)i(are)f(accessed)i(from)e Fm(n)c Fg(\001)f
Fm(count)18 b Ft(successiv)o(e)h(records)d(and)i(the)f(\014le)h(p)q(oin)o
(ter)f(is)h(incremen)o(ted)g(b)o(y)75 1678 y Fm(n)11 b Fg(\001)e
Fm(count)p Ft(.)166 1735 y(If)15 b(an)h(end-of-\014le)h(or)d(end-of-record)i
(exception)h(has)e(o)q(ccurred,)g(then)h(all)g(pro)q(cesses)g(will)h(return)
75 1791 y(the)e(corresp)q(onding)i(error)d(co)q(de.)21 b(Eac)o(h)15
b(pro)q(cess)h(is)g(returning)g(in)g Fm(status)h Ft(a)e(coun)o(t)g(of)g(the)h
(n)o(um)o(b)q(er)f(of)75 1848 y(items)g(and)g(basic)g(elemen)o(ts)h(it)e(had)
h(successfully)i(read)e(from)f(the)g(\014le.)21 b(The)15 b(coun)o(t)f(ma)o(y)
g(b)q(e)i(di\013eren)o(t)75 1904 y(at)h(di\013eren)o(t)h(pro)q(cesses)g(if)g
(an)f(end-of-record)h(or)f(end-of-\014le)j(error)c(o)q(ccurred.)28
b(The)18 b(standard)f(MPI)75 1961 y(error)d(handler)j(considers)f(these)f
(errors)g(to)f(b)q(e)i(non-fatal)f(and)h(tak)o(es)e(no)h(further)g(action.)75
2064 y Fm(MPI)p 160 2064 V 16 w(READ)p 295 2064 V 17 w(SCA)l(TTERV\()h
(bu\013er,)f(count,)h(t)o(yp)q(e,)g(comm)m(,)c(status\))117
2141 y Fk(OUT)124 b Fm(bu\013er)462 b Fk(initial)12 b(address)j(of)f
(bu\013er)g(where)i(data)d(is)h(put)g(\(c)o(hoice\))117 2215
y(IN)171 b Fm(count)466 b Fk(n)o(um)o(b)q(er)13 b(of)h(elemen)o(ts)f(read)i
(\(in)o(teger\))117 2289 y(IN)171 b Fm(t)o(yp)q(e)491 b Fk(datat)o(yp)q(e)14
b(of)g(eac)o(h)g(elemen)o(t)f(read)i(\(handle\))117 2363 y(IN)171
b Fm(comm)450 b Fk(comm)o(unicator)11 b(asso)q(ciated)k(with)f(\014le)f
(\(handle\))117 2436 y(OUT)124 b Fm(status)460 b Fk(return)15
b(status)g(of)e(read)i(op)q(eration)e(\(Status\))75 2561 y
Fh(int)47 b(MPI)p 269 2561 15 2 v 17 w(read)p 382 2561 V 17
w(scatterv\()22 b(void*)i(buffer,)e(int)i(count,)f(MPI)p 1306
2561 V 17 w(Datatype)f(type,)393 2617 y(MPI)p 468 2617 V 17
w(Comm)h(comm,)g(MPI)p 819 2617 V 17 w(Status)g(*status\))75
2704 y(MPI)p 150 2704 V 17 w(READ)p 263 2704 V 16 w(SCATTERV\()g(BUFFER,)g
(COUNT,)g(TYPE,)g(COMM,)g(STATUS,)g(IERROR\))-32 46 y Fr(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 17
bop 75 -100 a Ft(16)1387 b Fp(CHAPTER)16 b(1.)34 b(IO)170 49
y Fh(<type>)23 b(BUFFER\(*\))170 106 y(INTEGER)g(COUNT,)g(TYPE,)h(COMM,)f
(STATUS\(MPI)p 1058 106 15 2 v 16 w(STATUS)p 1218 106 V 16
w(SIZE\),)g(IERROR)166 197 y Ft(This)14 b(is)g(a)f(collectiv)o(e)j(read)d
(function)h(that)f(is)h(in)o(v)o(ok)o(ed)g(b)o(y)f(all)i(pro)q(cesses)f(in)g
(the)g(group)f(of)g Fm(comm)m Ft(.)75 253 y(Its)h(seman)o(tics)h(are)f
(similar)h(to)f(the)g(seman)o(tics)g(of)g(the)h(collectiv)o(e)h(comm)o
(unication)f Fm(MPI)p 1633 253 14 2 v 16 w(SCA)l(TTERV)75 310
y Ft(function)f(whic)o(h)g(allo)o(ws)g(di\013eren)o(t)f(coun)o(t)g(of)g(data)
g(to)f(b)q(e)i(sen)o(t)f(to)g(eac)o(h)g(pro)q(cess.)20 b(The)13
b(t)o(yp)q(e)h(signature)75 366 y(asso)q(ciated)g(with)g Fm(t)o(yp)q(e)h
Ft(should)g(b)q(e)f(iden)o(tical)i(at)d(all)i(calling)g(no)q(des;)f(pro)q
(cesses)h(ma)o(y)e(sp)q(ecify)i(di\013eren)o(t)75 423 y(\(nonnegativ)o(e\))g
(v)m(alues)h(for)f Fm(count)p Ft(.)166 484 y(Let)20 b Fm(n)h
Ft(b)q(e)g(the)g(size)g(of)f(the)g(comm)o(unication)h(group,)g(let)g
Fm(t)o(yp)q(e)p 1302 484 V 17 w(size)g Ft(b)q(e)g(the)f(size)h(of)f(the)h
(data)75 540 y(describ)q(ed)c(b)o(y)e Fm(t)o(yp)q(e)p Ft(,)h(and)f(let)h
Fm(count)707 547 y Ff(i)733 540 y Ft(b)q(e)g(the)f(v)m(alue)i(of)d(the)i
Fm(count)g Ft(argumen)o(t)f(at)f(pro)q(cess)i Fm(i)p Ft(.)166
602 y(The)h(data)g(transfer)f(e\013ected)h(b)o(y)h(this)f(call)h(is)g(as)f
(if)1094 570 y Fe(P)1146 602 y Fm(count)1251 609 y Ff(i)1279
602 y Ft(en)o(tries)g(of)g(t)o(yp)q(e)g Fm(t)o(yp)q(e)h Ft(w)o(ere)f(read)75
658 y(from)e(the)g(\014le)i(and)f(concatenated;)f(the)h(resulting)h(list)f(w)
o(as)f(split)h(in)o(to)g Fm(n)g Ft(segmen)o(ts,)f(where)g(segmen)o(t)75
715 y Fm(i)g Ft(con)o(tains)g Fm(count)384 722 y Ff(i)410 715
y Ft(en)o(tries;)g(and)h(the)f Fm(i)p Ft(-th)g(segmen)o(t)g(w)o(as)f(sen)o(t)
h(to)g Fm(i)p Ft(-th)g(pro)q(cess)g(in)h(the)g(group.)166 776
y(Eac)o(h)i(pro)q(cess)h(returns)f(in)i Fm(status)g Ft(a)e(coun)o(t)g(of)h
(the)f(n)o(um)o(b)q(er)h(of)f(items)h(and)f(basic)i(elemen)o(ts)f(it)75
832 y(had)c(read)h(from)e(the)h(\014le;)h(truncation)f(errors)g(are)g
(handled)h(as)f(for)g Fm(MPI)p 1346 832 V 16 w(GA)l(THER)p
Ft(.)75 941 y Fm(MPI)p 160 941 V 16 w(WRITE)p 319 941 V 16
w(GA)l(THER\()h(bu\013er,)f(count,)i(t)o(yp)q(e,)e(comm)n(,)c(status\))117
1023 y Fk(OUT)124 b Fm(bu\013er)462 b Fk(initial)12 b(address)j(of)f
(bu\013er)g(where)i(data)d(is)h(tak)o(en)g(\(c)o(hoice\))117
1107 y(IN)171 b Fm(count)466 b Fk(n)o(um)o(b)q(er)13 b(of)h(elemen)o(ts)f
(tak)o(en)h(\(in)o(teger\))117 1192 y(IN)171 b Fm(t)o(yp)q(e)491
b Fk(datat)o(yp)q(e)14 b(of)g(eac)o(h)g(elemen)o(t)f(\(handle\))117
1277 y(IN)171 b Fm(comm)450 b Fk(comm)o(unicator)11 b(asso)q(ciated)k(with)f
(\014le)f(\(handle\))117 1361 y(OUT)124 b Fm(status)460 b Fk(return)15
b(status)g(of)e(write)h(op)q(eration)g(\(Status\))75 1491 y
Fh(int)47 b(MPI)p 269 1491 15 2 v 17 w(write)p 406 1491 V 17
w(gather\()22 b(void*)i(buffer,)f(int)g(count,)g(MPI)p 1282
1491 V 17 w(Datatype)g(type,)393 1547 y(MPI)p 468 1547 V 17
w(Comm)g(comm,)g(MPI)p 819 1547 V 17 w(Status)g(*status\))75
1638 y(MPI)p 150 1638 V 17 w(WRITE)p 287 1638 V 16 w(GATHER\()g(BUFFER,)g
(COUNT,)g(TYPE,)g(COMM,)g(STATUS,)g(IERROR\))170 1695 y(<type>)g(BUFFER\(*\))
170 1751 y(INTEGER)g(COUNT,)g(TYPE,)h(COMM,)f(STATUS\(MPI)p
1058 1751 V 16 w(STATUS)p 1218 1751 V 16 w(SIZE\),)g(IERROR)166
1842 y Ft(This)13 b(is)g(a)f(collectiv)o(e)j(write)d(function)i(that)e(is)h
(in)o(v)o(ok)o(ed)g(b)o(y)f(all)i(pro)q(cesses)f(in)g(the)g(group)f(of)g
Fm(comm)m Ft(.)75 1899 y(Its)19 b(seman)o(tics)g(are)g(similar)h(to)f(the)g
(seman)o(tics)g(of)g(the)g(collectiv)o(e)i(comm)o(unication)f
Fm(MPI)p 1686 1899 14 2 v 16 w(GA)l(THER)75 1955 y Ft(function:)33
b(Eac)o(h)22 b(pro)q(cess)g(sends)g(the)f(same)g(coun)o(t)h(of)f(data.)38
b(The)22 b(messages)f(generated)g(b)o(y)h(the)75 2012 y(pro)q(cesses)15
b(are)f(concatenated)g(and)h(the)g(resulting)g(blo)q(c)o(k)g(is)g(written)g
(on)o(to)e(the)i(\014le.)20 b(The)15 b(t)o(yp)q(e)g(signa-)75
2068 y(ture)g(asso)q(ciated)h(with)f Fm(count,)h(t)o(yp)q(e)g
Ft(should)h(b)q(e)e(iden)o(tical)i(at)e(all)h(calling)h(no)q(des.)166
2129 y(Let)i Fm(n)g Ft(b)q(e)h(the)f(size)h(of)e(the)h(comm)o(unication)h
(group,)f(and)g Fm(t)o(yp)q(e)p 1310 2129 V 18 w(size)g Ft(b)q(e)g(the)g
(size)h(of)f(the)g(data)75 2186 y(describ)q(ed)e(b)o(y)e Fm(t)o(yp)q(e)p
Ft(.)21 b(The)15 b(outcome)f(is)i(as)e(if)i(eac)o(h)f(pro)q(cess)g(assem)o
(bles)g(a)g(message)g(from)f(the)h(data)f(in)75 2242 y(the)g(send)h(bu\013er)
f(sp)q(eci\014ed)j(b)o(y)d Fm(bu\013er,)g(count,)i(t)o(yp)q(e)p
Ft(.)k(The)15 b(blo)q(c)o(ks)g(are)f(concatenated)g(in)h(the)f(order)g(of)75
2299 y(pro)q(cess)h(ranks,)f(and)i(the)f(resulting)h(list)f(of)g
Fm(n)10 b Fg(\001)f Fm(count)16 b Ft(en)o(tries)f(of)g(t)o(yp)q(e)g
Fm(t)o(yp)q(e)h Ft(is)f(written)g(on)o(to)f(the)h(\014le.)166
2360 y(On)e(a)f(stream)g(\014le,)i Fm(n)5 b Fg(\001)g Fm(count)g
Fg(\001)g Fm(t)o(yp)q(e)p 762 2360 V 18 w(size)13 b Ft(b)o(ytes)f(are)h
(written)f(and)h(the)g(\014le)g(p)q(oin)o(ter)h(is)f(incremen)o(ted)75
2417 y(b)o(y)19 b(that)f(n)o(um)o(b)q(er;)i(on)e(a)h(record)f(\014le)i
(accessed)f(with)g Fm(uni)h Ft(metho)q(d,)f Fm(n)13 b Fg(\001)f
Fm(count)i Fg(\001)e Fm(t)o(yp)q(e)p 1591 2417 V 17 w(size)19
b Ft(b)o(ytes)f(are)75 2473 y(written)g(on)g(the)g(curren)o(t)g(record)g(and)
g(the)g(\014le)h(p)q(oin)o(ter)g(is)f(incremen)o(ted)h(b)o(y)f(one;)h(on)f(a)
g(record)g(\014le)75 2529 y(accessed)12 b(with)f Fm(multi)e
Ft(metho)q(d,)j Fm(t)o(yp)q(e)p 717 2529 V 17 w(size)f Ft(b)o(ytes)g(are)g
(written)g(on)g(eac)o(h)g(of)g Fm(n)r Fg(\001)r Fm(count)h
Ft(successiv)o(e)g(records,)75 2586 y(and)j(the)h(\014le)g(p)q(oin)o(ter)g
(is)f(incremen)o(ted)i(b)o(y)e Fm(n)10 b Fg(\001)g Fm(count)p
Ft(.)166 2647 y(Eac)o(h)15 b(pro)q(cess)h(is)g(returning)h(in)f
Fm(status)i Ft(a)d(coun)o(t)g(of)g(the)h(n)o(um)o(b)q(er)g(of)f(items)h(and)g
(basic)g(elemen)o(ts)75 2704 y(it)j(has)g(written)f(on)h(the)g(\014le.)32
b(Di\013eren)o(t)18 b(pro)q(cesses)h(ma)o(y)f(return)h(di\013eren)o(t)g(v)m
(alues)h(if)f(a)g(truncation)1967 46 y Fr(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 18
bop 75 -100 a Fp(1.6.)34 b(COLLECTIVE)16 b(A)o(CCESSES)1095
b Ft(17)75 49 y(o)q(ccurred.)27 b(In)18 b(suc)o(h)g(situation,)g(eac)o(h)g
(pro)q(cess)g(is)g(returned)g(an)f(error)g(co)q(de)h(and)g(the)f(error)g
(handler)75 106 y(attac)o(hed)e(to)f(the)h(comm)o(unicator)g(is)h(in)o(v)o
(ok)o(ed)f(at)g(eac)o(h)g(pro)q(cess.)75 213 y Fm(MPI)p 160
213 14 2 v 16 w(WRITE)p 319 213 V 16 w(GA)l(THERV\()i(bu\013er,)e(count,)h(t)
o(yp)q(e,)g(comm)m(,)c(status\))117 294 y Fk(OUT)124 b Fm(bu\013er)462
b Fk(initial)12 b(address)j(of)f(bu\013er)g(where)i(data)d(is)h(gotten)g(\(c)
o(hoice\))117 377 y(IN)171 b Fm(count)466 b Fk(n)o(um)o(b)q(er)13
b(of)h(elemen)o(ts)f(read)i(\(in)o(teger\))117 460 y(IN)171
b Fm(t)o(yp)q(e)491 b Fk(datat)o(yp)q(e)14 b(of)g(eac)o(h)g(elemen)o(t)f
(\(handle\))117 543 y(IN)171 b Fm(comm)450 b Fk(comm)o(unicator)11
b(asso)q(ciated)k(with)f(\014le)f(\(handle\))117 625 y(OUT)124
b Fm(status)460 b Fk(return)15 b(status)g(of)e(write)h(op)q(eration)g
(\(Status\))75 754 y Fh(int)47 b(MPI)p 269 754 15 2 v 17 w(write)p
406 754 V 17 w(gatherv\(*file)22 b(f,)h(void*)g(buffer,)g(int)h(count,)f(MPI)
p 1497 754 V 17 w(Datatype)f(type,)393 810 y(MPI)p 468 810
V 17 w(Comm)h(comm,)g(MPI)p 819 810 V 17 w(Status)g(*status\))75
900 y(MPI)p 150 900 V 17 w(WRITE)p 287 900 V 16 w(GATHERV\()g(BUFFER,)g
(COUNT,)g(TYPE,)g(COMM,)g(STATUS,)g(IERROR\))170 957 y(<type>)g(BUFFER\(*\))
170 1013 y(INTEGER)g(COUNT,)g(TYPE,)h(COMM,)f(STATUS\(MPI)p
1058 1013 V 16 w(STATUS)p 1218 1013 V 16 w(SIZE\),)g(IERROR)166
1104 y Ft(This)13 b(is)g(a)f(collectiv)o(e)j(write)d(function)i(that)e(is)h
(in)o(v)o(ok)o(ed)g(b)o(y)f(all)i(pro)q(cesses)f(in)g(the)g(group)f(of)g
Fm(comm)m Ft(.)75 1160 y(Its)k(seman)o(tics)h(are)f(similar)h(to)f(the)g
(seman)o(tics)h(of)f(the)g(collectiv)o(e)i(comm)o(unication)f
Fm(MPI)p 1655 1160 14 2 v 16 w(GA)l(THERV)75 1217 y Ft(function)d(whic)o(h)f
(allo)o(ws)g(di\013eren)o(t)g(coun)o(t)g(of)f(data)g(to)g(b)q(e)i(sen)o(t)e
(b)o(y)h(eac)o(h)g(pro)q(cess.)19 b(The)13 b(t)o(yp)q(e)g(signature)75
1273 y(asso)q(ciated)h(with)g Fm(t)o(yp)q(e)h Ft(should)g(b)q(e)f(iden)o
(tical)i(at)d(all)i(calling)g(no)q(des;)f(pro)q(cesses)h(ma)o(y)e(sp)q(ecify)
i(di\013eren)o(t)75 1329 y(\(nonnegativ)o(e\))g(v)m(alues)h(for)f
Fm(count)p Ft(.)166 1390 y(Let)20 b Fm(n)h Ft(b)q(e)g(the)g(size)g(of)f(the)g
(comm)o(unication)h(group,)g(let)g Fm(t)o(yp)q(e)p 1302 1390
V 17 w(size)g Ft(b)q(e)g(the)f(size)h(of)f(the)h(data)75 1446
y(describ)q(ed)i(b)o(y)e Fm(t)o(yp)q(e)h Ft(and)f(let)h Fm(count)724
1453 y Ff(i)756 1446 y Ft(b)q(e)g(the)f(v)m(alue)h(of)f(the)g
Fm(count)h Ft(argumen)o(t)f(at)f(pro)q(cess)h Fm(i)p Ft(.)38
b(The)75 1503 y(outcome)14 b(is)i(as)e(if)h(a)f(message)h(is)g(generated)g(b)
o(y)f(eac)o(h)h(pro)q(cess)g(b)o(y)g(assem)o(bling)g(the)g(data)f(in)i(the)e
(send)75 1559 y(bu\013er)g(sp)q(eci\014ed)j(b)o(y)d Fm(bu\013er,)g(count,)h
(t)o(yp)q(e)p Ft(;)h(the)e(messages)g(are)g(concatenated)g(in)h(pro)q(cess)g
(rank)f(order;)75 1616 y(and)i(the)f(resulting)i(list)f(of)558
1583 y Fe(P)610 1616 y Fm(count)715 1623 y Ff(i)741 1616 y
Ft(elemen)o(ts)g(of)f(t)o(yp)q(e)h Fm(t)o(yp)q(e)h Ft(is)f(written)f(on)h
(the)f(\014le.)22 b(Eac)o(h)16 b(pro)q(cess)75 1672 y(is)f(returning)f(in)h
Fm(status)h Ft(a)e(coun)o(t)g(of)f(the)h(n)o(um)o(b)q(er)h(of)f(items)g(and)g
(basic)h(elemen)o(ts)g(it)f(has)g(written)g(on)o(to)75 1728
y(the)i(\014le.)24 b(An)16 b(end-of-\014le)i(or)e(end-of-record)g(error)g
(indication)i(is)f(returned)f(to)g(eac)o(h)g(calling)i(pro)q(cess)75
1785 y(is)e(suc)o(h)f(error)g(o)q(ccurred)h(during)g(the)f(\014le)h(access.)
75 1929 y Fo(1.6.2)49 b(File)17 b(p)q(ositioning)75 2069 y
Fm(MPI)p 160 2069 V 16 w(SEEK)p 287 2069 V 16 w(ALL\(comm)m(,)11
b(o\013set,)k(whence\))117 2150 y Fk(IN)155 b Fm(comm)466 b
Fk(comm)o(unicator)11 b(asso)q(ciated)k(with)f(\014le)f(\(handle\))117
2233 y(IN)155 b Fm(o\013set)484 b Fk(o\013set)15 b(in)o(to)e(\014le)h(\(in)o
(teger\))117 2316 y(IN)155 b Fm(whence)450 b Fk(one)20 b(of)f
Fj(MPI)p 1117 2316 13 2 v 15 w(SET)g Fk(\(indicating)g(start)i(of)e
(\014le\),)i Fj(MPI)p 1779 2316 V 14 w(END)905 2372 y Fk(\(indicating)16
b(end)i(of)e(\014le\),)h(or)g Fj(MPI)p 1479 2372 V 15 w(CUR)e
Fk(\(indicating)h(cur-)905 2429 y(ren)o(t)f(p)q(osition\))e(\(state\))p
Ft(.)75 2557 y Fh(int)47 b(MPI)p 269 2557 15 2 v 17 w(Seek)p
382 2557 V 17 w(all\(MPI)p 567 2557 V 16 w(Comm)23 b(comm,)g(MPI)p
917 2557 V 17 w(Fint)h(offset,)e(MPI)p 1316 2557 V 17 w(IO)i(whence\))75
2647 y(MPI)p 150 2647 V 17 w(SEEK)p 263 2647 V 16 w(ALL\(COMM,)f(OFFSET,)g
(WHENCE,)g(IERROR\))170 2704 y(INTEGER)g(COMM,)h(OFFSET,)e(WHENCE,)h(IERROR)
-32 46 y Fr(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 19
bop 75 -100 a Ft(18)1387 b Fp(CHAPTER)16 b(1.)34 b(IO)75 49
y Fm(MPI)p 160 49 14 2 v 16 w(REWIND)p 353 49 V 16 w(ALL\(comm)m(\))117
127 y Fk(IN)155 b Fm(comm)466 b Fk(comm)o(unicator)11 b(asso)q(ciated)k(with)
f(\014le)75 252 y Fh(int)47 b(MPI)p 269 252 15 2 v 17 w(Rewind)p
430 252 V 16 w(all\(MPI)p 614 252 V 17 w(Comm)23 b(comm\))75
339 y(MPI)p 150 339 V 17 w(REWIND)p 311 339 V 16 w(ALL\(COMM,)g(IERROR\))170
395 y(INTEGER)g(COMM,)h(IERROR)75 529 y Fm(MPI)p 160 529 14
2 v 16 w(BA)o(CKSP)l(A)o(CE)p 431 529 V 17 w(ALL\(com)o(m)m(\))117
607 y Fk(IN)155 b Fm(comm)466 b Fk(comm)o(unicator)11 b(asso)q(ciated)k(with)
f(\014le)75 732 y Fh(int)47 b(MPI)p 269 732 15 2 v 17 w(Backspace)p
502 732 V 16 w(all\(MPI)p 686 732 V 16 w(Comm)24 b(comm\))75
819 y(MPI)p 150 819 V 17 w(BACKSPACE)p 383 819 V 16 w(ALL\(COMM,)e(IERROR\))
170 875 y(INTEGER)h(COMM,)h(IERROR)75 1009 y Fm(MPI)p 160 1009
14 2 v 16 w(ENDFILE)p 359 1009 V 16 w(ALL\(com)o(m)m(\))117
1087 y Fk(IN)155 b Fm(comm)466 b Fk(comm)o(unicator)11 b(asso)q(ciated)k
(with)f(\014le)75 1212 y Fh(int)47 b(MPI)p 269 1212 15 2 v
17 w(Endfile)p 454 1212 V 16 w(all\(MPI)p 638 1212 V 17 w(Comm)23
b(comm\))75 1299 y(MPI)p 150 1299 V 17 w(ENDFILE\(COMM,)f(IERROR\))170
1355 y(INTEGER)h(COMM,)h(IERROR)166 1442 y Ft(These)11 b(functions)h(ha)o(v)o
(e)f(the)g(same)g(meaning)g(as)g(the)g(corresp)q(onding)h(functions)g
(without)f(the)21 b Fj(ALL)75 1499 y Ft(su\016x,)e(except)f(that)g(they)g
(are)g(called)i(collectiv)o(ely)h(b)o(y)d(all)h(pro)q(cesses)g(in)g(the)f
(group;)h(all)h(pro)q(cesses)75 1555 y(pro)o(vide)c(the)f(same)g(argumen)o(t)
f(v)m(alues.)166 1612 y(The)d(function)i Fm(MPI)p 515 1612
14 2 v 15 w(GETPOS)g Ft(can)e(b)q(e)h(applied)h(to)e(a)g(\014le)h(op)q(ened)h
(with)f(the)21 b Fj(COLLECTIVE)10 b Ft(mo)q(de.)75 1669 y(It)15
b(can)h(b)q(e)f(called)i(lo)q(cally)g(b)o(y)e(eac)o(h)h(pro)q(cess)f(in)h
(the)f(group.)166 1808 y Fl(Implemen)o(tati)o(on)c(note:)35
b Fk(All)11 b(the)j(functions)e(ma)o(y)f(b)q(e)i(implemen)o(ted)e(lo)q(cally)
m(,)f(if)i(the)i(v)n(alue)e(of)g(the)h(\014le)75 1865 y(p)q(oin)o(ter)h(is)g
(stored)h(at)e(eac)o(h)i(no)q(de.)75 2093 y Fu(1.7)59 b(Erro)n(r)20
b(handling)75 2195 y Ft(MPI-IO)14 b(uses)g(the)g(general)g(error)f(handling)i
(facilities)g(of)f(MPI.)f(MPI-IO)h(calls)h(return)e(an)h(error)e(co)q(de)75
2252 y(that)e(indicate)i(the)f(nature)g(of)f(the)h(error,)g(if)g(one)g(o)q
(ccurred.)19 b(The)11 b(function)h Fm(MPI)p 1458 2252 V 15
w(ERROR)p 1620 2252 V 18 w(STRING)g Ft(can)75 2308 y(b)q(e)h(used)g(to)f
(prin)o(t)g(the)h(error)e(message)h(asso)q(ciated)h(with)f(an)g(error)g(co)q
(de.)20 b(Whenev)o(er)12 b(an)g(error)g(o)q(ccurs,)75 2365
y(the)k(error)g(handler)h(attac)o(hed)e(to)h(the)g(comm)o(unicator)g(used)g
(in)h(the)f(call)i(is)e(in)o(v)o(ok)o(ed.)23 b(The)16 b(standard)75
2421 y(error)h(handler)i(considers)f(truncation)g(errors)f(on)h(read)f(to)g
(b)q(e)i(non-fatal)e(and)h(truncation)g(error)f(on)75 2478
y(writes)e(to)e(b)q(e)j(fatal.)j(This)c(b)q(eha)o(vior)g(can)g(b)q(e)g(c)o
(hanged)g(b)o(y)f(attac)o(hing)g(another)h(error)e(handler)j(to)e(the)75
2534 y(comm)o(unicator)g(used:)20 b(The)15 b(use)g(of)f(the)g(error)g
(handler)h Fj(MPI)p 1142 2534 13 2 v 15 w(ERRORSRETURN)e Ft(will)j(cause)e
(all)i(errors)75 2591 y(to)e(b)q(e)i(non-fatal:)k(it)15 b(is)g(the)g(user)g
(resp)q(onsibilit)o(y)l(,)j(in)d(this)h(case,)e(to)h(test)f(the)h(error)f(co)
q(de)i(returned)f(b)o(y)75 2647 y(eac)o(h)i(co)q(de.)24 b(The)17
b(use)g(of)f(the)h(error)e(handler)j Fj(MPI)p 968 2647 V 14
w(ERRORSF)m(A)m(T)m(AL)c Ft(will)k(cause)f(all)h(I/O)f(errors)e(to)h(b)q(e)75
2704 y(treated)f(as)g(fatal)f(and)i(ab)q(ort)e(the)i(computation.)1967
46 y Fr(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 20
bop 75 -100 a Fp(1.8.)34 b(VEST)l(A)16 b(FUNCTIONS)1206 b Ft(19)75
49 y Fu(1.8)59 b(V)n(esta)20 b(functions)75 154 y Fo(1.8.1)49
b(File)17 b(Distribution)75 242 y Ft(A)h(V)l(esta)g(\014le)h(consists)f(of)f
(a)h(t)o(w)o(o-dimensional)h(arra)o(y)d(of)i(records,)g(un)o(b)q(ounded)i(in)
e(the)g(v)o(ertical)h(di-)75 298 y(mension.)h(A)14 b(V)l(esta)g(\014le)g(ma)o
(y)f(b)q(e)i(partitioned)f(in)o(to)g Fn(sub\014les)p Ft(,)g(whic)o(h)g(are)g
(submatrices)g(of)f(the)h(V)l(esta)75 354 y(\014le)i(matrix.)j(The)d(mec)o
(hanism)f(for)f(sp)q(ecifying)j(a)e Fn(partitioning)k(sc)o(heme)14
b Ft(that)g(partitions)i(a)e(V)l(esta)75 411 y(\014le)k(in)o(to)f(sub\014les)
h(is)g(similar)g(to)e(that)h(used)g(for)g(mapping)g(a)g(t)o(w)o
(o-dimensional)h(arra)o(y)e(in)i(High)f(P)o(er-)75 467 y(formance)e(F)l
(ortran)f(\(HPF)g([5)o(]\):)19 b(A)d(sub\014le)g(is)g(a)e(subset)i(of)e(the)h
(t)o(w)o(o-dimensional)h(arra)o(y)e(that)h(w)o(ould)75 524
y(b)q(e)h(mapp)q(ed)g(to)e(one)i(\(virtual\))f(no)q(de)h(b)o(y)f(an)g(HPF)g
(distribution.)166 581 y(The)j(same)g(\014le)h(ma)o(y)e(b)q(e)i(op)q(ened)g
(with)g(di\013eren)o(t)f(partitioning)h(sc)o(hemes.)29 b(Th)o(us,)18
b(the)g(records)75 638 y(in)h(the)g(\014le)g(ma)o(y)e(b)q(e)i(group)q(ed)g
(and)g(ordered)f(di\013eren)o(tly)l(,)i(according)f(to)e(the)i(access)f
(pattern)g(of)g(an)75 694 y(application,)e(without)g(actually)g(mo)o(ving)f
(the)g(data.)166 751 y(When)20 b(a)g(V)l(esta)g(\014le)h(is)f(accessed)h(b)o
(y)e(MPI-IO)i(in)g Fm(p)o(rivate)f Ft(mo)q(de,)h(then)f(a)g(distinct)h
(sub\014le)g(is)75 808 y(allo)q(cated)14 b(to)f(eac)o(h)g(pro)q(cess)g(in)h
(the)f(accessing)h(group.)19 b(When)14 b(a)f(V)l(esta)g(\014le)h(is)f(allo)q
(cated)i(in)f(an)o(y)e(other)75 864 y(mo)q(de,)18 b(then)g(the)g(same)f
(sub\014le)i(is)f(accessed)g(b)o(y)g(all)g(pro)q(cesses)g(in)g(the)g(group.)
27 b(In)18 b(either)g(case,)g(the)75 921 y(sub\014le)g(is)g(considered)g(to)e
(consist)h(of)g(a)f(sequence)i(of)e(records,)h(with)g(records)g(ordered)g(in)
h(canonical)75 977 y(order)c(within)h(the)f(sub\014le.)21 b(Suc)o(h)15
b(a)e(sub\014le)j(corresp)q(onds)e(to)g(a)f(\014xed)i(record)f(size)h(MPI-IO)
g(\014le.)20 b(This)75 1034 y(\014le)d(can)f(also)f(b)q(e)h(accessed)h(as)e
(a)g(stream)g(\014le,)i(b)o(y)e(ignoring)i(the)e(record)h(structure.)21
b(V)l(ariable)c(record)75 1090 y(size)f(\014les)g(are)f(curren)o(tly)h(not)f
(supp)q(orted)g(b)o(y)h(V)l(esta.)166 1147 y(W)l(e)f(describ)q(e)i(no)o(w)e
(in)h(more)f(detail)h(the)f(structure)g(of)g(V)l(esta)g(\014les)h(and)f(of)g
(sub\014les.)166 1205 y(A)i(V)l(esta)g(\014le)h(is)f(stored)f(across)h(a)f(n)
o(um)o(b)q(er)i(of)e Fn(storage)k(no)q(des)p Ft(.)25 b(The)17
b(V)l(esta)g(\014le)h(structure)e(is)75 1261 y(de\014ned)e(b)o(y)f(t)o(w)o(o)
f(parameters:)18 b(The)13 b(n)o(um)o(b)q(er)g Fd(ncel)q(l)q(s)f
Ft(of)h(V)l(esta)f(\014le)i(columns)g(\(also)f(called)h Fn(cells)p
Ft(\),)g(and)75 1318 y(the)j(record)h(size)g Fd(r)q(ec)p 451
1318 14 2 v 16 w(siz)r(e)p Ft(.)26 b(W)l(e)17 b(denote)h(b)o(y)f
Fd(r)q(ec)941 1325 y Fc(i;j)997 1318 y Ft(record)g Fd(i)g Ft(of)g(cell)i
Fd(j)s Ft(.)25 b(Note)17 b(that)g(all)h(n)o(um)o(b)q(erings)75
1374 y(are)d(zero)g(based.)166 1431 y(The)i(default)h(n)o(um)o(b)q(er)g(of)f
(cells)h(is)g(one)g(p)q(er)f(storage)f(no)q(de,)i(in)g(whic)o(h)g(case)g(one)
f(\014le)h(column)g(is)75 1488 y(stored)c(on)h(eac)o(h)g(storage)e(no)q(de.)
20 b(When)15 b(these)g(n)o(um)o(b)q(ers)g(are)g(not)f(equal,)h(the)g(system)f
(allo)q(cates)h(cells)75 1544 y(to)g(storage)f(no)q(des)h(in)h(a)f
(round-robin)h(fashion;)g(a)f(cell)h(is)g(alw)o(a)o(ys)e(con)o(tained)i(b)o
(y)f(one)h(storage)e(no)q(de.)166 1602 y(A)h(partitioning)h(sc)o(heme)g(is)g
(sp)q(eci\014ed)h(b)o(y)e(four)g(parameters:)75 1699 y Fn(Hn:)22
b Ft(n)o(um)o(b)q(er)16 b(of)e(horizon)o(tal)i(partitions.)75
1796 y Fn(Vn:)22 b Ft(n)o(um)o(b)q(er)15 b(of)g(v)o(ertical)h(partitions.)75
1894 y Fn(Hbs:)22 b Ft(horizon)o(tal)15 b(size)h(of)f(blo)q(c)o(k.)75
1991 y Fn(Vbs:)21 b Ft(v)o(ertical)16 b(size)g(of)f(blo)q(c)o(k.)166
2088 y(The)g(inequalit)o(y)i(\()p Fd(H)t(n)10 b Fg(\000)g Ft(1\))g
Fg(\001)f Fd(H)t(bs)j(<)h(ncel)q(l)q(s)i Ft(should)h(hold.)166
2145 y(The)g(n)o(um)o(b)q(er)h(of)f(horizon)o(tal)h(or)e(v)o(ertical)i
(partitions)g(is)g(equiv)m(alen)o(t)h(to)d(the)i(n)o(um)o(b)q(er)f(of)g
(virtual)75 2202 y(pro)q(cessors)i(in)h(a)f(pro)q(cessor)g(grid)h(used)f(as)g
(the)h(target)e(of)g(an)h(HPF)35 b Fj(DISTRIBUTE)17 b Ft(statemen)o(t;)h(the)
75 2258 y(horizon)o(tal)d(or)g(v)o(ertical)g(blo)q(c)o(k)h(size)f(is)h(equiv)
m(alen)o(t)g(to)f(the)g(parameter)f(that)g(de\014nes)i(blo)q(c)o(k)g(size)f
(in)h(an)75 2315 y(HPF)f(blo)q(c)o(k-cyclic)j(distribution.)166
2372 y(The)j(four)f(parameters)g(de\014ne)i(a)e(partitioning)i(sc)o(heme)f
(with)g(a)f Fd(H)t(n)14 b Fg(\001)f Fd(V)d(n)21 b Ft(arra)o(y)e(of)i
(sub\014les)75 2429 y Fd(par)q(t)160 2436 y Fc(r)o(;s)202 2429
y Ft(.)h(W)l(e)16 b(n)o(um)o(b)q(er)g(these)g(sub\014les)h(in)g(ro)o(w)e(ma)s
(jor)f(order.)21 b(In)c(eac)o(h)f(dimension,)h(the)f(partitioning)75
2485 y(sc)o(heme)k(consists)g(of)g(a)f(recurring)i(pattern)e(of)h
Fd(H)t(n)f Ft(\()p Fd(V)9 b(n)p Ft(\))20 b(in)o(terlea)o(v)o(ed)h(blo)q(c)o
(ks,)g(where)f(eac)o(h)g(blo)q(c)o(k)75 2542 y(con)o(tains)15
b Fd(H)t(bs)g Ft(\()p Fd(V)9 b(bs)p Ft(\))15 b(consecutiv)o(e)h(records.)k
(This)15 b(is)h(illustrated)h(in)f(Figure)f(1.1.)166 2599 y(More)f(precisely)
l(,)j(assume)e(that)607 2704 y Fd(ncel)q(l)q(s)d Ft(=)h Fd(B)g
Fg(\001)c Fd(H)t(n)h Fg(\001)g Fd(H)t(bs)f Ft(+)i Fd(H)i Fg(\001)d
Fd(H)t(bs)g Ft(+)g Fd(I)t(;)-32 46 y Fr(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 21
bop 75 -100 a Ft(20)1387 b Fp(CHAPTER)16 b(1.)34 b(IO)75 4
y
 19608222 14208860 0 0 42626580 30785863 startTexFig
75 4 a
%%BeginDocument: vst-part.eps

/Freelance_Plus dup 100 dict def load begin
[ ] {bind} stopped { (patching the bind operator...) = flush
/*bind /bind load def /bind { dup xcheck { *bind } if } *bind def } if pop
/bdf {bind def} bind def /ldf {load def} bdf
/mt /moveto ldf /rt /rmoveto ldf /l2 /lineto ldf /c2 /curveto ldf
/sg /setgray ldf /gs /gsave ldf /ef /eofill ldf /rl2 /rlineto ldf
/st /stroke ldf /gr /grestore ldf /np /newpath ldf
/sv /save ldf /su /statusdict ldf /rs /restore ldf
/sw /setlinewidth ldf /sd /setdash ldf /cp /closepath ldf /ed {exch def } bdf
/cfnt {findfont exch makefont setfont} bdf
/itr {transform round exch round exch itransform} bdf
/fres 72 0 matrix currentmatrix dtransform
exch dup mul exch dup mul add sqrt def
/res fres def /mcm matrix currentmatrix bdf
end

Freelance_Plus begin
save newpath
.1 .1 scale
/ecm matrix currentmatrix bdf
/sem {ecm setmatrix} bdf
-720 -720 translate
0 setlinecap
0 setlinejoin
1.42 setmiterlimit

0.000 sg
6 sw
sv np [] 0 sd
1598 3126 itr mt
5402 3126 itr l2
5402 4869 itr l2
1598 4869 itr l2
1598 3126 itr l2
cp
st rs

/Ich 256 array def StandardEncoding Ich copy pop
/bullet/paragraph/section/dieresis/tilde/ring
/circumflex/grave/acute/quotedblleft/quotesingle
/ellipsis/endash/emdash/guilsinglleft/guilsinglright
/quotedblbase/quotesinglbase/quotedblright/OE/oe
/Ydieresis/fi/fl/dagger/daggerdbl/Ccedilla/udieresis
/eacute/acircumflex/adieresis/agrave/aring/ccedilla
/ecircumflex/edieresis/egrave/idieresis/icircumflex
/igrave/Adieresis/Aring/Eacute/ae/AE/ocircumflex
/odieresis/ograve/ucircumflex/ugrave/ydieresis
/Odieresis/Udieresis/oslash/sterling/Oslash/florin
/aacute/iacute/oacute/uacute/ntilde/Ntilde/ordfeminine
/ordmasculine/questiondown/exclamdown/guillemotleft
/guillemotright/Aacute/Acircumflex/Agrave/cent/yen
/atilde/Atilde/currency/Ecircumflex/Edieresis/Egrave
/dotlessi/Iacute/Icircumflex/Idieresis/Igrave/Oacute
/germandbls/Ocircumflex/Ograve/otilde/Otilde/Uacute
/Ucircumflex/Ugrave/macron/cedilla/periodcentered
Ich 127 97 getinterval astore pop
/Ienc { /ncs Ich def /nfn ed /bfn ed /bfd bfn findfont def
/nf bfd maxlength dict def bfd{exch dup dup /FID ne exch /Encoding ne and
{exch nf 3 1 roll put}{pop pop} ifelse }forall nf/FontName nfn put
nf/Encoding ncs put nfn nf definefont pop}bdf

/IencO { /ncs Ich def /nfn ed /bfn ed /lnw ed /bfd bfn findfont def
/nf bfd maxlength 4 add dict def bfd{exch dup dup /FID ne exch /Encoding ne and
{exch nf 3 1 roll put}{pop pop} ifelse }forall nf/FontName nfn put
nf/Encoding ncs put
nf/PaintType 2 put nf/StrokeWidth lnw put
nfn nf definefont pop}bdf

/IencSO { /nfn ed /bfn ed /lnw ed /bfd bfn findfont def
/nf bfd maxlength 4 add dict def bfd{exch dup /FID ne { exch nf 3 1
roll put}{pop pop} ifelse }forall
nf/FontName nfn put nf/PaintType 2 put
nf/StrokeWidth lnw put nfn nf definefont pop}bdf

/Helvetica /Flfon1 Ienc
[191 0 0.00 191 -18 -142]  /Flfon1 cfnt

1843 5009 itr mt
-53 0 itr rt
0 71 itr rt
(0)
show

2311 5014 itr mt
-53 0 itr rt
0 71 itr rt
(1)
show

2787 5014 itr mt
-53 0 itr rt
0 71 itr rt
(2)
show

3262 5014 itr mt
-53 0 itr rt
0 71 itr rt
(3)
show

3738 5014 itr mt
-53 0 itr rt
0 71 itr rt
(4)
show

4213 5014 itr mt
-53 0 itr rt
0 71 itr rt
(5)
show

4689 5014 itr mt
-53 0 itr rt
0 71 itr rt
(6)
show

5164 5014 itr mt
-53 0 itr rt
0 71 itr rt
(7)
show

1360 4724 itr mt
-53 0 itr rt
0 71 itr rt
(0)
show

1360 4433 itr mt
-53 0 itr rt
0 71 itr rt
(1)
show

1360 4143 itr mt
-53 0 itr rt
0 71 itr rt
(2)
show

1360 3852 itr mt
-53 0 itr rt
0 71 itr rt
(3)
show

1360 3562 itr mt
-53 0 itr rt
0 71 itr rt
(4)
show

1360 3271 itr mt
-53 0 itr rt
0 71 itr rt
(5)
show

12 sw
sv np
2549 4869 itr mt
2549 3126 itr l2
st rs

sv np
3500 4869 itr mt
3500 3126 itr l2
st rs

sv np
4451 4869 itr mt
4451 3126 itr l2
st rs

sv np [] 0 sd
1598 3998 itr mt
2549 3998 itr l2
2549 4869 itr l2
1598 4869 itr l2
1598 3998 itr l2
gs 0.920 sg
ef gr
rs

sv np [] 0 sd
4451 3998 itr mt
5402 3998 itr l2
5402 4869 itr l2
4451 4869 itr l2
4451 3998 itr l2
gs 0.920 sg
ef gr
rs

/fi16 {0 16 2} def
/bitval {/yb ed /xb ed bs yb bw mul xb 8 idiv add
get 1 7 xb 8 mod sub bitshift and 0 ne} bdf
/spotf {/y ed /x ed x 1 add 2 div bps mul cvi
y 1 add 2 div bps mul cvi
bitval {/onb onb 1 add def 1} {/ofb ofb 1 add def 0}
ifelse} def
/uset {/uf ed /ua ed /uc ed uc dup matrix scale
ua matrix rotate mcm mcm concatmatrix mcm concatmatrix
pop 1 0 mcm dtransform
/y1 ed /x1 ed /nsc y1 x1 atan def res x1 dup mul
y1 dup mul add sqrt div nsc /uf load setscreen} bdf
/mkfill {/cz ed /bs ed /bw ed /bps ed /an ed
/onb 0 def /ofb 0 def cz an /spotf load uset
{} settransfer ofb ofb onb add div sg} bdf

sv np [] 0 sd
2549 3998 itr mt
3500 3998 itr l2
3500 4869 itr l2
2549 4869 itr l2
2549 3998 itr l2
gs fi16 <
0001800240042008101008200440028001000280044008201010200840048002
> 03.84 mkfill
ef gr
rs

sv np [] 0 sd
3500 3998 itr mt
4451 3998 itr l2
4451 4869 itr l2
3500 4869 itr l2
3500 3998 itr l2
gs 0.850 sg
ef gr
rs

sv np [] 0 sd
2549 3126 itr mt
3500 3126 itr l2
3500 3998 itr l2
2549 3998 itr l2
2549 3126 itr l2
gs fi16 <
8000400020001000080004000200010000800040002000100008000400020001
> 03.84 mkfill
ef gr
rs

sv np [] 0 sd
1598 3126 itr mt
2549 3126 itr l2
2549 3998 itr l2
1598 3998 itr l2
1598 3126 itr l2
gs fi16 <
0001000200040008001000200040008001000200040008001000200040008000
> 03.84 mkfill
ef gr
rs

6 sw
sv np [] 0 sd
4451 3126 itr mt
5402 3126 itr l2
5402 3998 itr l2
4451 3998 itr l2
4451 3126 itr l2
gs fi16 <
0001000200040008001000200040008001000200040008001000200040008000
> 03.84 mkfill
ef gr
rs

12 sw
sv np [] 0 sd
3500 3126 itr mt
4451 3126 itr l2
4451 3998 itr l2
3500 3998 itr l2
3500 3126 itr l2
rs

6 sw
sv np [] 0 sd
1598 1383 itr mt
5402 1383 itr l2
5402 3126 itr l2
1598 3126 itr l2
1598 1383 itr l2
rs

12 sw
sv np [] 0 sd
2549 3127 itr mt
2549 1383 itr l2
st rs

sv np
3500 3127 itr mt
3500 1383 itr l2
st rs

sv np
4451 3127 itr mt
4451 1383 itr l2
st rs

sv np [] 0 sd
1598 2255 itr mt
2549 2255 itr l2
2549 3126 itr l2
1598 3126 itr l2
1598 2255 itr l2
gs 0.920 sg
ef gr
rs

6 sw
sv np [] 0 sd
4451 2255 itr mt
5402 2255 itr l2
5402 3126 itr l2
4451 3126 itr l2
4451 2255 itr l2
gs 0.920 sg
ef gr
rs

12 sw
sv np [] 0 sd
2549 2255 itr mt
3500 2255 itr l2
3500 3126 itr l2
2549 3126 itr l2
2549 2255 itr l2
gs fi16 <
0001800240042008101008200440028001000280044008201010200840048002
> 03.84 mkfill
ef gr
rs

sv np [] 0 sd
3500 2255 itr mt
4451 2255 itr l2
4451 3126 itr l2
3500 3126 itr l2
3500 2255 itr l2
gs 0.850 sg
ef gr
rs

sv np [] 0 sd
2549 1383 itr mt
3500 1383 itr l2
3500 2255 itr l2
2549 2255 itr l2
2549 1383 itr l2
gs fi16 <
8000400020001000080004000200010000800040002000100008000400020001
> 03.84 mkfill
ef gr
rs

sv np [] 0 sd
1598 1383 itr mt
2549 1383 itr l2
2549 2255 itr l2
1598 2255 itr l2
1598 1383 itr l2
gs fi16 <
0001000200040008001000200040008001000200040008001000200040008000
> 03.84 mkfill
ef gr
rs

sv np [] 0 sd
4451 1383 itr mt
5402 1383 itr l2
5402 2255 itr l2
4451 2255 itr l2
4451 1383 itr l2
gs fi16 <
0001000200040008001000200040008001000200040008001000200040008000
> 03.84 mkfill
ef gr
rs

sv np [] 0 sd
3500 1383 itr mt
4451 1383 itr l2
4451 2255 itr l2
3500 2255 itr l2
3500 1383 itr l2
rs

1360 2981 itr mt
-53 0 itr rt
0 71 itr rt
(6)
show

1360 2690 itr mt
-53 0 itr rt
0 71 itr rt
(7)
show

1360 2400 itr mt
-53 0 itr rt
0 71 itr rt
(8)
show

1360 2109 itr mt
-53 0 itr rt
0 71 itr rt
(9)
show

1360 1819 itr mt
-106 0 itr rt
0 71 itr rt
(10)
show

1360 1528 itr mt
-106 0 itr rt
0 71 itr rt
(11)
show

1360 1238 itr mt
-27 0 itr rt
0 71 itr rt
(.)
show

1360 947 itr mt
-27 0 itr rt
0 71 itr rt
(.)
show

1360 1093 itr mt
-27 0 itr rt
0 71 itr rt
(.)
show

sv np [] 0 sd
2549 4869 itr mt
2549 1383 itr l2
st rs

sv np
3500 4869 itr mt
3500 1383 itr l2
st rs

sv np
4451 4869 itr mt
4451 1383 itr l2
st rs

[153 0 0.00 153 -15 -113]  /Flfon1 cfnt

1836 4724 itr mt
-43 0 itr rt
0 57 itr rt
(0)
show

1825 4460 itr mt
-43 0 itr rt
0 57 itr rt
(1)
show

1836 4143 itr mt
-43 0 itr rt
0 57 itr rt
(2)
show

2311 4724 itr mt
-43 0 itr rt
0 57 itr rt
(3)
show

2311 4433 itr mt
-43 0 itr rt
0 57 itr rt
(4)
show

2311 4143 itr mt
-43 0 itr rt
0 57 itr rt
(5)
show

4689 4724 itr mt
-43 0 itr rt
0 57 itr rt
(6)
show

4689 4433 itr mt
-43 0 itr rt
0 57 itr rt
(7)
show

4689 4143 itr mt
-43 0 itr rt
0 57 itr rt
(8)
show

5164 4724 itr mt
-43 0 itr rt
0 57 itr rt
(9)
show

5164 4433 itr mt
-85 0 itr rt
0 57 itr rt
(10)
show

5164 4143 itr mt
-85 0 itr rt
0 57 itr rt
(11)
show

1836 2981 itr mt
-85 0 itr rt
0 57 itr rt
(12)
show

1836 2690 itr mt
-85 0 itr rt
0 57 itr rt
(13)
show

1836 2400 itr mt
-85 0 itr rt
0 57 itr rt
(14)
show

2311 2981 itr mt
-85 0 itr rt
0 57 itr rt
(15)
show

2311 2690 itr mt
-85 0 itr rt
0 57 itr rt
(16)
show

2311 2400 itr mt
-85 0 itr rt
0 57 itr rt
(17)
show

4689 2981 itr mt
-85 0 itr rt
0 57 itr rt
(18)
show

4689 2690 itr mt
-85 0 itr rt
0 57 itr rt
(19)
show

4689 2400 itr mt
-85 0 itr rt
0 57 itr rt
(20)
show

5164 2981 itr mt
-85 0 itr rt
0 57 itr rt
(21)
show

5164 2690 itr mt
-85 0 itr rt
0 57 itr rt
(22)
show

5164 2400 itr mt
-85 0 itr rt
0 57 itr rt
(23)
show

2787 4724 itr mt
-43 0 itr rt
0 57 itr rt
(0)
show

2787 4433 itr mt
-43 0 itr rt
0 57 itr rt
(1)
show

2787 4143 itr mt
-43 0 itr rt
0 57 itr rt
(2)
show

3262 4724 itr mt
-43 0 itr rt
0 57 itr rt
(3)
show

3262 4433 itr mt
-43 0 itr rt
0 57 itr rt
(4)
show

3262 4143 itr mt
-43 0 itr rt
0 57 itr rt
(5)
show

2787 2981 itr mt
-43 0 itr rt
0 57 itr rt
(6)
show

2787 2690 itr mt
-43 0 itr rt
0 57 itr rt
(7)
show

2787 2400 itr mt
-43 0 itr rt
0 57 itr rt
(8)
show

3262 2981 itr mt
-43 0 itr rt
0 57 itr rt
(9)
show

3262 2690 itr mt
-85 0 itr rt
0 57 itr rt
(10)
show

3262 2400 itr mt
-85 0 itr rt
0 57 itr rt
(11)
show

3738 4724 itr mt
-43 0 itr rt
0 57 itr rt
(0)
show

3738 4433 itr mt
-43 0 itr rt
0 57 itr rt
(1)
show

3738 4143 itr mt
-43 0 itr rt
0 57 itr rt
(2)
show

4213 4724 itr mt
-43 0 itr rt
0 57 itr rt
(3)
show

4213 4433 itr mt
-43 0 itr rt
0 57 itr rt
(4)
show

4213 4143 itr mt
-43 0 itr rt
0 57 itr rt
(5)
show

3738 2981 itr mt
-43 0 itr rt
0 57 itr rt
(6)
show

3738 2690 itr mt
-43 0 itr rt
0 57 itr rt
(7)
show

3738 2400 itr mt
-43 0 itr rt
0 57 itr rt
(8)
show

4213 2981 itr mt
-43 0 itr rt
0 57 itr rt
(9)
show

4213 2690 itr mt
-85 0 itr rt
0 57 itr rt
(10)
show

4213 2400 itr mt
-85 0 itr rt
0 57 itr rt
(11)
show

1836 3852 itr mt
-43 0 itr rt
0 57 itr rt
(0)
show

1836 3562 itr mt
-43 0 itr rt
0 57 itr rt
(1)
show

1836 3271 itr mt
-43 0 itr rt
0 57 itr rt
(2)
show

2311 3852 itr mt
-43 0 itr rt
0 57 itr rt
(3)
show

2311 3562 itr mt
-43 0 itr rt
0 57 itr rt
(4)
show

2311 3271 itr mt
-43 0 itr rt
0 57 itr rt
(5)
show

4689 3852 itr mt
-43 0 itr rt
0 57 itr rt
(6)
show

4689 3562 itr mt
-43 0 itr rt
0 57 itr rt
(7)
show

4689 3271 itr mt
-43 0 itr rt
0 57 itr rt
(8)
show

5164 3852 itr mt
-43 0 itr rt
0 57 itr rt
(9)
show

5164 3562 itr mt
-85 0 itr rt
0 57 itr rt
(10)
show

5164 3271 itr mt
-85 0 itr rt
0 57 itr rt
(11)
show

1836 2109 itr mt
-85 0 itr rt
0 57 itr rt
(12)
show

1836 1819 itr mt
-85 0 itr rt
0 57 itr rt
(13)
show

1836 1528 itr mt
-85 0 itr rt
0 57 itr rt
(14)
show

2311 2109 itr mt
-85 0 itr rt
0 57 itr rt
(15)
show

2311 1819 itr mt
-85 0 itr rt
0 57 itr rt
(16)
show

2311 1528 itr mt
-85 0 itr rt
0 57 itr rt
(17)
show

4689 2109 itr mt
-85 0 itr rt
0 57 itr rt
(18)
show

4689 1819 itr mt
-85 0 itr rt
0 57 itr rt
(19)
show

4689 1528 itr mt
-85 0 itr rt
0 57 itr rt
(20)
show

5164 2109 itr mt
-85 0 itr rt
0 57 itr rt
(21)
show

5164 1819 itr mt
-85 0 itr rt
0 57 itr rt
(22)
show

5164 1528 itr mt
-85 0 itr rt
0 57 itr rt
(23)
show

2787 3852 itr mt
-43 0 itr rt
0 57 itr rt
(0)
show

2787 3562 itr mt
-43 0 itr rt
0 57 itr rt
(1)
show

2787 3271 itr mt
-43 0 itr rt
0 57 itr rt
(2)
show

3262 3852 itr mt
-43 0 itr rt
0 57 itr rt
(3)
show

3262 3562 itr mt
-43 0 itr rt
0 57 itr rt
(4)
show

3262 3271 itr mt
-43 0 itr rt
0 57 itr rt
(5)
show

2787 2109 itr mt
-43 0 itr rt
0 57 itr rt
(6)
show

2787 1819 itr mt
-43 0 itr rt
0 57 itr rt
(7)
show

2787 1528 itr mt
-43 0 itr rt
0 57 itr rt
(8)
show

3262 2109 itr mt
-43 0 itr rt
0 57 itr rt
(9)
show

3262 1819 itr mt
-85 0 itr rt
0 57 itr rt
(10)
show

3262 1528 itr mt
-85 0 itr rt
0 57 itr rt
(11)
show

3738 3852 itr mt
-43 0 itr rt
0 57 itr rt
(0)
show

3738 3562 itr mt
-43 0 itr rt
0 57 itr rt
(1)
show

3738 3271 itr mt
-43 0 itr rt
0 57 itr rt
(2)
show

4213 3852 itr mt
-43 0 itr rt
0 57 itr rt
(3)
show

4213 3562 itr mt
-43 0 itr rt
0 57 itr rt
(4)
show

4213 3271 itr mt
-43 0 itr rt
0 57 itr rt
(5)
show

3738 2109 itr mt
-43 0 itr rt
0 57 itr rt
(6)
show

3738 1819 itr mt
-43 0 itr rt
0 57 itr rt
(7)
show

3738 1528 itr mt
-43 0 itr rt
0 57 itr rt
(8)
show

4213 2109 itr mt
-43 0 itr rt
0 57 itr rt
(9)
show

4213 1819 itr mt
-85 0 itr rt
0 57 itr rt
(10)
show

4213 1528 itr mt
-85 0 itr rt
0 57 itr rt
(11)
show

sv np
4927 4869 itr mt
4927 3126 itr l2
st rs

sv np
4927 3127 itr mt
4927 1383 itr l2
st rs

sv np
4927 4869 itr mt
4927 1383 itr l2
st rs

sv np
5402 4869 itr mt
5402 3126 itr l2
st rs

sv np
5402 3127 itr mt
5402 1383 itr l2
st rs

sv np
5402 4869 itr mt
5402 1383 itr l2
st rs

sv np
3977 4869 itr mt
3977 3126 itr l2
st rs

sv np
3977 3127 itr mt
3977 1383 itr l2
st rs

sv np
3977 4869 itr mt
3977 1383 itr l2
st rs

sv np
3026 4869 itr mt
3026 3126 itr l2
st rs

sv np
3026 3127 itr mt
3026 1383 itr l2
st rs

sv np
3026 4869 itr mt
3026 1383 itr l2
st rs

sv np
2075 4869 itr mt
2075 3126 itr l2
st rs

sv np
2075 3127 itr mt
2075 1383 itr l2
st rs

sv np
2075 4869 itr mt
2075 1383 itr l2
st rs

sv np
1599 4869 itr mt
1599 3126 itr l2
st rs

sv np
1599 3127 itr mt
1599 1383 itr l2
st rs

sv np
1599 4869 itr mt
1599 1383 itr l2
st rs

[191 0 0.00 191 -18 -142]  /Flfon1 cfnt

5857 3730 itr mt
0 71 itr rt
(ncells = 8)
show

5857 3469 itr mt
0 71 itr rt
(Hn = 3)
show

5857 3209 itr mt
0 71 itr rt
(Vn = 2)
show

5857 2948 itr mt
0 71 itr rt
(Hbs = 2)
show

5857 2687 itr mt
0 71 itr rt
(Vbs = 3)
show

sv np
1607 4870 itr mt
5415 4870 itr l2
st rs

rs end

%%EndDocument
 75 4 a
 endTexFig
586 1002 a Ft(Figure)16 b(1.1:)j(P)o(artitioning)c(of)g(a)g(V)l(esta)g(File)
75 1134 y(where)21 b(0)i Fg(\024)f Fd(I)k(<)d(H)t(bs)d Ft(and)i(0)g
Fg(\024)h Fd(H)j(<)c(H)t(n)p Ft(.)38 b(Consider)21 b(a)g(partition)h(of)e
(the)h(matrix)g(in)o(to)g(t)o(w)o(o-)75 1190 y(dimensional)j(blo)q(c)o(ks,)f
(eac)o(h)f(spanning)h Fd(V)9 b(bs)22 b Ft(consecutiv)o(e)g(ro)o(ws)f(and)h
Fd(H)t(bs)f Ft(consecutiv)o(e)i(columns.)75 1247 y(Blo)q(c)o(k)c
Fd(bl)q(ock)306 1254 y Fc(r)o(;s)365 1247 y Ft(spans)g(the)g
Fd(V)10 b(bs)18 b Ft(ro)o(ws)g Fd(r)13 b Fg(\001)f Fd(V)d(bs;)f(:)g(:)g(:)d
(;)j Ft(\()p Fd(r)k Ft(+)h(1\))f Fg(\001)g Fd(V)d(bs)k Fg(\000)f
Ft(1)19 b(and)g(the)f Fd(H)t(bs)g Ft(columns)i Fd(s)12 b Fg(\001)75
1303 y Fd(H)t(bs;)c(:)g(:)g(:)t(;)g Ft(\()p Fd(s)i Ft(+)h(1\))f
Fg(\001)g Fd(H)t(bs)g Fg(\000)h Ft(1.)23 b(If)16 b Fd(I)i(>)c
Ft(0)i(then)g(the)g(last)g(blo)q(c)o(k)h(in)g(the)f(horizon)o(tal)h
(dimension)h(\(blo)q(c)o(k)75 1360 y Fd(bl)q(ock)176 1367 y
Fc(r)o(;B)q Fb(\001)p Fc(H)r(n)p Fa(+)p Fc(H)342 1360 y Ft(\))d(spans)g
Fd(I)k Ft(columns)d(only)l(.)166 1416 y(Sub\014le)h Fd(par)q(t)400
1423 y Fc(v)q(;h)464 1416 y Ft(consists)f(of)e(blo)q(c)o(ks)i
Fd(bl)q(ock)922 1423 y Fc(r)o(;s)963 1416 y Ft(,)e(for)701
1510 y Fd(r)f Ft(=)g Fd(v)r(;)8 b(v)j Ft(+)f Fd(V)g(n;)e(v)j
Ft(+)f(2)p Fd(V)g(n;)e(:)g(:)g(:)d(;)75 1604 y Ft(and)692 1661
y Fd(s)13 b Ft(=)g Fd(h;)8 b(h)i Ft(+)g Fd(H)t(n;)e(h)h Ft(+)i(2)p
Fd(H)t(n;)d(:)g(:)g(:)t(:)166 1740 y Ft(The)15 b(n)o(um)o(b)q(er)h(of)f
(columns)h(in)g(sub\014le)g Fd(par)q(t)933 1747 y Fc(v)q(;h)998
1740 y Ft(is)f(equal)h(to)644 1893 y Fd(c)664 1900 y Fc(h)698
1893 y Ft(=)746 1795 y Fe(8)746 1832 y(>)746 1844 y(<)746 1919
y(>)746 1932 y(:)803 1837 y Ft(\()p Fd(B)d Ft(+)d(1\))g Fg(\001)g
Fd(H)t(bs)40 b Ft(if)16 b Fd(h)d(<)g(H)803 1893 y(B)g Fg(\001)d
Fd(H)t(bs)f Ft(+)i Fd(I)79 b Ft(if)16 b Fd(h)d Ft(=)g Fd(H)803
1950 y(B)g Fg(\001)d Fd(H)t(bs)154 b Ft(if)16 b Fd(h)d(>)g(H)166
2045 y Ft(When)i Fd(H)t(bs)10 b Fg(\001)g Fd(H)t(n)15 b Ft(divides)i(ev)o
(enly)f Fd(ncel)q(l)q(s)e Ft(this)i(reduces)g(to)e Fd(c)1250
2052 y Fc(h)1284 2045 y Ft(=)f Fd(ncel)q(l)q(s=H)t(n)p Ft(.)166
2101 y(Consider)i(record)f(\()p Fd(i;)8 b(j)s Ft(\))k(in)k(blo)q(c)o(k)f
Fd(bl)q(ock)873 2108 y Fc(r)o(;s)914 2101 y Ft(,)f(where)h
Fd(r)e Ft(=)g Fd(v)d Ft(+)f Fd(m)g Fg(\001)g Fd(V)g(n)15 b
Ft(and)g Fd(s)e Ft(=)g Fd(h)8 b Ft(+)i Fd(n)f Fg(\001)f Fd(H)t(n)p
Ft(.)19 b(This)75 2158 y(record)e(has)f(indices)j(\()p Fd(i)11
b Ft(+)g Fd(r)h Fg(\001)f Fd(V)f(bs;)e(j)k Ft(+)g Fd(s)f Fg(\001)g
Fd(H)t(bs)p Ft(\))16 b(in)h(the)g(global)h(\014le.)25 b(It)17
b(b)q(elongs)h(to)e(sub\014le)i Fd(par)q(t)1813 2165 y Fc(v)q(;h)1862
2158 y Ft(,)75 2214 y(and)d(has)g(indices)j(\()p Fd(i)9 b Ft(+)i
Fd(m)f Fg(\001)f Fd(V)h(bs;)e(j)j Ft(+)g Fd(n)f Fg(\001)g Fd(H)t(bs)p
Ft(\))k(in)i(the)f(sub\014le.)166 2271 y(W)l(e)20 b(further)g(need)i(to)d(sp)
q(ecify)j(a)e(canonical)h(order)f(for)g(records)g(within)i(eac)o(h)e
(sub\014le.)36 b(Since)75 2327 y(the)17 b(v)o(ertical)h(dimension)g(of)f(the)
g(sub\014le)h(is)g(un)o(b)q(ounded,)g(one)f(cannot)g(use)g(a)g(column-ma)s
(jor)g(order.)75 2384 y(Ho)o(w)o(ev)o(er,)f(a)h(\\column)g(\014rst")f
(ordering)i(has)e(the)i(adv)m(an)o(tage)e(that)g(consecutiv)o(e)i(records)f
(are)f(stored)75 2440 y(con)o(tiguously)l(,)e(th)o(us)f(impro)o(ving)h(lo)q
(calit)o(y)g(of)f(access.)20 b(The)13 b(ordering)h(used)g(is)f(a)g
(compromise)h(b)q(et)o(w)o(een)75 2497 y(these)f(t)o(w)o(o)e(con\015icting)k
(requiremen)o(ts:)k(Within)14 b(eac)o(h)f(blo)q(c)o(k,)g(records)g(are)f
(ordered)h(in)h(column)f(ma)s(jor)75 2553 y(order;)g(the)g(blo)q(c)o(ks)g
(themselv)o(es)h(are)e(ordered)h(in)h(ro)o(w)e(ma)s(jor)f(order.)19
b(Th)o(us,)12 b(using)i(the)f(same)f(notation)75 2609 y(as)j(b)q(efore,)g
(the)g(record)g(with)h(indices)h(\()p Fd(i)10 b Ft(+)g Fd(m)g
Fg(\001)g Fd(V)f(bs;)f(j)k Ft(+)e Fd(n)h Fg(\001)e Fd(H)t(bs)p
Ft(\))14 b(in)j(the)e(sub\014le)h Fd(par)q(t)1619 2616 y Fc(v)q(;h)1684
2609 y Ft(has)f(rank)580 2704 y Fd(m)10 b Fg(\001)f Fd(c)672
2711 y Fc(h)704 2704 y Fg(\001)g Fd(V)h(bs)g Ft(+)g Fd(n)h
Fg(\001)e Fd(H)t(bs)h Fg(\001)g Fd(V)f(bs)h Ft(+)h Fd(j)h Fg(\001)e
Fd(V)f(bs)h Ft(+)h Fd(i)1967 46 y Fr(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 22
bop 75 -100 a Fp(1.8.)34 b(VEST)l(A)16 b(FUNCTIONS)1206 b Ft(21)75
4 y
 19608222 14208860 0 0 42626580 30785863 startTexFig
75 4 a
%%BeginDocument: vst-par2.eps

/Freelance_Plus dup 100 dict def load begin
[ ] {bind} stopped { (patching the bind operator...) = flush
/*bind /bind load def /bind { dup xcheck { *bind } if } *bind def } if pop
/bdf {bind def} bind def /ldf {load def} bdf
/mt /moveto ldf /rt /rmoveto ldf /l2 /lineto ldf /c2 /curveto ldf
/sg /setgray ldf /gs /gsave ldf /ef /eofill ldf /rl2 /rlineto ldf
/st /stroke ldf /gr /grestore ldf /np /newpath ldf
/sv /save ldf /su /statusdict ldf /rs /restore ldf
/sw /setlinewidth ldf /sd /setdash ldf /cp /closepath ldf /ed {exch def } bdf
/cfnt {findfont exch makefont setfont} bdf
/itr {transform round exch round exch itransform} bdf
/fres 72 0 matrix currentmatrix dtransform
exch dup mul exch dup mul add sqrt def
/res fres def /mcm matrix currentmatrix bdf
end

Freelance_Plus begin
save newpath
.1 .1 scale
/ecm matrix currentmatrix bdf
/sem {ecm setmatrix} bdf
-720 -720 translate
0 setlinecap
0 setlinejoin
1.42 setmiterlimit

0.000 sg
6 sw
sv np [] 0 sd
1598 3126 itr mt
5402 3126 itr l2
5402 4869 itr l2
1598 4869 itr l2
1598 3126 itr l2
cp
st rs

/Ich 256 array def StandardEncoding Ich copy pop
/bullet/paragraph/section/dieresis/tilde/ring
/circumflex/grave/acute/quotedblleft/quotesingle
/ellipsis/endash/emdash/guilsinglleft/guilsinglright
/quotedblbase/quotesinglbase/quotedblright/OE/oe
/Ydieresis/fi/fl/dagger/daggerdbl/Ccedilla/udieresis
/eacute/acircumflex/adieresis/agrave/aring/ccedilla
/ecircumflex/edieresis/egrave/idieresis/icircumflex
/igrave/Adieresis/Aring/Eacute/ae/AE/ocircumflex
/odieresis/ograve/ucircumflex/ugrave/ydieresis
/Odieresis/Udieresis/oslash/sterling/Oslash/florin
/aacute/iacute/oacute/uacute/ntilde/Ntilde/ordfeminine
/ordmasculine/questiondown/exclamdown/guillemotleft
/guillemotright/Aacute/Acircumflex/Agrave/cent/yen
/atilde/Atilde/currency/Ecircumflex/Edieresis/Egrave
/dotlessi/Iacute/Icircumflex/Idieresis/Igrave/Oacute
/germandbls/Ocircumflex/Ograve/otilde/Otilde/Uacute
/Ucircumflex/Ugrave/macron/cedilla/periodcentered
Ich 127 97 getinterval astore pop
/Ienc { /ncs Ich def /nfn ed /bfn ed /bfd bfn findfont def
/nf bfd maxlength dict def bfd{exch dup dup /FID ne exch /Encoding ne and
{exch nf 3 1 roll put}{pop pop} ifelse }forall nf/FontName nfn put
nf/Encoding ncs put nfn nf definefont pop}bdf

/IencO { /ncs Ich def /nfn ed /bfn ed /lnw ed /bfd bfn findfont def
/nf bfd maxlength 4 add dict def bfd{exch dup dup /FID ne exch /Encoding ne and
{exch nf 3 1 roll put}{pop pop} ifelse }forall nf/FontName nfn put
nf/Encoding ncs put
nf/PaintType 2 put nf/StrokeWidth lnw put
nfn nf definefont pop}bdf

/IencSO { /nfn ed /bfn ed /lnw ed /bfd bfn findfont def
/nf bfd maxlength 4 add dict def bfd{exch dup /FID ne { exch nf 3 1
roll put}{pop pop} ifelse }forall
nf/FontName nfn put nf/PaintType 2 put
nf/StrokeWidth lnw put nfn nf definefont pop}bdf

/Helvetica /Flfon1 Ienc
[191 0 0.00 191 -18 -142]  /Flfon1 cfnt

1843 5009 itr mt
-53 0 itr rt
0 71 itr rt
(0)
show

2311 5014 itr mt
-53 0 itr rt
0 71 itr rt
(1)
show

2787 5014 itr mt
-53 0 itr rt
0 71 itr rt
(2)
show

3262 5014 itr mt
-53 0 itr rt
0 71 itr rt
(3)
show

3738 5014 itr mt
-53 0 itr rt
0 71 itr rt
(4)
show

4213 5014 itr mt
-53 0 itr rt
0 71 itr rt
(5)
show

4689 5014 itr mt
-53 0 itr rt
0 71 itr rt
(6)
show

5164 5014 itr mt
-53 0 itr rt
0 71 itr rt
(7)
show

1360 4724 itr mt
-53 0 itr rt
0 71 itr rt
(0)
show

1360 4433 itr mt
-53 0 itr rt
0 71 itr rt
(1)
show

1360 4143 itr mt
-53 0 itr rt
0 71 itr rt
(2)
show

1360 3852 itr mt
-53 0 itr rt
0 71 itr rt
(3)
show

1360 3562 itr mt
-53 0 itr rt
0 71 itr rt
(4)
show

1360 3271 itr mt
-53 0 itr rt
0 71 itr rt
(5)
show

12 sw
sv np
2549 4869 itr mt
2549 3126 itr l2
st rs

sv np
3500 4869 itr mt
3500 3126 itr l2
st rs

sv np
4451 4869 itr mt
4451 3126 itr l2
st rs

sv np [] 0 sd
1598 3998 itr mt
2549 3998 itr l2
2549 4869 itr l2
1598 4869 itr l2
1598 3998 itr l2
gs 0.920 sg
ef gr
rs

sv np [] 0 sd
4451 3998 itr mt
5402 3998 itr l2
5402 4869 itr l2
4451 4869 itr l2
4451 3998 itr l2
gs 0.920 sg
ef gr
rs

/fi16 {0 16 2} def
/bitval {/yb ed /xb ed bs yb bw mul xb 8 idiv add
get 1 7 xb 8 mod sub bitshift and 0 ne} bdf
/spotf {/y ed /x ed x 1 add 2 div bps mul cvi
y 1 add 2 div bps mul cvi
bitval {/onb onb 1 add def 1} {/ofb ofb 1 add def 0}
ifelse} def
/uset {/uf ed /ua ed /uc ed uc dup matrix scale
ua matrix rotate mcm mcm concatmatrix mcm concatmatrix
pop 1 0 mcm dtransform
/y1 ed /x1 ed /nsc y1 x1 atan def res x1 dup mul
y1 dup mul add sqrt div nsc /uf load setscreen} bdf
/mkfill {/cz ed /bs ed /bw ed /bps ed /an ed
/onb 0 def /ofb 0 def cz an /spotf load uset
{} settransfer ofb ofb onb add div sg} bdf

sv np [] 0 sd
2549 3998 itr mt
3500 3998 itr l2
3500 4869 itr l2
2549 4869 itr l2
2549 3998 itr l2
gs fi16 <
0001800240042008101008200440028001000280044008201010200840048002
> 03.84 mkfill
ef gr
rs

sv np [] 0 sd
3500 3998 itr mt
4451 3998 itr l2
4451 4869 itr l2
3500 4869 itr l2
3500 3998 itr l2
gs 0.850 sg
ef gr
rs

sv np [] 0 sd
2549 3126 itr mt
3500 3126 itr l2
3500 3998 itr l2
2549 3998 itr l2
2549 3126 itr l2
gs fi16 <
8000400020001000080004000200010000800040002000100008000400020001
> 03.84 mkfill
ef gr
rs

sv np [] 0 sd
1598 3126 itr mt
2549 3126 itr l2
2549 3998 itr l2
1598 3998 itr l2
1598 3126 itr l2
gs fi16 <
0001000200040008001000200040008001000200040008001000200040008000
> 03.84 mkfill
ef gr
rs

6 sw
sv np [] 0 sd
4451 3126 itr mt
5402 3126 itr l2
5402 3998 itr l2
4451 3998 itr l2
4451 3126 itr l2
gs fi16 <
0001000200040008001000200040008001000200040008001000200040008000
> 03.84 mkfill
ef gr
rs

12 sw
sv np [] 0 sd
3500 3126 itr mt
4451 3126 itr l2
4451 3998 itr l2
3500 3998 itr l2
3500 3126 itr l2
rs

6 sw
sv np [] 0 sd
1598 1383 itr mt
5402 1383 itr l2
5402 3126 itr l2
1598 3126 itr l2
1598 1383 itr l2
rs

12 sw
sv np [] 0 sd
2549 3127 itr mt
2549 1383 itr l2
st rs

sv np
3500 3127 itr mt
3500 1383 itr l2
st rs

sv np
4451 3127 itr mt
4451 1383 itr l2
st rs

sv np [] 0 sd
1598 2255 itr mt
2549 2255 itr l2
2549 3126 itr l2
1598 3126 itr l2
1598 2255 itr l2
gs 0.920 sg
ef gr
rs

6 sw
sv np [] 0 sd
4451 2255 itr mt
5402 2255 itr l2
5402 3126 itr l2
4451 3126 itr l2
4451 2255 itr l2
gs 0.920 sg
ef gr
rs

12 sw
sv np [] 0 sd
2549 2255 itr mt
3500 2255 itr l2
3500 3126 itr l2
2549 3126 itr l2
2549 2255 itr l2
gs fi16 <
0001800240042008101008200440028001000280044008201010200840048002
> 03.84 mkfill
ef gr
rs

sv np [] 0 sd
3500 2255 itr mt
4451 2255 itr l2
4451 3126 itr l2
3500 3126 itr l2
3500 2255 itr l2
gs 0.850 sg
ef gr
rs

sv np [] 0 sd
2549 1383 itr mt
3500 1383 itr l2
3500 2255 itr l2
2549 2255 itr l2
2549 1383 itr l2
gs fi16 <
8000400020001000080004000200010000800040002000100008000400020001
> 03.84 mkfill
ef gr
rs

sv np [] 0 sd
1598 1383 itr mt
2549 1383 itr l2
2549 2255 itr l2
1598 2255 itr l2
1598 1383 itr l2
gs fi16 <
0001000200040008001000200040008001000200040008001000200040008000
> 03.84 mkfill
ef gr
rs

sv np [] 0 sd
4451 1383 itr mt
5402 1383 itr l2
5402 2255 itr l2
4451 2255 itr l2
4451 1383 itr l2
gs fi16 <
0001000200040008001000200040008001000200040008001000200040008000
> 03.84 mkfill
ef gr
rs

sv np [] 0 sd
3500 1383 itr mt
4451 1383 itr l2
4451 2255 itr l2
3500 2255 itr l2
3500 1383 itr l2
rs

1360 2981 itr mt
-53 0 itr rt
0 71 itr rt
(6)
show

1360 2690 itr mt
-53 0 itr rt
0 71 itr rt
(7)
show

1360 2400 itr mt
-53 0 itr rt
0 71 itr rt
(8)
show

1360 2109 itr mt
-53 0 itr rt
0 71 itr rt
(9)
show

1360 1819 itr mt
-106 0 itr rt
0 71 itr rt
(10)
show

1360 1528 itr mt
-106 0 itr rt
0 71 itr rt
(11)
show

1360 1238 itr mt
-27 0 itr rt
0 71 itr rt
(.)
show

1360 947 itr mt
-27 0 itr rt
0 71 itr rt
(.)
show

1360 1093 itr mt
-27 0 itr rt
0 71 itr rt
(.)
show

sv np [] 0 sd
2549 4869 itr mt
2549 1383 itr l2
st rs

sv np
3500 4869 itr mt
3500 1383 itr l2
st rs

sv np
4451 4869 itr mt
4451 1383 itr l2
st rs

[153 0 0.00 153 -15 -113]  /Flfon1 cfnt

1836 4724 itr mt
-43 0 itr rt
0 57 itr rt
(0)
show

1825 4460 itr mt
-43 0 itr rt
0 57 itr rt
(1)
show

1836 4143 itr mt
-43 0 itr rt
0 57 itr rt
(2)
show

2311 4724 itr mt
-43 0 itr rt
0 57 itr rt
(3)
show

2311 4433 itr mt
-43 0 itr rt
0 57 itr rt
(4)
show

2311 4143 itr mt
-43 0 itr rt
0 57 itr rt
(5)
show

4689 4724 itr mt
-43 0 itr rt
0 57 itr rt
(6)
show

4689 4433 itr mt
-43 0 itr rt
0 57 itr rt
(7)
show

4689 4143 itr mt
-43 0 itr rt
0 57 itr rt
(8)
show

5164 4724 itr mt
-43 0 itr rt
0 57 itr rt
(9)
show

5164 4433 itr mt
-85 0 itr rt
0 57 itr rt
(10)
show

5164 4143 itr mt
-85 0 itr rt
0 57 itr rt
(11)
show

1836 2981 itr mt
-85 0 itr rt
0 57 itr rt
(12)
show

1836 2690 itr mt
-85 0 itr rt
0 57 itr rt
(13)
show

1836 2400 itr mt
-85 0 itr rt
0 57 itr rt
(14)
show

2311 2981 itr mt
-85 0 itr rt
0 57 itr rt
(15)
show

2311 2690 itr mt
-85 0 itr rt
0 57 itr rt
(16)
show

2311 2400 itr mt
-85 0 itr rt
0 57 itr rt
(17)
show

4689 2981 itr mt
-85 0 itr rt
0 57 itr rt
(18)
show

4689 2690 itr mt
-85 0 itr rt
0 57 itr rt
(19)
show

4689 2400 itr mt
-85 0 itr rt
0 57 itr rt
(20)
show

5164 2981 itr mt
-85 0 itr rt
0 57 itr rt
(21)
show

5164 2690 itr mt
-85 0 itr rt
0 57 itr rt
(22)
show

5164 2400 itr mt
-85 0 itr rt
0 57 itr rt
(23)
show

2787 4724 itr mt
-43 0 itr rt
0 57 itr rt
(0)
show

2787 4433 itr mt
-43 0 itr rt
0 57 itr rt
(1)
show

2787 4143 itr mt
-43 0 itr rt
0 57 itr rt
(2)
show

3262 4724 itr mt
-43 0 itr rt
0 57 itr rt
(3)
show

3262 4433 itr mt
-43 0 itr rt
0 57 itr rt
(4)
show

3262 4143 itr mt
-43 0 itr rt
0 57 itr rt
(5)
show

2787 2981 itr mt
-85 0 itr rt
0 57 itr rt
(12)
show

2787 2690 itr mt
-85 0 itr rt
0 57 itr rt
(13)
show

2787 2400 itr mt
-85 0 itr rt
0 57 itr rt
(14)
show

3262 2981 itr mt
-85 0 itr rt
0 57 itr rt
(15)
show

3262 2690 itr mt
-85 0 itr rt
0 57 itr rt
(16)
show

3262 2400 itr mt
-85 0 itr rt
0 57 itr rt
(17)
show

3738 4724 itr mt
-43 0 itr rt
0 57 itr rt
(0)
show

3738 4433 itr mt
-43 0 itr rt
0 57 itr rt
(1)
show

3738 4143 itr mt
-43 0 itr rt
0 57 itr rt
(2)
show

4213 4724 itr mt
-43 0 itr rt
0 57 itr rt
(3)
show

4213 4433 itr mt
-43 0 itr rt
0 57 itr rt
(4)
show

4213 4143 itr mt
-43 0 itr rt
0 57 itr rt
(5)
show

3738 2981 itr mt
-85 0 itr rt
0 57 itr rt
(12)
show

3738 2690 itr mt
-85 0 itr rt
0 57 itr rt
(13)
show

3738 2400 itr mt
-85 0 itr rt
0 57 itr rt
(14)
show

4213 2981 itr mt
-85 0 itr rt
0 57 itr rt
(15)
show

4213 2690 itr mt
-85 0 itr rt
0 57 itr rt
(16)
show

4213 2400 itr mt
-85 0 itr rt
0 57 itr rt
(17)
show

1836 3852 itr mt
-43 0 itr rt
0 57 itr rt
(0)
show

1836 3562 itr mt
-43 0 itr rt
0 57 itr rt
(1)
show

1836 3271 itr mt
-43 0 itr rt
0 57 itr rt
(2)
show

2311 3852 itr mt
-43 0 itr rt
0 57 itr rt
(3)
show

2311 3562 itr mt
-43 0 itr rt
0 57 itr rt
(4)
show

2311 3271 itr mt
-43 0 itr rt
0 57 itr rt
(5)
show

4689 3852 itr mt
-43 0 itr rt
0 57 itr rt
(6)
show

4689 3562 itr mt
-43 0 itr rt
0 57 itr rt
(7)
show

4689 3271 itr mt
-43 0 itr rt
0 57 itr rt
(8)
show

5164 3852 itr mt
-43 0 itr rt
0 57 itr rt
(9)
show

5164 3562 itr mt
-85 0 itr rt
0 57 itr rt
(10)
show

5164 3271 itr mt
-85 0 itr rt
0 57 itr rt
(11)
show

1836 2109 itr mt
-85 0 itr rt
0 57 itr rt
(12)
show

1836 1819 itr mt
-85 0 itr rt
0 57 itr rt
(13)
show

1836 1528 itr mt
-85 0 itr rt
0 57 itr rt
(14)
show

2311 2109 itr mt
-85 0 itr rt
0 57 itr rt
(15)
show

2311 1819 itr mt
-85 0 itr rt
0 57 itr rt
(16)
show

2311 1528 itr mt
-85 0 itr rt
0 57 itr rt
(17)
show

4689 2109 itr mt
-85 0 itr rt
0 57 itr rt
(18)
show

4689 1819 itr mt
-85 0 itr rt
0 57 itr rt
(19)
show

4689 1528 itr mt
-85 0 itr rt
0 57 itr rt
(20)
show

5164 2109 itr mt
-85 0 itr rt
0 57 itr rt
(21)
show

5164 1819 itr mt
-85 0 itr rt
0 57 itr rt
(22)
show

5164 1528 itr mt
-85 0 itr rt
0 57 itr rt
(23)
show

2787 3852 itr mt
-43 0 itr rt
0 57 itr rt
(0)
show

2787 3562 itr mt
-43 0 itr rt
0 57 itr rt
(1)
show

2787 3271 itr mt
-43 0 itr rt
0 57 itr rt
(2)
show

3262 3852 itr mt
-43 0 itr rt
0 57 itr rt
(3)
show

3262 3562 itr mt
-43 0 itr rt
0 57 itr rt
(4)
show

3262 3271 itr mt
-43 0 itr rt
0 57 itr rt
(5)
show

2787 2109 itr mt
-85 0 itr rt
0 57 itr rt
(12)
show

2787 1819 itr mt
-85 0 itr rt
0 57 itr rt
(13)
show

2787 1528 itr mt
-85 0 itr rt
0 57 itr rt
(14)
show

3262 2109 itr mt
-85 0 itr rt
0 57 itr rt
(15)
show

3262 1819 itr mt
-85 0 itr rt
0 57 itr rt
(16)
show

3262 1528 itr mt
-85 0 itr rt
0 57 itr rt
(17)
show

3738 3852 itr mt
-43 0 itr rt
0 57 itr rt
(0)
show

3738 3562 itr mt
-43 0 itr rt
0 57 itr rt
(1)
show

3738 3271 itr mt
-43 0 itr rt
0 57 itr rt
(2)
show

4213 3852 itr mt
-43 0 itr rt
0 57 itr rt
(3)
show

4213 3562 itr mt
-43 0 itr rt
0 57 itr rt
(4)
show

4213 3271 itr mt
-43 0 itr rt
0 57 itr rt
(5)
show

3738 2109 itr mt
-85 0 itr rt
0 57 itr rt
(12)
show

3738 1819 itr mt
-85 0 itr rt
0 57 itr rt
(13)
show

3738 1528 itr mt
-85 0 itr rt
0 57 itr rt
(14)
show

4213 2109 itr mt
-85 0 itr rt
0 57 itr rt
(15)
show

4213 1819 itr mt
-85 0 itr rt
0 57 itr rt
(16)
show

4213 1528 itr mt
-85 0 itr rt
0 57 itr rt
(17)
show

sv np
4927 4869 itr mt
4927 3126 itr l2
st rs

sv np
4927 3127 itr mt
4927 1383 itr l2
st rs

sv np
4927 4869 itr mt
4927 1383 itr l2
st rs

sv np
5402 4869 itr mt
5402 3126 itr l2
st rs

sv np
5402 3127 itr mt
5402 1383 itr l2
st rs

sv np
5402 4869 itr mt
5402 1383 itr l2
st rs

sv np
3977 4869 itr mt
3977 3126 itr l2
st rs

sv np
3977 3127 itr mt
3977 1383 itr l2
st rs

sv np
3977 4869 itr mt
3977 1383 itr l2
st rs

sv np
3026 4869 itr mt
3026 3126 itr l2
st rs

sv np
3026 3127 itr mt
3026 1383 itr l2
st rs

sv np
3026 4869 itr mt
3026 1383 itr l2
st rs

sv np
2075 4869 itr mt
2075 3126 itr l2
st rs

sv np
2075 3127 itr mt
2075 1383 itr l2
st rs

sv np
2075 4869 itr mt
2075 1383 itr l2
st rs

sv np
1599 4869 itr mt
1599 3126 itr l2
st rs

sv np
1599 3127 itr mt
1599 1383 itr l2
st rs

sv np
1599 4869 itr mt
1599 1383 itr l2
st rs

[191 0 0.00 191 -18 -142]  /Flfon1 cfnt

5857 3730 itr mt
0 71 itr rt
(ncells = 8)
show

5857 3469 itr mt
0 71 itr rt
(Hn = 3)
show

5857 3209 itr mt
0 71 itr rt
(Vn = 2)
show

5857 2948 itr mt
0 71 itr rt
(Hbs = 2)
show

5857 2687 itr mt
0 71 itr rt
(Vbs = 3)
show

sv np
1607 4870 itr mt
5415 4870 itr l2
st rs

rs end

%%EndDocument
 75 4 a
 endTexFig
467 1002 a Ft(Figure)15 b(1.2:)k(Alternativ)o(e)d(P)o(artitioning)f(of)g(a)g
(V)l(esta)g(File)75 1140 y(in)h(the)f(sub\014le.)166 1196 y(This)h(n)o(um)o
(b)q(ering)g(sc)o(heme)f(is)h(illustrated)h(in)f(Figure)f(1.1.)166
1253 y(Example)h(1:)j Fd(H)t(bs)12 b Ft(=)h(1,)i Fd(H)t(n)d
Ft(=)h Fd(ncel)q(l)q(s)p Ft(,)h Fd(V)c(n)j Ft(=)g(1.)75 1309
y(Then)k(eac)o(h)g(sub\014le)h(spans)f(one)f(cell.)26 b(The)17
b(records)f(in)i(eac)o(h)f(sub\014le)h(are)e(ordered)h(in)g(column)h(index)75
1366 y(order.)166 1422 y(Example)e(2:)j Fd(H)t(bs)12 b Ft(=)h
Fd(ncel)q(l)q(s)p Ft(,)h Fd(H)t(n)f Ft(=)g Fd(V)c(n)k Ft(=)g(1.)75
1479 y(Then)18 b(the)h(unique)g(sub\014le)g(spans)f(the)h(en)o(tire)f(V)l
(esta)g(\014le;)i(the)e(records)g(are)f(ordered)h(in)h(ro)o(w-ma)s(jor)75
1535 y(order,)d(if)h Fd(V)9 b(bs)15 b Ft(=)g(1;)h(di\013eren)o(t)g(\\snak)o
(e-lik)o(e")h(orderings)g(can)f(b)q(e)h(obtained)g(b)o(y)g(v)m(arying)f(the)h
(v)m(alue)g(of)75 1592 y Fd(V)10 b(bs)p Ft(.)75 1713 y Fm(Alternative)16
b(De\014nition)75 1799 y Ft(The)d(curren)o(t)g(V)l(esta)g(do)q(cumen)o(t)g
(sp)q(eci\014es)i(another)d(partitioning)i(sc)o(heme:)19 b(The)13
b(n)o(um)o(b)q(er)h(of)e(columns)75 1856 y(in)18 b(the)f(V)l(esta)g(\014le)h
(is)f(extended)h(to)f(b)q(e)g(an)g(ev)o(en)g(m)o(ultiple)i(of)e
Fd(H)t(n)11 b Fg(\001)g Fd(H)t(bs)p Ft(,)16 b(and)h(the)g(expanded)h(\014le)g
(is)75 1912 y(then)g(distributed,)h(and)f(the)f(records)g(n)o(um)o(b)q(ered,)
i(as)e(describ)q(ed)i(ab)q(o)o(v)o(e.)27 b(The)17 b(additional)i(columns)75
1969 y(are)d(actually)h(empt)o(y:)22 b(all)17 b(the)g(records)f(that)f(b)q
(elong)j(to)d(these)i(columns)g(are)f(empt)o(y)g(records.)23
b(Suc)o(h)75 2025 y(record)15 b(cannot)g(b)q(e)h(written;)f(a)g(read)g(of)g
(suc)o(h)g(record)g(returns)g(zero)g(b)o(ytes.)166 2082 y(This)20
b(de\014nition)i(is)e(illustrated)h(in)g(Figure)f(1.2.)32 b(The)20
b(sub\014les)h Fd(par)q(t)1410 2089 y Fa(0)p Fc(;)p Fa(0)1475
2082 y Ft(and)f Fd(par)q(t)1653 2089 y Fa(1)p Fc(;)p Fa(0)1718
2082 y Ft(ha)o(v)o(e)f(no)75 2138 y(\\holes")e(in)g(them.)25
b(The)17 b(sub\014les)h Fd(par)q(t)770 2145 y Fc(i;j)809 2138
y Ft(,)f(for)f Fd(i)e Ft(=)i(0)p Fd(;)8 b Ft(1)15 b(and)i Fd(j)g
Ft(=)f(1)p Fd(;)8 b Ft(2)15 b(all)j(miss)f(the)g(records)f(6)h({)f(11,)75
2195 y(18)f({)f(23,)h(etc.)166 2252 y(Note)e(that,)f(with)h(this)h
(de\014nition,)h(it)e(is)g(not)g(required)h(an)o(ymore)e(that)h(\()p
Fd(H)t(n)6 b Fg(\000)g Ft(1\))g Fg(\001)g Fd(H)t(b)o(s)k(<)j(ncel)q(l)q(s)p
Ft(.)75 2308 y(If)i(\()p Fd(H)t(n)10 b Fg(\000)g Ft(1\))g Fg(\001)g
Fd(H)t(bs)i Fg(\025)h Fd(ncel)q(l)q(s)p Ft(,)h(then)h(the)h(partition)f(ma)o
(y)g(con)o(tain)g(empt)o(y)g(sub\014les.)166 2365 y(Both)j(de\014nitions)j
(asso)q(ciate)d(the)h(same)f(records)h(with)g(the)g(same)f(sub\014les.)32
b(Both)18 b(de\014nitions)75 2421 y(pro)o(vide)g(the)f(same)g(record)g(n)o
(um)o(b)q(ering)h(when)f Fd(H)t(n)12 b Fg(\001)f Fd(H)t(bs)16
b Ft(ev)o(enly)i(divides)h Fd(ncel)q(l)q(s)p Ft(.)25 b(Otherwise,)18
b(the)75 2478 y(second)12 b(de\014nition)i(results)f(in)f(sub\014les)i(with)e
(\\holes")g(in)h(them,)f(non-existing)h(records.)19 b(On)12
b(the)g(other)75 2534 y(hand,)i(the)h(corresp)q(ondence)g(b)q(et)o(w)o(een)g
(the)f(ro)o(w)f(and)i(column)g(indices)h(of)e(a)g(record)g(and)g(its)h
(sequence)75 2590 y(n)o(um)o(b)q(er)h(is)f(the)h(same)e(for)h(eac)o(h)g
(sub\014le)i(when)f(the)f(second)h(de\014nition)h(is)e(used.)166
2647 y(W)l(e)f(assume)f(in)h(the)g(sequel)h(the)e(\014rst)g(de\014nition)j
(of)d(a)g(V)l(esta)g(partition,)h(to)f(a)o(v)o(oid)g(the)h(messiness)75
2704 y(of)e(sequen)o(tial)i(accesses)f(to)f(\014les)i(with)f(\\holes".)19
b(But)12 b(use)h(of)g(suc)o(h)g(de\014nition)h(somewhat)e(complicates)-32
46 y Fr(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 23
bop 75 -100 a Ft(22)1387 b Fp(CHAPTER)16 b(1.)34 b(IO)75 49
y Ft(V)l(esta)15 b(implemen)o(tation.)166 232 y Fl(Discussion:)34
b(Cho)q(ose)15 b(an)h(alternativ)o(e.)75 687 y Fo(1.8.2)49
b(V)o(esta)16 b(\014le)g(op)q(erations)75 905 y Fm(MPI)p 160
905 14 2 v 16 w(GET)p 264 905 V 17 w(PFS)p 361 905 V 16 w(STORA)o(GE\(numb)q
(er\))117 1026 y Fk(OUT)108 b Fm(numb)q(er)442 b Fk(n)o(um)o(b)q(er)13
b(of)h(storage)g(no)q(des)h(\(in)o(teger\))75 1194 y Fh(int)47
b(MPI)p 269 1194 15 2 v 17 w(Get)p 358 1194 V 17 w(pfs)p 447
1194 V 17 w(storage\()22 b(int)i(*number\))75 1325 y(MPI)p
150 1325 V 17 w(GET)p 239 1325 V 17 w(PFS)p 328 1325 V 16 w(STORAGE\()f
(NUMBER,)g(IERROR\))170 1381 y(INTEGER)g(NUMBER,)g(IERROR)166
1511 y Ft(Returns)16 b(the)f(n)o(um)o(b)q(er)g(of)g(storage)f(no)q(des.)75
1659 y Fm(MPI)p 160 1659 14 2 v 16 w(GET)p 264 1659 V 17 w(PFS)p
361 1659 V 16 w(STRUCTURE\(\014lename,)g(ncells,)i(rec)p 1031
1659 V 16 w(size\))117 1780 y Fk(IN)155 b Fm(\014lename)428
b Fk(name)13 b(of)g(queried)i(\014le)f(\(string\))117 1943
y(OUT)108 b Fm(ncells)485 b Fk(n)o(um)o(b)q(er)13 b(of)h(cells)g(\(in)o
(teger\))117 2105 y(OUT)108 b Fm(rec)p 377 2105 V 17 w(size)446
b Fk(record)15 b(size)g(\(in)o(teger\))75 2274 y Fh(int)47
b(MPI)p 269 2274 15 2 v 17 w(Get)p 358 2274 V 17 w(pfs)p 447
2274 V 17 w(structure\(const)21 b(char)j(*filename,)e(int)i(*ncells,)e(int)i
(*rec)p 1729 2274 V 17 w(size\))75 2404 y(MPI)p 150 2404 V
17 w(GET)p 239 2404 V 17 w(PFS)p 328 2404 V 16 w(STRUCTURE\()f(FILENAME,)f
(NCELLS,)h(REC)p 1108 2404 V 17 w(SIZE,)g(IERROR\))170 2460
y(CHARACTER\(*\))g(FILENAME)170 2517 y(INTEGER)g(NCELLS,)g(REC)p
627 2517 V 17 w(SIZE,)g(IERROR)166 2647 y Ft(Returns)11 b(the)g(\014le)h
(structure)f(parameters)f(\(n)o(um)o(b)q(er)g(of)h(columns)h(and)f(record)f
(size\))i(of)e(an)h(existing)75 2704 y(V)l(esta)k(\014le.)1967
46 y Fr(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 24
bop 75 -100 a Fp(1.8.)34 b(VEST)l(A)16 b(FUNCTIONS)1206 b Ft(23)75
49 y Fm(MPI)p 160 49 14 2 v 16 w(PFS)p 256 49 V 16 w(OPEN\()21
b(\014lename,)e(status,)24 b(action,)d(t)o(yp)q(e,)h(mo)q(de,)d(concurrency)l
(,)k(\014lepa)o(rams,)18 b(pa)o(rtpa)o(rams,)75 106 y(comm)m(,)12
b(new)o(comm)n(\))117 183 y Fk(IN)155 b Fm(\014lename)428 b
Fk(name)13 b(of)g(op)q(ened)i(\014le)f(\(string\))117 259 y(IN)155
b Fm(status)476 b Fk(one)10 b(of)e Fj(MPI)p 1096 259 13 2 v
15 w(OLD,)g(MPI)p 1289 259 V 15 w(NEW,)h(MPI)p 1493 259 V 14
w(REPLA)o(CE,)e(MPI)p 1781 259 V 15 w(SCRA)m(TCH)905 315 y
Fk(or)14 b Fj(MPI)p 1033 315 V 14 w(UNKNO)o(WN)g Fk(\(state\))117
390 y(IN)155 b Fm(action)472 b Fk(one)14 b(of)f Fj(MPI)p 1105
390 V 14 w(READ,)g(MPI)p 1329 390 V 14 w(WRITE)p Fk(,)f(or)i
Fj(MPI)p 1624 390 V 14 w(READ)o(WRITE)905 447 y Fk(\(state\))117
522 y(IN)155 b Fm(t)o(yp)q(e)507 b Fk(one)10 b(of)f Fj(MPI)p
1097 522 V 14 w(STREAM)p Fk(,)g(or)g Fj(MPI)p 1420 522 V 14
w(FIXED)f Fk(\(\014xed)i(size)h(record\))905 579 y(\(state\))117
654 y(IN)155 b Fm(mo)q(de)481 b Fk(one)10 b(of)e Fj(MPI)p 1096
654 V 15 w(PRIV)m(A)m(TE,)e(MPI)p 1373 654 V 14 w(SHARED)j
Fk(or)g Fj(MPI)p 1679 654 V 15 w(COLLECTIVE)905 711 y Fk(\(state\))117
786 y(IN)155 b Fm(metho)q(d)442 b Fk(one)14 b(of)g Fj(MPI)p
1106 786 V 14 w(UNI)f Fk(or)h Fj(MPI)p 1329 786 V 14 w(MUL)m(TI)g
Fk(\(state\))117 862 y(IN)155 b Fm(concurrency)362 b Fk(one)10
b(of)e Fj(MPI)p 1096 862 V 15 w(EX)o(CLUSIVE)f Fk(or)i Fj(MPI)p
1457 862 V 14 w(CONCURRENT)f Fk(\(state\))117 937 y(IN)155
b Fm(\014lepa)o(rams)394 b Fk(arra)o(y)14 b(describing)g(\014le)g(structure)i
(\(arra)o(y)e(of)f(in)o(teger\))117 1013 y(IN)155 b Fm(pa)o(rtpa)o(rams)373
b Fk(arra)o(y)14 b(describing)h(partitioning)d(parameters)i(\(arra)o(y)g(of)g
(in-)905 1069 y(teger\))117 1144 y(IN)155 b Fm(comm)466 b Fk(comm)o(unicator)
11 b(of)j(group)f(that)h(op)q(ens)h(the)f(\014le)g(\(handle\))117
1220 y(OUT)108 b Fm(new)o(comm)393 b Fk(comm)o(unicator)13
b(asso)q(ciated)j(with)f(\014le)h(b)o(y)f(op)q(en)h(op)q(eration)905
1276 y(\(handle\))75 1401 y Fh(int)47 b(MPI)p 269 1401 15 2
v 17 w(Pfs)p 358 1401 V 17 w(open\(const)22 b(char)i(*filename,)e(MPI)p
1091 1401 V 17 w(IO)i(status,)e(MPI)p 1442 1401 V 17 w(IO)i(action,)393
1457 y(MPI)p 468 1457 V 17 w(IO)g(type,)f(MPI)p 772 1457 V
16 w(IO)h(mode,)f(MPI)p 1075 1457 V 17 w(IO)h(method,)f(MPI)p
1427 1457 V 16 w(IO)h(concurrency,)393 1514 y(int)g(*fileparams,)e(int)h
(*partparams,)g(MPI)p 1280 1514 V 16 w(Comm)h(comm,)393 1570
y(MPI)p 468 1570 V 17 w(Comm)f(*newcomm\))75 1657 y(MPI)p 150
1657 V 17 w(PFS)p 239 1657 V 17 w(OPEN\(FILENAME,)e(STATUS,)i(ACTION,)g
(TYPE,)g(MODE,)h(METHOD,)f(CONCURRENCY,)393 1713 y(FILEPARAMS,)g(PARTPARAMS,)
f(COMM,)h(NEWCOMM,)g(IERROR\))170 1770 y(CHAR\(*\))g(FILENAME)170
1826 y(INTEGER)g(STATUS,)g(ACTION,)g(TYPE,)g(MODE,)h(METHOD,)e(CONCURRENCY,)h
(FILEPARAMS\(*\),)170 1883 y(PARTPARAMS\(*\),)f(COMM,)i(NEWCOMM,)e(IERROR)166
1969 y Ft(Op)q(en)h(a)e(V)l(esta)g(sub\014le)i(for)e(I/O.)h(This)g(is)g(a)f
(collectiv)o(e)i(call)g(executed)f(b)o(y)g(all)g(pro)q(cesses)g(in)75
2026 y(the)d(comm)o(unication)g(group.)29 b(It)19 b(returns)f(a)g(comm)o
(unicator)g(that)g(can)h(b)q(e)g(subsequen)o(tly)h(used)f(for)75
2082 y(accessing)d(a)f(sub\014le)h(of)f(the)h(op)q(ened)g(V)l(esta)f(\014le.)
166 2139 y(The)i(parameters)f(are)h(the)g(same)f(as)h(for)f
Fm(MPI)p 985 2139 14 2 v 16 w(OPEN)p Ft(,)h(except)g(that)f(the)h
Fm(p)q(osition)h Ft(argumen)o(t)e(is)75 2195 y(not)g(a)o(v)m(ailable.)26
b(Tw)o(o)16 b(additional)i(argumen)o(ts,)e Fm(\014lepa)o(rams)e
Ft(and)j Fm(pa)o(rtpa)o(ram)o(s)p Ft(,)d(are)j(arra)o(ys)e(describing)75
2252 y(the)g(structure)g(of)g(the)g(V)l(esta)g(\014le)i(and)e(of)g(a)g
(sub\014le)h(within)h(it.)166 2308 y(The)f Fm(\014lepa)o(rams)d
Ft(argumen)o(t)j(is)g(an)g(arra)o(y)f(with)h(t)o(w)o(o)e(en)o(tries,)j
Fm(ncells)f Ft(and)h Fm(rec)p 1518 2308 V 16 w(size)f Ft(that)f(describ)q(e)
75 2365 y(the)j(n)o(um)o(b)q(er)f(of)g(columns)i(\(cells\))f(and)g(the)f
(record)h(size)g(of)f(the)h(V)l(esta)f(\014le.)28 b(All)19
b(pro)q(cesses)e(pro)o(vide)75 2421 y(the)d(same)f(v)m(alues)i(for)f(this)g
(argumen)o(t.)19 b(A)14 b(v)m(alue)h(of)e Fj(MPI)p 1066 2421
13 2 v 14 w(UNKNO)o(WN)h Ft(can)g(b)q(e)h(used,)f(in)h(whic)o(h)g(case,)e(a)
75 2478 y(system)h(pro)o(vided)g(default)h(is)g(used.)20 b(F)l(or)13
b(a)h(new)g(\014le,)h(the)f(default)h(v)m(alue)g(for)e Fm(ncells)i
Ft(is)g(the)f(n)o(um)o(b)q(er)g(of)75 2534 y(storage)i(no)q(des;)h(the)g
(default)h(v)m(alue)g(for)e Fm(rec)p 860 2534 14 2 v 16 w(size)h
Ft(is)h(implemen)o(tation)g(dep)q(enden)o(t.)26 b(F)l(or)16
b(an)h(existing)75 2591 y(\014le,)g(the)g(default)g(v)m(alues)g(are)f(the)h
(curren)o(t)f(\014le)h(structure)g(parameters.)22 b(One)17
b(cannot)f(c)o(hange)h(these)75 2647 y(t)o(w)o(o)12 b(v)m(alues)j(for)e(an)h
(existing)g(\014le;)h(the)f(\014le)g(structure)g(parameters)e(should)j
(either)f(matc)o(h)f(the)h(curren)o(t)75 2704 y(\014le)i(setting,)f(or)g(b)q
(e)h(equal)g(to)e Fj(MPI)p 680 2704 13 2 v 14 w(UNKNO)o(WN)p
Ft(.)-32 46 y Fr(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 25
bop 75 -100 a Ft(24)1387 b Fp(CHAPTER)16 b(1.)34 b(IO)166 49
y Ft(The)15 b Fm(pa)o(rtpa)o(rams)d Ft(argumen)o(t)i(is)h(an)g(arra)o(y)f
(with)h(\014v)o(e)g(en)o(tries:)20 b Fm(Hn,)15 b(Vn,)h(Hbs,)f(Vbs)h
Ft(and)f Fm(numpa)o(rt)p Ft(.)75 106 y(The)d(\014rst)f(four)h(de\014ne)h(a)e
(partitioning)i(sc)o(heme;)g(the)e(\014fth)h(de\014nes)h(a)f(sub\014le)h(n)o
(um)o(b)q(er;)g Fm(0)f Fg(\024)h Fm(numpa)o(rt)e Fd(<)75 162
y Fm(Hn)g Fg(\001)f Fm(Vn)15 b Ft(should)i(hold.)166 466 y(If)d(the)h(\014le)
g(is)f(op)q(ened)i(in)f(mo)q(de)f Fj(MPI)p 809 466 13 2 v 14
w(PRIV)m(A)m(TE)e Ft(then)i(the)g(\014fth)h(en)o(try)e(of)h
Fm(pa)o(rtpa)o(rams)d Ft(is)k(ignored:)75 523 y(eac)o(h)g(pro)q(cess)g(gets)f
(to)g(access)h(a)g(disjoin)o(t)g(sub\014le,)h(where)f(the)g(pro)q(cess)g
(with)g(rank)g Fm(i)g Ft(attac)o(hes)e(sub\014le)75 579 y Fm(i)p
Ft(.)20 b(In)15 b(particular,)g(if)h(the)f(n)o(um)o(b)q(er)g(of)g(cells)h
(equals)g(the)f(n)o(um)o(b)q(er)g(of)g(pro)q(cesses,)g(and)g(the)g
(partitioning)75 636 y(parameters)d(sp)q(ecify)i(a)f(sub\014le)h(for)e(eac)o
(h)h(cell)h(\()p Fm(Hn)f(=)g(ncells,)h(Vn)g(=)f(1)p Ft(\),)f(then)h(eac)o(h)g
(pro)q(cess)g(has)g(access)75 692 y(to)j(a)g(priv)m(ate)h(\014le,)h(stored)e
(on)g(a)g(distinct)i(cell.)25 b(In)17 b(general,)g(eac)o(h)g(pro)q(cess)f
(has)h(access)f(to)g(a)g(disjoin)o(t)75 749 y(priv)m(ate)21
b(\014le,)i(carv)o(ed)d(out)g(of)g(the)h(shared)g(V)l(esta)f(\014le.)37
b(The)21 b(call)g(is)g(erroneous)g(if)g(the)g(n)o(um)o(b)q(er)f(of)75
805 y(sub\014les)d(is)e(less)h(than)f(the)g(group)g(size.)166
1109 y(If)i(the)g(\014le)h(is)f(op)q(ened)h(in)g(an)o(y)f(other)f(mo)q(de)h
(then)h(all)f(pro)q(cesses)h(pro)o(vide)f(the)g(same)g(argumen)o(t)75
1166 y(v)m(alues,)f(and)g(all)g(pro)q(cesses)g(access)f(the)h(same)f
(sub\014le.)22 b(The)15 b(\014le)h(p)q(oin)o(ter)g(is)g(p)q(ositioned)h(at)e
(the)g(start)75 1222 y(of)g(the)g(sub\014le.)166 1526 y(A)k(V)l(esta)g
(\014le)h(ma)o(y)f(b)q(e)g(op)q(ened)i(at)d(the)h(same)g(time)h(with)f(sev)o
(eral)g(di\013eren)o(t)h(comm)o(unicators;)75 1583 y(sub\014les)k(accessed)f
(with)g(di\013eren)o(t)g(comm)o(unicators)f(ma)o(y)f(o)o(v)o(erlap.)42
b(If)23 b(the)f(\014le)i(is)f(op)q(ened)h(with)75 1639 y Fm(concurrency)16
b Ft(=)g Fj(MPI)p 444 1639 V 14 w(CONCURRENT)e Ft(then)i(the)g(V)l(esta)f
(\014le)h(system)f(will)i(use)f(a)f(concurrency)h(con)o(trol)75
1696 y(proto)q(col)d(that)e(ensures)j(that)d(concurren)o(t)i(accesses)g(to)f
(the)h(\014le)g(are)f(atomic,)h(serializable)i(and)e(causal:)75
1752 y(the)22 b(outcome)f(is)h(as)g(if)g(MPI-IO)h(calls)f(w)o(ere)g(executed)
g(in)h(some)e(serial)i(order,)g(compatible)g(with)75 1809 y(the)17
b(program)g(order.)26 b(If)18 b(the)f(\014le)i(is)f(op)q(ened)g(with)g
Fm(concurrency)g Ft(=)g Fj(MPI)p 1371 1809 V 14 w(EX)o(CLUSIVE)e
Ft(then)h(no)h(suc)o(h)75 1865 y(concurrency)j(proto)q(col)g(is)g(used.)37
b(This)21 b(mo)q(de)g(should)h(b)q(e)f(used)g(only)g(if)g(no)g(record)f(of)h
(the)f(same)75 1922 y(\014le)c(is)g(concurren)o(tly)f(accessed)h(and)f(up)q
(dated)h(using)g(t)o(w)o(o)e(di\013eren)o(t)h(comm)o(unicators)g(for)f
(\014le)i(access.)75 1978 y(In)i(particular,)g(this)g(mo)q(de)g(can)f(b)q(e)h
(used)g(if)g(sub\014les)h(concurren)o(tly)f(op)q(ened)h(with)f(distinct)g
(calls)h(to)75 2034 y Fm(MPI)p 160 2034 14 2 v 16 w(PFS)p 256
2034 V 16 w(OPEN)d Ft(do)f(not)g(o)o(v)o(erlap.)166 2421 y
Fl(Discussion:)39 b Fk(If)15 b(distinct)g(pro)q(cesses)j(w)o(an)o(t)d(to)g
(ha)o(v)o(e)g(priv)n(ate,)g(unco)q(ordinated)g(accesses)j(to)d(unrelated)75
2478 y(sub\014les)h(out)g(of)f(the)h(same)f(V)m(esta)h(\014le,)f(then)h(eac)o
(h)g(of)f(them)g(can)h(op)q(en)g(separately)g(the)g(\014le.)23
b(The)16 b(comm)o(uni-)75 2534 y(cator)g Fj(MPI)p 260 2534
13 2 v 14 w(COMM)p 404 2534 V 15 w(I)p Fk(,)f(whic)o(h)g(has)h(a)g(singleton)
f(group)h(including)f(only)f(the)j(lo)q(cal)e(pro)q(cess,)i(can)f(b)q(e)h
(used)f(for)75 2591 y(that)g(purp)q(ose.)27 b(The)17 b(collectiv)o(e)g(op)q
(ening)f(of)g(the)h(same)e(\014le)i(b)o(y)f(m)o(ultiple)e(pro)q(cesses)19
b(either)e(allo)o(ws)e(them)h(to)75 2647 y(co)q(ordinate)e(allo)q(cation)e
(of)g(disjoin)o(t)h(sub\014les)h(\()p Fj(MPI)p 901 2647 V 14
w(PRIV)m(A)m(TE)d Fk(mo)q(de\),)h(or)i(allo)o(ws)e(them)g(to)i(share)g(use)g
(of)f(a)g(\014le)75 2704 y(p)q(oin)o(ter)h(\()p Fj(MPI)p 311
2704 V 15 w(SHARED)p Fk(\),)f(or)h(allo)o(ws)e(them)h(to)h(access)i(a)d
(sub\014le)i(collectiv)o(ely)m(.)1967 46 y Fr(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 26
bop 75 -100 a Fp(1.8.)34 b(VEST)l(A)16 b(FUNCTIONS)1206 b Ft(25)75
49 y Fm(MPI)p 160 49 14 2 v 16 w(PFS)p 256 49 V 16 w(REOPEN\()17
b(action,)e(p)q(osition,)h(mo)q(de,)c(concurrency)l(,)k(pa)o(rtpa)o(rams,)c
(comm)m(\))117 126 y Fk(IN)155 b Fm(action)472 b Fk(one)14
b(of)f Fj(MPI)p 1105 126 13 2 v 14 w(READ,)g(MPI)p 1329 126
V 14 w(WRITE)p Fk(,)f(or)i Fj(MPI)p 1624 126 V 14 w(READ)o(WRITE)905
183 y Fk(\(state\))117 257 y(IN)155 b Fm(p)q(osition)439 b
Fk(one)18 b(of)f Fj(MPI)p 1113 257 V 14 w(ASIS)g Fk(\(curren)o(t)i(p)q
(osition\))e(or)g Fj(MPI)p 1701 257 V 14 w(REWIND)905 313 y
Fk(\(start)e(of)e(\014le\))h(\(state\))117 387 y(IN)155 b Fm(mo)q(de)481
b Fk(one)10 b(of)e Fj(MPI)p 1096 387 V 15 w(PRIV)m(A)m(TE,)e(MPI)p
1373 387 V 14 w(SHARED)j Fk(or)g Fj(MPI)p 1679 387 V 15 w(COLLECTIVE)905
443 y Fk(\(state\))117 517 y(IN)155 b Fm(metho)q(d)442 b Fk(one)14
b(of)g Fj(MPI)p 1106 517 V 14 w(UNI)f Fk(or)h Fj(MPI)p 1329
517 V 14 w(MUL)m(TI)g Fk(\(state\))117 591 y(IN)155 b Fm(concurrency)362
b Fk(one)10 b(of)e Fj(MPI)p 1096 591 V 15 w(EX)o(CLUSIVE)f
Fk(or)i Fj(MPI)p 1457 591 V 14 w(CONCURRENT)f Fk(\(state\))117
664 y(IN)155 b Fm(pa)o(rtpa)o(rams)373 b Fk(arra)o(y)18 b(describing)g
(partition)f(parameters)g(\(arra)o(y)h(of)f(in)o(te-)905 721
y(ger\))117 794 y(INOUT)62 b Fm(comm)466 b Fk(comm)o(unicator)11
b(of)j(group)f(that)h(op)q(ens)h(the)f(\014le)g(\(handle\))75
919 y Fh(int)47 b(MPI)p 269 919 15 2 v 17 w(Pfs)p 358 919 V
17 w(reopen\()23 b(MPI)p 638 919 V 17 w(IO)g(action,)g(MPI)p
989 919 V 17 w(IO)g(position,)g(MPI)p 1388 919 V 17 w(IO)g(mode,)393
975 y(MPI)p 468 975 V 17 w(IO)h(method,)e(MPI)p 819 975 V 17
w(IO)i(concurrency,)e(int)h(*partparams,)393 1032 y(MPI)p 468
1032 V 17 w(Comm)g(comm\))75 1118 y(MPI)p 150 1118 V 17 w(PFS)p
239 1118 V 17 w(REOPEN\()f(ACTION,)h(POSITION,)g(MODE,)g(METHOD,)g
(CONCURRENCY,)f(PARTPARAMS,)393 1175 y(COMM,)h(IERROR\))170
1231 y(INTEGER)g(ACTION,)g(POSITION,)g(MODE,)g(METHOD,)g(CONCURRENCY,)f
(PARTPARAMS\(*\),)170 1288 y(COMM,)i(IERROR)166 1374 y Ft(Reop)q(ens)15
b(an)f(already)g(op)q(ened)h(\014le,)g(p)q(ossibly)h(c)o(hanging)e(the)g
(partition)h(parameters)e(and)h(access)75 1430 y(mo)q(de.)20
b(This)c(op)q(eration)f(is)h(equiv)m(alen)o(t)h(to)d(closing)j(and)e(op)q
(ening)h(anew)g(a)e(\014le,)i(but)g(it)f(allo)o(ws)g(one)h(to)75
1487 y(preserv)o(e)d(the)h(use)f(of)g(the)g(same)g(comm)o(unicator)g(and)h(a)
o(v)o(oids)f(sp)q(ecifying)i(anew)e(the)g(parameters)g(that)75
1543 y(do)f(not)h(c)o(hange)f(\(\014le)i(name,)e(status,)g(\014le)i
(parameters\).)k(The)12 b Fm(p)q(osition)i Ft(parameter)e(is)h(signi\014can)o
(t)g(only)75 1600 y(if)j(the)g(\014le)h(is)f(reop)q(ened)h(with)f(the)g(same)
g(partition)g(parameters,)e(in)j(whic)o(h)g(case)e(the)h(\014le)h(p)q(oin)o
(ter\(s\))75 1656 y(is)e(\(are\))e(rep)q(ositioned)j(as)e(indicated)i(b)o(y)e
(this)h(parameter;)e(if)i(the)f(\014le)i(is)f(repartitioned)g(or)e(the)i
(access)75 1713 y(mo)q(de)e(is)h(c)o(hanged)f(from)f Fj(MPI)p
594 1713 13 2 v 14 w(PRIV)m(A)m(TE)e Ft(to)j Fj(MPI)p 916 1713
V 14 w(SHARED)f Ft(or)h Fj(MPI)p 1233 1713 V 14 w(COLLECTIVE)p
Ft(,)e(or)h(vice)i(v)o(ersa,)f(then)75 1769 y(the)20 b(\014le)h(p)q(oin)o
(ter\(s\))f(is)g(\(are\))f(p)q(ositioned)i(at)f(the)g(b)q(eginning)i(of)d
(the)h(sub\014le\(s\),)i(and)e(the)g Fm(p)q(osition)75 1826
y Ft(parameter)14 b(is)i(ignored.)166 1882 y(The)c Fm(MPI)p
341 1882 14 2 v 16 w(GET)p 445 1882 V 16 w(FILE)f Ft(function)i(can)e(b)q(e)i
(used)f(to)f(\014nd)h(whether)g(a)f(comm)o(unicator)g(is)i(attac)o(hed)e(to)
75 1939 y(a)h(V)l(esta)h(\014le)g(and,)g(if)g(so,)g(to)f(\014nd)h(the)g
(\014lename)h(and)e(the)h(v)m(alues)h(of)e(the)h Fm(action,)g(t)o(yp)q(e,)h
(rec)p 1627 1939 V 16 w(size,)f(concur-)75 1995 y(rency)l(,)f(p)q(osition)g
Ft(and)f Fm(mo)q(de)e Ft(argumen)o(ts.)17 b(In)12 b(addition,)g(the)f
(function)h Fm(MPI)p 1366 1995 V 16 w(GET)p 1470 1995 V 17
w(PFS)p 1567 1995 V 16 w(P)l(ARAMETERS)75 2051 y Ft(can)j(b)q(e)h(used)g(to)f
(query)g(on)g(the)g(curren)o(t)g(\014le)i(structure)e(and)g(partitioning.)75
2155 y Fm(MPI)p 160 2155 V 16 w(GET)p 264 2155 V 17 w(PFS)p
361 2155 V 16 w(P)l(ARAMETERS\(comm)o(,)d(\014lepa)o(rams,)g(pa)o(rtpa)o(ram)
o(s\))117 2232 y Fk(IN)155 b Fm(comm)466 b Fk(comm)o(unicator)11
b(attac)o(hed)k(to)f(\014le)f(\(handle\))117 2306 y(OUT)108
b Fm(\014lepa)o(rams)394 b Fk(arra)o(y)14 b(describing)g(\014le)g(structure)i
(\(arra)o(y)e(of)f(in)o(tegers\))117 2380 y(OUT)108 b Fm(pa)o(rtpa)o(rams)373
b Fk(arra)o(y)14 b(describing)h(partitioning)d(parameters)i(\(arra)o(y)g(of)g
(in-)905 2436 y(tegers\))75 2561 y Fh(int)47 b(MPI)p 269 2561
15 2 v 17 w(Get)p 358 2561 V 17 w(pfs)p 447 2561 V 17 w(parameters\()22
b(MPI)p 822 2561 V 17 w(Comm)h(comm,)g(int)h(*fileparams,)393
2617 y(int)g(*partparams\))75 2704 y(MPI)p 150 2704 V 17 w(GET)p
239 2704 V 17 w(PFS)p 328 2704 V 16 w(PARAMETERS\()f(COMM,)g(FILEPARAMS,)f
(PARTPARAMS,)h(IERROR\))-32 46 y Fr(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 27
bop 75 -100 a Ft(26)1387 b Fp(CHAPTER)16 b(1.)34 b(IO)170 49
y Fh(INTEGER)23 b(COMM,)h(FILEPARAMS\(*\),)d(PARTPARAMS\(*\),)h(IERROR)166
136 y Ft(Returns)15 b(the)f(\014le)i(structure)e(parameters)f(and)i(the)f
(partitioning)i(parameters)d(of)h(the)h(V)l(esta)f(\014le)75
192 y(and)20 b(the)g(sub\014le)h(attac)o(hed)e(to)g(the)h(comm)o(unicator.)33
b(The)19 b(call)i(is)f(erroneous)g(if)g(there)g(is)g(no)g(suc)o(h)75
249 y(attac)o(hed)15 b(V)l(esta)g(\014le.)75 370 y Fo(1.8.3)49
b(Access)15 b(to)h(V)o(esta)g(\014les)75 456 y Ft(Once)g(a)f(V)l(esta)f
(\014le)i(is)g(op)q(ened)g(\(or)e(reop)q(ened\),)h(then)h(pro)q(cesses)f(ma)o
(y)f(access)h(the)g(asso)q(ciated)g(sub\014le)75 513 y(using)h(an)o(y)g(of)f
(the)h(MPI-IO)h(commands)e(for)g(\014le)i(access)f(and)g(p)q(ositioning,)h
(as)e(a)h(regular)f(\014le.)23 b(If)16 b(the)75 569 y(\014le)f(w)o(as)e(op)q
(ened)h(as)g(a)f(record)h(\014le)h(\()p Fm(t)o(yp)q(e)f Ft(=)g
Fj(MPI)p 925 569 13 2 v 14 w(FIXED)p Ft(\))e(then)i(the)g(sub\014le)h(is)g
(treated)e(as)g(a)h(\014xed)g(size)75 626 y(record)i(\014le:)23
b(eac)o(h)16 b(V)l(esta)g(record)g(is)h(a)f(\014le)h(record,)f(and)g(the)g
(records)g(are)g(ordered)g(in)h(the)g(canonical)75 682 y(order)g(describ)q
(ed)i(ab)q(o)o(v)o(e.)26 b(If)18 b(the)f(\014le)h(w)o(as)f(op)q(ened)h(as)f
(a)g(stream)g(\014le)h(\()p Fm(t)o(yp)q(e)g Ft(=)f Fj(MPI)p
1572 682 V 15 w(STREAM)p Ft(\))g(then)75 738 y(the)f(sub\014le)i(is)f
(treated)f(as)g(a)g(sequence)h(of)f(b)o(ytes)g({)g(the)h(sequence)g(obtained)
g(b)o(y)f(concatenating)h(the)75 795 y(comp)q(onen)o(t)e(records)g(in)h
(canonical)g(order.)k(With)15 b(this)h(in)o(terpretation,)f(all)h(MPI-IO)f
(\014le)i(access)e(and)75 851 y(p)q(ositioning)i(functions)f(w)o(ork)e(as)h
(on)g(a)g(regular)g(\014le,)h(with)g(few)f(c)o(hanges.)166
908 y(The)g(main)h(discrepancy)g(is)g(that)e(a)h(V)l(esta)f(sub\014le)j(do)q
(es)e(not)g(ha)o(v)o(e)g(an)g(end-of-\014le)h(mark.)j(Th)o(us,)75
964 y(one)f(cannot)f(execute)h(a)f(call)h(to)f Fm(MPI)p 745
964 14 2 v 16 w(SEEK)p Ft(,)g(with)h Fm(whence)h(=)e(MPI)p
1298 964 V 16 w(END)p Ft(,)g(nor)g(can)h(one)f(execute)h(a)75
1021 y(call)e(to)f Fm(MPI)p 299 1021 V 16 w(ENDFILE)p Ft(.)166
1160 y Fl(Discussion:)41 b Fk(Do)15 b(w)o(e)h(really)f(need)h(this)g
(discrepancy?)25 b(W)m(ould)14 b(it)h(mak)o(e)f(sense)k(for)d(MPI-IO)h(to)f
(k)o(eep)75 1216 y(its)f(o)o(wn)f(end-of-\014le)h(mark)o(er?)166
1355 y Ft(It)20 b(is)h(erroneous)f(to)f(read-access)i(a)e(V)l(esta)h(record)g
(that)g(w)o(as)f(nev)o(er)h(previously)i(written.)34 b(In)75
1412 y(the)16 b(curren)o(t)f(implemen)o(tation,)i(suc)o(h)f(access)g(will)h
(either)f(return)g(zero)g(b)o(ytes)f(or)g(an)h(all-zero)g(record.)75
1468 y(Ho)o(w)o(ev)o(er,)g(the)h(conditions)h(under)g(whic)o(h)g(either)f(o)q
(ccur)h(are)e(somewhat)g(complex;)j(the)e(outcome)f(of)75 1525
y(suc)o(h)g(an)f(access)g(ma)o(y)f(b)q(e)i(a\013ected)f(b)o(y)g(accesses)h
(to)e(other)h(disjoin)o(t)h(sub\014les.)1967 46 y Fr(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 28
bop 75 381 a Fv(Bibliograph)m(y)75 604 y Ft([1])22 b(W.)11
b(S.)h(Brainerd,)h(C.)f(H.)g(Goldb)q(ergs,)g(and)h(Jeanne)g(C.)e(Adams.)k
Fs(Pr)n(o)n(gr)n(ammers)e(Guide)h(to)g(F)m(ortr)n(an)146 660
y(90)p Ft(.)20 b(McGra)o(w-Hill,)15 b(New)h(York,)e(1990.)75
754 y([2])22 b(P)o(eter)12 b(F.)g(Corb)q(ett,)h(Sandra)g(Johnson)g(Ba)o
(ylor,)g(and)g(Dror)f(G.)g(F)l(eitelson.)17 b(Ov)o(erview)d(of)e(the)h(V)l
(esta)146 811 y(parallel)h(\014le)h(system.)h(In)e Fs(Pr)n(o)n(c.)g(IPPS)f
('93)i(Workshop)g(on)f(I/O)h(in)f(Par)n(al)r(lel)f(Computer)i(Systems)p
Ft(,)146 867 y(pages)g(1{16,)e(Apr)j(1993.)i(\(Reprin)o(ted)f(in)f
Fs(Comput.)h(A)o(r)n(ch.)e(News)h Fn(21\(5\))p Ft(,)g(pp.)f(7{14,)f(Dec)h
(1993\).)75 961 y([3])22 b(P)o(eter)d(F.)g(Corb)q(ett,)h(Dror)f(G.)g(F)l
(eitelson,)i(Jean-Pierre)g(Prost,)f(and)g(Sandra)f(Johnson)i(Ba)o(ylor.)146
1017 y(P)o(arallel)c(access)g(to)e(\014les)j(in)f(the)f(V)l(esta)g(\014le)i
(system.)k(In)17 b Fs(Sup)n(er)n(c)n(omputing)h('93)p Ft(,)e(pages)g
(472{481,)146 1074 y(No)o(v)e(1993.)75 1168 y([4])22 b(Message)15
b(P)o(assing)g(In)o(terface)g(F)l(orum.)21 b(Do)q(cumen)o(t)15
b(for)g(a)g(standard)g(message-passing)h(in)o(terface.)146
1224 y(T)l(ec)o(hnical)h(Rep)q(ort)e(CS-93-214,)f(Univ)o(ersit)o(y)i(of)f(T)l
(ennessee,)h(No)o(v)o(em)o(b)q(er)e(1993.)75 1318 y([5])22
b(C.)13 b(H.)g(Ko)q(elb)q(el,)j(D.)d(B.)g(Lo)o(v)o(eman,)g(R.)h(S.)f(Sc)o
(hrieb)q(er,)i(G.)e(L.)h(Steele,)h(and)e(M.)g(E.)g(Zosel.)18
b Fs(The)c(High)146 1374 y(Performanc)n(e)i(F)m(ortr)n(an)f(Handb)n(o)n(ok)p
Ft(.)k(The)d(MIT)f(Press,)g(1994.)75 1468 y([6])22 b(P)o(arasoft)9
b(Corp)q(oration.)14 b Fs(Expr)n(ess)e(V)m(ersion)f(1.0:)20
b(A)12 b(Communic)n(ation)h(Envir)n(onment)f(for)h(Par)n(al)r(lel)146
1525 y(Computers)p Ft(,)i(1988.)75 1618 y([7])22 b(Jean-Pierre)e(Prost.)29
b Fs(Par)n(al)r(lel)18 b(File)h(System)g(External)f(User)h(Interfac)n(e)g(Pr)
n(op)n(osal)g(V1.2)p Ft(.)30 b(IBM)146 1675 y(TJWR)o(C,)14
b(Decem)o(b)q(er)i(1993.)-32 46 y Fr(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
%%Trailer
end
userdict /end-hook known{end-hook}if
%%EOF