Question

Noter: Il s'agit d'une republication car la question a été considérée comme non adaptée au forum de débordement de pile et aurait dû être publié ici. Le sujet original est .

J'aimerais parler de multithreading, de parallélisme et des bibliothèques disponibles aujourd'hui pour réaliser ce travail. Je me demande particulièrement si une bibliothèque facile à utiliser pour réaliser ce concept (donné ci-dessous) existe déjà, ou s'il devrait être écrit, et à quel point ce serait difficile.

Les objectifs de la bibliothèque Je recherche:

  • Accessible à la plupart des développeurs, non seulement aux ingénieurs ou aux personnes très graduées (cela devrait signifier que les développeurs veulent l'utiliser, sans avoir peur)
  • Disponible pour les développeurs C ++
  • Portable (commencez avec Windows, Mac OS X et Linux, puis s'étendez aux appareils mobiles)
  • poids léger
  • Facile à utiliser (lié à l'accessibilité)

Les caractéristiques les plus importantes Je recherche:

  • parallélisme de la tâche
  • Annulation de la tâche (d'une manière douce et brutale)
  • dépendances des tâches

Les bibliothèques liées existantes:

  • Blocs de construction : Vraiment compliqué à utiliser et plutôt restrictif (GPL / commercial), c'est la seule bibliothèque que j'ai trouvée et cela inclut toutes les fonctionnalités que je recherche
  • Grand Central Dispatch : Actuellement pas portable, pas trop compliqué, aucune annulation de tâche (une fois démarrée), pas de dépendances de tâche, pas de support de dépendance automatique (uniquement manuel)
  • Pfunc : Unix seulement, toujours un peu compliqué, aucune dépendance à la tâche, sans annulation de tâche
  • Bibliothèque parallèle de la tâche Microsoft : Plate-forme MS et .NET uniquement, pas d'annulation dure, des dépendances de tâches restreintes et manuelles (une tâche ne peut pas se réveiller plus d'une autre tâche)
  • Opencl : Pas actuellement disponible sur toutes les plateformes, pas beaucoup plus qu'une bibliothèque de tâches parallèles GPU (pas aussi haut que je le souhaiterais)
  • Openmp : largement pris en charge, sauf versions gratuites de Visual Studio, sans annulation de tâche ni dépendances de tâches automatiques

Alors, que pensez-vous de tout cela? Pourquoi pensez-vous qu'il y a si peu de bibliothèques correspondant à ces besoins? Ou ai-je manqué une grande bibliothèque? Et pensez-vous que cela signifierait trop de travail pour en réaliser un? Ou pas assez intéressant? Notez que les manques que j'ai écrits sont ceux que j'ai découverts avec quelques recherches, je ne suis un expert dans aucune de ces bibliothèques.

Le but final de cette bibliothèque, même s'il s'agit plutôt d'un rêve, serait de programmer de manière parallélisée aussi facilement que vous le faites habituellement avec la programmation séquentielle.

Ceylo

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
scroll top