From my main c# app, I start many slave process with `Process.Start` method. (on the same PC)

Just before starting those slave process, I serialize some data (I have serialized class) in **XML files** which are passed in the arguments of Process class. 

In each slave process, those data are deserialized and a computation is done. A new serialization is done to XML in order to send result to the main process.

My apps works but the performance are very bad.
The time of serialization/deserialization operation is too long because the size of each XML file is about 1,5 Mo...

**I really need a high-performance for this simple communication between main app and slave process.**

How can I easily modify my code to improve this performance ?
Nb : in the future my main process will be in 64 bits and the slaves process in 32 bits.

I have heard that some apps allows to virtualize hard disk in RAM ? Does it exist ? Is it free ?

I have heard of WCF, Named Pipe, Memory Mapped, etc but I seems to be heavy to use ....?