************************************************************************** **** Compte-Rendu (partielle) reunion 25-26 Juin 99 ******************* ************************************************************************** **** Apres Tarbes amendements; pour la mult, cf CtABnew.Tarbes ******** **** Apres Paris amendements;(21/08/00(********************************* ************************************************************************** Apres de nombreuses evoquations/discussions sur un nouveau traitement des Ct A-1B, depuis Juillet 96, il semble se degager une proposition acceptable. La nouvelle structure Zebra devait repondre a de nouvelles exigences : 1/ permettre de ranger les matrices A et B, pour les calculs de sensib et de l'adjoint. 2/ etre assez souple pour accompagner les developpements : - rangement de A,B et/ou A-1B et/ou CtA-1B - accepter des variantes de calcul stockage - gestion des matrices sur deux pas de temps et nouveaux vecteurs - essais de parallelisation 3/ tolerer qu'un Tr puisse etre multiplement connecte a la meme cellule via plusieurs C-Plugs. Le nouveau calcul de CtA-1B devait servir de banc-test pour une refonte du Mx_Package, en assurant 1/ une meilleure lisibilite/simplicite 2/ l'appel aux librairies (optimisees) d'algebre lineaire (LINPACK...) 3/ une separation de taches claires en preparation de la parallelisation 4/ l'appropriation du code par la collaboration Zoom-ker de facon a promouvoir une collaboration equitable pour les developpements du noyau envisages. La structure Zebra : ==================== ..... Nouvelle regle : une IC reste attachee a | Cl > une seule SV, mais les IC ne sont plus une ``|`| partition des Tr de la Face, cad qu'un Tr | \_ | D |->| CtAB' |(*) peut aparaitre x fois, s'il est x connecte | a la Cl via x SV ..... | F > ''|'' | ....... ...... | IC1 | -> | IC2 | Dimensions : D = U{IC} * U{IC'}, comme CtAB' ??? |''||'' '''''' | | \_ | Ct_SV | Ct_SV = SV * U{IC} | | | \_ | Bt_TV | Bt_TV = SV * U{IC'} | \__ | ABt_TV | ABt_TV = Eta * U{IC'} notations : U{.} == union des . IC' == IC restreinte a l'union des TV connectes a la SV correspondante le bloc marque (*) est rangement de calculs de ker Remarque : La ABt actuelle est constituee de la somme directe des Eta*IC blocs ci-dessus; on peut ajouter que la regle nouvelle des IC fonctionne deja', ce qui decoule : 1/ de la structure de la ABt en IC, qui semble dupliquer ce transfert 2/ du calcul de la dim de la ABt via les IC pour avoir les Tr connectes. 3/ du calcul de dEta egalement via les IC On peut aussi prevoir des variantes compactees de ABt_TV, Bt_TV, D, et CtAB : ABt_SV_TV ( = SV * TV), Bt_TV* (= SV * TV), D_TV_TV (= TV * TV), CtAB_TV_TV (=idem) remplies par les processeurs. Il reste le pb de la D_TV a preciser Une nouvelle procedure d'elimination : ====================================== * Separation des taches : une devise, une seule : Extraction, Multiplication, Ventilation, lors de l'elimination d'une cellule. - Extraction : on extrait de la ABt_UTV les colonnes des USV de la Ct_USV en constituant une ABt' et une Ct' volatiles. - Operation : calcul de Ct_SV' * ABt' - Ventilation : utilisation de Tables pour rangement dans les matrices de la FmUp * procedure(s) d'elimination possible(s) : Dans EOLEF, cad elimination des objets d'une famille, on appelle une SOELIM, qui fait une boucle sur les Cl en calculant la CtAB - structuree par les ICi*ICj (ou pourquoi pas par Blignes, voire par blocs ICi*ICj ?). Ceci pourra s'etendre aux sous-familles EOLES, qui traitait de l'elimination d'un SO, voit son role reduit a la ventilation. Remarque : en ce qui concerne LE Bug, il est alors clairement lie a cette operation, et a elle seule. Preparation de la refonte : =========================== Premiere etape : dans la nouvelle structure Zebra, on effectue les memes calculs qu'auparavant a partir de la ABt_TV; ce qui n'empeche pas de preparer la suite. ------------------ Taches a repartir : ------------------ precompilateur - en fait USBanks etc : description des nouveaux blocs.(!) PROC : macros pour rangement de A, Bt_TV, ABt_TV, Ct_SV, D_TV et preparer les variantes ABt_SV_TV, Ct_TV_SV, D_TV_TV pour les matrices plus compactes. (ceci a la demande explicite de l'U par le choix des macros grasp specifiques) ker : -macros du ZBM pour les nouvelles matrices (!) -OFRAME et ONUMA pour nouvelles tables (!) -dump routines(!) -CtA-1B par la devise triple(!) cf ...Tarbes -EOLE et EOLES algorithme(!) -nouvelles tables(!) pour ventilation -penser a la systematisation au Mx-package -attaque/test de Mx lin packages(!) essais dans mini-ker ? -repertorier les routines ou interviend la convention de rangement des matrices (ligne,colonne,pour envisager un chgt eventuel) -procedure d'elimination generale : traitement par [IN,IX] BLignes, ou globale ? (cf ...Tarbes, le choix du traitement de CtAB_TV complet) -traitement par ker de la COOO, cad d'un SO sans variables. -traitement du T-Probe, cad CtAB rectangulaires. ( c'est ok, cf ...Tarbes CtAB_TV) -algorithmes pour : LU decomp de A, sensibilites, adjoint, Cellule calculant sa CtAB, resolution par gradients conjugues(!) mini_ker ? (!) : taches de la premiere etape a se repartir Questions en suspend ou en plus : ================================= - est-ce un bon moment pour re-envisager le nouvel arbre des Transferts ? - pourquoi exclure un TR x connected a la meme Cl via la meme SV ? (cad x ABt_TV enchainees sous une IC dans l'ordre des CX de la SV.) ==> apres Tarbes, c,a devrait aller ?) - nouvelles macros permettant la co-existence ou pas.