Next: File Hints
Up: File Views
Previous: The Discussion
- 1
- What is the largest size of
SIZE, for which
MPI_Type_construct_darray is still going to work?
Test it using the program discussed in section 5.3.4.
- 2
- Would it help if we replaced
MPI_INT with
a more elaborate structure that would contain more data?
- 3
- The restriction on the extent of
file_type in
section 5.3.4 does not imply the restriction
on the size of the file. It is only a restriction on the
amount of data that can be written on the file in a single
MPI_File_write operation. But this operation can
be repeated. Rewrite the program discussed in section
5.3.4 in the following way:
- Instead of one array
write_buffer and
read_buffer define
and malloc several, e.g., write_buffer_1,
write_buffer_2, etc., of identical size,
but make sure that you have
enough memory for them all. Aim for not more than
a GB of memory per process.
- Populate the
write_buffer_? arrays with random
integers, using a different random number generator
seed for every process.
- Write them all on the file in multiple
MPI_File_write_all operations, one after another.
Time the whole data transfer and print MB/s obtained
on standard output.
- Read them back from the file on the
read_buffer_?
arrays and compare every entry with the corresponding
entry in the write_buffer_? arrays. Time the
data transfer and print MB/s obtained on standard
output.
- Replace
MPI_DISTRIBUTE_BLOCK with
MPI_DISTRIBUTE_CYCLIC
and compare the data transfer rates.
- Run the program on up to 32 nodes under PBS, generating files up to
16GB long. Remember that half of the 1GB memory per process will have to be reserved
for
read_buffer_?.
Next: File Hints
Up: File Views
Previous: The Discussion
Zdzislaw Meglicki
2004-04-29