Recently I entered into the Azure’s HPC world and thought to share something, which I learnt from my experience as a beginner. Today is my first step towards the Azure’s HPC. I just downloaded the sample service and followed the configuration instructions. But even after following those, I faced few difficulties during this journey. So, here I am sharing that experience only. Hope it will be useful for all newbies.
I feel that below are the few points, which are directly related to the application performance.
1) Affinity Group – While working on cloud, the first thing comes into mind is performance and throughput. And in order to gain better throughput and performance, one need to make sure that all our services and storage accounts hosted on the cloud are located in proximity, which will reduce data transfer time. So, to bring all the services and storage closer, we can keep all of them in a group. And in Azure’s term, this group is called as Affinity Group. So, creating an affinity group will increase data transfer speed till very high extent. So, it is always a good practice to create our own affinity group as a first and foremost step.
2) Storage Account and Affinity Group – Whenever HPC is configured using sample service, one storage account is being created automatically. This storage account is created anywhere, irrespective of the affinity group created. One important point to note here is to; check the affinity group of this newly created storage account. If it is in the same affinity group which we created for our app, then great, we need not to do anything :) .
But in case, if it is not lying in the same group, then we have to bring that storage account into our already created affinity group. As of today, there is no direct way to bring the storage account into our desired affinity group or let’s say, there is no such way for storage account to switch between affinity groups. The only solution available is, delete the automatically created storage account (newly created one) and create new storage account. While creating new storage account from scratch, we can easily assign the desired affinity group and at the same time, one can skip the statements in the Azure Sample Service code where it tries to create the storage account.
3) Location – While configuring HPC scheduler, the following steps are accomplished:
- Selection of location (i.e. South East Asia)
- HPC scheduler randomly selects one of the configured database server located in the above selected location (here it is South East Asia)
- Once the database server is selected, next step is to supply credentials to access/create the database
- Now the issue here is, how to get user credentials for this randomly selected database server.
To overcome this issue, as of today, the only solution possible is to modify the source code in the sample service and mentioned the name of the desired database server for which user credentials are known.
More info - Whenever someone talks about HPC scheduler, the first thing which hits our mind is Head Node and the Compute nodes. Head node plays a vital role, while talking about Windows Azure HPC Scheduler. One can learn more about HPC Scheduler at http://msdn.microsoft.com/en-us/library/windowsazure/hh545593.aspx .The main purpose of Head node is to distribute jobs/tasks among all available Compute nodes. One can download the sample (Windows Azure HPC Scheduler code sample) from Azure website http://code.msdn.microsoft.com/windowsazure/Windows-Azure-HPC-7d75eb26 and follow the steps to configure HPC Scheduler.