The question is if you can you split your processing into independent tasks.
In the following example HPC solution should be considered:
1. Server gets 50GB of data
2. Split the data into N independent chunks (to send & process it on N nodes)
3.Send each chunk of data to compute node ,process data and store the result on the same node ( you may reuse it later)
4.Get new 50 GB of data and repeat steps 1-3
Consider also your network bandwith, read about LINQ to HPC jobs.
Daniel Drypczewski