Skip to content

wkliao/mpi-io-examples

Repository files navigation

A collection of MPI-IO example programs

List of example programs

  • mpi_file_open.c
    • Calls MPI_File_open function to create a new file.
    • Calls MPI_File_open function to open an existing file.
  • mpi_file_set_view.c
    • Set the visible file region to each process.
  • print_mpi_io_hints.c
    • Prints out all default MPI I/O hints.
  • mpi_tag_ub.c
    • Obtains the value of attribute MPI_TAG_UB attached to communicator MPI_COMM_WORLD. MPI_TAG_UB is the upper bound for tag value.
  • fileview_subarray.c
    • Uses MPI_Type_create_subarray() to create an MPI derived data type of a 2D subarray to a 2D global array, which is then used in the call to MPI_File_set_view().
  • ghost_cell.c
    • Writes a 2D local array with ghost cells to a global array in a file. Ghost cells are the elements in the local array that are not written to the file. This example shows how to define an MPI derived data type to describe a 2D subarray with ghost cells used it in I/O.
  • indexed_fsize.c
    • Uses a file datatype constructed from multiple subarray datatypes concatenated by MPI_Type_indexed(). Each variable is partitioned among processes in a 2D block-block fashion. At the end, it checks the file size whether or not it is expected.
  • hindexed_fsize.c
    • Uses a file datatype constructed from multiple subarray datatypes concatenated by MPI_Type_create_hindexed(). Each variable is partitioned among processes in a 2D block-block fashion. At the end, it checks the file size whether or not it is expected.
  • struct_fsize.c
    • Similar to indexed_fsize.c, but using MPI_Type_create_struct() to concatenate multiple subarray datatypes.
  • nvars.c
    • Makes a single call to collective write and read by using a fileview of concatenating multiple subarrays of variables stored in the file and each variable is partitioned among processes in a 2D block-block fashion.
  • column-wise.c
    • Uses a 2D column-wise data partitioning pattern to set a file view.

To compile

  • Modify file Makefile if necessary to change the path of MPI C compiler.
  • Run command make [name of example program]

Useful links to learn MPI

Current build status

  • Github Actions: MPICH OpenMPI

Questions/Comments:

email: wkliao@eecs.northwestern.edu

Copyright (C) 2019, Northwestern University.

See COPYRIGHT notice in top-level directory.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published