How to speed up computation of cross-section for a QCD process at NLO?
Dear Experts,
I am trying to compute the K factor for the process p p > b b~ b b~ [QCD] using MadGraph5_aMC@NLO. I launched this process at NLO for only 10 events to test and it is running on my local machine with 4 cores for more than two days now. Is this normal?
I also tried running this process on a machine with 12 cores. A total of 98 subjobs of madevent_mintMC were generated out of which the last two subjobs are running from a very long time.
I could imagine that I takes longer because it also tries to do parton shower simultaneously. Is there a way to speed up the process to extract only the cross section at NLO for this process?
I did the following:
p p > b b~ b b~ QED=0 [QCD]
output ./data/pp4bQCDNLO
Changed the collision energy of the proton proton beams to 50TeV, the lhapdf set, and included a min jet pt cut of 20GeV and max eta of 3. In addition, changed the jet algorithm to anti-kT with R 0.4.
Can you tell me if there is something wrong in what I did and if not how can I speed up the cross section calculation without generating events?
Thank you,
Tamasi
Question information
- Language:
- English Edit question
- Status:
- Open
- Assignee:
- marco zaro Edit question
- Last query:
- Last reply:
Revision history for this message
![]() |
#1 |
You should ask for Fixed order computation (both for the LO and NLO) computation.
This allow to not have any event generation and allow you finer control via the run_card on the phase-space integration.
Cheers,
Olivier
PS: You have to set the following question/menu
/======
| 1. Type of perturbative computation order = NLO |
| 2. No MC@[N]LO matching / event generation fixed_order = OFF |
| 3. Shower the generated events shower = HERWIG6 |
| 4. Decay onshell particles madspin = OFF |
| 5. Add weights to events for new hypp. reweight = OFF |
| 6. Run MadAnalysis5 on the events generated madanalysis = OFF |
to
/======
| 1. Type of perturbative computation order = NLO |
| 2. No MC@[N]LO matching / event generation fixed_order = ON |
| 3. Shower the generated events shower = HERWIG6 |
| 4. Decay onshell particles madspin = OFF |
| 5. Add weights to events for new hypp. reweight = OFF |
| 6. Run MadAnalysis5 on the events generated madanalysis = OFF |
(second line need to be set on ON)
you can do that by answering the function with fixed_order=ON (or if you are in interactive mode just press "2")
Revision history for this message
![]() |
#2 |
Hi Oliver,
Thank you very much. I tried setting the run to Fixed order for both LO and NLO. The fixed order LO computation succeeded without any error, however, I got an error while running the NLO computation. The error reads as follows:
launch auto
Traceback (most recent call last):
File "/nfs/dust/
return self.onecmd_
File "/nfs/dust/
return func(arg, **opt)
File "/nfs/dust/
evt_file = self.run(mode, options)
File "/nfs/dust/
jobs_
File "/nfs/dust/
jobs_
File "/nfs/dust/
job[
ValueError: cannot convert float NaN to integer
The complete error log can be found here: http://
Cheers,
Tamasi
Revision history for this message
![]() |
#3 |
Hi,
Please be aware that the process you are trying is very complicated (with 4 colored particles in the final state), and it is unlikely that you will be able to run it in a reasonable amount of time on O(10) cores.
Then, the problem is that by default only massless partons are clustered into jets, so the jet cuts you are setting here are being ignored. Thus, all phase space is integrated, including quasi-collinear behaviour which can give rise to large logs (specially at 50 tev), which in turn can spoil the convergence of the numerical integration. Also, unstable PS points may be there for the virtuals, which increase considerably the running time.
In order to be able to cluster also b quarks into jets, you need to add this line to the run_card
5 = maxjetflavor
note that this does not mean that you will always get 4 b-tagged jets. You can also get one light jet and 3 b-tagged ones.
This should improve a bit the situation.
You can run at fixed order to see if it now gets through...
Let us know
Cheers,
Marco
Revision history for this message
![]() |
#4 |
Hi Marco,
Thank you for your inputs. I added the line "5 = maxjetflavor" inside the run_card and it did speed up the calculation significantly. However, I still did not manage to get a successful run for the process. This time I was running on a machine with 20 cores and the run crashed after giving a rough estimate of the cross-section. The log output printed on the screen was the following:
INFO: Idle: 0, Running: 2, Completed: 4 [ 53m 25s ]
INFO: Idle: 0, Running: 0, Completed: 6 [ 1h 14m ]
INFO:
Results after grid setup:
Total cross section: 3.889e+04 +- 1.6e+03 pb
INFO: Refining results, step 1
INFO: Idle: 23, Running: 20, Completed: 0 [ current time: 00h05 ]
INFO: Idle: 22, Running: 20, Completed: 1 [ 1h 18m ]
INFO: Idle: 21, Running: 20, Completed: 2 [ 1h 19m ]
INFO: Idle: 20, Running: 20, Completed: 3 [ 1h 19m ]
INFO: Idle: 19, Running: 20, Completed: 4 [ 1h 19m ]
INFO: Idle: 18, Running: 20, Completed: 5 [ 1h 20m ]
INFO: Idle: 17, Running: 20, Completed: 6 [ 1h 20m ]
INFO: Idle: 16, Running: 20, Completed: 7 [ 1h 20m ]
INFO: Idle: 15, Running: 20, Completed: 8 [ 1h 20m ]
INFO: Idle: 14, Running: 20, Completed: 9 [ 1h 20m ]
INFO: Idle: 13, Running: 20, Completed: 10 [ 1h 20m ]
INFO: Idle: 12, Running: 20, Completed: 11 [ 1h 21m ]
INFO: Idle: 11, Running: 20, Completed: 12 [ 1h 35m ]
INFO: Idle: 10, Running: 20, Completed: 13 [ 1h 35m ]
INFO: Idle: 9, Running: 20, Completed: 14 [ 1h 35m ]
INFO: Idle: 8, Running: 20, Completed: 15 [ 1h 35m ]
INFO: Idle: 7, Running: 20, Completed: 16 [ 1h 35m ]
INFO: Idle: 6, Running: 20, Completed: 17 [ 1h 36m ]
INFO: Idle: 5, Running: 20, Completed: 18 [ 1h 58m ]
INFO: Idle: 4, Running: 20, Completed: 19 [ 1h 58m ]
INFO: Idle: 3, Running: 20, Completed: 20 [ 1h 58m ]
INFO: Idle: 2, Running: 20, Completed: 21 [ 1h 58m ]
INFO: Idle: 1, Running: 20, Completed: 22 [ 1h 58m ]
INFO: Idle: 0, Running: 20, Completed: 23 [ 1h 59m ]
INFO: Idle: 0, Running: 19, Completed: 24 [ 1h 59m ]
INFO: Idle: 0, Running: 18, Completed: 25 [ 1h 59m ]
INFO: Idle: 0, Running: 17, Completed: 26 [ 1h 59m ]
INFO: Idle: 0, Running: 16, Completed: 27 [ 1h 59m ]
INFO: Idle: 0, Running: 15, Completed: 28 [ 2h 4m ]
INFO: Idle: 0, Running: 14, Completed: 29 [ 2h 4m ]
INFO: Idle: 0, Running: 12, Completed: 31 [ 2h 13m ]
INFO: Idle: 0, Running: 9, Completed: 34 [ 2h 14m ]
INFO: Idle: 0, Running: 8, Completed: 35 [ 2h 15m ]
INFO: Idle: 0, Running: 3, Completed: 40 [ 2h 33m ]
INFO: Idle: 0, Running: 2, Completed: 41 [ 2h 39m ]
INFO: Idle: 0, Running: 1, Completed: 42 [ 2h 40m ]
INFO: Idle: 0, Running: 0, Completed: 43 [ 2h 42m ]
Command "launch auto " interrupted with error:
ValueError : need more than 1 value to unpack
Please report this bug on https:/
More information is found in '/nfs/dust/
Please attach this file to your report.
The complete debug_log file can be found here:
http://
What's going wrong?
Pardon me for my naivety in understanding the details but, can you elaborate a bit more on what the line
5 = maxjetflavor
does when added to the run_card?
What other variables can be added to the run_card? I noticed that when running MadGraph5 alone (w/o MC@NLO) the run_card allows for various other cut variables like drbb, drbj, ptb, etab, etc, in addition to the ones shown in the run_card when running MC@NLO. Can one also add these additional cuts when running MC@NLO?
"
note that this does not mean that you will always get 4 b-tagged jets. You can also get one light jet and 3 b-tagged ones.
"
I went through a few papers and noticed that they all use SHERPA for generating the pp->4b QCD process. Is there a strong reason why SHERPA is used for generating this process and not MadGraph? What is the correct way of generating or extracting the cross-section for the QCD 4b final state using MadGraph?
Cheers,
Tamasi
Revision history for this message
![]() |
#5 |
Hi,
> On 17 Oct 2019, at 11:04, Tamasi <email address hidden> wrote:
>
> Question #685118 on MadGraph5_aMC@NLO changed:
> https:/
>
> Status: Answered => Open
>
> Tamasi is still having a problem:
> Hi Marco,
>
> Thank you for your inputs. I added the line "5 = maxjetflavor" inside
> the run_card and it did speed up the calculation significantly. However,
> I still did not manage to get a successful run for the process. This
> time I was running on a machine with 20 cores and the run crashed after
> giving a rough estimate of the cross-section. The log output printed on
> the screen was the following:
>
> INFO: Idle: 0, Running: 2, Completed: 4 [ 53m 25s ]
> INFO: Idle: 0, Running: 0, Completed: 6 [ 1h 14m ]
> INFO:
> Results after grid setup:
> Total cross section: 3.889e+04 +- 1.6e+03 pb
>
> INFO: Refining results, step 1
> INFO: Idle: 23, Running: 20, Completed: 0 [ current time: 00h05 ]
> INFO: Idle: 22, Running: 20, Completed: 1 [ 1h 18m ]
> INFO: Idle: 21, Running: 20, Completed: 2 [ 1h 19m ]
> INFO: Idle: 20, Running: 20, Completed: 3 [ 1h 19m ]
> INFO: Idle: 19, Running: 20, Completed: 4 [ 1h 19m ]
> INFO: Idle: 18, Running: 20, Completed: 5 [ 1h 20m ]
> INFO: Idle: 17, Running: 20, Completed: 6 [ 1h 20m ]
> INFO: Idle: 16, Running: 20, Completed: 7 [ 1h 20m ]
> INFO: Idle: 15, Running: 20, Completed: 8 [ 1h 20m ]
> INFO: Idle: 14, Running: 20, Completed: 9 [ 1h 20m ]
> INFO: Idle: 13, Running: 20, Completed: 10 [ 1h 20m ]
> INFO: Idle: 12, Running: 20, Completed: 11 [ 1h 21m ]
> INFO: Idle: 11, Running: 20, Completed: 12 [ 1h 35m ]
> INFO: Idle: 10, Running: 20, Completed: 13 [ 1h 35m ]
> INFO: Idle: 9, Running: 20, Completed: 14 [ 1h 35m ]
> INFO: Idle: 8, Running: 20, Completed: 15 [ 1h 35m ]
> INFO: Idle: 7, Running: 20, Completed: 16 [ 1h 35m ]
> INFO: Idle: 6, Running: 20, Completed: 17 [ 1h 36m ]
> INFO: Idle: 5, Running: 20, Completed: 18 [ 1h 58m ]
> INFO: Idle: 4, Running: 20, Completed: 19 [ 1h 58m ]
> INFO: Idle: 3, Running: 20, Completed: 20 [ 1h 58m ]
> INFO: Idle: 2, Running: 20, Completed: 21 [ 1h 58m ]
> INFO: Idle: 1, Running: 20, Completed: 22 [ 1h 58m ]
> INFO: Idle: 0, Running: 20, Completed: 23 [ 1h 59m ]
> INFO: Idle: 0, Running: 19, Completed: 24 [ 1h 59m ]
> INFO: Idle: 0, Running: 18, Completed: 25 [ 1h 59m ]
> INFO: Idle: 0, Running: 17, Completed: 26 [ 1h 59m ]
> INFO: Idle: 0, Running: 16, Completed: 27 [ 1h 59m ]
> INFO: Idle: 0, Running: 15, Completed: 28 [ 2h 4m ]
> INFO: Idle: 0, Running: 14, Completed: 29 [ 2h 4m ]
> INFO: Idle: 0, Running: 12, Completed: 31 [ 2h 13m ]
> INFO: Idle: 0, Running: 9, Completed: 34 [ 2h 14m ]
> INFO: Idle: 0, Running: 8, Completed: 35 [ 2h 15m ]
> INFO: Idle: 0, Running: 3, Completed: 40 [ 2h 33m ]
> INFO: Idle: 0, Running: 2, Completed: 41 [ 2h 39m ]
> INFO: Idle: 0, Running: 1, Completed: 42 [ 2h 40m ]
> INFO: Idle: 0, Running: 0, Completed: 43 [ 2h 42m ]
> Command "launch auto " interrupted with error:
> ValueError : need more than 1 value to unpack
> Please report this bug on https:/
> More information is found in '/nfs/dust/
> Please attach this file to your report.
>
>
> The complete debug_log file can be found here:
> http://
can you please send what you get by doing
tail /nfs/dust/
and
cat /nfs/dust/
>
>
> What's going wrong?
>
>
> Pardon me for my naivety in understanding the details but, can you elaborate a bit more on what the line
>
> 5 = maxjetflavor
>
> does when added to the run_card?
this tells to consider all light quarks and the b quarks for jet clustering.
>
> What other variables can be added to the run_card? I noticed that when
> running MadGraph5 alone (w/o MC@NLO) the run_card allows for various
> other cut variables like drbb, drbj, ptb, etab, etc, in addition to the
> ones shown in the run_card when running MC@NLO. Can one also add these
> additional cuts when running MC@NLO?
Those cuts, which are available for LO madevent, are not available in the NLO runs indeed. At NLO we preferred to have a limited, yet well validated and IR-safe set of cuts. Other cuts can be added by hand inside SubProcesses/cuts.f
>
> "
> note that this does not mean that you will always get 4 b-tagged jets. You can also get one light jet and 3 b-tagged ones.
>
> "
>
> I went through a few papers and noticed that they all use SHERPA for
> generating the pp->4b QCD process. Is there a strong reason why SHERPA
> is used for generating this process and not MadGraph? What is the
> correct way of generating or extracting the cross-section for the QCD 4b
> final state using MadGraph?
It depends… If papers are from experimental collaborators, the usage of a given tool may be due to have some developers of the tool affiliated to a given experiment, which should be the case e.g. for Sherpa and ATLAS
Cheers,
Marco
>
> Cheers,
> Tamasi
>
> --
> You received this question notification because you are subscribed to
> the question.
Revision history for this message
![]() |
#6 |
Hi,
I have attached the files you requested below.
> can you please send what you get by doing
>
> tail
> /nfs/dust/
>
http://
> and
>
> cat /nfs/dust/
> generators/
>
http://
Cheers,
Tamasi
Revision history for this message
![]() |
#8 |
Hi,
there is one results.dat which has the following content
can you please send the full log.txt file in the corresponding directory?
Thanks,
Marco
> On 17 Oct 2019, at 11:33, Tamasi <email address hidden> wrote:
>
> Question #685118 on MadGraph5_aMC@NLO changed:
> https:/
>
> Status: Answered => Open
>
> Tamasi is still having a problem:
> Hi,
> I have attached the files you requested below.
>
>> can you please send what you get by doing
>>
>> tail
>> /nfs/dust/
>>
>
> http://
>
>> and
>>
>> cat /nfs/dust/
>> generators/
>>
> http://
> Cheers,
> Tamasi
>
> --
> You received this question notification because you are subscribed to
> the question.
Revision history for this message
![]() |
#9 |
btw, can you please confirm that you are **not** setting the b mass to zero?
> On 17 Oct 2019, at 11:39, Marco Zaro <email address hidden> wrote:
>
> Hi,
> there is one results.dat which has the following content
> Infinity NaN 0.0000000000000000 0 0 0 0 0.0000000000000000 0.0000000000000000 Infinity
>
> can you please send the full log.txt file in the corresponding directory?
> Thanks,
>
> Marco
>
>> On 17 Oct 2019, at 11:33, Tamasi <<email address hidden> <mailto:<email address hidden>>> wrote:
>>
>> Question #685118 on MadGraph5_aMC@NLO changed:
>> https:/
>>
>> Status: Answered => Open
>>
>> Tamasi is still having a problem:
>> Hi,
>> I have attached the files you requested below.
>>
>>> can you please send what you get by doing
>>>
>>> tail
>>> /nfs/dust/
>>>
>>
>> http://
>>
>>> and
>>>
>>> cat /nfs/dust/
>>> generators/
>>>
>> http://
>> Cheers,
>> Tamasi
>>
>> --
>> You received this question notification because you are subscribed to
>> the question.
>
Revision history for this message
![]() |
#10 |
Hi,
I haven't changed anything in the param card after launching the process.
Also, I see it is non-zero in the debug_log
http://
#######
## INFORMATION FOR MASS
#######
Block mass
5 4.700000e+00 # MB
The log file from the directory containing infinity is attached below:
http://
I have also copied all the other files in this directory here:
http://
Cheers,
Tamasi
On Thu, Oct 17, 2019 at 11:43 AM marco zaro <
<email address hidden>> wrote:
> Your question #685118 on MadGraph5_aMC@NLO changed:
> https:/
>
> marco zaro proposed the following answer:
> btw, can you please confirm that you are **not** setting the b mass to
> zero?
>
> > On 17 Oct 2019, at 11:39, Marco Zaro <email address hidden> wrote:
> >
> > Hi,
> > there is one results.dat which has the following content
> > Infinity NaN
> 0.0000000000000000 0 0 0 0
> 0.0000000000000000 0.0000000000000000 Infinity
> >
> > can you please send the full log.txt file in the corresponding directory?
> > Thanks,
> >
> > Marco
> >
> >> On 17 Oct 2019, at 11:33, Tamasi <<email address hidden>
> <mailto:<email address hidden>>> wrote:
> >>
> >> Question #685118 on MadGraph5_aMC@NLO changed:
> >> https:/
> https:/
> >>
> >> Status: Answered => Open
> >>
> >> Tamasi is still having a problem:
> >> Hi,
> >> I have attached the files you requested below.
> >>
> >>> can you please send what you get by doing
> >>>
> >>> tail
> >>>
> /nfs/dust/
> >>>
> >>
> >> http://
> >>
> >>> and
> >>>
> >>> cat /nfs/dust/
> >>> generators/
> >>>
> >> http://
> >> Cheers,
> >> Tamasi
> >>
> >> --
> >> You received this question notification because you are subscribed to
> >> the question.
> >
>
> --
> If this answers your question, please go to the following page to let us
> know that it is solved:
>
> https:/
>
> If you still need help, you can reply to this email or go to the
> following page to enter your feedback:
> https:/
>
> You received this question notification because you asked the question.
>
Revision history for this message
![]() |
#11 |
Hi,
Thanks for the checks.
The inifinity you get may be related to the fact that not all jets are required to be b-tagged. In order to require that all jets are b tagged with a **single** b quark in each, you must edit cuts.f, and add, before line 267
122 continue
the following block
do i = 1, nQCD-1
do j = i+1, nQCD-1
if (jet(i)
return
endif
enddo
enddo
where one checks that two b (anti)quarks never end in the same jet and that all b quarks end into some reconstructed jet.
Let me know if it works and helps.
Marco
Revision history for this message
![]() |
#12 |
Hi Marco,
I added the above block to cuts.f and sourced the executable
calculate_xsect from the bin directory of the corresponding process. The
modified cuts.f file can be found here:
http://
This time I get new set of errors and Infinities in two of the results.dat
file. The corresponding log files are attached below:
http://
http://
It reports Error in one loop followed by infinities:
ERROR in OneLOop dilog2_r: r1,r2 = .15941760609250
.55831017205436
ERROR in OneLOop dilog2_r: r1,r2 = .16278985515889
.64192062111167
ERROR in OneLOop dilog2_r: r1,r2 = .15316496011968
.48847335016173
ERROR in OneLOop dilog2_r: r1,r2 = .14788081211017
.45931851115391
ERROR in OneLOop dilog2_r: r1,r2 = .69532388189765
.21596793096121
ERROR in OneLOop dilog2_r: r1,r2 = .43455181242942
.14915157928979
ERROR in OneLOop dilog2_r: r1,r2 = .12229308694757
.41974757745183
Cheers,
Tamasi
On Thu, Oct 17, 2019 at 12:22 PM marco zaro <
<email address hidden>> wrote:
> Your question #685118 on MadGraph5_aMC@NLO changed:
> https:/
>
> Status: Open => Answered
>
> marco zaro proposed the following answer:
> Hi,
> Thanks for the checks.
> The inifinity you get may be related to the fact that not all jets are
> required to be b-tagged. In order to require that all jets are b tagged
> with a **single** b quark in each, you must edit cuts.f, and add, before
> line 267
>
> 122 continue
>
> the following block
>
> do i = 1, nQCD-1
> do j = i+1, nQCD-1
> if (jet(i)
> passcuts_
> return
> endif
> enddo
> enddo
>
> where one checks that two b (anti)quarks never end in the same jet and
> that all b quarks end into some reconstructed jet.
>
> Let me know if it works and helps.
>
> Marco
>
> --
> If this answers your question, please go to the following page to let us
> know that it is solved:
>
> https:/
>
> If you still need help, you can reply to this email or go to the
> following page to enter your feedback:
> https:/
>
> You received this question notification because you asked the question.
>
Can you help with this problem?
Provide an answer of your own, or ask Tamasi for more information if necessary.