diff --git a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/Makefile b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/Makefile index 916667d0ef..9ce0cb9d7a 100644 --- a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/Makefile +++ b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/Makefile @@ -379,11 +379,14 @@ $(LIBDIR)/lib$(MG5AMC_COMMONLIB).so: ../../src/*.h ../../src/*.cc #------------------------------------------------------------------------------- -MG5AMC_CXXLIB = mg5amc_cxx +processid_short=$(shell basename $(CURDIR) | awk -F_ '{print $$(NF-1)"_"$$NF}') +###$(info processid_short=$(processid_short)) + +MG5AMC_CXXLIB = mg5amc_$(processid_short)_cxx cxx_objects=$(BUILDDIR)/CPPProcess.o $(BUILDDIR)/RandomNumberKernels.o $(BUILDDIR)/RamboSamplingKernels.o $(BUILDDIR)/MatrixElementKernels.o $(BUILDDIR)/BridgeKernels.o $(BUILDDIR)/CrossSectionKernels.o ifneq ($(NVCC),) -MG5AMC_CULIB = mg5amc_cu +MG5AMC_CULIB = mg5amc_$(processid_short)_cu cu_objects=$(BUILDDIR)/gCPPProcess.o $(BUILDDIR)/gRandomNumberKernels.o $(BUILDDIR)/gRamboSamplingKernels.o $(BUILDDIR)/gMatrixElementKernels.o $(BUILDDIR)/gBridgeKernels.o $(BUILDDIR)/gCrossSectionKernels.o endif @@ -405,7 +408,7 @@ endif # Target (and build rules): Fortran include files $(INCDIR)/%%.inc : ../%%.inc @if [ ! -d $(INCDIR) ]; then echo "mkdir -p $(INCDIR)"; mkdir -p $(INCDIR); fi - cp -i $< $@ + \cp $< $@ #------------------------------------------------------------------------------- diff --git a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/process_function_definitions.inc b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/process_function_definitions.inc index c2c5bca0be..b0e40ab1f5 100644 --- a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/process_function_definitions.inc +++ b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/process_function_definitions.inc @@ -285,7 +285,9 @@ namespace mg5amcCpu mgDebugInitialise(); // Denominators: spins, colors and identical particles - const int denominators = %(den_factors)s; // FIXME: assume process.nprocesses == 1 for the moment (eventually denominators[nprocesses]?) + constexpr int nprocesses = %(nproc)i; + static_assert( nprocesses == 1, "Assume nprocesses == 1" ); // FIXME (#343): assume nprocesses == 1 + constexpr int denominators[%(nproc)i] = { %(den_factors)s }; // Set the parameters which change event by event // Need to discuss this with Stefan diff --git a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/process_sigmaKin_function.inc b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/process_sigmaKin_function.inc index d15e2b2980..da4042bde9 100644 --- a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/process_sigmaKin_function.inc +++ b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/madgraph/iolibs/template_files/gpu/process_sigmaKin_function.inc @@ -32,12 +32,12 @@ // https://www.uzh.ch/cmsssl/physik/dam/jcr:2e24b7b1-f4d7-4160-817e-47b13dbf1d7c/Handout_4_2016-UZH.pdf] // FIXME: assume process.nprocesses == 1 for the moment (eventually: need a loop over processes here?) #ifdef __CUDACC__ - allMEs[ievt] /= denominators; + allMEs[ievt] /= denominators[0]; // FIXME (#343): assume nprocesses == 1 #else for( int ipagV = 0; ipagV < npagV; ++ipagV ) { for( int ieppV = 0; ieppV < neppV; ieppV++ ) - allMEs[ipagV * neppV + ieppV] /= denominators; + allMEs[ipagV * neppV + ieppV] /= denominators[0]; // FIXME (#343): assume nprocesses == 1 } #endif mgDebugFinalise(); diff --git a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/model_handling.py b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/model_handling.py index e038f2d85b..d10864fd45 100644 --- a/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/model_handling.py +++ b/epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/model_handling.py @@ -1050,6 +1050,9 @@ def get_process_info_lines(self, matrix_element): def generate_process_files(self): """Generate mgOnGpuConfig.h, CPPProcess.cc, CPPProcess.h, check_sa.cc, gXXX.cu links""" misc.sprint('Entering PLUGIN_OneProcessExporter.generate_process_files') + if self.matrix_elements[0].get('has_mirror_process'): + self.matrix_elements[0].set('has_mirror_process', False) + self.nprocesses/=2 super(export_cpp.OneProcessExporterGPU, self).generate_process_files() self.edit_check_sa() self.edit_mgonGPU() diff --git a/epochX/cudacpp/ee_mumu.auto/CODEGEN_cudacpp_ee_mumu_log.txt b/epochX/cudacpp/ee_mumu.auto/CODEGEN_cudacpp_ee_mumu_log.txt index 32c2eb9721..3883738c37 100644 --- a/epochX/cudacpp/ee_mumu.auto/CODEGEN_cudacpp_ee_mumu_log.txt +++ b/epochX/cudacpp/ee_mumu.auto/CODEGEN_cudacpp_ee_mumu_log.txt @@ -50,7 +50,7 @@ generate e+ e- > mu+ mu- No model currently active, so we import the Standard Model INFO: load particles INFO: load vertices -DEBUG: model prefixing takes 0.006870269775390625  +DEBUG: model prefixing takes 0.006913900375366211  INFO: Restrict model sm with file models/sm/restrict_default.dat . INFO: Change particles name to pass to MG5 convention Defined multiparticle p = g u c d s u~ c~ d~ s~ @@ -84,15 +84,15 @@ INFO: Processing color information for process: e+ e- > mu+ mu- @1 INFO: Creating files in directory /data/avalassi/GPU2020/MG5aMC/3.1.1_lo_vectorization/CODEGEN_cudacpp_ee_mumu/SubProcesses/P1_Sigma_sm_epem_mupmum DEBUG: Entering PLUGIN_OneProcessExporter.generate_process_files [model_handling.py at line 1052]  FileWriter for /data/avalassi/GPU2020/MG5aMC/3.1.1_lo_vectorization/CODEGEN_cudacpp_ee_mumu/SubProcesses/P1_Sigma_sm_epem_mupmum/./CPPProcess.h -DEBUG: Entering PLUGIN_OneProcessExporter.write_process_h_file [model_handling.py at line 1118]  +DEBUG: Entering PLUGIN_OneProcessExporter.write_process_h_file [model_handling.py at line 1121]  FileWriter for /data/avalassi/GPU2020/MG5aMC/3.1.1_lo_vectorization/CODEGEN_cudacpp_ee_mumu/SubProcesses/P1_Sigma_sm_epem_mupmum/./CPPProcess.cc -DEBUG: Entering PLUGIN_OneProcessExporter.write_process_cc_file [model_handling.py at line 1140]  +DEBUG: Entering PLUGIN_OneProcessExporter.write_process_cc_file [model_handling.py at line 1143]  DEBUG: only one Matrix-element supported?  INFO: Created files CPPProcess.h and CPPProcess.cc in directory /data/avalassi/GPU2020/MG5aMC/3.1.1_lo_vectorization/CODEGEN_cudacpp_ee_mumu/SubProcesses/P1_Sigma_sm_epem_mupmum/. -DEBUG: Entering PLUGIN_OneProcessExporter.edit_check_sa [model_handling.py at line 1070]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_mgonGPU [model_handling.py at line 1087]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_processidfile [model_handling.py at line 1094]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_testxxx [model_handling.py at line 1106]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_check_sa [model_handling.py at line 1073]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_mgonGPU [model_handling.py at line 1090]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_processidfile [model_handling.py at line 1097]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_testxxx [model_handling.py at line 1109]  Generated helas calls for 1 subprocesses (2 diagrams) in 0.005 s DEBUG: Entering PLUGIN_ProcessExporter.convert_model (create the model) [output.py at line 176]  ALOHA: aloha starts to compute helicity amplitudes @@ -126,6 +126,6 @@ INFO: /data/avalassi/GPU2020/MG5aMC/3.1.1_lo_vectorization/CODEGEN_cudacpp_ee_mu DEBUG: Entering PLUGIN_ProcessExporter.finalize [output.py at line 185]  quit -real 0m1.059s -user 0m0.914s -sys 0m0.125s +real 0m1.076s +user 0m0.925s +sys 0m0.123s diff --git a/epochX/cudacpp/ee_mumu.auto/SubProcesses/Makefile b/epochX/cudacpp/ee_mumu.auto/SubProcesses/Makefile index 31ec657ecb..361206bf29 100644 --- a/epochX/cudacpp/ee_mumu.auto/SubProcesses/Makefile +++ b/epochX/cudacpp/ee_mumu.auto/SubProcesses/Makefile @@ -379,11 +379,14 @@ $(LIBDIR)/lib$(MG5AMC_COMMONLIB).so: ../../src/*.h ../../src/*.cc #------------------------------------------------------------------------------- -MG5AMC_CXXLIB = mg5amc_cxx +processid_short=$(shell basename $(CURDIR) | awk -F_ '{print $$(NF-1)"_"$$NF}') +###$(info processid_short=$(processid_short)) + +MG5AMC_CXXLIB = mg5amc_$(processid_short)_cxx cxx_objects=$(BUILDDIR)/CPPProcess.o $(BUILDDIR)/RandomNumberKernels.o $(BUILDDIR)/RamboSamplingKernels.o $(BUILDDIR)/MatrixElementKernels.o $(BUILDDIR)/BridgeKernels.o $(BUILDDIR)/CrossSectionKernels.o ifneq ($(NVCC),) -MG5AMC_CULIB = mg5amc_cu +MG5AMC_CULIB = mg5amc_$(processid_short)_cu cu_objects=$(BUILDDIR)/gCPPProcess.o $(BUILDDIR)/gRandomNumberKernels.o $(BUILDDIR)/gRamboSamplingKernels.o $(BUILDDIR)/gMatrixElementKernels.o $(BUILDDIR)/gBridgeKernels.o $(BUILDDIR)/gCrossSectionKernels.o endif @@ -405,7 +408,7 @@ endif # Target (and build rules): Fortran include files $(INCDIR)/%.inc : ../%.inc @if [ ! -d $(INCDIR) ]; then echo "mkdir -p $(INCDIR)"; mkdir -p $(INCDIR); fi - cp -i $< $@ + \cp $< $@ #------------------------------------------------------------------------------- diff --git a/epochX/cudacpp/ee_mumu.auto/SubProcesses/P1_Sigma_sm_epem_mupmum/CPPProcess.cc b/epochX/cudacpp/ee_mumu.auto/SubProcesses/P1_Sigma_sm_epem_mupmum/CPPProcess.cc index 90e77434ac..86554d9439 100644 --- a/epochX/cudacpp/ee_mumu.auto/SubProcesses/P1_Sigma_sm_epem_mupmum/CPPProcess.cc +++ b/epochX/cudacpp/ee_mumu.auto/SubProcesses/P1_Sigma_sm_epem_mupmum/CPPProcess.cc @@ -511,7 +511,9 @@ namespace mg5amcCpu mgDebugInitialise(); // Denominators: spins, colors and identical particles - const int denominators = 4; // FIXME: assume process.nprocesses == 1 for the moment (eventually denominators[nprocesses]?) + constexpr int nprocesses = 1; + static_assert( nprocesses == 1, "Assume nprocesses == 1" ); // FIXME (#343): assume nprocesses == 1 + constexpr int denominators[1] = { 4 }; // Set the parameters which change event by event // Need to discuss this with Stefan @@ -561,12 +563,12 @@ namespace mg5amcCpu // https://www.uzh.ch/cmsssl/physik/dam/jcr:2e24b7b1-f4d7-4160-817e-47b13dbf1d7c/Handout_4_2016-UZH.pdf] // FIXME: assume process.nprocesses == 1 for the moment (eventually: need a loop over processes here?) #ifdef __CUDACC__ - allMEs[ievt] /= denominators; + allMEs[ievt] /= denominators[0]; // FIXME (#343): assume nprocesses == 1 #else for( int ipagV = 0; ipagV < npagV; ++ipagV ) { for( int ieppV = 0; ieppV < neppV; ieppV++ ) - allMEs[ipagV * neppV + ieppV] /= denominators; + allMEs[ipagV * neppV + ieppV] /= denominators[0]; // FIXME (#343): assume nprocesses == 1 } #endif mgDebugFinalise(); diff --git a/epochX/cudacpp/ee_mumu/SubProcesses/Makefile b/epochX/cudacpp/ee_mumu/SubProcesses/Makefile index 31ec657ecb..361206bf29 100644 --- a/epochX/cudacpp/ee_mumu/SubProcesses/Makefile +++ b/epochX/cudacpp/ee_mumu/SubProcesses/Makefile @@ -379,11 +379,14 @@ $(LIBDIR)/lib$(MG5AMC_COMMONLIB).so: ../../src/*.h ../../src/*.cc #------------------------------------------------------------------------------- -MG5AMC_CXXLIB = mg5amc_cxx +processid_short=$(shell basename $(CURDIR) | awk -F_ '{print $$(NF-1)"_"$$NF}') +###$(info processid_short=$(processid_short)) + +MG5AMC_CXXLIB = mg5amc_$(processid_short)_cxx cxx_objects=$(BUILDDIR)/CPPProcess.o $(BUILDDIR)/RandomNumberKernels.o $(BUILDDIR)/RamboSamplingKernels.o $(BUILDDIR)/MatrixElementKernels.o $(BUILDDIR)/BridgeKernels.o $(BUILDDIR)/CrossSectionKernels.o ifneq ($(NVCC),) -MG5AMC_CULIB = mg5amc_cu +MG5AMC_CULIB = mg5amc_$(processid_short)_cu cu_objects=$(BUILDDIR)/gCPPProcess.o $(BUILDDIR)/gRandomNumberKernels.o $(BUILDDIR)/gRamboSamplingKernels.o $(BUILDDIR)/gMatrixElementKernels.o $(BUILDDIR)/gBridgeKernels.o $(BUILDDIR)/gCrossSectionKernels.o endif @@ -405,7 +408,7 @@ endif # Target (and build rules): Fortran include files $(INCDIR)/%.inc : ../%.inc @if [ ! -d $(INCDIR) ]; then echo "mkdir -p $(INCDIR)"; mkdir -p $(INCDIR); fi - cp -i $< $@ + \cp $< $@ #------------------------------------------------------------------------------- diff --git a/epochX/cudacpp/ee_mumu/SubProcesses/P1_Sigma_sm_epem_mupmum/CPPProcess.cc b/epochX/cudacpp/ee_mumu/SubProcesses/P1_Sigma_sm_epem_mupmum/CPPProcess.cc index 90e77434ac..86554d9439 100644 --- a/epochX/cudacpp/ee_mumu/SubProcesses/P1_Sigma_sm_epem_mupmum/CPPProcess.cc +++ b/epochX/cudacpp/ee_mumu/SubProcesses/P1_Sigma_sm_epem_mupmum/CPPProcess.cc @@ -511,7 +511,9 @@ namespace mg5amcCpu mgDebugInitialise(); // Denominators: spins, colors and identical particles - const int denominators = 4; // FIXME: assume process.nprocesses == 1 for the moment (eventually denominators[nprocesses]?) + constexpr int nprocesses = 1; + static_assert( nprocesses == 1, "Assume nprocesses == 1" ); // FIXME (#343): assume nprocesses == 1 + constexpr int denominators[1] = { 4 }; // Set the parameters which change event by event // Need to discuss this with Stefan @@ -561,12 +563,12 @@ namespace mg5amcCpu // https://www.uzh.ch/cmsssl/physik/dam/jcr:2e24b7b1-f4d7-4160-817e-47b13dbf1d7c/Handout_4_2016-UZH.pdf] // FIXME: assume process.nprocesses == 1 for the moment (eventually: need a loop over processes here?) #ifdef __CUDACC__ - allMEs[ievt] /= denominators; + allMEs[ievt] /= denominators[0]; // FIXME (#343): assume nprocesses == 1 #else for( int ipagV = 0; ipagV < npagV; ++ipagV ) { for( int ieppV = 0; ieppV < neppV; ieppV++ ) - allMEs[ipagV * neppV + ieppV] /= denominators; + allMEs[ipagV * neppV + ieppV] /= denominators[0]; // FIXME (#343): assume nprocesses == 1 } #endif mgDebugFinalise(); diff --git a/epochX/cudacpp/gg_tt.auto/CODEGEN_cudacpp_gg_tt_log.txt b/epochX/cudacpp/gg_tt.auto/CODEGEN_cudacpp_gg_tt_log.txt index 7591ae9292..1b721b869f 100644 --- a/epochX/cudacpp/gg_tt.auto/CODEGEN_cudacpp_gg_tt_log.txt +++ b/epochX/cudacpp/gg_tt.auto/CODEGEN_cudacpp_gg_tt_log.txt @@ -50,7 +50,7 @@ generate g g > t t~ No model currently active, so we import the Standard Model INFO: load particles INFO: load vertices -DEBUG: model prefixing takes 0.006856679916381836  +DEBUG: model prefixing takes 0.006908893585205078  INFO: Restrict model sm with file models/sm/restrict_default.dat . INFO: Change particles name to pass to MG5 convention Defined multiparticle p = g u c d s u~ c~ d~ s~ @@ -85,25 +85,25 @@ INFO: Processing color information for process: g g > t t~ @1 INFO: Creating files in directory /data/avalassi/GPU2020/MG5aMC/3.1.1_lo_vectorization/CODEGEN_cudacpp_gg_tt/SubProcesses/P1_Sigma_sm_gg_ttx DEBUG: Entering PLUGIN_OneProcessExporter.generate_process_files [model_handling.py at line 1052]  FileWriter for /data/avalassi/GPU2020/MG5aMC/3.1.1_lo_vectorization/CODEGEN_cudacpp_gg_tt/SubProcesses/P1_Sigma_sm_gg_ttx/./CPPProcess.h -DEBUG: Entering PLUGIN_OneProcessExporter.write_process_h_file [model_handling.py at line 1118]  +DEBUG: Entering PLUGIN_OneProcessExporter.write_process_h_file [model_handling.py at line 1121]  FileWriter for /data/avalassi/GPU2020/MG5aMC/3.1.1_lo_vectorization/CODEGEN_cudacpp_gg_tt/SubProcesses/P1_Sigma_sm_gg_ttx/./CPPProcess.cc -DEBUG: Entering PLUGIN_OneProcessExporter.write_process_cc_file [model_handling.py at line 1140]  -DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1426]  -DEBUG: ('ZERO', 0, -1, 0, 0) [model_handling.py at line 1427]  -DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1426]  -DEBUG: ('ZERO', 1, -1, 1, 1) [model_handling.py at line 1427]  +DEBUG: Entering PLUGIN_OneProcessExporter.write_process_cc_file [model_handling.py at line 1143]  +DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1429]  +DEBUG: ('ZERO', 0, -1, 0, 0) [model_handling.py at line 1430]  +DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1429]  +DEBUG: ('ZERO', 1, -1, 1, 1) [model_handling.py at line 1430]  DEBUG: only one Matrix-element supported?  INFO: Created files CPPProcess.h and CPPProcess.cc in directory /data/avalassi/GPU2020/MG5aMC/3.1.1_lo_vectorization/CODEGEN_cudacpp_gg_tt/SubProcesses/P1_Sigma_sm_gg_ttx/. -DEBUG: Entering PLUGIN_OneProcessExporter.edit_check_sa [model_handling.py at line 1070]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_mgonGPU [model_handling.py at line 1087]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_processidfile [model_handling.py at line 1094]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_testxxx [model_handling.py at line 1106]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_check_sa [model_handling.py at line 1073]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_mgonGPU [model_handling.py at line 1090]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_processidfile [model_handling.py at line 1097]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_testxxx [model_handling.py at line 1109]  Generated helas calls for 1 subprocesses (3 diagrams) in 0.008 s DEBUG: Entering PLUGIN_ProcessExporter.convert_model (create the model) [output.py at line 176]  ALOHA: aloha starts to compute helicity amplitudes ALOHA: aloha creates VVV1 set of routines with options: P0 ALOHA: aloha creates FFV1 routines -ALOHA: aloha creates 2 routines in 0.163 s +ALOHA: aloha creates 2 routines in 0.162 s VVV1 DEBUG: language =  [aloha_writers.py at line 2451]  FFV1 @@ -121,6 +121,6 @@ INFO: /data/avalassi/GPU2020/MG5aMC/3.1.1_lo_vectorization/CODEGEN_cudacpp_gg_tt DEBUG: Entering PLUGIN_ProcessExporter.finalize [output.py at line 185]  quit -real 0m1.080s -user 0m0.773s -sys 0m0.129s +real 0m1.152s +user 0m0.777s +sys 0m0.141s diff --git a/epochX/cudacpp/gg_tt.auto/SubProcesses/Makefile b/epochX/cudacpp/gg_tt.auto/SubProcesses/Makefile index 31ec657ecb..361206bf29 100644 --- a/epochX/cudacpp/gg_tt.auto/SubProcesses/Makefile +++ b/epochX/cudacpp/gg_tt.auto/SubProcesses/Makefile @@ -379,11 +379,14 @@ $(LIBDIR)/lib$(MG5AMC_COMMONLIB).so: ../../src/*.h ../../src/*.cc #------------------------------------------------------------------------------- -MG5AMC_CXXLIB = mg5amc_cxx +processid_short=$(shell basename $(CURDIR) | awk -F_ '{print $$(NF-1)"_"$$NF}') +###$(info processid_short=$(processid_short)) + +MG5AMC_CXXLIB = mg5amc_$(processid_short)_cxx cxx_objects=$(BUILDDIR)/CPPProcess.o $(BUILDDIR)/RandomNumberKernels.o $(BUILDDIR)/RamboSamplingKernels.o $(BUILDDIR)/MatrixElementKernels.o $(BUILDDIR)/BridgeKernels.o $(BUILDDIR)/CrossSectionKernels.o ifneq ($(NVCC),) -MG5AMC_CULIB = mg5amc_cu +MG5AMC_CULIB = mg5amc_$(processid_short)_cu cu_objects=$(BUILDDIR)/gCPPProcess.o $(BUILDDIR)/gRandomNumberKernels.o $(BUILDDIR)/gRamboSamplingKernels.o $(BUILDDIR)/gMatrixElementKernels.o $(BUILDDIR)/gBridgeKernels.o $(BUILDDIR)/gCrossSectionKernels.o endif @@ -405,7 +408,7 @@ endif # Target (and build rules): Fortran include files $(INCDIR)/%.inc : ../%.inc @if [ ! -d $(INCDIR) ]; then echo "mkdir -p $(INCDIR)"; mkdir -p $(INCDIR); fi - cp -i $< $@ + \cp $< $@ #------------------------------------------------------------------------------- diff --git a/epochX/cudacpp/gg_tt.auto/SubProcesses/P1_Sigma_sm_gg_ttx/CPPProcess.cc b/epochX/cudacpp/gg_tt.auto/SubProcesses/P1_Sigma_sm_gg_ttx/CPPProcess.cc index f70c4ca46d..fc4d9a4488 100644 --- a/epochX/cudacpp/gg_tt.auto/SubProcesses/P1_Sigma_sm_gg_ttx/CPPProcess.cc +++ b/epochX/cudacpp/gg_tt.auto/SubProcesses/P1_Sigma_sm_gg_ttx/CPPProcess.cc @@ -516,7 +516,9 @@ namespace mg5amcCpu mgDebugInitialise(); // Denominators: spins, colors and identical particles - const int denominators = 256; // FIXME: assume process.nprocesses == 1 for the moment (eventually denominators[nprocesses]?) + constexpr int nprocesses = 1; + static_assert( nprocesses == 1, "Assume nprocesses == 1" ); // FIXME (#343): assume nprocesses == 1 + constexpr int denominators[1] = { 256 }; // Set the parameters which change event by event // Need to discuss this with Stefan @@ -566,12 +568,12 @@ namespace mg5amcCpu // https://www.uzh.ch/cmsssl/physik/dam/jcr:2e24b7b1-f4d7-4160-817e-47b13dbf1d7c/Handout_4_2016-UZH.pdf] // FIXME: assume process.nprocesses == 1 for the moment (eventually: need a loop over processes here?) #ifdef __CUDACC__ - allMEs[ievt] /= denominators; + allMEs[ievt] /= denominators[0]; // FIXME (#343): assume nprocesses == 1 #else for( int ipagV = 0; ipagV < npagV; ++ipagV ) { for( int ieppV = 0; ieppV < neppV; ieppV++ ) - allMEs[ipagV * neppV + ieppV] /= denominators; + allMEs[ipagV * neppV + ieppV] /= denominators[0]; // FIXME (#343): assume nprocesses == 1 } #endif mgDebugFinalise(); diff --git a/epochX/cudacpp/gg_tt/SubProcesses/Makefile b/epochX/cudacpp/gg_tt/SubProcesses/Makefile index 31ec657ecb..361206bf29 100644 --- a/epochX/cudacpp/gg_tt/SubProcesses/Makefile +++ b/epochX/cudacpp/gg_tt/SubProcesses/Makefile @@ -379,11 +379,14 @@ $(LIBDIR)/lib$(MG5AMC_COMMONLIB).so: ../../src/*.h ../../src/*.cc #------------------------------------------------------------------------------- -MG5AMC_CXXLIB = mg5amc_cxx +processid_short=$(shell basename $(CURDIR) | awk -F_ '{print $$(NF-1)"_"$$NF}') +###$(info processid_short=$(processid_short)) + +MG5AMC_CXXLIB = mg5amc_$(processid_short)_cxx cxx_objects=$(BUILDDIR)/CPPProcess.o $(BUILDDIR)/RandomNumberKernels.o $(BUILDDIR)/RamboSamplingKernels.o $(BUILDDIR)/MatrixElementKernels.o $(BUILDDIR)/BridgeKernels.o $(BUILDDIR)/CrossSectionKernels.o ifneq ($(NVCC),) -MG5AMC_CULIB = mg5amc_cu +MG5AMC_CULIB = mg5amc_$(processid_short)_cu cu_objects=$(BUILDDIR)/gCPPProcess.o $(BUILDDIR)/gRandomNumberKernels.o $(BUILDDIR)/gRamboSamplingKernels.o $(BUILDDIR)/gMatrixElementKernels.o $(BUILDDIR)/gBridgeKernels.o $(BUILDDIR)/gCrossSectionKernels.o endif @@ -405,7 +408,7 @@ endif # Target (and build rules): Fortran include files $(INCDIR)/%.inc : ../%.inc @if [ ! -d $(INCDIR) ]; then echo "mkdir -p $(INCDIR)"; mkdir -p $(INCDIR); fi - cp -i $< $@ + \cp $< $@ #------------------------------------------------------------------------------- diff --git a/epochX/cudacpp/gg_tt/SubProcesses/P1_Sigma_sm_gg_ttx/CPPProcess.cc b/epochX/cudacpp/gg_tt/SubProcesses/P1_Sigma_sm_gg_ttx/CPPProcess.cc index f70c4ca46d..fc4d9a4488 100644 --- a/epochX/cudacpp/gg_tt/SubProcesses/P1_Sigma_sm_gg_ttx/CPPProcess.cc +++ b/epochX/cudacpp/gg_tt/SubProcesses/P1_Sigma_sm_gg_ttx/CPPProcess.cc @@ -516,7 +516,9 @@ namespace mg5amcCpu mgDebugInitialise(); // Denominators: spins, colors and identical particles - const int denominators = 256; // FIXME: assume process.nprocesses == 1 for the moment (eventually denominators[nprocesses]?) + constexpr int nprocesses = 1; + static_assert( nprocesses == 1, "Assume nprocesses == 1" ); // FIXME (#343): assume nprocesses == 1 + constexpr int denominators[1] = { 256 }; // Set the parameters which change event by event // Need to discuss this with Stefan @@ -566,12 +568,12 @@ namespace mg5amcCpu // https://www.uzh.ch/cmsssl/physik/dam/jcr:2e24b7b1-f4d7-4160-817e-47b13dbf1d7c/Handout_4_2016-UZH.pdf] // FIXME: assume process.nprocesses == 1 for the moment (eventually: need a loop over processes here?) #ifdef __CUDACC__ - allMEs[ievt] /= denominators; + allMEs[ievt] /= denominators[0]; // FIXME (#343): assume nprocesses == 1 #else for( int ipagV = 0; ipagV < npagV; ++ipagV ) { for( int ieppV = 0; ieppV < neppV; ieppV++ ) - allMEs[ipagV * neppV + ieppV] /= denominators; + allMEs[ipagV * neppV + ieppV] /= denominators[0]; // FIXME (#343): assume nprocesses == 1 } #endif mgDebugFinalise(); diff --git a/epochX/cudacpp/gg_ttg.auto/CODEGEN_cudacpp_gg_ttg_log.txt b/epochX/cudacpp/gg_ttg.auto/CODEGEN_cudacpp_gg_ttg_log.txt index f655f98184..fd04b6f083 100644 --- a/epochX/cudacpp/gg_ttg.auto/CODEGEN_cudacpp_gg_ttg_log.txt +++ b/epochX/cudacpp/gg_ttg.auto/CODEGEN_cudacpp_gg_ttg_log.txt @@ -50,7 +50,7 @@ generate g g > t t~ g No model currently active, so we import the Standard Model INFO: load particles INFO: load vertices -DEBUG: model prefixing takes 0.006880521774291992  +DEBUG: model prefixing takes 0.0068988800048828125  INFO: Restrict model sm with file models/sm/restrict_default.dat . INFO: Change particles name to pass to MG5 convention Defined multiparticle p = g u c d s u~ c~ d~ s~ @@ -65,7 +65,7 @@ INFO: Please specify coupling orders to bypass this step. INFO: Trying coupling order WEIGHTED<=3: WEIGTHED IS QCD+2*QED INFO: Trying process: g g > t t~ g WEIGHTED<=3 @1 INFO: Process has 16 diagrams -1 processes with 16 diagrams generated in 0.029 s +1 processes with 16 diagrams generated in 0.028 s Total: 1 processes with 16 diagrams output standalone_cudacpp CODEGEN_cudacpp_gg_ttg Plugin PLUGIN.CUDACPP_SA_OUTPUT has marked as NOT being validated with this version. @@ -85,21 +85,21 @@ INFO: Processing color information for process: g g > t t~ g @1 INFO: Creating files in directory /data/avalassi/GPU2020/MG5aMC/3.1.1_lo_vectorization/CODEGEN_cudacpp_gg_ttg/SubProcesses/P1_Sigma_sm_gg_ttxg DEBUG: Entering PLUGIN_OneProcessExporter.generate_process_files [model_handling.py at line 1052]  FileWriter for /data/avalassi/GPU2020/MG5aMC/3.1.1_lo_vectorization/CODEGEN_cudacpp_gg_ttg/SubProcesses/P1_Sigma_sm_gg_ttxg/./CPPProcess.h -DEBUG: Entering PLUGIN_OneProcessExporter.write_process_h_file [model_handling.py at line 1118]  +DEBUG: Entering PLUGIN_OneProcessExporter.write_process_h_file [model_handling.py at line 1121]  FileWriter for /data/avalassi/GPU2020/MG5aMC/3.1.1_lo_vectorization/CODEGEN_cudacpp_gg_ttg/SubProcesses/P1_Sigma_sm_gg_ttxg/./CPPProcess.cc -DEBUG: Entering PLUGIN_OneProcessExporter.write_process_cc_file [model_handling.py at line 1140]  -DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1426]  -DEBUG: ('ZERO', 0, -1, 0, 0) [model_handling.py at line 1427]  -DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1426]  -DEBUG: ('ZERO', 1, -1, 1, 1) [model_handling.py at line 1427]  -DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1426]  -DEBUG: ('ZERO', 4, 1, 4, 4) [model_handling.py at line 1427]  +DEBUG: Entering PLUGIN_OneProcessExporter.write_process_cc_file [model_handling.py at line 1143]  +DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1429]  +DEBUG: ('ZERO', 0, -1, 0, 0) [model_handling.py at line 1430]  +DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1429]  +DEBUG: ('ZERO', 1, -1, 1, 1) [model_handling.py at line 1430]  +DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1429]  +DEBUG: ('ZERO', 4, 1, 4, 4) [model_handling.py at line 1430]  DEBUG: only one Matrix-element supported?  INFO: Created files CPPProcess.h and CPPProcess.cc in directory /data/avalassi/GPU2020/MG5aMC/3.1.1_lo_vectorization/CODEGEN_cudacpp_gg_ttg/SubProcesses/P1_Sigma_sm_gg_ttxg/. -DEBUG: Entering PLUGIN_OneProcessExporter.edit_check_sa [model_handling.py at line 1070]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_mgonGPU [model_handling.py at line 1087]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_processidfile [model_handling.py at line 1094]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_testxxx [model_handling.py at line 1106]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_check_sa [model_handling.py at line 1073]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_mgonGPU [model_handling.py at line 1090]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_processidfile [model_handling.py at line 1097]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_testxxx [model_handling.py at line 1109]  Generated helas calls for 1 subprocesses (16 diagrams) in 0.050 s DEBUG: Entering PLUGIN_ProcessExporter.convert_model (create the model) [output.py at line 176]  ALOHA: aloha starts to compute helicity amplitudes @@ -108,7 +108,7 @@ ALOHA: aloha creates FFV1 routines ALOHA: aloha creates VVVV1 set of routines with options: P0 ALOHA: aloha creates VVVV3 set of routines with options: P0 ALOHA: aloha creates VVVV4 set of routines with options: P0 -ALOHA: aloha creates 5 routines in 0.389 s +ALOHA: aloha creates 5 routines in 0.391 s VVV1 DEBUG: language =  [aloha_writers.py at line 2451]  VVV1 @@ -136,6 +136,6 @@ INFO: /data/avalassi/GPU2020/MG5aMC/3.1.1_lo_vectorization/CODEGEN_cudacpp_gg_tt DEBUG: Entering PLUGIN_ProcessExporter.finalize [output.py at line 185]  quit -real 0m1.239s -user 0m1.093s -sys 0m0.125s +real 0m1.253s +user 0m1.083s +sys 0m0.145s diff --git a/epochX/cudacpp/gg_ttg.auto/SubProcesses/Makefile b/epochX/cudacpp/gg_ttg.auto/SubProcesses/Makefile index 31ec657ecb..361206bf29 100644 --- a/epochX/cudacpp/gg_ttg.auto/SubProcesses/Makefile +++ b/epochX/cudacpp/gg_ttg.auto/SubProcesses/Makefile @@ -379,11 +379,14 @@ $(LIBDIR)/lib$(MG5AMC_COMMONLIB).so: ../../src/*.h ../../src/*.cc #------------------------------------------------------------------------------- -MG5AMC_CXXLIB = mg5amc_cxx +processid_short=$(shell basename $(CURDIR) | awk -F_ '{print $$(NF-1)"_"$$NF}') +###$(info processid_short=$(processid_short)) + +MG5AMC_CXXLIB = mg5amc_$(processid_short)_cxx cxx_objects=$(BUILDDIR)/CPPProcess.o $(BUILDDIR)/RandomNumberKernels.o $(BUILDDIR)/RamboSamplingKernels.o $(BUILDDIR)/MatrixElementKernels.o $(BUILDDIR)/BridgeKernels.o $(BUILDDIR)/CrossSectionKernels.o ifneq ($(NVCC),) -MG5AMC_CULIB = mg5amc_cu +MG5AMC_CULIB = mg5amc_$(processid_short)_cu cu_objects=$(BUILDDIR)/gCPPProcess.o $(BUILDDIR)/gRandomNumberKernels.o $(BUILDDIR)/gRamboSamplingKernels.o $(BUILDDIR)/gMatrixElementKernels.o $(BUILDDIR)/gBridgeKernels.o $(BUILDDIR)/gCrossSectionKernels.o endif @@ -405,7 +408,7 @@ endif # Target (and build rules): Fortran include files $(INCDIR)/%.inc : ../%.inc @if [ ! -d $(INCDIR) ]; then echo "mkdir -p $(INCDIR)"; mkdir -p $(INCDIR); fi - cp -i $< $@ + \cp $< $@ #------------------------------------------------------------------------------- diff --git a/epochX/cudacpp/gg_ttg.auto/SubProcesses/P1_Sigma_sm_gg_ttxg/CPPProcess.cc b/epochX/cudacpp/gg_ttg.auto/SubProcesses/P1_Sigma_sm_gg_ttxg/CPPProcess.cc index dfa58b9e1d..ed8f4308db 100644 --- a/epochX/cudacpp/gg_ttg.auto/SubProcesses/P1_Sigma_sm_gg_ttxg/CPPProcess.cc +++ b/epochX/cudacpp/gg_ttg.auto/SubProcesses/P1_Sigma_sm_gg_ttxg/CPPProcess.cc @@ -689,7 +689,9 @@ namespace mg5amcCpu mgDebugInitialise(); // Denominators: spins, colors and identical particles - const int denominators = 256; // FIXME: assume process.nprocesses == 1 for the moment (eventually denominators[nprocesses]?) + constexpr int nprocesses = 1; + static_assert( nprocesses == 1, "Assume nprocesses == 1" ); // FIXME (#343): assume nprocesses == 1 + constexpr int denominators[1] = { 256 }; // Set the parameters which change event by event // Need to discuss this with Stefan @@ -739,12 +741,12 @@ namespace mg5amcCpu // https://www.uzh.ch/cmsssl/physik/dam/jcr:2e24b7b1-f4d7-4160-817e-47b13dbf1d7c/Handout_4_2016-UZH.pdf] // FIXME: assume process.nprocesses == 1 for the moment (eventually: need a loop over processes here?) #ifdef __CUDACC__ - allMEs[ievt] /= denominators; + allMEs[ievt] /= denominators[0]; // FIXME (#343): assume nprocesses == 1 #else for( int ipagV = 0; ipagV < npagV; ++ipagV ) { for( int ieppV = 0; ieppV < neppV; ieppV++ ) - allMEs[ipagV * neppV + ieppV] /= denominators; + allMEs[ipagV * neppV + ieppV] /= denominators[0]; // FIXME (#343): assume nprocesses == 1 } #endif mgDebugFinalise(); diff --git a/epochX/cudacpp/gg_ttg/SubProcesses/Makefile b/epochX/cudacpp/gg_ttg/SubProcesses/Makefile index 31ec657ecb..361206bf29 100644 --- a/epochX/cudacpp/gg_ttg/SubProcesses/Makefile +++ b/epochX/cudacpp/gg_ttg/SubProcesses/Makefile @@ -379,11 +379,14 @@ $(LIBDIR)/lib$(MG5AMC_COMMONLIB).so: ../../src/*.h ../../src/*.cc #------------------------------------------------------------------------------- -MG5AMC_CXXLIB = mg5amc_cxx +processid_short=$(shell basename $(CURDIR) | awk -F_ '{print $$(NF-1)"_"$$NF}') +###$(info processid_short=$(processid_short)) + +MG5AMC_CXXLIB = mg5amc_$(processid_short)_cxx cxx_objects=$(BUILDDIR)/CPPProcess.o $(BUILDDIR)/RandomNumberKernels.o $(BUILDDIR)/RamboSamplingKernels.o $(BUILDDIR)/MatrixElementKernels.o $(BUILDDIR)/BridgeKernels.o $(BUILDDIR)/CrossSectionKernels.o ifneq ($(NVCC),) -MG5AMC_CULIB = mg5amc_cu +MG5AMC_CULIB = mg5amc_$(processid_short)_cu cu_objects=$(BUILDDIR)/gCPPProcess.o $(BUILDDIR)/gRandomNumberKernels.o $(BUILDDIR)/gRamboSamplingKernels.o $(BUILDDIR)/gMatrixElementKernels.o $(BUILDDIR)/gBridgeKernels.o $(BUILDDIR)/gCrossSectionKernels.o endif @@ -405,7 +408,7 @@ endif # Target (and build rules): Fortran include files $(INCDIR)/%.inc : ../%.inc @if [ ! -d $(INCDIR) ]; then echo "mkdir -p $(INCDIR)"; mkdir -p $(INCDIR); fi - cp -i $< $@ + \cp $< $@ #------------------------------------------------------------------------------- diff --git a/epochX/cudacpp/gg_ttg/SubProcesses/P1_Sigma_sm_gg_ttxg/CPPProcess.cc b/epochX/cudacpp/gg_ttg/SubProcesses/P1_Sigma_sm_gg_ttxg/CPPProcess.cc index dfa58b9e1d..ed8f4308db 100644 --- a/epochX/cudacpp/gg_ttg/SubProcesses/P1_Sigma_sm_gg_ttxg/CPPProcess.cc +++ b/epochX/cudacpp/gg_ttg/SubProcesses/P1_Sigma_sm_gg_ttxg/CPPProcess.cc @@ -689,7 +689,9 @@ namespace mg5amcCpu mgDebugInitialise(); // Denominators: spins, colors and identical particles - const int denominators = 256; // FIXME: assume process.nprocesses == 1 for the moment (eventually denominators[nprocesses]?) + constexpr int nprocesses = 1; + static_assert( nprocesses == 1, "Assume nprocesses == 1" ); // FIXME (#343): assume nprocesses == 1 + constexpr int denominators[1] = { 256 }; // Set the parameters which change event by event // Need to discuss this with Stefan @@ -739,12 +741,12 @@ namespace mg5amcCpu // https://www.uzh.ch/cmsssl/physik/dam/jcr:2e24b7b1-f4d7-4160-817e-47b13dbf1d7c/Handout_4_2016-UZH.pdf] // FIXME: assume process.nprocesses == 1 for the moment (eventually: need a loop over processes here?) #ifdef __CUDACC__ - allMEs[ievt] /= denominators; + allMEs[ievt] /= denominators[0]; // FIXME (#343): assume nprocesses == 1 #else for( int ipagV = 0; ipagV < npagV; ++ipagV ) { for( int ieppV = 0; ieppV < neppV; ieppV++ ) - allMEs[ipagV * neppV + ieppV] /= denominators; + allMEs[ipagV * neppV + ieppV] /= denominators[0]; // FIXME (#343): assume nprocesses == 1 } #endif mgDebugFinalise(); diff --git a/epochX/cudacpp/gg_ttgg.auto/CODEGEN_cudacpp_gg_ttgg_log.txt b/epochX/cudacpp/gg_ttgg.auto/CODEGEN_cudacpp_gg_ttgg_log.txt index 2da617d841..e33ca04cc6 100644 --- a/epochX/cudacpp/gg_ttgg.auto/CODEGEN_cudacpp_gg_ttgg_log.txt +++ b/epochX/cudacpp/gg_ttgg.auto/CODEGEN_cudacpp_gg_ttgg_log.txt @@ -50,7 +50,7 @@ generate g g > t t~ g g No model currently active, so we import the Standard Model INFO: load particles INFO: load vertices -DEBUG: model prefixing takes 0.006897449493408203  +DEBUG: model prefixing takes 0.006940603256225586  INFO: Restrict model sm with file models/sm/restrict_default.dat . INFO: Change particles name to pass to MG5 convention Defined multiparticle p = g u c d s u~ c~ d~ s~ @@ -65,7 +65,7 @@ INFO: Please specify coupling orders to bypass this step. INFO: Trying coupling order WEIGHTED<=4: WEIGTHED IS QCD+2*QED INFO: Trying process: g g > t t~ g g WEIGHTED<=4 @1 INFO: Process has 123 diagrams -1 processes with 123 diagrams generated in 0.209 s +1 processes with 123 diagrams generated in 0.210 s Total: 1 processes with 123 diagrams output standalone_cudacpp CODEGEN_cudacpp_gg_ttgg Plugin PLUGIN.CUDACPP_SA_OUTPUT has marked as NOT being validated with this version. @@ -85,24 +85,24 @@ INFO: Processing color information for process: g g > t t~ g g @1 INFO: Creating files in directory /data/avalassi/GPU2020/MG5aMC/3.1.1_lo_vectorization/CODEGEN_cudacpp_gg_ttgg/SubProcesses/P1_Sigma_sm_gg_ttxgg DEBUG: Entering PLUGIN_OneProcessExporter.generate_process_files [model_handling.py at line 1052]  FileWriter for /data/avalassi/GPU2020/MG5aMC/3.1.1_lo_vectorization/CODEGEN_cudacpp_gg_ttgg/SubProcesses/P1_Sigma_sm_gg_ttxgg/./CPPProcess.h -DEBUG: Entering PLUGIN_OneProcessExporter.write_process_h_file [model_handling.py at line 1118]  +DEBUG: Entering PLUGIN_OneProcessExporter.write_process_h_file [model_handling.py at line 1121]  FileWriter for /data/avalassi/GPU2020/MG5aMC/3.1.1_lo_vectorization/CODEGEN_cudacpp_gg_ttgg/SubProcesses/P1_Sigma_sm_gg_ttxgg/./CPPProcess.cc -DEBUG: Entering PLUGIN_OneProcessExporter.write_process_cc_file [model_handling.py at line 1140]  -DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1426]  -DEBUG: ('ZERO', 0, -1, 0, 0) [model_handling.py at line 1427]  -DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1426]  -DEBUG: ('ZERO', 1, -1, 1, 1) [model_handling.py at line 1427]  -DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1426]  -DEBUG: ('ZERO', 4, 1, 4, 4) [model_handling.py at line 1427]  -DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1426]  -DEBUG: ('ZERO', 5, 1, 5, 5) [model_handling.py at line 1427]  +DEBUG: Entering PLUGIN_OneProcessExporter.write_process_cc_file [model_handling.py at line 1143]  +DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1429]  +DEBUG: ('ZERO', 0, -1, 0, 0) [model_handling.py at line 1430]  +DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1429]  +DEBUG: ('ZERO', 1, -1, 1, 1) [model_handling.py at line 1430]  +DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1429]  +DEBUG: ('ZERO', 4, 1, 4, 4) [model_handling.py at line 1430]  +DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1429]  +DEBUG: ('ZERO', 5, 1, 5, 5) [model_handling.py at line 1430]  DEBUG: only one Matrix-element supported?  INFO: Created files CPPProcess.h and CPPProcess.cc in directory /data/avalassi/GPU2020/MG5aMC/3.1.1_lo_vectorization/CODEGEN_cudacpp_gg_ttgg/SubProcesses/P1_Sigma_sm_gg_ttxgg/. -DEBUG: Entering PLUGIN_OneProcessExporter.edit_check_sa [model_handling.py at line 1070]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_mgonGPU [model_handling.py at line 1087]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_processidfile [model_handling.py at line 1094]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_testxxx [model_handling.py at line 1106]  -Generated helas calls for 1 subprocesses (123 diagrams) in 0.575 s +DEBUG: Entering PLUGIN_OneProcessExporter.edit_check_sa [model_handling.py at line 1073]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_mgonGPU [model_handling.py at line 1090]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_processidfile [model_handling.py at line 1097]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_testxxx [model_handling.py at line 1109]  +Generated helas calls for 1 subprocesses (123 diagrams) in 0.571 s DEBUG: Entering PLUGIN_ProcessExporter.convert_model (create the model) [output.py at line 176]  ALOHA: aloha starts to compute helicity amplitudes ALOHA: aloha creates VVV1 routines @@ -110,7 +110,7 @@ ALOHA: aloha creates FFV1 routines ALOHA: aloha creates VVVV1 routines ALOHA: aloha creates VVVV3 routines ALOHA: aloha creates VVVV4 routines -ALOHA: aloha creates 5 routines in 0.386 s +ALOHA: aloha creates 5 routines in 0.384 s VVV1 DEBUG: language =  [aloha_writers.py at line 2451]  VVV1 @@ -144,6 +144,6 @@ INFO: /data/avalassi/GPU2020/MG5aMC/3.1.1_lo_vectorization/CODEGEN_cudacpp_gg_tt DEBUG: Entering PLUGIN_ProcessExporter.finalize [output.py at line 185]  quit -real 0m2.131s -user 0m1.982s -sys 0m0.130s +real 0m2.154s +user 0m1.981s +sys 0m0.137s diff --git a/epochX/cudacpp/gg_ttgg.auto/SubProcesses/Makefile b/epochX/cudacpp/gg_ttgg.auto/SubProcesses/Makefile index 31ec657ecb..361206bf29 100644 --- a/epochX/cudacpp/gg_ttgg.auto/SubProcesses/Makefile +++ b/epochX/cudacpp/gg_ttgg.auto/SubProcesses/Makefile @@ -379,11 +379,14 @@ $(LIBDIR)/lib$(MG5AMC_COMMONLIB).so: ../../src/*.h ../../src/*.cc #------------------------------------------------------------------------------- -MG5AMC_CXXLIB = mg5amc_cxx +processid_short=$(shell basename $(CURDIR) | awk -F_ '{print $$(NF-1)"_"$$NF}') +###$(info processid_short=$(processid_short)) + +MG5AMC_CXXLIB = mg5amc_$(processid_short)_cxx cxx_objects=$(BUILDDIR)/CPPProcess.o $(BUILDDIR)/RandomNumberKernels.o $(BUILDDIR)/RamboSamplingKernels.o $(BUILDDIR)/MatrixElementKernels.o $(BUILDDIR)/BridgeKernels.o $(BUILDDIR)/CrossSectionKernels.o ifneq ($(NVCC),) -MG5AMC_CULIB = mg5amc_cu +MG5AMC_CULIB = mg5amc_$(processid_short)_cu cu_objects=$(BUILDDIR)/gCPPProcess.o $(BUILDDIR)/gRandomNumberKernels.o $(BUILDDIR)/gRamboSamplingKernels.o $(BUILDDIR)/gMatrixElementKernels.o $(BUILDDIR)/gBridgeKernels.o $(BUILDDIR)/gCrossSectionKernels.o endif @@ -405,7 +408,7 @@ endif # Target (and build rules): Fortran include files $(INCDIR)/%.inc : ../%.inc @if [ ! -d $(INCDIR) ]; then echo "mkdir -p $(INCDIR)"; mkdir -p $(INCDIR); fi - cp -i $< $@ + \cp $< $@ #------------------------------------------------------------------------------- diff --git a/epochX/cudacpp/gg_ttgg.auto/SubProcesses/P1_Sigma_sm_gg_ttxgg/CPPProcess.cc b/epochX/cudacpp/gg_ttgg.auto/SubProcesses/P1_Sigma_sm_gg_ttxgg/CPPProcess.cc index 3e5c563da5..350c54635b 100644 --- a/epochX/cudacpp/gg_ttgg.auto/SubProcesses/P1_Sigma_sm_gg_ttxgg/CPPProcess.cc +++ b/epochX/cudacpp/gg_ttgg.auto/SubProcesses/P1_Sigma_sm_gg_ttxgg/CPPProcess.cc @@ -2275,7 +2275,9 @@ namespace mg5amcCpu mgDebugInitialise(); // Denominators: spins, colors and identical particles - const int denominators = 512; // FIXME: assume process.nprocesses == 1 for the moment (eventually denominators[nprocesses]?) + constexpr int nprocesses = 1; + static_assert( nprocesses == 1, "Assume nprocesses == 1" ); // FIXME (#343): assume nprocesses == 1 + constexpr int denominators[1] = { 512 }; // Set the parameters which change event by event // Need to discuss this with Stefan @@ -2325,12 +2327,12 @@ namespace mg5amcCpu // https://www.uzh.ch/cmsssl/physik/dam/jcr:2e24b7b1-f4d7-4160-817e-47b13dbf1d7c/Handout_4_2016-UZH.pdf] // FIXME: assume process.nprocesses == 1 for the moment (eventually: need a loop over processes here?) #ifdef __CUDACC__ - allMEs[ievt] /= denominators; + allMEs[ievt] /= denominators[0]; // FIXME (#343): assume nprocesses == 1 #else for( int ipagV = 0; ipagV < npagV; ++ipagV ) { for( int ieppV = 0; ieppV < neppV; ieppV++ ) - allMEs[ipagV * neppV + ieppV] /= denominators; + allMEs[ipagV * neppV + ieppV] /= denominators[0]; // FIXME (#343): assume nprocesses == 1 } #endif mgDebugFinalise(); diff --git a/epochX/cudacpp/gg_ttgg/SubProcesses/Makefile b/epochX/cudacpp/gg_ttgg/SubProcesses/Makefile index 31ec657ecb..361206bf29 100644 --- a/epochX/cudacpp/gg_ttgg/SubProcesses/Makefile +++ b/epochX/cudacpp/gg_ttgg/SubProcesses/Makefile @@ -379,11 +379,14 @@ $(LIBDIR)/lib$(MG5AMC_COMMONLIB).so: ../../src/*.h ../../src/*.cc #------------------------------------------------------------------------------- -MG5AMC_CXXLIB = mg5amc_cxx +processid_short=$(shell basename $(CURDIR) | awk -F_ '{print $$(NF-1)"_"$$NF}') +###$(info processid_short=$(processid_short)) + +MG5AMC_CXXLIB = mg5amc_$(processid_short)_cxx cxx_objects=$(BUILDDIR)/CPPProcess.o $(BUILDDIR)/RandomNumberKernels.o $(BUILDDIR)/RamboSamplingKernels.o $(BUILDDIR)/MatrixElementKernels.o $(BUILDDIR)/BridgeKernels.o $(BUILDDIR)/CrossSectionKernels.o ifneq ($(NVCC),) -MG5AMC_CULIB = mg5amc_cu +MG5AMC_CULIB = mg5amc_$(processid_short)_cu cu_objects=$(BUILDDIR)/gCPPProcess.o $(BUILDDIR)/gRandomNumberKernels.o $(BUILDDIR)/gRamboSamplingKernels.o $(BUILDDIR)/gMatrixElementKernels.o $(BUILDDIR)/gBridgeKernels.o $(BUILDDIR)/gCrossSectionKernels.o endif @@ -405,7 +408,7 @@ endif # Target (and build rules): Fortran include files $(INCDIR)/%.inc : ../%.inc @if [ ! -d $(INCDIR) ]; then echo "mkdir -p $(INCDIR)"; mkdir -p $(INCDIR); fi - cp -i $< $@ + \cp $< $@ #------------------------------------------------------------------------------- diff --git a/epochX/cudacpp/gg_ttgg/SubProcesses/P1_Sigma_sm_gg_ttxgg/CPPProcess.cc b/epochX/cudacpp/gg_ttgg/SubProcesses/P1_Sigma_sm_gg_ttxgg/CPPProcess.cc index 3e5c563da5..350c54635b 100644 --- a/epochX/cudacpp/gg_ttgg/SubProcesses/P1_Sigma_sm_gg_ttxgg/CPPProcess.cc +++ b/epochX/cudacpp/gg_ttgg/SubProcesses/P1_Sigma_sm_gg_ttxgg/CPPProcess.cc @@ -2275,7 +2275,9 @@ namespace mg5amcCpu mgDebugInitialise(); // Denominators: spins, colors and identical particles - const int denominators = 512; // FIXME: assume process.nprocesses == 1 for the moment (eventually denominators[nprocesses]?) + constexpr int nprocesses = 1; + static_assert( nprocesses == 1, "Assume nprocesses == 1" ); // FIXME (#343): assume nprocesses == 1 + constexpr int denominators[1] = { 512 }; // Set the parameters which change event by event // Need to discuss this with Stefan @@ -2325,12 +2327,12 @@ namespace mg5amcCpu // https://www.uzh.ch/cmsssl/physik/dam/jcr:2e24b7b1-f4d7-4160-817e-47b13dbf1d7c/Handout_4_2016-UZH.pdf] // FIXME: assume process.nprocesses == 1 for the moment (eventually: need a loop over processes here?) #ifdef __CUDACC__ - allMEs[ievt] /= denominators; + allMEs[ievt] /= denominators[0]; // FIXME (#343): assume nprocesses == 1 #else for( int ipagV = 0; ipagV < npagV; ++ipagV ) { for( int ieppV = 0; ieppV < neppV; ieppV++ ) - allMEs[ipagV * neppV + ieppV] /= denominators; + allMEs[ipagV * neppV + ieppV] /= denominators[0]; // FIXME (#343): assume nprocesses == 1 } #endif mgDebugFinalise(); diff --git a/epochX/cudacpp/gg_ttggg.auto/CODEGEN_cudacpp_gg_ttggg_log.txt b/epochX/cudacpp/gg_ttggg.auto/CODEGEN_cudacpp_gg_ttggg_log.txt index 012b9d9551..4b6bacb98d 100644 --- a/epochX/cudacpp/gg_ttggg.auto/CODEGEN_cudacpp_gg_ttggg_log.txt +++ b/epochX/cudacpp/gg_ttggg.auto/CODEGEN_cudacpp_gg_ttggg_log.txt @@ -50,7 +50,7 @@ generate g g > t t~ g g g No model currently active, so we import the Standard Model INFO: load particles INFO: load vertices -DEBUG: model prefixing takes 0.006964683532714844  +DEBUG: model prefixing takes 0.006931781768798828  INFO: Restrict model sm with file models/sm/restrict_default.dat . INFO: Change particles name to pass to MG5 convention Defined multiparticle p = g u c d s u~ c~ d~ s~ @@ -65,7 +65,7 @@ INFO: Please specify coupling orders to bypass this step. INFO: Trying coupling order WEIGHTED<=5: WEIGTHED IS QCD+2*QED INFO: Trying process: g g > t t~ g g g WEIGHTED<=5 @1 INFO: Process has 1240 diagrams -1 processes with 1240 diagrams generated in 2.495 s +1 processes with 1240 diagrams generated in 2.493 s Total: 1 processes with 1240 diagrams output standalone_cudacpp CODEGEN_cudacpp_gg_ttggg Plugin PLUGIN.CUDACPP_SA_OUTPUT has marked as NOT being validated with this version. @@ -85,26 +85,26 @@ INFO: Processing color information for process: g g > t t~ g g g @1 INFO: Creating files in directory /data/avalassi/GPU2020/MG5aMC/3.1.1_lo_vectorization/CODEGEN_cudacpp_gg_ttggg/SubProcesses/P1_Sigma_sm_gg_ttxggg DEBUG: Entering PLUGIN_OneProcessExporter.generate_process_files [model_handling.py at line 1052]  FileWriter for /data/avalassi/GPU2020/MG5aMC/3.1.1_lo_vectorization/CODEGEN_cudacpp_gg_ttggg/SubProcesses/P1_Sigma_sm_gg_ttxggg/./CPPProcess.h -DEBUG: Entering PLUGIN_OneProcessExporter.write_process_h_file [model_handling.py at line 1118]  +DEBUG: Entering PLUGIN_OneProcessExporter.write_process_h_file [model_handling.py at line 1121]  FileWriter for /data/avalassi/GPU2020/MG5aMC/3.1.1_lo_vectorization/CODEGEN_cudacpp_gg_ttggg/SubProcesses/P1_Sigma_sm_gg_ttxggg/./CPPProcess.cc -DEBUG: Entering PLUGIN_OneProcessExporter.write_process_cc_file [model_handling.py at line 1140]  -DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1426]  -DEBUG: ('ZERO', 0, -1, 0, 0) [model_handling.py at line 1427]  -DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1426]  -DEBUG: ('ZERO', 1, -1, 1, 1) [model_handling.py at line 1427]  -DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1426]  -DEBUG: ('ZERO', 4, 1, 4, 4) [model_handling.py at line 1427]  -DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1426]  -DEBUG: ('ZERO', 5, 1, 5, 5) [model_handling.py at line 1427]  -DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1426]  -DEBUG: ('ZERO', 6, 1, 6, 6) [model_handling.py at line 1427]  +DEBUG: Entering PLUGIN_OneProcessExporter.write_process_cc_file [model_handling.py at line 1143]  +DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1429]  +DEBUG: ('ZERO', 0, -1, 0, 0) [model_handling.py at line 1430]  +DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1429]  +DEBUG: ('ZERO', 1, -1, 1, 1) [model_handling.py at line 1430]  +DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1429]  +DEBUG: ('ZERO', 4, 1, 4, 4) [model_handling.py at line 1430]  +DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1429]  +DEBUG: ('ZERO', 5, 1, 5, 5) [model_handling.py at line 1430]  +DEBUG: call =  vxxxxx( momenta,m_pars->%s, cHel[ihel][%d],%+d, w_sv[%d], %d ); [model_handling.py at line 1429]  +DEBUG: ('ZERO', 6, 1, 6, 6) [model_handling.py at line 1430]  DEBUG: only one Matrix-element supported?  INFO: Created files CPPProcess.h and CPPProcess.cc in directory /data/avalassi/GPU2020/MG5aMC/3.1.1_lo_vectorization/CODEGEN_cudacpp_gg_ttggg/SubProcesses/P1_Sigma_sm_gg_ttxggg/. -DEBUG: Entering PLUGIN_OneProcessExporter.edit_check_sa [model_handling.py at line 1070]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_mgonGPU [model_handling.py at line 1087]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_processidfile [model_handling.py at line 1094]  -DEBUG: Entering PLUGIN_OneProcessExporter.edit_testxxx [model_handling.py at line 1106]  -Generated helas calls for 1 subprocesses (1240 diagrams) in 9.011 s +DEBUG: Entering PLUGIN_OneProcessExporter.edit_check_sa [model_handling.py at line 1073]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_mgonGPU [model_handling.py at line 1090]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_processidfile [model_handling.py at line 1097]  +DEBUG: Entering PLUGIN_OneProcessExporter.edit_testxxx [model_handling.py at line 1109]  +Generated helas calls for 1 subprocesses (1240 diagrams) in 8.963 s DEBUG: Entering PLUGIN_ProcessExporter.convert_model (create the model) [output.py at line 176]  ALOHA: aloha starts to compute helicity amplitudes ALOHA: aloha creates VVV1 routines @@ -112,7 +112,7 @@ ALOHA: aloha creates FFV1 routines ALOHA: aloha creates VVVV1 routines ALOHA: aloha creates VVVV3 routines ALOHA: aloha creates VVVV4 routines -ALOHA: aloha creates 5 routines in 0.384 s +ALOHA: aloha creates 5 routines in 0.385 s VVV1 DEBUG: language =  [aloha_writers.py at line 2451]  VVV1 @@ -146,6 +146,6 @@ INFO: /data/avalassi/GPU2020/MG5aMC/3.1.1_lo_vectorization/CODEGEN_cudacpp_gg_tt DEBUG: Entering PLUGIN_ProcessExporter.finalize [output.py at line 185]  quit -real 0m17.506s -user 0m17.297s -sys 0m0.188s +real 0m17.460s +user 0m17.208s +sys 0m0.225s diff --git a/epochX/cudacpp/gg_ttggg.auto/SubProcesses/Makefile b/epochX/cudacpp/gg_ttggg.auto/SubProcesses/Makefile index 31ec657ecb..361206bf29 100644 --- a/epochX/cudacpp/gg_ttggg.auto/SubProcesses/Makefile +++ b/epochX/cudacpp/gg_ttggg.auto/SubProcesses/Makefile @@ -379,11 +379,14 @@ $(LIBDIR)/lib$(MG5AMC_COMMONLIB).so: ../../src/*.h ../../src/*.cc #------------------------------------------------------------------------------- -MG5AMC_CXXLIB = mg5amc_cxx +processid_short=$(shell basename $(CURDIR) | awk -F_ '{print $$(NF-1)"_"$$NF}') +###$(info processid_short=$(processid_short)) + +MG5AMC_CXXLIB = mg5amc_$(processid_short)_cxx cxx_objects=$(BUILDDIR)/CPPProcess.o $(BUILDDIR)/RandomNumberKernels.o $(BUILDDIR)/RamboSamplingKernels.o $(BUILDDIR)/MatrixElementKernels.o $(BUILDDIR)/BridgeKernels.o $(BUILDDIR)/CrossSectionKernels.o ifneq ($(NVCC),) -MG5AMC_CULIB = mg5amc_cu +MG5AMC_CULIB = mg5amc_$(processid_short)_cu cu_objects=$(BUILDDIR)/gCPPProcess.o $(BUILDDIR)/gRandomNumberKernels.o $(BUILDDIR)/gRamboSamplingKernels.o $(BUILDDIR)/gMatrixElementKernels.o $(BUILDDIR)/gBridgeKernels.o $(BUILDDIR)/gCrossSectionKernels.o endif @@ -405,7 +408,7 @@ endif # Target (and build rules): Fortran include files $(INCDIR)/%.inc : ../%.inc @if [ ! -d $(INCDIR) ]; then echo "mkdir -p $(INCDIR)"; mkdir -p $(INCDIR); fi - cp -i $< $@ + \cp $< $@ #------------------------------------------------------------------------------- diff --git a/epochX/cudacpp/gg_ttggg.auto/SubProcesses/P1_Sigma_sm_gg_ttxggg/CPPProcess.cc b/epochX/cudacpp/gg_ttggg.auto/SubProcesses/P1_Sigma_sm_gg_ttxggg/CPPProcess.cc index 2e1ebb692e..ea2b3b341f 100644 --- a/epochX/cudacpp/gg_ttggg.auto/SubProcesses/P1_Sigma_sm_gg_ttxggg/CPPProcess.cc +++ b/epochX/cudacpp/gg_ttggg.auto/SubProcesses/P1_Sigma_sm_gg_ttxggg/CPPProcess.cc @@ -26582,7 +26582,9 @@ namespace mg5amcCpu mgDebugInitialise(); // Denominators: spins, colors and identical particles - const int denominators = 1536; // FIXME: assume process.nprocesses == 1 for the moment (eventually denominators[nprocesses]?) + constexpr int nprocesses = 1; + static_assert( nprocesses == 1, "Assume nprocesses == 1" ); // FIXME (#343): assume nprocesses == 1 + constexpr int denominators[1] = { 1536 }; // Set the parameters which change event by event // Need to discuss this with Stefan @@ -26632,12 +26634,12 @@ namespace mg5amcCpu // https://www.uzh.ch/cmsssl/physik/dam/jcr:2e24b7b1-f4d7-4160-817e-47b13dbf1d7c/Handout_4_2016-UZH.pdf] // FIXME: assume process.nprocesses == 1 for the moment (eventually: need a loop over processes here?) #ifdef __CUDACC__ - allMEs[ievt] /= denominators; + allMEs[ievt] /= denominators[0]; // FIXME (#343): assume nprocesses == 1 #else for( int ipagV = 0; ipagV < npagV; ++ipagV ) { for( int ieppV = 0; ieppV < neppV; ieppV++ ) - allMEs[ipagV * neppV + ieppV] /= denominators; + allMEs[ipagV * neppV + ieppV] /= denominators[0]; // FIXME (#343): assume nprocesses == 1 } #endif mgDebugFinalise(); diff --git a/epochX/cudacpp/gg_ttggg/SubProcesses/Makefile b/epochX/cudacpp/gg_ttggg/SubProcesses/Makefile index 31ec657ecb..361206bf29 100644 --- a/epochX/cudacpp/gg_ttggg/SubProcesses/Makefile +++ b/epochX/cudacpp/gg_ttggg/SubProcesses/Makefile @@ -379,11 +379,14 @@ $(LIBDIR)/lib$(MG5AMC_COMMONLIB).so: ../../src/*.h ../../src/*.cc #------------------------------------------------------------------------------- -MG5AMC_CXXLIB = mg5amc_cxx +processid_short=$(shell basename $(CURDIR) | awk -F_ '{print $$(NF-1)"_"$$NF}') +###$(info processid_short=$(processid_short)) + +MG5AMC_CXXLIB = mg5amc_$(processid_short)_cxx cxx_objects=$(BUILDDIR)/CPPProcess.o $(BUILDDIR)/RandomNumberKernels.o $(BUILDDIR)/RamboSamplingKernels.o $(BUILDDIR)/MatrixElementKernels.o $(BUILDDIR)/BridgeKernels.o $(BUILDDIR)/CrossSectionKernels.o ifneq ($(NVCC),) -MG5AMC_CULIB = mg5amc_cu +MG5AMC_CULIB = mg5amc_$(processid_short)_cu cu_objects=$(BUILDDIR)/gCPPProcess.o $(BUILDDIR)/gRandomNumberKernels.o $(BUILDDIR)/gRamboSamplingKernels.o $(BUILDDIR)/gMatrixElementKernels.o $(BUILDDIR)/gBridgeKernels.o $(BUILDDIR)/gCrossSectionKernels.o endif @@ -405,7 +408,7 @@ endif # Target (and build rules): Fortran include files $(INCDIR)/%.inc : ../%.inc @if [ ! -d $(INCDIR) ]; then echo "mkdir -p $(INCDIR)"; mkdir -p $(INCDIR); fi - cp -i $< $@ + \cp $< $@ #------------------------------------------------------------------------------- diff --git a/epochX/cudacpp/gg_ttggg/SubProcesses/P1_Sigma_sm_gg_ttxggg/CPPProcess.cc b/epochX/cudacpp/gg_ttggg/SubProcesses/P1_Sigma_sm_gg_ttxggg/CPPProcess.cc index 2e1ebb692e..ea2b3b341f 100644 --- a/epochX/cudacpp/gg_ttggg/SubProcesses/P1_Sigma_sm_gg_ttxggg/CPPProcess.cc +++ b/epochX/cudacpp/gg_ttggg/SubProcesses/P1_Sigma_sm_gg_ttxggg/CPPProcess.cc @@ -26582,7 +26582,9 @@ namespace mg5amcCpu mgDebugInitialise(); // Denominators: spins, colors and identical particles - const int denominators = 1536; // FIXME: assume process.nprocesses == 1 for the moment (eventually denominators[nprocesses]?) + constexpr int nprocesses = 1; + static_assert( nprocesses == 1, "Assume nprocesses == 1" ); // FIXME (#343): assume nprocesses == 1 + constexpr int denominators[1] = { 1536 }; // Set the parameters which change event by event // Need to discuss this with Stefan @@ -26632,12 +26634,12 @@ namespace mg5amcCpu // https://www.uzh.ch/cmsssl/physik/dam/jcr:2e24b7b1-f4d7-4160-817e-47b13dbf1d7c/Handout_4_2016-UZH.pdf] // FIXME: assume process.nprocesses == 1 for the moment (eventually: need a loop over processes here?) #ifdef __CUDACC__ - allMEs[ievt] /= denominators; + allMEs[ievt] /= denominators[0]; // FIXME (#343): assume nprocesses == 1 #else for( int ipagV = 0; ipagV < npagV; ++ipagV ) { for( int ieppV = 0; ieppV < neppV; ieppV++ ) - allMEs[ipagV * neppV + ieppV] /= denominators; + allMEs[ipagV * neppV + ieppV] /= denominators[0]; // FIXME (#343): assume nprocesses == 1 } #endif mgDebugFinalise();