WIP: Features/oar gpus
-
Review changes -
-
Download -
Patches
-
Plain diff
Merge request pour ajouter les GPUs dans OAR. On peut lancer le générateur avec la commande suivante:
Lien vers le pad: https://pad.inria.fr/p/np_YHHmlatqQDDFo48X
Afficher les commandes OAR:
$ rake gen:oar-properties SITE=lille CLUSTER=chifflet,chifflot DO=output
Afficher la table OAR (comme dans dans la doc):
$ rake gen:oar-properties SITE=lille CLUSTER=chifflet,chifflot DO=table
Faire le diff:
$ rake gen:oar-properties SITE=lille CLUSTER=chifflet,chifflot DO=diff
Avancement:
-
faire un script qui analyse le mapping cpu/gpu -
proposer un format pour les propriétés GPUs dans la ref-api -
écrire un générateur de commandes OAR pour propriétés GPUs -
intégrer avec le générateur existant -
reprendre le code de création des propriétés de l'ancien générateur -
créer d'abord les propriétés de base host/cpu/core/gpudevice avant les propriétés auxiliaires (cosmétique/plus logique) -
rebase sur les derniers commits de la branche master -
supprimer l'ancienne commande gen:oar-properties
de la branch de dev (le code de poc-oar-properties remplace l'ancien de oar-properties): les tests/comparaisons sont à faire avec la même commande dans la branche master -
implémenter/renommer l'action "exec"/"update", "output"/"print" (déjà fait dans la branche master, devrait arriver avec le rebase) -
dans le DO=update
affichager les commandes shell exécutées avant leurs outputs (e.g.echo "# $cmd" ; $cmd
) -
générer les propriétés OAR manquantes (L123 https://pad.inria.fr/p/g.h6aibp4MP2anzhaz$np_UV271zBwm7OQxXs6_g5kdev) -
vérifier que les commandes basiques fonctionnent bien, par ex: rake gen:oar-properties DO=print
sans SITE, sans CLUSTER -
vérifier que le usage ( rake -T
) est cohérent (commandeDO=
...) -
uniformiser le code (les noms de méthodes, les variables) -
reordonner les fonctions et supprimer les espaces afin de minimiser le diff avec master -
tester dans oar-vagrant qu'on produit bien la même chose qu'avec la branche master pour les clusters sans GPU -
tester dans oar-vagrant qu'on produit bien ce qui est attendu pour les clusters avec GPU -
tests pour une base existante → DO=diff
,DO=update
sur base existante. -
retravailler les commits pour les rendre un peu plus lisibles ( git rebase -i origin master
) -
vérifier avec hw-loc
les règles d'attributions des CPUs pour chaque cluster -
dernière validation (CI ok?) et merge dans master -
attention a ne pas avoir gpu et gpudevice dans le tableau retourné par ignore_default_keys() (ajoutés temporairement dans l'ancien generateur avec le commit 9a32d739)
Tests avec oar-vagrant:
Cf. https://oar.imag.fr/wiki:oar-vagrant
Mise en place:
- tests avec la même version de OAR que Grid5000, sur deb_debian9_pgsql:
il faut juste faire
export OAR_FTP_DISTRIB=stretch-backports_beta
avant de faire levagrant up
- puis ouvrir l'accès sans password vers la box server pour que
ssh vagrant@192.168.37.10
fonctionne (ssh-copy-id
) etssh root@@192.168.37.10
aussi (copy vagrant's authorized_keys to /root/.ssh/). - enfin il faut réinitialiser la database OAR:
$ ssh root@192.168.37.10 "oar-database --drop --db-is-local -y && oar-database --create --db-is-local"
Test du générateur de la branche master:
$ rake gen:oar-properties SITE=lille CLUSTER=chifflet DO=print | ssh vagrant@192.168.37.10 sudo bash
Tester du nouveau générateur:
(DO=exec
devient DO=update
)
$ rake gen:oar-properties SITE=lille CLUSTER=chifflet DO=update OAR_SERVER=192.168.37.10 OAR_SERVER_USER=vagrant
Extraction de la table resources de la database OAR:
; Avec oarnodes
$ oarnodes -Y
; Avec pg_dump
$ pg_dump oar -a -t resources # VM vagrant
$ pg_dump oar2 -a -t resources # Site en production
; Avec une requete SQL
$ cat <<EOF > select.sql
SELECT
switch, cluster, host, network_address, ip, type, cpu, gpu, core, disk, cpuset, gpudevice, diskpath, resource_id, disk_reservation_count, disktype, scheduler_priority, besteffort, deploy, cpuarch, cpucore, cputype, cpufreq, gpu_count, gpu_model, nodemodel, virtual, eth_count, eth_rate, ib_count, ib_rate, ib, opa_count, opa_rate, opa, myri_count, myri_rate, myri, memcore, memcpu, memnode, mic, wattmeter, cluster_priority, max_walltime, production
FROM resources
WHERE (comment IS NULL OR NOT comment like 'Retired%') AND (type = 'default' OR type = 'disk')
ORDER BY
switch, cluster, CAST(SPLIT_PART(ip,'.',4) as integer), type, cpu, gpu, core, disk, cpuset, gpudevice, diskpath, resource_id, disk_reservation_count, disktype, scheduler_priority, besteffort, deploy, cpuarch, cpucore, cputype, cpufreq, gpu_count, gpu_model, nodemodel, virtual, eth_count, eth_rate, ib_count, ib_rate, ib, opa_count, opa_rate, opa, myri_count, myri_rate, myri, memcore, memcpu, memnode, mic, wattmeter, cluster_priority, max_walltime, production
;
EOF
Then to retrieve from the VM:
$ cat select.sql | ssh -t root@192.168.37.10 'su - postgres -c "psql -A -t oar"' > select.new
And to retrieve from production (Lille):
$ cat select.sql | ssh -t oar.lille.g5ka 'sudo -u postgres psql -A -t oar2' > select.lille
Évaluation des résultats:
-
Comparer les résultats de plusieurs (2 au moins) itérations du nouveau générateur à partir d'une base vierge : vérifier l'idempotence. -
Comparer les résultats après une passe du nouveau générateur sur une base existante pour un cluster existant ou tous les clusters. Vérifier que les modifications sont pertinentes: ajout des GPUs, mais pas de changement sur les autres ressources. -
Comparer les résultat après ajout d'un nouveau cluster sur un site existant : vérifier la pertinence de l'ajout et l'idempotence apres une nouvelle passe.
Edited by Pierre Neyron
Merge request reports
Compare and
- version 783a55fa55
- version 779166a6e4
- version 7618aa56d2
- version 75711aec79
- version 742b159b8f
- version 7347ffc1d5
- version 72f6bef5b3
- version 71440641e7
- version 705db7079d
- version 69d995c3fb
- version 68128b60f5
- version 67c83beaa9
- version 66c7841628
- version 65173479fb
- version 64546c166e
- version 63730d3878
- version 62d9ba54de
- version 61be5d5fc6
- version 60b273ba53
- version 597531233f
- version 582e214b1f
- version 57d98bd973
- version 56cdef6f86
- version 55245ade4e
- version 545bc7df84
- version 538320b125
- version 5287e5f6cb
- version 51e716299e
- version 508baac4c6
- version 4967d26371
- version 48f9351eee
- version 478bf11ebe
- version 4606737605
- version 452240eec5
- version 44dfb8b172
- version 43d0d7f609
- version 42d2b1fe22
- version 41ca3c9ac2
- version 40ffafce0f
- version 39795b59ae
- version 38f9946362
- version 377333d1bd
- version 36464b7133
- version 3574c2ac61
- version 3458014b2e
- version 33bf5569d6
- version 32910537fb
- version 311e853734
- version 30e1fa7a61
- version 29177d8cb5
- version 28736c592f
- version 2709aa5163
- version 26e99ba5bc
- version 2526ddb48f
- version 2465c0764b
- version 23d5548533
- version 22f4444a86
- version 218643f4dd
- version 20fc0ba3f6
- version 19fc0ba3f6
- version 18fc0ba3f6
- version 177e96460d
- version 1625815aae
- version 150c421079
- version 14f85e8f74
- version 1300585695
- version 1259bae90f
- version 1148722a87
- version 106ea67851
- version 9b9e8e317
- version 8df52c8cf
- version 767ac78f3
- version 668abeaa0
- version 5e1695d0a
- version 4cf9195ee
- version 358cf8c40
- version 25e926e36
- version 13cba1923
- master (base)
- latest version828903db57 commits,
- version 783a55fa5556 commits,
- version 779166a6e453 commits,
- version 7618aa56d251 commits,
- version 75711aec7951 commits,
- version 742b159b8f50 commits,
- version 7347ffc1d544 commits,
- version 72f6bef5b342 commits,
- version 71440641e742 commits,
- version 705db7079d41 commits,
- version 69d995c3fb40 commits,
- version 68128b60f539 commits,
- version 67c83beaa937 commits,
- version 66c784162836 commits,
- version 65173479fb39 commits,
- version 64546c166e38 commits,
- version 63730d387837 commits,
- version 62d9ba54de36 commits,
- version 61be5d5fc635 commits,
- version 60b273ba5334 commits,
- version 597531233f33 commits,
- version 582e214b1f32 commits,
- version 57d98bd97331 commits,
- version 56cdef6f8629 commits,
- version 55245ade4e29 commits,
- version 545bc7df8428 commits,
- version 538320b12527 commits,
- version 5287e5f6cb26 commits,
- version 51e716299e25 commits,
- version 508baac4c628 commits,
- version 4967d2637127 commits,
- version 48f9351eee26 commits,
- version 478bf11ebe25 commits,
- version 460673760524 commits,
- version 452240eec523 commits,
- version 44dfb8b17222 commits,
- version 43d0d7f60921 commits,
- version 42d2b1fe2220 commits,
- version 41ca3c9ac219 commits,
- version 40ffafce0f17 commits,
- version 39795b59ae14 commits,
- version 38f994636213 commits,
- version 377333d1bd12 commits,
- version 36464b713311 commits,
- version 3574c2ac619 commits,
- version 3458014b2e3 commits,
- version 33bf5569d62 commits,
- version 32910537fb1 commit,
- version 311e8537341 commit,
- version 30e1fa7a6141 commits,
- version 29177d8cb540 commits,
- version 28736c592f39 commits,
- version 2709aa516338 commits,
- version 26e99ba5bc37 commits,
- version 2526ddb48f36 commits,
- version 2465c0764b35 commits,
- version 23d554853334 commits,
- version 22f4444a8633 commits,
- version 218643f4dd32 commits,
- version 20fc0ba3f631 commits,
- version 19fc0ba3f631 commits,
- version 18fc0ba3f631 commits,
- version 177e96460d29 commits,
- version 1625815aae28 commits,
- version 150c42107924 commits,
- version 14f85e8f7423 commits,
- version 130058569522 commits,
- version 1259bae90f20 commits,
- version 1148722a8715 commits,
- version 106ea6785114 commits,
- version 9b9e8e31713 commits,
- version 8df52c8cf12 commits,
- version 767ac78f311 commits,
- version 668abeaa011 commits,
- version 5e1695d0a10 commits,
- version 4cf9195ee9 commits,
- version 358cf8c408 commits,
- version 25e926e367 commits,
- version 13cba19236 commits,
39 files
+ 50427
− 280
Compare changes
- Side-by-side
- Inline
Some changes are not shown
For a faster browsing experience, some files are collapsed by default.
Files
39@@ -24,6 +24,7 @@
@@ -24,6 +24,7 @@
Loading