Skip to content

Commit 0feabcf

Browse files
committed
Merge remote-tracking branch 'upstream/master' (including "june24" channelid fixes/reimplementation madgraph5#882 and madgraph5#985) into runcard
Fix conflicts (use ~runcard version): epochX/cudacpp/CODEGEN/PLUGIN/CUDACPP_SA_OUTPUT/MG5aMC_patches/PROD/patch.common
2 parents cc08439 + 6dd4ca8 commit 0feabcf

File tree

2,617 files changed

+1127188
-169545
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

2,617 files changed

+1127188
-169545
lines changed

.github/workflows/c-cpp.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ name: C/C++ CI
22

33
on:
44
push:
5-
branches: [ master ]
5+
branches: [ master, master_june24 ]
66
pull_request:
7-
branches: [ master ]
7+
branches: [ master, master_june24 ]
88

99
jobs:
1010
debug_builds:
@@ -38,7 +38,7 @@ jobs:
3838
CPU_MAC:
3939
runs-on: macos-latest
4040
env:
41-
FC: gfortran-11
41+
FC: gfortran-14 # see #971
4242
strategy:
4343
matrix:
4444
folder: [ epochX/cudacpp/ee_mumu.mad/SubProcesses/P1_epem_mupmum, epochX/cudacpp/gg_ttgg.mad/SubProcesses/P1_gg_ttxgg ]
Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
# WARNING THIS FILE IS AUTOGENERATED -> edit test_simd_madevent.template
2+
3+
4+
# This is a basic workflow to help you get started with Actions
5+
6+
name: running acceptance test
7+
# Controls when the workflow will run
8+
# branches: [ main LTS ]
9+
on:
10+
# Triggers the workflow on push or pull request events but only for the 3.4.0 branch
11+
push:
12+
paths-ignore:
13+
- 'docs/**'
14+
# - '.github/**'
15+
16+
# Allows you to run this workflow manually from the Actions tab
17+
workflow_dispatch:
18+
inputs:
19+
message:
20+
description: 'running acceptance test'
21+
required: true
22+
23+
env:
24+
commitmsg: ${{ github.event.head_commit.message }}
25+
26+
concurrency:
27+
group: ${{ github.workflow }}-${{ github.ref }}
28+
cancel-in-progress: true
29+
30+
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
31+
jobs:
32+
# This workflow contains a single job called "build"
33+
34+
simd_cpp_heft_ggh_double:
35+
# The type of runner that the job will run on
36+
runs-on: ubuntu-latest
37+
38+
# Steps represent a sequence of tasks that will be executed as part of the job
39+
steps:
40+
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
41+
- uses: actions/checkout@v2
42+
with:
43+
submodules: 'true'
44+
45+
# Runs a set of commands using the runners shell
46+
- name: test one of the test testIO_AcceptanceProcOutputIOTests
47+
run: |
48+
cd $GITHUB_WORKSPACE
49+
cd MG5aMC/mg5amcnlo/
50+
cp input/.mg5_configuration_default.txt input/mg5_configuration.txt
51+
cp Template/LO/Source/.make_opts Template/LO/Source/make_opts
52+
./tests/test_manager.py -p./PLUGIN/CUDACPP_OUTPUT/acceptance_tests/ test_simd_cpp_heft_ggh_double
53+
54+
simd_cpp_pptt_mixed:
55+
# The type of runner that the job will run on
56+
runs-on: ubuntu-latest
57+
58+
# Steps represent a sequence of tasks that will be executed as part of the job
59+
steps:
60+
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
61+
- uses: actions/checkout@v2
62+
with:
63+
submodules: 'true'
64+
65+
# Runs a set of commands using the runners shell
66+
- name: test one of the test testIO_AcceptanceProcOutputIOTests
67+
run: |
68+
cd $GITHUB_WORKSPACE
69+
cd MG5aMC/mg5amcnlo/
70+
cp input/.mg5_configuration_default.txt input/mg5_configuration.txt
71+
cp Template/LO/Source/.make_opts Template/LO/Source/make_opts
72+
./tests/test_manager.py -p./PLUGIN/CUDACPP_OUTPUT/acceptance_tests/ test_simd_cpp_pptt_mixed
73+
74+
simd_cpp_eemumua_float:
75+
# The type of runner that the job will run on
76+
runs-on: ubuntu-latest
77+
78+
# Steps represent a sequence of tasks that will be executed as part of the job
79+
steps:
80+
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
81+
- uses: actions/checkout@v2
82+
with:
83+
submodules: 'true'
84+
85+
# Runs a set of commands using the runners shell
86+
- name: test one of the test testIO_AcceptanceProcOutputIOTests
87+
run: |
88+
cd $GITHUB_WORKSPACE
89+
cd MG5aMC/mg5amcnlo/
90+
cp input/.mg5_configuration_default.txt input/mg5_configuration.txt
91+
cp Template/LO/Source/.make_opts Template/LO/Source/make_opts
92+
./tests/test_manager.py -p./PLUGIN/CUDACPP_OUTPUT/acceptance_tests/ test_simd_cpp_eemumua_float
93+
94+
simd_cpp_vector_size:
95+
# The type of runner that the job will run on
96+
runs-on: ubuntu-latest
97+
98+
# Steps represent a sequence of tasks that will be executed as part of the job
99+
steps:
100+
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
101+
- uses: actions/checkout@v2
102+
with:
103+
submodules: 'true'
104+
105+
# Runs a set of commands using the runners shell
106+
- name: test one of the test testIO_AcceptanceProcOutputIOTests
107+
run: |
108+
cd $GITHUB_WORKSPACE
109+
cd MG5aMC/mg5amcnlo/
110+
cp input/.mg5_configuration_default.txt input/mg5_configuration.txt
111+
cp Template/LO/Source/.make_opts Template/LO/Source/make_opts
112+
./tests/test_manager.py -p./PLUGIN/CUDACPP_OUTPUT/acceptance_tests/ test_simd_cpp_vector_size

.github/workflows/testsuite_allprocesses.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ on:
1616

1717
# Trigger the all-processes workflow for pull requests to master
1818
pull_request:
19-
branches: [ master ]
19+
branches: [ master, master_june24 ]
2020

2121
# Trigger the all-processes workflow when new changes to the workflow are pushed
2222
# (NB: this is now disabled to avoid triggering two jobs when pushing to a branch for which a PR is opened)

.github/workflows/testsuite_oneprocess.sh

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,11 @@ function ECHO() { echo " "; }
2020
echo "Executing $0 $*"; ECHO
2121
topdir=$(cd $(dirname $0)/../..; pwd)
2222

23-
# Disable OpenMP in the CI tests
24-
# To do this, set OMPFLAGS externally to an empty string (#758)
25-
export OMPFLAGS=
23+
# Enable OpenMP in the CI tests? (#758)
24+
###export USEOPENMP=1
25+
26+
# Debug channelid in MatrixElementKernelBase?
27+
export MG5AMC_CHANNELID_DEBUG=1
2628

2729
# Bypass known issues?
2830
BYPASS_KNOWN_ISSUES=0 # do not bypass known issues (fail)

.github/workflows/testsuite_oneprocess.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,7 @@ on:
3434
required: true
3535
type: choice
3636
# FIXME? Can the list of supported processes be specified only once in oneprocess.yml or allprocesses.yml?
37-
options: [gg_tt.mad, gg_ttg.mad, gg_ttgg.mad, gg_ttggg.mad, ee_mumu.mad, nobm_pp_ttW.mad]
38-
###options: [ee_mumu.mad, gg_tt.mad, gg_ttg.mad, gg_ttgg.mad, gg_ttggg.mad, gg_tt01g.mad, gq_ttq.mad, pp_tt012j.mad]
37+
options: [gg_tt.mad, gg_ttg.mad, gg_ttgg.mad, gg_ttggg.mad, ee_mumu.mad, nobm_pp_ttW.mad, susy_gg_tt.mad]
3938

4039
#----------------------------------------------------------------------------------------------------------------------------------
4140

MG5aMC/mg5amcnlo

Submodule mg5amcnlo updated 2002 files
Lines changed: 2 additions & 187 deletions
Original file line numberDiff line numberDiff line change
@@ -1,161 +1,3 @@
1-
diff --git b/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/auto_dsig1.f a/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/auto_dsig1.f
2-
index 4fbb8e6ba..f9e2335de 100644
3-
--- b/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/auto_dsig1.f
4-
+++ a/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/auto_dsig1.f
5-
@@ -484,23 +484,140 @@ C
6-
INTEGER VECSIZE_USED
7-
8-
INTEGER IVEC
9-
-
10-
-
11-
+ INTEGER IEXT
12-
+
13-
+ INTEGER ISUM_HEL
14-
+ LOGICAL MULTI_CHANNEL
15-
+ COMMON/TO_MATRIX/ISUM_HEL, MULTI_CHANNEL
16-
+
17-
+ LOGICAL FIRST_CHID
18-
+ SAVE FIRST_CHID
19-
+ DATA FIRST_CHID/.TRUE./
20-
+
21-
+#ifdef MG5AMC_MEEXPORTER_CUDACPP
22-
+ INCLUDE 'coupl.inc' ! for ALL_G
23-
+ INCLUDE 'fbridge.inc'
24-
+ INCLUDE 'fbridge_common.inc'
25-
+ INCLUDE 'genps.inc'
26-
+ INCLUDE 'run.inc'
27-
+ DOUBLE PRECISION OUT2(VECSIZE_MEMMAX)
28-
+ INTEGER SELECTED_HEL2(VECSIZE_MEMMAX)
29-
+ INTEGER SELECTED_COL2(VECSIZE_MEMMAX)
30-
+ DOUBLE PRECISION CBYF1
31-
+ INTEGER*4 NGOODHEL, NTOTHEL
32-
+
33-
+ INTEGER*4 NWARNINGS
34-
+ SAVE NWARNINGS
35-
+ DATA NWARNINGS/0/
36-
+
37-
+ LOGICAL FIRST
38-
+ SAVE FIRST
39-
+ DATA FIRST/.TRUE./
40-
+
41-
+ IF( FBRIDGE_MODE .LE. 0 ) THEN ! (FortranOnly=0 or BothQuiet=-1 or BothDebug=-2)
42-
+#endif
43-
+ call counters_smatrix1multi_start( -1, VECSIZE_USED ) ! fortran=-1
44-
!$OMP PARALLEL
45-
!$OMP DO
46-
- DO IVEC=1, VECSIZE_USED
47-
- CALL SMATRIX1(P_MULTI(0,1,IVEC),
48-
- & hel_rand(IVEC),
49-
- & col_rand(IVEC),
50-
- & channel,
51-
- & IVEC,
52-
- & out(IVEC),
53-
- & selected_hel(IVEC),
54-
- & selected_col(IVEC)
55-
- & )
56-
- ENDDO
57-
+ DO IVEC=1, VECSIZE_USED
58-
+ CALL SMATRIX1(P_MULTI(0,1,IVEC),
59-
+ & hel_rand(IVEC),
60-
+ & col_rand(IVEC),
61-
+ & channel,
62-
+ & IVEC,
63-
+ & out(IVEC),
64-
+ & selected_hel(IVEC),
65-
+ & selected_col(IVEC)
66-
+ & )
67-
+ ENDDO
68-
!$OMP END DO
69-
!$OMP END PARALLEL
70-
+ call counters_smatrix1multi_stop( -1 ) ! fortran=-1
71-
+#ifdef MG5AMC_MEEXPORTER_CUDACPP
72-
+ ENDIF
73-
+
74-
+ IF( FBRIDGE_MODE .EQ. 1 .OR. FBRIDGE_MODE .LT. 0 ) THEN ! (CppOnly=1 or BothQuiet=-1 or BothDebug=-2)
75-
+ IF( LIMHEL.NE.0 ) THEN
76-
+ WRITE(6,*) 'ERROR! The cudacpp bridge only supports LIMHEL=0'
77-
+ STOP
78-
+ ENDIF
79-
+ IF ( FIRST ) THEN ! exclude first pass (helicity filtering) from timers (#461)
80-
+ CALL FBRIDGESEQUENCE_NOMULTICHANNEL( FBRIDGE_PBRIDGE, ! multi channel disabled for helicity filtering
81-
+ & P_MULTI, ALL_G, HEL_RAND, COL_RAND, OUT2,
82-
+ & SELECTED_HEL2, SELECTED_COL2 )
83-
+ FIRST = .FALSE.
84-
+c ! This is a workaround for https://github.com/oliviermattelaer/mg5amc_test/issues/22 (see PR #486)
85-
+ IF( FBRIDGE_MODE .EQ. 1 ) THEN ! (CppOnly=1 : SMATRIX1 is not called at all)
86-
+ CALL RESET_CUMULATIVE_VARIABLE() ! mimic 'avoid bias of the initialization' within SMATRIX1
87-
+ ENDIF
88-
+ CALL FBRIDGEGETNGOODHEL(FBRIDGE_PBRIDGE,NGOODHEL,NTOTHEL)
89-
+ IF( NTOTHEL .NE. NCOMB ) THEN
90-
+ WRITE(6,*) 'ERROR! Cudacpp/Fortran mismatch',
91-
+ & ' in total number of helicities', NTOTHEL, NCOMB
92-
+ STOP
93-
+ ENDIF
94-
+ WRITE (6,*) 'NGOODHEL =', NGOODHEL
95-
+ WRITE (6,*) 'NCOMB =', NCOMB
96-
+ ENDIF
97-
+ call counters_smatrix1multi_start( 0, VECSIZE_USED ) ! cudacpp=0
98-
+ IF ( .NOT. MULTI_CHANNEL ) THEN
99-
+ CALL FBRIDGESEQUENCE_NOMULTICHANNEL( FBRIDGE_PBRIDGE, ! multi channel disabled
100-
+ & P_MULTI, ALL_G, HEL_RAND, COL_RAND, OUT2,
101-
+ & SELECTED_HEL2, SELECTED_COL2 )
102-
+ ELSE
103-
+ IF( SDE_STRAT.NE.1 ) THEN
104-
+ WRITE(6,*) 'ERROR! The cudacpp bridge requires SDE=1' ! multi channel single-diagram enhancement strategy
105-
+ STOP
106-
+ ENDIF
107-
+ CALL FBRIDGESEQUENCE(FBRIDGE_PBRIDGE, P_MULTI, ALL_G,
108-
+ & HEL_RAND, COL_RAND, CHANNEL, OUT2,
109-
+ & SELECTED_HEL2, SELECTED_COL2 ) ! 1-N: multi channel enabled
110-
+ ENDIF
111-
+ call counters_smatrix1multi_stop( 0 ) ! cudacpp=0
112-
+ ENDIF
113-
+
114-
+ IF( FBRIDGE_MODE .LT. 0 ) THEN ! (BothQuiet=-1 or BothDebug=-2)
115-
+ DO IVEC=1, VECSIZE_USED
116-
+ CBYF1 = OUT2(IVEC)/OUT(IVEC) - 1
117-
+ FBRIDGE_NCBYF1 = FBRIDGE_NCBYF1 + 1
118-
+ FBRIDGE_CBYF1SUM = FBRIDGE_CBYF1SUM + CBYF1
119-
+ FBRIDGE_CBYF1SUM2 = FBRIDGE_CBYF1SUM2 + CBYF1 * CBYF1
120-
+ IF( CBYF1 .GT. FBRIDGE_CBYF1MAX ) FBRIDGE_CBYF1MAX = CBYF1
121-
+ IF( CBYF1 .LT. FBRIDGE_CBYF1MIN ) FBRIDGE_CBYF1MIN = CBYF1
122-
+ IF( FBRIDGE_MODE .EQ. -2 ) THEN ! (BothDebug=-2)
123-
+ WRITE (*,'(I4,2E16.8,F23.11,I3,I3,I4,I4)')
124-
+ & IVEC, OUT(IVEC), OUT2(IVEC), 1+CBYF1,
125-
+ & SELECTED_HEL(IVEC), SELECTED_HEL2(IVEC),
126-
+ & SELECTED_COL(IVEC), SELECTED_COL2(IVEC)
127-
+ ENDIF
128-
+ IF( ABS(CBYF1).GT.5E-5 .AND. NWARNINGS.LT.20 ) THEN
129-
+ NWARNINGS = NWARNINGS + 1
130-
+ WRITE (*,'(A,I4,A,I4,2E16.8,F23.11)')
131-
+ & 'WARNING! (', NWARNINGS, '/20) Deviation more than 5E-5',
132-
+ & IVEC, OUT(IVEC), OUT2(IVEC), 1+CBYF1
133-
+ ENDIF
134-
+ END DO
135-
+ ENDIF
136-
+
137-
+ IF( FBRIDGE_MODE .EQ. 1 .OR. FBRIDGE_MODE .LT. 0 ) THEN ! (CppOnly=1 or BothQuiet=-1 or BothDebug=-2)
138-
+ DO IVEC=1, VECSIZE_USED
139-
+ OUT(IVEC) = OUT2(IVEC) ! use the cudacpp ME instead of the fortran ME!
140-
+ SELECTED_HEL(IVEC) = SELECTED_HEL2(IVEC) ! use the cudacpp helicity instead of the fortran helicity!
141-
+ SELECTED_COL(IVEC) = SELECTED_COL2(IVEC) ! use the cudacpp color instead of the fortran color!
142-
+ END DO
143-
+ ENDIF
144-
+#endif
145-
+
146-
+ IF ( FIRST_CHID ) THEN
147-
+ IF ( MULTI_CHANNEL ) THEN
148-
+ WRITE (*,*) 'MULTI_CHANNEL = TRUE'
149-
+ ELSE
150-
+ WRITE (*,*) 'MULTI_CHANNEL = FALSE'
151-
+ ENDIF
152-
+ WRITE (*,*) 'CHANNEL_ID =', CHANNEL
153-
+ FIRST_CHID = .FALSE.
154-
+ ENDIF
155-
+
156-
RETURN
157-
END
158-
1591
diff --git b/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/driver.f a/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/driver.f
1602
index 1124a9164..27a6e4674 100644
1613
--- b/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/driver.f
@@ -284,7 +126,7 @@ index 1124a9164..27a6e4674 100644
284126
open(unit=lun,file=tempname,status='old',ERR=20)
285127
fopened=.true.
286128
diff --git b/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/matrix1.f a/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/matrix1.f
287-
index e73e654d4..27fbe7302 100644
129+
index 8b73188ef..710fd1297 100644
288130
--- b/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/matrix1.f
289131
+++ a/epochX/cudacpp/gg_tt.mad/SubProcesses/P1_gg_ttx/matrix1.f
290132
@@ -72,7 +72,10 @@ C
@@ -299,15 +141,7 @@ index e73e654d4..27fbe7302 100644
299141
C
300142
C This is just to temporarily store the reference grid for
301143
C helicity of the DiscreteSampler so as to obtain its number of
302-
@@ -140,6 +143,7 @@ C ----------
303-
C BEGIN CODE
304-
C ----------
305-
306-
+ call counters_smatrix1_start()
307-
NTRY(IMIRROR)=NTRY(IMIRROR)+1
308-
THIS_NTRY(IMIRROR) = THIS_NTRY(IMIRROR)+1
309-
DO I=1,NEXTERNAL
310-
@@ -217,6 +221,17 @@ C ----------
144+
@@ -230,6 +233,17 @@ C update.
311145
ENDIF
312146
IF(NTRY(IMIRROR).EQ.MAXTRIES)THEN
313147
ISHEL(IMIRROR)=MIN(ISUM_HEL,NGOOD(IMIRROR))
@@ -325,22 +159,3 @@ index e73e654d4..27fbe7302 100644
325159
ENDIF
326160
ENDIF
327161
ELSE IF (.NOT.INIT_MODE) THEN ! random helicity
328-
@@ -234,6 +249,7 @@ C Include the Jacobian from helicity sampling
329-
IHEL = HEL_PICKED
330-
ELSE
331-
ANS = 1D0
332-
+ call counters_smatrix1_stop()
333-
RETURN
334-
ENDIF
335-
IF (ANS.NE.0D0.AND.(ISUM_HEL .NE. 1.OR.HEL_PICKED.EQ.-1)) THEN
336-
@@ -278,9 +294,8 @@ C Set right sign for ANS, based on sign of chosen helicity
337-
ENDIF
338-
ENDIF
339-
ANS=ANS/DBLE(IDEN)
340-
-
341-
CALL SELECT_COLOR(RCOL, JAMP2, ICONFIG,1, ICOL)
342-
-
343-
+ call counters_smatrix1_stop()
344-
END
345-
346-

0 commit comments

Comments
 (0)