From 3f689ab1e88538a41e502b25315eecdb91fc4d5a Mon Sep 17 00:00:00 2001 From: "Kurt A. O'Hearn" <ohearnku@msu.edu> Date: Wed, 26 Jul 2017 11:16:06 -0400 Subject: [PATCH] PG-PuReMD: fix compilation issues with GCC. --- PG-PuReMD/configure.ac | 6 +++--- PG-PuReMD/src/ffield.c | 38 ++++++++++++++++++------------------ PG-PuReMD/src/ffield.h | 2 +- PG-PuReMD/src/forces.c | 2 +- PG-PuReMD/src/parallelreax.c | 5 +++++ PG-PuReMD/src/reax_types.h | 3 ++- 6 files changed, 31 insertions(+), 25 deletions(-) diff --git a/PG-PuReMD/configure.ac b/PG-PuReMD/configure.ac index a9eba5fa..6e9f3fb5 100644 --- a/PG-PuReMD/configure.ac +++ b/PG-PuReMD/configure.ac @@ -68,10 +68,10 @@ CFLAGS="$CFLAGS" AC_CHECK_DECL([OPEN_MPI], [mpi_vendor="OpenMPI"], [], [#include "mpi.h"]) # MPICH v2 -AC_CHECK_DECL([MPICH2], [mpi_vendor="MPICH"], +AC_CHECK_DECL([MPICH2], [mpi_vendor="MPICH2"], [], [#include "mpi.h"]) # MPICH v3 -AC_CHECK_DECL([MPICH_VERSION], [mpi_vendor="MPICH"], +AC_CHECK_DECL([MPICH_VERSION], [mpi_vendor="MPICH3"], [], [#include "mpi.h"]) CC="$sav_CC" CFLAGS="$sav_CFLAGS" @@ -86,7 +86,7 @@ then AC_MSG_NOTICE([OpenMPI found]) AC_MSG_NOTICE([MPI_CFLAGS=$MPI_CFLAGS]) AC_MSG_NOTICE([MPI_LIBS=$MPI_LIBS]) -elif test "$mpi_vendor" = "MPICH" +elif test "$mpi_vendor" = "MPICH2" || test "$mpi_vendor" = "MPICH3" then # build MPI_CFLAGS tmp=`$MPICC -compile-info | awk '{$1=""; print $0 }'` diff --git a/PG-PuReMD/src/ffield.c b/PG-PuReMD/src/ffield.c index d985339b..7252674c 100644 --- a/PG-PuReMD/src/ffield.c +++ b/PG-PuReMD/src/ffield.c @@ -30,7 +30,7 @@ #endif -char Read_Force_Field( char *ffield_file, reax_interaction *reax, +int Read_Force_Field( char *ffield_file, reax_interaction *reax, control_params *control ) { FILE *fp; @@ -45,7 +45,7 @@ char Read_Force_Field( char *ffield_file, reax_interaction *reax, /* open force field file */ if ( (fp = fopen( ffield_file, "r" ) ) == NULL ) { - fprintf( stderr, "error opening the force filed file! terminating...\n" ); + fprintf( stderr, "[ERROR] cannot open force filed file! terminating...\n" ); MPI_Abort( MPI_COMM_WORLD, FILE_NOT_FOUND ); } @@ -68,7 +68,7 @@ char Read_Force_Field( char *ffield_file, reax_interaction *reax, if ( n < 1 ) { fprintf( stderr, "[WARNING] number of globals in ffield file is 0!\n" ); - return 1; + return SUCCESS; } reax->gp.n_global = n; @@ -233,7 +233,7 @@ char Read_Force_Field( char *ffield_file, reax_interaction *reax, { if ( reax->gp.vdw_type != 0 && reax->gp.vdw_type != 3 ) { - fprintf( stderr, "Warning: inconsistent vdWaals-parameters\n" + fprintf( stderr, "[WARNING] inconsistent vdWaals-parameters\n" "Force field parameters for element %s\n" "indicate inner wall+shielding, but earlier\n" "atoms indicate different vdWaals-method.\n" @@ -255,12 +255,12 @@ char Read_Force_Field( char *ffield_file, reax_interaction *reax, { if ( reax->gp.vdw_type != 0 && reax->gp.vdw_type != 2 ) { - fprintf( stderr, "Warning: inconsistent vdWaals-parameters\n" ); - fprintf( stderr, "Force field parameters for element %s\n", reax->sbp[i].name ); - fprintf( stderr, "indicate inner wall without shielding, but earlier\n" ); - fprintf( stderr, "atoms indicate different vdWaals-method.\n" ); - fprintf( stderr, "This may cause division-by-zero errors.\n" ); - fprintf( stderr, "Keeping vdWaals-setting for earlier atoms.\n" ); + fprintf( stderr, "[WARNING] inconsistent vdWaals-parameters\n" ); + fprintf( stderr, " [INFO] Force field parameters for element %s\n", reax->sbp[i].name ); + fprintf( stderr, " [INFO] indicate inner wall without shielding, but earlier\n" ); + fprintf( stderr, " [INFO] atoms indicate different vdWaals-method.\n" ); + fprintf( stderr, " [INFO] This may cause division-by-zero errors.\n" ); + fprintf( stderr, " [INFO] Keeping vdWaals-setting for earlier atoms.\n" ); } else { @@ -279,12 +279,12 @@ char Read_Force_Field( char *ffield_file, reax_interaction *reax, if ( reax->sbp[i].gamma_w > 0.5 ) { if ( reax->gp.vdw_type != 0 && reax->gp.vdw_type != 1 ) - fprintf( stderr, "Warning: inconsistent vdWaals-parameters\n" \ - "Force field parameters for element %s\n" \ - "indicate shielding without inner wall, but earlier\n" \ - "atoms indicate different vdWaals-method.\n" \ - "This may cause division-by-zero errors.\n" \ - "Keeping vdWaals-setting for earlier atoms.\n", + fprintf( stderr, "[WARNING] inconsistent vdWaals-parameters\n" \ + " [INFO] Force field parameters for element %s\n" \ + " [INFO] indicate shielding without inner wall, but earlier\n" \ + " [INFO] atoms indicate different vdWaals-method.\n" \ + " [INFO] This may cause division-by-zero errors.\n" \ + " [INFO] Keeping vdWaals-setting for earlier atoms.\n", reax->sbp[i].name ); else { @@ -297,8 +297,8 @@ char Read_Force_Field( char *ffield_file, reax_interaction *reax, } else { - fprintf( stderr, "Error: inconsistent vdWaals-parameters\n"\ - "No shielding or inner-wall set for element %s\n", + fprintf( stderr, "[ERROR] inconsistent vdWaals-parameters\n"\ + " [INFO] No shielding or inner-wall set for element %s\n", reax->sbp[i].name ); MPI_Abort( MPI_COMM_WORLD, INVALID_INPUT ); } @@ -315,7 +315,7 @@ char Read_Force_Field( char *ffield_file, reax_interaction *reax, if ( reax->sbp[i].mass < 21 && reax->sbp[i].valency_val != reax->sbp[i].valency_boc ) { - fprintf( stderr, "Warning: changed valency_val to valency_boc for %s\n", + fprintf( stderr, "[WARNING] changed valency_val to valency_boc for atom type %s\n", reax->sbp[i].name ); reax->sbp[i].valency_val = reax->sbp[i].valency_boc; } diff --git a/PG-PuReMD/src/ffield.h b/PG-PuReMD/src/ffield.h index 313c3e67..5cca5e9d 100644 --- a/PG-PuReMD/src/ffield.h +++ b/PG-PuReMD/src/ffield.h @@ -29,7 +29,7 @@ extern "C" { #endif -char Read_Force_Field( char*, reax_interaction*, control_params* ); +int Read_Force_Field( char*, reax_interaction*, control_params* ); #ifdef __cplusplus } diff --git a/PG-PuReMD/src/forces.c b/PG-PuReMD/src/forces.c index f210c3b4..d3e295cf 100644 --- a/PG-PuReMD/src/forces.c +++ b/PG-PuReMD/src/forces.c @@ -1655,7 +1655,7 @@ void Estimate_Storages( reax_system *system, control_params *control, *Htop = (int)(MAX( *Htop * SAFE_ZONE, MIN_CAP * MIN_CM_ENTRIES )); // Set max sparse entries, needed for first iteration of validate_list - system->max_sparse_entries = *Htop * SAFE_ZONE; + system->total_cm_entries = *Htop * SAFE_ZONE; for ( i = 0; i < system->n; ++i ) { diff --git a/PG-PuReMD/src/parallelreax.c b/PG-PuReMD/src/parallelreax.c index 304bb1f6..cc5f9d3d 100644 --- a/PG-PuReMD/src/parallelreax.c +++ b/PG-PuReMD/src/parallelreax.c @@ -42,9 +42,12 @@ #ifdef HAVE_CUDA #include "cuda/cuda_copy.h" #include "cuda/cuda_environment.h" + #include "cuda/cuda_forces.h" + #include "cuda/cuda_init_md.h" #include "cuda/cuda_neighbors.h" #include "cuda/cuda_post_evolve.h" #include "cuda/cuda_reset_tools.h" + #include "cuda/cuda_system_props.h" #include "cuda/cuda_utils.h" #include "cuda/cuda_validation.h" #endif @@ -173,7 +176,9 @@ int main( int argc, char* argv[] ) mpi_datatypes *mpi_data; int i, ret, retries; real t_start = 0, t_elapsed; +#if defined(DEBUG) real t_begin, t_end; +#endif if ( argc != 4 ) { diff --git a/PG-PuReMD/src/reax_types.h b/PG-PuReMD/src/reax_types.h index d683df1c..c0bac402 100644 --- a/PG-PuReMD/src/reax_types.h +++ b/PG-PuReMD/src/reax_types.h @@ -198,11 +198,12 @@ #endif /**************** RESOURCE CONSTANTS **********************/ +/* 20 MB */ +#define HOST_SCRATCH_SIZE (1024 * 1024 * 20) #ifdef HAVE_CUDA /* 20 MB */ #define DEVICE_SCRATCH_SIZE (1024 * 1024 * 20) /* 20 MB */ -#define HOST_SCRATCH_SIZE (1024 * 1024 * 20) #define RES_SCRATCH 0x90 /* BLOCK SIZES for kernels */ -- GitLab