Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch … · 2006. 5. 24. · Fig. 00....

34
Fig. 00. Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch Peripheral Systems Laboratory Ecole Polytechnique Fédérale de Lausanne Switzerland Introduction SFIO (S triped F ile I /O ) SFIO interface Performance measurements Integration into MPI-II I/O Conclusion software architecture

Transcript of Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch … · 2006. 5. 24. · Fig. 00....

Page 1: Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch … · 2006. 5. 24. · Fig. 00. Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch Peripheral Systems Laboratory

Fig. 00.

Parallel I/O for SwissTxEmin Gabrielyan

Prof. Roger D. HerschPeripheral Systems Laboratory

Ecole Polytechnique Fédérale de LausanneSwitzerland

Introduction

SFIO (Striped File I/O)

SFIO interface

Performance measurements

Integration into MPI-II I/O

Conclusion

software architecture

Page 2: Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch … · 2006. 5. 24. · Fig. 00. Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch Peripheral Systems Laboratory

Fig. 01.

Parallel I/O for Swiss-Tx (Introduction)

Requirements for Parallel I/O

Striped Files Parallel Access Solution

Interface

Network Communication andDisk Access optimisation

Page 3: Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch … · 2006. 5. 24. · Fig. 00. Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch Peripheral Systems Laboratory

Fig. 02. We are trying to be close to the linear dependance of throughput from the

number of I/O devices. The upper limit of throughput can be the controller(s)/bus bandwidth or the TOTAL network bandwidth.

Requirements to Parallel I/O System

Scalable Throughput

Concurent Access

Computer

Application

Con

trolle

r(s)

Bus

I/O N

ode

I/O N

ode

I/O N

ode

I/O N

ode

Compute Node

Compute Node

Compute Node

Compute Node

Page 4: Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch … · 2006. 5. 24. · Fig. 00. Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch Peripheral Systems Laboratory

Fig. 03. The basic idea of our implementation is cyclical distribution of logical file

accross the set of striped files. Access to single part of logical file require parallel access to set of striped files.

Striped Files Parallel Access Solution

9876

5432Striped File 1

Global Logica

l File

Stripe U

nit

Page 5: Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch … · 2006. 5. 24. · Fig. 00. Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch Peripheral Systems Laboratory

Fig. 04. The native interface is SFIO, but we work to provide also MPI-II I/O inter-

face.

Interface

SFIO

MPI-II I/O

MFILE* mopen(char *s, int unitsz); // “t0-p1,/tmp/a;t0-p2,/tmp/a”void mclose(MFILE *f);void mchsize(MFILE *f, long size);void mdelete(char *s);void mcreate(char *s);void mread(MFILE *f, long offset, char *buf, unsigned count);void mwrite(MFILE *f, long offset, char *buf, unsigned count);void mreadb(MFILE *f, unsigned bcount,

long Offset[], char *Buf[], unsigned Count[]);void mwriteb(MFILE *f, unsigned bcount,

long Offset[], char *Buf[], unsigned Count[]);

MPI_File_openMPI_File_set_viewMPI_File_writeMPI_File_readMPI_File_write_atMPI_File_read_at

MPI_File_write_allMPI_File_read_allMPI_File_write_at_allMPI_File_read_at_allMPI_File_closeMPI_File_delete

Page 6: Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch … · 2006. 5. 24. · Fig. 00. Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch Peripheral Systems Laboratory

Fog. 05.

Network and Disk Optimisation

Network optimisation for noncollective access

Disk optimisation for noncollective access

Collective access optimisation

Page 7: Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch … · 2006. 5. 24. · Fig. 00. Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch Peripheral Systems Laboratory

Pg. 06. Fragmented data optimisation for communication

Use

rBlo

ck1

Use

rBlo

ck2

Merged Data

Logi

cal F

ile

Striped Files

Zero Derived

TransmissionCopy

Data

Network Transmission Optimisation

Page 8: Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch … · 2006. 5. 24. · Fig. 00. Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch Peripheral Systems Laboratory

Fig. 07. Data fragmentation is resolved for network communication

Fig. 08. Data fragmentation still exist at disk access

Disk Access Optimisation

User Block 2 User Block 2

