Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dire performance in CMSSW vs. stand-alone #22214

Closed
mseidel42 opened this issue Feb 14, 2018 · 50 comments
Closed

Dire performance in CMSSW vs. stand-alone #22214

mseidel42 opened this issue Feb 14, 2018 · 50 comments

Comments

@mseidel42
Copy link
Contributor

mseidel42 commented Feb 14, 2018

Hi, I hope somebody has an idea on this performance problem: I want to generate+analyze pp events using the Dire shower plugin but the code hangs in pythia::next().

  • It works when I turn off initial-state shower.
  • It works when I set '-s 4000000' and turn off any additional modules (pgen + some analysis modules)
  • It works without problems and 10x faster with a standalone Pythia+Dire installation on my desktop PC
  • Replacing process.pgen by doing only process.genparticles seems to work also but veeery slow.

CPU is 100%, memory consumption seems to be low.

The Dire integration was merged here: #22098

@cmsbuild
Copy link
Contributor

A new Issue was created by @intrepid42 Markus Seidel.

@davidlange6, @Dr15Jones, @smuzaffar, @fabiocos can you please review it and eventually sign/assign? Thanks.

cms-bot commands are listed here

@fabiocos
Copy link
Contributor

assign generators

@cmsbuild
Copy link
Contributor

New categories assigned: generators

@perrozzi,@efeyazgan you have been requested to review this Pull request/Issue and eventually sign? Thanks

@mseidel42
Copy link
Contributor Author

@smrenna Do you have an idea about this? Or should we update and retest (and cross fingers) with Dire 2.002 once it becomes available?

@smrenna
Copy link
Contributor

smrenna commented May 2, 2018 via email

@mseidel42
Copy link
Contributor Author

Hi Steve, yes, Dire is slow, but it is much slower (and even freezing) when running inside CMSSW, that's the problem!

@perrozzi
Copy link

perrozzi commented May 14, 2018

