Co-scheduling HPC workloads on cache-partitioned CMP platforms