Code Development on NT Some notes on experience gained in developing crossplatform NTUnix HEP softwa - PowerPoint PPT Presentation

About This Presentation
Title:

Code Development on NT Some notes on experience gained in developing crossplatform NTUnix HEP softwa

Description:

Cross platform CVS GUI written in Java. Doesn't support ssh access to remote repository? ... Automatically archives CVS version numbers for production BUILD's ... – PowerPoint PPT presentation

Number of Views:79
Avg rating:3.0/5.0
Slides: 24
Provided by: TonyJo4
Category:

less

Transcript and Presenter's Notes

Title: Code Development on NT Some notes on experience gained in developing crossplatform NTUnix HEP softwa


1
Code Development on NTSome notes on experience
gained in developing cross-platform (NT/Unix) HEP
software for the Linear Collider DetectorMore
of a Random Walk than a Formal Overview of
Development Tools
  • HEP-NT workshop
  • SLAC - October 1999
  • Tony Johnson
  • Tony Waite
  • (tonyj,apw_at_slac.stanford.edu)

In absentia
2
NT Code Development
  • Topics
  • NT Code development tools for C/Fortran/Java
  • Code development issues
  • Code management
  • SourceSafe
  • CVS
  • DEC -
  • Using NT as a data server
  • Conclusions

3
Windows NT Development Tools
  • For windows only development, tools are
    excellent
  • Visual C/J (MS Java)/Compaq Fortran
  • Excellent IDE allows development in all three
    languages
  • Integrated editor, cross-language debugger
  • Integrated build tool (make clone)
  • Incremental linker (that works)
  • Integrated code management (visual sourcesafe)
  • Object browser
  • SLAC has site license for MS developer tools

4
C for cross platform development
  • Cross Platform C development has many problems
  • Makefile for each platform
  • Need to build/debug on each platform
  • Versionitis
  • External dependencies
  • Compiler flags
  • Even egcs compiler has many system specific flags
  • Different methods for building DLLs/C name
    mangling
  • Compiler bugs
  • Differing Levels of ANSI/STL Support
  • Architecture specific bugs
  • Found bugs in both Visual C (5.0) and egcs
    compiler for intel.

5
C for cross-platform development
  • Certainly possible - Simulation package does work
    on both NT and Unix.

Large amount of time goes into testing/debugging
on different platforms.
6
Java for Cross Platform Development
  • Have succeeded in writing entire
    reconstruction/analysis package in Java
  • Currently using Visual J/Sourcesafe
  • All development currently being done on NT
  • JAR files built on NT and put on web server for
    download by others.
  • Java code can be run
  • Standalone from command prompt/batch job
  • Inside Java Analysis Studio (JAS)

7
Java Analysis Studio
  • Cross Platform Java GUI for data analysis

8
Java for cross-platform Graphics/GUI
9
Java Experience
  • Write Once Run Anywhere
  • Really works (for applications, if not applets).
  • Develop on NT, runs without changes elsewhere
  • Developers have been able to learn language and
    tools and get up-to-speed fast
  • Performance - Adequate, getting better all the
    time
  • Need to abandon Visual J, Source Safe

10
CVS for cross platform development
  • CVS is available for NT as well as Unix
  • NT tools include
  • line mode tools
  • WinCVS
  • Rather confusing GUI
  • jCVS
  • Cross platform CVS GUI written in Java
  • Doesnt support ssh access to remote repository?
  • Several tools available for web based access to
    code
  • CVSWeb - perl script
  • jCVS servlet - works well on NT

11
jCVS Client
12
jCVS Servlet
13
CVS security issues
  • Supports distributed access to code repository
  • bewildering array of access methods/security
    issues
  • rsh - no longer allowed at SLAC
  • pserver -
  • needs custom server,
  • passes weakly encrypted passwords over network
  • ssh
  • doesnt work with all CVS clients
  • complex to set up client
  • no AFS token support

14
CVS vs. Sourcesafe
15
Is CVS sufficient for a physics collaboration?
  • If using Java - probably
  • If using C, not really,
  • Need to be able to switch between configurations
    easily
  • Logical names where are you?
  • Location of external dependencies
  • Would like to use pre-built dlls where possible.
  • Want to isolate users from system dependencies as
    far as possible.
  • Want to avoid nightly builds
  • Need to layer tool on top of CVS, make
  • LCD Solution
  • Development Environment Controller (DEC)

16
Development Environment Controller
  • Written for LCD by Tony Waite, could be used by
    others
  • Hides details of file organization from user
  • User deals with subsystems, Gismo, Recon, etc.
  • Easy to switch between PROD,DEV,Test version of
    each subsystem
  • User Profiles allow saving/restoring environment.
  • Hides machine dependencies of BUILD operation
  • Automatically archives CVS version numbers for
    production BUILDs

17
Running a (Java) Data Server on NT
Remote Data
Desktop Client
Network Data Server
DIM
  • Use NT Service Manager to Run Data Server
  • Microsoft Java has built-in support for running
    as NT server
  • Application can be distributed as a single .exe
    which installs itself as an NT service
  • Other Java implementations can be run as an NT
    service with 3rd party add-ons (or roll your
    own).
  • Error logging using NT event log/viewer

18
NT Service - Pros and Cons
  • Pros
  • Auto start on reboot
  • Runs in background
  • Use service manager to start/stop service
  • Real life problems
  • Does not auto restart
  • Application can unexpectedly pop up dialog box!
  • Remote control difficult
  • Remote Server Manager only distributed with NT
    server (or with NT resource kit).
  • Requires port 137/138 access (blocked at SLAC
    firewall) or VPN/PPTP

19
Net Meeting for Remote Control
  • Netmeeting 3.0 has Remote Desktop Feature
  • If run on server allows remote access to server
    desktop from any NT/95/98 machine.
  • Free!
  • Security
  • Claims to use encrypted communication channel
  • Requires NT login to access remote desktop
  • Security dubious
  • Potentially very useful, perhaps worth considering

20
(No Transcript)
21
NT Disk Cache Problem
  • Problem with reading large datasets
  • NT will grow disk cache until it takes 99.5 of
    physical memory, regardless of who/what else
    requires memory.
  • Reading large datasets can result in NT totally
    grinding to a halt.
  • No system parameter to limit disk cache size
  • Workarounds
  • If you have access to call to C open statement
    you can turn off disk caching (big if)
  • Can run program which constantly flushes disk
    cache
  • Conclusion
  • NT not ready for primetime data server
    applications
  • Windows 2000 better?

22
Things I didnt talk about
  • Because I dont know anything about them
  • Sniff - Cross platform IDE
  • http//www.takefive.com/
  • Cross platform GUI development with C
  • QT Widgets
  • http//www.troll.no/
  • Libtool/configure
  • NT ports exist but not for non-experts
  • cygwin
  • Unix environment under NT

23
Conclusions
  • Tools for code development under NT only are
    great
  • Development tools probably better than Unix
  • Cross platform development
  • In C is a lot of extra work
  • Java can make things much easier, especially for
  • GUI applications
  • Client/Server applications
  • NT for HEP batch/server side data processing
  • No obvious advantage over Unix/Linux
  • Tools and OS not as well suited to task as Unix
  • NT still maintains lead as desktop machine
  • Unix seems to be catching up fast (gnome,
    office)
Write a Comment
User Comments (0)
About PowerShow.com