There has been some interest 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, view it on GitHub, or unsubscribe.
Triage notifications on the go with GitHub Mobile for iOS or Android.

[ { "@context": "http://schema.org", "@type": "EmailMessage", "potentialAction": { "@type": "ViewAction", "target": "https://github.com/xrootd/xrootd/issues/1495", "url": "https://github.com/xrootd/xrootd/issues/1495", "name": "View Issue" }, "description": "View this Issue on GitHub", "publisher": { "@type": "Organization", "name": "GitHub", "url": "https://github.com" } } ]

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