The images of user blocks 1 and 2 of the globallogical file in the local file of specifyed I/O node

Singe large MPI transmission

Temporary Derived Datatype

I/O Nodeside

ComputeNode side

And here is place tooptimise. It is possibleto make two local I/Ooperations in place of 7

Location 1 Length 1Location 2 Length 2Location 3 Length 3Location 4 Length 4Location 5 Length 5Location 6 Length 6Location 7 Length 7

Com

pute

Nod

e

I/O N

ode

Page 9: Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch … · 2006. 5. 24. · Fig. 00. Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch Peripheral Systems Laboratory

Fig. 09. Data fragmentation is resolved on disk level also

Com

pute Node

I/O N

ode

compute nodeside optimization

Location 1 Length 1

MPI transmission

Temporary Derived Datatype

I/O Node side

ComputeNode side

Two local I/Ooprations in place of 7

Location 2 Length 2Location 3 Length 3Location 4 Length 4Location 5 Length 5Location 6 Length 6Location 7 Length 7

Location 1 Length 1Location 2 Length 2

Disk Access Optimisation

Page 10: Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch … · 2006. 5. 24. · Fig. 00. Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch Peripheral Systems Laboratory

Fig. 10. Disk Access Optiisation of Collective Operations

waiting for all data,sorting and gathering

Logical File

Loca

l Dis

k

Proc1

Proc2

Proc3

Proc4

and then writing or reading

Disk Access Optimisationof Collective Operations

Page 11: Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch … · 2006. 5. 24. · Fig. 00. Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch Peripheral Systems Laboratory

Fig. 11. Another example when disk access optimisation is required at collective

operations. Here each compute node tryes to access some part of logical file, but in the picture is shown the translation of this part to the view of some specifyed striped file. For each of compute node the striped file is same.

Compute Node 1 Compute Node 2

Compute Node 3

Data related toSpecifyed striped file Data related to

Specifyed striped file

Data related toSpecifyed striped file

Disk Access Optimisationof Collective Operations

The data to be accessed by all of compute nodes in the

specified striped file

Page 12: Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch … · 2006. 5. 24. · Fig. 00. Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch Peripheral Systems Laboratory

Fig. 12.

SFIO Software Architecture

Encapsulation over MPI

Functionality

Data organisation and optimisation

Page 13: Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch … · 2006. 5. 24. · Fig. 00. Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch Peripheral Systems Laboratory

Fig. 13. Encapsulation over MPI

P

P

PP P

P

P

P

P

MPI_COMM_WORLD

I/OListeners

Comp.Proc.

NO

DE3

NO

DE2

NO

DE1

Page 14: Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch … · 2006. 5. 24. · Fig. 00. Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch Peripheral Systems Laboratory

Fig. 14. Functionality. SFIO is implemented and tested with Digital Unix

(MPICH, FCI) and Intel Windos NT (MPICH).

MPI-I/O Interface

Modified ADIO

Sockets

Ethernet

TCP/IP

MPICHMPI-FCI

TNet

SFIO

Page 15: Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch … · 2006. 5. 24. · Fig. 00. Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch Peripheral Systems Laboratory

Fig. 15. Functionality, data organisation and optimisation

mread

mwrite mreadc mwritecmreadb mwriteb

mrw

sfp_writecsfp_readc

sfp_write

sfp_read sfp_rdwrc

sfp_writebsfp_readb

SFP_CMD_WRITE

SFP_CMD_READ

SFP_CMD_BREAD

SFP_CMD_BWRITE

sfp_rflush sfp_wflush

cyclicdistribution

requestscaching

MPIMPI

MPI MPI

flushcachesortcache

mkbset

bkmerge

Com

pute

Nod

e

I/O N

ode

Page 16: Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch … · 2006. 5. 24. · Fig. 00. Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch Peripheral Systems Laboratory

Fig. 16.

SFIO Interface

Single Block Access Interface

Multiple Block Access Interface

Page 17: Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch … · 2006. 5. 24. · Fig. 00. Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch Peripheral Systems Laboratory

Fig. 17. If there is one compute node

Single Block Access Interface

#include "/usr/p5/gabriely/mpi/lib/mio.h"

