A Review on Modern Distributed Computing Paradigms: Cloud Computing, Jungle Computing and Fog Computing
---
paper_title: Fog computing and its role in the internet of things

paper_content:

Fog Computing extends the Cloud Computing paradigm to the edge of the network, thus enabling a new breed of applications and services. Defining characteristics of the Fog are: a) Low latency and location awareness; b) Wide-spread geographical distribution; c) Mobility; d) Very large number of nodes, e) Predominant role of wireless access, f) Strong presence of streaming and real time applications, g) Heterogeneity. In this paper we argue that the above characteristics make the Fog the appropriate platform for a number of critical Internet of Things (IoT) services and applications, namely, Connected Vehicle, Smart Grid, Smart Cities, and, in general, Wireless Sensors and Actuators Networks (WSANs).
---
paper_title: Foundations of Multithreaded, Parallel, and Distributed Programming

paper_content:

1. The Concurrent Computing Landscape. The Essence of Concurrent Programming. Hardware Architectures. Single Processor Machines. Shared-Memory Multiprocessors. Multicomputers Networks. Applications and Programming Styles. Iterative Parallelism: Matrix Multiplication. Recursive Parallelism: Adaptive Quadrature. Producers and Consumers: Unix Pipes. Clients and Servers: Remote Files. Peers: Distributed Matrix Multiplication. Summary of Programming Notation. Declarations Sequential Statements. Concurrent Statements and Process Declarations. Comments. I. SHARED VARIABLE PROGRAMMING. 2. Processes and Synchronization. States, Actions, Histories, and Properties. Parallelization: Finding Patterns in Files. Synchronization: The Maximum of an Array. Atomic Actions and Await Statements. Fine-Grained Atomicity. Specifying Synchronization: The Await Statement. Finding Patterns in a File Revisited. A Synopsis of Axiomatic Semantics. Formal Logical Systems. A Programming Logic. Semantics of Concurrent Execution. Techniques for Avoiding Interference. Disjoint Variables Weakened Assertions. Global Invariants. Synchronization. An Example: The Array Copy Problem Revisited. Safety and Liveness Properties. Proving Safety Properties. Scheduling Policies and Fairness. 3. Locks and Barriers. The Critical Section Problem. Critical Sections: Spin Locks. Test and Set. Test and Test and Set. Implementing Await Statements. Critical Sections: Fair Solutions. The Tie-Breaker Algorithm. The Ticket Algorithm. The Bakery Algorithm. Barrier Synchronization. Shared Counter. Flags and Coordinators. Symmetric Barriers. Data Parallel Algorithms. Parallel Prefix Computations. Operations on Linked Lists. Grid Computations: Laplace's Equation. Synchronous Multiprocessors. Parallel Computing with a Bag of Tasks. Matrix Multiplication. Adaptive Quadrature. 4. Semaphores. Syntax and Semantics. Basic Problems and Techniques. Critical Sections: Mutual Exclusion. Barriers: Signaling Events. Producers and Consumers: Split Binary Semaphores. Bounded Buffers: Resource Counting. The Dining Philosophers. Readers and Writers. Readers/Writers as an Exclusion Problem. Readers/Writers Using Condition Synchronization. The Technique of Passing the Baton. Alternative Scheduling Policies. Resource Allocation and Scheduling. Problem Definition and General Solution Pattern. Shortest-Job-Next Allocation. Case Study: Pthreads. Thread Creation. Semaphores. Example: A Simple Producer and Consumer. 5. Monitors. Syntax and Semantics. Mutual Exclusion. Condition Variables. Signaling Disciplines. Additional Operations on Condition Variables. Synchronization Techniques. Bounded Buffers: Basic Condition Synchronization. Readers and Writers: Broadcast Signal. Shortest-Job-Next Allocation: Priority Wait. Interval Timer: Covering Conditions. The Sleeping Barber: Rendezvous. Disk Scheduling: Program Structures. Scheduler as a Separate Monitor. Scheduler as an Intermediary. Scheduler as a Nested Monitor. Case Study: Java. The Threads Class. Synchronized Methods. Parallel Readers/Writers. Exclusive Readers/Writers. True Readers/Writers. Case Study: Pthreads. Locks and Condition Variables. Example: Summing the Elements of a Matrix. 6. Implementations. A Single-Processor Kernel. A Multiprocessor Kernel. Implementing Semaphores in a Kernel. Implementing Monitors in a Kernel. Implementing Monitors Using Semaphores. II. DISTRIBUTED PROGRAMMING. 7. Message Passing. Asynchronous Message Passing. Filters: A Sorting Network. Clients and Servers. Active Monitors. A Self-Scheduling Disk Driver. File Servers: Conversational Continuity. Interacting Peers: Exchanging Values. Synchronous Message Passing. Case Study: CSP. Communication Statements. Guarded Communication. Example: The Sieve of Eratosthenes. Case Study: Linda. Tuple Space and Process Interaction. Example: Prime Numbers with a Bag of Tasks. Case Study: MPI. Basic Functions. Global Communication and Synchronization. Case Study: Java. Networks and Sockets. Example: A Remote File Reader. 8. RPC and Rendezvous. Remote Procedure Call. Synchronization in Modules. A Time Server Caches in a Distributed File System. A Sorting Network of Merge Filters. Interacting Peers: Exchanging Values. Rendezvous. Input Statements. Client/Server Examples. A Sorting Network of Merge Filters. Interacting Peers: Exchanging Values. A Multiple Primitives Notation. Invoking and Servicing Operations. Examples. Readers/Writers Revisited. Encapsulated Access. Replicated Files. Case Study: Java. Remote Method Invocation. Example: A Remote Database. Case Study: Ada. Tasks. Rendezvous. Protected Types. Example: The Dining Philosophers. Case Study: SR. Resources and Globals. Communication and Synchronization. Example: Critical Section Simulation. 9. Paradigms for Process Interaction. Managers/Workers (Distributed Bag of Tasks). Sparse Matrix Multiplication. Adaptive Quadrature Revisited. Heartbeat Algorithms. Image Processing: Region Labeling. Cellular Automata: The Game of Life. Pipeline Algorithms. A Distributed Matrix Multiplication Pipeline. Matrix Multiplication by Blocks. Probe/Echo Algorithms. Broadcast in a Network. Computing the Topology of a Network. Broadcast Algorithms. Logical Clocks and Event Ordering. Distributed Semaphores. Token-Passing Algorithms. Distributed Mutual Exclusion. Termination Detection in a Ring. Termination Detection in a Graph. Replicated Servers. Distributed Dining Philosophers. Decentralized Dining Philosophers. 10. Implementations. Asynchronous Message Passing. Shared-Memory Kernel. Distributed Kernel. Synchronous Message Passing. Direct Communication Using Asynchronous Messages. Guarded Communication Using a Clearing House. RPC and Rendezvous. RPC in a Kernel. Rendezvous Using Asynchronous Message Passing. Multiple Primitives in a Kernel. Distributed Shared Memory. Implementation Overview. Page Consistency Protocols. III. PARALLEL PROGRAMMING: Speedup and Efficiency. Overheads and Challenges. 11. Scientific Computing. Grid Computations. Laplace's Equation. Sequential Jacobi Iteration. Shared Variable Program. Message Passing Program. Red/Black Successive Over Relaxation. Multigrid Methods. Particle Computations. The Gravitational #N-Body Problem. Shared Variable Program. Message Passing Programs. Approximate Methods. Matrix Computations. Gaussian Elimination. LU Decomposition. Shared Variable Program. Message Passing Program. 12. Languages, Compilers, Libraries, and Tools. Parallel Programming Libraries. Case Study: Pthreads. Case Study: MPI. Case Study: OpenMP. Parallelizing Compilers. Dependence Analysis. Program Transformations. Other Programming Models. Imperative Languages. Coordination Languages Data Parallel Languages. Functional Languages. Abstract Models. Case Study: High Performance Fortran (HPF). Parallel Programming Tools. Performance Measurement and Visualization. Metacomputers and Metacomputing. Case Study: The Globus Toolkit. 0201357526T04062001
---
paper_title: Cloud computing — Issues, research and implementations

