Cling can't load generated dictionaries on a different machine

Dear experts,

I stored some nested vectors in ROOT Ttree which required to generate dictionaries:

This worked fine on a local SL7 machine. However once I send the compiled program to the grid, it complains cannot load the generated dictionaries,

cling::DynamicLibraryManager::loadLibrary(): /dune/app/users/weishi/dunetpclegacy/srcs/dunetpc/dune/CAFMaker/AutoDict_vector_vector_vector_double______cxx.so: cannot open shared object file: No such file or directory
cling::DynamicLibraryManager::loadLibrary(): /dune/app/users/weishi/dunetpclegacy/srcs/dunetpc/dune/CAFMaker/AutoDict_vector_vector_vector_double______cxx.so: cannot open shared object file: No such file or directory
Error in <TTree::Branch>: The class requested (vector<vector<vector<vector<vector<unsigned long> > > > >) for the branch "FD_evt_hadron_throw_result_NDLAr" is an instance of an stl collection and does not have a compiled CollectionProxy. Please generate the dictionary for this collection (vector<vector<vector<vector<vector<unsigned long> > > > >) to avoid to write corrupted data.

where the directory /dune/app/users/weishi/ is from my local machine, apprarently it can not find this from the grid worker node. Ideally, this directory should be replaced by /srv on the grid.

I’ve tried adding the dictionaries path on the grid (i.e. ${PWD}) to LD_LIBRARY_PATH:

export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${PWD}

But it’s still giving me the same errors above.

How should I resolve this?

Thanks,
Wei

Dear Wei,

Thanks for posting.
I do not understand why you see the path of your home directory being propagated to the grid nodes: do you have a suggestion? I don’t see how ROOT could do that, unless instructed explicitly to do so.

For grid/batch use cases, what I would perhaps suggest to follow the standard approach, i.e. to generate dictionaries once before the mass production happen, for example using rootcling or genreflex (see this page), and to compile them as a library or together with the rest of the code.

Please do not hesitate to ask follow up questions if something is not clear.

Cheers,
D

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