Projet SPD Master 1 Université d'Artois 2018-2019
Loquicom be02a2d462 Ajout archive de rendu | 5 vuotta sitten | |
---|---|---|
Partie_1 | 5 vuotta sitten | |
Partie_2 | 5 vuotta sitten | |
benchmarks | 5 vuotta sitten | |
.gitignore | 5 vuotta sitten | |
BRANDAO_ARTHUR_BACQUET_MAXENCE.tar.gz | 5 vuotta sitten | |
PROJET SPD 2019.pdf | 5 vuotta sitten | |
PROJETSPD2019.zip | 5 vuotta sitten | |
ReadMe.md | 5 vuotta sitten |
Arthur Brandao & Maxence Bacquet
Le projet est divisé en deux dossiers, un pour chaque partie, nommés Partie_1 et Partie_2. Le dossier Partie_1 comporte 3 sous-dossiers, et le dossier Partie_2 comporte 2 sous-dossiers. Chaque sous-dossier correspond à un programme avec son makefile pour la compilation et un ReadMe.txt pour rappeler ses commandes et son utilisation (qui est aussi décrite plus bas dans ce document). Le dossier benchmark à la racine du projet contient les fichiers cnf utilisés pour l'exécution des programmes.
Chaque programme possèdent sont makefile. Ces makefile ont 3 fonctionnalités communes :
make
pour compiler le programme. L'exécutable généré se nommera toujours GSATSolver.make clean
pour supprimer le fichier exécutable et les .omake run
pour lancer le programmeCertains makefile ont des commandes supplémentaires pour lancer le programme avec des options différentes. Le fichier ReadMe.txt de chaque programme indique l'utilité du programme, les commandes du fichier makefile, ainsi que la commande pour lancer le programme depuis le terminal avec les différents arguments possibles (de plus tous les programmes affichent leur liste d'arguments en cas de mauvaise utilisation).
Les 3 sous-dossiers correspondent aux 3 versions (Multi threads, MPI, Hybride) du solveur SAT à réaliser pour cette partie.
C'est le programme qui implémente un solveur SAT en multi threads. Il ne possède pas de commande spécifique dans le makefile. Le programme s'utilise avec la commande suivante :
./GSATSolver -i file.cnf [-t int] [-s] [-m int]
Les arguments sont les suivants :
Exemple de commande (celle exécutée par make run
) :
./GSATSolver -i ../../benchmarks/uf150/uf150-099.cnf -t 4
C'est le programme qui implémente un solveur SAT en utilisant MPI. Il ne possède pas de commande spécifique dans le makefile. Le programme s'utilise avec la commande suivante :
mpirun -n int ./GSATSolver -i file.cnf
Les arguments sont les suivants :
Exemple de commande (celle exécutée par make run
) :
mpirun -n 4 ./GSATSolver -i ../../benchmarks/uf150/uf150-099.cnf
C'est le programme qui implémente un solveur SAT utilsant MPI et du multi threads. Il ne possède pas de commande spécifique dans le makefile. Le programme s'utilise avec la commande suivante :
mpirun -n int ./GSATSolver -i file.cnf [-t int]
Les arguments sont les suivants :
Exemple de commande (celle exécutée par make run
) :
mpirun -n 3 ./GSATSolver -i ../../benchmarks/uf150/uf150-099.cnf -t 2
Le 1er sous-dossier (Moyenne) utilise une moyenne classique pour le choix du fill et de l'heuristique et le 2nd sous-dossier (EMA) utilise lui une moyenne exponentielle glissante.
Le programme implémente le principe des bandits manchots avec une moyenne classique, et en utilisant ou non un epsilon greedy. Le programme possède une commande spécifique dans son makefile :
make epsilon
pour lancer le programme avec un epsilon greedy à 0.2Le programme se lance avec la commande suivante :
./GSATSolver -i file.cnf [-t int] [-s] [-e double]
Les arguments sont les suivants :
Exemple de commande (celle exécutée par make epsilon
) :
./GSATSolver -i ../../benchmarks/uf150/uf150-099.cnf -t 4 -e 0.2
Le programme implémente le principe des bandits manchots avec une moyenne exponentielle glissante, et en utilisant ou non un epsilon greedy. Par défaut le programme se lance avec un alpha statique (dont la valeur est 0.5). Le programme possède plusieurs commandes spécifiques dans son makefile :
make epsilon
pour lancer le programme avec un epsilon greedy à 0.2make dynamic
pour lancer le programme avec un alpha dynamique sans epsilon greedymake start
pour lancer le programme avec un alpha dynamique avec epsilon greedy à 0.2Le programme se lance avec la commande suivante :
./GSATSolver -i file.cnf [-t int] [-s] [-e double] [-d]
Les arguments sont les suivants :
Exemple de commande (celle éxécutée par make start
) :
./GSATSolver -i ../../benchmarks/uf150/uf150-099.cnf -t 4 -d -e 0.2