Could one of the Apple representatives comment on where to find the schedule
for the developer kitchens and how to get on the invitation list? I am
working to port a large lens design program to OSX. This program is written
primarily in Fortran with some C and an interface to a Cocoa plotting
program (Aquaterm). I have completed a basic port and gotten the code to
run but without optimization. This seminar would have been ideal and would
have sped up the development and optimization tremendously.
Regards,
Bruce Truax
--
____________________________________________________________
Bruce E. Truax email: email@hidden
Optical Engineering Consultant
Diffraction Limited Design LLC
388 Wedgewood Road voice: 860-276-0450
Southington, CT 06489 fax: 860-620-9026
http://www.dld-llc.com
_____________________________________________________________
On 1/22/04 1:32 AM, "Craig Mattocks" <email@hidden> eloquently wrote:
> Hi y'all,
>
> I just attended my first Apple Developer kitchen (workshop) last week,
> "Optimizing applications for Mac OS X and the Power Mac G5". I came
> away very impressed with the content, the facilities, and especially
> the level of assistance provided by Apple personnel. Not only
> productive, but fun, fun, FUN!
>
> Apple spoils you by seating you in a room full of dual-processor 2 GHz
> PowerMac G5s, each with 2 GB of RAM and a honkin' 23" Cinema display.
> The G5s are FAST, gorgeous, surprisingly quiet, rugged machines with
> brushed aluminum cases -- a wirehead engineer's dream. I was
> unexpectedly stunned by the workmanship.
>
> You're treated to informative, cut-to-the-chase presentations on how to
> optimize your app's code to take advantage of the new G5 architecture
> (floating point, integer and vector units, increased memory bandwidth,
> etc.), how to move your project into Xcode (port resources into nibs,
> customize the IDE, set optimum compiler flags), and how to use Apple's
> excellent CHUD performance tools, including Shark and Spin Control.
>
> Some really cool examples (especially the "Noble Ape" artificial
> intelligence simulation, with inquisitive Simians roaming about an
> island) are shown, which illustrate how to delve into your code and
> tune up its performance. IIRC, the speed of the "ape thoughts"
> (flashing brain wave patterns) was increased by a factor of about 16 by
> multithreading and vectorizing their "coginitive processes". Ooh-ooh,
> now that's worth howling about!
>
> After the lectures, you work on the project(s) you brought along with
> you. Apple lets you install any special software or compilers you need
> on the G5s. (I loaded up IBM's xlf Fortran compiler and built MPICH.)
> You make rapid progress because Apple's software engineers work along
> beside you, right at your elbow, to help you port/optimize your code.
> They are constantly asking, "Can we help you with something?" If you
> run into a sticking point, they immediately phone upstairs and summon
> the resident expert on that issue, who rushes down to hammer on your
> problem until it's resolved. A number of attendees, who had been
> toiling away for weeks trying to port their code from CodeWarrior/CFM
> to Cocoa/Mach-O/Xcode, were astonished to have their projects completed
> within the first 2-3 hours of lab time.
>
> To top it all off, Apple provides breakfast, lunch and dinner -- all
> for free! Plus a serving of multithreading sample code for dessert.
>
> The top 10 most important points I came away with:
>
> 1. Read these essential references:
>
> http://developer.apple.com/technotes/tn/tn2086.html
>
> http://developer.apple.com/technotes/tn/tn2087.html
>
> http://developer.apple.com/hardware/ve/index.html
>
> http://developer.apple.com/technotes/tn/tn2028.html
>
> 2. Profile before you optimize. First conduct a baseline benchmark.
> Compile with the -g option (to obtain source code level analysis) then
> use Shark to profile your app. Follow Shark's friendly
> explanations/suggestions and begin tuning.
>
> 3. Thread your app to take advantage of multiple processors. Avoid
> creation and destruction overhead -- set up pools and malloc first,
> then spawn threads containing the most processor-intensive tasks.
>
> 4. Vectorize your app (AltiVec is a tres cool technology!) if possible
> to attain a HUGE boost in performance. Apple's Advanced Computation
> Group has developed some incredibly nice libraries (such as the vImage
> Image Processing Framework) to make it easy and fun.
>
> 5. Because of the G5's deeper 23-stage pipelines (vs. the G4's 7-stage
> pipelines), avoid if-branches in your "hot loops".
>
> 6. You can achieve a big improvement in performance by unrolling loops
> (-funroll-loops compiler option) but this can cause "code bloat" (large
> memory footprint) so only use on computationally intensive portions of
> your app.
>
> 7. Avoid type casting between floats and ints. Stay in one domain
> (integer or floating point) within your "hot loops".
>
> 8. Try the -fast compiler option (see 'man gcc') but use with caution.
> Check results for numerical accuracy.
>
> 9. Take advantage of the G5's hardware floating-point fast square-root
> function by using the -mpowerpc-gpopt option.
>
> 10. Load fewer, larger chunks of memory. "Maximize locality" (use more
> local variables). "Globals are evil." It is better to copy global data
> into local variables and perform loops on them.
>
> A big thanks to Apple's software engineers (including one wildly
> animated Frenchman, Mr. Xcode, and a certain unnamed Schizophrenic
> Optimization Scientist) and to all the folks at Apple Developer
> Connection for creating such a useful, friendly workshop!
>
> Craig Mattocks, PhD/President
> Scientific Software Solutions, Inc.
_______________________________________________
scitech mailing list | email@hidden
Help/Unsubscribe/Archives: http://www.lists.apple.com/mailman/listinfo/scitech
Do not post admin requests to the list. They will be ignored.