Just a few days after one Adobe Photoshop co-architect rained on the 64-bit chip parade, another is trying to rein in expectations for another hardware advance: dual-core processors.
Photoshop co-architect Russell Williams cautioned that multicore processors don't necessarily speed up operations. Recapitulating Adobe's gripe about 64-bit chips, Williams said that memory access performance is a limiting factor that multicore designs don't fix.
"If your system is bandwidth-limited and the operation you want to do involves moving a big chunk of data from here to there while doing a limited number of arithmetic operations on it, adding cores cannot speed it up no matter how clever the software is," Williams said on the blog of John Nack, Adobe's senior Photoshop manager.
"To take good advantage of 8- or 16-core machines, we'll need machines whose bandwidth increases with the number of cores, and we'll need problems that depend on doing relatively large amounts of computation for each byte fetched from main memory."
Intel systems "don't necessarily" add memory bandwidth as they add more cores, and although AMD systems do add memory bandwidth with new processors, it can be difficult ensuring that the right data is stored in the memory next to the right processor, he said.
Multicore chips can help in several circumstances, he said. In editing video, for example, separate frames can be processed on separate cores. And some Photoshop tasks can use Adobe's technology for parallel computation that divvies up tasks across multiple cores.
But many tasks just don't benefit. Arranging text layouts on a page can't be divided into parallel tasks, and Photoshop's healing brush, in which the computer finds mathematical solutions to partial differential equations, also doesn't, he said.
Adobe's software is used by countless professionals for editing images, video and illustrations, and presumably the company has clever programmers and high-end coding tools to optimize its products for the latest high-end hardware. But if Adobe is running into the limits of multicore chips for desktop machines, it doesn't bode well for the average programmer.