paper_content:

ldquoCloudrdquo computing - a relatively recent term, builds on decades of research in virtualization, distributed computing, utility computing, and more recently networking, web and software services. It implies a service oriented architecture, reduced information technology overhead for the end-user, great flexibility, reduced total cost of ownership, on-demand services and many other things. This paper discusses the concept of ldquocloudrdquo computing, issues it tries to address, related research topics, and a ldquocloudrdquo implementation available today.
---
paper_title: Cloud Computing Principles and Paradigms

paper_content:

The primary purpose of this book is to capture the state-of-the-art in Cloud Computing technologies and applications. The book will also aim to identify potential research directions and technologies that will facilitate creation a global market-place of cloud computing services supporting scientific, industrial, business, and consumer applications. We expect the book to serve as a reference for larger audience such as systems architects, practitioners, developers, new researchers and graduate level students. This area of research is relatively recent, and as such has no existing reference book that addresses it.This book will be a timely contribution to a field that is gaining considerable research interest, momentum, and is expected to be of increasing interest to commercial developers. The book is targeted for professional computer science developers and graduate students especially at Masters level. As Cloud Computing is recognized as one of the top five emerging technologies that will have a major impact on the quality of science and society over the next 20 years, its knowledge will help position our readers at the forefront of the field.
---
paper_title: Cloud Computing Principles and Paradigms

