MP*1 et MP*2 — Sainte-Geneviève

CCMP 2019 — Autour des nombres premiers

Extrait verbatim de : CCMP 2019 — Partie IV. Analyse de performance de code

← Toutes les années

Contexte et schéma de la base

Au cours du développement des fonctions nécessaires à la manipulation des nombres premiers on s’aperçoit que le choix des algorithmes pour évaluer chaque fonction est primordial pour garantir des performances acceptables. On souhaite donc mener des tests à grande échelle pour évaluer les performances réelles du code qui a été développé. Pour ce faire on effectue un grand nombre de tests sur une multitude d’ordinateurs. Les données sont ensuite centralisées dans une base de données composée de deux tables.

La première table est ordinateurs et permet de stocker des informations sur les ordinateurs utilisés pour les tests. Ses attributs sont :

  • nom TEXT, clé primaire, le nom de l’ordinateur.
  • gflops INTEGER la puissance de l’ordinateur en milliards d’opérations flottantes par seconde.
  • ram INTEGER la quantité de mémoire vive de l’ordinateur en Go.

Exemple du contenu de cette table :

nom gflops ram
nyarlathotep114 69 32
nyarlathotep119 137 32
shubniggurath42 133 16
azathoth137 85 8

La seconde table est fonctions et stocke les informations sur les tests effectués pour différentes fonctions en cours de développement. Ses attributs sont :

  • id INTEGER l’identifiant du test effectué.
  • nom TEXT le nom de la fonction testée (par exemple li, Ei, etc).
  • algorithme TEXT le nom de l’algorithme qui permet le calcul de la fonction testée (par exemple BBS si on teste une fonction de génération de nombres aléatoires).
  • teste_sur TEXT le nom du PC sur lequel le test a été effectué.
  • temps_exec INTEGER le temps d’exécution du test en millisecondes.

Exemple du contenu de cette table :

id nom algorithme teste_sur temps_exec
1 li rectangles nyarlathotep165 2638
2 li rectangles shubniggurath28 736
3 li trapezes nyarlathotep165 4842
2154 Ei puiseux nyarlathotep145 2766
2155 aleatoire BBS azathoth145 524

Questions

Q25. Expliquer pourquoi il n’est pas possible d’utiliser l’attribut nom comme clé primaire de la table fonctions.

Q26. Écrire des requêtes SQL permettant de :

  1. Connaître le nombre d’ordinateurs disponibles et leur quantité moyenne de mémoire vive.

  2. Extraire les noms des PC sur lesquels l’algorithme rectangles n’a pas été testé pour la fonction nommée li.

  3. Pour la fonction nommée Ei, trier les résultats des tests du plus lent au plus rapide. Pour chaque test retenir le nom de l’algorithme utilisé, le nom du pc sur lequel il a été effectué et la puissance du PC.