Xrootd question

Would there be any performance benefit to using xrootd/TXNetFile() to access root files rather than directly accessing files via TFile for a site that has 10’s of workstations accessing data on a single local server? I understand that there is a huge benefit if there are multiple servers that are not all local. Thanks!
Ed Oltman

xrootd will give you a better performance than NFS

Rene

I tried to build xrootd using ./configure --enable-xrootd followed by a make (I previously make w/out the --enable-xrootd - worked fine) This time I get

[quote].
.
.
Release/Xrdcp.obj
bin/rmkdepend.exe -R -fnetx/src/TXNetFile.d -Y -w 1000 – -nologo -FIw32pragma.h
-MD -GR -G5 -GX -Iinclude -D_WIN32_WINNT=0x0400 -Ixrootd/src/xrootd/src -D__c
plusplus – netx/src/TXNetFile.cxx
cl -O2 -nologo -FIw32pragma.h -MD -GR -G5 -GX -Iinclude -D_WIN32_WINNT=0x0400
-Ixrootd/src/xrootd/src -DUSEPCH -Yuw32pragma.h -Fpinclude/precompile.pch -Fon
etx/src/TXNetFile.o -c netx/src/TXNetFile.cxx
TXNetFile.cxx
xrootd\src\xrootd\src\XrdOuc\XrdOucPthread.hh(19) : fatal error C1083: Cannot op
en include file: ‘pthread.h’: No such file or directory
make: *** [netx/src/TXNetFile.o] Error 2[/quote]

I’m guessing this is not how to build xrootd. Could you please advise? Thanks!

Hi Ed,

which version are you using? TXNetFile has only been recently ported to Win32. Can you try the cvs head version.

Cheers, Fons.

Fons,
Sorry - I forgot to mention. I am using root_v5.11.06.source.tar.gz from ftp://root.cern.ch/root - dated 1-Jun-2006.
Ed

Hi Ed,

Well, I have no problem building xrootd on windows (debug and release).
The build procedure is the following :
First, xrootd is extracted in $(ROOTSYS)/xrootd/src/xrootd.
Then, header files (including pthread.h) are copied from $(ROOTSYS)/xrootd/src/xrootd/pthreads-win32/include to $(ROOTSYS)/include.
lib files from $(ROOTSYS)/xrootd/src/xrootd/pthreads-win32/lib to $(ROOTSYS)/lib.
and dlls from $(ROOTSYS)/xrootd/src/xrootd/pthreads-win32/lib to $(ROOTSYS)/bin.

Can you check that these files have been copied ?

BTW, which version of Visual C++ are you using ?

Cheers,
Bertrand.

Hello Bertrand,
xrootd was extracted to $(ROOTSYS)\xrootd\src\xrootd
pthread.h was NOT copied to $(ROOTSYS)\lib (but there is a copy in $(ROOTSYS)\xrootd\src\xrootd\pthreads-win32\include)
and the .LIB and .DLL files were not copied either.

I am using visual c++.NET (“cl” reports Version 13.10.3007)

My build sequence was:

  1. Unzip/untar root_v5.11.06.source.tar.gz
  2. ./configure
  3. make
  4. exclaim “Hey, where’s xrootd?”
  5. ./configure --enable-xrootd
  6. post note on roottalk

I just now wiped root directory and will repeat above steps, skipping 2,3,4

Ed

Hi Ed,

Strange… Anyway, thanks for the info, and please keep me in touch.

Cheers,
Bertrand.

Betrand,
I did the following

  1. Unzip/untar root_v5.11.06.source.tar.gz
  2. ./configure --enable-xrootd
  3. make

Here’s the last bit before make failed:
[ul]Xrdcp.cc
src\XrdClient\XrdClientReadCache.hh(70) : warning C4244: ‘argument’ : conversion
from ‘__int64’ to ‘size_t’, possible loss of data
src\XrdClient\XrdClientReadCache.hh(96) : warning C4244: ‘argument’ : conversion
from ‘__int64’ to ‘size_t’, possible loss of data
src\XrdClient\XrdClientReadCache.hh(98) : warning C4244: ‘return’ : conversion f
rom ‘__int64’ to ‘long’, possible loss of data
src\XrdClient\XrdClientReadCache.hh(105) : warning C4244: ‘return’ : conversion
from ‘__int64’ to ‘long’, possible loss of data
src\XrdClient\XrdClientReadCache.hh(107) : warning C4244: ‘=’ : conversion from
’__int64’ to ‘long’, possible loss of data
src\XrdClient\Xrdcp.cc(170) : warning C4244: ‘=’ : conversion from ‘__int64’ to
’long’, possible loss of data
link /nologo /out:./bin/xrdcp.exe ./lib/libXrdClient.lib src/XrdClient/
Release/Xrdcp.obj
bin/rmkdepend.exe -R -fnetx/src/TXNetFile.d -Y -w 1000 – -nologo -FIw32pragma.h
-MD -GR -G5 -GX -Iinclude -D_WIN32_WINNT=0x0400 -Ixrootd/src/xrootd/src -D__c
plusplus – netx/src/TXNetFile.cxx
cl -O2 -nologo -FIw32pragma.h -MD -GR -G5 -GX -Iinclude -D_WIN32_WINNT=0x0400
-Ixrootd/src/xrootd/src -DUSEPCH -Yuw32pragma.h -Fpinclude/precompile.pch -Fon
etx/src/TXNetFile.o -c netx/src/TXNetFile.cxx
TXNetFile.cxx
xrootd\src\xrootd\src\XrdOuc\XrdOucPthread.hh(19) : fatal error C1083: Cannot op
en include file: ‘pthread.h’: No such file or directory
make: *** [netx/src/TXNetFile.o] Error 2
rm utils/src/RStl_tmp.cxx utils/src/rootcint_tmp.cxx
(aviz5203) [135][/ul]

As before, the copies did not occur.

Ed

Ok, I will try to find the problem.
For the time being, you can copy the files by hand :

  • xrootd/pthreads-win32/include/*.h to root/include
  • xrootd/pthreads-win32/lib/*.lib to root/lib
  • xrootd/pthreads-win32/lib/*.dll to root/bin
    And then, type “make” again.

Last stupid question : where did you extract root (full path) ?

Cheers,
Bertrand.

Bertrand - the full path is
c:/cern/root_060601/root

Thanks, Ed.
And I suppose your ROOTSYS environment variable is pointing to this location ? because the Module.mk of xrootd is doing this :

cp $(XROOTDDIRD)/pthreads-win32/lib/.dll “$(ROOTSYS)/bin” ;
cp $(XROOTDDIRD)/pthreads-win32/lib/
.lib “$(ROOTSYS)/lib” ;
cp $(XROOTDDIRD)/pthreads-win32/include/*.h “$(ROOTSYS)/include” ; \

Bertrand.

Bertrand,
That must be it. I never bother updating ROOTSYS when I build - it points to c:/root - not the build target area. This has never been a problem in the past - the build targets always ended up in /lib or /bin.

make did not fail this time - I have xrdcp.exe in $(ROOOTYS)\bin, but where is xrootd?

Ed

Ed,

Only client part of xrootd is built on Windows (libXrdClient), allowing to use TXNetFile().

Cheers,
Bertrand.