Scheduling And Optimizing Stream Programs On Multicore Machines By Exploiting High-Level Abstractions