int _main(int argc, char *argv[]){

char buf[]="ABCDEFGHIJKLMNOPQRSTUVWXYZ";MFILE *f;

f=mopen( "t0-p1.epfl.ch,/tmp/aa;t0-p2.epfl.ch,/tmp/aa" , 10 );

mwrite( f , 0 , buf , 26 );

mclose(f);return 0;

}

Offset in Logical File

Names of Striped Files

Stripe Unit Size

Page 18: Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch … · 2006. 5. 24. · Fig. 00. Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch Peripheral Systems Laboratory

Fig. 18. If there are more than one compute nodes

Single Block Access Interface

#include "/usr/p5/gabriely/mpi/lib/mio.h"int _main(int argc, char *argv[]){

char buf[]="abcdefghijklmnopqrstuvwxyz";MFILE *f;int rank;MPI_Comm_rank(_MPI_COMM_WORLD,&rank);

f=mopen( "t0-p1.epfl.ch,/tmp/aa;t0-p2.epfl.ch,/tmp/aa" , 10 );

mwrite(f, rank*26 , buf , 26 );

mclose(f);printf("rank=%d\n",rank);return 0;

}

Offset in Logical File Names of Striped Files

Stripe Unit SizeBuffer

Buffer Size

more than one compute processes

Page 19: Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch … · 2006. 5. 24. · Fig. 00. Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch Peripheral Systems Laboratory

Fig. 19.

Multiple Block Access Interface

#include "/usr/p5/gabriely/mpi/lib/mio.h"int _main(int argc, char *argv[]){

char buf1[]="abcdefghijklmnopqrstuvwxyz";char buf2[]="ABCDEFGHIJKLMNOPQRSTUVWXYZ";char buf3[]="0123456789";char* Buf[]={buf1,buf2,buf3};long Offset[]={0,26,52};unsigned Count[]={26,26,10};MFILE *f;

f=mopen("t0-p1.epfl.ch,/tmp/aa;t0-p2.epfl.ch,/tmp/aa",10);

mwriteb(f, 3 ,Offset,Buf,Count);

mclose(f);return 0;

}

Number of Blocks

Page 20: Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch … · 2006. 5. 24. · Fig. 00. Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch Peripheral Systems Laboratory

Fig. 20.

Performance Measurements

Data Access Performance on Windows NT cluster (4 I/O nodes). Effect of Optimisation

Data Access Performance on Swiss-Tx SFIO over MPICH with 100Mbps ethernet HUB (7 I/O nodes). Effect of Optimisation

Data Access throughput dependance from stripe unit size (susz) and user block size (bksz) on Win-dows NT cluster (4 I/O nodes)

Data Access throughput dependance from stripe unit size (susz) and user block size (bksz) on Swiss-Tx SFIO over MPICH with 100Mbps ether-net HUB (7 I/O nodes).

Performance measurements on Swiss-Tx SFIO over MPICH with GigaEthernet Switch (4 I/O nodes) for different number of concurently read-ing/writing compute processes.

Performance measurements on Swiss-Tx SFIO over MPI-FCI with TNET Crossbar Switch (4 I/O nodes). Effect of Optimisation

Page 21: Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch … · 2006. 5. 24. · Fig. 00. Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch Peripheral Systems Laboratory

Fig. 21. Multiblock interface (WinNT)

-1

0

1

2

3

4

5

6

7

0 50000 100000 150000 200000 250000 300000

User block size (bytes)

I/O s

peed

(Mby

te/s

ec)

multiblock multiunit simple

Page 22: Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch … · 2006. 5. 24. · Fig. 00. Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch Peripheral Systems Laboratory

Fig. 22. Multiblock user interface (Sw-tx, stripe unit = 1005 bytes)

0

1

2

3

4

5

6

7

8

9

10

0 20000 40000 60000 80000 100000 120000 140000 160000 180000 200000

User block size (bytes)

I/O s

peed

(Mby

te/s

ec)

mwriteb mwrite

Page 23: Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch … · 2006. 5. 24. · Fig. 00. Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch Peripheral Systems Laboratory

400 1600 28

00 4000 52

00 6400 76

00

400

120020

002800360044005200600068007600

0

1

2

3

4

5

