Perso, j’utilise poll() avec un seul descripteur, c’est du O(1), pas de limitation à 1024 descripteurs, c’est portable et au niveau performance, je peux gérer plusieurs milliers de connections sur un p2 350. Mais vous m’inquiétez tous les deux avec vos caches invalides. J’ai l’impression qu’un simple mutex n’est plus suffisant quand on parle multicoeur (d’ou les futex j’imagine).
D’après le dernier papier que j’ai lu à ce sujet, les performances des deux modèles seraient équivalentes. Par contre, le modèle orienté thread serait plus intuitif, donc moins sujet aux bugs de programmation. Je vais essayer de retrouver le lien.
Ok, donc si le noyau ou l’API peut gèrer l’attribution du thread vers tel ou tel coeur, je ne vois pas en quoi la programmation multicoeur diffère de la programmation multiprocesseur, c’est transparent pour l’application.