sort ne crée pas de thread sauf si nécessaire, et pour les petits fichiers, c'est trop lourd. Maintenant, malheureusement, sort traite un tube comme un petit fichier. Si vous souhaitez fournir suffisamment de données à 24 threads, vous devrez spécifier le tri pour utiliser un grand tampon interne (le tri le fait automatiquement lorsqu'il est présenté avec des fichiers volumineux). C'est quelque chose que nous devrions améliorer en amont (au moins dans la documentation). Donc, vous voudrez quelque chose comme :
(export LC_ALL=C; grep -E <files> | sort -S1G --parallel=24 -u | wc -m)
Notez que j'ai défini LC_ALL=C pour tous les processus, car ils bénéficieront tous de ces données).
BTW, vous pouvez surveiller les fils de tri avec quelque chose comme :
watch -n.1 ps -C sort -L -o pcpu