Ce projet implémente et compare une version mono-threadée et une version multi-threadée d'un calcul de la Transformée de Fourier Discrète (DFT) pour une fréquence donnée, dans le cadre d'un exercice de programmation concurrente.
L'objectif est de calculer la somme suivante sur un très grand nombre d'échantillons N:
- Wihler Ruben
- Email: wihlerruben@gmail.com
- École: HEPIA
Ce projet utilise un Makefile pour simplifier la compilation.
-
Compiler en mode
debug(avec les symboles de débogage) :make debug
-
Compiler en mode
release(optimisé) :make release
-
Afficher l'aide (voir les cibles disponibles) :
make help -
Nettoyer les fichiers compilés :
make clean
Le programme principal app prend trois arguments obligatoires :
sample_count(N) : Le nombre total d'échantillons du signal.frequency(n) : La fréquence normalisée à analyser.thread_count(M) : Le nombre de threads à utiliser pour la version multi-threadée.
Pour lancer une comparaison entre les versions mono et multi avec 100 millions d'échantillons, une fréquence de 0.2, et 20 threads (conformément à l'énoncé) :
# Recompiler et exécuter
make clean && make release && ./bin/release/app 100000000 0.2 20Selon l'énoncé, le résultat attendu pour ces paramètres est (-7941.871, 1348.829).
MONO: Result: (-7941.871, 1348.829) in X.XXX sec
MULTI: Result: (-7941.871, 1348.829) in Y.YYY sec with 20 threads