Metafor

ULiege - Aerospace & Mechanical Engineering

User Tools

Site Tools


commit:2014:09_04

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 ici .
  • Analyse sur base de apps.qs.tube (System dimension = 5427 - Dense system size = 29452329 )
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 : 

Luc Papeleux 2014/09/04

commit/2014/09_04.txt · Last modified: 2016/03/30 15:23 (external edit)