Bonjour à tous,

Je suis entrain de développer une simulation en C++ (Eclipse) avec openCV, et la mesure du temps d'exécution m'intéresse pour mes travaux.

J'aimerais pouvoir prédire le temps d'exécution de mon programme sur une autre machine qui a des caractéristiques totalement différentes.

En ce moment je travaille sur une machine virtuelle Linux (montée dans un système Linux avec un processeur Intel Core i7 6700 et 16 Go de RAM), je mesure les temps d'exécution avec clock(). J'aimerais prédire les temps d'exécution sur un Raspberry Pi 3 B+.

Ce que j'ai déjà fait:

J'utilise SysBench pour caractériser la puissance de calcul grâce au temps d'exécution renvoyé par le test CPU.
Je modifie le pourcentage des ressources allouées à la machine virtuelle pour que le temps renvoyé par le test CPU corresponde à un raspberry Pi 3 B+ (Valeur trouvée sur internet).
Une fois le bon pourcentage de ressources allouées trouvé, j'exécute mon programme et je mesure les temps d'exécution avec clock().

J'obtiens des temps de calcul 14,5 fois supérieurs en moyenne.

Problème de ma solution:

Les temps d'exécution deviennent très instables. (Je pense que cela est dû au fait que les processus en arrière plan consomme plus de ressources, proportionnellement aux ressources disponibles)
Ma solution ne prend pas du tout en compte les dépendances à l'architecture système.
Le programme test CPU de SysBench consiste à déterminer les nombres premiers jusqu'à un certain seuil, mon programme consiste à recaler des images. Je doute qu'il s'agisse du même type d'instructions.

Y a-t-il un moyen plus fiable de prédire le temps d'exécution sur une machine, étant donné le temps d'exécution sur une autre machine et les caractéristiques des deux machines?

Je vous remercie par avance pour vos réponses,

Bonne journée.