Bonjour tout le monde !
Je vais la jouer succinte aujourd'hui, ca permettra de laisser le sujet libre a toute discussion.
Contexte (simplifié) :
J'ai quatre fichiers, 4 coeurs (donc 4 threads disponibles).
Objectif : Lire le plus vite possible les 4 fichiers.
Solution 1 :
Chaque core s'occupe d'un fichier.
Premiere conclusion et question ouverte : Mouais 4 threads ok mais il n'y a toujours qu'un seul disque dur alors ça doit revenir à la même chose que lire les fichiers un à un avec un seul core.... Est-ce que ça revient à la même chose ?
Situation 2 :
On complexifie un peu la situation. On suppose que les 4 fichiers peuvent être sur plusieurs disques durs en fait.
Solution 2 :
On regarde la racine des filepath et on attribue à chaque thread un disque dur et non un fichier.
Exemple:
2 fichiers sur C:, 1 fichier sur E et un sur G:
Thread 1 va lire F1, puis F2
Pendant que Thread 2 va lire F3
Pendant que Thread 3 va lire F4
Pendant que Thread 4 se la touche.
Conclusion finale et question ouverte : On devrait gagner du temps. Correct ?
Merci pour votre enthousiasme
Partager