There has been some [interest](https://github.com/root-project/root/issues/7709) in investigating the behaviour of `XRD_PARALLELEVTLOOP` variable for ROOT workflows. I would like to report some simple tests here to ask for a clarification. All tests are doing a simple `xrdcp` with variations of the two variables mentioned in the title. ### XRD_PARALLELEVTLOOP=4 In theory this should use 4 threads, but there are 10 instead ``` $ XRD_PARALLELEVTLOOP=4 xrdcp root://eospublic.cern.ch//eos/opendata/cms/derived-data/AOD2NanoAODOutreachTool/Run2012BC_DoubleMuParked_Muons.root . [784MB/2.09GB][ 36%][==================> ][11.04MB/s] ``` ``` $ ps aux | grep xrdcp vpadulan 2875 14.5 0.4 698364 77920 pts/0 Sl+ 12:15 0:03 xrdcp root://eospublic.cern.ch//eos/opendata/cms/derived-data/AOD2NanoAODOutreachTool/Run2012BC_DoubleMuParked_Muons.root . $ ps hH p 2875 | wc -l 10 ``` ### XRD_PARALLELEVTLOOP=1 This should use 1 thread, I see 7 ``` $ XRD_PARALLELEVTLOOP=1 xrdcp root://eospublic.cern.ch//eos/opendata/cms/derived-data/AOD2NanoAODOutreachTool/Run2012BC_DoubleMuParked_Muons.root . [184MB/2.09GB][ 8%][====> ][10.82MB/s] ``` ``` $ ps aux | grep xrdcp vpadulan 3000 20.0 0.2 608092 46488 pts/0 Sl+ 12:18 0:00 xrdcp root://eospublic.cern.ch//eos/opendata/cms/derived-data/AOD2NanoAODOutreachTool/Run2012BC_DoubleMuParked_Muons.root . $ ps hH p 3000 | wc -l 7 ``` ### XRD_WORKERTHREADS=1 XRD_PARALLELEVTLOOP=1 I have found another environment variable in the xrootd docs https://xrootd.slac.stanford.edu/doc/xrdcl-docs/xrdcldocs.pdf described as "Number of threads processing user callbacks." with default value 3 . Setting both variables to 1 leads to 5 threads ``` $ XRD_WORKERTHREADS=1 XRD_PARALLELEVTLOOP=1 xrdcp root://eospublic.cern.ch//eos/opendata/cms/derived-data/AOD2NanoAODOutreachTool/Run2012BC_DoubleMuParked_Muons.root . [192MB/2.09GB][ 8%][====> ][10.67MB/s] ``` ``` $ ps aux | grep xrdcp vpadulan 3036 17.3 0.2 460628 48240 pts/0 Sl+ 12:21 0:00 xrdcp root://eospublic.cern.ch//eos/opendata/cms/derived-data/AOD2NanoAODOutreachTool/Run2012BC_DoubleMuParked_Muons.root . $ ps hH p 3036 | wc -l 5 ``` So for now: 1. Setting XRD_PARALLELEVTLOOP=1 makes the xrdcp process use 7 thread, of which 3 are explicable by the default value of XRD_WORKERTHREADS, 1 is the event loop, but I still can't reason about the other 3 threads. 2. The two variables seem to be independently adding threads to the `xrdcp` process when they are increased. To conclude, I would like to understand where those extra 3 threads could be coming from or get any better insight from you. Thanks a lot ! -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/xrootd/xrootd/issues/1495 ######################################################################## Use REPLY-ALL to reply to list To unsubscribe from the XROOTD-DEV list, click the following link: https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=XROOTD-DEV&A=1