Éditeur de matériel informatique
Tous les programmes informatiques, y compris OghmaNano, fonctionnent sur du matériel informatique physique. Il existe de nombreuses combinaisons de matériel qui peuvent être intégrées à n’importe quel ordinateur ; certains ordinateurs disposent d’un grand nombre de cœurs de processeur, tandis que d’autres n’en ont qu’un seul. De même, les ordinateurs sont équipés de différentes quantités de mémoire, d’espace disque et de cartes graphiques. Pour aider l’utilisateur à tirer le meilleur parti d’OghmaNano, un éditeur de matériel est disponible, permettant à l’utilisateur de configurer le comportement d’OghmaNano sur un ordinateur donné. On peut y accéder via la fenêtre de l’onglet « Simulation » (??).
Si vous cliquez ici, la fenêtre de l’éditeur de matériel s’ouvrira (??).
La fenêtre des paramètres matériels est composée de différents onglets qui permettent à l’utilisateur de modifier la configuration et d’effectuer des tests de performance sur son appareil.
Onglet de configuration du processeur (CPU) et de la carte graphique (GPU)
Cet onglet permet de configurer la manière dont OghmaNano interagit avec le GPU et le CPU, comme indiqué dans le tableau ci-dessous. Comme décrit plus en détail dans d’autres sections de ce manuel, OghmaNano se compose de deux parties : oghma_core.exe, qui constitue le moteur de calcul, et oghma_gui.exe, qui est l’interface utilisateur graphique. Le comportement de ces deux composantes du modèle peut être ajusté ici.
- Nombre de threads utilisés par le processus principal : il s’agit du nombre maximal de threads que OghmaNano oghma_core.exe peut utiliser. Ce nombre détermine : le nombre d’ajustements simultanés qui peuvent être effectués ; le nombre maximal de simulations d’optimisation qui peuvent être exécutées en même temps ; le nombre maximal de threads utilisés pour les simulations FDTD ; le nombre maximal de fichiers de cache DoS qui peuvent être générés en même temps ; le nombre de points dans le domaine fréquentiel qui peuvent être traités en même temps.
- Nombre maximal d’instances du noyau : ce paramètre définit le nombre maximal d’instances de oghma_core.exe qui peuvent être lancées par l’interface graphique. Si une analyse de paramètres est en cours, ce paramètre contrôle le nombre maximal de simulations simultanées qui peuvent être exécutées en même temps. Si la valeur du nombre de threads utilisés par le processus en arrière-plan est définie sur 4 et qu’une simulation FDTD est en cours, et que le nombre maximal d’instances du noyau est défini sur 8, alors l’interface graphique lancera 8 instances de oghma_core.exe, chacune utilisant 4 threads, ce qui nécessitera 32 cœurs de processeur.
- Temps d’attente : Parfois, lorsque le programme OghmaNano est exécuté sur un superordinateur sans surveillance, il peut s’arrêter, possiblement en raison d’une erreur d’entrée/sortie ou d’une erreur de réseau. Cette option permet de définir la durée maximale d’une seule simulation. Par « seule simulation », j’entends une seule courbe de courant-tension (JV), une seule simulation dans le domaine temporel ou une seule simulation dans le domaine fréquentiel, mais pas une série complète de simulations (qui impliquerait l’exécution de milliers de simulations individuelles). Ainsi, avec une valeur de 2 000 secondes, le solveur s’arrêtera si, par exemple, une seule simulation de courant-tension prend plus de 2 000 secondes. En réalité, chaque simulation individuelle ne devrait prendre que quelques secondes, de sorte que cette option agit comme une mesure de sécurité en cas de problème majeur.
- Durée maximale d’exécution : il s’agit de la durée maximale pendant laquelle le programme oghma_core.exe peut rester en mémoire. Si une simulation ou un ajustement prend plus de temps que cette valeur, il sera interrompu. Il s’agit d’une mesure de sécurité pour éviter que les simulations ne se poursuivent indéfiniment. La valeur par défaut est de 4 jours.
- Processeurs multicœurs : il arrive que, lorsqu’on exécute OghmaNano sur un ordinateur partagé, une simulation soit lancée alors qu’un autre utilisateur utilise déjà un nombre important de cœurs. Après un certain temps, les simulations de l’autre utilisateur se terminent, laissant l’ordinateur avec des processeurs inactifs. Si cette option est définie sur « Vrai », OghmaNano surveillera le nombre de processeurs disponibles et, si davantage de processeurs se libèrent, il les utilisera.
- Nombre minimal de processeurs : utilisé avec l’option « processeurs Steel » ci-dessus pour définir le nombre minimal de processeurs qui seront utilisés.
- Enregistrer les données DoS sur le disque : OghmaNano enregistre les tables de recherche sur le disque afin d’accélérer les simulations. Si cette option est désactivée, ces tables de recherche ne seront pas enregistrées.
- Accélération GPU avec OpenCL : cette option permet d’activer ou de désactiver l’accélération GPU, ce qui est principalement utilisé pendant les simulations FDTD.
- Nom du GPU : permet de sélectionner le GPU à utiliser.
Mémoire cache de Newton
Lorsqu’on effectue des simulations avec un nombre important d’équations différentielles ordinaires (EDO), comme dans le cas de dispositifs unidimensionnels comportant de nombreux états de piégeage et de nombreux points spatiaux, ou lorsqu’on effectue des simulations de transistors à effet de champ organiques bidimensionnels (OFET), chaque étape de tension peut prendre un certain temps à calculer. En effet, le solveur doit résoudre chaque étape de tension en utilisant la méthode de Newton jusqu’à ce qu’il converge. Pour chaque étape du solveur, la matrice jacobienne doit être construite, puis inversée, multipliée par les résidus, et les mises à jour de toutes les variables du solveur doivent être calculées. Cela peut prendre un temps considérable par étape (2000 ms). Une approche pour contourner ce problème consiste à stocker les résultats calculés précédemment sur le disque, puis, lorsque l’utilisateur demande au solveur de calculer un problème déjà calculé, le résultat peut être récupéré plutôt que recalculé. Cette approche est très utile dans la conception d’OLED, où l’on cherche à optimiser la structure optique du dispositif tout en laissant la structure électrique inchangée. On peut ainsi effectuer de nouvelles simulations optiques en utilisant des solutions électriques déjà précalculées. Les options de configuration sont affichées dans le tableau ci-dessous.
L’utilisation de la mémoire cache Newton entraîne un certain coût, c’est pourquoi je ne la recommanderais que lorsque la résolution du problème électrique est particulièrement lente. Sur le plan technique, la mémoire cache Newton fonctionne en calculant la somme MD5 des niveaux de Fermi et des potentiels afin de générer un hachage du problème électrique. Ce hachage est ensuite comparé aux données existantes sur le disque. Si une réponse précalculée est trouvée, les niveaux de Fermi et les potentiels sont mis à jour avec les valeurs trouvées sur le disque. La mémoire cache est stockée dans oghma_local, chaque solution précalculée étant enregistrée sous la forme d’un nouveau fichier binaire. Chaque simulation génère un fichier d’index dans lequel sont stockées toutes les sommes MD5 de cette simulation. Une fois que la mémoire cache est pleine, OghmaNano supprime les résultats des simulations par lots, en se basant sur les fichiers d’index.
- Taille maximale de la mémoire cache : définit la taille maximale de la mémoire cache en Mo. Je recommanderais environ 1 Go.
- Espace disque minimum disponible : définit la quantité minimale d’espace disque nécessaire pour utiliser la mémoire cache. Cette option est conçue pour empêcher la mémoire cache de remplir complètement le disque. Je recommanderais de la régler à environ 5 Go.
- Nombre de simulations à conserver : ce paramètre définit le nombre maximal de simulations à enregistrer. Je recommande de le régler entre 20 et 100.
- Activer le cache : cette option permet d’activer ou de désactiver le cache Newton. L’option par défaut et recommandée est « Faux ».
Test de performance du matériel
Dans le coin supérieur gauche de la fenêtre des paramètres matériels (??), il y a un bouton intitulé « Test de performance du matériel ». Si vous cliquez dessus, OghmaNano effectuera un test de performance de votre matériel, et les résultats de ce test seront affichés dans (??). Ce test évalue la capacité de votre processeur à calculer les fonctions sinus et exponentielle, ainsi qu’à allouer et libérer de la mémoire par blocs. Il affiche la durée nécessaire pour effectuer quelques milliers d’opérations, ainsi qu’une valeur R (également appelée valeur de Roderick). Cette valeur est définie comme suit : R = Temps nécessaire pour effectuer le calcul sur votre PC / Temps nécessaire pour effectuer le calcul sur mon PC. Ainsi, des valeurs plus faibles indiquent que votre PC est plus rapide que le mien. Mon PC est un Intel(R) Core(TM) i7-4900MQ à 2,80 GHz, intégré dans un ordinateur portable Lenovo ThinkPad de 2017. Par conséquent, la plupart des ordinateurs modernes devraient être plus rapides. Si vous avez de bonnes performances de processeur, mais que vos simulations s’exécutent plus lentement que mes vidéos YouTube, cela est généralement dû à une vitesse d’entrée/sortie médiocre, causée par des logiciels antivirus, le stockage des simulations sur OneDrive, l’utilisation de lecteurs réseau ou l’utilisation de supports de stockage USB lents, etc.