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

Pixel raw2 digi #1995

Closed
wants to merge 10 commits into from
Closed

Pixel raw2 digi #1995

wants to merge 10 commits into from

Conversation

VinInn
Copy link
Contributor

@VinInn VinInn commented Jan 11, 2014

sped up of Pixel Raw2Digi
more details in https://its.cern.ch/jira/browse/CMSHLT-34

a factor 1.64
in principle more could be saved if the detId were produced in order
(half of the time is spent in copying backward DetSets in the final product (DetSetVector)

@cmsbuild
Copy link
Contributor

A new Pull Request was created by @VinInn (Vincenzo Innocente) for CMSSW_7_0_X.

Pixel raw2 digi

It involves the following packages:

CondFormats/SiPixelObjects
DataFormats/SiPixelDigi
EventFilter/SiPixelRawToDigi

@apfeiffer1, @diguida, @civanch, @mdhildreth, @cmsbuild, @anton-a, @thspeer, @rcastello, @slava77, @ggovi, @Degano, @nclopezo can you please review it and eventually sign? Thanks.
You can sign-off by replying to this message having '+1' in the first line of your reply.
You can reject by replying to this message having '-1' in the first line of your reply.
@ktf you are the release manager for this.

@cmsbuild
Copy link
Contributor

Pull request #1995 was updated. @apfeiffer1, @diguida, @civanch, @mdhildreth, @cmsbuild, @anton-a, @Dr15Jones, @rcastello, @slava77, @ggovi, @Degano, @ktf, @thspeer, @nclopezo can you please check and sign again.

@VinInn
Copy link
Contributor Author

VinInn commented Jan 11, 2014

using emplace and =move() (instead of swap) removed all copy_backward etc
timing not affected at all! most probably is just memory access

@cmsbuild
Copy link
Contributor

Pull request #1995 was updated. @apfeiffer1, @diguida, @civanch, @mdhildreth, @cmsbuild, @anton-a, @Dr15Jones, @rcastello, @slava77, @ggovi, @Degano, @ktf, @thspeer, @nclopezo can you please check and sign again.

@civanch
Copy link
Contributor

civanch commented Jan 13, 2014

+1

@cmsbuild
Copy link
Contributor

Pull request #1995 was updated. @apfeiffer1, @diguida, @cmsbuild, @anton-a, @Dr15Jones, @rcastello, @slava77, @ggovi, @Degano, @ktf, @thspeer, @nclopezo can you please check and sign again.

@rcastello
Copy link

+1

using namespace sipixelobjects;


void SiPixelFedCablingMap::initializeRocs() {
std::cout << "initialize PixelRocs" << std::endl;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please remove the printout or replace it with MessageLogger.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

On 13 Jan, 2014, at 1:54 PM, Chris Jones notifications@github.com wrote:

In CondFormats/SiPixelObjects/src/SiPixelFedCablingMap.cc:

using namespace sipixelobjects;

+void SiPixelFedCablingMap::initializeRocs() {

  • std::cout << "initialize PixelRocs" << std::endl;

Please remove the printout or replace it with MessageLogger.

sure, was just to make sure it was called…
v.

@@ -51,7 +51,7 @@

DetSet<T> & operator=(DetSet<T> && rh) noexcept {
id = rh.id;
data.swap(rh.data);
data = std::move(rh.data);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@VinInn Vincenzo, are there any other classes which are elements of DetSet which which do not have move op=? I ask since if there are you probably made a pessimistic optimization replacing a swap with a copy. I think the standard has some meta programming checks for the various move functions. Not 100% certain of that though.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

On 13 Jan, 2014, at 2:01 PM, Chris Jones notifications@github.com wrote:

In DataFormats/Common/interface/DetSet.h:

@@ -51,7 +51,7 @@

 DetSet<T> & operator=(DetSet<T> && rh)  noexcept {
   id = rh.id;
  •  data.swap(rh.data);
    
  •  data = std::move(rh.data);
    

@VinInn Vincenzo, are there any other classes which are elements of DetSet which which do not have move op=?
I think DetSet is no used only by PixelDigi. Everybody else uses DeSetNew.
I ask since if there are you probably made a pessimistic optimization replacing a swap with a copy.
Havent seen any regression in Reco. If they exist, need to be fixed. (btw since each DetSet is sorted duing event put if T is not movable will show up there more than here)
I think the standard has some meta programming checks for the various move functions.
Indeed. the nastier being missing “noexcept”

v.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

On 13 Jan, 2014, at 2:01 PM, Chris Jones notifications@github.com wrote:

In DataFormats/Common/interface/DetSet.h:

@@ -51,7 +51,7 @@

 DetSet<T> & operator=(DetSet<T> && rh)  noexcept {
   id = rh.id;
  •  data.swap(rh.data);
    
  •  data = std::move(rh.data);
    

@VinInn Vincenzo, are there any other classes which are elements of DetSet which which do not have move op=?
http://cmslxr.fnal.gov/lxr/search?v=CMSSW_7_1_X_2014-01-12-0200&filestring=classes_def.xml&string=DetSetVector
apparently only some FP420 stuff (what is it anyway? ah TOTEM…)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

On 13 Jan, 2014, at 2:11 PM, Vincenzo Innocente vincenzo.innocente@cern.ch wrote:

On 13 Jan, 2014, at 2:01 PM, Chris Jones notifications@github.com wrote:

In DataFormats/Common/interface/DetSet.h:

@@ -51,7 +51,7 @@

DetSet<T> & operator=(DetSet<T> && rh)  noexcept {
  id = rh.id;
  •  data.swap(rh.data);
    
  •  data = std::move(rh.data);
    

@VinInn Vincenzo, are there any other classes which are elements of DetSet which which do not have move op=?
http://cmslxr.fnal.gov/lxr/search?v=CMSSW_7_1_X_2014-01-12-0200&filestring=classes_def.xml&string=DetSetVector
apparently only some FP420 stuff (what is it anyway? ah TOTEM…)
they are movable

v.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

On 13 Jan, 2014, at 2:01 PM, Chris Jones notifications@github.com wrote:

In DataFormats/Common/interface/DetSet.h:

@@ -51,7 +51,7 @@

 DetSet<T> & operator=(DetSet<T> && rh)  noexcept {
   id = rh.id;
  •  data.swap(rh.data);
    
  •  data = std::move(rh.data);
    

@VinInn Vincenzo, are there any other classes which are elements of DetSet which which do not have move op=? I ask since if there are you probably made a pessimistic optimization replacing a swap with a copy. I think the standard has some meta programming checks for the various move functions. Not 100% certain of that though.
and btw a vector is movable even if its elements are not movable
see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52591 for instance
v.

@cmsbuild
Copy link
Contributor

@cmsbuild
Copy link
Contributor

Pull request #1995 was updated. @apfeiffer1, @diguida, @civanch, @mdhildreth, @anton-a, @Dr15Jones, @rcastello, @slava77, @ggovi, @ktf, @thspeer can you please check and sign again.

@Dr15Jones
Copy link
Contributor

+1

2 similar comments
@civanch
Copy link
Contributor

civanch commented Jan 14, 2014

+1

@rcastello
Copy link

+1

@anton-a
Copy link

anton-a commented Jan 23, 2014

looking into it

@anton-a
Copy link

anton-a commented Jan 23, 2014

merged in CMSSW_7_0_X_2014-01-23-0200
fails to compile:
CMSSW_7_0_X_2014-01-23-0200_pr1995/src/CondCore/SiPixelPlugins/src/plugin.cc:38:77: error: expected constructor, destructor, or type conversion before ';' token
REGISTER_PLUGIN_INIT(SiPixelFedCablingMapRcd,SiPixelFedCablingMap, InitRocs);

@VinInn
Copy link
Contributor Author

VinInn commented Jan 24, 2014

@VinInn
Copy link
Contributor Author

VinInn commented Jan 24, 2014

innocent@vinavx2 ~]$ cd /home/vin/CMSSW_7_0_X_2014-01-23-0200/src/
[innocent@vinavx2 src]$ grep -r REGISTER_PLUGIN_INIT *
CondCore/SiPixelPlugins/src/plugin.cc:REGISTER_PLUGIN_INIT(SiPixelFedCablingMapRcd,SiPixelFedCablingMap, InitRocs);
build.log: REGISTER_PLUGIN_INIT(SiPixelFedCablingMapRcd,SiPixelFedCablingMap, InitRocs);
[innocent@vinavx2 src]$ cmsenv
[innocent@vinavx2 src]$ grep -r REGISTER_PLUGIN_INIT $CMSSW_RELEASE_BASE/src/*
[innocent@vinavx2 src]$ cd ../../CMSSW_7_0_X_2014-01-14-0200/
[innocent@vinavx2 CMSSW_7_0_X_2014-01-14-0200]$ cmsenv
[innocent@vinavx2 CMSSW_7_0_X_2014-01-14-0200]$ grep -r REGISTER_PLUGIN_INIT $CMSSW_RELEASE_BASE/src/*
/afs/cern.ch/cms/sw/ReleaseCandidates/vol1/slc6_amd64_gcc481/cms/cmssw/CMSSW_7_0_X_2014-01-14-0200/src/CondCore/CalibPlugins/src/plugin.cc:REGISTER_PLUGIN_INIT(ExEfficiencyRcd, condex::Efficiency, InitEfficiency );
/afs/cern.ch/cms/sw/ReleaseCandidates/vol1/slc6_amd64_gcc481/cms/cmssw/CMSSW_7_0_X_2014-01-14-0200/src/CondCore/ESSources/interface/registration_macros.h:#define ONLY_REGISTER_PLUGIN_INIT(record_,type_, initializer_)
/afs/cern.ch/cms/sw/ReleaseCandidates/vol1/slc6_amd64_gcc481/cms/cmssw/CMSSW_7_0_X_2014-01-14-0200/src/CondCore/ESSources/interface/registration_macros.h:#define REGISTER_PLUGIN_INIT(record_, type_, initializer_)
/afs/cern.ch/cms/sw/ReleaseCandidates/vol1/slc6_amd64_gcc481/cms/cmssw/CMSSW_7_0_X_2014-01-14-0200/src/CondCore/ESSources/interface/registration_macros.h:ONLY_REGISTER_PLUGIN_INIT(record_, type_, initializer_ )

the macro il gone!
great...

@ktf
Copy link
Contributor

ktf commented Jan 24, 2014

Apparently the macro in question got removed by @ggovi in aabce96 . This is last time I approve "orthogonal" DB changes last minute… :-/ Giacomo, any idea how we can (quickly) fix this?

@VinInn
Copy link
Contributor Author

VinInn commented Jan 24, 2014

also from the test
src/CondCore/CalibPlugins/src/plugin.cc:REGISTER_PLUGIN_INIT(ExEfficiencyRcd, convex::Efficiency, InitEfficiency );

easy life, isn't it?
does not compile? remove the test!

@VinInn
Copy link
Contributor Author

VinInn commented Jan 24, 2014

How the merge succeeded ? where is the corresponding pull request?
I think this is a failure of our integration management: I arrive with an obsolete version of the whole cmssw, pull request, approve. bang!
no regression as everything works as it was already working ages ago....
with cvs this did not happen has the HEAD was the HEAD, one could not commit an old branch a top of the HEAD

@apfeiffer1
Copy link
Contributor

strange, the IB in question (CMSSW_7_0_X_2014-01-23-0200/) where you do not
see the macro reports no build errors whatsoever. Did you rebase your
branch onto this one so you get all the latest updates ?

Thanks,
cheers, andreas

@VinInn
Copy link
Contributor Author

VinInn commented Jan 24, 2014

of douse does not report any error: the pullreguest form giacomo has erased everything was done in 1665!
so back to origin, does work!

in any case in CMSSW_7_0_X_2014-01-23-0200 basic tests of condcore as in PopCon/test do not work anyone
this is not normal
cmscond_list_iov -c sqlite_file:pop_test.db -t Example_tag1 -s

*** Break *** segmentation violation

===========================================================
There was a crash.
This is the entire stack trace of all threads:
===========================================================
#0  0x0000003267eac8be in waitpid () from /lib64/libc.so.6
#1  0x0000003267e3e909 in do_system () from /lib64/libc.so.6
#2  0x00007f64883aeddf in TUnixSystem::StackTrace() () from /afs/cern.ch/cms/sw/ReleaseCandidates/vol0/slc6_amd64_gcc481/cms/cmssw/CMSSW_7_0_X_2014-01-23-0200/external/slc6_amd64_gcc481/lib/libCore.so
#3  0x00007f64883b08dc in TUnixSystem::DispatchSignals(ESignals) () from /afs/cern.ch/cms/sw/ReleaseCandidates/vol0/slc6_amd64_gcc481/cms/cmssw/CMSSW_7_0_X_2014-01-23-0200/external/slc6_amd64_gcc481/lib/libCore.so
#4  <signal handler called>
#5  0x000000000040ddc4 in cond::ListIOVUtilities::execute() ()
#6  0x00007f648c763045 in cond::Utilities::run(int, char**) () from /afs/cern.ch/cms/sw/ReleaseCandidates/vol0/slc6_amd64_gcc481/cms/cmssw/CMSSW_7_0_X_2014-01-23-0200/lib/slc6_amd64_gcc481/libCondCoreUtilities.so
#7  0x000000000040c07a in main ()
===========================================================


The lines below might hint at the cause of the crash.
If they do not help you then please submit a bug report at
http://root.cern.ch/bugs. Please post the ENTIRE stack trace
from above as an attachment in addition to anything else
that might help us fixing this issue.
===========================================================
#5  0x000000000040ddc4 in cond::ListIOVUtilities::execute() ()
#6  0x00007f648c763045 in cond::Utilities::run(int, char**) () from /afs/cern.ch/cms/sw/ReleaseCandidates/vol0/slc6_amd64_gcc481/cms/cmssw/CMSSW_7_0_X_2014-01-23-0200/lib/slc6_amd64_gcc481/libCondCoreUtilities.so
#7  0x000000000040c07a in main ()
=======================================================

@apfeiffer1
Copy link
Contributor

Ciao Vincenzo,

in any case in CMSSW_7_0_X_2014-01-23-0200 basic tests of condcore as in

PopCon/test do not work anyone

strange, none of the slc5/scl6 IBs report any error for this IB:

https://cmssdt.cern.ch/SDT/cgi-bin/showBuildLogs.py/slc5_amd64_gcc481/www/thu/7.0-thu-02/CMSSW_7_0_X_2014-01-23-0200/

https://cmssdt.cern.ch/SDT/cgi-bin/showBuildLogs.py/slc6_amd64_gcc481/www/thu/7.0-thu-02/CMSSW_7_0_X_2014-01-23-0200/

which platform are you using ?

Can you please make the sqlite_file:pop_test.db available in your public
AFS so we can have a look ?

Thanks,
cheers, andreas

@ggovi
Copy link
Contributor

ggovi commented Jan 24, 2014

Not sure to understand what is an "orthogonal" change. Anyhow, aabce96 is one month old, not really "a last minute". Anyhow,

with the last IB:

/build/gg/CMSSW_7_1_X_2014-01-24-0200/src $ cmscond_list_iov -c sqlite_file:runinfo_31X_mc -t runinfo_31X_mc
========================================================
Tag: runinfo_31X_mc
========================================================
OID: 0000-00000000
Scope: Tag
Description:
TimeType: runnumber
Since Till Payload OID Payload Class
-------------------- -------------------- ------------- -------------
1 4294967295 0001-00000000 RunInfo

So, vincenzo please send me your file, i'll try to reproduce your crash.

@VinInn
Copy link
Contributor Author

VinInn commented Jan 24, 2014

this is what I did

cmsrel CMSSW_7_0_X_2014-01-23-0200
cd CMSSW_7_0_X_2014-01-23-0200/src
cmsenv
cp -r $CMSSW_RELEASE_BASE/src/CondCore .
cd CondCore/PopCon/test/
mkdir EffTest
pushd EffTest
cmsRun $LOCALRT/src/CondCore/PopCon/test/PopConEffExample.py
sqlite3 pop_test.db .tables
 cmscond_list_iov -c sqlite_file:pop_test.db -t Example_tag1 -s

repeat with
CMSSW_7_0_X_2014-01-14-0200/

@ggovi
Copy link
Contributor

ggovi commented Jan 24, 2014

Vincenzo, I can explain you what is going on. The test you are running is creating a condition DB with the new format. The command cmscond_list_iov is able to operate only on the OLD format DB. Anyhow, I agree that the command should rather complain in a "polite" way and not crash. I'll provide a fix for this.

@VinInn
Copy link
Contributor Author

VinInn commented Jan 24, 2014

git cms-merge-topic VinInn:PixelRaw2Digi
git cms-merge-topic ktf:bring-back-initializers

seems to work
compiles
I reverted last commit

--- a/CondFormats/SiPixelObjects/src/SiPixelFedCablingMap.cc
+++ b/CondFormats/SiPixelObjects/src/SiPixelFedCablingMap.cc
@@ -11,7 +11,7 @@ using namespace sipixelobjects;


 void SiPixelFedCablingMap::initializeRocs() {
-  //  std::cout << "initialize PixelRocs" << std::endl;
+  std::cout << "initialize PixelRocs" << std::endl;
   for (auto & v : theMap) v.second.initFrameConversion();

run
l
410 DQMStore::DQMStore
24-Jan-2014 11:19:52 CET Initiating request to open file file:run207515_lumi183.root
24-Jan-2014 11:19:52 CET Initiating request to open file file:run207515_lumi183.root
24-Jan-2014 11:19:52 CET Successfully opened file file:run207515_lumi183.root
24-Jan-2014 11:19:52 CET Successfully opened file file:run207515_lumi183.root
initialize PixelRocs
MSLayersKeeperX0DetLayer LAYERS:
24-Jan-2014 11:20:36 CET Closed file file:run207515_lumi183.root
24-Jan-2014 11:20:36 CET Closed file file:run207515_lumi183.root

the printout shows up...

I propose to integrate ktf:bring-back-initializers asap

@VinInn
Copy link
Contributor Author

VinInn commented Jan 24, 2014

@anton-a : pull request #2158 restore what deleted (accidentally).
When integrated reco test can start again.
sorry for the mess

@anton-a
Copy link

anton-a commented Jan 26, 2014

@Degano, @nclopezo can you please run jenkins. Looks like #2158 is included.

@cmsbuild
Copy link
Contributor

@apfeiffer1
Copy link
Contributor

+1

@anton-a
Copy link

anton-a commented Jan 31, 2014

There are some failed track comparisons between the merged and baseline versions in jenkins, although no regression is expected. This behavior could not be reproduced in tests based on two different IB's - the offending distributions were identical for IB and IB+pr1995.

@ktf
Copy link
Contributor

ktf commented Jan 31, 2014

@Degano / @nclopezo , can you please restart the tests?

@anton-a
Copy link

anton-a commented Feb 3, 2014

@Degano, @nclopezo can you please run jenkins. I'd like to see if the comparisons are in agreement with my observations and close this item.

@cmsbuild
Copy link
Contributor

cmsbuild commented Feb 4, 2014

@anton-a
Copy link

anton-a commented Feb 4, 2014

+1
fea4693
tested in CMSSW_7_0_X_2014-01-25-0200 and CMSSW_7_1_X_2014-01-27-0200
no differences in related reconstruction

@cmsbuild
Copy link
Contributor

cmsbuild commented Feb 4, 2014

This pull request is fully signed and it will be integrated in one of the next CMSSW_7_0_X IBs unless changes (tests are also fine). @nclopezo, @ktf can you please take care of it?

@cmsbuild
Copy link
Contributor

cmsbuild commented Feb 4, 2014

@davidlange6
Copy link
Contributor

move to 71x please. (should go in if it merges)

@ktf ktf mentioned this pull request Feb 4, 2014
@ktf
Copy link
Contributor

ktf commented Feb 5, 2014

Closing this for the moment. Will reopen when back-porting.

@ktf ktf closed this Feb 5, 2014
@VinInn VinInn deleted the PixelRaw2Digi branch July 13, 2016 13:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.