Plein de choses intéressantes dans les liens donnés, mais pas directement (à moins que je ne sois passé à coté de qqch) sur ce qui me concerne.
Pour parler clairement, disons que j'ai une boucle for, de 1 à n. Et que chaque opération pourrait etre exectué de manière indépendante.
J'aimer donc executer mon code non parallelisable, lire le nombre p de CPU, et lancer p Thread. Puis, retourner dans une éxecution séquentielle.
Sauf que généralement, pour définir un thread, il faut définir ce que l'on veut executer. Or là, l'execution dépend directement du nombre de cpu.
Style si 1 cpu alors for i de 0 à n-1
Si 2 cpu, alors boucle 1: for i de 0 à n/2 et boucle 2: for i de n/2 + 1 à n-1.
etc...
Je ne cherche pas à gérer mes threads, ou changer la priorité. Je cherche juste à aider la machine virtuelle à identifier les parties qu'il peut executer en parallele. Ensuite, je le laisse faire...
Et je ne peux rien créer en statique, parce que ce code peut tourner aussi bien sur mon portable (mono-proc) que sur un gros server (multi-proc).
Voilà. en espérant avoir été plus clair.
D'avance merci