Virtual Prototyping of Parallel and Embedded Systems