From 640f7d09f805b48ce1d6138035b0e07f589f072e Mon Sep 17 00:00:00 2001 From: David Boehme Date: Fri, 24 Aug 2018 17:39:40 -0700 Subject: [PATCH 01/41] Initial Caliper support --- src/MC_Fast_Timer.hh | 74 ++++++++++++++++++++++++++++++++------------ src/Makefile | 26 +++++++++++++++- 2 files changed, 79 insertions(+), 21 deletions(-) diff --git a/src/MC_Fast_Timer.hh b/src/MC_Fast_Timer.hh index 9cad33a8..cd131ec1 100644 --- a/src/MC_Fast_Timer.hh +++ b/src/MC_Fast_Timer.hh @@ -6,6 +6,10 @@ #include #endif +#ifdef USE_CALIPER +#include +#endif + #include "portability.hh" // needed for uint64_t in this file #include "utilsMpi.hh" // needed for MPI_Comm type in this file @@ -44,12 +48,20 @@ class MC_Fast_Timer class MC_Fast_Timer_Container { public: - MC_Fast_Timer_Container() {} ; // constructor + MC_Fast_Timer_Container() +#ifdef USE_CALIPER + : cali_annotation("mc.timer", CALI_ATTR_DEFAULT | CALI_ATTR_NESTED) +#endif + {} ; // constructor void Cumulative_Report(int mpi_rank, int num_ranks, MPI_Comm comm_world, uint64_t numSegments); void Last_Cycle_Report(int report_time, int mpi_rank, int num_ranks, MPI_Comm comm_world); void Clear_Last_Cycle_Timers(); MC_Fast_Timer timers[MC_Fast_Timer::Num_Timers]; // timers for various routines - + +#ifdef USE_CALIPER + cali::Annotation cali_annotation; +#endif + private: void Print_Cumulative_Heading(int mpi_rank); void Print_Last_Cycle_Heading(int mpi_rank); @@ -87,27 +99,49 @@ extern const char *mc_fast_timer_names[MC_Fast_Timer::Num_Timers]; #define MC_FASTTIMER_GET_LASTCYCLE(timerIndex) (float)mcco->fast_timer->timers[timerIndex].lastCycleClock / 1000000. #else // else CHRONO_MISSING is not defined, so high resolution clock is available - - #define MC_FASTTIMER_START(timerIndex) \ - if (omp_get_thread_num() == 0) { \ - mcco->fast_timer->timers[timerIndex].startClock = std::chrono::high_resolution_clock::now(); \ - } - - #define MC_FASTTIMER_STOP(timerIndex) \ - if ( omp_get_thread_num() == 0 ) { \ - mcco->fast_timer->timers[timerIndex].stopClock = std::chrono::high_resolution_clock::now(); \ - mcco->fast_timer->timers[timerIndex].lastCycleClock += \ - std::chrono::duration_cast \ - (mcco->fast_timer->timers[timerIndex].stopClock - mcco->fast_timer->timers[timerIndex].startClock).count(); \ - mcco->fast_timer->timers[timerIndex].cumulativeClock += \ - std::chrono::duration_cast \ - (mcco->fast_timer->timers[timerIndex].stopClock - mcco->fast_timer->timers[timerIndex].startClock).count(); \ - mcco->fast_timer->timers[timerIndex].numCalls++; \ - } + #ifdef USE_CALIPER + #define MC_FASTTIMER_START(timerIndex) \ + if (omp_get_thread_num() == 0) { \ + mcco->fast_timer->timers[timerIndex].startClock = std::chrono::high_resolution_clock::now(); \ + } \ + mcco->fast_timer->cali_annotation.begin(mc_fast_timer_names[timerIndex]); + + #define MC_FASTTIMER_STOP(timerIndex) \ + if ( omp_get_thread_num() == 0 ) { \ + mcco->fast_timer->timers[timerIndex].stopClock = std::chrono::high_resolution_clock::now(); \ + mcco->fast_timer->timers[timerIndex].lastCycleClock += \ + std::chrono::duration_cast \ + (mcco->fast_timer->timers[timerIndex].stopClock - mcco->fast_timer->timers[timerIndex].startClock).count(); \ + mcco->fast_timer->timers[timerIndex].cumulativeClock += \ + std::chrono::duration_cast \ + (mcco->fast_timer->timers[timerIndex].stopClock - mcco->fast_timer->timers[timerIndex].startClock).count(); \ + mcco->fast_timer->timers[timerIndex].numCalls++; \ + } \ + mcco->fast_timer->cali_annotation.end(); + + #else // not defined USE_CALIPER + + #define MC_FASTTIMER_START(timerIndex) \ + if (omp_get_thread_num() == 0) { \ + mcco->fast_timer->timers[timerIndex].startClock = std::chrono::high_resolution_clock::now(); \ + } + + #define MC_FASTTIMER_STOP(timerIndex) \ + if ( omp_get_thread_num() == 0 ) { \ + mcco->fast_timer->timers[timerIndex].stopClock = std::chrono::high_resolution_clock::now(); \ + mcco->fast_timer->timers[timerIndex].lastCycleClock += \ + std::chrono::duration_cast \ + (mcco->fast_timer->timers[timerIndex].stopClock - mcco->fast_timer->timers[timerIndex].startClock).count(); \ + mcco->fast_timer->timers[timerIndex].cumulativeClock += \ + std::chrono::duration_cast \ + (mcco->fast_timer->timers[timerIndex].stopClock - mcco->fast_timer->timers[timerIndex].startClock).count(); \ + mcco->fast_timer->timers[timerIndex].numCalls++; \ + } + + #endif // end ifdef USE_CALIPER else branch #define MC_FASTTIMER_GET_LASTCYCLE(timerIndex) (float)mcco->fast_timer->timers[timerIndex].lastCycleClock / 1000000. - #endif // end ifdef CHRONO_MISSING else section #endif // end if DISABLE_TIMERS diff --git a/src/Makefile b/src/Makefile index 5f42dc12..261cab03 100644 --- a/src/Makefile +++ b/src/Makefile @@ -75,6 +75,10 @@ # with some Clang compilers, some older Gnu compilers on BG/Q # and older Intel compilers. # +# -DUSE_CALIPER Define this to enable Caliper instrumentation. Caliper +# provides performance profiling infrastructure for a wide +# range of tasks. +# # -DUSE_NVTX Define this for some extra NVProf profiling information. # It will create regions that can be visualized in NVVP. # @@ -99,6 +103,8 @@ CXXFLAGS = CPPFLAGS = LDFLAGS = +# CALIPER_DIR = $(spack location --install-dir caliper) + ############################################################################### # Very simple GCC build with OpenMP but without MPI. # This works on a Macbook (if gcc is installed) @@ -113,7 +119,6 @@ LDFLAGS = #CPPFLAGS = $(OPENMP_FLAGS) #LDFLAGS = $(OPENMP_LDFLAGS) - ############################################################################### ### GCC -- with MPI and OpenMP ############################################################################### @@ -128,6 +133,25 @@ LDFLAGS = #LDFLAGS = $(OPENMP_LDFLAGS) +############################################################################### +### GCC -- with MPI and OpenMP and Caliper support +############################################################################### +CALIPER_DIR = ${HOME}/local/caliper/toss3-release + +CALIPER_FLAGS = -I${CALIPER_DIR}/include -DUSE_CALIPER +CALIPER_LDFLAGS = -Wl,-rpath ${CALIPER_DIR}/lib64 -L${CALIPER_DIR}/lib64 -lcaliper-mpi -lcaliper + +OPENMP_FLAGS = -DHAVE_OPENMP -fopenmp +OPENMP_LDFLAGS = -fopenmp +MPI_FLAGS = -DHAVE_MPI +OPTFLAGS = -g -O2 + +CXX=mpicxx +CXXFLAGS = -std=c++11 $(OPTFLAGS) -Wpedantic +CPPFLAGS = $(MPI_FLAGS) $(OPENMP_FLAGS) $(CALIPER_FLAGS) +LDFLAGS = $(OPENMP_LDFLAGS) $(CALIPER_LDFLAGS) + + ############################################################################### # LLNL LC BG/Q Comilers # ############################################################################### From 32a638f01913ed07a022e0b5a95f95fd2a197f43 Mon Sep 17 00:00:00 2001 From: David Boehme Date: Fri, 21 Sep 2018 16:23:31 -0700 Subject: [PATCH 02/41] Add documentation on Caliper --- src/MC_Fast_Timer.hh | 2 +- src/Makefile | 7 +++++-- src/READ.ME.HOW.TO.RUN | 10 ++++++++++ 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/MC_Fast_Timer.hh b/src/MC_Fast_Timer.hh index cd131ec1..dd36384b 100644 --- a/src/MC_Fast_Timer.hh +++ b/src/MC_Fast_Timer.hh @@ -50,7 +50,7 @@ class MC_Fast_Timer_Container public: MC_Fast_Timer_Container() #ifdef USE_CALIPER - : cali_annotation("mc.timer", CALI_ATTR_DEFAULT | CALI_ATTR_NESTED) + : cali_annotation("mc.timer", CALI_ATTR_SCOPE_PROCESS | CALI_ATTR_NESTED) #endif {} ; // constructor void Cumulative_Report(int mpi_rank, int num_ranks, MPI_Comm comm_world, uint64_t numSegments); diff --git a/src/Makefile b/src/Makefile index 261cab03..5cef6961 100644 --- a/src/Makefile +++ b/src/Makefile @@ -76,8 +76,11 @@ # and older Intel compilers. # # -DUSE_CALIPER Define this to enable Caliper instrumentation. Caliper -# provides performance profiling infrastructure for a wide -# range of tasks. +# is a performance profiling / analysis library for +# tracing, sampling, HW counter measurements, and much more. +# When enabled, Quicksilver will link in the Caliper +# library and export its timed regions to Caliper. See +# https://github.com/LLNL/Caliper for more information. # # -DUSE_NVTX Define this for some extra NVProf profiling information. # It will create regions that can be visualized in NVVP. diff --git a/src/READ.ME.HOW.TO.RUN b/src/READ.ME.HOW.TO.RUN index 24e2a8e8..dd8240be 100644 --- a/src/READ.ME.HOW.TO.RUN +++ b/src/READ.ME.HOW.TO.RUN @@ -115,6 +115,16 @@ There is also, at the end of the run, a coarse breakdown of time spent overall in the above mentioned three code phases, as well as a few other sub timings from cycle tracking. +------------------------------------------------------------------------------- +A note on Caliper: + +Caliper is a powerful performance profiling/tracing library. When configured +with Caliper support, Quicksilver adds Caliper annotations for its timed +regions (cycleTracking, cycleTrackingKernel, etc.) as the "mc.timer" +attribute. Performance measurements can be configured through environment +variables or the caliper.config configuration file. For Caliper documentation, +see https://github.com/LLNL/Caliper. + ------------------------------------------------------------------------------- A note on asserts: From caa077134c17274bba1719197fd88644fcab2708 Mon Sep 17 00:00:00 2001 From: David Boehme Date: Thu, 14 Mar 2019 17:32:34 -0700 Subject: [PATCH 03/41] Caliper instrumentation update --- src/main.cc | 70 +++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 54 insertions(+), 16 deletions(-) diff --git a/src/main.cc b/src/main.cc index bb9517b2..c692059a 100644 --- a/src/main.cc +++ b/src/main.cc @@ -26,6 +26,14 @@ #include "git_hash.hh" #include "git_vers.hh" +#ifdef USE_CALIPER +#include +#ifdef HAVE_MPI +#include +#endif +#endif + +void setupCaliper(); void gameOver(); void cycleInit( bool loadBalance ); void cycleTracking(MonteCarlo* monteCarlo); @@ -43,8 +51,10 @@ int main(int argc, char** argv) Parameters params = getParameters(argc, argv); printParameters(params, cout); - // mcco stores just about everything. - mcco = initMC(params); + setupCaliper(); + + // mcco stores just about everything. + mcco = initMC(params); int loadBalance = params.simulationParams.loadBalance; @@ -52,8 +62,16 @@ int main(int argc, char** argv) const int nSteps = params.simulationParams.nSteps; +#ifdef USE_CALIPER + CALI_CXX_MARK_LOOP_BEGIN(mainloop, "qs.mainloop"); +#endif + for (int ii=0; iiprocessor_info->comm_mc_world ); } +#ifdef USE_CALIPER + CALI_CXX_MARK_LOOP_END(mainloop); +#endif MC_FASTTIMER_STOP(MC_Fast_Timer::main); @@ -80,10 +101,28 @@ int main(int argc, char** argv) #endif mpiFinalize(); - + return 0; } +void setupCaliper() +{ +#ifdef USE_CALIPER +#ifdef HAVE_MPI + cali_mpi_init(); +#endif + + cali_config_preset("CALI_CALIPER_ATTRIBUTE_PROPERTIES", + "loop=process_scope:nested" + ",iteration#qs.mainloop=process_scope:asvalue" + ",cupti.runtimeAPI=process_scope:nested" + ",cupti.driverAPI=process_scope:nested"); + + cali_set_global_string_byname("qs.git_vers", GIT_VERS); + cali_set_global_string_byname("qs.git_hash", GIT_HASH); +#endif +} + void gameOver() { mcco->fast_timer->Cumulative_Report(mcco->processor_info->rank, @@ -112,7 +151,7 @@ void cycleInit( bool loadBalance ) mcco->particle_buffer->Initialize(); MC_SourceNow(mcco); - + PopulationControl(mcco, loadBalance); // controls particle population RouletteLowWeightParticles(mcco); // Delete particles with low statistical weight @@ -125,7 +164,7 @@ void cycleInit( bool loadBalance ) __global__ void CycleTrackingKernel( MonteCarlo* monteCarlo, int num_particles, ParticleVault* processingVault, ParticleVault* processedVault ) { - int global_index = getGlobalThreadID(); + int global_index = getGlobalThreadID(); if( global_index < num_particles ) { @@ -167,9 +206,9 @@ void cycleTracking(MonteCarlo *monteCarlo) ParticleVault *processingVault = my_particle_vault.getTaskProcessingVault(processing_vault); ParticleVault *processedVault = my_particle_vault.getTaskProcessedVault(processed_vault); - + int numParticles = processingVault->size(); - + if ( numParticles != 0 ) { NVTX_Range trackingKernel("cycleTracking_TrackingKernel"); // range ends at end of scope @@ -187,28 +226,28 @@ void cycleTracking(MonteCarlo *monteCarlo) dim3 grid(1,1,1); dim3 block(1,1,1); int runKernel = ThreadBlockLayout( grid, block, numParticles); - + //Call Cycle Tracking Kernel if( runKernel ) CycleTrackingKernel<<>>( monteCarlo, numParticles, processingVault, processedVault ); - + //Synchronize the stream so that memory is copied back before we begin MPI section cudaPeekAtLastError(); cudaDeviceSynchronize(); #endif } break; - + case gpuWithOpenMP: { int nthreads=128; - if (numParticles < 64*56 ) + if (numParticles < 64*56 ) nthreads = 64; int nteams = (numParticles + nthreads - 1 ) / nthreads; nteams = nteams > 1 ? nteams : 1; #ifdef HAVE_OPENMP_TARGET - #pragma omp target enter data map(to:monteCarlo[0:1]) - #pragma omp target enter data map(to:processingVault[0:1]) + #pragma omp target enter data map(to:monteCarlo[0:1]) + #pragma omp target enter data map(to:processingVault[0:1]) #pragma omp target enter data map(to:processedVault[0:1]) #pragma omp target teams distribute parallel for num_teams(nteams) thread_limit(128) #endif @@ -245,7 +284,7 @@ void cycleTracking(MonteCarlo *monteCarlo) // Next, communicate particles that have crossed onto // other MPI ranks. NVTX_Range cleanAndComm("cycleTracking_clean_and_comm"); - + SendQueue &sendQueue = *(my_particle_vault.getSendQueue()); monteCarlo->particle_buffer->Allocate_Send_Buffer( sendQueue ); @@ -314,7 +353,7 @@ void cycleFinalize() mcco->_tallies->_balanceTask[0]._end = mcco->_particleVaultContainer->sizeProcessed(); // Update the cumulative tally data. - mcco->_tallies->CycleFinalize(mcco); + mcco->_tallies->CycleFinalize(mcco); mcco->time_info->cycle++; @@ -322,4 +361,3 @@ void cycleFinalize() MC_FASTTIMER_STOP(MC_Fast_Timer::cycleFinalize); } - From 326df96a7766c3b8c61afca2a3ff093953750f70 Mon Sep 17 00:00:00 2001 From: David Boehme Date: Wed, 11 Sep 2019 10:41:11 -0700 Subject: [PATCH 04/41] Use Caliper ConfigManager --- src/Parameters.cc | 4 ++++ src/Parameters.hh | 1 + src/main.cc | 21 ++++++++++++++++----- 3 files changed, 21 insertions(+), 5 deletions(-) diff --git a/src/Parameters.cc b/src/Parameters.cc index a7205da6..4111313f 100644 --- a/src/Parameters.cc +++ b/src/Parameters.cc @@ -226,6 +226,8 @@ namespace esName[0] = '\0'; char xsec[1024]; xsec[0] = '\0'; + char calicfg[1024]; + calicfg[0] = '\0'; addArg("help", 'h', 0, 'i', &(help), 0, "print this message"); addArg("dt", 'D', 1, 'd', &(sp.dt), 0, "time step (seconds)"); @@ -253,12 +255,14 @@ namespace addArg("bTally", 'B', 1, 'i', &(sp.balanceTallyReplications), 0, "number of balance tally replications"); addArg("fTally", 'F', 1, 'i', &(sp.fluxTallyReplications), 0, "number of scalar flux tally replications"); addArg("cTally", 'C', 1, 'i', &(sp.cellTallyReplications), 0, "number of scalar cell tally replications"); + addArg("caliper-config", 'P', 1, 's', &(calicfg), sizeof(calicfg), "Caliper configuration"); processArgs(argc, argv); sp.inputFile = name; sp.energySpectrum = esName; sp.crossSectionsOut = xsec; + sp.caliperConfig = calicfg; if (help) { diff --git a/src/Parameters.hh b/src/Parameters.hh index 79dfe3cf..d4ce91c4 100644 --- a/src/Parameters.hh +++ b/src/Parameters.hh @@ -164,6 +164,7 @@ struct SimulationParameters int fluxTallyReplications; //!< Number of replications for the scalar flux tally int cellTallyReplications; //!< Number of replications for the scalar cell tally int coralBenchmark; //!< enable correctness check for Coral2 benchmark + std::string caliperConfig; //!< Caliper configuration string }; struct Parameters diff --git a/src/main.cc b/src/main.cc index c692059a..56b8c8f8 100644 --- a/src/main.cc +++ b/src/main.cc @@ -28,6 +28,7 @@ #ifdef USE_CALIPER #include +#include #ifdef HAVE_MPI #include #endif @@ -51,8 +52,17 @@ int main(int argc, char** argv) Parameters params = getParameters(argc, argv); printParameters(params, cout); +#ifdef USE_CALIPER setupCaliper(); + cali::ConfigManager calimgr(params.simulationParams.caliperConfig.c_str()); + + if (calimgr.error()) + std::cerr << "caliper config error: " << calimgr.error_msg() << std::endl; + + calimgr.start(); +#endif + // mcco stores just about everything. mcco = initMC(params); @@ -100,6 +110,10 @@ int main(int argc, char** argv) delete mcco; #endif +#ifdef USE_CALIPER + calimgr.flush(); +#endif + mpiFinalize(); return 0; @@ -112,11 +126,8 @@ void setupCaliper() cali_mpi_init(); #endif - cali_config_preset("CALI_CALIPER_ATTRIBUTE_PROPERTIES", - "loop=process_scope:nested" - ",iteration#qs.mainloop=process_scope:asvalue" - ",cupti.runtimeAPI=process_scope:nested" - ",cupti.driverAPI=process_scope:nested"); + cali_config_preset("CALI_LOG_VERBOSITY", "0"); + cali_config_preset("CALI_CALIPER_ATTRIBUTE_DEFAULT_SCOPE", "process"); cali_set_global_string_byname("qs.git_vers", GIT_VERS); cali_set_global_string_byname("qs.git_hash", GIT_HASH); From 5fff3bf3c2932d0d7cce979f7d8ec93eb4c7009a Mon Sep 17 00:00:00 2001 From: David Boehme Date: Thu, 2 Jan 2020 17:04:31 -0800 Subject: [PATCH 05/41] Update Makefile --- src/Makefile | 53 +++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 40 insertions(+), 13 deletions(-) diff --git a/src/Makefile b/src/Makefile index 5cef6961..aee008a1 100644 --- a/src/Makefile +++ b/src/Makefile @@ -106,8 +106,6 @@ CXXFLAGS = CPPFLAGS = LDFLAGS = -# CALIPER_DIR = $(spack location --install-dir caliper) - ############################################################################### # Very simple GCC build with OpenMP but without MPI. # This works on a Macbook (if gcc is installed) @@ -139,21 +137,50 @@ LDFLAGS = ############################################################################### ### GCC -- with MPI and OpenMP and Caliper support ############################################################################### -CALIPER_DIR = ${HOME}/local/caliper/toss3-release +#CALIPER_DIR = $(spack location --install-dir caliper) +# CALIPER_DIR = ${HOME}/local/caliper/toss3-release -CALIPER_FLAGS = -I${CALIPER_DIR}/include -DUSE_CALIPER -CALIPER_LDFLAGS = -Wl,-rpath ${CALIPER_DIR}/lib64 -L${CALIPER_DIR}/lib64 -lcaliper-mpi -lcaliper +# CALIPER_FLAGS = -I${CALIPER_DIR}/include -DUSE_CALIPER +# CALIPER_LDFLAGS = -Wl,-rpath ${CALIPER_DIR}/lib64 -L${CALIPER_DIR}/lib64 -lcaliper-mpi -lcaliper + +# OPENMP_FLAGS = -DHAVE_OPENMP -fopenmp +# OPENMP_LDFLAGS = -fopenmp +# MPI_FLAGS = -DHAVE_MPI +# OPTFLAGS = -g -O2 + +# CXX=mpicxx +# CXXFLAGS = -std=c++11 $(OPTFLAGS) -Wpedantic +# CPPFLAGS = $(MPI_FLAGS) $(OPENMP_FLAGS) $(CALIPER_FLAGS) +# LDFLAGS = $(OPENMP_LDFLAGS) $(CALIPER_LDFLAGS) + +############################################################################### +# Cuda on LLNL Lassen w/ Caliper +############################################################################### +## Choose one Cuda path +# CUDA_PATH = /usr/local/cuda -OPENMP_FLAGS = -DHAVE_OPENMP -fopenmp -OPENMP_LDFLAGS = -fopenmp -MPI_FLAGS = -DHAVE_MPI -OPTFLAGS = -g -O2 +CALIPER_DIR=${HOME}/local/caliper/lassen-cuda10 +CUDA_PATH = /usr/tce/packages/cuda/cuda-10.1.168 -CXX=mpicxx -CXXFLAGS = -std=c++11 $(OPTFLAGS) -Wpedantic -CPPFLAGS = $(MPI_FLAGS) $(OPENMP_FLAGS) $(CALIPER_FLAGS) -LDFLAGS = $(OPENMP_LDFLAGS) $(CALIPER_LDFLAGS) +HOST_COMPILER = mpicxx +CALIPER_FLAGS = -I${CALIPER_DIR}/include -DUSE_CALIPER +CALIPER_LDFLAGS = -L${CALIPER_DIR}/lib64 -lcaliper + +OPTFLAGS = -O2 -g +## Version below for debugging +##OPTFLAGS = -DUSE_NVTX -g -G -lineinfo -O0 + +CUDA_FLAGS = -I${CUDA_PATH}/include/ +#CUDA_LDFLAGS = -L${CUDA_PATH}/lib64/ -lcuda -lcudart +# +CXX=$(CUDA_PATH)/bin/nvcc +CXXFLAGS = -DHAVE_CUDA -std=c++11 $(OPTFLAGS) -Xptxas -v +CXXFLAGS += -gencode=arch=compute_60,code=\"sm_60,compute_60\" +CXXFLAGS += --compiler-bindir=$(HOST_COMPILER) +CPPFLAGS = -x cu -dc -DHAVE_MPI -DHAVE_ASYNC_MPI $(CALIPER_FLAGS) +LDFLAGS = $(CUDA_LDFLAGS) $(CALIPER_LDFLAGS) +##LDFLAGS += ${CUDA_PATH}/lib64/libnvToolsExt.so ############################################################################### # LLNL LC BG/Q Comilers # From 42ecaff6157910e347566f7757b3090691618059 Mon Sep 17 00:00:00 2001 From: august-knox Date: Wed, 30 Oct 2024 13:45:43 -0700 Subject: [PATCH 06/41] commenting out cuda --- src/Makefile | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/Makefile b/src/Makefile index a570bf2a..c356a122 100644 --- a/src/Makefile +++ b/src/Makefile @@ -197,15 +197,15 @@ OPTFLAGS = -O2 -g ## Version below for debugging ##OPTFLAGS = -DUSE_NVTX -g -G -lineinfo -O0 -CUDA_FLAGS = -I${CUDA_PATH}/include/ +#CUDA_FLAGS = -I${CUDA_PATH}/include/ #CUDA_LDFLAGS = -L${CUDA_PATH}/lib64/ -lcuda -lcudart # -CXX=$(CUDA_PATH)/bin/nvcc -CXXFLAGS = -DHAVE_CUDA -std=c++11 $(OPTFLAGS) -Xptxas -v -CXXFLAGS += -gencode=arch=compute_60,code=\"sm_60,compute_60\" -CXXFLAGS += --compiler-bindir=$(HOST_COMPILER) -CPPFLAGS = -x cu -dc -DHAVE_MPI -DHAVE_ASYNC_MPI $(CALIPER_FLAGS) -LDFLAGS = $(CUDA_LDFLAGS) $(CALIPER_LDFLAGS) +#CXX=$(CUDA_PATH)/bin/nvcc +#CXXFLAGS = -DHAVE_CUDA -std=c++11 $(OPTFLAGS) -Xptxas -v +#CXXFLAGS += -gencode=arch=compute_60,code=\"sm_60,compute_60\" +#CXXFLAGS += --compiler-bindir=$(HOST_COMPILER) +#CPPFLAGS = -x cu -dc -DHAVE_MPI -DHAVE_ASYNC_MPI $(CALIPER_FLAGS) +#LDFLAGS = $(CUDA_LDFLAGS) $(CALIPER_LDFLAGS) ##LDFLAGS += ${CUDA_PATH}/lib64/libnvToolsExt.so ############################################################################### From f7f81e18742f17a32b3d0601fd726de20df1b394 Mon Sep 17 00:00:00 2001 From: august-knox Date: Wed, 30 Oct 2024 14:13:39 -0700 Subject: [PATCH 07/41] use gcc build --- src/Makefile | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/src/Makefile b/src/Makefile index c356a122..68732bb5 100644 --- a/src/Makefile +++ b/src/Makefile @@ -163,21 +163,21 @@ LDFLAGS = -fgpu-rdc --hip-link --offload-arch=gfx90a ############################################################################### ### GCC -- with MPI and OpenMP and Caliper support ############################################################################### -#CALIPER_DIR = $(spack location --install-dir caliper) -# CALIPER_DIR = ${HOME}/local/caliper/toss3-release +CALIPER_DIR = $(spack location --install-dir caliper) +CALIPER_DIR = ${HOME}/local/caliper/toss3-release -# CALIPER_FLAGS = -I${CALIPER_DIR}/include -DUSE_CALIPER -# CALIPER_LDFLAGS = -Wl,-rpath ${CALIPER_DIR}/lib64 -L${CALIPER_DIR}/lib64 -lcaliper-mpi -lcaliper + CALIPER_FLAGS = -I${CALIPER_DIR}/include -DUSE_CALIPER + CALIPER_LDFLAGS = -Wl,-rpath ${CALIPER_DIR}/lib64 -L${CALIPER_DIR}/lib64 -lcaliper-mpi -lcaliper -# OPENMP_FLAGS = -DHAVE_OPENMP -fopenmp -# OPENMP_LDFLAGS = -fopenmp -# MPI_FLAGS = -DHAVE_MPI -# OPTFLAGS = -g -O2 + OPENMP_FLAGS = -DHAVE_OPENMP -fopenmp + OPENMP_LDFLAGS = -fopenmp + MPI_FLAGS = -DHAVE_MPI + OPTFLAGS = -g -O2 -# CXX=mpicxx -# CXXFLAGS = -std=c++11 $(OPTFLAGS) -Wpedantic -# CPPFLAGS = $(MPI_FLAGS) $(OPENMP_FLAGS) $(CALIPER_FLAGS) -# LDFLAGS = $(OPENMP_LDFLAGS) $(CALIPER_LDFLAGS) + CXX=mpicxx + CXXFLAGS = -std=c++11 $(OPTFLAGS) -Wpedantic + CPPFLAGS = $(MPI_FLAGS) $(OPENMP_FLAGS) $(CALIPER_FLAGS) + LDFLAGS = $(OPENMP_LDFLAGS) $(CALIPER_LDFLAGS) ############################################################################### # Cuda on LLNL Lassen w/ Caliper @@ -185,15 +185,15 @@ LDFLAGS = -fgpu-rdc --hip-link --offload-arch=gfx90a ## Choose one Cuda path # CUDA_PATH = /usr/local/cuda -CALIPER_DIR=${HOME}/local/caliper/lassen-cuda10 -CUDA_PATH = /usr/tce/packages/cuda/cuda-10.1.168 +#CALIPER_DIR=${HOME}/local/caliper/lassen-cuda10 +#CUDA_PATH = /usr/tce/packages/cuda/cuda-10.1.168 -HOST_COMPILER = mpicxx +#HOST_COMPILER = mpicxx -CALIPER_FLAGS = -I${CALIPER_DIR}/include -DUSE_CALIPER -CALIPER_LDFLAGS = -L${CALIPER_DIR}/lib64 -lcaliper +#CALIPER_FLAGS = -I${CALIPER_DIR}/include -DUSE_CALIPER +#CALIPER_LDFLAGS = -L${CALIPER_DIR}/lib64 -lcaliper -OPTFLAGS = -O2 -g +#OPTFLAGS = -O2 -g ## Version below for debugging ##OPTFLAGS = -DUSE_NVTX -g -G -lineinfo -O0 From 5010c6ae3d79d364fb7b24f8680e786ca077e7be Mon Sep 17 00:00:00 2001 From: august-knox Date: Thu, 31 Oct 2024 10:29:16 -0700 Subject: [PATCH 08/41] changing makefile for spack --- src/Makefile | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/src/Makefile b/src/Makefile index 68732bb5..4dcdeed0 100644 --- a/src/Makefile +++ b/src/Makefile @@ -115,11 +115,11 @@ SHELL = /bin/bash #LDFLAGS = -L$(ROCM_ROOT)/lib -lamdhip64 #AMD with HIP -ROCM_ROOT = /opt/rocm-5.6.0 -CXX = /usr/tce/packages/cray-mpich/cray-mpich-8.1.26-rocmcc-5.6.0-cce-16.0.0a-magic/bin/mpicxx -CXXFLAGS = -g -CPPFLAGS = -DHAVE_MPI -DHAVE_HIP -x hip --offload-arch=gfx90a -fgpu-rdc -Wno-unused-result -LDFLAGS = -fgpu-rdc --hip-link --offload-arch=gfx90a +#ROCM_ROOT = /opt/rocm-5.6.0 +#CXX = /usr/tce/packages/cray-mpich/cray-mpich-8.1.26-rocmcc-5.6.0-cce-16.0.0a-magic/bin/mpicxx +#CXXFLAGS = -g +#CPPFLAGS = -DHAVE_MPI -DHAVE_HIP -x hip --offload-arch=gfx90a -fgpu-rdc -Wno-unused-result +#LDFLAGS = -fgpu-rdc --hip-link --offload-arch=gfx90a @@ -163,21 +163,21 @@ LDFLAGS = -fgpu-rdc --hip-link --offload-arch=gfx90a ############################################################################### ### GCC -- with MPI and OpenMP and Caliper support ############################################################################### -CALIPER_DIR = $(spack location --install-dir caliper) -CALIPER_DIR = ${HOME}/local/caliper/toss3-release +#CALIPER_DIR = $(spack location --install-dir caliper) +#CALIPER_DIR = ${HOME}/local/caliper/toss3-release - CALIPER_FLAGS = -I${CALIPER_DIR}/include -DUSE_CALIPER - CALIPER_LDFLAGS = -Wl,-rpath ${CALIPER_DIR}/lib64 -L${CALIPER_DIR}/lib64 -lcaliper-mpi -lcaliper +CALIPER_FLAGS = -I${CALIPER_DIR}/include -DUSE_CALIPER +CALIPER_LDFLAGS = -Wl,-rpath ${CALIPER_DIR}/lib64 -L${CALIPER_DIR}/lib64 -lcaliper-mpi -lcaliper - OPENMP_FLAGS = -DHAVE_OPENMP -fopenmp - OPENMP_LDFLAGS = -fopenmp - MPI_FLAGS = -DHAVE_MPI - OPTFLAGS = -g -O2 +OPENMP_FLAGS = -DHAVE_OPENMP -fopenmp +OPENMP_LDFLAGS = -fopenmp +MPI_FLAGS = -DHAVE_MPI +OPTFLAGS = -g -O2 - CXX=mpicxx - CXXFLAGS = -std=c++11 $(OPTFLAGS) -Wpedantic - CPPFLAGS = $(MPI_FLAGS) $(OPENMP_FLAGS) $(CALIPER_FLAGS) - LDFLAGS = $(OPENMP_LDFLAGS) $(CALIPER_LDFLAGS) +CXX=mpicxx +CXXFLAGS = -std=c++11 $(OPTFLAGS) -Wpedantic +CPPFLAGS = $(MPI_FLAGS) $(OPENMP_FLAGS) $(CALIPER_FLAGS) +LDFLAGS = $(OPENMP_LDFLAGS) $(CALIPER_LDFLAGS) ############################################################################### # Cuda on LLNL Lassen w/ Caliper From f3e53ef44b04020fd9a6e0e6b81583a328d52d9d Mon Sep 17 00:00:00 2001 From: august-knox Date: Thu, 31 Oct 2024 13:30:08 -0700 Subject: [PATCH 09/41] fixing caliper directory? --- src/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Makefile b/src/Makefile index 4dcdeed0..42ac226a 100644 --- a/src/Makefile +++ b/src/Makefile @@ -165,7 +165,7 @@ SHELL = /bin/bash ############################################################################### #CALIPER_DIR = $(spack location --install-dir caliper) #CALIPER_DIR = ${HOME}/local/caliper/toss3-release - +#CALIPER_DIR = / CALIPER_FLAGS = -I${CALIPER_DIR}/include -DUSE_CALIPER CALIPER_LDFLAGS = -Wl,-rpath ${CALIPER_DIR}/lib64 -L${CALIPER_DIR}/lib64 -lcaliper-mpi -lcaliper @@ -175,7 +175,7 @@ MPI_FLAGS = -DHAVE_MPI OPTFLAGS = -g -O2 CXX=mpicxx -CXXFLAGS = -std=c++11 $(OPTFLAGS) -Wpedantic +CXXFLAGS = -std=c++11 $(OPTFLAGS) #-Wpedantic CPPFLAGS = $(MPI_FLAGS) $(OPENMP_FLAGS) $(CALIPER_FLAGS) LDFLAGS = $(OPENMP_LDFLAGS) $(CALIPER_LDFLAGS) From 76f22b973f267270797567bfbfdc5eb904acdcdf Mon Sep 17 00:00:00 2001 From: august-knox Date: Thu, 31 Oct 2024 13:47:28 -0700 Subject: [PATCH 10/41] fixing linker --- src/Makefile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/Makefile b/src/Makefile index 42ac226a..f8695ae6 100644 --- a/src/Makefile +++ b/src/Makefile @@ -163,12 +163,13 @@ SHELL = /bin/bash ############################################################################### ### GCC -- with MPI and OpenMP and Caliper support ############################################################################### -#CALIPER_DIR = $(spack location --install-dir caliper) +CALIPER_DIR = $(spack location --install-dir caliper) #CALIPER_DIR = ${HOME}/local/caliper/toss3-release #CALIPER_DIR = / CALIPER_FLAGS = -I${CALIPER_DIR}/include -DUSE_CALIPER -CALIPER_LDFLAGS = -Wl,-rpath ${CALIPER_DIR}/lib64 -L${CALIPER_DIR}/lib64 -lcaliper-mpi -lcaliper +#CALIPER_LDFLAGS = -Wl,-rpath ${CALIPER_DIR}/lib64 -L${CALIPER_DIR}/lib64 -lcaliper #-lcaliper-mpi +CALIPER_LDFLAGS = -L${CALIPER_DIR}/lib64 -lcaliper OPENMP_FLAGS = -DHAVE_OPENMP -fopenmp OPENMP_LDFLAGS = -fopenmp MPI_FLAGS = -DHAVE_MPI From ec2b3a53c09dced0717281d1a00c327dad20135c Mon Sep 17 00:00:00 2001 From: august-knox Date: Thu, 31 Oct 2024 14:13:23 -0700 Subject: [PATCH 11/41] caliper-mpi --- src/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Makefile b/src/Makefile index f8695ae6..083eff5f 100644 --- a/src/Makefile +++ b/src/Makefile @@ -169,7 +169,7 @@ CALIPER_DIR = $(spack location --install-dir caliper) CALIPER_FLAGS = -I${CALIPER_DIR}/include -DUSE_CALIPER #CALIPER_LDFLAGS = -Wl,-rpath ${CALIPER_DIR}/lib64 -L${CALIPER_DIR}/lib64 -lcaliper #-lcaliper-mpi -CALIPER_LDFLAGS = -L${CALIPER_DIR}/lib64 -lcaliper +CALIPER_LDFLAGS = -L${CALIPER_DIR}/lib64 -lcaliper -lcaliper-mpi OPENMP_FLAGS = -DHAVE_OPENMP -fopenmp OPENMP_LDFLAGS = -fopenmp MPI_FLAGS = -DHAVE_MPI From 62bede1b5cb91afd4b2ce1fa101355e3d7a961ca Mon Sep 17 00:00:00 2001 From: august-knox Date: Thu, 31 Oct 2024 14:29:21 -0700 Subject: [PATCH 12/41] undoing change --- src/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Makefile b/src/Makefile index 083eff5f..08fa1b4d 100644 --- a/src/Makefile +++ b/src/Makefile @@ -169,7 +169,7 @@ CALIPER_DIR = $(spack location --install-dir caliper) CALIPER_FLAGS = -I${CALIPER_DIR}/include -DUSE_CALIPER #CALIPER_LDFLAGS = -Wl,-rpath ${CALIPER_DIR}/lib64 -L${CALIPER_DIR}/lib64 -lcaliper #-lcaliper-mpi -CALIPER_LDFLAGS = -L${CALIPER_DIR}/lib64 -lcaliper -lcaliper-mpi +CALIPER_LDFLAGS = -L${CALIPER_DIR}/lib64 -lcaliper OPENMP_FLAGS = -DHAVE_OPENMP -fopenmp OPENMP_LDFLAGS = -fopenmp MPI_FLAGS = -DHAVE_MPI From d2f15814c2c3ee4c3479a01ad3ec8e4be1ff7dd1 Mon Sep 17 00:00:00 2001 From: august-knox Date: Thu, 31 Oct 2024 16:44:47 -0700 Subject: [PATCH 13/41] initial adiak test --- src/main.cc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/main.cc b/src/main.cc index 9eceb528..8fe119e4 100644 --- a/src/main.cc +++ b/src/main.cc @@ -29,6 +29,7 @@ #ifdef USE_CALIPER #include #include +#include #ifdef HAVE_MPI #include #endif @@ -53,6 +54,8 @@ int main(int argc, char** argv) printParameters(params, cout); #ifdef USE_CALIPER + adiak::init(nullptr); + adiak::cmdline(); setupCaliper(); cali::ConfigManager calimgr(params.simulationParams.caliperConfig.c_str()); @@ -112,6 +115,8 @@ int main(int argc, char** argv) #ifdef USE_CALIPER calimgr.flush(); + adiak::fini(); + #endif mpiFinalize(); From ca6bd823924480749c50de915be8c000eeae8ae3 Mon Sep 17 00:00:00 2001 From: august-knox Date: Fri, 1 Nov 2024 09:14:43 -0700 Subject: [PATCH 14/41] adding to adiak --- src/main.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main.cc b/src/main.cc index 8fe119e4..3bc34db4 100644 --- a/src/main.cc +++ b/src/main.cc @@ -55,7 +55,9 @@ int main(int argc, char** argv) #ifdef USE_CALIPER adiak::init(nullptr); - adiak::cmdline(); + adiak::date(); + adiak:::adiak_collect_all() + adiak::executable(); setupCaliper(); cali::ConfigManager calimgr(params.simulationParams.caliperConfig.c_str()); From 00ae5d0147136f62f1f656ce264cdc22262d0105 Mon Sep 17 00:00:00 2001 From: august-knox Date: Fri, 1 Nov 2024 13:42:09 -0700 Subject: [PATCH 15/41] tracking more things w/ adiak --- src/main.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main.cc b/src/main.cc index 3bc34db4..4c7b5cc9 100644 --- a/src/main.cc +++ b/src/main.cc @@ -56,7 +56,8 @@ int main(int argc, char** argv) #ifdef USE_CALIPER adiak::init(nullptr); adiak::date(); - adiak:::adiak_collect_all() + adiak::adiak_collect_all(); + adiak::adiak_jobsize(); adiak::executable(); setupCaliper(); @@ -116,8 +117,8 @@ int main(int argc, char** argv) #endif #ifdef USE_CALIPER - calimgr.flush(); adiak::fini(); + calimgr.flush(); #endif From b9f60a7a9dba87471b5f5028aeb6c7e23d326fc3 Mon Sep 17 00:00:00 2001 From: august-knox Date: Fri, 1 Nov 2024 14:28:26 -0700 Subject: [PATCH 16/41] adding commandline recording --- src/main.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main.cc b/src/main.cc index 4c7b5cc9..95bfc78c 100644 --- a/src/main.cc +++ b/src/main.cc @@ -59,6 +59,7 @@ int main(int argc, char** argv) adiak::adiak_collect_all(); adiak::adiak_jobsize(); adiak::executable(); + adiak::cmdline(); setupCaliper(); cali::ConfigManager calimgr(params.simulationParams.caliperConfig.c_str()); From ab56bd3842787247c535879908ac88aa223c390d Mon Sep 17 00:00:00 2001 From: august-knox Date: Fri, 1 Nov 2024 14:56:47 -0700 Subject: [PATCH 17/41] potential adiak fix --- src/main.cc | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/main.cc b/src/main.cc index 95bfc78c..90f249eb 100644 --- a/src/main.cc +++ b/src/main.cc @@ -54,13 +54,6 @@ int main(int argc, char** argv) printParameters(params, cout); #ifdef USE_CALIPER - adiak::init(nullptr); - adiak::date(); - adiak::adiak_collect_all(); - adiak::adiak_jobsize(); - adiak::executable(); - adiak::cmdline(); - setupCaliper(); cali::ConfigManager calimgr(params.simulationParams.caliperConfig.c_str()); @@ -68,6 +61,14 @@ int main(int argc, char** argv) std::cerr << "caliper config error: " << calimgr.error_msg() << std::endl; calimgr.start(); + + adiak::init(nullptr); + adiak::date(); + adiak::adiak_collect_all(); + adiak::adiak_jobsize(); + adiak::executable(); + adiak::cmdline(); + setupCaliper(); #endif // mcco stores just about everything. From a5ccef31f8c153f32fbcc3c01ac45b16dce70c61 Mon Sep 17 00:00:00 2001 From: august-knox Date: Mon, 4 Nov 2024 11:25:26 -0800 Subject: [PATCH 18/41] adding adiak to makefile --- src/Makefile | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/Makefile b/src/Makefile index 08fa1b4d..9c06023f 100644 --- a/src/Makefile +++ b/src/Makefile @@ -167,8 +167,9 @@ CALIPER_DIR = $(spack location --install-dir caliper) #CALIPER_DIR = ${HOME}/local/caliper/toss3-release #CALIPER_DIR = / CALIPER_FLAGS = -I${CALIPER_DIR}/include -DUSE_CALIPER - +ADIAK_FLAGS = -I${ADIAK_DIR}/include #CALIPER_LDFLAGS = -Wl,-rpath ${CALIPER_DIR}/lib64 -L${CALIPER_DIR}/lib64 -lcaliper #-lcaliper-mpi +ADIAK_LDFLAGS = -L${ADIAK_DIR}/lib64 -ladiak CALIPER_LDFLAGS = -L${CALIPER_DIR}/lib64 -lcaliper OPENMP_FLAGS = -DHAVE_OPENMP -fopenmp OPENMP_LDFLAGS = -fopenmp @@ -177,8 +178,8 @@ OPTFLAGS = -g -O2 CXX=mpicxx CXXFLAGS = -std=c++11 $(OPTFLAGS) #-Wpedantic -CPPFLAGS = $(MPI_FLAGS) $(OPENMP_FLAGS) $(CALIPER_FLAGS) -LDFLAGS = $(OPENMP_LDFLAGS) $(CALIPER_LDFLAGS) +CPPFLAGS = $(MPI_FLAGS) $(OPENMP_FLAGS) $(CALIPER_FLAGS) $(ADIAK_FLAGS) +LDFLAGS = $(OPENMP_LDFLAGS) $(CALIPER_LDFLAGS) $(ADIAK_LDFLAGS) ############################################################################### # Cuda on LLNL Lassen w/ Caliper From 26ec548cee434636d277e0ec12a0c0d4372acba0 Mon Sep 17 00:00:00 2001 From: august-knox Date: Mon, 4 Nov 2024 11:42:10 -0800 Subject: [PATCH 19/41] adding duse_adiak --- src/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Makefile b/src/Makefile index 9c06023f..dc9cfaba 100644 --- a/src/Makefile +++ b/src/Makefile @@ -167,7 +167,7 @@ CALIPER_DIR = $(spack location --install-dir caliper) #CALIPER_DIR = ${HOME}/local/caliper/toss3-release #CALIPER_DIR = / CALIPER_FLAGS = -I${CALIPER_DIR}/include -DUSE_CALIPER -ADIAK_FLAGS = -I${ADIAK_DIR}/include +ADIAK_FLAGS = -I${ADIAK_DIR}/include -DUSE_ADIAK #CALIPER_LDFLAGS = -Wl,-rpath ${CALIPER_DIR}/lib64 -L${CALIPER_DIR}/lib64 -lcaliper #-lcaliper-mpi ADIAK_LDFLAGS = -L${ADIAK_DIR}/lib64 -ladiak CALIPER_LDFLAGS = -L${CALIPER_DIR}/lib64 -lcaliper From 87388cbd676f4f066d206ca8252386f3e8f777b7 Mon Sep 17 00:00:00 2001 From: august-knox Date: Mon, 4 Nov 2024 12:05:45 -0800 Subject: [PATCH 20/41] fix? --- src/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Makefile b/src/Makefile index dc9cfaba..d4d3ec6d 100644 --- a/src/Makefile +++ b/src/Makefile @@ -164,12 +164,13 @@ SHELL = /bin/bash ### GCC -- with MPI and OpenMP and Caliper support ############################################################################### CALIPER_DIR = $(spack location --install-dir caliper) +ADIAK_DIR = $(spack location --install-dir adiak) #CALIPER_DIR = ${HOME}/local/caliper/toss3-release #CALIPER_DIR = / CALIPER_FLAGS = -I${CALIPER_DIR}/include -DUSE_CALIPER ADIAK_FLAGS = -I${ADIAK_DIR}/include -DUSE_ADIAK #CALIPER_LDFLAGS = -Wl,-rpath ${CALIPER_DIR}/lib64 -L${CALIPER_DIR}/lib64 -lcaliper #-lcaliper-mpi -ADIAK_LDFLAGS = -L${ADIAK_DIR}/lib64 -ladiak +ADIAK_LDFLAGS = -L${ADIAK_DIR}/lib -ladiak CALIPER_LDFLAGS = -L${CALIPER_DIR}/lib64 -lcaliper OPENMP_FLAGS = -DHAVE_OPENMP -fopenmp OPENMP_LDFLAGS = -fopenmp From f492f311c86cb84620ebb090f235ba5e62511e3d Mon Sep 17 00:00:00 2001 From: august-knox Date: Mon, 4 Nov 2024 12:18:02 -0800 Subject: [PATCH 21/41] fixed maybe --- src/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Makefile b/src/Makefile index d4d3ec6d..479db38e 100644 --- a/src/Makefile +++ b/src/Makefile @@ -168,7 +168,7 @@ ADIAK_DIR = $(spack location --install-dir adiak) #CALIPER_DIR = ${HOME}/local/caliper/toss3-release #CALIPER_DIR = / CALIPER_FLAGS = -I${CALIPER_DIR}/include -DUSE_CALIPER -ADIAK_FLAGS = -I${ADIAK_DIR}/include -DUSE_ADIAK +ADIAK_INCLUDE = -I${ADIAK_DIR}/include #CALIPER_LDFLAGS = -Wl,-rpath ${CALIPER_DIR}/lib64 -L${CALIPER_DIR}/lib64 -lcaliper #-lcaliper-mpi ADIAK_LDFLAGS = -L${ADIAK_DIR}/lib -ladiak CALIPER_LDFLAGS = -L${CALIPER_DIR}/lib64 -lcaliper From d46a2840833814893f924473737954f266dae207 Mon Sep 17 00:00:00 2001 From: august-knox Date: Mon, 4 Nov 2024 12:20:18 -0800 Subject: [PATCH 22/41] fixed maybe --- src/main.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main.cc b/src/main.cc index 90f249eb..60ce593e 100644 --- a/src/main.cc +++ b/src/main.cc @@ -29,7 +29,7 @@ #ifdef USE_CALIPER #include #include -#include +#include #ifdef HAVE_MPI #include #endif From c7f263feb80521f4cde3f04d3611e18f59f74878 Mon Sep 17 00:00:00 2001 From: august-knox Date: Mon, 4 Nov 2024 12:24:40 -0800 Subject: [PATCH 23/41] fixing functions --- src/main.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main.cc b/src/main.cc index 60ce593e..6788bcfb 100644 --- a/src/main.cc +++ b/src/main.cc @@ -64,8 +64,8 @@ int main(int argc, char** argv) adiak::init(nullptr); adiak::date(); - adiak::adiak_collect_all(); - adiak::adiak_jobsize(); + adiak::collect_all(); + adiak::jobsize(); adiak::executable(); adiak::cmdline(); setupCaliper(); From 2b8e0a86cf0451b3c3b74d33370a1a77e4e2b6df Mon Sep 17 00:00:00 2001 From: august-knox Date: Mon, 4 Nov 2024 12:25:55 -0800 Subject: [PATCH 24/41] fixing functions --- src/main.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main.cc b/src/main.cc index 6788bcfb..0729350e 100644 --- a/src/main.cc +++ b/src/main.cc @@ -63,7 +63,7 @@ int main(int argc, char** argv) calimgr.start(); adiak::init(nullptr); - adiak::date(); + //adiak::date(); adiak::collect_all(); adiak::jobsize(); adiak::executable(); From e0b3fb2ada2d2aa7c6a3edda1f8b410855bbc336 Mon Sep 17 00:00:00 2001 From: august-knox Date: Mon, 4 Nov 2024 14:27:49 -0800 Subject: [PATCH 25/41] removing some adiak tracking --- src/main.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main.cc b/src/main.cc index 0729350e..6ff96e4c 100644 --- a/src/main.cc +++ b/src/main.cc @@ -64,9 +64,9 @@ int main(int argc, char** argv) adiak::init(nullptr); //adiak::date(); - adiak::collect_all(); + //adiak::collect_all(); adiak::jobsize(); - adiak::executable(); + //adiak::executable(); adiak::cmdline(); setupCaliper(); #endif From c92142f07542503ad913817663b0f4373516b08f Mon Sep 17 00:00:00 2001 From: august-knox Date: Wed, 6 Nov 2024 11:07:18 -0800 Subject: [PATCH 26/41] adding hostname tracking --- src/main.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main.cc b/src/main.cc index 6ff96e4c..3670c874 100644 --- a/src/main.cc +++ b/src/main.cc @@ -68,6 +68,7 @@ int main(int argc, char** argv) adiak::jobsize(); //adiak::executable(); adiak::cmdline(); + adiak::hostname(); setupCaliper(); #endif From 4c4e606d2ed0c9f750211b81433bf38af2140928 Mon Sep 17 00:00:00 2001 From: august-knox Date: Wed, 6 Nov 2024 16:49:05 -0800 Subject: [PATCH 27/41] moving adiak lines --- src/main.cc | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main.cc b/src/main.cc index 3670c874..fc890e1f 100644 --- a/src/main.cc +++ b/src/main.cc @@ -61,7 +61,7 @@ int main(int argc, char** argv) std::cerr << "caliper config error: " << calimgr.error_msg() << std::endl; calimgr.start(); - + setupCaliper(); adiak::init(nullptr); //adiak::date(); //adiak::collect_all(); @@ -69,7 +69,6 @@ int main(int argc, char** argv) //adiak::executable(); adiak::cmdline(); adiak::hostname(); - setupCaliper(); #endif // mcco stores just about everything. From 94b9a3a1878acc0694537c79fdf2537b00ced91d Mon Sep 17 00:00:00 2001 From: august-knox Date: Thu, 7 Nov 2024 10:12:22 -0800 Subject: [PATCH 28/41] additional adiak --- src/main.cc | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/main.cc b/src/main.cc index fc890e1f..e746dbd0 100644 --- a/src/main.cc +++ b/src/main.cc @@ -69,6 +69,17 @@ int main(int argc, char** argv) //adiak::executable(); adiak::cmdline(); adiak::hostname(); + adiak_namevalue("x-size of simulation", adiak_general, NULL, "%d", params.lx); + adiak_namevalue("y-size of simulation", adiak_general, NULL, "%d", params.ly); + adiak_namevalue("z-size of simulation", adiak_general, NULL, "%d", params.lz); + adiak_namevalue("number of particles", adiak_general, NULL, "%d", params.nParticles); + adiak_namevalue("number of mesh elements in x", adiak_general, NULL, "%d", params.nx); + adiak_namevalue("number of mesh elements in y", adiak_general, NULL, "%d", params.ny); + adiak_namevalue("number of mesh elements in z", adiak_general, NULL, "%d", params.nz); + + adiak_namevalue("number of MPI ranks in x", adiak_general, NULL, "%d", params.xDom); + adiak_namevalue("number of MPI ranks in y", adiak_general, NULL, "%d", params.yDom); + adiak_namevalue("number of MPI ranks in z", adiak_general, NULL, "%d", params.zDom); #endif // mcco stores just about everything. From 40ec0c3f3404316d7af7286aaf33db04d808ef73 Mon Sep 17 00:00:00 2001 From: august-knox Date: Thu, 7 Nov 2024 10:14:11 -0800 Subject: [PATCH 29/41] c++ --- src/main.cc | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/main.cc b/src/main.cc index e746dbd0..f7c9ab28 100644 --- a/src/main.cc +++ b/src/main.cc @@ -69,17 +69,17 @@ int main(int argc, char** argv) //adiak::executable(); adiak::cmdline(); adiak::hostname(); - adiak_namevalue("x-size of simulation", adiak_general, NULL, "%d", params.lx); - adiak_namevalue("y-size of simulation", adiak_general, NULL, "%d", params.ly); - adiak_namevalue("z-size of simulation", adiak_general, NULL, "%d", params.lz); - adiak_namevalue("number of particles", adiak_general, NULL, "%d", params.nParticles); - adiak_namevalue("number of mesh elements in x", adiak_general, NULL, "%d", params.nx); - adiak_namevalue("number of mesh elements in y", adiak_general, NULL, "%d", params.ny); - adiak_namevalue("number of mesh elements in z", adiak_general, NULL, "%d", params.nz); - - adiak_namevalue("number of MPI ranks in x", adiak_general, NULL, "%d", params.xDom); - adiak_namevalue("number of MPI ranks in y", adiak_general, NULL, "%d", params.yDom); - adiak_namevalue("number of MPI ranks in z", adiak_general, NULL, "%d", params.zDom); + adiak::adiak_namevalue("x-size of simulation", adiak_general, NULL, "%d", params.lx); + adiak::adiak_namevalue("y-size of simulation", adiak_general, NULL, "%d", params.ly); + adiak::adiak_namevalue("z-size of simulation", adiak_general, NULL, "%d", params.lz); + adiak::adiak_namevalue("number of particles", adiak_general, NULL, "%d", params.nParticles); + adiak::adiak_namevalue("number of mesh elements in x", adiak_general, NULL, "%d", params.nx); + adiak::adiak_namevalue("number of mesh elements in y", adiak_general, NULL, "%d", params.ny); + adiak::adiak_namevalue("number of mesh elements in z", adiak_general, NULL, "%d", params.nz); + + adiak::adiak_namevalue("number of MPI ranks in x", adiak_general, NULL, "%d", params.xDom); + adiak::adiak_namevalue("number of MPI ranks in y", adiak_general, NULL, "%d", params.yDom); + adiak::adiak_namevalue("number of MPI ranks in z", adiak_general, NULL, "%d", params.zDom); #endif // mcco stores just about everything. From fdcab7ed5c8b6a33e7fed46d8763167c8b000235 Mon Sep 17 00:00:00 2001 From: august-knox Date: Thu, 7 Nov 2024 12:04:19 -0800 Subject: [PATCH 30/41] fix params --- src/main.cc | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/main.cc b/src/main.cc index f7c9ab28..82e6dc6f 100644 --- a/src/main.cc +++ b/src/main.cc @@ -69,17 +69,17 @@ int main(int argc, char** argv) //adiak::executable(); adiak::cmdline(); adiak::hostname(); - adiak::adiak_namevalue("x-size of simulation", adiak_general, NULL, "%d", params.lx); - adiak::adiak_namevalue("y-size of simulation", adiak_general, NULL, "%d", params.ly); - adiak::adiak_namevalue("z-size of simulation", adiak_general, NULL, "%d", params.lz); - adiak::adiak_namevalue("number of particles", adiak_general, NULL, "%d", params.nParticles); - adiak::adiak_namevalue("number of mesh elements in x", adiak_general, NULL, "%d", params.nx); - adiak::adiak_namevalue("number of mesh elements in y", adiak_general, NULL, "%d", params.ny); - adiak::adiak_namevalue("number of mesh elements in z", adiak_general, NULL, "%d", params.nz); - - adiak::adiak_namevalue("number of MPI ranks in x", adiak_general, NULL, "%d", params.xDom); - adiak::adiak_namevalue("number of MPI ranks in y", adiak_general, NULL, "%d", params.yDom); - adiak::adiak_namevalue("number of MPI ranks in z", adiak_general, NULL, "%d", params.zDom); + adiak::adiak_namevalue("x-size of simulation", adiak_general, NULL, "%d", params.simulationParams.lx); + adiak::adiak_namevalue("y-size of simulation", adiak_general, NULL, "%d", params.simulationParams.ly); + adiak::adiak_namevalue("z-size of simulation", adiak_general, NULL, "%d", params.simulationParams.lz); + adiak::adiak_namevalue("number of particles", adiak_general, NULL, "%d", params.simulationParams.nParticles); + adiak::adiak_namevalue("number of mesh elements in x", adiak_general, NULL, "%d", params.simulationParams.nx); + adiak::adiak_namevalue("number of mesh elements in y", adiak_general, NULL, "%d", params.simulationParams.ny); + adiak::adiak_namevalue("number of mesh elements in z", adiak_general, NULL, "%d", params.simulationParams.nz); + + adiak::adiak_namevalue("number of MPI ranks in x", adiak_general, NULL, "%d", params.simulationParams.xDom); + adiak::adiak_namevalue("number of MPI ranks in y", adiak_general, NULL, "%d", params.simulationParams.yDom); + adiak::adiak_namevalue("number of MPI ranks in z", adiak_general, NULL, "%d", params.simulationParams.zDom); #endif // mcco stores just about everything. From 0105f4d3e6987415eea63f62e08abf962b5580c2 Mon Sep 17 00:00:00 2001 From: august-knox Date: Thu, 7 Nov 2024 13:26:00 -0800 Subject: [PATCH 31/41] possible fix --- src/main.cc | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/src/main.cc b/src/main.cc index 82e6dc6f..6b61eba7 100644 --- a/src/main.cc +++ b/src/main.cc @@ -69,17 +69,18 @@ int main(int argc, char** argv) //adiak::executable(); adiak::cmdline(); adiak::hostname(); - adiak::adiak_namevalue("x-size of simulation", adiak_general, NULL, "%d", params.simulationParams.lx); - adiak::adiak_namevalue("y-size of simulation", adiak_general, NULL, "%d", params.simulationParams.ly); - adiak::adiak_namevalue("z-size of simulation", adiak_general, NULL, "%d", params.simulationParams.lz); - adiak::adiak_namevalue("number of particles", adiak_general, NULL, "%d", params.simulationParams.nParticles); - adiak::adiak_namevalue("number of mesh elements in x", adiak_general, NULL, "%d", params.simulationParams.nx); - adiak::adiak_namevalue("number of mesh elements in y", adiak_general, NULL, "%d", params.simulationParams.ny); - adiak::adiak_namevalue("number of mesh elements in z", adiak_general, NULL, "%d", params.simulationParams.nz); - - adiak::adiak_namevalue("number of MPI ranks in x", adiak_general, NULL, "%d", params.simulationParams.xDom); - adiak::adiak_namevalue("number of MPI ranks in y", adiak_general, NULL, "%d", params.simulationParams.yDom); - adiak::adiak_namevalue("number of MPI ranks in z", adiak_general, NULL, "%d", params.simulationParams.zDom); + adiak::value("x-size of simulation", adiak_general, NULL, "%d", params.simulationParams.lx); + adiak::value("y-size of simulation", adiak_general, NULL, "%d", params.simulationParams.ly); + adiak::value("z-size of simulation", adiak_general, NULL, "%d", params.simulationParams.lz); + adiak::value("number of particles", adiak_general, NULL, "%d", params.simulationParams.nParticles); + adiak::value("number of mesh elements in x", adiak_general, NULL, "%d", params.simulationParams.nx); + adiak::value("number of mesh elements in y", adiak_general, NULL, "%d", params.simulationParams.ny); + adiak::value("number of mesh elements in z", adiak_general, NULL, "%d", params.simulationParams.nz); + + adiak::value("number of MPI ranks in x", adiak_general, NULL, "%d", params.simulationParams.xDom); + adiak::value("number of MPI ranks in y", adiak_general, NULL, "%d", params.simulationParams.yDom); + //adiak::adiak_namevalue("number of MPI ranks in y", adiak_general, NULL, "%d", params.simulationParams.yDom); + adiak::value("number of MPI ranks in z", adiak_general, NULL, "%d", params.simulationParams.zDom); #endif // mcco stores just about everything. From 334ba51259ae1375bc50f91474201f78d6798617 Mon Sep 17 00:00:00 2001 From: august-knox Date: Thu, 7 Nov 2024 13:33:57 -0800 Subject: [PATCH 32/41] fixing adiak notation --- src/main.cc | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/main.cc b/src/main.cc index 6b61eba7..a60c5d3d 100644 --- a/src/main.cc +++ b/src/main.cc @@ -69,18 +69,18 @@ int main(int argc, char** argv) //adiak::executable(); adiak::cmdline(); adiak::hostname(); - adiak::value("x-size of simulation", adiak_general, NULL, "%d", params.simulationParams.lx); - adiak::value("y-size of simulation", adiak_general, NULL, "%d", params.simulationParams.ly); - adiak::value("z-size of simulation", adiak_general, NULL, "%d", params.simulationParams.lz); - adiak::value("number of particles", adiak_general, NULL, "%d", params.simulationParams.nParticles); - adiak::value("number of mesh elements in x", adiak_general, NULL, "%d", params.simulationParams.nx); - adiak::value("number of mesh elements in y", adiak_general, NULL, "%d", params.simulationParams.ny); - adiak::value("number of mesh elements in z", adiak_general, NULL, "%d", params.simulationParams.nz); - - adiak::value("number of MPI ranks in x", adiak_general, NULL, "%d", params.simulationParams.xDom); - adiak::value("number of MPI ranks in y", adiak_general, NULL, "%d", params.simulationParams.yDom); + adiak::value("x-size of simulation", params.simulationParams.lx); + adiak::value("y-size of simulation", params.simulationParams.ly); + adiak::value("z-size of simulation", params.simulationParams.lz); + adiak::value("number of particles", params.simulationParams.nParticles); + adiak::value("number of mesh elements in x", params.simulationParams.nx); + adiak::value("number of mesh elements in y", params.simulationParams.ny); + adiak::value("number of mesh elements in z", params.simulationParams.nz); + + adiak::value("number of MPI ranks in x", params.simulationParams.xDom); + adiak::value("number of MPI ranks in y", params.simulationParams.yDom); //adiak::adiak_namevalue("number of MPI ranks in y", adiak_general, NULL, "%d", params.simulationParams.yDom); - adiak::value("number of MPI ranks in z", adiak_general, NULL, "%d", params.simulationParams.zDom); + adiak::value("number of MPI ranks in z", params.simulationParams.zDom); #endif // mcco stores just about everything. From bb24b68ec0b2eb91fb098fabc352c8703dd9c5f7 Mon Sep 17 00:00:00 2001 From: august-knox Date: Mon, 18 Nov 2024 09:50:17 -0800 Subject: [PATCH 33/41] collect_all --- src/main.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main.cc b/src/main.cc index a60c5d3d..2f2e5fca 100644 --- a/src/main.cc +++ b/src/main.cc @@ -64,11 +64,11 @@ int main(int argc, char** argv) setupCaliper(); adiak::init(nullptr); //adiak::date(); - //adiak::collect_all(); - adiak::jobsize(); + adiak::collect_all(); + // adiak::jobsize(); //adiak::executable(); - adiak::cmdline(); - adiak::hostname(); + //adiak::cmdline(); + //adiak::hostname(); adiak::value("x-size of simulation", params.simulationParams.lx); adiak::value("y-size of simulation", params.simulationParams.ly); adiak::value("z-size of simulation", params.simulationParams.lz); From 9432d5d697efacfd46a1c3a35325749d729cbb69 Mon Sep 17 00:00:00 2001 From: august-knox Date: Mon, 18 Nov 2024 09:54:42 -0800 Subject: [PATCH 34/41] nSteps --- src/main.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main.cc b/src/main.cc index 2f2e5fca..ad5eb054 100644 --- a/src/main.cc +++ b/src/main.cc @@ -91,7 +91,7 @@ int main(int argc, char** argv) MC_FASTTIMER_START(MC_Fast_Timer::main); // this can be done once mcco exist. const int nSteps = params.simulationParams.nSteps; - + adiak::value("number of steps", params.simulationParams.nSteps); #ifdef USE_CALIPER CALI_CXX_MARK_LOOP_BEGIN(mainloop, "qs.mainloop"); #endif From da899a6dc8aaee44a0767e07c1bebdf13c626078 Mon Sep 17 00:00:00 2001 From: august-knox Date: Mon, 18 Nov 2024 15:32:58 -0800 Subject: [PATCH 35/41] adding FOM to metadata --- src/MC_Fast_Timer.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/MC_Fast_Timer.cc b/src/MC_Fast_Timer.cc index 70aa7bf9..94b27556 100644 --- a/src/MC_Fast_Timer.cc +++ b/src/MC_Fast_Timer.cc @@ -4,6 +4,7 @@ #include "MC_Processor_Info.hh" #include "Globals.hh" #include "portability.hh" +#include const char *mc_fast_timer_names[MC_Fast_Timer::Num_Timers] = { @@ -102,6 +103,7 @@ void MC_Fast_Timer_Container::Cumulative_Report(int mpi_rank, int num_ranks, MPI (numSegments / (max_clock[cycleTracking_Index]*1e-6)), "[Num Segments / Cycle Tracking Time]" ); } + adiak::value("FOM", numSegments / (max_clock[cycleTracking_Index]*1e-6)); } void MC_Fast_Timer_Container::Last_Cycle_Report(int report_time, int mpi_rank, int num_ranks, MPI_Comm comm_world) From b2b1a76c328dcd0d86e53ef9428b1010b3a8acf5 Mon Sep 17 00:00:00 2001 From: august-knox Date: Mon, 18 Nov 2024 15:42:00 -0800 Subject: [PATCH 36/41] moving adiak variable --- src/MC_Fast_Timer.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/MC_Fast_Timer.cc b/src/MC_Fast_Timer.cc index 94b27556..a5f8b6ea 100644 --- a/src/MC_Fast_Timer.cc +++ b/src/MC_Fast_Timer.cc @@ -102,8 +102,8 @@ void MC_Fast_Timer_Container::Cumulative_Report(int mpi_rank, int num_ranks, MPI "Figure Of Merit", (numSegments / (max_clock[cycleTracking_Index]*1e-6)), "[Num Segments / Cycle Tracking Time]" ); + adiak::value("FOM", numSegments / (max_clock[cycleTracking_Index]*1e-6)); } - adiak::value("FOM", numSegments / (max_clock[cycleTracking_Index]*1e-6)); } void MC_Fast_Timer_Container::Last_Cycle_Report(int report_time, int mpi_rank, int num_ranks, MPI_Comm comm_world) From c1ce81093d1525a6d19d3c4c1efe98746194774d Mon Sep 17 00:00:00 2001 From: august-knox Date: Wed, 20 Nov 2024 11:52:19 -0800 Subject: [PATCH 37/41] adding import stdlib --- src/main.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main.cc b/src/main.cc index ad5eb054..fe2d9897 100644 --- a/src/main.cc +++ b/src/main.cc @@ -22,6 +22,7 @@ #include "CycleTracking.hh" #include "CoralBenchmark.hh" #include "EnergySpectrum.hh" +#include #include "git_hash.hh" #include "git_vers.hh" From d1ad1955efb7cd040cb6a44d827b81481858a61f Mon Sep 17 00:00:00 2001 From: august-knox Date: Wed, 20 Nov 2024 11:55:54 -0800 Subject: [PATCH 38/41] adding import stdlib --- src/EnergySpectrum.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/src/EnergySpectrum.cc b/src/EnergySpectrum.cc index 553b3fe5..f3c3012f 100644 --- a/src/EnergySpectrum.cc +++ b/src/EnergySpectrum.cc @@ -6,6 +6,7 @@ #include "MC_Processor_Info.hh" #include "Parameters.hh" #include +#include using std::string; From b55703e8c2bd82bb07ac3be9011dfb0ae528e75d Mon Sep 17 00:00:00 2001 From: august-knox Date: Wed, 20 Nov 2024 11:58:08 -0800 Subject: [PATCH 39/41] adding import stdlib --- src/EnergySpectrum.hh | 1 + 1 file changed, 1 insertion(+) diff --git a/src/EnergySpectrum.hh b/src/EnergySpectrum.hh index 0f7d1790..d9733920 100644 --- a/src/EnergySpectrum.hh +++ b/src/EnergySpectrum.hh @@ -2,6 +2,7 @@ #define ENERGYSPECTRUM_HH #include #include +#include class MonteCarlo; From 8d11b4681bb6676448ece95bd637a2de3057c762 Mon Sep 17 00:00:00 2001 From: august-knox Date: Wed, 20 Nov 2024 12:00:15 -0800 Subject: [PATCH 40/41] adding import stdlib --- src/NuclearData.hh | 1 + 1 file changed, 1 insertion(+) diff --git a/src/NuclearData.hh b/src/NuclearData.hh index 6760568c..60011e9a 100644 --- a/src/NuclearData.hh +++ b/src/NuclearData.hh @@ -9,6 +9,7 @@ #include #include "qs_assert.hh" #include "DeclareMacro.hh" +#include class Polynomial { From 735c86b8d400afd90c55aea3148725be0e97cbdb Mon Sep 17 00:00:00 2001 From: august-knox Date: Wed, 20 Nov 2024 12:02:06 -0800 Subject: [PATCH 41/41] adding import stdlib --- src/Parameters.hh | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Parameters.hh b/src/Parameters.hh index d4ce91c4..512f29f6 100644 --- a/src/Parameters.hh +++ b/src/Parameters.hh @@ -8,6 +8,7 @@ #include #include #include +#include struct GeometryParameters {