-
Notifications
You must be signed in to change notification settings - Fork 27
[ODK] Meeting 2019 01 30
A. Breust edited this page Feb 5, 2019
·
2 revisions
ODK Linbox meeting 2019-01-30 CR
- Generateur Heuristic, plus rapide mais pb régulier. Dû à quoi ?
- sans doute pb du premier nombre premier du maskediterator
- afficher le permier nombre premier de chaque process et vérifier s'ils sont premiers
calcul du nb d'iter de chaque worker MPI: au lieu de maintenir un nb d'iter, maintenir une borne Hadamard locale = Hadamard global/nb worker. Puis dans la boucle for (jusqu'à nbiter calculé comme avant) ajouter un if (prodprime>hadamard local) then break.
Pour OpenMP: au lieu de faire un parallel for sur toute la boucle i=0...nbiter, faire une macro boucle i=0...NT puis pour chaque tache: j=0..localHadamard (=global Hadamard/NT) (NT est passé dans le specifier, avec defaut à NUM_THREAD)
- Reprise totale de la branche de Zhu
- Timers pour benchmarks solve CRA
- Comprendre differences borne Hadamard Zhu/moi > log2 face à log...
- Erreur (horreur) à l'exécution, la vieille branche de Zhu ne fonctionnait pas :
MaskedPrimeIterator<IteratorCategories::HeuristicTag>
fait que ça plante parfois - Simplification du nombre d'iterations par node (chacun se le calcule)
- Suppression de prime_used
- Arret de redimensionner le vector
-
make check
-> Fix tests compilation
- Suppression de MdrVector
- 26-... -> bestBitSize
- Remplacer constructor copie par des casts autant que possible (tout mettre au haut level)
- Regénération des timings depuis données de Zhu (cf Timings)
- TODO: solvein -> solveInPlace -> donc aussi detin -> detInPlace rankin -> rankInPLace etc verifier toutes les solutions
- verif des dimensions en assert ou if debug (cf contract.h, linbox_check)
- TODO: unifier l'ordre des args du rebind de vecteur (unifier avec matrix: rebind(mat, field))
- Field->Ring quand on est sur des integer
- bug primegen heuristic/det
- paladin: coportement OMP/paladin bizarre: de fois sequentiel -> tester sur HPAC
- TODO: remplacer PARFORBLOCK1D par un FOR1D (basé sur des taches) encadré par des SYNC_GROUP et un PAR_BLOCK global utiliser FOR1D et récupérer la valuer de l'indice k (le num du thread courant) par _internal_iterator.blockindex() remplace le param H (ParallelHelper) par SPLITTER()
- pb de timing de 4000(20): plus lent en fullMPI qu'en octobre -> pourquoi? detailler log, et nb d'iter -> essayer les affinités OMP (OMP_PLACES="threads(n), GOMP_CPU_AFFINITY, OMP_PROC_BIND)" et numactl --interleave-all -> a tester sur HPAC
TODO d'ici la presentation de lundi,
faire marche l'hybride plus rapidement que pur MPI:
- changeant le code OMP+sect critique par du paladin FOR1D avec splitter
- essayer les numactl & affinity
- mesure du hybrid