dimanche 15 mars 2015

Hyper-threading et disque SSD

Après plus de 6 années de bons et loyaux services, j'ai décidé de changer ma machine de développement. Il faut dire que l'ancienne (Intel Core 2 Quad Q9400 2,66 Ghz tournant sous Windows 7 64 bits) commençait à émettre des bruits inquiétants. Les ventilateurs soufflaient au maximum quasiment en permanence. J'étais obligé de mettre de la musique pour couvrir les borborygmes de la bête et pouvoir travailler en toute quiétude.

Bon, le choix de la nouvelle machine était une autre affaire. J'ai passé l'âge de la course à la puissance - qui est forcément vaine de toute manière, vu l'évolution fulgurante de l'informatique. J'étais néanmoins sensible à deux aspects que je ne pouvais pas évaluer auparavant : est-ce que la technologie hyper-threading  est efficace dans la programmation multithread des algorithmes de data mining ? Est-ce qu'utiliser des fichiers temporaires pour soulager l'occupation mémoire prend une autre tournure lorsqu'on s'appuie sur un disque SSD.

La nouvelle bête est ainsi équipée d'un processeur Core I7 4770S cadencé à 3,1 Ghz (4 cœurs physiques mais 8 threads logiques avec la technologie hyper-threading) et d'un disque système SSD. Ce n'est pas la gloire mais ça me permet d'évaluer les deux thèmes ci-dessus en reprenant les calculs décrits dans d'anciens tutoriels que j'avais mis en ligne il y a un certain temps déjà : "Multithreading équilibré pour la discriminante" (juin 2013), où il est question d'une implémentation multithread, le nombre de threads est paramétrable, de l'analyse discriminante ; "Sipina - Traitement des très grands fichiers" (octobre 2009), où je présentais une solution qui consistait à copier les données organisées en colonnes sur disque (bien avant l'heure - la solution date de 1998, du temps où disposer de 64 Mo de RAM était éminent - une version très fruste des bases de données orientées colonnes), tous les accès lors de la construction des arbres se fait sur disque, un système de cache vient accélérer la lecture.

Nous reproduisons dans ce tutoriel les deux études précitées utilisant le logiciel SIPINA. Notre objectif est d'évaluer le comportement de ces solutions (implémentation multithread, copie des données sur disque pour alléger l'occupation mémoire) sur notre nouvelle machine qui, de par ses caractéristiques, devrait en tirer expressément avantage.

Mots-clés :  hyper-threading, disque ssd, solid-state drive, multithread, multithreading, traitement des très grands fichiers, core i7, sipina, arbres de décision, analyse discriminante linéaire
Didacticiel : fr_Tanagra_Hyperthreading.pdf
Références :
Tutoriel Tanagra, "Multithreading équilibré pour la discriminante", juin 2013.
Tutoriel Tanagra, "Multithreading pour les arbres de décision", novembre 2010.
Tutoriel Tanagra, "Sipina - Traitement des très grands fichiers", octobre 2009.