Photoshop: des problèmes avec la loi d'Amdahl (et un bug caché pendant 10 ans)

Print E-mail
Technologie - Général
Monday, 27 September 2010 10:27

photoshop floppy Photoshop: sus problemas con la Ley de Amdahl (y un bug oculto por 10 años)

La revue de file d'attente de l'ACM a consacré son numéro de Septembre de la performance du logiciel. Parmi les articles a été une étude de cas qui a mené une longue interview et révélatrice avec Russell Williams. Cet homme parlait du logiciel est l'architecte en chef et il connaît toutes les entrailles: Photoshop.

Avec des détails intéressants, Williams (ex-employé d'Apple, pour qui a aidé à développer le système d'exploitation Copland ) a fourni une vue d'ensemble des défis techniques auxquels sont confrontés Photoshop plus de 20 ans. Il est également précisé que le soi-disant de la loi d'Amdahl est l'un des plus importants. Je vous offre des extraits de l'interview et quelques commentaires sur la touche.

Le bug cachés

Photoshop est un logiciel pionnier dans l'adoption de techniques de calcul parallèle sur le bureau. Williams a été en charge depuis lors. Notez que ce travail a été relativement facile car la plupart des opérations effectuées Photoshop sont naturellement parallélisable et indépendante, et certains ont dû être synchronisés. Cependant, un bug caché pendant 10 ans a limité les possibilités et donc les performances du logiciel.

[...] Le problème avec la plus longue vie que je sais Photoshop [...] Quelques versions restaurées de la recherche [...]

Williams et son équipe savait que le bug a été localisé dans une certaine partie du code pour les opérations E / S asynchrones Ils avaient pour la désactiver en partie pour éviter le bug et donc accepter que Photoshop ne sera pas exécuté aussi vite que je pouvais.

Finalement découvert que le problème était lié au système d'exploitation. Ils ont constaté que pour la même tâche de manipulation de fichiers Mac pour mettre en œuvre une fonction atomique (indivisible) lorsque Windows fait avec deux: une source d'erreur courante quand il ya des tâches de calcul simultanées. En bref, la seule connaissance a aidé à trouver le bug, 10 ans plus tard.

Amdahl's Wall

photoshop pedazos Photoshop: sus problemas con la Ley de Amdahl (y un bug oculto por 10 años)

Il est bien connu que d'une tâche de calcul dédié au traitement de l'image peut être divisée en sous-tâches pratiquement indépendantes les unes des autres et qu'ils peuvent fonctionner en parallèle. Williams a noté que dans le cas de Photoshop

processus [par exemple, une image en mémoire] sur plusieurs processeurs et se séparent ensuite nous partie dans de thread pour chaque CPU.

En 1994, Photoshop a profité de l'architecture de multitraitement symétrique Windows NT qui les ont fournies. Mac aussi puisque le logiciel a été en mesure d'attirer des équipes lisse et 4 avec 2 CPU. Aujourd'hui, ce succès est menacée par la loi d'Amdahl.

Mais ce qui est d'Amdahl loi l'? En termes simples, il s'agit d'une formule pour estimer dans quelle mesure un système peut augmenter leur efficacité même lorsque un ou plusieurs de leurs meilleurs éléments. Souvent utilisé dans le calcul parallèle de prédire l'augmentation maximale de la vitesse ( accélération ) d'un système avec plusieurs processeurs.

Par exemple, si un CPU prend 10 minutes pour effectuer une tâche, prend idéalement 1 minute 10 CPU. Et si on ajouter 100 CPU? "1000 CPU? En fait, augmenter la quantité de CPU à un moment donné nous notons que le temps de traitement et ne diminue pas. Cela est dû à plusieurs raisons, l'un d'eux (aujourd'hui typique), est le goulot d'étranglement imposé par l'accès bande passante mémoire, ce qui est beaucoup plus lent que le traitement des données gourmandes.

Photoshop est limitée par la loi d'Amdahl, car

  1. Beaucoup sont des procédures de série, par exemple, décider s'il vaut la peine une image est traitée sur le GPU ou CPU. "Si nous dépensons 10% de notre temps à faire cela, cela est suffisant pour permettre de ne pas l'échelle au-delà de 10 processeurs"

  2. Utilisez les processeurs 8 ou 16, par exemple, consiste à diviser les tâches de traitement d'image encore plus petite, qui entraîne à son tour de plus en plus investir supplémentaires tâches de synchronisation du temps, surtout quand il ya des inévitables opérations de série concernés.

Ainsi, la loi d'Amdahl est appelé une sorte de "mur d'Amdahl."

Logiciels, matériel informatique et de l'évolutivité

D'un côté, le matériel de notre équipement informatique, qui a évolué pour former un complexe des centres de traitement bits. Ils sont CPU architectures selon les cas sont multicœurs, SMP, l'hyperthreading, NUMA , 32 ou 64 bits, ou une combinaison de ces technologies. A cela on ajoute le matériel du GPU et de précieux avantages (voir supercalculateur personnel Tesla NVIDIA). Il faudra de nombreuses années avant de pouvoir avoir des ordinateurs à prix abordable avec 8 ou 16 processeurs et des arrangements plus complexes de GPU.

D'un autre côté nous avons le logiciel en général, que ce soit ou pragmatique des raisons historiques, est toujours de série ou d'offrir une concurrence limitée. C'est un logiciel qui n'a pas été optimale en exploitant les capacités de calcul parallèle dans le matériel ou en même temps. Parmi les exceptions (évident) sont les logiciels de jeux vidéo, multimédia (par exemple, VLC ) et, plus récemment, les navigateurs web (par exemple, Chrome ).

Je pense que si le logiciel de bureau parvient à déplacer vers l'informatique parallèle sur l'expérience d'un logiciel comme Photoshop (et d'autres sans doute) une référence à faire mieux pour résoudre le problème d'échelle et de performance. Nous allons sauter le mur avec succès fous.

Images: PhotoshopNews | HONGKIAT

Photoshop: des problèmes avec la loi d'Amdahl (et un bug caché pendant 10 ans) écrit ALT1040 Septembre 27, 2010 par alan.lazalde
Envoyer à Twitter | Partager sur Facebook


Font