Bêtement, je pensais qu'il y avait plus de subtilité...
Version imprimable
Bêtement, je pensais qu'il y avait plus de subtilité...
Et il y en a. En fonction du nombre de coeurs disponibles, des autres programmes qui tournent... le code sera parallélisé ou pas. Et s'il est parralélisé, ce sera d'une manière qui ne crée pas de thread système, ces derniers étant lourds à créer.
Donc il y a un différence entre les threads tels que les créé une application et ceux résultant d'une parallélisation. Peut-on dire que faire du multithread pour faire de la parallélisation est une erreur de conception (même si sur une plateforme multicoeur on peut espérer un gain de performance) ?
Généralement, c'est parallélisé d'une manière à ne pas créer de nouveaux threads pendant le déroulement du programme: Tous les threads OpenMP sont créés à l'initialisation (généralement, autant de threads que de CPU vus par l'OS) et restent chacun sur son CPU.
C'est possible. Pour l'affinité, c'était une supposition (qui me paraissait logique)
Le vocabulaire utilisé pendant la conférence était "task" pour un morceau de travail sérialisé qu'on exécutera en parallèle avec d'autres tasks, et "thread" pour l'objet du système gérant ce parallélisme. Disons que manipuler directement des threads systèmes pour implémenter des tâches n'est pas optimal. Une couche d'abstraction entre les deux permet de pas mal optimiser.
Au final, des threads classiques seront utilisés, mais il n'y a pas bijection entre threads et tasks. A ce que j'ai compris, à chaque instant un thread travaille sur une tâche, et possède une liste de tâche en attente (et si cette liste est vide, il va en piquer dans la liste des tâches en attente du thread voisin).
Oui. Même si en arrivant sur place, avec la vieille ville, la forteresse planant dessus du haut de son rocher, la montagne encore enneigée juste derrière, et le grand beau temps, il s'en est fallu de peu que je déchire mon billet retour ;)
Pour un compte rendu plus technique, je vais essayer d'y bosser un peu ce week-end. :sm:
:aie:
Content que ça t'ait plu !
On se languit du feedback ;)
En effet, chers visiteurs, Loïc y était et va donc nous rédiger un petit compte rendu. Ce sera d'autant plus intéressant qu'Intel commence à être au centre des technologies de parallélisme en C++ (et Fortran si j'ai bien compris).
Absolument c'est indiqué dans la FAQ de TBB
Citation:
Intel TBB facilitates scalable performance in a way that works across a variety of machines for today, and readies programs for tomorrow. It detects the number of cores on the hardware platform and makes the necessary adjustments as more cores are added to allow software to adapt. Thus, more effectively taking advantage of multi-core hardware.