6

7

Fig. 23.wnt

bkszsusz

Page 24: Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch … · 2006. 5. 24. · Fig. 00. Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch Peripheral Systems Laboratory

500 15

00 2500 35

00 4500 55

00 6500

1000200030004000500060007000

0

1

2

3

4

5

6

7

8

9

Fig. 24.Swiss-Tx

100Mbps MPICH10MB data,

average of 11 measur.

speed (mbyte/s)

User blocksize (bytes)

Stripe unitsize (bytes)

Page 25: Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch … · 2006. 5. 24. · Fig. 00. Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch Peripheral Systems Laboratory

Fig. 25. mwrite 4 I/O nodes Swiss-tx Gigabit ethernet Crossbar switch

0

2

4

6

8

10

12

14

16

18

1 2 3 4

Number of compute nodes performing I/O access

I/O th

roug

hput

per

com

pute

nod

e (M

byte

/sec

)

Page 26: Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch … · 2006. 5. 24. · Fig. 00. Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch Peripheral Systems Laboratory

50

100

200

500

1000

2000

5000

1000

0

2000

0

5000

0

0

5

10

15

20

25

30

write speed (MB/s)

stripe unit size (bytes)

Fig. 26. TNET 3 I/O nodes 1 compute node 660Mbyte

mwritemwritec

Page 27: Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch … · 2006. 5. 24. · Fig. 00. Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch Peripheral Systems Laboratory

Fig. 27.

Sockets

Ethernet

TCP/IP

MPICHMPI-FCI

TNet

SFIO

Portable MPI Model ImplementationBill Gropp, Rusty Lusk,

Debbie Swider, Rajeev ThakurArgonne National Laboratory

Integration into MPI-II I/O

Page 28: Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch … · 2006. 5. 24. · Fig. 00. Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch Peripheral Systems Laboratory

Fig. 28.

Positioning

Synchronism

Coo

rdin

atio

n

Positioning

Positioning

Synchronism

Synchronism

Coo

rdin

atio

n

Coo

rdin

atio

n

noncollective

collective

expl

icit

offs

ets

indi

vidu

al fi

le p

oint

ers

shar

ed fi

le p

oint

er

nonblocking

blocking

Synchronism

Synchronism

Page 29: Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch … · 2006. 5. 24. · Fig. 00. Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch Peripheral Systems Laboratory

Fig. 29.

WRITEALLBEGIN

Positioning

Positioning

Synchronism

Synchronism

Coo

rdin

atio

n

Coo

rdin

atio

n

Synchronism

Synchronism

READ

WRITE

READ

WRITE

READSHARED

WRITESHAREDAT

IREADAT

IWRITEAT

IREAD

IWRITE

IREADSHARED

IWRITESHARED

AT

READAT_ALL

WRITEAT_ALL

READALL

WRITEALL

READORDERED

WRITEORDERED

READAT_ALLBEGINWRITE

AT_ALLBEGIN

EN

D

END

EN

DREADALL

BDEGIN EN

D

EN

D

READORDEREDBEGIN

WRITEORDEREDBEGIN E

ND

Page 30: Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch … · 2006. 5. 24. · Fig. 00. Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch Peripheral Systems Laboratory

Fig. 30.

mpich/include/mpio.h

typedef struct ADIOI_FileD *MPI_File;

mpich/romio/adio/include/adio.h

typedef struct ADIOI_FileD *ADIO_File;

mpich/romio/adio/include/adio.h

struct ADIOI_FileD {

int cookie;int fd_sys;

ADIO_Offset fp_ind;ADIO_Offset fp_sys_posn;ADIOI_Fns *fns;MPI_Comm comm;char *filename;int file_system;int access_mode;ADIO_Offset disp;MPI_Datatype etype;MPI_Datatype filetype;int etype_size;MPI_Info info;int async_count;int perm;int atomicity;int iomode;

};

Alternative file descriptor

int fd_sys2;

MFILE *fd_sys3;

Striped file descriptor

We modify MPI_File_open operation

We modify MPI_File_close operation

Page 31: Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch … · 2006. 5. 24. · Fig. 00. Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch Peripheral Systems Laboratory

Fig. 31.

Memory

