Bonjour,
Je suis élève ingénieur actuellement en stage et dans le cadre de mon projet je dois traiter de larges quantités de données.
Mon maitre de stage m'a tout de suite conseillé de travailler avec des MEX pour gagner en temps de calcul mais après deux semaines d'optimisations, j'en suis à effectuer un traitement de 5h sur un fichier de données d'une minute alors que je dois pouvoir traiter 50 minutes d'un coup en un temps raisonnable pour pouvoir avancer dans mon travail.
J'ai essayé d'avoir une gestion intelligente de la mémoire et ait essayé d’appeler des fonctions optimisées comme le quicksort dans mes algorithmes mais je commence à avoir du mal à gagner en temps de calcul.
Cela étant dit, je dispose d'un dual core, d'un GPU et de 32go de RAM.
N'utilisant que 12% du CPU en moyenne lors de mon traitement, je pense pouvoir gagner en temps de calcul en parallélisant mes algorithmes mais cela voudrait dire que je dois repenser mes algorithmes qui ne sont pour l'instant pas vraiment intéressants à paralléliser. D'autant que je ne sais pas vraiment vers quelles librairies me tourner, n'ayant jamais fait l'exercice.
Il me reste également la possibilité d'utiliser le GPU, mais je crois savoir que c'est encore plus délicat que le multithreads avec les MEX...
Qu'en pensez-vous ?
Merci par avance,
Pastek
Partager