- fixed bug : it was caused by the fact that the database has no information about ietr machines order. Fixed this by ignoring ietr machines because they're only part of ipr cluster temporarily and as such, they shouldn't appear in the stats.
also some improvements:
- improved the colors of the owners of the machines so that tey're visually close for the same organism (eg ipr owners have close colors). This change was made in june 2020 I think (for the questionnaire about it needs related to eskemmdata)
- added a graph to show the age of cores
- prevented overlapping of dates in the graph showing the evolution of gflops price
- improved the handling of colors. As a result, the number of owners is no longer restricted, as the color palette is now no longer restricted in size
- improved readability by putting the legend on the upper left part of the graphs, where it no longer hides the upper right part of the graph
- fixed clutter of years on the x axis which made it difficult to read the years. Now, there is a limit in the number of years displayed on the x axis
- improved the legend showng the owners, which now displays the lab in addition to the department
- made ClusterStats work on graffy-ws2 : made code compatible with python3 (still compatible with python2 though)
- added support for physix in addition to simpatix)
- fixed bug
Ticket n°215786 : installer le logiciel Ls Dyna sur le cluster de calcul de l'IPR
also fixes Bug 2812 - la mise à jour de physix-master a échoué (parsing de qconf -sconf global)
As a result, clusterconfigurator no longer pesses with hardcoded sys.path, we now use PYTHONPATH, which is somewhat cleaner.
As mypy doesn't support python2, I had to migrate code from python2 to python3. Because some libraries are shared between all python code, python2 code using these libraries will be broken while all python code is not upgraded to python3.
Bug 2701 - mettre en place un mécanisme pour éviter le blocage des gpu par des jobs cpu
- après avoir tenté de représenter le powerdiagram en deux modes simultanés (normal et worst_case), j'ai finalement opté pour une option qui permet de choisir un seul mode à la fois. Le mode worst case scenario est actif par défaut parce qu'il est le plus important : il permet de vérifier que le cablage est bien dimensionné en cas de coupure edf ou d'une alim défectueuse. Bien que le mode de calcul soit différent, on retrouve bien la même conso sur edf dans les deux modes.
- amélioration : ajout de la conso en W de chaque appareil (pratique pour vérifier s'il n'y a pas d'incohérence)
- désormais, les prises des appareils doivent être renseignés, sinon powerdiagram affiche les données qui lui manquent. Ca a notamment permis de détecter un oubli qui faisait qu'un des câbles était affiché plus gros que les autres (16A au lieu de 10A) sans raison apparente.
- amélioration du code pour que les alimentations redondantes soient gérées correctement. Il en ressort que plus de câbles sont en surcharge.
- j'en ai profité pour afficher les alims secourues en vert et les non secourues en bleu.
amélioration: désormais le diagramme fait bien ressortir les câblages qui méritent de l'attention :
- en rouge les cables en surcharge (dont l'ampérage max peut dépasser la capacité)
- en noir les cables qui n'ont pas de charge
Pour que le rouge soit réservé aux cables à problème, les conventions de couleurs pour les cables non surchargés ont été modifieés : c'est désormais en teintes de bleu.
désormais, le powerdiagram est plus lisible car les noeuds sont regroupés par rack. J'aurais bien aimé que les serveurs soient ordonnés comme dans les racks mais graphviz ne sait pas bien mixer des positions forcées avec des positions libres (lorsque j'ai essayé de le faire, les positions fixées ne l'étaient plus)
- correction du bug (les machines physix.._.. n'étaient pas gérées, alors que les machines simpatix.._.. l'étaient; du coup, j'ai rendu le code plus générique pour qu'il reconnaisse les machines [a-z]+.._..)
- fixed a bug : now, the displayed memory is correct even if the mem_available sge attribute returns the memory in other units than gigabyte
- also, this commit includes an old improvement that makes executeCommandOn handle an optional user, which was previously slinetly ignored in the case of a local command
- for the sake of debugging, improved the handling of missing data in SimpaDb.sql : now when a data is missing, the exception handler displays a message describing what's missing.
tentative de correction d'un bug qui cause l'erreur suivante d'apparaitre de temps en temps, à l'occasion du chargement de la page clusteruserguide :
SQLite objects created in a thread can only be used in that same thread.The object was created in thread id 139672342353664 and this is thread id 139672333960960
- désormais, la page clusteruserguide est générique : elle genere le user guide de simpatix et physix
- désormais, la page clusteruserguide est mise à jour automatiquement : elle génère la liste les noeuds et les gflops dynamiquement en regardant la sortie de qstat et en utilisant la base de données SimpaDb.sql (on a réutilisé les classes qui avaent été écrites pour clusterstatusview)
- désormais, la page physix cluster status est disponible. Pour cela, il a fallu :
- ajouter un mécanisme d'export/import de clef publique ssh utilisateur (pour que intranet.ipr.univ-rennes1.fr puisse exécuter des commandes sge sur physix-master)
- adapter la view clusterstatus pour qu'elle sache gérer les commandes sge déportées. Au final, cette vue permet d'afficher le pages cluterstatus de simpatix (commandes sge locales) et physix (commandes sge déportées)
- now sge uses ssh mode for qlogin (it was the case on simpatix too but it wasn't yet scripted). qlogin using ssh works provided the ports are open.
- also set qsh and qrsh to use ssh mode to be consistent. (although not tested yet)
- fixed bug introduced recently where the name of the machine was used instead of its fully qualified domain name. This caused ClusetrConfigurator to fail on exec nodes
Bug 2230 - Unifier les flags de ressource gridengine en supprimant les ressources "has_<app>"
- migrated the following complexes:
- has_matlab2011b -> matlab_version
- has_dsmcmodfoam -> dsmcmodfoam_version
- has_meep -> meep_version
- openfoam_version (int encoding) -> openfoam_version (float encoding)
- also disabled obsolete resources (has_molpro2006 and has_molpro2010) on physix as they've been replaced with the better molpro_version.
fixed bug that causes SgeConfigurator to fail with sge 8.1.9 because a new parameter qsort_args has been added to parallel environment:
command failed : qconf -Ap '/tmp/make'
root@physix-master:/home/graffy# qconf -Ap '/tmp/make'
error: required attribute "qsort_args" is missing
error reading in file
- mise à la norme pep8 de SgeConfigurator en vue de l'améliorer pour qu'il puisse gérer :
- 2 clusters différents, dans un court terme, pour mettre physix88 en production dans un nouveau cluster sge (physix))
- 2 backends différents (sge et slurm), dans un plus long terme
nb: pour la validation pep8, j'ai été obligé d'ajouter un projet eclipse python appelé simpapy pour SimpaScripts/Python
- ajout de l'application DebtComputer qui permet de calculer l'argent injecté par un utilisateur dans le pot commun, et l'usage dont il en bénéficie
nb: les maintenances ne sont pas encore prises en compte
- the cluster evolution graphs are now displayed on the intranet :
- I had to make python graphing code handle debian 7 version of matplotlib; this was rather painful)
- I had to handle the case where the default matplotlib backend doesn't work (because of no display)
- improvement : the figures can now be saved as svg files. This mechanism will be used by the intranet to display the cluster evolution graphs
- also removed debug prints that pollute stdout
- refactoring : improved so that now PowerDiagram also uses the Inventory class instead of duplicating code. This will:
1. make the code easier to maintain when there is a change in the inventory database tables
2. make the code easier to adapt when we switch from a sql file to a mysql server
- refactored so that it now abstracts the database provider ; this way, accessing the inventory database through a database server instead of a sdl dump file is mostly transparent