Hardware Software Co-Design For Parallel Embedded Systems