CPM: A software tool for Communication Performance Modelling

Communication performance models

This module provide the following models:

For each model, this module provides the following interface (X stands for the name of the model: Hockney, PLogP or LMO):

  • struct X_model {
        CPM_predictor predictor;
        ... // parameters
    }
    
    is a data structure containing the parameters of the model and a set of the estimation functions defined by CPM_predictor.
  • X_model* X_alloc(int);
    void X_free(X_model*);
    
    are functions to allocate/free the model data.
  • void X_estimate(MPI_Comm, MPIB_msgset, MPIB_precision, int parallel, X_model**);
    
    is a function responsible for estimation of the model with given precision and message sizes. If the parallel argument is set to zero, the communication experiments will be performed consequently, otherwise in parallel.
  • void X_read(FILE*, X_model**);
    void X_write(FILE*, const X_model*);
    
    are functions for input/output of the model data.

This interface can be used directly in parallel applications. It is also a basis for optimized implementations of MPI collective communication operations (see Model-based collectives).