title: real time number crunching and storage on cloud
body: <p>I have some hardware devices that send some data that need to be stored on the cloud server and also I need to do some real time processing on them.</p>
  
  <p>The data they send need to be preserved for months in some custom binary files. These files related to each device can grow in size up to 10GB over time.</p>
  
  <p>There will client programs (mobile / web) that will be looking at the processed data at real time. </p>
  
  <p>My prefered choice of language is C/C++/C#, since there is time sensitive number crunching involved.</p>
  
  <p>Goal is write scalable application that can have thousands of such devices monitored on the cloud. </p>
  
  <ol>
  <li><p>Do I have to upfront write the code for running on the cloud ( undestand Azure / amazon EC2) ? Can I write multi threaded desktop application and later migrate to cloud ?</p></li>
  <li><p>I have used Message passing interface (MPI) in the past for clusters. Can I still use MPI ?</p></li>
  <li><p>If I use microsoft azure API can I still host my software on Amazon cloud ?</p></li>
  <li><p>For mobile devices to talk to the server, I understand that I need to have a webservice running. how can I convert a desktop program writeen in C++ / C# to act as a web service talking to client?</p></li>
  <li><p>Are there any 3rd part frame works or tools taht can help me with my work ?</p></li>
  </ol>