Access the NEW Basecamp Support Portal

Distributed computing

« Back to Glossary Index

Introduction and Overview of Distributed Computing
– Distributed system components are located on different networked computers.
– Components communicate and coordinate their actions by passing messages.
– Distributed computing is a field of computer science that studies distributed systems.
– Challenges of distributed systems include maintaining concurrency, overcoming the lack of a global clock, and managing independent failures.
– When a component fails, the entire system does not fail.
– Distributed systems are groups of networked computers with a common work goal.
– Concurrent computing, parallel computing, and distributed computing have overlap.
– Parallel computing is tightly coupled, while distributed computing is loosely coupled.
– In parallel computing, processors have shared memory, while in distributed computing, each processor has its own memory.
– Distributed systems are represented as a network topology, while parallel systems have direct access to shared memory.

History and Evolution of Distributed Computing
– Concurrent processes communicating through message-passing originated in the 1960s.
– Local-area networks like Ethernet were the first widespread distributed systems.
– ARPANET, the predecessor of the Internet, introduced in the late 1960s.
– ARPANET e-mail was an early large-scale distributed application.
– Distributed computing became its own branch of computer science in the late 1970s and early 1980s.
– Andrews (2000) discusses the historical development of distributed computing.
– Banks (2012) provides insights into the secret history of the internet and its founders.
– Tel (2000) explores the evolution and advancements of distributed algorithms.
– Ohlídal et al. (2006) discuss the application of evolutionary computing in distributed systems.
– Real Time and Distributed Computing Systems (PDF) provides an overview of distributed computing systems.

Architectures and Models in Distributed Computing
– Hardware and software architectures are used for distributed computing.
– CPUs are interconnected with networks at a lower level.
– Processes running on CPUs are interconnected with communication systems at a higher level.
– Distributed programming falls into architectures like client-server, three-tier, and peer-to-peer.
– Architectures can be categorized as loose coupling or tight coupling.
– Parallel algorithms in shared-memory model allow all processors to access a shared memory.
– The parallel random-access machine (PRAM) model is commonly used.
– Shared-memory programs can be extended to distributed systems with communication encapsulation.
– Parallel algorithms in message-passing model involve designing the network structure and program execution for each computer.
– Boolean circuits and sorting networks are used in this model.

Applications and Use Cases of Distributed Computing
– Distributed systems are used when data needs to be shared between multiple computers in different locations.
– They allow for larger storage, faster compute, and higher bandwidth than a single machine.
– Distributed systems provide more reliability as there is no single point of failure.
– They are easier to expand and manage compared to a monolithic uniprocessor system.
– Using a cluster of low-end computers can be more cost-efficient than a single high-end computer.
– Vigna and Casey (2015) explore the impact of cryptocurrencies and blockchain on distributed computing.
– Quang Hieu Vu et al. (2010) discuss the principles and applications of peer-to-peer computing.
– Lind and Alm (2006) present a database-centric virtual chemistry system for distributed computing.
– Chiu (1990) proposes a model for optimal database allocation in distributed computing systems.
– Elmasri and Navathe (2000) provide an overview of distributed database systems.

Algorithms, Techniques, and Challenges in Distributed Computing
– Lynch (1996) describes the fundamentals of distributed computing.
– Peleg (2000) provides an introduction to distributed systems.
– Ghosh (2007) discusses the challenges and benefits of distributed computing.
– Keidar (2008) explores the concepts and principles of distributed algorithms.
– Papadimitriou (1994) presents a comprehensive overview of distributed computing.
– Andrews (2000) discusses various algorithms and techniques used in distributed computing.
– Arora and Barak (2009) explore the trade-offs between bit, message, and time complexity in distributed algorithms.
– Cormen, Leiserson, and Rivest (1990) discuss distributed algorithms and their complexities.
– Herlihy and Shavit (2008) provide in-depth coverage of concurrent programming and synchronization in distributed systems.
– Lynch (1996) discusses the challenges and future directions in distributed computing.

A distributed system is a system whose components are located on different networked computers, which communicate and coordinate their actions by passing messages to one another. Distributed computing is a field of computer science that studies distributed systems.

The components of a distributed system interact with one another in order to achieve a common goal. Three significant challenges of distributed systems are: maintaining concurrency of components, overcoming the lack of a global clock, and managing the independent failure of components. When a component of one system fails, the entire system does not fail. Examples of distributed systems vary from SOA-based systems to massively multiplayer online games to peer-to-peer applications.

A computer program that runs within a distributed system is called a distributed program, and distributed programming is the process of writing such programs. There are many different types of implementations for the message passing mechanism, including pure HTTP, RPC-like connectors and message queues.

Distributed computing also refers to the use of distributed systems to solve computational problems. In distributed computing, a problem is divided into many tasks, each of which is solved by one or more computers, which communicate with each other via message passing.

« Back to Glossary Index

Request an article

Please let us know what you were looking for and our team will not only create the article but we'll also email you to let you know as soon as it's been published.
Most articles take 1-2 business days to research, write, and publish.
Content/Article Request Form

Submit your RFP

We can't wait to read about your project. Use the form below to submit your RFP!
Request for Proposal

Contact and Business Information

Provide details about how we can contact you and your business.


Quote Request Details

Provide some information about why you'd like a quote.