refactor MPI library info query so it can be added to -help flag output
This commit is contained in:
33
src/info.cpp
33
src/info.cpp
@ -355,19 +355,7 @@ void Info::command(int narg, char **arg)
|
|||||||
|
|
||||||
if (flags & COMM) {
|
if (flags & COMM) {
|
||||||
int major,minor,len;
|
int major,minor,len;
|
||||||
#if (defined(MPI_VERSION) && (MPI_VERSION > 2)) || defined(MPI_STUBS)
|
const char *version = get_mpi_info(major,minor);
|
||||||
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';
|
|
||||||
}
|
|
||||||
|
|
||||||
fprintf(out,"\nCommunication information:\n");
|
fprintf(out,"\nCommunication information:\n");
|
||||||
fprintf(out,"MPI library level: MPI v%d.%d\n",major,minor);
|
fprintf(out,"MPI library level: MPI v%d.%d\n",major,minor);
|
||||||
@ -1209,6 +1197,25 @@ const char *Info::get_openmp_info()
|
|||||||
#endif
|
#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()
|
const char *Info::get_cxx_info()
|
||||||
{
|
{
|
||||||
#if __cplusplus > 201703L
|
#if __cplusplus > 201703L
|
||||||
|
|||||||
@ -43,6 +43,7 @@ class Info : protected Pointers {
|
|||||||
static char *get_os_info();
|
static char *get_os_info();
|
||||||
static char *get_compiler_info();
|
static char *get_compiler_info();
|
||||||
static const char *get_openmp_info();
|
static const char *get_openmp_info();
|
||||||
|
static const char *get_mpi_info(int &, int &);
|
||||||
static const char *get_cxx_info();
|
static const char *get_cxx_info();
|
||||||
|
|
||||||
char **get_variable_names(int &num);
|
char **get_variable_names(int &num);
|
||||||
|
|||||||
@ -1271,14 +1271,18 @@ void LAMMPS::print_config(FILE *fp)
|
|||||||
const char *pkg;
|
const char *pkg;
|
||||||
int ncword, ncline = 0;
|
int ncword, ncline = 0;
|
||||||
|
|
||||||
char *infobuf = Info::get_os_info();
|
const char *infobuf = Info::get_os_info();
|
||||||
fprintf(fp,"OS: %s\n\n",infobuf);
|
fprintf(fp,"OS: %s\n\n",infobuf);
|
||||||
delete[] infobuf;
|
delete[] infobuf;
|
||||||
|
|
||||||
infobuf = Info::get_compiler_info();
|
infobuf = Info::get_compiler_info();
|
||||||
fprintf(fp,"Compiler: %s with %s\n",infobuf,Info::get_openmp_info());
|
fprintf(fp,"Compiler: %s with %s\n",infobuf,Info::get_openmp_info());
|
||||||
delete[] infobuf;
|
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);
|
fputs("Active compile time flags:\n\n",fp);
|
||||||
if (Info::has_gzip_support()) fputs("-DLAMMPS_GZIP\n",fp);
|
if (Info::has_gzip_support()) fputs("-DLAMMPS_GZIP\n",fp);
|
||||||
|
|||||||
Reference in New Issue
Block a user