CCMP 2019 — Autour des nombres premiers
Extrait verbatim de : CCMP 2019 — Partie IV. Analyse de performance de code
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 :
nomTEXT, clé primaire, le nom de l’ordinateur.gflopsINTEGER la puissance de l’ordinateur en milliards d’opérations flottantes par seconde.ramINTEGER 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 :
idINTEGER l’identifiant du test effectué.nomTEXT le nom de la fonction testée (par exemple li, Ei, etc).algorithmeTEXT 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_surTEXT le nom du PC sur lequel le test a été effectué.temps_execINTEGER 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
nom comme clé primaire de la table fonctions.Q26. Écrire des requêtes SQL permettant de :
-
Connaître le nombre d’ordinateurs disponibles et leur quantité moyenne de mémoire vive.
-
Extraire les noms des PC sur lesquels l’algorithme
rectanglesn’a pas été testé pour la fonction nommée li. -
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.