Image processing is one of the biggest resource-hogs of today's desktop applications. It combines compute-intensive tasks with massive data-handling requirements. It has to digitally filter files from 10KB to more than 100MB in size. These requirements make image processing one of the top contenders among applications that could benefit from multiple-CPU support. Until recently, you could run image-editing products on multiprocessor Windows NT systems, but the products weren't multithreaded and couldn't take advantage of the additional processing resources available in NT. Now, Adobe Photoshop version 3.0.5 adds multithreading to an already extensive list of capabilities.
Photoshop has been a standard in the desktop publishing industry for several years. However, it has been used mostly on the Mac--historically the leader in the desktop graphics market. When the PowerPC-based Macs arrived, their superior performance further enhanced Apple's leadership in this niche. The 486 and Pentium systems just couldn't keep up without special accelerators.
The market is changing rapidly: Adobe has shifted its focus from Mac development to NT development to take full advantage of NT's inherent scalability--in terms of both memory and the CPU. With its most recent release, Adobe optimized Photoshop 3.0.5 for 32-bit operations and multiprocessor support. Multiple CPU support is accomplished via "real" multithreaded compute operations, not just task-handling through the operating system. This version of Photoshop is currently available for Intel systems, and a version for the Alpha platform will be out soon. (There hasn't been any word on the development of a PowerPC or MIPS version.) Just imagine running Photoshop on a quad-processor 200-MHz Pentium Pro system with 128MB of RAM!
Because just about anyone who is interested in a new release of Photoshop is probably intimately familiar with its previous feature set, I won't go into gory detail about brush sizes and embossing tools. The program is basically unchanged from 3.0.4 in its tools and user interface, but it's now fully compatible with the Windows 95 GUI. Some of its new features are:
- Improved support for 16-bit plug-ins (such as Kai's Power Tools 2.0 and Andromeda)
- Support for TWAIN_32
- Object Linking and Embedding (OLE) 2.0 object server and drag-and-drop support
- Long filename and Universal Naming Service (UNC) path-name support
- Uninstall capability
- GIF89a export plug-in (with support for transparency and video-interlacing)
New features also include a variety of changes specific to Windows 95, such as common dialog support, the use of system colors and metrics, and right-hand mouse-button support. This could prove to be important, especially if you use Photoshop under the Explorer GUI. Photoshop also includes Win32s 1.30. (Win32s is a subsystem that allows the 16-bit environment of Windows 3.1 to run 32-bit applications.)
System Requirements: Windows NT Workstation 3.51, 486 or higher, 16MB of RAM, 20MB disk space|
Adobe Systems * 415-961-4400
At press time, Photoshop 3.0.5 was still in beta-testing, but I didn't run into any problems either installing or running the application under Windows NT Workstation 3.51.
I tested Photoshop's symmetrical multiprocessing (SMP) capabilities on several different systems:
- A baseline reference Telos system configured with a 100-MHz Pentium CPU, 32MB of RAM, a 1GB SCSI-2 hard disk, and a Diamond Stealth 64 2MB PCI video card--at a cost of approximately $3000 ($4100 with 64MB of RAM).
- A Diamond Flower (DFI) Doubleshot 133-MHz dual-Pentium system configured with 64MB of RAM, 256KB of shared cache, a 1.7GB IDE hard drive, and a Diamond Stealth 64 2MB PCI video card--at a cost of approximately $7000 ($5900 with 32MB of RAM).
- A Hewlett-Packard Netserver LS 5/133 quad-processor Pentium system configured with 128MB of RAM, an 8GB SCSI-2 disk, 1MB of L2 cache per processor, and a standard VGA card--at a cost of approximately $30,000.
- An HP Vectra XU 6/150 150-MHz Pentium Pro system configured with two CPUs, 64MB of RAM, a 2GB SCSI-2 disk, and a Diamond Stealth 64 2MB PCI video card--at a cost of approximately $8500.
I used the Performance Monitor (Perfmon) to watch the CPU loads during various Photoshop operations and observed fairly equal usage of all the processors for all functions, including file open/close, filter operations, and image editing (e.g., flip, rotate, and scale.) This showed that Photoshop was indeed making judicious use of NT's multithreading capabilities. (Other applications that are not specifically designed for SMP will use all available CPUs, but they pingpong the processes between the CPUs, rather than working on them simultaneously.) I did, however, find that the results differed drastically among the different test platforms. This indicates that hardware architecture has as much effect on performance as CPU speed and available memory do.
For example, I ran the DFI system under a uniprocessor configuration by disabling one CPU, and then I ran it in a dual-processor configuration. The difference in performance between the two was not significant--only about 10% (see graph 1 above). The test loaded and resized a stock 28.6MB JPEG file to a 14MB file, a CPU-intensive, not disk-intensive, task. In fact, adding another 32MB of RAM to the DFI system gave me a greater performance increase than adding a second CPU did--even two CPUs with 64MB of RAM didn't help much. I checked with Adobe, and company representatives admitted that adding a CPU gives only about a 10% to 15% overall performance boost.
At first glance, this result seemed to indicate that your money would be better spent if you upgraded your memory to 64MB instead of buying another processor chip. But then I tried Photoshop on the Vectra and Netserver systems. The dual-processor Vectra XU 6/150 system ran at more than four times the speed of the DFI system with two CPUs, and the Netserver system with four CPUs ran at nearly seven times the DFI's speed. Each additional CPU on each HP resulted in approximately a 50% boost in speed. And the performance gains are even greater when compared to a standard 100-MHz Pentium machine. So, while more memory is an advantage to a certain point--I got more than an eight-fold improvement on the Vectra by bumping it from 32MB to 64MB of RAM--having a machine designed to handle the task is even better. (I think the small shared CPU cache was the DFI system's downfall.)
Looking for Speed
Clearly, you need to look closely at any multiprocessor machine's architecture before you invest in it. At present, the overhead for dual processors on some systems is just too high for individual applications to overcome. If you're looking for speed--and who isn't?--consider a Pentium Pro system, where one faster CPU will give you a greater return than two slower ones.
Also, you needn't plan on putting more than 64MB of RAM into your system; that's the economical limit for improving system speed for Photoshop.
See the sidebar "KPT Convolver".