| |||
| [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] |
Is the Base Decompressor thread-safe with respect to hyperthreading?
Is there anything special an 'imdc' component using the Base Decompressor needs to do to support hyperthreading?
Hyperthreading to a programmer looks much like a multiprocessor box. Have you supported multiprocessors ala QuickTime 5? (For some doc on this see the QuickTime5.pdf in your Xcode doc folder) I think that is also supported in the Windows version of QuickTime, so you now have hyperthreading support.
The one thing to be careful about is the "dual" cpus share the same cache and execution units. Since the P4 architecture has a really deep pipeline (20 stages or more now) a branch prediction miss means the processor stalls and has nothing to do (some would argue cooling off is doing something :-). Hyperthreading is an attempt to give it something to do. By having some other instructions sitting ready to go, the CPU will switch and execute those. If your code is scheduled well and has few pipeline stalls, then you are already maxing out the execution units in the CPU, and supporting threading may decrease performance (due to cache contention, etc)
Should an image decompressor using the base decompressor advertise that it's 'cmpThreadSafe' in a hyperthreading environment on Windows?
I suspect that the current QuickTime 6.5 doesn't support cmpThreadSafe on Windows, since that would involve making the QTML managers thread safe, which they did in Panther.
| References: | |
| >Capture images from a sequence grabber in planar format (From: Bing-Chang Lai <email@hidden>) | |
| >Hyperthreaded Decompressor (From: email@hidden) |
| Home | Archives | FAQ | Terms/Conditions | Contact | RSS | Lists | About |
Visit the Apple Store online or at retail locations.
1-800-MY-APPLE
Contact Apple | Terms of Use | Privacy Policy
Copyright © 2007 Apple Inc. All rights reserved.