Tous les ordinateurs "modernes" sont équipés de processeurs multi-coeur, c'est-à-dire capables d'effectuer plusieurs opérations distinctes en même temps, en parallèle. Dans le cadre de la programmation séquentielle (non parallèle) que nous utilisons, lorsqu'une tâche lourde est demandée à un programme, par exemple une boucle de calcul, un seul coeur est mobilisé pour cette opération. C'est ainsi qu' une telle tâche, occupera un ancien processeur (monocoeur) à 100%, mais cette tâche n'occupera pas plus de 10 à 15% d'un processeur à 8 coeurs. Nous avons donc cherché un moyen d'utiliser plus de puissance de calcul, et donc mobiliser plusieurs coeurs pour écourter les temps d'attente de l'utilisateur. Cela pourrait être utile par exemple dans PDFtoMusic, où le traitement de gros fichiers peut s'avérer assez long. En cherchant un peu, nous avons découvert que notre compilateur C pour Windows (Visual C++) supportait OpenMP, qui permet de spécifier les portions de code pouvant être exécutées en parallèle sur plusieurs coeurs. Nos premiers essais ont montré que ça fonctionnait. Il nous faut maintenant trouver les boucles pouvant être "parallélisées". En effet, plusieurs itérations de la boucle étant réalisées en même temps, on ne peut plus compter sur le résultat de l'itération précédente pour compléter la suivante. Seuls certains calculs très particuliers peuvent donc être modifiés en ce sens. OpenMP existant également sur Linux (gcc), nous avons bon espoir de pouvoir l'utiliser sur Macintosh (XCode). |
|
|
by Olivier Guillion | | |
| |
|

Suite à diverses pannes, nous avons pris conscience que notre PC de développement commençait à prendre sérieusement de l'âge. Ajoutons à cela que de plus en plus d'utilisateurs de nos produits possédaient une version de Windows beaucoup plus récente que la nôtre, compliquant l'assistance technique, et cela explique que nous ayons été contraints de franchir le pas, et de changer de PC. Depuis hier, nous le configurons, installons et testons soigneusement, afin d'être certains qu'aucun grain de sable ne viendra nous bloquer lorsque l'ancien ordinateur aura été remisé au grenier ou transmuté en machine Linux. La prise en main de Windows 8 n'a pas été aussi difficile qu'attendu. Après quelques heures de flottement où nous avons désespérément cherché des moyens simples d'accéder aux fonctions de base, nous avons créé des raccourcis sur le bureau, qui nous permettent enfin de réaliser ce que nous désirons sans nécessiter de clics droits dans tous les coins de l'écran ou de vaines recherches d'icônes dans des tableaux multicolores. L'interface standard, que nous n'utiliserons probablement pas, est résolument moderne, et plaira certainement aux amateurs d'art du même nom. Pour donner une idée, l'ergonomie est directement issue du dadaïsme et la conception graphique de l'oeuvre de Gerhard Richter. Mis à part ces petits détails et le fait que le pilote de notre imprimante (HP Laserjet 1022n) ne soit pas disponible pour Windows 8, le tout fonctionne plutôt bien, et la compatibilité avec XP presque totale. C'est tout de même à noter, à l'heure où Apple semble songer à encore changer de famille de processeurs pour sa gamme Mac. Grâce à la puissance du processeur core i7, les temps de compilation de nos plus gros projets ont été divisés par 3. Nous pouvons donc envisager de faire tourner des calculs assez lourds sans trop d'efforts, et de travailler sur Linux dans des machines virtuelles en conservant des performances acceptables. Nous pourrons nous remettre à la programmation dès demain. Ça va dépoter ! |
|
|
by Olivier Guillion | | |
| |
|
|