  Offload of MPI collectives to network devices, e.g., NICs and switches, is
being implemented as an effective mechanism to improve application performance
by reducing inter- and intra-node communication and bypassing MPI software
layers. Given the rich deployment of accelerators and programmable
NICs/switches in data centers, we posit that there is an opportunity to further
improve performance by extending this idea (of in-network collective
processing) to a new class of more complex collectives. The most basic type of
complex collective is the fusion of existing collectives.
  In previous work we have demonstrated the efficacy of this additional
hardware and software support and shown that it can substantially improve the
performance of certain applications. In this work we extend this approach. We
seek to characterize a large number of MPI applications to determine overall
applicability, both breadth and type, and so provide insight for hardware
designers and MPI developers about future offload possibilities.
  Besides increasing the scope of prior surveys to include finding (potential)
new MPI constructs, we also tap into new methods to extend the survey process.
Prior surveys on MPI usage considered lists of applications constructed based
on application developers' knowledge. The approach taken in this paper,
however, is based on an automated mining of a large collection of code sources.
More specifically, the mining is accomplished by GitHub REST APIs. We use a
database management system to store the results and to answer queries. Another
advantage is that this approach provides support for a more complex analysis of
MPI usage, which is accomplished by user queries.