@alberto-sanchez will add a line to tomorrow's ORP gdoc to draw the attention of CMSSW experts as this seems to be related (in first place) to the CMSSW implementation.
@intrepid42 could you run the tool (I don't have details though) to profile the memory/cpu consumption internally and externally to CMSSW? can you coordinate with Alberto?

@davidlange6
Copy link
Contributor

davidlange6 commented May 14, 2018 via email

@mseidel42
Copy link
Contributor Author

It crashes with igprof, see attached log.
igtest.pp.log

@davidlange6
Copy link
Contributor

davidlange6 commented May 14, 2018 via email

@mseidel42
Copy link
Contributor Author

You can easily reproduce the igprof error like this:

cmsrel CMSSW_10_1_3
cd CMSSW_10_1_3/src
cmsenv
wget --no-check-certificate https://raw.githubusercontent.com/cms-sw/cmssw/master/GeneratorInterface/Pythia8Interface/test/pythia8ex14_cfg.py
igprof cmsRun pythia8ex14_cfg.py

Note 1: Also fails with other Pythia test config files.
Note 2: This Dire example is e+e- and sufficiently fast. Maybe there is a drop in performance but it is not notable compared to pp collisions

@davidlange6
Copy link
Contributor

davidlange6 commented May 14, 2018 via email

@davidlange6
Copy link
Contributor

davidlange6 commented May 14, 2018 via email

@davidlange6
Copy link
Contributor

davidlange6 commented May 14, 2018 via email

@mseidel42
Copy link
Contributor Author

David, I went to the website, clicked on "Running igprof" and followed the longish command there that produced the log attached some posts ago. It fails with exactly the same error as the short version igprof cmsRun ... in my minimal example above. Could you share with us the command that works, please

I can create a config with ttbar production + rivet, that usually fails...

@davidlange6
Copy link
Contributor

davidlange6 commented May 14, 2018 via email

@mseidel42
Copy link
Contributor Author

Thank you but same problem with that command :( "A fatal system signal has occurred: bus error" Do I need to run this on a special machine? (Using lxplus right now)

As it works for you, could you test the following CMSSW configuration, please? This is Dire dijet events + Rivet analysis. It freezes for me after generating the first event: dire_rivet_cfg.py.txt

@davidlange6
Copy link
Contributor

davidlange6 commented May 14, 2018 via email

@mseidel42
Copy link
Contributor Author

I'm on lxplus078...

Did the dire_rivet_cfg.py config pass by the second event for you? For me it freezes completely, no event generated in an hour.

In contrast, when I run without the CMSSW RivetInterface, it continues to (slowly) generate events, please try out this config for that case (pp dijet): dire_norivet_cfg.py.txt
-> 100 events in 8 min

For the really fast experience, one needs to get Dire (https://dire.gitlab.io/Downloads/) and run make dire01 && ./dire01 lhc.cmnd in the main directory.
-> 100 events in 40 s

From that comparison it seems that Dire is not awfully slow as stand-alone program but gets slower and slower when it is run inside CMSSW and more modules are added to the path/schedule.

@Dr15Jones
Copy link
Contributor

How much memory is the standalone and cmsRun versions using? You can just use top to get an estimate.

@davidlange6
Copy link
Contributor

davidlange6 commented May 15, 2018 via email

@mseidel42
Copy link
Contributor Author

Hi, thank you for making me check that again! It turns out that the shower cutoff value (TimeShower:pTmin, 0.4 in CMS tune, 0.9 in Dire tune) has a huge impact on performance. So this resolves the problem of stand-alone vs. CMSSW-integrated when no additional CMSSW modules are run.

Still, the problem persits with running Dire in a more integrated CMSSW workflow with the standard pgen sequence and Rivet analysis, using exactly the same physics settings (with 0.9 as shower cut-off which should be fast).

The resource usage does not look overwhelming:

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                               
 7193 mseidel   20   0 1672m 286m  93m R 100.0  1.0   2:25.43 cmsRun                                

vs

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                         
19570 mseidel   20   0  941568  17476   9616 R  99.7  0.1   0:08.50 dire01

This is the CMSSW timing information for the first event:

TimeModule> 1 1 generator Pythia8GeneratorFilter 0.944176
TimeModule> 1 1 randomEngineStateProducer RandomEngineStateProducer 2.40803e-05
TimeModule> 1 1 VtxSmeared BetafuncEvtVtxGenerator 0.00409818
TimeModule> 1 1 generatorSmeared GeneratorSmearedProducer 0.00653386
TimeModule> 1 1 genParticles GenParticleProducer 0.020154
TimeModule> 1 1 genParticlesForJets InputGenJetsParticleSelector 0.00139689
TimeModule> 1 1 genParticlesForJetsNoNu InputGenJetsParticleSelector 0.000400066
TimeModule> 1 1 ak4GenJets FastjetJetProducer 0.00628996
TimeModule> 1 1 ak8GenJets FastjetJetProducer 0.00132895
TimeModule> 1 1 ak4GenJetsNoNu FastjetJetProducer 0.00095892
TimeModule> 1 1 ak8GenJetsNoNu FastjetJetProducer 0.00108218
TimeModule> 1 1 genCandidatesForMET InputGenJetsParticleSelector 0.000371933
TimeModule> 1 1 genParticlesForMETAllVisible InputGenJetsParticleSelector 0.000355005
TimeModule> 1 1 genMetCalo GenMETProducer 0.00115705
TimeModule> 1 1 genMetTrue GenMETProducer 0.000113964
TimeModule> 1 1 rivetAnalyzer RivetAnalyzer 0.0202439
TimeModule> 1 1 generation_step PathStatusInserter 1.19209e-05
TimeModule> 1 1 TriggerResults TriggerResultInserter 7.15256e-06
TimeModule> 1 1 RAWSIMoutput PoolOutputModule 0.0785501
TimeModule> 1 1 RAWSIMoutput_step EndPathStatusInserter 1.50204e-05
TimeModule> 1 1 genFilterEfficiencyProducer GenFilterEfficiencyProducer 4.50611e-05
TimeModule> 1 1 genXSecAnalyzer GenXSecAnalyzer 1.19209e-06
TimeModule> 1 1 genfiltersummary_step EndPathStatusInserter 3.09944e-06
TimeModule> 1 1 MEtoEDMConverter MEtoEDMConverter 2.14577e-06
TimeModule> 1 1 endjob_step EndPathStatusInserter 3.09944e-06
TimeEvent> 1 1 1.08945
Begin processing the 2nd record. Run 1, Event 2, LumiSection 1 on stream 0 at 15-May-2018 09:09:12.135 CEST

And there it just hangs within pythia.next(), after the first event was generated fine.
@davidlange6 Can you confirm this using the dire_rivet_cfg.py? What could be the reason for the additional modules causing Dire to freeze?

@davidlange6
Copy link
Contributor

davidlange6 commented May 15, 2018 via email

@mseidel42
Copy link
Contributor Author

How can I do that? (the dire_rivet_cfg.py you sent yesterday runs ok, but I think that is expected)

No, for me and other people it freezes just after one or a few events!
Just to be sure, you are using the file with process.generation_step+=process.rivetAnalyzer as last line, and it runs without problems?

The igprof (crash) log is here: igtest.pp.log

@davidlange6
Copy link
Contributor

davidlange6 commented May 15, 2018 via email

@mseidel42
Copy link
Contributor Author

Ok, I can confirm that it works fine with CMSSW_10_2_X_2018-05-13-2300, indeed!
What is different with regard to 10_1? This would be needed for 2018 MC production I think...

@davidlange6
Copy link
Contributor

davidlange6 commented May 15, 2018 via email

@mseidel42
Copy link
Contributor Author

I tried the stand-alone with different Pythia version, there was no change. Could it be something in the scheduling or so? I mean it seems very obvious to me now that Dire within CMSSW 10_1 works fine, unless we put additional modules in the schedule, that should normally not interfere with Dire. Changing to CMSSW 10_2 this interference seems to be gone...

@davidlange6
Copy link
Contributor

davidlange6 commented May 15, 2018 via email

@mseidel42
Copy link
Contributor Author

Begin processing the 2nd record. Run 1, Event 2, LumiSection 1 on stream 0 at 15-May-2018 10:41:45.489 CEST
^C
Thread 1 "cmsRun" received signal SIGINT, Interrupt.
0x00007ffff52293ab in memchr () from /lib64/libc.so.6
(gdb) 

Now I am left with gdb prompt again. Anything more I can do here?

@davidlange6
Copy link
Contributor

davidlange6 commented May 15, 2018 via email

@mseidel42
Copy link
Contributor Author

Ok :)

(gdb) where
#0  0x00007ffff52293ab in memchr () from /lib64/libc.so.6
#1  0x00007ffff5b13690 in std::char_traits<char>::find (__a=@0x7fffffff21f0: 80 'P', __n=8, 
    __s=0x7fffd4cd5d5a " \n\t\v\b\r\f\a")
    at /mnt/build/davidlt/gcc630/b/BUILD/slc6_amd64_gcc630/external/gcc/6.3.0/gcc-tags_gcc_6_3_0_release-243837/obj/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/char_traits.h:274
#2  std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::find_first_not_of (this=<optimized out>, __s=0x7fffd4cd5d5a " \n\t\v\b\r\f\a", __pos=0, __n=8)
    at /mnt/build/davidlt/gcc630/b/BUILD/slc6_amd64_gcc630/external/gcc/6.3.0/gcc-tags_gcc_6_3_0_release-243837/obj/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/basic_string.tcc:1297
#3  0x00007fffd4b37166 in Pythia8::toLower(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) ()
   from /cvmfs/cms.cern.ch/slc6_amd64_gcc630/cms/cmssw/CMSSW_10_1_3/external/slc6_amd64_gcc630/lib/libpythia8.so
#4  0x00007fffd4b7fd2a in Pythia8::Settings::word(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) ()
   from /cvmfs/cms.cern.ch/slc6_amd64_gcc630/cms/cmssw/CMSSW_10_1_3/external/slc6_amd64_gcc630/lib/libpythia8.so
#5  0x00007fffd66ed53e in Pythia8::DireTimes::getMass(int, int, double) ()
   from /cvmfs/cms.cern.ch/slc6_amd64_gcc630/cms/cmssw/CMSSW_10_1_3/external/slc6_amd64_gcc630/lib/libdire.so
#6  0x00007fffd66def25 in Pythia8::DireTimes::getNewSplitting(Pythia8::Event const&, Pythia8::DireTimesEnd*, double, double, double, double, double, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int&, int&, double&, double&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, double, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, double> > >&, double&) ()
   from /cvmfs/cms.cern.ch/slc6_amd64_gcc630/cms/cmssw/CMSSW_10_1_3/external/slc6_amd64_gcc630/lib/libdire.so
#7  0x00007fffd66e67fe in Pythia8::DireTimes::pT2nextQCD_FI(double, double, Pythia8::DireTimesEnd&, Pythia8::Event const&) ()
   from /cvmfs/cms.cern.ch/slc6_amd64_gcc630/cms/cmssw/CMSSW_10_1_3/external/slc6_amd64_gcc630/lib/libdire.so
#8  0x00007fffd66ea074 in Pythia8::DireTimes::pTnext(Pythia8::Event&, double, double, bool, bool)
    ()
   from /cvmfs/cms.cern.ch/slc6_amd64_gcc630/cms/cmssw/CMSSW_10_1_3/external/slc6_amd64_gcc630/lib/libdire.so
#9  0x00007fffd4aabad4 in Pythia8::PartonLevel::next(Pythia8::Event&, Pythia8::Event&) ()
   from /cvmfs/cms.cern.ch/slc6_amd64_gcc630/cms/cmssw/CMSSW_10_1_3/external/slc6_amd64_gcc630/lib/libpythia8.so
#10 0x00007fffd4b2096b in Pythia8::Pythia::next() ()
   from /cvmfs/cms.cern.ch/slc6_amd64_gcc630/cms/cmssw/CMSSW_10_1_3/external/slc6_amd64_gcc630/lib/libpythia8.so
#11 0x00007fffd767bb9f in Pythia8Hadronizer::generatePartonsAndHadronize() ()
   from /cvmfs/cms.cern.ch/slc6_amd64_gcc630/cms/cmssw/CMSSW_10_1_3/lib/slc6_amd64_gcc630/pluginGeneratorInterfacePythia8Filters.so
#12 0x00007fffd76ae6b9 in edm::GeneratorFilter<Pythia8Hadronizer, gen::ExternalDecayDriver>::filter(edm::Event&, edm::EventSetup const&) ()
   from /cvmfs/cms.cern.ch/slc6_amd64_gcc630/cms/cmssw/CMSSW_10_1_3/lib/slc6_amd64_gcc630/pluginGeneratorInterfacePythia8Filters.so
#13 0x00007ffff7d38711 in edm::one::EDFilterBase::doEvent(edm::EventPrincipal const&, edm::EventSetup const&, edm::ActivityRegistry*, edm::ModuleCallingContext const*) ()
   from /cvmfs/cms.cern.ch/slc6_amd64_gcc630/cms/cmssw/CMSSW_10_1_3/lib/slc6_amd64_gcc630/libFWCoreFramework.so
#14 0x00007ffff7c87142 in edm::WorkerT<edm::one::EDFilterBase>::implDo(edm::EventPrincipal const&, edm::EventSetup const&, edm::ModuleCallingContext const*) ()
   from /cvmfs/cms.cern.ch/slc6_amd64_gcc630/cms/cmssw/CMSSW_10_1_3/lib/slc6_amd64_gcc630/libFWCoreFramework.so
#15 0x00007ffff7bfa72a in decltype ({parm#1}()) edm::convertException::wrap<bool edm::Worker::runModule<edm::OccurrenceTraits<edm::EventPrincipal, (edm::BranchActionType)1> >(edm::OccurrenceTraits<edm::EventPrincipal, (edm::BranchActionType)1>::MyPrincipal const&, edm::EventSetup const&, edm::StreamID, edm::ParentContext const&, edm::OccurrenceTraits<edm::EventPrincipal, (edm::BranchActionType)1>::Context const*)::{lambda()#1}>(bool edm::Worker::runModule<edm::OccurrenceTraits<edm::EventPrincipal, (edm::BranchActionType)1> >(edm::OccurrenceTraits<edm::EventPrincipal, (edm::BranchActionType)1>::MyPrincipal const&, edm::EventSetup const&, edm::StreamID, edm::ParentContext const&, edm::OccurrenceTraits<edm::EventPrincipal, (edm::BranchActionType)1>::Context const*)::{lambda()#1}) ()
   from /cvmfs/cms.cern.ch/slc6_amd64_gcc630/cms/cmssw/CMSSW_10_1_3/lib/slc6_amd64_gcc630/libFWCoreFramework.so
#17 0x00007ffff7bfac5b in std::__exception_ptr::exception_ptr edm::Worker::runModuleAfterAsyncPrefetch<edm::OccurrenceTraits<edm::EventPrincipal, (edm::BranchActionType)1> >(std::__exception_ptr::exception_ptr const*, edm::OccurrenceTraits<edm::EventPrincipal, (edm::BranchActionType)1>::MyPrincipal const&, edm::EventSetup const&, edm::StreamID, edm::ParentContext const&, edm::OccurrenceTraits<edm::EventPrincipal, (edm::BranchActionType)1>::Context const*) ()
   from /cvmfs/cms.cern.ch/slc6_amd64_gcc630/cms/cmssw/CMSSW_10_1_3/lib/slc6_amd64_gcc630/libFWCoreFramework.so
#18 0x00007ffff7bfcf77 in void edm::SerialTaskQueueChain::actionToRun<edm::Worker::RunModuleTask<edm::OccurrenceTraits<edm::EventPrincipal, (edm::BranchActionType)1> >::execute()::{lambda()#1}&>(edm::Worker::RunModuleTask<edm::OccurrenceTraits<edm::EventPrincipal, (edm::BranchActionType)1> >::execute()::{lambda()#1}&) () from /cvmfs/cms.cern.ch/slc6_amd64_gcc630/cms/cmssw/CMSSW_10_1_3/lib/slc6_amd64_gcc630/libFWCoreFramework.so
#19 0x00007ffff7bfd091 in edm::SerialTaskQueue::QueuedTask<void edm::SerialTaskQueueChain::push<edm::Worker::RunModuleTask<edm::OccurrenceTraits<edm::EventPrincipal, (edm::BranchActionType)1> >::execute()::{lambda()#1}&>(edm::Worker::RunModuleTask<edm::OccurrenceTraits<edm::EventPrincipal, (edm::BranchActionType)1> >::execute()::{lambda()#1}&)::{lambda()#1}>::execute() () from /cvmfs/cms.cern.ch/slc6_amd64_gcc630/cms/cmssw/CMSSW_10_1_3/lib/slc6_amd64_gcc630/libFWCoreFramework.so
#20 0x00007ffff683942c in tbb::internal::custom_scheduler<tbb::internal::IntelSchedulerTraits>::local_wait_for_all (this=0x7ffff2947200, parent=..., child=<optimized out>) at ../../src/tbb/custom_scheduler.h:509
#21 0x00007ffff7cd6c46 in edm::EventProcessor::processLumis(std::shared_ptr<void> const&) () from /cvmfs/cms.cern.ch/slc6_amd64_gcc630/cms/cmssw/CMSSW_10_1_3/lib/slc6_amd64_gcc630/libFWCoreFramework.so
#22 0x00007ffff7cdbe5f in edm::EventProcessor::runToCompletion() () from /cvmfs/cms.cern.ch/slc6_amd64_gcc630/cms/cmssw/CMSSW_10_1_3/lib/slc6_amd64_gcc630/libFWCoreFramework.so
#23 0x000000000040e7b2 in main::{lambda()#1}::operator()() const ()
#24 0x000000000040d1aa in main ()

@davidlange6
Copy link
Contributor

davidlange6 commented May 15, 2018 via email

@mseidel42
Copy link
Contributor Author

mseidel42 commented May 15, 2018

Ok, scary! It freezes for me in CMSSW_10_1_3.

@davidlange6
Copy link
Contributor

davidlange6 commented May 15, 2018 via email

@alberto-sanchez
Copy link
Member

@intrepid42 I have compile pythia8 with the patches made by @kpedro88 at
cms-externals/pythia8@cms/230...kpedro88:FixAllUninitialized230
and run your cfg without problem, see
/afs/cern.ch/work/a/asanchez/public/CMSSW_10_2_X_2018-05-27-1100/src,
The
xml for including compiled pythia8 is at
/afs/cern.ch/work/a/asanchez/public/CMSSW_10_2_X_2018-05-27-1100/pythia8.xml

give it a try.

@mseidel42
Copy link
Contributor Author

Hi Alberto, it seemed to work in CMSSW_10_2_X_2018-05-13-2300 already while it was broken in CMSSW_10_1_3.

Do you think these patches can fix the problem in the 10_1 series? (needed for MC generation)

@alberto-sanchez
Copy link
Member

@intrepid42 , Hi Markus, Yes that should work. Try to use the same pythia library which I have compiled (define in pythia8.xml) and see if that work.

@alberto-sanchez
Copy link
Member

I performed quick checks on the DIRE problem and see some weird things, which
seems not related to pythia8.
As usual 10_1_3 and 10_1_5 hangs, but neither

CMSSW_10_1_X_2018-05-28-1100

or

CMSSW_10_2_X_2018-05-13-2300

which apparently have the same pythia8 version, at least 10_1_X_2018-05-28-1100.

I compiled Kevin patch and include it in the 10_1, and 10_2 dev, without any obvious impact, it was already running,
but in 10_1_3 or 10_1_5 even with this patched pythia8 the jobs hangs.

@mseidel42
Copy link
Contributor Author

Hi Alberto, thanks a lot for checking this! So this seems to have been solved by some other PR in the dev releases? We may wait for the next release then and cross fingers that everything is solved!

(I suppose git blame would require to check out and recompile the whole CMSSW a few times...)

@mseidel42
Copy link
Contributor Author

(addendum: not sure if git blame does what I intended to suggest here = find the revision which introduces the crucial change. Maybe I confuse it with another VCS)

@sensrcn
Copy link

sensrcn commented Jul 30, 2018

Is there any more progress on this issue? We would like to run DIRE in CMSSW and it would be very useful to learn the current situation. Thanks!

@kpedro88
Copy link
Contributor

The fix I made is included in the 10_2_X release cycle.

@alberto-sanchez
Copy link
Member

@sensrcn Do you have been able to test on 10_2_x upwards?. If everything is OK. we can close this issue.

@sensrcn
Copy link

sensrcn commented Aug 13, 2018

I tried to run it with CMSSW_10_2_0 for QCD process, however, it was extremely slow and got stuck at a random event. It was ok with a newer release CMSSW_10_3_X_2018-07-30-2300. However, let me try to generate a larger event sample and see if everything goes smoothly.

@sensrcn
Copy link

sensrcn commented Aug 14, 2018

Hi Alberto, I test it with CMSSW_10_3_0_pre1 and it works. Thanks.

@mseidel42
Copy link
Contributor Author

Hi, I am having the hangup problems again with generating ttbar, both with CMSSW_10_1_7 (which worked for me before) and in CMSSW_10_3_0_pre1 (tested just now)...

@mseidel42
Copy link
Contributor Author

mseidel42 commented Aug 14, 2018

Update: I got the problems again because I have to regenerate my Dire sample with

          'ParticleDecays:limitTau0 = on',
          'ParticleDecays:tau0Max = 10',
          'ParticleDecays:allowPhotonRadiation = on',

to match the settings of the Pythia samples used for unfolding.

It seems that the hangup is provoked by ParticleDecays:allowPhotonRadiation = on which probably expects some QED handling that is not fully implemented in Dire yet.

Update 2: Stefan Prestel will have a look at this

@smuzaffar
Copy link
Contributor

@intrepid42 , do you still see this hangup?

@mseidel42
Copy link
Contributor Author

Hi Malik, I don't think the situation has changed.
But Dire has been integrated into Pythia 8.3, and I expect there will be a thorough validation when the update is integrated into CMSSW.
So I suggest to close this issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests