Question de performance

Added by Gregory F over 4 years ago

Bonjour à tous,

Je pense faire bientôt l'acquisition d'un nouvel ordinateur dont l'usage principal sera de faire tourner AMC, parfois pour des grands nombres de copies (>500).

Je souhaite donc minimaliser les temps de traitements (génération des copies, détection des marques, marking...).

J'avoues que je suis un peu perdu... Core i7, i9 ? Station de travail avec intel Xeon ? La quantité de RAM est-elle importante ?

Bref, je suis preneur de vos retours et de vos conseils en la matière.

Question subsidiaire : Existe-t'il un outil qui permette de mesurer les performances d'une machine (linux) et qui donnerait un bon indicateur pour AMC afin de comparer les diverses options ?

Un grand merci par avance.

Gregory


Replies (8)

RE: Question de performance - Added by Gregory F over 4 years ago

P. S. : AMC tire-t'il profit d'un GPU si présent ou bien un carte graphique de base suffit-elle ?

:-)

RE: Question de performance - Added by Alexis Bienvenüe over 4 years ago

AMC parallélise certaines actions mais pas toutes. Un nombre de cœurs important permet bien entendu d'accélérer les opérations parallélisées. En particulier, la saisie automatique est parallélisée, mais pas les opérations qui demandent une compilation du source LaTeX : préparation des documents, extraction du barème.
Les répertoires projet sont en général assez gros : un bon disque dur sera sans doute utile.
Il me semble que les accès disque sont assez réguliers pendant les opérations longues : un disque dur SSD permettra un gain en temps sur celles-ci.
Peut-être qu'OpenCV utilise automatiquement un GPU pour l'opération de saisie automatique, mais en fait je n'en suis pas certain et je ne sais pas quel serait la différence entre un gros GPU orienté calcul, et une carte graphique classique qui contient déjà un GPU.
Tout ça n'est pas très concret mais je ne pense pas pouvoir être plus précis…
J'ai deux configurations récentes (un portable et un fixe), sur lesquelles je peux faire des tests de vitesse si vous m'envoyez des sources et scans (me contacter par courriel).

RE: Question de performance - Added by Gregory F over 4 years ago

Bonjour Alexis,

Merci beaucoup pour cette réponse pas très concrète certes, mais suffisamment détaillée :-)

Je comprends donc que le nombre de coeurs est important, et j'imagine que l'hyperthreading aide aussi... Je pense donc m'orienter vers un i9 idéalement plutôt qu'un Xeon (8 coeurs contre 6)... J'imagine que ce genre de configuration doit être amplement suffisante (https://www.1000ordi.ch/acer-conceptd-500-quadro-%28dt.c03ez.009%29-dt.c03ez.009-114775.html).

Je n'ai pas d'exemple de sources à envoyer pour le moment (et je ne veux pas vous faire passer de temps là-dessus). Je serai toutefois curieux de connaître les grandes lignes de vos deux configurations, surtout si elles vous donnent pleine satisfaction.

Merci encore pour AMC. Plus j'utilise ce logiciel, plus je l'aime :-)

RE: Question de performance - Added by Alexis Bienvenüe over 4 years ago

Une comparaison serait sans doute parlante, à effectuer avec les données ci-jointes.

speed-test.zip (14.6 kB)

RE: Question de performance - Added by Alexis Bienvenüe over 4 years ago

Avec les commandes suivantes dans un terminal (après avoir fermé toutes les autres applications) :

cd /tmp
wget https://project.auto-multiple-choice.net/attachments/2280/speed-test.zip
unzip speed-test.zip
./speed/simple/test.pl

Il s'agit d'un petit QCM simple avec 25 questions, sur deux colonnes (5 pages), produit pour 100 étudiants.
Voici ce que j'obtiens avec mon ordinateur portable :
[t] subject and layout: USER = 13.13 s, SYSTEM = 0.57 s, REAL = 13.29 s
[t] scoring strategy: USER = 5.85 s, SYSTEM = 0.20 s, REAL = 5.65 s
[t] automatic data capture: USER = 276.34 s, SYSTEM = 24.81 s, REAL = 49.54 s
[t] scoring: USER = 2.33 s, SYSTEM = 0.04 s, REAL = 2.65 s
[i] 8 × Intel(R) Core(TM) i7-8650U CPU @ 1.90GHz
[i] memory: 16349748 kB

et avec mon fixe :
[t] subject and layout: USER = 11.45 s, SYSTEM = 0.23 s, REAL = 10.79 s
[t] scoring strategy: USER = 5.18 s, SYSTEM = 0.08 s, REAL = 5.14 s
[t] automatic data capture: USER = 218.31 s, SYSTEM = 22.96 s, REAL = 29.40 s
[t] scoring: USER = 1.95 s, SYSTEM = 0.02 s, REAL = 2.14 s
[i] 12 × Intel(R) Xeon(R) E-2146G CPU @ 3.50GHz
[i] memory: 32839924 kB

Dans les deux cas, j'ai travaillé sur des disques SSD.
Si je travaille sur mon fixe avec un disque dur normal, j'obtiens
[t] subject and layout: USER = 11.53 s, SYSTEM = 0.21 s, REAL = 11.79 s
[t] scoring strategy: USER = 5.25 s, SYSTEM = 0.08 s, REAL = 5.15 s
[t] automatic data capture: USER = 143.92 s, SYSTEM = 17.45 s, REAL = 86.50 s
[t] scoring: USER = 1.96 s, SYSTEM = 0.02 s, REAL = 2.14 s
[i] 12 × Intel(R) Xeon(R) E-2146G CPU @ 3.50GHz
[i] memory: 32839924 kB

J'ai omis à chaque fois les lignes qui n'étaient à mon avis pas pertinentes. Par exemple, le fake scans build qui mesure le temps (très important) utilisé pour fabriquer les faux scans qui seront donnés à AMC pour analyse automatique…

RE: Question de performance - Added by Gregory F over 4 years ago

MERCI infiniment.

C'est vraiment un super outil pour évaluer les performances. J'ai pu faire quelques tests sur mes différentes configurations (VMs ou physiques) qui sont vraiment très parlants.

Etrangement, la capture prends deux fois plus de temps lorsque je boot mon MacBook Air sur une distribution Kali Linux que lorsque je fais le test avec une VM Linux Mint sous MacOS alors qu'en bootant directement sur linux je dispose de deux fois plus de coeurs et de quatre fois plus de mémoire. Est-ce que la distribution utilisée peut avoir un impact sur les performances ou est-ce une simple coincidence? (test fait deux fois tout de même).

Linux Mint en machine virtuelle sour MacOS

[t] subject and layout: USER = 24.72 s, SYSTEM = 0.84 s, REAL = 1568801120.12 s
[t] scoring strategy: USER = 9.57 s, SYSTEM = 0.32 s, REAL = 1568801130.12 s
[t] fake scans build: USER = 5549.69 s, SYSTEM = 104.90 s, REAL = 1568804290.70 s
[t] automatic data capture: USER = 211.87 s, SYSTEM = 54.26 s, REAL = 1568804443.98 s
[t] scoring: USER = 3.91 s, SYSTEM = 0.41 s, REAL = 1568804451.68 s
[i] 2 × Intel(R) Core(TM) i7-4650U CPU @ 1.70GHz
[i] memory: 2041096 kB

Kali Linux en boot direct

[t] subject and layout: USER = 16.63 s, SYSTEM = 0.28 s, REAL = 15.80 s
[t] scoring strategy: USER = 7.19 s, SYSTEM = 0.11 s, REAL = 6.65 s
[t] fake scans build: USER = 9345.04 s, SYSTEM = 26.84 s, REAL = 2475.84 s
[t] automatic data capture: USER = 409.18 s, SYSTEM = 33.70 s, REAL = 119.67 s
[t] scoring: USER = 2.74 s, SYSTEM = 0.04 s, REAL = 3.15 s
[i] 4 × Intel(R) Core(TM) i7-4650U CPU @ 1.70GHz
[i] memory: 8109288 kB

En tout cas, je suis assez rassuré sur le gain de performance que j'obtiendrai avec une machine récente, dédiée et optimisée. Je ne manquerai pas de donner mes impressions dès que tout est en place (sans doute le mois prochain).

Encore un grand MERCI, j'y vois beaucoup plus clair maintenant. :-)

P. S. : Le speed test existait déjà ou vous l'avez codé pour l'occasion ? Dans tous les cas je salue la performance.

RE: Question de performance - Added by Alexis Bienvenüe over 4 years ago

Le problème c'est le temps réel qui est erroné dans votre machine virtuelle : je ne sais pas pourquoi… Si vous voyez un moyen plus fiable que Time::HiRes::gettimeofday en perl pour faire des mesures du temps écoulé, je suis preneur.
C'est dommage car il est quand même assez important. Le temps USER/SYSTEM est un temps cumulé sur tous les cœurs, et donc n'est pas très représentatif du temps que vous allez réellement attendre.
On voit aussi ça dans la différence entre avec et sans SSD sur mon fixe : le temps USER/SYSTEM et le temps REAL ne se comparent pas dans le même sens ! J'avoue que je ne comprends pas trop comment ça marche.

P. S. : Le speed test existait déjà ou vous l'avez codé pour l'occasion ?

L'infrastructure de test existait, j'ai juste dû rajouter le calcul du temps passé et la fabrication de scans factices.

RE: Question de performance - Added by Gregory F over 4 years ago

Malheureusement mes connaissances en Perl sont tout bonnement inexistante :-(

Mais ce petit bug ne me gène pas trop. Il ne se produit bizarrement que sur les VMs qui tournes sous MacOS (toutes mes VMs sont sous VirtualBox).

Le moment venu je ferai des tests avec un vrai sujet pour comparer les configurations, ça peut servir de base pour d'autres personnes.

(1-8/8)