1. A method of reducing inter-task latency for software comprising a sequence of instructions including a synchronous remote procedure call executed on a multiprocessor system, said multiprocessor system comprising a calling processor and at least one remote engine, the method comprising the steps of: inputting said software; inputting a runtime resource description, said runtime resource description describing a runtime environment of said multiprocessor system; identifying said synchronous remote procedure call in said sequence of instructions; replacing said synchronous remote procedure call in said sequence of instructions with an initiation instruction and a wait instruction to generate a substitute sequence of instructions; identifying dependencies between instructions in said substitute sequence of instructions; reordering said substitute sequence of instructions with reference to said runtime resource description and said dependencies to generate a reordered sequence of instructions; and outputting said reordered sequence of instructions.