Programming Massively Parallel Processors: A Hands-on Approach shows both students and professionals alike the basic concepts of parallel programming and GPU architecture. Concise, intuitive, and practical, it is based on years of road-testing in the authors' own parallel computing courses. Various techniques for constructing and optimizing parallel programs are explored in detail, while case studies demonstrate the development process, which begins with computational thinking and ends with effective and efficient parallel programs. The new edition includes updated coverage of CUDA, including the newer libraries such as CuDNN. New chapters on frequently used parallel patterns have been added, and case studies have been updated to reflect current industry practices.
MATLAB Programming for Biomedical Engineers and Scientists, Second Edition provides an easy-to-learn introduction to the fundamentals of computer programming in MATLAB. The book explains the principles of good programming practice, while also demonstrating how to write efficient and robust code that analyzes and visualizes biomedical data. Aimed at the biomedical engineering student, biomedical scientist and medical researcher with little or no computer programming experience, this is an excellent resource for learning the principles and practice of computer programming using MATLAB. The book enables the reader to analyze problems and apply structured design methods to produce elegant, efficient and well-structured program designs, implement a structured program design in MATLAB, write code that makes good use of MATLAB programming features, including control structures, functions and advanced data types, and much more.
MATLAB: A Practical Introduction to Programming and Problem Solving, winner of TAA’s 2017 Textbook Excellence Award ("Texty"), guides the reader through both programming and built-in functions to easily exploit MATLAB’s extensive capabilities for tackling engineering and scientific problems. Assuming no knowledge of programming, this book starts with programming concepts, such as variables, assignments, and selection statements, moves on to loops, and then solves problems using both the programming concept and the power of MATLAB. The sixth edition has been updated to reflect the functionality of the current version of MATLAB (R2021a), including the introduction of machine learning concepts and the Machine Learning Toolbox, and new sections on data formats and data scrubbing.
Cloud Computing: Theory and Practice, Third Edition provides students and IT professionals with an in-depth analysis of the cloud from the ground up. After an introduction to network-centric computing and network-centric content, the book reviews basic concepts of concurrency and parallel and distributed systems, presents critical components of the cloud ecosystem as cloud service providers, cloud access, cloud data storage, and cloud hardware and software, covers cloud applications and cloud security, and presents research topics in cloud computing. Specific topics covered include resource virtualization, resource management and scheduling, and advanced topics like the impact of scale on efficiency, cloud scheduling subject to deadlines, alternative cloud architectures, and vehicular clouds. An included glossary covers terms grouped in several categories, from general to services, virtualization, desirable attributes and security.
Multicore and GPU Programming: An Integrated Approach, Second Edition offers broad coverage of key parallel computing tools, essential for multi-core CPU programming and many-core "massively parallel" computing. Using threads, OpenMP, MPI, CUDA and other state-of-the-art tools, the book teaches the design and development of software capable of taking advantage of modern computing platforms that incorporate CPUs, GPUs and other accelerators. Presenting material refined over more than two decades of teaching parallel computing, author Gerassimos Barlas minimizes the challenge of transitioning from sequential programming to mastering parallel platforms with multiple examples, extensive case studies, and full source code. By using this book, readers will better understand how to develop programs that run over distributed memory machines using MPI, create multi-threaded applications with either libraries or directives, write optimized applications that balance the workload between available computing resources, and profile and debug programs targeting parallel machines.
An Introduction to Parallel Programming, Second Edition presents a tried-and-true tutorial approach that shows students how to develop effective parallel programs with MPI, Pthreads and OpenMP.As the first undergraduate text to directly address compiling and running parallel programs on multi-core and cluster architecture, this second edition carries forward its clear explanations for designing, debugging and evaluating the performance of distributed and shared-memory programs while adding coverage of accelerators via new content on GPU programming and heterogeneous programming. New and improved user-friendly exercises teach students how to compile, run and modify example programs.
The Blockchain Technology for Secure and Smart Applications across Industry Verticals, Volume 121, presents the latest information on a type of distributed ledger used for maintaining a permanent and tamper-proof record of transactional data. The book presents a novel compendium of existing and budding Blockchain technologies for various smart applications. Chapters in this new release include the Basics of Blockchain, The Blockchain History, Architecture of Blockchain, Core components of Blockchain, Blockchain 2.0: Smart Contracts, Empowering Digital Twins with Blockchain, Industrial Use Cases at the Cusp of the IoT and Blockchain Paradigms, Blockchain Components and Concepts, Digital Signatures, Accumulators, Financial Systems, and more. This book is a unique effort to illuminate various techniques to represent, improve and authorize multi-institutional and multidisciplinary research in a different type of smart applications, like the financial system, smart grid, transportation system, etc. Readers in identity-privacy, traceability, immutability, transparency, auditability, and security will find it to be a valuable resource.
The Art of Multiprocessor Programming, Second Edition, provides users with an authoritative guide to multicore programming. This updated edition introduces higher level software development skills relative to those needed for efficient single-core programming, and includes comprehensive coverage of the new principles, algorithms, and tools necessary for effective multiprocessor programming. The book is an ideal resource for students and professionals alike who will benefit from its thorough coverage of key multiprocessor programming issues.
Advances in Computers, Volume 118, the latest volume in this innovative series published since 1960, presents detailed coverage of new advancements in computer hardware, software, theory, design and applications. Chapters in this updated release include Introduction to non-volatile memory technologies, The emerging phase-change memory, Phase-change memory architectures, Inter-line level schemes for handling hard errors in PCMs, Handling hard errors in PCMs by using intra-line level schemes, and Addressing issues with MLC Phase-change Memory.
The Digital Twin Paradigm for Smarter Systems and Environments: The Industry Use Cases, Volume 117, the latest volume in the Advances in Computers series, presents detailed coverage of new advancements in computer hardware, software, theory, design and applications. Chapters vividly illustrate how the emerging discipline of digital twin is strategically contributing to various digital transformation initiatives. Specific chapters cover Demystifying the Digital Twin Paradigm, Digital Twin Technology for "Smarter Manufacturing", The Fog Computing/ Edge Computing to leverage Digital Twin, The industry use cases for the Digital Twin idea, Enabling Digital Twin at the Edge, The Industrial Internet of Things (IIOT), and much more.