IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Avis sur une implémentation d'un "pool" de std::future


Sujet :

C++

  1. #1
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2010
    Messages
    517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2010
    Messages : 517
    Points : 718
    Points
    718
    Par défaut Avis sur une implémentation d'un "pool" de std::future
    Bonjour tout le monde,

    Pour m'entrainer à utiliser les std::future, les variadic templates et les std::function, j'ai implémenté un "pool" de std::future qui lance des fonctions sur un nombre de thread limité (défini par l'utilisateur).
    Le but de cette implémentation est de paralléliser du code en très peu de lignes. Je sais qu'OpenMP permet de faire ceci mais ce dernier n'est pas disponible sur tous les compilateurs... (clang par exemple).

    J'ai mis ce code sur GitHub (ici).

    Pour le moment, je stocke l'ensemble des fonctions dans la pile (un vecteur de std::function). Je me posais la question s'il ne serait pas plus raisonnable de les stocker dans le tas si nous avons une énorme quantité de fonctions?

    De plus, si vous avez des remarques, critiques ou avis sur le code, n'hésitez pas à m'en faire part.

    Merci pour tout!

  2. #2
    Membre chevronné Avatar de Ehonn
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    788
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 788
    Points : 2 160
    Points
    2 160
    Par défaut
    Citation Envoyé par darkman19320 Voir le message
    Je sais qu'OpenMP permet de faire ceci mais ce dernier n'est pas disponible sur tous les compilateurs... (clang par exemple).
    Ça va venir / vient :
    http://llvm.org/releases/3.5.0/tools...easeNotes.html

    Citation Envoyé par darkman19320 Voir le message
    Pour le moment, je stocke l'ensemble des fonctions dans la pile (un vecteur de std::function). Je me posais la question s'il ne serait pas plus raisonnable de les stocker dans le tas si nous avons une énorme quantité de fonctions?
    std::vector alloue sur le tas, std::array sur la pile.

    Pour le reste, j'ai pas encore regardé le code.

  3. #3
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2010
    Messages
    517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2010
    Messages : 517
    Points : 718
    Points
    718
    Par défaut
    Super, merci pour cette précision concernant les std::vector / array.

    Pour ce qui est de clang et OpenMP, c'est une très bonne nouvelle mais malheureusement pas encore utilisable sur Mac. Un jour peut-être ^^

Discussions similaires

  1. Avis sur une implémentation rapide de WeakIdentityMap
    Par Logan Mauzaize dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 02/05/2011, 13h56
  2. Votre avis sur une proposition de job
    Par plex dans le forum Emploi
    Réponses: 7
    Dernier message: 18/01/2007, 10h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo