90 likes | 182 Views
Elephant, Meet Penguin. Bringing up Linux on BaBar. Stephen J. Gowdy Lawrence Berkeley National Lab For the BaBar Computing Group. Linux - A BaBar Platform. Commodity Computing Cheap? Many stages to process System issues (SoftRelTools, etc.) Porting Code base (2+ MLOC)
E N D
Elephant, Meet Penguin Bringing up Linux on BaBar Stephen J. Gowdy Lawrence Berkeley National Lab For the BaBar Computing Group
Linux - A BaBar Platform • Commodity Computing • Cheap? • Many stages to process • System issues (SoftRelTools, etc.) • Porting Code base (2+ MLOC) • Validation (ongoing) • Outline • Our reference Linux • System Problems • C++ Issues • Fortran
Status • Now a supported BaBar platform • Adhoc validation done • Production starting full validation • Goal was to have support by 1st January 2000
The BaBar Reference Linux • Based on RedHat 6.0 • egcs 1.1.2 + patch • Patch due to operator new in template class • Lesstif 0.88.1 (version not critical) • SLAC modification • number of symlinks to follow • max number of processes
Actual Machines • Six Dell machines deployed at SLAC • Dual Pentium III 550 MHz • 1GB memory • Two run build queues • Mirror of Sun setup • Three for interactive use • One reserved for production building • No batch machines as yet • Price per machine similar to Sun for SLAC
System Troubles • Operating system • Missing system functions clock_gettime regcmp regex • Missing defines • SIGEMT & SIGSYS • Online use only (which is only Sun) • Build system • SoftRelTools allowed easy extension • Builds being done for 6 months
C++ Issues • Extra temporaries • Especially while constructing objects in method invocation • Templates • egcs requires inlined template definitions • Some code did not follow guidelines • Using operator T* must go via this-> • No sync points in iostreams output cout << aMatrix << aMatrix.invert() << endl; • egcs bugs • Non-public destructors • pow function with \O2 • iostreams can't read 0x in hex numbers
FORTRAN • No STRUCTUREs in FORTRAN77 • Initially use Portland Compiler for 62 files • Now these have been removed • Many routines don't use SAVE • Possible to overcome globally (compiler switch) • Decided to fix these • Symbols have different size • -no_global to workaround these • Performance penalty • Cannot concatenating variable length strings • Create temporaries
Conclusion • Linux now deployed as a BaBar platform • Complete validation ongoing • Users feedback important • Collaboration has significant CPU on Linux • Not yet used by BaBar • Remaining worries • Objectivity builds not available for glibc 2.1 • Large file support • Not critical for our current operation procedures • Rules out Linux servers for Objectivity at SLAC