Using Concurrency and Parallelism Effectively by Jon Kerridge

using-concurrency-parall-efThis book has two parts, the author of the book described about this book that the aim of this book is to show both students and practitioners that concurrent and parallel programming does not need to be as hard as it is often portrayed and in fact is often easier than building the equivalent sequential system. This will be achieved by presenting a set of example systems that demonstrate the underlying principles of parallel system design based upon real world examples. Each chapter will discuss the complete implementation of such a system, rather than presenting fragments of solutions. The approach will therefore be founded in principled engineering rather than a detailed exploration of the scientific underpinning. The science has been explored in many books but these have not demonstrated the engineering aspects of actually designing and building parallel systems. For the purposes of this book; Concurrent means a system built from a set of processes that execute on a single processor. Parallel means that more than one processor is used to execute the processes and these communicate over some form of network. Within a parallel system it is likely that some of the processors will run some processes concurrently. In this book the readers will read Why Jaa and Groovy and Eclipse? Example presentation, Organization of the book, Supporting materials, A challenge – Thinking parallel, Concurrency and Parallelism, Why Parallel? A multi – player game scenario, The basic concepts, Producer consumer: A fundamental design pattern, A parallel Hello world, Hello Name, Processing simple streams of Data, Process networks: Build it like Lego, Prefix process, Successor process, Parallel copy, Generating a sequence of integers, Testing GNumbers, Creating a running sum, Generating the Fibonacci Sequence, Generating Squares of Numbers, Printing in Parallel, Parallel Processes: Non deterministic input, Reset numbers, Exercising reset numbers, Extending the alternative: A scaling device and queues, The Scaling device definition, Managing a circular queue using alternative pre-conditions, Testing parallel systems: First steps, Testing hello world, Testing the queue process, The queue test script, Deadlock: an introduction, Deadlocking producer and consumer, Multiple network servers, Client – server: Deadlock avoidance by design, Analyzing the queue accessing system, Client and server design patterns, Analyzing the crossed servers network, Deadlock free multi-client and servers interactions, External events: handling data sources, An event handling design pattern, Utilizing the event handling pattern, Analyzing performance bounds, Simple demonstration of the event handling system, Processing multiple event streams, Deadlock revisited: Circular structures,


A first sensible attempt, An improvement, A final resolution, Graphical user interfaces: Brownian motion, Active AWT Widgets, The particle system – Brownian motion, Dining Philosophers: A classic problem, Naïve management, Proactive management, A more sophisticated Canteen, Accessing shared resources: CREW, Crew Map, The Database process, The read clerk process, The write clerk process, Creating the system, Barriers and Buckets: Hand-eye Co-ordination Test, Barrier Manager, Target controller, Target manager, Target Flusher, Display controller, Gallery, Mouse buffer, Target process, Running the system, Communication over networks: Process parallelism, Network nodes and channel numbers, Multiple writers to one reader, A single writer connected to multiple readers, Networked dining philosophers, Running the CREW Database in a Network, Dynamic Process networks: A print server, Print spooler data objects, The print user process, The Print Spooler process, Invoking the print spooler node, Invoking a print user node, More testing: Non-terminating process, The test-network, The process network under test, Running the test, Mobile agents: Going for a trip, Mobile agent interface, A first parallel agent system, Running the agent on a network of nodes, Result returning agent, An agent with forward and back channels, Let’s Go on a trip, Mobile processes: Ubiquitous access, The Travellers meeting system, The Service architecture, Universal client, The access server, Group location service, Running the system, Redirecting channels: A self-monitoring process ring, Architectural overview, The receiver process, The prompter process, The queue process, The state manager process, The stop agent, The restart agent, The ring agent element process, Running a node, Observing the systems operation, Mobility: Process discovery, The adaptive agent, The node process, The data generator process, The gather process, Definition of the data processing processes, Running the system, Typical output from the gatherer process, Automatic class loading – process farms, Data parallel architectures, Task parallel architectures, Generic architectures, Architectural implementation, Programming high performance clusters, Architectural overview, The host and node scripts, An application – Montecarlo Pi, Big data – solution scaling, Concordance – A typical problem, Concordance data structures, The algorithm, Analysis of total time results, Analysis of algorithm phases, Dealing with larger data sets, Implementation of the scalable architecture, Performance  analysis of the distributed system, The initial challenge – A review and much more.

To download this book, please click the link below:
Click here to download Using Concurrency and Parallelism Effectively Part 1
Click here to download Using Concurrency and Parallelism Effectively Part 2

Leave A Reply

Your email address will not be published.