Unverified Commit a1e49ece authored by Richard Berger's avatar Richard Berger Committed by GitHub
Browse files

Merge pull request #1806 from akohlmey/mpi-info-in-help

Include MPI version and vendor info in LAMMPS help message
parents 96f75c7b 5e983b89
Loading
Loading
Loading
Loading
+21 −14
Original line number Diff line number Diff line
@@ -354,20 +354,8 @@ void Info::command(int narg, char **arg)
  }

  if (flags & COMM) {
    int major,minor,len;
#if (defined(MPI_VERSION) && (MPI_VERSION > 2)) || defined(MPI_STUBS)
    char version[MPI_MAX_LIBRARY_VERSION_STRING];
    MPI_Get_library_version(version,&len);
#else
    char version[] = "Undetected MPI implementation";
    len = strlen(version);
#endif

    MPI_Get_version(&major,&minor);
    if (len > 80) {
      char *ptr = strchr(version+80,'\n');
      if (ptr) *ptr = '\0';
    }
    int major,minor;
    const char *version = get_mpi_info(major,minor);

    fprintf(out,"\nCommunication information:\n");
    fprintf(out,"MPI library level: MPI v%d.%d\n",major,minor);
@@ -1209,6 +1197,25 @@ const char *Info::get_openmp_info()
#endif
}

const char *Info::get_mpi_info(int &major, int &minor)
{
  int len;
  #if (defined(MPI_VERSION) && (MPI_VERSION > 2)) || defined(MPI_STUBS)
  static char version[MPI_MAX_LIBRARY_VERSION_STRING];
  MPI_Get_library_version(version,&len);
#else
  static char version[] = "Undetected MPI implementation";
  len = strlen(version);
#endif

  MPI_Get_version(&major,&minor);
  if (len > 80) {
    char *ptr = strchr(version+80,'\n');
    if (ptr) *ptr = '\0';
  }
  return version;
}

const char *Info::get_cxx_info()
{
#if __cplusplus > 201703L
+1 −0
Original line number Diff line number Diff line
@@ -43,6 +43,7 @@ class Info : protected Pointers {
  static char *get_os_info();
  static char *get_compiler_info();
  static const char *get_openmp_info();
  static const char *get_mpi_info(int &, int &);
  static const char *get_cxx_info();

  char **get_variable_names(int &num);
+6 −2
Original line number Diff line number Diff line
@@ -1271,14 +1271,18 @@ void LAMMPS::print_config(FILE *fp)
  const char *pkg;
  int ncword, ncline = 0;

  char *infobuf = Info::get_os_info();
  const char *infobuf = Info::get_os_info();
  fprintf(fp,"OS: %s\n\n",infobuf);
  delete[] infobuf;

  infobuf = Info::get_compiler_info();
  fprintf(fp,"Compiler: %s with %s\n",infobuf,Info::get_openmp_info());
  delete[] infobuf;
  fprintf(fp,"C++ standard: %s\n\n",Info::get_cxx_info());
  fprintf(fp,"C++ standard: %s\n",Info::get_cxx_info());

  int major,minor;
  infobuf = Info::get_mpi_info(major,minor);
  fprintf(fp,"MPI v%d.%d: %s\n\n",major,minor,infobuf);

  fputs("Active compile time flags:\n\n",fp);
  if (Info::has_gzip_support()) fputs("-DLAMMPS_GZIP\n",fp);