USF Home
Administrators
Hardware Status





Search this site
 

USF: MPI Tutorial Contents

Table of Contents


1.0 Introduction to MPI
  1.1 What is MPI?
  1.2 Who is MPI for?
  1.3 Compiling and running MPI programs
2.0 Semantic Terms
  2.1 Message Passing Paradigm
  2.2 Sending and Receiving
  2.3 Communicators and Groups
3.0 Getting Started
4.0 Point-to-Point Communication
5.0 Blocking Send/Receive Operations
    5.0.1 Standard Send and Receive
    5.0.2 Buffered Send
    5.0.3 Synchronous Send
    5.0.4 Synchronous Send and Receive
    5.0.5 Ready Send
6.0 Non-Blocking Send/Receive Operations
    6.0.1 Standard Send and Receive
    6.0.2 Buffered Send
    6.0.3 Synchronous Send
    6.0.4 Ready Send
  6.1 Waiting and Testing
    6.1.1 MPI_Wait
    6.1.2 MPI_Waitany
    6.1.3 MPI_Waitsome
    6.1.4 MPI_Waitall
    6.1.5 MPI_Test
    6.1.6 MPI_Testany
    6.1.7 MPI_Testsome
    6.1.8 MPI_Testall
7.0 Derived Datatypes
    7.0.1 MPI_Datatype_contiguous
    7.0.2 MPI_Type_vector
    7.0.3 MPI_Type_hvector
    7.0.4 MPI_Type_indexed
    7.0.5 MPI_Type_hindexed
    7.0.6 MPI_Type_struct
    7.0.7 MPI_Type_extent
    7.0.8 MPI_Type_commit
8.0 Collective Communication
  8.1 Types of collective communication
  8.2 Barrier Synchronization
    8.2.1 MPI_Barrier
  8.3 Data Movement (or Global Communication)
    8.3.1 MPI_Bcast
    8.3.2 MPI_Scatter
    8.3.3 MPI_Gather
    8.3.4 MPI_Allgather
  8.4 Collective Operations (or Global Reduction)
    8.4.1 MPI_Reduce
    8.4.2 MPI_Allreduce
    8.4.3 MPI_Reduce_scatter
    8.4.4 MPI_Scan
  8.5 User defined operations for MPI_Reduce and MPI_Scan
    8.5.1 MPI_Op_create
    8.5.2 MPI_Op_free
9.0 Communicators and Groups
  9.1 Group Accessors
    9.1.1 MPI_Group_size
    9.1.2 MPI_Group_rank
    9.1.3 MPI_Group_translate_ranks
    9.1.4 MPI_Group_compare
  9.2 Group Constructors
    9.2.1 MPI_Comm_group
    9.2.2 MPI_Group_union
    9.2.3 MPI_Group_intersection
    9.2.4 MPI_Group_difference
    9.2.5 MPI_Group_incl
    9.2.6 MPI_Group_excl
    9.2.7 MPI_Group_range_incl
    9.2.8 MPI_Group_range_excl
  9.3 Group Deconstructors
    9.3.1 MPI_Comm_group
  9.4 Communicator Accessors
    9.4.1 MPI_Comm_size
    9.4.2 MPI_Comm_rank
    9.4.3 MPI_Comm_compare
  9.5 Communicator Constructors
    9.5.1 MPI_Comm_dup
    9.5.2 MPI_Comm_create
    9.5.3 MPI_Comm_split
  9.6 Communicator Destructors
    9.6.1 MPI_Comm_free
10.0 Process Topologies
  10.1 Virtual Topologies
  10.2 Topology Constructors
    10.2.1 Cartesian Constructor
    10.2.2 Cartesian Convenience - MPI_Dims_create
    10.2.3 Graph Constructor
  10.3 Topology Inquiry Calls
    10.3.1 MPI_Topo_test
    10.3.2 MPI_Graphdims_get
    10.3.3 MPI_Graph_get
    10.3.4 MPI_Cartdim_get
    10.3.5 MPI_Cart_get
    10.3.6 MPI_Cart_rank
    10.3.7 MPI_Cart_coords
    10.3.8 MPI_Graph_neighbors_count
    10.3.9 MPI_Graph_neighbors
  10.4 Cartesian Shifting
    10.4.1 MPI_Cart_shift
  10.5 Partitioning Cartesian Calls
    10.5.1 MPI_Cart_sub
  10.6 Low-level topology functions
    10.6.1 MPI_Cart_map
    10.6.2 MPI_Graph_map