FileView

File

noncontiguous in memoryas well as in file

Memory

FileView

Filecontiguous in memory,noncontiguous in file

Memory

FileView

File

noncontiguous in memory,contiguous in file

mpich/romio/adio/ad_nfs/ad_nfs_write.c

void ADIOI_NFS_WriteStrided(ADIO_File fd,void *buf, int count, MPI_Datatype datatype,int file_ptr_type, ADIO_Offset offset,ADIO_Status *status, int *error_code)

for (j=0; j<count; j++) for (i=0; i<flat_buf->count; i++) { userbuf_off = j*buftype_extent + flat_buf->indices[i]; req_off = off; req_len = flat_buf->blocklens[i];

lseek(fd->fd_sys2,req_off,SEEK_SET); write(fd->fd_sys2,(char*)buf+userbuf_off,req_len); mwrite(fd->fd_sys3,req_off,(char*)buf+userbuf_off,req_len);

ADIOI_BUFFERED_WRITE_WITHOUT_READ off += flat_buf->blocklens[i]; }

if(fwr_size){ req_off = off; req_len = fwr_size; userbuf_off = i;

lseek(fd->fd_sys2,req_off,SEEK_SET); write(fd->fd_sys2, (char*)buf+userbuf_off,req_len); mwrite(fd->fd_sys3,req_off, (char*)buf+userbuf_off,req_len);

ADIOI_BUFFERED_WRITE}

if(size){ req_off = off; req_len = size; userbuf_off = i;

lseek(fd->fd_sys2,req_off,SEEK_SET); write(fd->fd_sys2,(char*)buf+userbuf_off,req_len); mwrite(fd->fd_sys3,req_off,(char*)buf+userbuf_off,req_len);

ADIOI_BUFFERED_WRITE}

Page 32: Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch … · 2006. 5. 24. · Fig. 00. Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch Peripheral Systems Laboratory

Fig. 32.

Conclusion

This is a cheap way of obtaininghigh performance I/O

Page 33: Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch … · 2006. 5. 24. · Fig. 00. Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch Peripheral Systems Laboratory

Fig. 33.

P1 P2 P3

P4 P5 P6

P7 P8 P9

P1 P2 P3

P4 P5 P6

P7 P8 P9

P1 P2 P3

P4 P5 P6

P7 P8 P9

X

=

MPI

Tra

nsm

ition

MPI

Tra

nsm

ition

V1 V2

V4 V5 V6

V7 V8 V9

V3

V1 V2

V4 V5 V6

V7 V8 V9

V3

V1 V2

V4 V5 V6

V7 V8 V9

V3V1 V2

V4 V5

V7 V8 V9

V3

Data in memory of 9 processes.Each process keep only 1/9-th of matrix

Three files of three matrixes. Files areaccessible by all of processes, but foreach process is visible only spec. part.

P1, P2, ... P9 arethe set of processes

V1, V2, ... V9 arethe set of views, whichspecify for each processwhich part of file isaccessible.

File View forProcess P6

Contiguousin memorynoncontiguousin file View is created using upper bound

MPI_UB datatype.

Page 34: Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch … · 2006. 5. 24. · Fig. 00. Parallel I/O for SwissTx Emin Gabrielyan Prof. Roger D. Hersch Peripheral Systems Laboratory

Fig. 34.

Contiguousin memorynoncontiguousin file

V1 V2

V4 V5 V6

V7 V8 V9

V3

Data in memory of 9 processes.

P1, P2, ... P9 arethe set of processes

V1, V2, ... V9 arethe set of views

View is created using upper bound andlower bound MPI_UB, MPI_LB datatype.

P1 P2 P3

P4 P5 P6

P7 P8 P9

P1 P2 P3

P4 P5 P6

P7 P8 P9

P1 P2 P3

P4 P5 P6

P7 P8 P9

P1 P2 P3

P4 P5 P6

P7 P8 P9

V1 V2

V4 V5 V6

V7 V8 V9

V3

V1 V2

V4 V5 V6

V7 V8 V9

V3

Files are accessible by all of processes, but for

each process is visible only specified by view part.

The view for the

process P6

write uses nonzero offse

t,

to the current view

the position in the file

relative