paper_content:

The primary purpose of this book is to capture the state-of-the-art in Cloud Computing technologies and applications. The book will also aim to identify potential research directions and technologies that will facilitate creation a global market-place of cloud computing services supporting scientific, industrial, business, and consumer applications. We expect the book to serve as a reference for larger audience such as systems architects, practitioners, developers, new researchers and graduate level students. This area of research is relatively recent, and as such has no existing reference book that addresses it.This book will be a timely contribution to a field that is gaining considerable research interest, momentum, and is expected to be of increasing interest to commercial developers. The book is targeted for professional computer science developers and graduate students especially at Masters level. As Cloud Computing is recognized as one of the top five emerging technologies that will have a major impact on the quality of science and society over the next 20 years, its knowledge will help position our readers at the forefront of the field.
---
paper_title: Fog computing and its role in the internet of things

paper_content:

Fog Computing extends the Cloud Computing paradigm to the edge of the network, thus enabling a new breed of applications and services. Defining characteristics of the Fog are: a) Low latency and location awareness; b) Wide-spread geographical distribution; c) Mobility; d) Very large number of nodes, e) Predominant role of wireless access, f) Strong presence of streaming and real time applications, g) Heterogeneity. In this paper we argue that the above characteristics make the Fog the appropriate platform for a number of critical Internet of Things (IoT) services and applications, namely, Connected Vehicle, Smart Grid, Smart Cities, and, in general, Wireless Sensors and Actuators Networks (WSANs).
---
paper_title: High-Performance Distributed Multi-Model / Multi-Kernel Simulations: A Case-Study in Jungle Computing

paper_content:

High-performance scientific applications require more and more compute power. The concurrent use of multiple distributed compute resources is vital for making scientific progress. The resulting distributed system, a so-called Jungle Computing System, is both highly heterogeneous and hierarchical, potentially consisting of grids, clouds, stand-alone machines, clusters, desktop grids, mobile devices, and supercomputers, possibly with accelerators such as GPUs. One striking example of applications that can benefit greatly of Jungle Computing Systems are Multi-Model / Multi-Kernel simulations. In these simulations, multiple models, possibly implemented using different techniques and programming models, are coupled into a single simulation of a physical system. Examples include the domain of computational astrophysics and climate modeling. In this paper we investigate the use of Jungle Computing Systems for such Multi-Model / Multi-Kernel simulations. We make use of the software developed in the Ibis project, which addresses many of the problems faced when running applications on Jungle Computing Systems. We create a prototype Jungle-aware version of AMUSE, an astrophysical simulation framework. We show preliminary experiments with the resulting system, using clusters, grids, stand-alone machines, and GPUs.
---
paper_title: Toward a High‐Performance Distributed CBIR System for Hyperspectral Remote Sensing Data: A Case Study in Jungle Computing

paper_content:

Despite the immense performance of modern computing systems, many scientific problems are of such complexity and scale that a wide variety of computing hardware must be employed concurrently. Moreover, as the required hardware often is not available as part of a single system, scientists often are forced to exploit the computing power of a very diverse distributed system. As many different types of This chapter is supported by COST action IC0805 “Open European Network for High Performance Computing on Complex Environments”. This work was partially funded by the Dutch national research program COMMIT. title, edition. By author Copyright c © 2013 John Wiley & Sons, Inc. 1 2 TOWARDS A HIGH-PERFORMANCE DISTRIBUTED CBIR SYSTEM FOR REMOTE SENSING DATA hardware are available nowadays, this results in a complex hierarchical collection of heterogeneous computing hardware, which we refer to as a ‘Jungle Computing System’. Using such a collection of hardware all at once (let alone efficiently) is a difficult problem. An example application domain that brings forth very diverse hardware requirements is that of content-based image retrieval (CBIR) for hyperspectral remote sensing data: whereas algorithms to process remote sensing data are often already computationally complex, instruments for earth observation generate immense amounts of (distributed) data. As a result, to process this data within reasonable time, there is a need to exploit as much available computing power as possible. In this chapter, we present a prototype for a content-based image retrieval system for remotely sensed image data. We focus on hyperspectral data, a type of remote sensing data characterized by very high resolution in the spectral domain. We show that our prototype system can easily be adapted to match the configuration of a Jungle Computing System, and is able to process and search the contents of several repositories efficiently.
---
paper_title: Fog computing and its role in the internet of things

