Giter Club home page Giter Club logo

people-fsp's People

Contributors

gregorymerlet avatar jamatofu avatar tcqpad avatar

Watchers

 avatar  avatar

people-fsp's Issues

Parser une carte

On veut générer un environnement pour la simulation en parsant le fichier d'une carte enregistrée #3 .

On doit pouvoir générer les personnes aux bonnes coordonnées et de même pour les obstacles.

Avoir des mesures significatives

Afin d'avoir des mesures plus précises, et représentatives de l'exécution du programme, lorsque l'option -m est fournie en paramètre d'exécution #4, l'application est lancée 5 fois, et la mesure finale est la moyenne des 3 valeurs intermédiaires.

Pour que les mesures soient cohérentes, la simulation lancée 5 fois doit être identique à chaque nouveau lancement. Pour cela, la tâche #3 doit être complétée avant de réaliser celle-ci #7.

Synchroniser le démarrage des 2^p threads

Afin de garantir que tous les threads tournent en même temps lors de la simulation des 2 scénarios #1, une Barrière devrait être mise en place pour que tous les threads attendent leurs collègues le temps que l'appel à start() soit fait pour chacuns d'eux, puis qu'ils puissent démarrer la simulation à l'exact même moment.

Exit of map is not recognized anymore

People are hanging up on exit and threads are running indefintely due to the exit of the map not recognized anymore, j.e., the method of the map: isAtExit().

Sauvegarder les mesures d'une exécution donnée

Afin de pouvoir calculer la moyenne de la consommation CPU et du temps de response demandé en #7, il est nécessaire de sauvegarder les résultats dans un fichier à chaque fin d'exécution (afin de libérer de la mémoire RAM).

La sauvegarde sera au format JSON avec un JSONArray de la forme :

[
  {
    "run_0": {
      "cpu_usage": "[0.0, 17.6, 19.3, 30.6, 22.8, 35.6, 28.0, 21.4, 26.5, 12.7, 26.5]",
      "res_time": 1.13100004196167
    }
  }
.....
]

Gérer les interfaces entre les 4 zones de la carte

Avec les threads de #6 , on doit pouvoir gérer le déplacement des personnes d'une zone à une autre (entre autre).

Problème : nous avons une zone critique à l'interface de chaque zones

Pour cela, on va mettre un verrou sur chaque case aux frontières de ces zones

[BUG] Chargement des gens

Après avoir parser le fichier map.txt, les Persons sont mal chargés. Ca provoque une sorte de NullPointerException

#5

Optimiser le verrouillage de la ressource partagée de l'algorithme

Afin d'écrire un algorithme efficace et parallèle, le verrouillage de la map ne doit pas être fait à gros grain comme c'est le cas à l'heure actuelle.

Au contraire, il serait plus rapide de donner un verrou par case de la carte, et de réaliser la synchronisation des threads à grain fin, pour chaque case de la map.

Ceci permettrait de réduire le goulot d'étranglement dû à la synchronisation, et d'accélérer considérablement la vitesse d'exécution du programme.

Cette tâche est associée à la tâche de refactor #9, puisqu'elle permet une amélioration de la vitesse d'exécution du programme.

Partager la carte en quatre

Pour le scénario 2, on veut partager la carte en 4 parts équitables et attribuer cette portion de carte à un Thread.

Charger la map du scénario 2

Afin de relancer 5 fois une simulation identique pour le scénario 2, il est nécessaire de pouvoir charger la carte sauvegardée lors de la première des 5 simulations.

Mesurer la consommation CPU

Une option de lancement -m doit être ajoutée aux options de lancement du programme, afin de lancer la fonctionnalité "mesurer la consommation CPU".

De plus, notre programme doit, pendant la simulation, pouvoir récupérer la consommation du CPU de l'utilisateur, et renvoyer cet ensemble de données une fois la simulation finie.

People shouldn't spawn in an obstacle

There's a bug where people are spawning on an obstacle. This may lead to the bug in #11 and makes the algorithm run forever since people in an obstacle are unable to move.

Sauvegarder une carte générée

Lorsqu'on génère une carte, on ne peut l'utiliser que pour une seule simulation. On ne peut donc pas comparer les deux scénarios dans le même environnement.

On doit pouvoir enregistrer une carte avec ce format :

  • "#" => bordure, obstacle
  • " " => espace vide
  • "X" => une personne
  • "O" => la sortie

Sauvegarder la map du scénario 2

Afin de relancer 5 fois une simulation identique pour le scénario 2, il est nécessaire de pouvoir sauvegarder la carte générée à la première des 5 simulations.

Verification of person in map Tile is bugged

There's a bug after the refactor in #10 making the hasPerson(person) function in the Tile class returning false even if the current Tile has a person on it.

This bug makes the algorithm hang up and run indefinetely whenever it occurs. I think it's happening when people are spawning in an obstacle.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.