Le tri prend O (n log n) dans le cas série. Si nous avons des processeurs O (n), nous espérons une accélération linéaire. Des algorithmes parallèles O (log n) existent mais ils ont une constante très élevée. Ils ne sont pas non plus applicables sur le matériel de base qui n'a nulle part près de processeurs O (n). Avec p processeurs, des algorithmes raisonnables devraient prendre un temps O (n / p log n).
Dans le cas des séries, le tri rapide présente en moyenne la meilleure complexité d'exécution. Un algorithme de tri rapide parallèle est facile à implémenter (voir ici et ici ). Cependant, cela ne fonctionne pas bien car la toute première étape consiste à partitionner toute la collection sur un seul cœur. J'ai trouvé des informations sur de nombreux algorithmes de tri parallèle, mais jusqu'à présent, je n'ai rien vu d'indiquer un gagnant clair.
Je cherche à trier des listes de 1 à 100 millions d'éléments dans un langage JVM fonctionnant sur 8 à 32 cœurs.