0% found this document useful (0 votes)
26 views6 pages

Lecture 1

Uploaded by

huzaifazafi593
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
26 views6 pages

Lecture 1

Uploaded by

huzaifazafi593
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

Asynchronous and Synchronous

Computation for Parallel Computing


Parallel and distributed computing are crucial paradigms in modern
computing, enabling the efficient utilization of resources and the acceleration
of computational tasks. Asynchronous and synchronous computation and
communication are fundamental concepts in these paradigms, governing how
tasks are executed and how data is exchanged among computing nodes. In
this tutorial, we will delve into the concepts of asynchronous and synchronous
computation and communication, their significance, advantages, and how they
are applied in parallel and distributed computing environments.

Understanding Asynchronous Computation


Asynchronous computation refers to a mode of operation where tasks can
execute independently of each other, without waiting for each other to
complete.

Key Characteristics:

 Independence: Asynchronous tasks do not depend on each other’s


completion. They can start, execute, and complete at different times.
 Non-blocking: In asynchronous computation, tasks do not block each
other. They can proceed concurrently without waiting for the
completion of other tasks.
 Flexibility: Asynchronous execution allows for dynamic task scheduling
and resource utilization, enabling efficient use of computational
resources.

Applications:

Parallel & Distributed Computing 1 Deptt of CS & IT, HU


 Event-driven Systems: Asynchronous computation is prevalent in
event-driven systems such as web servers, where tasks handle incoming
requests independently.
 Parallel Processing: Asynchronous execution is fundamental in parallel
processing environments for achieving high throughput and scalability.

Advantages:

 Improved Throughput: Asynchronous computation maximizes


resource utilization by allowing tasks to execute concurrently, leading to
improved throughput and efficiency.
 Reduced Latency: Asynchronous tasks can overlap in execution,
reducing overall latency by minimizing idle time.
 Enhanced Scalability: Asynchronous systems can scale more effectively
as they can adapt to varying workloads and allocate resources
dynamically.

Consider a web application that needs to fetch data from multiple external APIs
to display information to the user. Instead of waiting for each API call to
complete sequentially, asynchronous computation can be used to initiate all API
calls concurrently. This allows the application to continue processing other tasks
while waiting for the API responses asynchronously. Once all API responses are
received, the application can aggregate the data and update the user interface
accordingly. This approach improves the responsiveness and efficiency of the
web application.

Understanding Synchronous Computation


Synchronous computation refers to a mode of operation where tasks are
executed sequentially, with each task waiting for the completion of the
previous one.

Key Characteristics:

 Sequential Execution: In synchronous computation, tasks are executed


one after the other in a predetermined order.

Parallel & Distributed Computing 2 Deptt of CS & IT, HU


 Blocking: Synchronous tasks block the execution of subsequent tasks
until they complete, leading to a sequential flow of execution.
 Deterministic: Synchronous computation ensures deterministic
behavior as tasks are executed in a predictable order.

Applications:

 Critical Sections: Synchronous computation is used in scenarios where


tasks must be executed in a specific order or where shared resources
need to be accessed safely, such as in critical sections of code.
 Transaction Processing: Synchronous execution is prevalent in
transaction processing systems where operations must be performed
sequentially to maintain data consistency.

Advantages:

 Simplicity: Synchronous computation offers a simple and


straightforward model of execution, making it easier to reason about
program behavior and correctness.
 Determinism: Synchronous execution ensures deterministic behavior,
which is desirable in many applications, especially those requiring
consistency and reliability.
 Synchronization: Synchronous computation facilitates synchronization
between tasks, ensuring that critical operations are performed in a
coordinated manner.

Parallel & Distributed Computing 3 Deptt of CS & IT, HU


Asynchronous vs. synchronous communication
In multiplayer online gaming, players interact with each other in real-time, and
the game environment must remain consistent across all players’ devices.
Synchronous computation is crucial in this scenario to ensure that game actions,
such as player movements, attacks, and interactions with the game world, are
processed and synchronized across all players simultaneously.

Asynchronous vs. Synchronous Communication


In parallel and distributed computing, communication between computing
nodes can be either asynchronous or synchronous, depending on when data is
sent and received.

Asynchronous Communication

 In asynchronous communication, messages are sent and received


independently of the sender and receiver’s execution states.
 There is no strict coordination between sender and receiver, allowing for
overlapping communication and computation.

Parallel & Distributed Computing 4 Deptt of CS & IT, HU


 Asynchronous communication is well-suited for scenarios where latency
is not critical, and there is a need for flexibility and scalability.

Synchronous Communication

 In synchronous communication, messages are exchanged in a


coordinated manner, with sender and receiver synchronizing their
actions.
 Synchronous communication typically involves blocking operations,
where the sender waits for acknowledgment from the receiver before
proceeding.
 Synchronous communication is useful in scenarios requiring strict timing
constraints and coordination between communicating entities.

Implementing Asynchronous and Synchronous


Computation/Communication
Asynchronous Implementation

 Asynchronous computation can be implemented using techniques such


as asynchronous programming models (e.g., async/await in Python),
event-driven architectures, and non-blocking I/O operations.
 Libraries and frameworks such as asyncio, Twisted, and Node.js provide
support for asynchronous programming, enabling developers to write
efficient and scalable asynchronous applications.

Synchronous Implementation

 Synchronous computation is implemented using traditional sequential


programming models, where tasks are executed one after the other.
 Synchronous communication can be achieved using blocking I/O
operations, synchronous message passing libraries (e.g., MPI), or remote
procedure call (RPC) mechanisms.

Asynchronous and synchronous computation and communication are


fundamental concepts in parallel and distributed computing, influencing the

Parallel & Distributed Computing 5 Deptt of CS & IT, HU


design and implementation of scalable and efficient systems. Understanding
these concepts and their applications is essential for building high-
performance and resilient distributed applications. By choosing the
appropriate approach based on application requirements and constraints,
developers can leverage the benefits of both asynchronous and synchronous
paradigms to create robust and scalable distributed systems.

Parallel & Distributed Computing 6 Deptt of CS & IT, HU

You might also like