Computing Models Overview
Parallel Computing
Definition:
Multiple processors work on different parts of a task at the same time to solve it faster.
Components:
- Multiple processors: Work together on a single problem.
- Shared or distributed memory: Processors share data.
- Communication system: Allows processors to exchange information.
Advantages:
- Speeds up execution.
- Handles large tasks efficiently.
- Saves time by breaking work into smaller parts.
Disadvantages:
- Hard to program and manage.
- Expensive hardware.
- Needs good coordination between processors.
Applications:
- Weather forecasting.
- Image processing.
- Scientific simulations.
- Artificial intelligence.
Centralized Computing
Definition:
A single central computer does all the processing and controls the system.
Components:
- Main server: Handles data and processing.
- Terminals/Clients: Only used to access the central server.
Advantages:
- Easy to manage and secure.
- Cheaper to maintain.
- Centralized data storage.
Disadvantages:
- If the central system fails, everything stops.
- Slower access if many users connect at once.
- Less flexible.
Applications:
- ATM systems.
- Small business servers.
- Railway reservation systems.
Decentralized Computing
Definition:
Multiple computers work independently but may share information when needed.
Components:
- Multiple servers or systems: Each handles its own tasks.
- Communication network: Connects the systems.
Advantages:
- More reliable; one system’s failure doesn’t affect others.
- Scalable; new systems can be added easily.
- Faster local processing.
Disadvantages:
- Harder to coordinate and manage.
- Can lead to data duplication.
- Security is more complex.
Applications:
- Blockchain.
- Peer-to-peer apps.
- Distributed databases.
Utility Computing
Definition:
Computing resources are provided as a service and paid for based on usage.
Components:
- Service provider: Offers resources like storage, processing.
- Users: Access and use resources when needed.
Advantages:
- Pay-as-you-use model saves cost.
- Easy to scale up or down.
- No need to maintain hardware.
Disadvantages:
- Depends on the provider’s reliability.
- Limited control over infrastructure.
- Data privacy concerns.
Applications:
- Cloud storage (Google Drive, Dropbox).
- Web hosting.
- Software as a Service (SaaS) platforms.
Distributed Computing
Definition:
A model where components of a software system are shared among multiple computers
to improve efficiency and performance.
Components:
- Nodes/Hosts: Individual computers.
- Network: Communication medium (e.g., LAN, Internet).
- Middleware: Software that connects nodes (e.g., RPC, CORBA).
- Processes: Tasks running on different systems.
- Data: Shared and distributed data among systems.
Advantages:
- High performance & scalability
- Resource sharing
- Fault tolerance
- Easy to add nodes (flexibility)
- Cost-effective
Disadvantages:
- Complex to design and debug
- Security risks due to multiple nodes
- Network dependency
- Data synchronization challenges
Applications:
- Cloud computing platforms
- Online banking systems
- Scientific simulations
- Multiplayer online games
- Big data processing
Grid Computing
Definition:
A form of distributed computing where resources from multiple locations are pooled to
reach a common goal.
Benefits:
- Utilizes idle resources
- Cost-efficient for large computations
- Load balancing
- High throughput
Applications:
- CERN’s particle physics research
- Weather modeling
- Drug discovery
- Financial risk analysis
Peer-to-Peer (P2P) Computing
Definition:
A decentralized network where each node (peer) acts as both client and server.
Key Characteristics:
- Equal status of peers
- Decentralized architecture
- Direct communication
- Resource sharing
Use Cases:
- File sharing (e.g., BitTorrent)
- Blockchain and cryptocurrency
- VoIP (Skype)
- Collaborative platforms (e.g., SETI@home)
Pervasive (Ubiquitous) Computing
Definition:
Integration of computing processes into everyday objects and activities, making
technology invisible yet available.
Key Characteristics:
- Context-aware
- Mobility
- Embedded systems
- Seamless connectivity
- User-centered design
Use Cases:
- Smart homes
- Wearable devices
- Healthcare monitoring
- Smart cities
- IoT applications