Quelqu'un a-t-il utilisé la librairie TBB (Threading Building Blocks)
pour la programmation des multicoeurs et si oui, qu'en pense-t-il ?
Quelqu'un a-t-il utilisé la librairie TBB (Threading Building Blocks)
pour la programmation des multicoeurs et si oui, qu'en pense-t-il ?
Quelqu'un a-t-il utilisé la librairie TBB (Threading Building Blocks)
pour la programmation des multicoeurs et si oui, qu'en pense-t-il ?
Je pense que un bon début est de regarder OPENMP. Une approche plus
simple pour rendre des portions de code parallèle (A moindres cout).
En plus d'un simple pragma tu peux désactiver touy ton code
multithread et vérifier la fiabilité de ton code en le lancant sur 1
thread.
Sinon pour TBB jette un oeil la dessus :http://llpanorama.wordpress.co m/tbb-tutorial/
On 13 juin, 12:01, Wykaaa wrote:
> Quelqu'un a-t-il utilisé la librairie TBB (Threading Building Blocks)
> pour la programmation des multicoeurs et si oui, qu'en pense-t-il ?
Je pense que un bon début est de regarder OPENMP. Une approche plus
simple pour rendre des portions de code parallèle (A moindres cout).
En plus d'un simple pragma tu peux désactiver touy ton code
multithread et vérifier la fiabilité de ton code en le lancant sur 1
thread.
Sinon pour TBB jette un oeil la dessus :http://llpanorama.wordpress.co m/tbb-tutorial/
On 13 juin, 12:01, Wykaaa <wyk...@yahoo.fr> wrote:
> Quelqu'un a-t-il utilisé la librairie TBB (Threading Building Blocks)
> pour la programmation des multicoeurs et si oui, qu'en pense-t-il ?
Je pense que un bon début est de regarder OPENMP. Une approche plus
simple pour rendre des portions de code parallèle (A moindres cout).
En plus d'un simple pragma tu peux désactiver touy ton code
multithread et vérifier la fiabilité de ton code en le lancant sur 1
thread.
Sinon pour TBB jette un oeil la dessus :http://llpanorama.wordpress.co m/tbb-tutorial/
On 13 juin, 12:01, Wykaaa wrote:
> Quelqu'un a-t-il utilisé la librairie TBB (Threading Building Blocks)
> pour la programmation des multicoeurs et si oui, qu'en pense-t-il ?
Ça ne semble pas permettre de manipuler des thread en fait.
Ça ne semble pas permettre de manipuler des thread en fait.
Ça ne semble pas permettre de manipuler des thread en fait.
En cherchant de la doc dédiée à openmp sur wikipedia, j'y ait lu ça :
"Traditionally, programmers have used architecture-specific methods to
effectively program tightly-parallelized computers â high band-wi dth
clusters, SMP machines, or multi-core processors. Parallel programming
has thus been a time-consuming and arcane task.
OpenMP offers a simple way of exploiting parallelism without
interfering with algorithm design; an OpenMP program compiles and
operates correctly in both parallel and serial execution environments.
Using OpenMP's directive-based parallelism also simplifies the act of
converting existing serial code to efficient parallel code."
J'ai du mal à comprendre. Quelqu'un pourrait-il m'expliquer ? à a ne
semble pas permettre de manipuler des thread en fait. Enfin j'ai du
mal à comprendre comment on peut ne pas tenir compte des traitements
parallèle dans l'algorithme.
En cherchant de la doc dédiée à openmp sur wikipedia, j'y ait lu ça :
"Traditionally, programmers have used architecture-specific methods to
effectively program tightly-parallelized computers â high band-wi dth
clusters, SMP machines, or multi-core processors. Parallel programming
has thus been a time-consuming and arcane task.
OpenMP offers a simple way of exploiting parallelism without
interfering with algorithm design; an OpenMP program compiles and
operates correctly in both parallel and serial execution environments.
Using OpenMP's directive-based parallelism also simplifies the act of
converting existing serial code to efficient parallel code."
J'ai du mal à comprendre. Quelqu'un pourrait-il m'expliquer ? à a ne
semble pas permettre de manipuler des thread en fait. Enfin j'ai du
mal à comprendre comment on peut ne pas tenir compte des traitements
parallèle dans l'algorithme.
En cherchant de la doc dédiée à openmp sur wikipedia, j'y ait lu ça :
"Traditionally, programmers have used architecture-specific methods to
effectively program tightly-parallelized computers â high band-wi dth
clusters, SMP machines, or multi-core processors. Parallel programming
has thus been a time-consuming and arcane task.
OpenMP offers a simple way of exploiting parallelism without
interfering with algorithm design; an OpenMP program compiles and
operates correctly in both parallel and serial execution environments.
Using OpenMP's directive-based parallelism also simplifies the act of
converting existing serial code to efficient parallel code."
J'ai du mal à comprendre. Quelqu'un pourrait-il m'expliquer ? à a ne
semble pas permettre de manipuler des thread en fait. Enfin j'ai du
mal à comprendre comment on peut ne pas tenir compte des traitements
parallèle dans l'algorithme.
VenerZen writes:
> En cherchant de la doc dédiée à openmp sur wikipedia, j'y ait lu ça :
> "Traditionally, programmers have used architecture-specific methods to
> effectively program tightly-parallelized computers high band-width
> clusters, SMP machines, or multi-core processors. Parallel programming
> has thus been a time-consuming and arcane task.
> OpenMP offers a simple way of exploiting parallelism without
> interfering with algorithm design; an OpenMP program compiles and
> operates correctly in both parallel and serial execution environments.
> Using OpenMP's directive-based parallelism also simplifies the act of
> converting existing serial code to efficient parallel code."
> J'ai du mal à comprendre. Quelqu'un pourrait-il m'expliquer ? Ça ne
> semble pas permettre de manipuler des thread en fait. Enfin j'ai du
> mal à comprendre comment on peut ne pas tenir compte des traitements
> parallèle dans l'algorithme.
OpenMP masque la gestion des threads dans des cas courants, en gros 1)
dans le cas des boucles où les itérations peuvent s'exécuter en
parallèle, et 2) dans le cas des sections parallèles. C'est au
compilateur de placer le code pour créer les threads, pour définir le s
données locales et celles qui sont partagées, et pour assurer la
synchronisation. Ce qui est en général compliqué et/ou fastidieux, et
non portable.
Quant à savoir si les versions séquentielle et parallèle de ton alg o
donnent le même résultat, c'est à toi d'en décider (c'est-à-dir e de le
démontrer, sinon ta version parallèle n'est pas correcte). En tout ca s,
OpenMP ne t'empêchera pas de paralléliser n'importe quoi.
Pour Threading Building Blocks, c'est la même chose, mais d'un peu plus
haut niveau (pour faire court). Et c'est C++ only.
C'était ça ta question ?
-- Alain.
VenerZen <vener...@gmail.com> writes:
> En cherchant de la doc dédiée à openmp sur wikipedia, j'y ait lu ça :
> "Traditionally, programmers have used architecture-specific methods to
> effectively program tightly-parallelized computers high band-width
> clusters, SMP machines, or multi-core processors. Parallel programming
> has thus been a time-consuming and arcane task.
> OpenMP offers a simple way of exploiting parallelism without
> interfering with algorithm design; an OpenMP program compiles and
> operates correctly in both parallel and serial execution environments.
> Using OpenMP's directive-based parallelism also simplifies the act of
> converting existing serial code to efficient parallel code."
> J'ai du mal à comprendre. Quelqu'un pourrait-il m'expliquer ? Ça ne
> semble pas permettre de manipuler des thread en fait. Enfin j'ai du
> mal à comprendre comment on peut ne pas tenir compte des traitements
> parallèle dans l'algorithme.
OpenMP masque la gestion des threads dans des cas courants, en gros 1)
dans le cas des boucles où les itérations peuvent s'exécuter en
parallèle, et 2) dans le cas des sections parallèles. C'est au
compilateur de placer le code pour créer les threads, pour définir le s
données locales et celles qui sont partagées, et pour assurer la
synchronisation. Ce qui est en général compliqué et/ou fastidieux, et
non portable.
Quant à savoir si les versions séquentielle et parallèle de ton alg o
donnent le même résultat, c'est à toi d'en décider (c'est-à-dir e de le
démontrer, sinon ta version parallèle n'est pas correcte). En tout ca s,
OpenMP ne t'empêchera pas de paralléliser n'importe quoi.
Pour Threading Building Blocks, c'est la même chose, mais d'un peu plus
haut niveau (pour faire court). Et c'est C++ only.
C'était ça ta question ?
-- Alain.
VenerZen writes:
> En cherchant de la doc dédiée à openmp sur wikipedia, j'y ait lu ça :
> "Traditionally, programmers have used architecture-specific methods to
> effectively program tightly-parallelized computers high band-width
> clusters, SMP machines, or multi-core processors. Parallel programming
> has thus been a time-consuming and arcane task.
> OpenMP offers a simple way of exploiting parallelism without
> interfering with algorithm design; an OpenMP program compiles and
> operates correctly in both parallel and serial execution environments.
> Using OpenMP's directive-based parallelism also simplifies the act of
> converting existing serial code to efficient parallel code."
> J'ai du mal à comprendre. Quelqu'un pourrait-il m'expliquer ? Ça ne
> semble pas permettre de manipuler des thread en fait. Enfin j'ai du
> mal à comprendre comment on peut ne pas tenir compte des traitements
> parallèle dans l'algorithme.
OpenMP masque la gestion des threads dans des cas courants, en gros 1)
dans le cas des boucles où les itérations peuvent s'exécuter en
parallèle, et 2) dans le cas des sections parallèles. C'est au
compilateur de placer le code pour créer les threads, pour définir le s
données locales et celles qui sont partagées, et pour assurer la
synchronisation. Ce qui est en général compliqué et/ou fastidieux, et
non portable.
Quant à savoir si les versions séquentielle et parallèle de ton alg o
donnent le même résultat, c'est à toi d'en décider (c'est-à-dir e de le
démontrer, sinon ta version parallèle n'est pas correcte). En tout ca s,
OpenMP ne t'empêchera pas de paralléliser n'importe quoi.
Pour Threading Building Blocks, c'est la même chose, mais d'un peu plus
haut niveau (pour faire court). Et c'est C++ only.
C'était ça ta question ?
-- Alain.
Je pense que un bon début est de regarder OPENMP. Une approche plus
simple pour rendre des portions de code parallèle (A moindres cout).
En plus d'un simple pragma tu peux désactiver touy ton code
multithread et vérifier la fiabilité de ton code en le lancant sur 1
thread.
Sinon pour TBB jette un oeil la dessus : http://llpanorama.wordpress.com/tbb-tutorial/
On 13 juin, 12:01, Wykaaa wrote:Quelqu'un a-t-il utilisé la librairie TBB (Threading Building Blocks)
pour la programmation des multicoeurs et si oui, qu'en pense-t-il ?
Je pense que un bon début est de regarder OPENMP. Une approche plus
simple pour rendre des portions de code parallèle (A moindres cout).
En plus d'un simple pragma tu peux désactiver touy ton code
multithread et vérifier la fiabilité de ton code en le lancant sur 1
thread.
Sinon pour TBB jette un oeil la dessus : http://llpanorama.wordpress.com/tbb-tutorial/
On 13 juin, 12:01, Wykaaa <wyk...@yahoo.fr> wrote:
Quelqu'un a-t-il utilisé la librairie TBB (Threading Building Blocks)
pour la programmation des multicoeurs et si oui, qu'en pense-t-il ?
Je pense que un bon début est de regarder OPENMP. Une approche plus
simple pour rendre des portions de code parallèle (A moindres cout).
En plus d'un simple pragma tu peux désactiver touy ton code
multithread et vérifier la fiabilité de ton code en le lancant sur 1
thread.
Sinon pour TBB jette un oeil la dessus : http://llpanorama.wordpress.com/tbb-tutorial/
On 13 juin, 12:01, Wykaaa wrote:Quelqu'un a-t-il utilisé la librairie TBB (Threading Building Blocks)
pour la programmation des multicoeurs et si oui, qu'en pense-t-il ?
TheFrenchLeaf a écrit :
> Je pense que un bon début est de regarder OPENMP. Une approche plus
> simple pour rendre des portions de code parallèle (A moindres cout).
> En plus d'un simple pragma tu peux désactiver touy ton code
> multithread et vérifier la fiabilité de ton code en le lancant sur 1
> thread.
> Sinon pour TBB jette un oeil la dessus :http://llpanorama.wordpress. com/tbb-tutorial/
> On 13 juin, 12:01, Wykaaa wrote:
>> Quelqu'un a-t-il utilisé la librairie TBB (Threading Building Blocks )
>> pour la programmation des multicoeurs et si oui, qu'en pense-t-il ?
Pourquoi me conseilles-tu plutôt OpenMP ?
TBB semble être dans le style de la STL, donc no problem...
Merci pour le lien.
TheFrenchLeaf a écrit :
> Je pense que un bon début est de regarder OPENMP. Une approche plus
> simple pour rendre des portions de code parallèle (A moindres cout).
> En plus d'un simple pragma tu peux désactiver touy ton code
> multithread et vérifier la fiabilité de ton code en le lancant sur 1
> thread.
> Sinon pour TBB jette un oeil la dessus :http://llpanorama.wordpress. com/tbb-tutorial/
> On 13 juin, 12:01, Wykaaa <wyk...@yahoo.fr> wrote:
>> Quelqu'un a-t-il utilisé la librairie TBB (Threading Building Blocks )
>> pour la programmation des multicoeurs et si oui, qu'en pense-t-il ?
Pourquoi me conseilles-tu plutôt OpenMP ?
TBB semble être dans le style de la STL, donc no problem...
Merci pour le lien.
TheFrenchLeaf a écrit :
> Je pense que un bon début est de regarder OPENMP. Une approche plus
> simple pour rendre des portions de code parallèle (A moindres cout).
> En plus d'un simple pragma tu peux désactiver touy ton code
> multithread et vérifier la fiabilité de ton code en le lancant sur 1
> thread.
> Sinon pour TBB jette un oeil la dessus :http://llpanorama.wordpress. com/tbb-tutorial/
> On 13 juin, 12:01, Wykaaa wrote:
>> Quelqu'un a-t-il utilisé la librairie TBB (Threading Building Blocks )
>> pour la programmation des multicoeurs et si oui, qu'en pense-t-il ?
Pourquoi me conseilles-tu plutôt OpenMP ?
TBB semble être dans le style de la STL, donc no problem...
Merci pour le lien.
Pour moi OpenMp est très simple à mettre en place, il n'impose pas
vraiment de code spécifique. (Juste de préprocesseur).
Tu peux donc paralléliser les boucles vectorielle de ton algorithme
(existant) de manière très simple.
En revanche avec TBB tu te retrouves à écrire du code spécifique à
TBB. (Il faut donc penser TBB et écrire du code pour TBB).
OpenMp et son niveau d'intrusion assez faible dans le code permet
aussi de tester facilement l'impact de la parallélisation d'une partie
du code sur le process général.
Pour moi OpenMp est très simple à mettre en place, il n'impose pas
vraiment de code spécifique. (Juste de préprocesseur).
Tu peux donc paralléliser les boucles vectorielle de ton algorithme
(existant) de manière très simple.
En revanche avec TBB tu te retrouves à écrire du code spécifique à
TBB. (Il faut donc penser TBB et écrire du code pour TBB).
OpenMp et son niveau d'intrusion assez faible dans le code permet
aussi de tester facilement l'impact de la parallélisation d'une partie
du code sur le process général.
Pour moi OpenMp est très simple à mettre en place, il n'impose pas
vraiment de code spécifique. (Juste de préprocesseur).
Tu peux donc paralléliser les boucles vectorielle de ton algorithme
(existant) de manière très simple.
En revanche avec TBB tu te retrouves à écrire du code spécifique à
TBB. (Il faut donc penser TBB et écrire du code pour TBB).
OpenMp et son niveau d'intrusion assez faible dans le code permet
aussi de tester facilement l'impact de la parallélisation d'une partie
du code sur le process général.