Managing SMT cores in single-threaded HPC applications and multi-threaded ML applications