RDataFrame.Range() does not work with multi-thread

Hi All,
I try to run the code with multi-thread and limited range.
but it fails and gives me error.
Here I provide a simple code which can reproduce the error for me.

// Run on lxplus7
// ensure EnableImplicitMT() works
source /cvmfs/sft.cern.ch/lcg/app/releases/ROOT/6.20.04/x86_64-centos7-gcc48-opt/bin/thisroot.sh
root -l
> ROOT::EnableImplicitMT();
> using namespace ROOT;
> RDataFrame d(0);
> d.Range(0); // error
......: Range was called with ImplicitMT enabled, but multi-thread is not supported.

by the way, if I use the default ROOT version on lxplus, EnableImplicitMT() does not work
and say I have to build it with some options.
after I run the thisroot.sh, it works for most of cases.
what’s the difference them? even if I use the same version, I still need to run the source command.

Best Regards,
Shu-Xiao Liu

Hi @jerryliu,
as the error message says, Range is not available when running on multiple threads. Also see the docs.

The default ROOT version available on lxplus has not been built with imt=ON, so multi-threading is not available. On lxplus, I would suggest to use one of the ROOT versions available with LCG views, e.g.

source /cvmfs/sft.cern.ch/lcg/views/LCG_97/x86_64-centos7-gcc8-opt/setup.sh

Cheers,
Enrico

1 Like

(btw thanks for the report, I updated https://root.cern/install/#run-on-cern-lxplus )

can you update the lcg link?

To check what ROOT version is contained in an LCG release, check lcginfo.cern.ch.

change https://lcginfo.cern.ch/ to http://lcginfo.cern.ch/
https one doesn’t work for me.

Ah thank you, missed that one! It’s now https://github.com/root-project/web/pull/333 , will be merged soon.

EDIT: should be ok now

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.