Design an advanced application Flashcards
Create compute-intensive applications
1) Using Azure in a high-performance computing environment
2) Using Azure Batch
3) Understanding Azure Batch Apps
4) Implementing the Competing Consumers pattern
Using Azure in a high-performance computing environment
1) Azure’s A8, A9, A10, and A11 virtual machine (VM) sizes
A8, A9
1) equipped with two network adapters;
2) one connects to a 10 Gbps Ethernet backbone for accessing external services and the Internet, and
3) another connects to a 32 Gbps backbone (through Mellanox QDR InfiniBand) with Remote Direct Memory Access (RDMA) capability for instance communication
A10 and A11 instances
are designed for so-called parametric, or embarrassingly parallel, applications that don’t require constant, low-latency communication among nodes.
Intel MPI Library
1) designed to boost the performance of applications running on clusters that are based on Intel architecture.
2) It is widely used by many HPC applications and takes advantages of Azure’s low-latency network and RDMA capabilities.
Using Azure Batch
1) If you don’t want the trouble of managing a compute cluster yourself
2) Using Batch, you can schedule and manage large-scale parallel workloads on Azure-managed compute resources without the need to manage any infrastructure details.
Preparing a Batch Application
1) With Batch Apps, the repeatable job is called a Batch Application. You create a Batch Application by submitting two packages to Batch, an Application Image and a Cloud Assembly
2) When you have the packages ready, you can create a new Batch Application on the Batch Apps portal, and then schedule jobs on this application.
Application Image
This is a zip file that contains application executables along with all support files.
Cloud Assembly
This is a zip file that contains implementations of several methods, including a method to break down the job into tasks, and a method to invoke application executables.
Competing Consumers pattern
1) implement a simple parallel task execution engine.
2) one or more task creators generate tasks to a common task queue.
2) That queue is monitored by one or many task processors. These processors compete with one another for new tasks
Competing Consumers pattern desirable characteristics
1) Scaling-out as needed
2) Failover
3) Hybrid compute
4) Dynamic load balancing