UKUUG/Apple Technology Briefing
Mac OS X and High Performance Heterogeneous Environments
1st November 2004
About a hundred delegates, all male
OS X within Particle Physics
Farm of XServes, 6T diskspace
SMall introduction to particle physics
Invovled in lots of experiments (eg D0 experiment: 3000 scietists, proton - antiproton, ATLAS: 1800 physicists, 34 countries)
A year's worth of collider data and physics analysis ~ 1 petabyte
LCG Grid Operations Centre (computing grid 7269 CPUs, 6559 T storage, running Linux atm, hopefully in 2007 MacOS X, mostly for hardware reliability)
LHC will create 12-14 Pb o f data, need ~70k processors, 500 Gigabit/s networks, a million events a second - only keep about 10%
UK 2004 (2395 CPU (kSL2000), 369 TB) 2007
(9965 CPU, 2285 TB)
So they need 285 Xserves / year / experiment (50k EU wide by 2007)
Advantages of OS X: UNIX, MS Office, robust, stable
Applications: AFS (global data), Mathematica, GNU compilers, iChat (for remote meetings), Major language, RPM, xmgrace, LaTeX & Lyx, Fugu (GUI scp client), Aqua Emacs, ImageMagick
General: CERN Library, Root (analysis), Geant4 (simulates detectors), LHAPDF, Hdcay, Pythia, ktjet, ExHuME, CPX+, pomwig (Monte Carlo generator), HERWIG
LHC: ALICE (offline), OS X CMS (Iguana, Orca), ATLAS (CTM, Atlantis), LHCb (Gaudi, Panoramx, Da Vinci), LCG (compute grid, SEAL, PI)
Most of these are on Fink
Code is being moved from Fortran -> C++
Linear colliders: SIMDET 4.0
Grid tools: Globus, pyGlobus, Globus Job Manager, Condor, LSCdataFind. Xgrid.
OS X is rapidly becomming accepted as an OS for HEP, but gaps remain (right now only 50% of their software works under OS X, next year he reckons 100% due to mindshare).
Discussion: little/big-endian issues: write portable code. Virginia Tech clusster was influential. Backups at CERN are tapes (but he prefers disks).
NS prefix from NeXTSTEP
Originally usuable only via Objective-C, now lots of languages
Developer Tools: XCode, Interface Bulder
Built a webbrowser with webcore without writing any code, quite neat
Built a UNIX-command runner
No built-in unit testing tools?
Mac OS X, A UNIX geek's perspective
"It's an onion, not a potato"
Panther is about 60% open source
UNIX is the right technology, active, portable, influential
12 million OS X users, 12k applications
Darwin FreeBSD 4.8-based (not the unified buffer cache) + clustered IO tuning
Network Reachability APIs
Mach Kernel: based on Mach 3
Quartz leverages GPU, good Python bindings
"OpenGL: Keeping the world safe from DirextX"
Core Audio / Core MIDI. Guaranteed latency -> Garageband.
Aqua, X11 (Xfree86 4.4, now syncing with X.org)
Challenges: authentication (/etc/password, boo), UNIX group model is obsolete, uid obsolete and insufficient (not big enough, doesn't have namespaces - GUUID coming), smart cards, Windows/Kerberos interop, ACLs (hard to use, iterop, POSIX Extended Attributes (resource forks!))
API Stability: "Hey guys, just recompile your code" is NOT an evolutionary API strategy. Need to be clearly classified. Shared library version numbers aren't proving sufficient (or linker toolchain). Solaris version symbols?
Restricted Kernel APIs are essential: "/dev/kmem should die"
Challenge UI: X still sucks. No decent high-level APIs (apart from libc). Scripting languages might help with portability. C# does not suck that bad.
Challenge: Administration, weird config files etc.
Challenge: Power vs Ease of use, eg single-button mouse, case-insensitivity
Challenge: OSS community: communication
64bit (16 exabytes of addressable virtual memoory)
Upgraded kernel + userland FreeBSD 5.x
Spotlight from the command line
SQLite-based data persistence (Core Data)
Xgrid built in
Launchd is kinda init, mach_init, xinetd, cron, System Starter (seems very nice indeed, drop XML files into a dir saying I want to receive network connects on this port, start at this time, when load is so low etc)
Apple System Logger: backwards compatible with sylog, output plugins, client- & server-side filters, unified log message format and encoding, CLI
Perl, python, tcl ruby all updated
"Looking at UI portability solution for Perl too"?
AT&T Korn shell is now bundled
dlopen(), poll() now native
Better Windows interop
Dashboard "Bring to desktop accessory hacking what Perl brought to the command line"
Tiger "First Half of 2005"
launchd, ASL will be opensourced
netinfo is dying
rendezvous hasn't been renamed yet (need to find a new French word)
"Anything that might potentially confused grandma is shot down and burried"
Tiger has nothing to reduce reboots during updates
Prebinding should go away in future
"I'd like to see more paradigm shifts"
TrustedBSD MAC Framework on FreeBSD and Darwin
(Errr, I hacked code at this point, no notes sorry)