White Paper: Traitement en parallèle dans PowerMILL 10 Delcam plc White Paper: Traitement en parallèle dans PowerMILL 10 Mark Jacobs - Ingénieur en chef Résumé Ce document a pour but de supprimer le matraquage marketing autour du traitement en parallèle, et son impacte sur les performances des logicielles de FAO. Les recherches actuelles de Delcam vous aident à différencier les faits de la fiction, et vous permettent de comprendre réellement le traitement en parallèle dans les environnements de FAO. Ce document traite en particulier les questions suivantes: • Qu’est-ce que le calcul en parallèle? • Quel est l’influence du matériel sur le temps de calcul d’un parcours d’outil? • De quel manière le calcul en parallèle aide t’il réellement les utilisateurs? • Comment Delcam va t’il continuer à développer la puissance des derniers processeurs multi-coeur afin d’améliorer tous les aspects de la programmation FAO? Contents 1. Introduction ........................................................................................................................ 1 1.1 Quels gains peuvent être obtenus?........................................................ 2 1.2 Ces gains potentiels sont ils réels?.............. ........................................... 2 2. Productivité augmentée dans PowerMILL 10......................................................... 2 2.1 Traitement en arrière plan ......................................................................... 2 2.2 Traitement en parallèle................................................................................ 3 3. Améliorations de performance dans PowerMILL 10............................................. 3 4. Effets du matériel.............................................................................................................. 4 4.1 Ajouter plus de coeurs................................................................................. 4 4.2 Ajouter plus de processeurs...................................................................... 5 4.3 Traitement en parallèle et en arrière plan............................................ 6 4.4 Quel ordinateur? .......................................................................................... 6 5. Futurs développements.................................................................................................. 6 5.1 Calculs de parcours d’outil plus rapides................................................ 6 5.2 Grands modèles............................................................................................. 6 6. Terminologie et lecture poussée................................................................................. 7 1. Introduction Les nouveaux mots à la mode du monde informatique semble être le multi-coeur et le traitement en parallèle. Au lieu d’augmenter la fréquence des processeurs, les fabricants ont augmentés le nombre de coeur dans votre ordinateur. Mais quels sont les avantages de l’augmentation du nombre de coeur? la réalité est elle exagérée? Figure 2: Diagramme de PowerMILL 10 montrant le traitement en parallèle des calculs en premier et second plan sur un ordinateur quadri-coeur. Figure 1: Processeur Intel® Core™ i7 – L’un des processeurs multicoeur testés dans les benchmarks de PowerMILL 10. Les tests réalisés par Delcam sur une gamme de stratégies montrent que le temps de calcul de parcours d’outil peut être divisé jusqu’à trois ou quatre fois par rapport aux versions précédentes équipée d’un PC à simple-coeur. Les améliorations actuelles dépendent beaucoup de la configuration de votre ordinateur et de la stratégie de parcours d’outil que vous calculez. Ceci est traité plus loin dans le document. Dans PowerMILL 10, les techniques de calcul en parallèle ont été appliquées de deux façons différentes: Tout d’abord, vous pouvez préparer, calculer et éditer des parcours d’outils au premier plan et en calculer d’autres en arrière plan, avec peu de dégradation sur le temps de traitement. Ceci double efficacement votre potentiel de production. C’est ce que Delcam appelle le Traitement en arrière plan. Ceci fonctionne avec n’importe quel matériel, mais les bénéfices sont plus importants sur les machines multi-coeur. Avantages de PowerMILL 10 • Calculs de parcours d’outil en balayage quatre fois plus rapides • Réduit le temps de programmation jusqu’à 2,5 fois* • Moins de temps d’attente durant le calcul des parcours d’outils Deuxièmement, le traitement en parallèle traite différentes parties d’un calcul complexe en même temps. Il traite essentiellement une fonction sur tous les coeurs du CPU afin de réduire le temps total de calcul. Pour tirer bénéfice du traitement en parallèle, vous devez posséder un ordinateur avec plusieurs processeurs. • Augmente la capacité pour un travail supplémentaire • Améliore la productivité de fabrication • Temps de réalisation réduits • Possibilité de supporter des fichiers utilisant encore plus de mémoire. *Durant les tests réalisés par Delcam sur une gamme de parcours d’outils. (Voir la Un troisième, et unique bénéfice offert par PowerMILL 10, est que le traitement en parallèle est utilisé aussi bien pour les calculs au premier plan ainsi qu’au second plan en simultané. Ceci fournira incontestablement plus de performances dans PowerMILL 10 comparé au versions précédentes. Section 3. Améliorations de performance dans PowerMILL 10 - page 3.) 1. 1.1. Quels gains peuvent être obtenus? 1.2. Ces gains potentiels sont ils donc réels? Si nous prenons un exemple simple, où les calculs de parcours d’outils réalisés pendant une semaine prennent 50% des 8 heures d’une équipe, alors ceci correspondra à environ 120 jours de calculs de parcours d’outils à l’année. Bien qu’il soit impossible de diviser le temps de traitement par 3 ou 4, une amélioration majeure peut être réalisée sur le temps de calcul. Vous allez aussi remarque des gains de productivité depuis que vous pouvez planifier, créer, et éditer des parcours d’outil au premier plan et en calculant d’autre parcours en arrière plan, vous donnant un avantage compétitif au moment le plus essentiel. Les tests réalisés sur une gamme de parcours d’outils montrent qu’utiliser PowerMILL 10 sur une machine quadri-coeur permet de gagner 60% de temps de calcul, entraînant une baisse de 120 vers 50 jours de calculs à l’année. 2. Productivité augmentée dans PowerMILL 10 La plupart des améliorations de PowerMILL 10 permettent de réduire le temps de calcul ou d’autoriser le traitement des calculs durant les temps inutiles de PowerMILL. Ces deux aspects augmentent considérablement la productivité. Traitement en arrière plan - vous permet de calculer des parcours d’outils, des frontières, ou des états de matière restante individuels en arrière plan, en continuant à interagir avec PowerMILL. Figure 3: Gains potentiels (en jours) en utilisant PowerMILL 10 sur un PC multi-coeur. En termes d’argent, le coût de génération de parcours d’outils est de 50$ par heure (en prenant en considération les coûts de l’opérateur, temps d’arrêt, et les délais d’usinage), ceci se rapporte à 70 jours gagnés à l’année, et une réduction des coûts pouvant dépasser 28 000$. Traitement en parallèle - le calcul général est divisé en sous-tâches pouvant être traitées simultanément. Ceci est possible lorsque plus d’un processeur est disponible. Le traitement en parallèle réduit les temps de calcul d’un parcours d’outil. Accélérations de parcours d’outil spécifiques - moins de mémoire est utilisée lorsque les parcours d’outils d’ébauche sont calculés, et le temps de calcul a aussi été réduit. Ceci est particulièrement bénéfique lorsque vous travaillez sur de grands modèles car elles réduisent les risques de mémoire pleine. 2.1. Traitement en arrière plan PowerMILL 10 vous permet de lancer des calculs en arrière plan, comme des créations de parcours d’outil ou frontière, pendant que vous continuez à préparer, éditer, ou calculer des parcours d’outils au premier plan de PowerMILL. Figure 4: Gain potentiel (en $) de l’utilisation de PowerMILL 10 sur un PC multi-coeur. 2. Figure 5: Réduction du temps de traitement en arrière plan dans PowerMILL 10. Lors de la préparation, l’édition ou le calcul de parcours d’outils au premier plan, vous pouvez aussi calculer les parcours d’outils en arrière plan. Pour utiliser le traitement en arrière plan, vous devez seulement cliquer sur le nouveau bouton Second plan au lieu de Calculer sur la boîte de dialogue de parcours d’outil. PowerMILL vérifie que tout est défini correctement (comme le brut, l’outil...), ajoute le parcours d’outil à la liste de calcul en arrière plan. Lorsque vous continuez à travailler, PowerMILL calcule les parcours d’outils de la liste de traitement en arrière plan. Note: le traitement en arrière plan fonctionne pour les frontières, les matières restantes, ainsi que pour les parcours d’outils. Préparation Edition Calcul Premier plan Arrière plan 2.2. Traitement en parallèle Les autres stratégies utilisant ce code sont: L’amélioration la plus importante mais moins visible de PowerMILL 10.0 et l’utilisation d’un traitement en parallèle lors des calculs de parcours d’outil. • Z constant • Décalage 3D • Ebauche • Z constant intercalé • Z constant optimisé • Calculs de frontière Dans PowerMILL 9.0, la répartition de point exécute plusieurs calculs en parallèle afin d’améliorer sa performance. Dans PowerMILL 10.0, le code calculant le déplacement de l’outil sur le modèle utilise aussi le traitement en parallèle. En conséquence, les calculs d’usinage par balayage sont traités presque totalement en parallèle. En supplément, le calcul afin d’appliquer un parcours d’outil à la matière restante fonctionne entièrement en parallèle. Le traitement en parallèle fonctionne automatiquement si votre ordinateur est adapté; vous n’avez aucune action à réaliser afin de l’activer. 3. Améliorations de performance dans PowerMILL 10 Delcam a testé PowerMILL 10.0 sur une gamme typique de pièces 3 axes. Ces tests montrent d’importantes améliorations de vitesse d’ébauche par balayage en utilisant des machines multi-processeurs. La figure 7 de la page 4 montre le temps de calcul du parcours d’outil par balayage pour PowerMILL 10.0 en pourcentage de temps pris par PowerMILL 9.0 sur le même ordinateur, pour un nombre de différentes configurations de processeur. Figure 6: Multi-processus de parcours d’outil en balayage sur les 4 coeurs. 3. Sur les processeurs quadri-coeur, le benchmark tourne environ 1,5 fois plus rapidement avec PowerMILL 10. Vous pouvez demander ces benchmarks en envoyant un mail à [email protected] et seront aussi incluent dans le dossier d’exemples PowerMILL du DVD d’installation. 4. Effets du matériel Il est tentant de penser que lorsque le traitement en parallèle est supporté, il suffit d’augmenter le nombre de processeurs afin d’améliorer les performances. Toutefois, les résultats montrant ceci ne sont pas si simples. Il est apparent sur le balayage ainsi que sur les benchmarks que la configuration du processeur possède un effet significatif sur le temps de calcul. Il n’est pas évident de comprendre pourquoi deux processeurs double-coeur sont moins rapide qu’un seul quadri-coeur, et il est surprenant que deux quadri-coeur (huit coeurs au total) soient moins efficaces qu’un seul quadri-coeur. Les tendances que l’on peut observer dans ces deux graphiques sont: Figure 7: Calcul en balayage de PowerMILL 10 comparé avec PowerMILL 9 sur différentes configurations de processeur. Il y a quelques améliorations sur les machines monoprocesseur, causées par d’autres optimisations. Les usinages en balayage bénéficient actuellement le plus du traitement en parallèle. D’autres stratégies en tirent également avantage, mais pas autant que la précédente. Le point important pour la plupart des utilisateurs correspond à la performance générale sur un projet d’usinage classique. Le graphique ci-dessous compare les performances de PowerMILL 10.0 et PowerMILL 9.0 via un benchmark utilisant une gamme de stratégies. • • • Ajouter plus de coeurs améliore les performances, mais... Plus de quatre coeurs engendre peut de différence, et... Ajouter plus de processeurs réduit les performances. 4.1. Ajouter plus de coeurs Alors pourquoi ajouter beaucoup de processeurs fini en queue de poisson? Le problème du traitement en parallèle dans un logiciel d’ordinateur est comparable à la production d’une pièce unique dans une entreprise. Vous devez décider de qui fait quoi, comment les efforts sont coordonnés, et comment les productions différentes sont combinées pour le produit final. L’interaction entre les personnes demande une forme de d’administration, qui est généralement un temps de travail. Le premier problème est de créer un système d’administration qui fonctionne. Le second est de minimiser ce temps de travail. Prenons en exemple la production d’un magazine. Le processus basique est: Figure 8: Calculs de benchmark de PowerMILL 10 comparé avec PowerMILL 9 sur différentes configurations de processeur. • • Ecrire des articles. Editer et assembler, afin de produire le magazine. 4. Imaginons que la production d’un magazine se divise comme montré dans le tableau: Tâches Temps de travail Ecriture des articles 20 Edition du magazine 2 Temps de production 22 Dans ce cas, la cible du traitement en parallèle est l’écriture des articles. Si il existe quatre articles, alors les trois auteurs et l’éditeur peuvent en écrire chacun un, en prenant 5 heures et réduisant le temps total de production à 7 heures (environ trois fois plus rapide qu’une seule personne). Qu’arrive-t-il si plus d’auteurs sont disponibles? Il peut être possible de faire travailler deux auteurs sur un article, mais ceci nécessitera une coopération importante, et il est peu probable que le travail sera terminé en deux fois moins de temps que s’il avait été réalisé par une seule personne. S’ils peuvent produire un article en 3 heures, l’équipe de sept auteurs, plus l’éditeur, peuvent produire le magazine complet en 5 heures. Doubler l’équipe de quatre à huit personnes à augmenté la vitesse de seulement 40%. Si il y avait quarante articles et quarante auteurs, il y aurait un autre problème. Les auteurs peuvent écrire un article chacun, en prenant une demi-heure. Toutefois, il y aura toujours un seul éditeur qui prendra 2 heures pour éditer le magazine. Rajouter de plus en plus de personnes pour l’écriture des articles n’augmentera pas la vitesse; maintenant, penser à utiliser plus d’un éditeur. La méthode d’application de traitement en parallèle dans le logiciel FAO est très similaire. Il y a toujours une étape qui prend la majorité du temps. Lorsque vous mettez en parallèle cette tâche, ceci révèle les autres tâches qui prennent maintenant le plus de temps. Pour que le calcul soit plus rapide, vous devez traiter les autres tâches en parallèle. Les gains de performance sont limités par le nombre de programmes pouvant être “parallélisés” afin d’être traités en simultané; cet effet de diminution des entrées est connu comme étant la loi d’Amdahl. Figure 9: La loi d’Amdahl illustrant la vitesse maximale théorique utilisant jusqu’à 32 processeurs, pour les tâches où différents travaux peuvent être traités en parallèle. Dans PowerMILL, la tâche la plus critique en performance concerne la création de passes sans collision sur le modèle. Ceci est maintenant traité en parallèle, mais la nature des algorithmes signifie que la majeure partie des améliorations sont traitées par quatre processus en parallèle. Pour améliorer à nouveau la vitesse, nous devons traiter d’autres tâches en parallèle. 4.2. Ajouter plus de processeurs Les figures 7 et 8 montrent que deux processeurs duo-coeur sont plus lents qu’un simple quadri-coeur. Ils montrent aussi que deux processeurs quadri-coeur sont plus lents qu’un simple quadri-coeur. Nous avons déjà vu que PowerMILL gagne très peu de performances avec plus de quatre coeurs, mais pourquoi la performance est réduite lorsque les coeurs sont divisés entre plusieurs processeurs? La fréquence d’horloge des processeurs récents est tellement importante qu’une des limites majeures des performances est le temps pris pour accéder à la mémoire principale. Les fabricants de processeurs réduisent ce goulot en incluant un ‘cache’ mémoire rapide sur la puce. Les données souvent utilisées sont conservées dans le cache, où elles sont accessibles rapidement. Lorsqu’un processeur possède plusieurs coeurs, ils partagent le même cache de la puce. Lorsque les coeurs du processeur travaillent en parallèle, la communication entre chaque coeur afin de coordonner leurs tâches peut tirer avantage du cache partagé, assumant qu’ils soient tous sur la même puce. Toutefois, les bénéfices du cache partagé est perdu si certains des coeurs sont sur une puce séparée, et que la communication entre celles-ci doit se faire par un bus externe ou par la mémoire principale. 5. Un temps supplémentaire est alors demandé car la cohérence du cache doit être maintenue - le contenu des caches doit être conservé avec celui de la mémoire principale, et vice-versa. Il est assez complexe de conserver un cache à jour, mais le problème devient encore plus complexe, et la consommation de temps lors de la mise en cohérence doit être maintenue entre deux ou plus de caches ainsi qu’avec la mémoire principale. Si le temps de calcul est un problème majeur, alors deux processeurs quadri-coeur aideront à traiter les calculs au premier et arrière plan à une vitesse maximale. • 2 x Intel® Xeon® X5450 (3.00GHz, 1333MHz, 2x6MB Cache, Quad Core) • 16GB, 667MHz, ECC Memory (8x2GB) • 512MB PCIe x 16 nVidia Quadro FX 3700 (MRGA 15), Carte graphique à deux sorties DVI ou VGA 4.3.Traitement en parallèle et en arrière plan (configurée en mode miroir) • 2 Disques durs 2 x 320 GB (7,200 rpm) SATA 3.0 Le traitement en arrière plan vous permet d’organiser vos activités pour que vous n’ayez pas à attendre que PowerMILL calcule les parcours d’outils; le traitement en parallèle réduit les temps de calcul d’un parcours d’outil. Les calculs de parcours d’outils de PowerMILL 10.0 bénéficient du traitement en parallèle, qu’il soient traités au premier ou arrière plan. En conséquence, en lançant des calculs simultanés au premier et arrière plan, il est possible (sur un ordinateur adapté) d’utiliser jusqu’à huit coeurs et 8 GB de mémoire vive. Gb/s avec NCQ et 16 MB de cache™ • Genuine Windows Vista® Business x64 SP1 avec Media 5. Futurs développements 5.1. Calculs de parcours d’outil plus rapides Les futures versions de PowerMILL réduiront les temps de calcul de deux manières: 1. 4.4. Quel ordinateur dois-je utiliser? PowerMILL 10.0 fonctionnera sur le même matériel que PowerMILL 9.0. Le traitement en arrière plan fonctionnera sur les machines à mono-processeur et celles à bi-processeur montreront des améliorations de performance sur les calculs en parallèle. Pour tirer le plus de bénéfices de PowerMILL 10.0, nous recommandons: • Intel® Core™2 Quad Q9550 (2.83GHz, 1333MHz FSB, 12MB L2 Cache, Quad Core) 375W • 8GB (4 x 2.0 GB DIMM) 800 MHz ECC Dual Channel Memory (nécessite un système 64-bit) • 512MB PCIe x 16 nVidia Quadro FX 3700 (MRGA 15), Carte graphique à deux sorties DVI ou VGA (configurée en mode miroir) • 2 Disques durs 2 x 320 GB (7,200 rpm) SATA 3.0 Gb/s avec NCQ et 16 MB de cache™ • Genuine Windows Vista® Business x64 SP1 Augmenter le nombre de multi-processus dans le programme. Ceci améliorera les temps dans les benchmarks pour des machines double ou quadri-coeur. 2. Optimiser les structures de données pour une meilleur utilisation des caches du processeur. Ceci permettra aux ordinateurs équipés de plusieurs processeurs de travailler plus efficacement et améliorera les temps de calcul des biquadricoeur. 5.2. Grands modèles Les futures versions de PowerMILL incluront le support complet du 64-bit. Sur les machines 64-bit, la quantité de RAM pouvant être utilisée sera uniquement limitée par le nombre de barrette que vous pouvez installer. Ceci permettra aux pièces importantes et complexes d’être traitées avec succès. 6. 6. Terminologie et lecture poussée Il existe plusieurs termes similaires pour décrire le traitement en parallèle. Nous allons utiliser la terminologie suivante: Processeur - la pièce de l’ordinateur traitant le travail principal, des fois connu comme unité centrale de traitement ou CPU. Dans le passé, les processeurs ne possédaient qu’un seul coeur, mais sont devenus au furet-a mesure multi-coeur avec deux, quatre, ou plus de processeurs intégrés sur une seule puce. Traitement en arrière plan - la possibilité de préparer (ou calculer) des parcours d’outils au premier plan tout en calculant d’autres en arrière plan. Dans ce cas, deux calculs séparés sont traités en même temps. Ceci fait parfois référence au multi-tâche. Traitement en parallèle - la possibilité de traiter différentes parties d’un calcul en simultané, en prenant essentiellement une fonction et en la divisant en plusieurs parties pouvant être traitées en même temps sur différents processeurs. Ceci fait parfois référence au multi-processus. Calcul en parallèle - la possibilité de traiter plusieurs calculs en simultané. Ceci peut aussi bien être un traitement en parallèle ou un traitement en arrière plan (ou les deux). Ceci est des fois référencé sous multi-traitement ou traitement multi-coeur. Il existe beaucoup d’informations disponibles sur internet concernant le calcul en parallèle. Voici un exemple de liens utiles; la plupart incluent des références vers des informations plus détaillées. http://en.wik ipedia.org/wik i/Parallel_computing est un bon résumé du principe de calcul en parallèle. http://en.wikipedia.org/wiki/Multicore_(computing) traite de l’évolution et des différents types de processeurs multi-coeurs. http://en.wikipedia.org/wiki/Multiprocessing entre détail dans les différents types de multi-traitement. en http://en.wikipedia.org/wiki/Multithreading_(computer_ hardware) parle des différents types de multi-processus. 7.