SimplyHPC is simply ... a unified framework to submit an application directly to the cloud in a simple way. The platform integrates Azure specific HPC libraries with PowerShell commandlets to ease the submission process while keeping the desired command line environment. The framework provides tools with the ability to deploy necessary number of virtual machines dynamically, submit the packed application together with input and configuration files, execute the simulation and, once the results are ready, download them to the local machine and stop the virtual machines.
At the moment, the following platforms are supported:
- Microsoft Windows-based OS 32-bit/64-bit
SimplyHPC is intended to be the most painless, easy, quick and convenient way to submit HPC jobs to the Microsoft Azure, execute them and download results. All from the command line.
- Checkout the github repo.
- Rename Resources_empty.resx to Resources.resx and add your password to access VMs
in
<data name="pass"><value>yourPassword</value></data>
tag. Password is defined in Azure Management Portal. - Load the Solution into Microsoft .NET
- Right-click on Solution in Solution Explorer and Enable NuGet Restore.
- Build the Solution.
- Install the Module by executing in PowerShell following commands:
$env:PSModulePath
to get the list of locations where modules are installed.
Copy the content of \SimplyHPC\HSR.AzureEE.Module\ to a directory where PowerShell is storing the modules.
Import-Module HSR.AzureEE.Module
Get-Module HSR.AzureEE.Module
-
Create Management Certificate (you can find these tools in Windows Kits, see this link)
- makecert -r -pe -n "CN=CompanyXYZ Server" -b 01/01/2015 -e 01/01/2022 -sky exchange Server.cer -sv Server.pvk
- pvk2pfx.exe -pvk Server.pvk -spc Server.cer -pfx Server.pfx -po
-
Edit AzureConfigActive.xml and add the configuration information.
-
Test if the command lets work by executing:
$params = New-AzureParameters AzureConfigActive
Get-AvailableRoleSizes $params
You should see a list of available Roles.
Once the SimplyHPC is installed you have access to a selection of commandlets:
NewAzureService
Create a new cloud service and the clusterNewAzureJob
Create and execute a new jobNewAzureParameters
Create a set of parameters required by other commandletsGetJobStatus
Get the status of a given jobGetJobResults
Get the results of a given jobGetAvailableRoleSizes
Get Available VMs with their roles and sizesRemoveAzureJobs
Remove Azure Jobs such as unfinished jobsRemoveAzureService
Remove the cloud service and destroy the cluster
These commandlets can be also combined into a single script.
We are dedicated to open source. Open source allow other developers to port the application to new platforms that the original authors did not begin to think of and it permits others to use the program in totally new ways, and enhance it in all imaginable ways.
Therefore, SimplyHPC is licensed under the Apache License. Exceptions are listed in the LICENSES file.
Pull Requests are very welcome!
SimplyHPC was created at by Michael Pantic and Vladimir Baros at Microsoft Innovation Center Rapperswil and is currently maintained by Vladimir Baros. The project is also supported by Lukasz Miroslaw.