Parallel processing Books
Pearson Education (US) Functional and Concurrent Programming
Book SynopsisMichel Charpentier is an associate professor with the Computer Science department at the University of New Hampshire (UNH). His interests over the years have ranged from distributed systems to formal verification and mobile sensor networks. He has been with UNH since 1999 and currently teaches courses in programming languages, concurrency, formal verification, and model-checking.Table of ContentsForeword by Cay Horstmann xxiii Preface xxv Acknowledgments xxxv About the Author xxxvii Part I. Functional Programming 1 Chapter 1: Concepts of Functional Programming 3 1.1 What Is Functional Programming? 3 1.2 Functions 4 1.3 From Functions to Functional Programming Concepts 6 1.4 Summary 7 Chapter 2: Functions in Programming Languages 9 2.1 Defining Functions 9 2.2 Composing Functions 10 2.3 Functions Defined as Methods 12 2.4 Operators Defined as Methods 12 2.5 Extension Methods 13 2.6 Local Functions 14 2.7 Repeated Arguments 15 2.8 Optional Arguments 16 2.9 Named Arguments 16 2.10 Type Parameters 17 2.11 Summary 19 Chapter 3: Immutability 21 3.1 Pure and Impure Functions 21 3.2 Actions 23 3.3 Expressions Versus Statements 25 3.4 Functional Variables 26 3.5 Immutable Objects 28 3.6 Implementation of Mutable State 29 3.7 Functional Lists 31 3.8 Hybrid Designs 32 3.9 Updating Collections of Mutable/Immutable Objects 35 3.10 Summary 36 Chapter 4: Case Study: Active–Passive Sets 39 4.1 Object-Oriented Design 39 4.2 Functional Values 41 4.3 Functional Objects 43 4.4 Summary 44 Chapter 5: Pattern Matching and Algebraic Data Types 47 5.1 Functional Switch 47 5.2 Tuples 48 5.3 Options 50 5.4 Revisiting Functional Lists 51 5.5 Trees 53 5.6 Illustration: List Zipper 56 5.7 Extractors 59 5.8 Summary 60 Chapter 6: Recursive Programming 63 6.1 The Need for Recursion 63 6.2 Recursive Algorithms 65 6.3 Key Principles of Recursive Algorithms 67 6.4 Recursive Structures 69 6.5 Tail Recursion 71 6.6 Examples of Tail Recursive Functions 73 6.7 Summary 77 Chapter 7: Recursion on Lists 79 7.1 Recursive Algorithms as Equalities 79 7.2 Traversing Lists 80 7.3 Returning Lists 82 7.4 Building Lists from the Execution Stack 84 7.5 Recursion on Multiple/Nested Lists 85 7.6 Recursion on Sublists Other Than the Tail 88 7.7 Building Lists in Reverse Order 90 7.8 Illustration: Sorting 92 7.9 Building Lists Efficiently 94 7.10 Summary 96 Chapter 8: Case Study: Binary Search Trees 99 8.1 Binary Search Trees 99 8.2 Sets of Integers as Binary Search Trees 100 8.3 Implementation Without Rebalancing 102 8.4 Self-Balancing Trees 107 8.5 Summary 113 Chapter 9: Higher-Order Functions 115 9.1 Functions as Values 115 9.2 Currying 118 9.3 Function Literals 120 9.4 Functions Versus Methods 123 9.5 Single-Abstract-Method Interfaces 124 9.6 Partial Application 125 9.7 Closures 130 9.8 Inversion of Control 133 9.9 Summary 133 Chapter 10: Standard Higher-Order Functions 137 10.1 Functions with Predicate Arguments 137 10.2 map and foreach 140 10.3 atMap 141 10.4 fold and reduce 146 10.5 iterate, tabulate, and unfold 148 10.6 sortWith, sortBy, maxBy, and minBy 149 10.7 groupBy and groupMap 150 10.8 Implementing Standard Higher-Order Functions 152 10.9 foreach, map, atMap, and for-Comprehensions 152 10.10 Summary 155 Chapter 11: Case Study: File Systems as Trees 157 11.1 Design Overview 157 11.2 A Node-Searching Helper Function 158 11.3 String Representation 158 11.4 Building Trees 160 11.5 Querying 164 11.6 Navigation 168 11.7 Tree Zipper 169 11.8 Summary 172 Chapter 12: Lazy Evaluation 173 12.1 Delayed Evaluation of Arguments 173 12.2 By-Name Arguments 174 12.3 Control Abstraction 176 12.4 Internal Domain-Specifc Languages 179 12.5 Streams as Lazily Evaluated Lists 180 12.6 Streams as Pipelines 182 12.7 Streams as Infinite Data Structures 184 12.8 Iterators 184 12.9 Lists, Streams, Iterators, and Views 187 12.10 Delayed Evaluation of Fields and Local Variables 190 12.11 Illustration: Subset-Sum 191 12.12 Summary 193 Chapter 13: Handling Failures 195 13.1 Exceptions and Special Values 195 13.2 Using Option 197 13.3 Using Try 198 13.4 Using Either 199 13.5 Higher-Order Functions and Pipelines 201 13.6 Summary 204 Chapter 14: Case Study: Trampolines 205 14.1 Tail-Call Optimization 205 14.2 Trampolines for Tail-Calls 206 14.3 Tail-Call Optimization in Java 207 14.4 Dealing with Non-Tail-Calls 209 14.5 Summary 213 A Brief Interlude 215 Chapter 15: Types (and Related Concepts) 217 15.1 Typing Strategies 217 15.2 Types as Sets 222 15.3 Types as Services 223 15.4 Abstract Data Types 224 15.5 Type Inference 225 15.6 Subtypes 229 15.7 Polymorphism 232 15.8 Type Variance 235 15.9 Type Bounds 241 15.10 Type Classes 245 15.11 Summary 250 Part II. Concurrent Programming 253 Chapter 16: Concepts of Concurrent Programming 255 16.1 Non-sequential Programs 255 16.2 Concurrent Programming Concepts 258 16.3 Summary 259 Chapter 17: Threads and Nondeterminism 261 17.1 Threads of Execution 261 17.2 Creating Threads Using Lambda Expressions 263 17.3 Nondeterministic Behavior of Multithreaded Programs 263 17.4 Thread Termination 264 17.5 Testing and Debugging Multithreaded Programs 266 17.6 Summary 268 Chapter 18: Atomicity and Locking 271 18.1 Atomicity 271 18.2 Non-atomic Operations 273 18.3 Atomic Operations and Non-atomic Composition 274 18.4 Locking 278 18.5 Intrinsic Locks 279 18.6 Choosing Locking Targets 281 18.7 Summary 283 Chapter 19: Thread-Safe Objects 285 19.1 Immutable Objects 285 19.2 Encapsulating Synchronization Policies 286 19.3 Avoiding Reference Escape 288 19.4 Public and Private Locks 289 19.5 Leveraging Immutable Types 290 19.6 Thread-Safety 293 19.7 Summary 295 Chapter 20: Case Study: Thread-Safe Queue 297 20.1 Queues as Pairs of Lists 297 20.2 Single Public Lock Implementation 298 20.3 Single Private Lock Implementation 301 20.4 Applying Lock Splitting 303 20.5 Summary 305 Chapter 21: Thread Pools 307 21.1 Fire-and-Forget Asynchronous Execution 307 21.2 Illustration: Parallel Server 309 21.3 Different Types of Thread Pools 312 21.4 Parallel Collections 314 21.5 Summary 318 Chapter 22: Synchronization 321 22.1 Illustration of the Need for Synchronization 321 22.2 Synchronizers 324 22.3 Deadlocks 325 22.4 Debugging Deadlocks with Thread Dumps 328 22.5 The Java Memory Model 330 22.6 Summary 335 Chapter 23: Common Synchronizers 337 23.1 Locks 337 23.2 Latches and Barriers 339 23.3 Semaphores 341 23.4 Conditions 343 23.5 Blocking Queues 349 23.6 Summary 353 Chapter 24: Case Study: Parallel Execution 355 24.1 Sequential Reference Implementation 355 24.2 One New Thread per Task 356 24.3 Bounded Number of Threads 357 24.4 Dedicated Thread Pool 359 24.5 Shared Thread Pool 360 24.6 Bounded Thread Pool 361 24.7 Parallel Collections 362 24.8 Asynchronous Task Submission Using Conditions 362 24.9 Two-Semaphore Implementation 367 24.10 Summary 368 Chapter 25: Futures and Promises 369 25.1 Functional Tasks 369 25.2 Futures as Synchronizers 371 25.3 Timeouts, Failures, and Cancellation 374 25.4 Future Variants 375 25.5 Promises 375 25.6 Illustration: Thread-Safe Caching 377 25.7 Summary 379 Chapter 26: Functional-Concurrent Programming 381 26.1 Correctness and Performance Issues with Blocking 381 26.2 Callbacks 384 26.3 Higher-Order Functions on Futures 385 26.4 Function atMap on Futures 388 26.5 Illustration: Parallel Server Revisited 390 26.6 Functional-Concurrent Programming Patterns 393 26.7 Summary 397 Chapter 27: Minimizing Thread Blocking 399 27.1 Atomic Operations 399 27.2 Lock-Free Data Structures 402 27.3 Fork/Join Pools 405 27.4 Asynchronous Programming 406 27.5 Actors 407 27.6 Reactive Streams 411 27.7 Non-blocking Synchronization 412 27.8 Summary 414 Chapter 28: Case Study: Parallel Strategies 417 28.1 Problem Definition 417 28.2 Sequential Implementation with Timeout 419 28.3 Parallel Implementation Using invokeAny 420 28.4 Parallel Implementation Using CompletionService 421 28.5 Asynchronous Implementation with Scala Futures 422 28.6 Asynchronous Implementation with CompletableFuture 426 28.7 Caching Results from Strategies 427 28.8 Summary 431 Appendix A. Features of Java and Kotlin 433 A.1 Functions in Java and Kotlin 433 A.2 Immutability 436 A.3 Pattern Matching and Algebraic Data Types 437 A.4 Recursive Programming 439 A.5 Higher-Order Functions 440 A.6 Lazy Evaluation 446 A.7 Handling Failures 449 A.8 Types 451 A.9 Threads 453 A.10 Atomicity and Locking 454 A.11 Thread-Safe Objects 455 A.12 Thread Pools 457 A.13 Synchronization 459 A.14 Futures and Functional-Concurrent Programming 460 A.15 Minimizing Thread Blocking 461 Glossary 463 Index 465
£37.79
Pearson Education (US) CUDA for Engineers
Book SynopsisDuane Storti is a professor of mechanical engineering at the University of Washington in Seattle. He has thirty-five years of experience in teaching and research in the areas of engineering mathematics, dynamics and vibrations, computer-aided design, 3D printing, and applied GPU computing. Mete Yurtoglu is currently pursuing an M.S. in applied mathematics and a Ph.D. in mechanical engineering at the University of Washington in Seattle. His research interests include GPU-based methods for computer vision and machine learning. Table of Contents Acknowledgments xvii About the Authors xix Introduction 1 What Is CUDA? 1 What Does “Need-to-Know” Mean for Learning CUDA? 2 What Is Meant by “for Engineers”? 3 What Do You Need to Get Started with CUDA? 4 How Is This Book Structured? 4 Conventions Used in This Book 8 Code Used in This Book 8 User’s Guide 9 Historical Context 10 References 12 Chapter 1: First Steps 13 Running CUDA Samples 13 Running Our Own Serial Apps 19 Summary 22 Suggested Projects 23 Chapter 2: CUDA Essentials 25 CUDA’s Model for Parallelism 25 Need-to-Know CUDA API and C Language Extensions 28 Summary 31 Suggested Projects 31 References 31 Chapter 3: From Loops to Grids 33 Parallelizing dist_v1 33 Parallelizing dist_v2 38 Standard Workflow 42 Simplified Workflow 43 Summary 47 Suggested Projects 48 References 48 Chapter 4: 2D Grids and Interactive Graphics 49 Launching 2D Computational Grids 50 Live Display via Graphics Interop 56 Application: Stability 66 Summary 76 Suggested Projects 76 References 77 Chapter 5: Stencils and Shared Memory 79 Thread Interdependence 80 Computing Derivatives on a 1D Grid 81 Summary 117 Suggested Projects 118 References 119 Chapter 6: Reduction and Atomic Functions 121 Threads Interacting Globally 121 Implementing parallel_dot 123 Computing Integral Properties: centroid_2d 130 Summary 138 Suggested Projects 138 References 138 Chapter 7: Interacting with 3D Data 141 Launching 3D Computational Grids: dist_3d 144 Viewing and Interacting with 3D Data: vis_3d 146 Summary 171 Suggested Projects 171 References 171 Chapter 8: Using CUDA Libraries 173 Custom versus Off-the-Shelf 173 Thrust 175 cuRAND 190 NPP 193 Linear Algebra Using cuSOLVER and cuBLAS . 201 cuDNN 207 ArrayFire 207 Summary 207 Suggested 208 References 209 Chapter 9: Exploring the CUDA Ecosystem 211 The Go-To List of Primary Sources 211 Further Sources 217 Summary 218 Suggested Projects 219 Appendix A: Hardware Setup 221 Checking for an NVIDIA GPU: Windows 221 Checking for an NVIDIA GPU: OS X 222 Checking for an NVIDIA GPU: Linux 223 Determining Compute Capability 223 Upgrading Compute Capability 225 Appendix B: Software Setup 229 Windows Setup 229 OS X Setup 238 Linux Setup 240 Appendix C: Need-to-Know C Programming 245 Characterization of C 245 C Language Basics 246 Data Types, Declarations, and Assignments 248 Defining Functions 250 Building Apps: Create, Compile, Run, Debug 251 Arrays, Memory Allocation, and Pointers 262 Control Statements: for, if 263 Sample C Programs 267 References 277 Appendix D: CUDA Practicalities: Timing, Profiling, Error Handling, and Debugging 279 Execution Timing and Profiling 279 Error Handling 292 Debugging in Windows 298 Debugging in Linux 305 CUDA-MEMCHECK 308 Using Visual Studio Property Pages 309 References 312 Index 313
£31.82
World Scientific Publishing Co Pte Ltd Parallel Algorithms
Book SynopsisThis book is an introduction to the field of parallel algorithms and the underpinning techniques to realize the parallelization. The emphasis is on designing algorithms within the timeless and abstracted context of a high-level programming language. The focus of the presentation is on practical applications of the algorithm design using different models of parallel computation. Each model is illustrated by providing an adequate number of algorithms to solve some problems that quite often arise in many applications in science and engineering.The book is largely self-contained, presuming no special knowledge of parallel computers or particular mathematics. In addition, the solutions to all exercises are included at the end of each chapter.The book is intended as a text in the field of the design and analysis of parallel algorithms. It includes adequate material for a course in parallel algorithms at both undergraduate and graduate levels.
£108.00
Pearson Education Principles of Concurrent and Distributed
Book SynopsisMordechai (Moti) Ben-Ari is an Associate Professor in the Department of Science Teaching at the Weizmann Institute of Science in Rehovot, Israel. He is the author of texts on Ada, concurrent programming, programming languages, and mathematical logic, as well as Just a Theory: Exploring the Nature of Science. In 2004 he was honored with the ACM/SIGCSE Award for Outstanding Contribution to Computer Science Education.Table of ContentsContents Preface xi 1 What is Concurrent Programming? 1 1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 Concurrency as abstract parallelism . . . . . . . . . . . . . . . . 2 1.3 Multitasking . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.4 The terminology of concurrency . . . . . . . . . . . . . . . . . 4 1.5 Multiple computers . . . . . . . . . . . . . . . . . . . . . . . . 5 1.6 The challenge of concurrent programming . . . . . . . . . . . . 5 2 The Concurrent Programming Abstraction 7 2.1 The role of abstraction . . . . . . . . . . . . . . . . . . . . . . . 7 2.2 Concurrent execution as interleaving of atomic statements . . . . 8 2.3 Justification of the abstraction . . . . . . . . . . . . . . . . . . . 13 2.4 Arbitrary interleaving . . . . . . . . . . . . . . . . . . . . . . . 17 2.5 Atomic statements . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.6 Correctness . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.7 Fairness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 2.8 Machine-code instructions . . . . . . . . . . . . . . . . . . . . . 24 2.9 Volatile and non-atomic variables . . . . . . . . . . . . . . . . . 28 2.10 The BACI concurrency simulator . . . . . . . . . . . . . . . . . 29 2.11 Concurrency in Ada . . . . . . . . . . . . . . . . . . . . . . . . 31 2.12 Concurrency in Java . . . . . . . . . . . . . . . . . . . . . . . . 34 2.13 Writing concurrent programs in Promela . . . . . . . . . . . . . 36 2.14 Supplement: the state diagram for the frog puzzle . . . . . . . . 37 3 The Critical Section Problem 45 3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 3.2 The definition of the problem . . . . . . . . . . . . . . . . . . . 45 3.3 First attempt . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 3.4 Proving correctness with state diagrams . . . . . . . . . . . . . . 49 3.5 Correctness of the first attempt . . . . . . . . . . . . . . . . . . 53 3.6 Second attempt . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 3.7 Third attempt . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 3.8 Fourth attempt . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 3.9 Dekker’s algorithm . . . . . . . . . . . . . . . . . . . . . . . . 60 3.10 Complex atomic statements . . . . . . . . . . . . . . . . . . . . 61 4 Verification of Concurrent Programs 67 4.1 Logical specification of correctness properties . . . . . . . . . . 68 4.2 Inductive proofs of invariants . . . . . . . . . . . . . . . . . . . 69 4.3 Basic concepts of temporal logic . . . . . . . . . . . . . . . . . 72 4.4 Advanced concepts of temporal logic . . . . . . . . . . . . . . . 75 4.5 A deductive proof of Dekker’s algorithm . . . . . . . . . . . . . 79 4.6 Model checking . . . . . . . . . . . . . . . . . . . . . . . . . . 83 4.7 Spin and the Promela modeling language . . . . . . . . . . . . . 83 4.8 Correctness specifications in Spin . . . . . . . . . . . . . . . . . 86 4.9 Choosing a verification technique . . . . . . . . . . . . . . . . . 88 5 Advanced Algorithms for the Critical Section Problem 93 5.1 The bakery algorithm . . . . . . . . . . . . . . . . . . . . . . . 93 5.2 The bakery algorithm for N processes . . . . . . . . . . . . . . 95 5.3 Less restrictive models of concurrency . . . . . . . . . . . . . . 96 5.4 Fast algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 5.5 Implementations in Promela . . . . . . . . . . . . . . . . . . . . 104
£68.39
Manning Publications Grokking Concurrency
Book SynopsisThis easy-to-read, hands-on guide demystifies concurrency concepts like threading, asynchronous programming, and parallel processing in any language. For readers who know the basics of programming. Grokking Concurrency is the ultimate guide to effective concurrency practices that will help you leverage multiple cores, excel with high loads, handle terabytes of data, and continue working after hardware and software failures. The core concepts in this guide will remain eternally relevant, whether you are building web apps, IoT systems, or handling big data. Specifically, you will: Get up to speed with the core concepts of concurrency, asynchrony, and parallel programming Learn the strengths and weaknesses of different hardware architectures Improve the sequential performance characteristics of your software Solve common problems for concurrent programming Compose patterns into a series of practices for writing scalable systems Write and implement concurrency systems that scale to any size Grokking Concurrency demystifies writing high-performance concurrent code through clear explanations of core concepts, interesting illustrations, insightful examples, and detailed techniques you can apply to your own projects. About the technology Microservices, big data, real-time systems, and other performance-intensive applications can all slow your systems to a crawl. You know the solution is “concurrency.” Now what? How do you choose among concurrency approaches? How can you be sure you will actually reduce latency and complete your jobs faster? This entertaining, fully illustrated guide answers all of your concurrency questions so you can start taking full advantage of modern multicore processors.Trade ReviewDon't be afraid about concurrency, learn from Grokking Concurrency! Eddu Melendez This book is a model of clarity. It clearly puts back not-so-well-known concepts in context. Luc Rogge The Manning Grokking series has a well deserved good reputation and this book will not let the series down. Patrick Regan
£37.04
O'Reilly Media Foundations of Scalable Systems
Book SynopsisThis practical book covers design approaches and technologies that make it possible to scale an application quickly and cost-effectively. Author Ian Gorton takes software architects and developers through the principles of foundational distributed systems.
£39.74
Pearson Education (US) OpenACC for Programmers
Book SynopsisSunita Chandrasekaran is assistant professor in the Computer and Information Sciences Department at the University of Delaware. Her research interests include exploring the suitability of high-level programming models and runtime systems for HPC and embedded platforms, and migrating scientific applications to heterogeneous computing systems. Dr. Chandrasekaran was a post-doctoral fellow at the University of Houston and holds a Ph.D. from Nanyang Technological University, Singapore. She is a member of OpenACC, OpenMP, MCA and SPEC HPG. She has served on the program committees of various conferences and workshops including SC, ISC, ICPP, CCGrid, Cluster, and PACT, and has co-chaired parallel programming workshops co-located with SC, ISC, IPDPS, and SIAM. Guido Juckeland is head of the Computational Science Group, Department for Information Services and Computing, Helmholtz-Zentrum Dresden-Rossendorf, and coordinates the work of the GPU Center Table of ContentsForeword xv Preface xxi Acknowledgments xxiii About the Contributors xxv Chapter 1: OpenACC in a Nutshell 1 1.1 OpenACC Syntax 3 1.2 Compute Constructs 6 1.3 The Data Environment 11 1.4 Summary 15 1.5 Exercises 15 Chapter 2: Loop-Level Parallelism 17 2.1 Kernels Versus Parallel Loops 18 2.2 Three Levels of Parallelism 21 2.3 Other Loop Constructs 24 2.4 Summary 30 2.5 Exercises 31 Chapter 3: Programming Tools for OpenACC 33 3.1 Common Characteristics of Architectures 34 3.2 Compiling OpenACC Code 35 3.3 Performance Analysis of OpenACC Applications 36 3.4 Identifying Bugs in OpenACC Programs 51 3.5 Summary 53 3.6 Exercises 54 Chapter 4: Using OpenACC for Your First Program 59 4.1 Case Study 59 4.2 Creating a Naive Parallel Version 68 4.3 Performance of OpenACC Programs 71 4.4 An Optimized Parallel Version 73 4.5 Summary 78 4.6 Exercises 79 Chapter 5: Compiling OpenACC 81 5.1 The Challenges of Parallelism 82 5.2 Restructuring Compilers 88 5.3 Compiling OpenACC 92 5.4 Summary 97 5.5 Exercises 97 Chapter 6: Best Programming Practices 101 6.1 General Guidelines 102 6.2 Maximize On-Device Compute 105 6.3 Optimize Data Locality 108 6.4 A Representative Example 112 6.5 Summary 118 6.6 Exercises 119 Chapter 7: OpenACC and Performance Portability 121 7.1 Challenges 121 7.2 Target Architectures 123 7.3 OpenACC for Performance Portability 124 7.4 Code Refactoring for Performance Portability126 7.5 Summary 132 7.6 Exercises133 Chapter 8: Additional Approaches to Parallel Programming 135 8.1 Programming Models135 8.2 Programming Model Components142 8.3 A Case Study 155 8.4 Summary170 8.5 Exercises170 Chapter 9: OpenACC and Interoperability 173 9.1 Calling Native Device Code from OpenACC 174 9.2 Calling OpenACC from Native Device Code 181 9.3 Advanced Interoperability Topics 182 9.4 Summary185 9.5 Exercises185 Chapter 10: Advanced OpenACC 187 10.1 Asynchronous Operations 187 10.2 Multidevice Programming 204 10.3 Summary 213 10.4 Exercises 213 Chapter 11: Innovative Research Ideas Using OpenACC, Part I 215 11.1 Sunway OpenACC 215 11.2 Compiler Transformation of Nested Loops for Accelerators 224 Chapter 12: Innovative Research Ideas Using OpenACC, Part II 237 12.1 A Framework for Directive-Based High-Performance Reconfigurable Computing 237 12.2 Programming Accelerated Clusters Using XcalableACC 253 Index 269
£35.14
Packt Publishing Limited Kubernetes in Production Best Practices: Build
Book SynopsisDesign, build, and operate scalable and reliable Kubernetes infrastructure for productionKey Features Implement industry best practices to build and manage production-grade Kubernetes infrastructure Learn how to architect scalable Kubernetes clusters, harden container security, and fine-tune resource management Understand, manage, and operate complex business workloads confidently Book DescriptionAlthough out-of-the-box solutions can help you to get a cluster up and running quickly, running a Kubernetes cluster that is optimized for production workloads is a challenge, especially for users with basic or intermediate knowledge. With detailed coverage of cloud industry standards and best practices for achieving scalability, availability, operational excellence, and cost optimization, this Kubernetes book is a blueprint for managing applications and services in production.You'll discover the most common way to deploy and operate Kubernetes clusters, which is to use a public cloud-managed service from AWS, Azure, or Google Cloud Platform (GCP). This book explores Amazon Elastic Kubernetes Service (Amazon EKS), the AWS-managed version of Kubernetes, for working through practical exercises. As you get to grips with implementation details specific to AWS and EKS, you'll understand the design concepts, implementation best practices, and configuration applicable to other cloud-managed services. Throughout the book, you'll also discover standard and cloud-agnostic tools, such as Terraform and Ansible, for provisioning and configuring infrastructure.By the end of this book, you'll be able to leverage Kubernetes to operate and manage your production environments confidently.What you will learn Explore different infrastructure architectures for Kubernetes deployment Implement optimal open source and commercial storage management solutions Apply best practices for provisioning and configuring Kubernetes clusters, including infrastructure as code (IaC) and configuration as code (CAC) Configure the cluster networking plugin and core networking components to get the best out of them Secure your Kubernetes environment using the latest tools and best practices Deploy core observability stacks, such as monitoring and logging, to fine-tune your infrastructure Who this book is forThis book is for cloud infrastructure experts, DevOps engineers, site reliability engineers, and engineering managers looking to design and operate Kubernetes infrastructure for production. Basic knowledge of Kubernetes, Terraform, Ansible, Linux, and AWS is needed to get the most out of this book.Table of ContentsTable of Contents Introduction to Kubernetes Infrastructure and Production-Readiness Architecting Production-Grade Kubernetes Infrastructure Provisioning Kubernetes Clusters Using AWS and Terraform Managing Cluster Configuration with Ansible Configuring and Enhancing Kubernetes Networking Services Securing Kubernetes Effectively Managing Storage and Stateful Applications Deploying Seamless and Reliable Applications Monitoring, Logging, and Observability Operating and Maintaining Efficient Kubernetes Clusters
£27.99
Gaul Communications Assembly Language Coding in Color ARM and NEON
£14.24
Nova Science Publishers Inc Advanced Parallel & Distributed Computing:
Book Synopsis
£999.99
Nova Science Publishers Inc Performance Modelling Techniques for Parallel
Book Synopsis
£39.19
New Age International (UK) Ltd Parallel Computing
Book Synopsis
£30.00
Oxford University Press, USA Parallel Optimization Theory Algorithms and Applications Numerical Mathematics and Scientific Computation
Book SynopsisThis text provides an introduction to the methods of parallel optimization by introducing parallel computing ideas and techniques into both optimization theory and numerical algorithms for large-scale optimization problems.Trade Review"This book presents a domain that arises where two different branches of science, namely parallel computations and the theory of constrained optimization, intersect with real life problems. This domain, called parallel optimization, has been developing rapidly under the stimulus of progress in computer technology. The book focuses on parallel optimization methods for large-scale constrained optimization problems and structured linear problems. . . . [It] covers a vast portion of parallel optimization, though full coverage of this domain, as the authors admit, goes far beyond the capacity of a single monograph. This book, however, in over 500 pages brings an excellent and in-depth presentation of all the major aspects of a process which matches theory and methods of optimization with modern computers. The volume can be recommended for graduate students, faculty, and researchers in any of those fields."--Mathematical Reviews "This book presents a domain that arises where two different branches of science, namely parallel computations and the theory of constrained optimization, intersect with real life problems. This domain, called parallel optimization, has been developing rapidly under the stimulus of progress in computer technology. The book focuses on parallel optimization methods for large-scale constrained optimization problems and structured linear problems. . . . [It] covers a vast portion of parallel optimization, though full coverage of this domain, as the authors admit, goes far beyond the capacity of a single monograph. This book, however, in over 500 pages brings an excellent and in-depth presentation of all the major aspects of a process which matches theory and methods of optimization with modern computers. The volume can be recommended for graduate students, faculty, and researchers in any of those fields."--Mathematical ReviewsTable of ContentsForeword ; Preface ; Glossary of Symbols ; 1. Introduction ; Part I Theory ; 2. Generalized Distances and Generalized Projections ; 3. Proximal Minimization with D-Functions ; Part II Algorithms ; 4. Penalty Methods, Barrier Methods and Augmented Lagrangians ; 5. Iterative Methods for Convex Feasibility Problems ; 6. Iterative Algorithms for Linearly Constrained Optimization Problems ; 7. Model Decomposition Algorithms ; 8. Decompositions in Interior Point Algorithms ; Part III Applications ; 9. Matrix Estimation Problems ; 10. Image Reconsturction from Projections ; 11. The Inverse Problem in Radiation Therapy Treatment Planning ; 12. Multicommodity Network Flow Problems ; 13. Planning Under Uncertainty ; 14. Decompositions for Parallel Computing ; 15. Numerical Investigations
£217.50
MIT Press Ltd Using MPI Portable Parallel Programming with the
Book SynopsisThe thoroughly updated edition of a guide to parallel programming with MPI, reflecting the latest specifications, with many detailed examples. This book offers a thoroughly updated guide to the MPI (Message-Passing Interface) standard library for writing programs for parallel computers. Since the publication of the previous edition of Using MPI, parallel computing has become mainstream. Today, applications run on computers with millions of processors; multiple processors sharing memory and multicore processors with multiple hardware threads per core are common. The MPI-3 Forum recently brought the MPI standard up to date with respect to developments in hardware capabilities, core language evolution, the needs of applications, and experience gained over the years by vendors, implementers, and users. This third edition of Using MPI reflects these changes in both text and example code. The book takes an informal, tutorial approach, introducing each concept t
£999.99
Springer Parallel Solution of Partial Differential Equations
a huge range and FREE tracked UK delivery on ALL orders.
£65.50
Gaul Communications Windows 64bit Assembly Language Programming Quick Start Intel X8664 SSE AVX
£14.24
Action Publishing Technology Ltd Magnetic Core Memory Decoded
£24.70
LEGARE STREET PR Telephony a Comprehensive and Detailed Exposition of the Theory and Practice of the Telephone Art
a huge range and FREE tracked UK delivery on ALL orders.
£37.95
Legare Street Press Detecting Nondeterminism in Shared Memory Parallel Programs
a huge range and FREE tracked UK delivery on ALL orders.
£23.70
Manning Publications Concurrency in .NET: Modern patterns of concurrent and parallel programming
Book SynopsisDescription Functional languages help developers support concurrency by encouraging immutable data structures that can be passed between threads without having to worry about a shared state, all while avoiding side effects. Functional Concurrency in .NET teaches readers how to build concurrent and scalable programs in .NET using the functional paradigm. This intermediate-level guide is aimed at developers, architects, and passionate computer programmers. Key Features • In-depth explanations • Hands-on examples • Step-by-step instructions Audience This book is for readers with solid knowledge of a mainstream programming language, preferably C# or F#. About the technology To maximize the utilization of the computational resources available, the Microsoft .NET platform provides parallel execution of code through multithreading. By leveraging parallelism, a program can take full advantage of the resources available. Riccardo Terrell is a .NET seasoned software engineer, senior software architect and Microsoft MVP who is passionate about functional programming. He is well known and actively involved in the functional programming community including .NET meet ups and conferences and is the organizer for the Washington DC F# User Group. MANNING
£40.79
£15.71
Packt Publishing Limited Rust from Beginner to Professional
£44.07
Packt Publishing Limited C++ High Performance: Master the art of optimizing the functioning of your C++ code
Book SynopsisA comprehensive guide to help aspiring and professional C++ developers elevate the performance of their apps by allowing them to run faster and consume fewer resources.Purchase of the print or Kindle book includes a free eBook in PDF format.Key Features Updated to C++20 with completely revised code and more content on error handling, benchmarking, memory allocators, and concurrent programming Explore the latest C++20 features including concepts, ranges, and coroutines Utilize C++ constructs and techniques to carry out effective data structure optimization and memory management Book DescriptionC++ High Performance, Second Edition guides you through optimizing the performance of your C++ apps. This allows them to run faster and consume fewer resources on the device they're running on without compromising the readability of your codebase. The book begins by introducing the C++ language and some of its modern concepts in brief. Once you are familiar with the fundamentals, you will be ready to measure, identify, and eradicate bottlenecks in your C++ codebase. By following this process, you will gradually improve your style of writing code. The book then explores data structure optimization, memory management, and how it can be used efficiently concerning CPU caches. After laying the foundation, the book trains you to leverage algorithms, ranges, and containers from the standard library to achieve faster execution, write readable code, and use customized iterators. It provides hands-on examples of C++ metaprogramming, coroutines, reflection to reduce boilerplate code, proxy objects to perform optimizations under the hood, concurrent programming, and lock-free data structures. The book concludes with an overview of parallel algorithms. By the end of this book, you will have the ability to use every tool as needed to boost the efficiency of your C++ projects.What you will learn Write specialized data structures for performance-critical code Use modern metaprogramming techniques to reduce runtime calculations Achieve efficient memory management using custom memory allocators Reduce boilerplate code using reflection techniques Reap the benefits of lock-free concurrent programming Gain insights into subtle optimizations used by standard library algorithms Compose algorithms using ranges library Develop the ability to apply metaprogramming aspects such as constexpr, constraints, and concepts Implement lazy generators and asynchronous tasks using C++20 coroutines Who this book is forIf you're a C++ developer looking to improve the efficiency of your code or just keen to upgrade your skills to the next level, this book is for you.Table of ContentsTable of Contents A Brief Introduction to C++ Essential C++ Techniques Analyzing and Measuring Performance Data Structures Algorithms Using Ranges and Views Memory Management Compile-Time Programming Essential Utilities Proxy Objects and Lazy Evaluation Concurrency Coroutines and Lazy Generators Asynchronous Programming with Coroutines Parallel STL Algorithms
£43.99
College Publications Measuring Organisational Efficiency
£13.50
Orange Education Pvt Ltd Parallel and High Performance Programming with Python: Unlock Parallel and Concurrent Programming in Python Using Multithreading, Cuda, Pytorch and Dask.
£29.06
Independently Published HighPerformance Systems with Rust
£26.73
Independently Published Concurrent Distributed Rust
£999.99
Amazon Digital Services LLC - Kdp Modern LISP Systems Programming
£22.72
Amazon Digital Services LLC - Kdp Asynchronous Programming with C
£16.32
Independently Published C Concurrency Parallel Programming
£15.55
Independently Published Concurrency for Beginners
£13.99
Amazon Digital Services LLC - Kdp Go REST API Development
£20.32
Amazon Digital Services LLC - Kdp HandsOn Concurrency with Kotlin
£16.22
Amazon Digital Services LLC - Kdp Mastering Asyncio in Python
£14.09
Independently Published Asynchronous Programming with Common Lisp
£15.78
Independently Published Parallel Computing with C and GPUs
£14.97
Amazon Digital Services LLC - Kdp Rust functional programming
£999.99
Amazon Digital Services LLC - Kdp Definitive Guide to Rust Programming
£29.20
Amazon Digital Services LLC - Kdp RealWorld Concurrency with Modern C
£18.15
Amazon Digital Services LLC - Kdp Mastering PTX and SASS
£27.08
Amazon Digital Services LLC - Kdp Mastering PTX and SASS
£27.08
Amazon Digital Services LLC - Kdp Concurrency in Go
£17.26
Amazon Digital Services LLC - Kdp The Complete Guide to Investing for Programmers
£12.99
Amazon Digital Services LLC - Kdp C Programming
£18.46
Amazon Digital Services LLC - Kdp C Programming
£20.36
Amazon Digital Services LLC - Kdp C Programming
£20.36
Amazon Digital Services LLC - Kdp .NET Tasks
£18.47
Amazon Digital Services LLC - Kdp Rust Asynchronous Programming
£17.80