===== Commit 2014-09-04 ===== * Solveurs symétriques * divers ===== Solveurs symétriques ===== * Ayant noté qu'on essayait de résoudre des problèmes aux valeurs propres sur un système non symétrique, j'ai commencé par permettre la génération (en calculant la moyenne des termes potentiellement non symmétriques de la matrice de raideur, d'autres méthodes pourront être envisagées le cas échéant dans le futur...), le stoquage, la factorisation de systèmes d'équation symmétriques (au format skyline ou CSR) * Afin de mieux coller à ce qu'elle contient la classe ''DSSMatrix'' a été renommée ''CSRMatrix'' : classe gérant le stockage d'une matrice au format CSR. Celle-ci pouvant être symétrique, structurellement symétrique ou non symétrique. Seule les 2 premières sont à ce jour utilisées dans Metafor. Plus dinfo sur le format CSR et son utilisation au travers des MKL [[https://software.intel.com/sites/products/documentation/doclib/mkl_sa/11/mklman/GUID-9FCEB1C4-670D-4738-81D2-F378013412B0.htm | ici ]]. * Analyse sur base de apps.qs.tube (System dimension = 5427 - Dense system size = 29452329 ) |< 100% 10em - - - >| ^ ^ DSS ^ Sym DSS ^ Skyline ^ Sym Skyline ^ | BuildK | 17.2 | 14.5 | 13.9 | 13.6 | | SolveK | 10.8 | 6.7 | 25.0 | 20.6 | | TSC-STP | 93 | 93 | 93 | 93 | | TSC-ITE | 213 | 211 | 213 | 211 | | Memory | 320047 | 162737 | 2057994 | 1028997 | | Memory Ratio | 1.09 % | 0.55 % | 6.99 % | 3.49 % | * Utilisation : ''metafor.getSolverManager().setSymmetric(True)'' * Pas implémenté sur le solveur iteratif (ISSolver). Nécessite de recoder le solver... Mais l'utilisation de la matrice de raideur symétrique permettrait d'utiliser d'autres solveurs iteratifs genre GC, ... (dixit Romain) to do ... ===== ValuesManager ===== * interfacage python de la fonction size() et des operateurs [] et () de ValuesManager ===== divers ===== * Ajout d'une fonction Blas::getNumThreads() * Toolbox.Utilities : * _numTasks = 1 # nombre de taches à tourner en meme temps (opti) * ajout des fonctions d'interface : getNumTasks() / setNumTasks(numTasks) * suppression de la fonction recover (doublon de rebuildAsciiFromV()) * asciiFromV : Ajout de la possibilité de limiter les ascii aux 'nt' premiers pas de temps des .v (sans modifier ceux-ci) * Ajout d'une interface getValuesMAnager (reconstruisant ce qu'il faut...) pour faire des ascii from v à la main ... * idem pour les ''ObjectiveFunctions'' : rerunObjectiveFunctionSet() / getObjectiveFunctionSet() * PythonInterpreter : Initialisation de NbTasks (variable globale de toolbox.utilities)... pour opti en // * Opti : implémentation (sur base du modèle battery) de l'execution de tests en // dans les études paramétriques ===== Comp-Launch-battery ===== * Ajout des algorithmes multiImport dans battery.py / launch.py * ajout du setNbTasks(nbTasks) N'oubliez pas d'updater vos linuxBin ... ==== Divers ==== ** ===== Fichiers ajoutés/supprimés ===== A : R : ===== Tests ajoutés/supprimés ===== A : apps.qs.tubeDSS.py A : apps.qs.tubeSymDSS.py A : apps.qs.tubeSkyline.py A : apps.qs.tubeSymSkyline.py R : --- //[[L.Papeleux@ulg.ac.be|Luc Papeleux]] 2014/09/04 //