Cloud Service

Update: This feature is deprecated in the latest version of Caedium.

Caedium has the ability to outsource the intensive numerical CFD simulation to a Windows Azure cloud service.

Cloud Service Features

  • Unsecure HTTP communication between Caedium and the Azure webserver
  • Simple first-in first-out (FIFO) scheduling
  • Simple service setup

Assumptions

  1. You have set up a Windows Azure account.
  2. In Hosted Services, Storage Accounts & CDN with the same affinity group name create:
    • Hosted Service - you will need the following hosted service parameter to configure the Caedium service:
      • DNS Prefix
    • Storage Account - you will need the following storage account parameters to configure the Caedium service:
      • Name
      • Primary access key
  3. You have downloaded, installed, and activated the Caedium RANS Flow or Professional add-ons.

Procedure

  1. Upload the solver distribution from the Windows 64-bit version of Caedium to your Azure storage account using the command: "C:\Program Files\Caedium\modules\ofburst\OfCloudUpload.exe" -StorageName <your storage name here> -StorageKey <your storage primary access key here> -BlobId openflow.zip -Dir "C:\Program Files\Caedium\openflow"
  2. Download the following files:
    • ServiceConfiguration.cscfg (2 KB)
    • OfCloudService.cspkg (9 MB) - deploys an Extra-Large Compute Instance
  3. Edit ServiceConfiguration.cscfg to match your Azure account by replacing:
    • BLOB_STORAGE_NAME_HERE with your storage name
    • BLOB_STORAGE_KEY_HERE with your storage primary access key
    • USER_NAME_HERE with an arbitrary name of your choice
    • PASSWORD_HERE with an arbitrary password of your choice
  4. If you want to experiment with more OfWorkerRoles or OfWebRoles then increase the associated <Instances count="1"> in ServiceConfiguration.cscfg.
  5. In the Windows Azure portal:
    1. Select Hosted Services, Storage Accounts & CDN, then Hosted Services, then Service <your service name> then New Production Deployment.
    2. In the Create a new Deployment dialog:
      1. Set Deployment name - with an arbitrary name.
      2. Set Package location - click Browse Locally... and select your OfCloudService.cpspkg file.
      3. Set Configuration file - click Browse Locally... and select your ServiceConfiguration.cscfg file.
      4. Click OK.
      5. A Warning dialog will appear asking Would you like to override and submit? - click Yes.
    3. The status of the deployment will appear in the Azure portal, when it reaches Ready the service is complete and ready to perform simulations.
  6. To test if the Azure service is available, try pointing your browser at http://<your hosted service DNS prefix>.cloudapp.net/ofapi.aspx and you should see the message Invalid username or password.
  7. In Caedium select the File Toolbar and click the Preferences button . In the Properties Panel turn on the preference Physics->OpenFOAM->Diagnostics to see feedback on the cloud service.
  8. Set the preference OpenFOAM->Parallel to Cloud.
  9. Set the following Parallel:Cloud associated preferences:
    • Account = USER_NAME_HERE from step 3
    • Account->Password = PASSWORD_HERE from step 3
    • Processes = 7 (Extra Large Compute Instance has 8 cores)
    • Hostname = <your hosted service DNS prefix>.cloudapp.net
  10. Try running a small simulation to test the service and if it is successful proceed to run your actual simulations.
  11. When you have completed your simulations, delete your deployment in the Azure portal by right clicking your deployment and selecting Delete.

Notes

  • Azure charges for storage, bandwidth, and CPU time usage.
  • Your billable CPU time starts as soon as you commit to deploying a service and continues as long as the service is deployed - whether it is running a simulation or not.
  • If there are failures in the service your simulation may not run correctly.
  • If you interrupt a running simulation, the simulation will continue to run on Azure.
  • You might find it useful to browse your Azure storage account like a file system using CloudBerry. You can then delete any failed or redundant job files.