Today I went to a technology briefing in London about Mac OS X and High Performance Heterogenous Environments. It wasn't really that much about high performance, which was a shame, but they did have free food and I got to see Josette. Random notes, make of it what you will. I'm quite excited about launchd and ASL...
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 Sabah Salih
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
HEP Software 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).
Cocoa API 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 Jordan Hubbard
"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 Open Directory Rendezvous Quartz leverages GPU, good Python bindings "OpenGL: Keeping the world safe from DirextX" Quicktime Core Audio / Core MIDI. Guaranteed latency -> Garageband. Aqua, X11 (Xfree86 4.4, now syncing with X.org) Popular applications 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
Tiger!
64bit (16 exabytes of addressable virtual memoory) Upgraded kernel + userland FreeBSD 5.x ACLs 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" Automator Tiger "First Half of 2005"
QA:
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 Robert Watson (Errr, I hacked code at this point, no notes sorry)