Unit 1 Part 2
Unit 1 Part 2
COMPUTING
Primitives for Distributed Computing
Function Parameters Need
Sl Primitive Shortcut
Receive
Receive
● In computer systems, there are many ways for programs to talk to each other, like
sending messages or making remote calls. Different software products and scientific
tools use their own special ways to do this.
● For example, some big companies use their custom methods, like IBM's CICS
software. Scientists often use libraries called MPI or PVM. Commercial software
often uses a method called RPC, which lets you call functions on a different
computer like you would on your own computer.
● All these methods use something like a hidden network phone line (called "sockets")
to make these remote calls work.
● There are many types of RPC, like Sun RPC and DCE RPC. There are also other
ways to communicate, like "messaging" and "streaming."
● As software evolves, there are new methods like RMI and ROI for object-based
programs, and big standardized systems like CORBA and DCOM.
Synchronous vs Asynchronous Execution
Synchronous vs Asynchronous Execution
Asynchronous Synchronous
Consistency and Replicate for performance but it is essential that replicated compute
replication should be consistent.
Naming Easy to use and robust naming for identifiers, and addresses is essential for locating
resources and processes in a transparent and scalable manner.
Security & Scalability Involves various aspects of cryptography, secure channels, access control, key
management – generation and distribution, authorization, and secure group
management
The system must be scalable to handle large loads.
Processes management of processes and threads at clients/servers; code migration; and the
design of software and mobile agents.
Data storage and Schemes for data storage, and implicitly for accessing the data in a fast and scalable
access manner across the network are important for efficiency
Fault tolerance ● Fault tolerance requires maintaining correct and efficient operation in spite of
any failures of links, nodes, and processes.
● Process resilience, reliable communication, distributed commit, checkpointing
and recovery, agreement and consensus, failure detection, and
self-stabilization are some of the mechanisms to provide fault-tolerance.
2. Algorithmic Challenges ( CREPT-MGW)
Challenge Description
group Communication, 1. A group is a collection of processes that share a common context and collaborate on a
multicast, and ordered common task within an application domain
message delivery 2. Algorithms need to be designed to enable efficient group communication and group
management wherein processes can join and leave groups dynamically
3. Specify order of delivery when multiple process send message concurrently
Execution models and ● interleaving model and partial order model are two widely adopted models of distributed
frameworks system executions
● The input/output automata model [25] and the TLA (temporal logic of actions) are two
other examples of models that provide different degrees of infrastructure
Program design and ● Methodically designed and verifiably correct programs can greatly reduce the overhead
verification tools of software design, debugging, and engineering
● Designing mechanisms to achieve these design and verification goals is a challenge.
2. Algorithmic Challenges ( CREPT-MGW)
Challenge Description
Time and global state 1. The processes in the system are spread across three-dimensional physical space.
Another dimension, time, has to be superimposed uniformly across space.
2. The challenges pertain to providing accurate physical time, and to providing a variant of
time, called logical time.
3. Logical time is relative time, and eliminates the overheads of providing physical time for
applications where physical time is not required.
4. Observing the global state of the system (across space) also involves the time
dimension for consistent observation
Monitoring ● On-line algorithms for monitoring such predicates are hence important.
distributed events ● Event streaming is used where streams of relevant events reported from different
and predicates processes are examined collectively to detect predicates
Graph algorithms ● The distributed system is modeled as a distributed graph, and the graph algorithms form
and distributed the building blocks for a large number of higher level communication, data
routing algorithms dissemination, object location, and object search functions.
● the design of efficient distributed graph algorithms is of paramount importance
World Wide Web ● Minimizing response time to minimize user perceived latencies is important challenge
design ● Object search and navigation on the web efficiently is important
2. Algorithmic Challenges (Synch Mechanism)
2. Algorithmic Challenges
2. Algorithmic Challenges (Fault Tolerant)
2. Algorithmic Challenges (Load Balancing)
2. Algorithmic Challenges (performance)
3. Applications of distributed computing
3. Applications of distributed computing
Sensor Networks:
1. Sensors, which can measure physical properties like temperature and humidity, have become affordable
and are deployed in large numbers (over a million).
2. They report external events, not internal computer processes. These networks have various applications,
including mobile or static sensors that communicate wirelessly or through wires. Self-configuring ad-hoc
networks introduce challenges like position and time estimation.
Ubiquitous Computing:
1. Ubiquitous systems involve processors integrated into the environment, working in the background, like in
sci-fi scenarios. Examples include smart homes and workplaces.
2. These systems are essentially distributed, use wireless tech, sensors, and actuators, and can self-organize.
They often consist of many small processors in a dynamic network, connecting to more powerful resources
for data processing.
3. Applications of distributed computing
Peer-to-Peer (P2P) Computing:
1. In P2P computing, all processors interact as equals without any hierarchy, unlike client-server systems. P2P
networks are often self-organizing and may lack a regular structure.
2. They don't use central directories for name resolution. Challenges include efficient object storage and
lookup, dynamic reconfiguration, replication strategies, and addressing issues like privacy and security.
1. As information grows, we need efficient ways to distribute and filter it. Publish-Subscribe involves
distributing information, letting users subscribe to what interests them, and then filtering it based on user
preferences.
2. Content distribution is about sending data with specific characteristics to interested users, often used in web
and P2P settings. When dealing with multimedia, we face challenges like large data, compression, and
synchronization during storage and playback.
3. Applications of distributed computing
Data Mining Algorithms:
1. They analyze large data sets to find patterns and useful information. For example, studying
customer buying habits for targeted marketing.
2. This involves applying database and AI techniques to data. When data is distributed, as in private
banking or large-scale weather prediction, efficient distributed data mining algorithms are needed.