|
Books > Computing & IT > Computer hardware & operating systems > Computer architecture & logic design > Parallel processing
Distributed systems intertwine with our everyday lives. The
benefits and current shortcomings of the underpinning technologies
are experienced by a wide range of people and their smart devices.
With the rise of large-scale IoT and similar distributed systems,
cloud bursting technologies, and partial outsourcing solutions,
private entities are encouraged to increase their efficiency and
offer unparalleled availability and reliability to their users.
Applying Integration Techniques and Methods in Distributed Systems
and Technologies is a critical scholarly publication that defines
the current state of distributed systems, determines further goals,
and presents architectures and service frameworks to achieve highly
integrated distributed systems and presents solutions to
integration and efficient management challenges faced by current
and future distributed systems. Highlighting topics such as
multimedia, programming languages, and smart environments, this
book is ideal for system administrators, integrators, designers,
developers, researchers, and academicians.
Learn how to deploy and test Linux-based Docker containers with the
help of real-world use cases Key Features Understand how to make a
deployment workflow run smoothly with Docker containers Learn
Docker and DevOps concepts such as continuous integration and
continuous deployment (CI/CD) Gain insights into using various
Docker tools and libraries Book DescriptionDocker is the de facto
standard for containerizing apps, and with an increasing number of
software projects migrating to containers, it is crucial for
engineers and DevOps teams to understand how to build, deploy, and
secure Docker environments effectively. Docker for Developers will
help you understand Docker containers from scratch while taking you
through best practices and showing you how to address security
concerns. Starting with an introduction to Docker, you'll learn how
to use containers and VirtualBox for development. You'll explore
how containers work and develop projects within them after you've
explored different ways to deploy and run containers. The book will
also show you how to use Docker containers in production in both
single-host set-ups and in clusters and deploy them using Jenkins,
Kubernetes, and Spinnaker. As you advance, you'll get to grips with
monitoring, securing, and scaling Docker using tools such as
Prometheus and Grafana. Later, you'll be able to deploy Docker
containers to a variety of environments, including the cloud-native
Amazon Elastic Kubernetes Service (Amazon EKS), before finally
delving into Docker security concepts and best practices. By the
end of the Docker book, you'll be able to not only work in a
container-driven environment confidently but also use Docker for
both new and existing projects. What you will learn Get up to speed
with creating containers and understand how they work Package and
deploy your containers to a variety of platforms Work with
containers in the cloud and on the Kubernetes platform Deploy and
then monitor the health and logs of running containers Explore best
practices for working with containers from a security perspective
Become familiar with scanning containers and using third-party
security tools and libraries Who this book is forIf you're a
software engineer new to containerization or a DevOps engineer
responsible for deploying Docker containers in the cloud and
building DevOps pipelines for container-based projects, you'll find
this book useful. This Docker containers book is also a handy
reference guide for anyone working with a Docker-based DevOps
ecosystem or interested in understanding the security implications
and best practices for working in container-driven environments.
Build safety-critical and memory-safe stand-alone and networked
embedded systems Key Features Know how C++ works and compares to
other languages used for embedded development Create advanced GUIs
for embedded devices to design an attractive and functional UI
Integrate proven strategies into your design for optimum hardware
performance Book DescriptionC++ is a great choice for embedded
development, most notably, because it does not add any bloat,
extends maintainability, and offers many advantages over different
programming languages. Hands-On Embedded Programming with C++17
will show you how C++ can be used to build robust and concurrent
systems that leverage the available hardware resources. Starting
with a primer on embedded programming and the latest features of
C++17, the book takes you through various facets of good
programming. You'll learn how to use the concurrency, memory
management, and functional programming features of C++ to build
embedded systems. You will understand how to integrate your systems
with external peripherals and efficient ways of working with
drivers. This book will also guide you in testing and optimizing
code for better performance and implementing useful design
patterns. As an additional benefit, you will see how to work with
Qt, the popular GUI library used for building embedded systems. By
the end of the book, you will have gained the confidence to use C++
for embedded programming. What you will learn Choose the correct
type of embedded platform to use for a project Develop drivers for
OS-based embedded systems Use concurrency and memory management
with various microcontroller units (MCUs) Debug and test
cross-platform code with Linux Implement an infotainment system
using a Linux-based single board computer Extend an existing
embedded system with a Qt-based GUI Communicate with the FPGA side
of a hybrid FPGA/SoC system Who this book is forIf you want to
start developing effective embedded programs in C++, then this book
is for you. Good knowledge of C++ language constructs is required
to understand the topics covered in the book. No knowledge of
embedded systems is assumed.
Present day sophisticated, adaptive, and autonomous (to a certain
degree) robotic technology is a radically new stimulus for the
cognitive system of the human learner from the earliest to the
oldest age. It deserves extensive, thorough, and systematic
research based on novel frameworks for analysis, modelling,
synthesis, and implementation of CPSs for social applications.
Cyber-Physical Systems for Social Applications is a critical
scholarly book that examines the latest empirical findings for
designing cyber-physical systems for social applications and aims
at forwarding the symbolic human-robot perspective in areas that
include education, social communication, entertainment, and
artistic performance. Highlighting topics such as evolinguistics,
human-robot interaction, and neuroinformatics, this book is ideally
designed for social network developers, cognitive scientists,
education science experts, evolutionary linguists, researchers, and
academicians.
Explore GPU-enabled programmable environment for machine learning,
scientific applications, and gaming using PuCUDA, PyOpenGL, and
Anaconda Accelerate Key Features Understand effective
synchronization strategies for faster processing using GPUs Write
parallel processing scripts with PyCuda and PyOpenCL Learn to use
the CUDA libraries like CuDNN for deep learning on GPUs Book
DescriptionGPUs are proving to be excellent general
purpose-parallel computing solutions for high performance tasks
such as deep learning and scientific computing. This book will be
your guide to getting started with GPU computing. It will start
with introducing GPU computing and explain the architecture and
programming models for GPUs. You will learn, by example, how to
perform GPU programming with Python, and you'll look at using
integrations such as PyCUDA, PyOpenCL, CuPy and Numba with Anaconda
for various tasks such as machine learning and data mining. Going
further, you will get to grips with GPU work flows, management, and
deployment using modern containerization solutions. Toward the end
of the book, you will get familiar with the principles of
distributed computing for training machine learning models and
enhancing efficiency and performance. By the end of this book, you
will be able to set up a GPU ecosystem for running complex
applications and data models that demand great processing
capabilities, and be able to efficiently manage memory to compute
your application effectively and quickly. What you will learn
Utilize Python libraries and frameworks for GPU acceleration Set up
a GPU-enabled programmable machine learning environment on your
system with Anaconda Deploy your machine learning system on cloud
containers with illustrated examples Explore PyCUDA and PyOpenCL
and compare them with platforms such as CUDA, OpenCL and ROCm.
Perform data mining tasks with machine learning models on GPUs
Extend your knowledge of GPU computing in scientific applications
Who this book is forData Scientist, Machine Learning enthusiasts
and professionals who wants to get started with GPU computation and
perform the complex tasks with low-latency. Intermediate knowledge
of Python programming is assumed.
Get writing tests and learn to design your own testing framework
with Selenium WebDriver API Key Features Learn Selenium from the
ground up Design your own testing framework Create reusable
functionality in your framework Book DescriptionSelenium WebDriver
is a platform-independent API for automating the testing of both
browser and mobile applications. It is also a core technology in
many other browser automation tools, APIs, and frameworks. This
book will guide you through the WebDriver APIs that are used in
automation tests. Chapter by chapter, we will construct the
building blocks of a page object model framework as you learn about
the required Java and Selenium methods and terminology. The book
starts with an introduction to the same-origin policy, cross-site
scripting dangers, and the Document Object Model (DOM). Moving
ahead, we'll learn about XPath, which allows us to select items on
a page, and how to design a customized XPath. After that, we will
be creating singleton patterns and drivers. Then you will learn
about synchronization and handling pop-up windows. You will see how
to create a factory for browsers and understand command design
patterns applicable to this area. At the end of the book, we tie
all this together by creating a framework and implementing
multi-browser testing with Selenium Grid. What you will learn
Understand what an XPath is and how to design a customized XPath
Learn how to create a Maven project and build Create a Singleton
driver Get to grips with Jenkins integration Create a factory for
browsers Implement multi-browser testing with Selenium Grid Create
a sample pop-up window and JavaScript alert Report using Extent
Reports Who this book is forThis book is for software testers or
developers.
Design and implement professional level programs by exploring
modern data structures and algorithms in Rust. Key Features Use
data structures such as arrays, stacks, trees, lists and graphs
with real-world examples Learn the functional and reactive
implementations of the traditional data structures Explore
illustrations to present data structures and algorithms, as well as
their analysis, in a clear, visual manner. Book DescriptionRust has
come a long way and is now utilized in several contexts. Its key
strengths are its software infrastructure and resource-constrained
applications, including desktop applications, servers, and
performance-critical applications, not forgetting its importance in
systems' programming. This book will be your guide as it takes you
through implementing classic data structures and algorithms in
Rust, helping you to get up and running as a confident Rust
programmer. The book begins with an introduction to Rust data
structures and algorithms, while also covering essential language
constructs. You will learn how to store data using linked lists,
arrays, stacks, and queues. You will also learn how to implement
sorting and searching algorithms. You will learn how to attain high
performance by implementing algorithms to string data types and
implement hash structures in algorithm design. The book will
examine algorithm analysis, including Brute Force algorithms,
Greedy algorithms, Divide and Conquer algorithms, Dynamic
Programming, and Backtracking. By the end of the book, you will
have learned how to build components that are easy to understand,
debug, and use in different applications. What you will learn
Design and implement complex data structures in Rust Analyze,
implement, and improve searching and sorting algorithms in Rust
Create and use well-tested and reusable components with Rust
Understand the basics of multithreaded programming and advanced
algorithm design Become familiar with application profiling based
on benchmarking and testing Explore the borrowing complexity of
implementing algorithms Who this book is forThis book is for
developers seeking to use Rust solutions in a
practical/professional setting; who wants to learn essential Data
Structures and Algorithms in Rust. It is for developers with basic
Rust language knowledge, some experience in other programming
languages is required.
Build real-world applications with Python 2.7, CUDA 9, and CUDA 10.
We suggest the use of Python 2.7 over Python 3.x, since Python 2.7
has stable support across all the libraries we use in this book.
Key Features Expand your background in GPU programming-PyCUDA,
scikit-cuda, and Nsight Effectively use CUDA libraries such as
cuBLAS, cuFFT, and cuSolver Apply GPU programming to modern data
science applications Book DescriptionHands-On GPU Programming with
Python and CUDA hits the ground running: you'll start by learning
how to apply Amdahl's Law, use a code profiler to identify
bottlenecks in your Python code, and set up an appropriate GPU
programming environment. You'll then see how to "query" the GPU's
features and copy arrays of data to and from the GPU's own memory.
As you make your way through the book, you'll launch code directly
onto the GPU and write full blown GPU kernels and device functions
in CUDA C. You'll get to grips with profiling GPU code effectively
and fully test and debug your code using Nsight IDE. Next, you'll
explore some of the more well-known NVIDIA libraries, such as cuFFT
and cuBLAS. With a solid background in place, you will now apply
your new-found knowledge to develop your very own GPU-based deep
neural network from scratch. You'll then explore advanced topics,
such as warp shuffling, dynamic parallelism, and PTX assembly. In
the final chapter, you'll see some topics and applications related
to GPU programming that you may wish to pursue, including AI,
graphics, and blockchain. By the end of this book, you will be able
to apply GPU programming to problems related to data science and
high-performance computing. What you will learn Launch GPU code
directly from Python Write effective and efficient GPU kernels and
device functions Use libraries such as cuFFT, cuBLAS, and cuSolver
Debug and profile your code with Nsight and Visual Profiler Apply
GPU programming to datascience problems Build a GPU-based deep
neuralnetwork from scratch Explore advanced GPU hardware features,
such as warp shuffling Who this book is forHands-On GPU Programming
with Python and CUDA is for developers and data scientists who want
to learn the basics of effective GPU programming to improve
performance using Python code. You should have an understanding of
first-year college or university-level engineering mathematics and
physics, and have some experience with Python as well as in any
C-based programming language such as C, C++, Go, or Java.
Immerse yourself in the world of Python concurrency and tackle the
most complex concurrent programming problems Key Features Explore
the core syntaxes, language features and modern patterns of
concurrency in Python Understand how to use concurrency to keep
data consistent and applications responsive Utilize application
scaffolding to design highly-scalable programs Book
DescriptionPython is one of the most popular programming languages,
with numerous libraries and frameworks that facilitate
high-performance computing. Concurrency and parallelism in Python
are essential when it comes to multiprocessing and multithreading;
they behave differently, but their common aim is to reduce the
execution time. This book serves as a comprehensive introduction to
various advanced concepts in concurrent engineering and
programming. Mastering Concurrency in Python starts by introducing
the concepts and principles in concurrency, right from Amdahl's Law
to multithreading programming, followed by elucidating
multiprocessing programming, web scraping, and asynchronous I/O,
together with common problems that engineers and programmers face
in concurrent programming. Next, the book covers a number of
advanced concepts in Python concurrency and how they interact with
the Python ecosystem, including the Global Interpreter Lock (GIL).
Finally, you'll learn how to solve real-world concurrency problems
through examples. By the end of the book, you will have gained
extensive theoretical knowledge of concurrency and the ways in
which concurrency is supported by the Python language What you will
learn Explore the concepts of concurrency in programming Explore
the core syntax and features that enable concurrency in Python
Understand the correct way to implement concurrency Abstract
methods to keep the data consistent in your program Analyze
problems commonly faced in concurrent programming Use application
scaffolding to design highly-scalable programs Who this book is
forThis book is for developers who wish to build high-performance
applications and learn about signle-core, multicore programming or
distributed concurrency. Some experience with Python programming
language is assumed.
Get up to speed with creational, structural, behavioral and
concurrent patterns in Delphi to write clear, concise and effective
code Key Features Delve into the core patterns and components of
Delphi in order to master your application's design Brush up on
tricks, techniques, and best practices to solve common design and
architectural challenges Choose the right patterns to improve your
program's efficiency and productivity Book DescriptionDesign
patterns have proven to be the go-to solution for many common
programming scenarios. This book focuses on design patterns applied
to the Delphi language. The book will provide you with insights
into the language and its capabilities of a runtime library. You'll
start by exploring a variety of design patterns and understanding
them through real-world examples. This will entail a short
explanation of the concept of design patterns and the original set
of the 'Gang of Four' patterns, which will help you in structuring
your designs efficiently. Next, you'll cover the most important
'anti-patterns' (essentially bad software development practices) to
aid you in steering clear of problems during programming. You'll
then learn about the eight most important patterns for each
creational, structural, and behavioral type. After this, you'll be
introduced to the concept of 'concurrency' patterns, which are
design patterns specifically related to multithreading and parallel
computation. These will enable you to develop and improve an
interface between items and harmonize shared memories within
threads. Toward the concluding chapters, you'll explore design
patterns specific to program design and other categories of
patterns that do not fall under the 'design' umbrella. By the end
of this book, you'll be able to address common design problems
encountered while developing applications and feel confident while
building scalable projects. What you will learn Gain insights into
the concept of design patterns Study modern programming techniques
with Delphi Keep up to date with the latest additions and program
design techniques in Delphi Get to grips with various modern
multithreading approaches Discover creational, structural,
behavioral, and concurrent patterns Determine how to break a design
problem down into its component parts Who this book is forHands-On
Design Patterns with Delphi is aimed at beginner-level Delphi
developers who want to build scalable and robust applications.
Basic knowledge of Delphi is a must.
Create distributed applications with clever design patterns to
solve complex problems Key Features Set up and run distributed
algorithms on a cluster using Dask and PySpark Master skills to
accurately implement concurrency in your code Gain practical
experience of Python design patterns with real-world examples Book
DescriptionThis Learning Path shows you how to leverage the power
of both native and third-party Python libraries for building robust
and responsive applications. You will learn about profilers and
reactive programming, concurrency and parallelism, as well as tools
for making your apps quick and efficient. You will discover how to
write code for parallel architectures using TensorFlow and Theano,
and use a cluster of computers for large-scale computations using
technologies such as Dask and PySpark. With the knowledge of how
Python design patterns work, you will be able to clone objects,
secure interfaces, dynamically choose algorithms, and accomplish
much more in high performance computing. By the end of this
Learning Path, you will have the skills and confidence to build
engaging models that quickly offer efficient solutions to your
problems. This Learning Path includes content from the following
Packt products: Python High Performance - Second Edition by
Gabriele Lanaro Mastering Concurrency in Python by Quan Nguyen
Mastering Python Design Patterns by Sakis Kasampalis What you will
learn Use NumPy and pandas to import and manipulate datasets
Achieve native performance with Cython and Numba Write asynchronous
code using asyncio and RxPy Design highly scalable programs with
application scaffolding Explore abstract methods to maintain data
consistency Clone objects using the prototype pattern Use the
adapter pattern to make incompatible interfaces compatible Employ
the strategy pattern to dynamically choose an algorithm Who this
book is forThis Learning Path is specially designed for Python
developers who want to build high-performance applications and
learn about single core and multi-core programming, distributed
concurrency, and Python design patterns. Some experience with
Python programming language will help you get the most out of this
Learning Path.
Discover how CUDA allows OpenCV to handle complex and rapidly
growing image data processing in computer and machine vision by
accessing the power of GPU Key Features Explore examples to
leverage the GPU processing power with OpenCV and CUDA Enhance the
performance of algorithms on embedded hardware platforms Discover
C++ and Python libraries for GPU acceleration Book
DescriptionComputer vision has been revolutionizing a wide range of
industries, and OpenCV is the most widely chosen tool for computer
vision with its ability to work in multiple programming languages.
Nowadays, in computer vision, there is a need to process large
images in real time, which is difficult to handle for OpenCV on its
own. This is where CUDA comes into the picture, allowing OpenCV to
leverage powerful NVDIA GPUs. This book provides a detailed
overview of integrating OpenCV with CUDA for practical
applications. To start with, you'll understand GPU programming with
CUDA, an essential aspect for computer vision developers who have
never worked with GPUs. You'll then move on to exploring OpenCV
acceleration with GPUs and CUDA by walking through some practical
examples. Once you have got to grips with the core concepts, you'll
familiarize yourself with deploying OpenCV applications on NVIDIA
Jetson TX1, which is popular for computer vision and deep learning
applications. The last chapters of the book explain PyCUDA, a
Python library that leverages the power of CUDA and GPUs for
accelerations and can be used by computer vision developers who use
OpenCV with Python. By the end of this book, you'll have enhanced
computer vision applications with the help of this book's hands-on
approach. What you will learn Understand how to access GPU device
properties and capabilities from CUDA programs Learn how to
accelerate searching and sorting algorithms Detect shapes such as
lines and circles in images Explore object tracking and detection
with algorithms Process videos using different video analysis
techniques in Jetson TX1 Access GPU device properties from the
PyCUDA program Understand how kernel execution works Who this book
is forThis book is a go-to guide for you if you are a developer
working with OpenCV and want to learn how to process more complex
image data by exploiting GPU processing. A thorough understanding
of computer vision concepts and programming languages such as C++
or Python is expected.
|
|