comparison can be used as a reference point for
potential users to consider whether employ the on-
demand resources. Finally, Section 6 concludes the
paper with a summary and future work.
2 WINDOWS AZURE AND HPC
SCHEDULER
In this section we introduce the Azure cloud
platform and related technologies that we have used
in the development of the deployment model
architecture. The Windows Azure platform was
announced by our collaborative partner Microsoft in
2010. In our work, they provided us the Azure cloud
accounts for initial development and testing. This
platform includes Windows Azure, SQL Azure and
AppFabric. Our work focuses on Windows Azure,
which is a Platform as a Service offering and
provides us the compute resources and scalable
storage services. We employ Windows Azure HPC
Scheduler to deploy the serial ZaKo3D by means of
an MPI-based framework developed by us, to the
Azure compute resources. For data management, the
Azure storage blob service facilitates the transfer
and storage of massive data in the execution of our
MPI application on the Azure cloud.
2.1 The Three Roles of Windows Azure
Windows Azure provides the user with three types
of roles to develop a cloud application: Web Roles,
Work Roles and VM Roles. Web Roles aim to
display websites and present web applications,
supported by IIS. Work Roles are used to execute
tasks which require the compute resources. Work
roles can communicate with other roles by means of
Message queues as a choice in various techniques.
The VM Role differs from the other two roles in that
it acts as an IaaS to provide services instead of PaaS.
The VM Role allows us to run a customized instance
of Windows Server 2008 R2 in Windows Azure. It
facilities migrate with some application, which is
difficult to bring to cloud, into the cloud.
2.2 HPC Scheduler
for High-performance Computing
in Azure Cloud
Microsoft developed the HPC Scheduler to support
running HPC applications in the Azure cloud.
Compute resources are virtualized as instances on
Windows Azure. When an HPC application requires
an Azure instance to execute, it means the work will
be divided into lots of small work items, all running
in parallel on many virtual machines simultaneously.
The HPC Scheduler allows scheduling this kind of
applications built to use the Message Passing
Interface (MPI) and distributes their works across
some instances. The deployment build with
Windows Azure SDK includes a job scheduling
module and a web portal to submit job and resource
management.
The role types and the service topology can be
defined when creating a service model in
configuring cloud hosting service. HPC Scheduler
supports Windows Azure roles through offering
plug-ins. There are three types of nodes which
provide different function and runtime support.
Head node: Windows Azure work role with
HpcHeadNode plug-in, provides job scheduling
and resource management functionality.
Compute node: Windows Azure work role with
HpcComputeNode plug-in, provides runtime
support for MPI and SOA.
Front node: Windows Azure web role with
HpcFrontEnd plug-in, provides web portal (based
on REST) as the job submission interface for HPC
Scheduler.
Visual studio has been specified as the
development environment for this component.
2.3 Azure Storage Blob Service
Azure storage service provides data storage and
transfer to applications in Windows Azure and
supports multiple types of data: binary, text data,
message and structured data. It includes three types
of storage service:
Blobs (Binary Large Objects), the simplest way for
storing binary and text data (up to 1TB for each
file) that can be accessed from anywhere in the
world via HTTP or HTTPS.
Tables, for storing non-relational data using
structured storage method.
Queues, for storing messages that may be accessed
by a client, and communicate messages between
two roles asynchronously.
In our deployment model, we employ the Blob
storage service to manage our application’s data
because ZaKo3D uses text data for input files and
output files. As described in Figure 1, there are three
layers in the concept of Blob storage. In order to
store data into the Windows Azure with the blob
storage service, a blob storage account has to be
created which can contain multiple containers. A
AnHPCApplicationDeploymentModelonAzureCloudforSMEs
255