Bon, je me répond car j'ai lu les autres commentaires, et je comprend ce que tu voulais dire par "exécuter les commandes d'un pipe en parallèle".
Donc, en gros, si je fais
A | B j'aurais idéalement A sur un cœur, et B sur un autre, c'est ça ?
Bon, c'est cool ^^
Mais tu fais ça statiquement, ou dynamiquement avec du vol de tâche si jamais t'as un proc qui se libère (car si tu lances en parallèle deux instances de programmes, chacun va faire son allocation sans se soucier de l'autre à moins que tu partages toutes tes tâches au niveau de la machine (ou au moins de l'utilisateur)).
Ça commence simple avec des cas triviaux, mais ça a vite fait de devenir compliqué... (puis pas besoin de créer B tout de suite dans A|B si A met 20 minutes avant de faire la moindre sortie. Tu veux donc faire de la création paresseuse de processus s'il est en attente bloquante non échappable...)
Cela étant, mes liens sont donc toujours valides, avec des trucs du genre
{A@cœur1 < data.txt@machine2} | B@cœur2 | C@machine2 > resultat@machine3
HS : {echo "dodo"; sleep 1; echo "bien dormi"} | echo "pendant ce temps là"
Zut, ça bouffe la sortie standard de l'un, même quand l'autre ne la consomme pas !
[^] # Re: Been there, done that
Posté par Axioplase ıɥs∀ (site web personnel) . En réponse au journal executions de commandes shell en parallele: par. Évalué à 6.
Donc, en gros, si je fais
A | Bj'aurais idéalement A sur un cœur, et B sur un autre, c'est ça ?Bon, c'est cool ^^
Mais tu fais ça statiquement, ou dynamiquement avec du vol de tâche si jamais t'as un proc qui se libère (car si tu lances en parallèle deux instances de programmes, chacun va faire son allocation sans se soucier de l'autre à moins que tu partages toutes tes tâches au niveau de la machine (ou au moins de l'utilisateur)).
Ça commence simple avec des cas triviaux, mais ça a vite fait de devenir compliqué... (puis pas besoin de créer B tout de suite dans A|B si A met 20 minutes avant de faire la moindre sortie. Tu veux donc faire de la création paresseuse de processus s'il est en attente bloquante non échappable...)
Cela étant, mes liens sont donc toujours valides, avec des trucs du genre
{A@cœur1 < data.txt@machine2} | B@cœur2 | C@machine2 > resultat@machine3
HS :
{echo "dodo"; sleep 1; echo "bien dormi"} | echo "pendant ce temps là"Zut, ça bouffe la sortie standard de l'un, même quand l'autre ne la consomme pas !