1. A system, comprising: one or more processors; a memory coupled to the one or more processors, wherein the memory is configured to store program instructions executable by the one or more processors to implement: a scheduler configured to schedule a plurality of blocks of concurrent code for multi-threaded execution, wherein the scheduler is configured to initiate multi-threaded execution of the blocks of concurrent code in an order determined by block-level performance criteria for the blocks of concurrent code to reduce overall execution time of the concurrent code.