An adaptive resource partitioning algorithm for SMT processors | Synapse