paper_content:

Fog Computing extends the Cloud Computing paradigm to the edge of the network, thus enabling a new breed of applications and services. Defining characteristics of the Fog are: a) Low latency and location awareness; b) Wide-spread geographical distribution; c) Mobility; d) Very large number of nodes, e) Predominant role of wireless access, f) Strong presence of streaming and real time applications, g) Heterogeneity. In this paper we argue that the above characteristics make the Fog the appropriate platform for a number of critical Internet of Things (IoT) services and applications, namely, Connected Vehicle, Smart Grid, Smart Cities, and, in general, Wireless Sensors and Actuators Networks (WSANs).
---
paper_title: Fog computing and its role in the internet of things

paper_content:

Fog Computing extends the Cloud Computing paradigm to the edge of the network, thus enabling a new breed of applications and services. Defining characteristics of the Fog are: a) Low latency and location awareness; b) Wide-spread geographical distribution; c) Mobility; d) Very large number of nodes, e) Predominant role of wireless access, f) Strong presence of streaming and real time applications, g) Heterogeneity. In this paper we argue that the above characteristics make the Fog the appropriate platform for a number of critical Internet of Things (IoT) services and applications, namely, Connected Vehicle, Smart Grid, Smart Cities, and, in general, Wireless Sensors and Actuators Networks (WSANs).
---
paper_title: Fog computing and its role in the internet of things

paper_content:

Fog Computing extends the Cloud Computing paradigm to the edge of the network, thus enabling a new breed of applications and services. Defining characteristics of the Fog are: a) Low latency and location awareness; b) Wide-spread geographical distribution; c) Mobility; d) Very large number of nodes, e) Predominant role of wireless access, f) Strong presence of streaming and real time applications, g) Heterogeneity. In this paper we argue that the above characteristics make the Fog the appropriate platform for a number of critical Internet of Things (IoT) services and applications, namely, Connected Vehicle, Smart Grid, Smart Cities, and, in general, Wireless Sensors and Actuators Networks (WSANs).
---
paper_title: Improving Web Sites Performance Using Edge Servers in Fog Computing Architecture

paper_content:

In this paper, we consider web optimization within Fog Computing context. We apply existing methods for web optimization in a novel manner, such that these methods can be combined with unique knowledge that is only available at the edge (Fog) nodes. More dynamic adaptation to the user's conditions (eg. network status and device's computing load) can also be accomplished with network edge specific knowledge. As a result, a user's web page rendering performance is improved beyond that achieved by simply applying those methods at the web server or CDNs.
---

Title: A Review on Modern Distributed Computing Paradigms: Cloud Computing, Jungle Computing and Fog Computing

Section 1: Introduction
Description 1: Introduce the evolution and significance of distributed computing paradigms, including a brief history and the emergence of new paradigms like Cloud, Jungle, and Fog computing.

Section 2: Cloud Computing
Description 2: Explain the Cloud computing model, its characteristics, concepts, and delivery models. Discuss the benefits and drawbacks of Cloud computing in modern distributed systems.

Section 3: Jungle Computing
Description 3: Describe Jungle computing, its characteristics and complexities. Explore how Jungle computing integrates various computing systems for high performance and reduced programming complexity.

Section 4: Fog Computing
Description 4: Introduce Fog computing, its characteristics, and how it differs from Cloud computing. Discuss its benefits, particularly for latency-sensitive applications and real-time data analytics.

Section 5: Computing in the Jungle
Description 5: Briefly describe software platforms designed to support Jungle computing, specifically the Ibis high-performance distributed programming system and Constellation platform.

Section 6: Conclusion
Description 6: Summarize the key points discussed in the paper, comparing Cloud, Jungle, and Fog computing paradigms and their future potential in distributed computing environments.