A Case for MCAPI: CPU-TO-CPU Communications in Multicore Designs