sort non crea un thread a meno che non sia necessario, e per i file di piccole dimensioni è troppo sovraccarico. Ora sfortunatamente sort tratta una pipa come un piccolo file. Se desideri fornire dati sufficienti a 24 thread, dovrai specificare di ordinare per utilizzare un buffer interno di grandi dimensioni (sort lo fa automaticamente quando viene presentato con file di grandi dimensioni). Questo è qualcosa che dovremmo migliorare a monte (almeno nella documentazione). Quindi vorrai qualcosa come:
(export LC_ALL=C; grep -E <files> | sort -S1G --parallel=24 -u | wc -m)
Nota che ho impostato LC_ALL=C per tutti i processi, dato che trarranno tutti vantaggio da questi dati).
A proposito, puoi monitorare i thread di ordinamento con qualcosa del tipo:
watch -n.1 ps -C sort -L -o pcpu