The most obvious heterogeneity is the existence of computing nodes of different capabilities (e.g. multicore, GPUs, FPGAs, ...). But there are also other heterogeneity factors that exist in computing systems, like the memory system components, interconnection, etc. The main reason for these different types of heterogeneity is to have good performance with power efficiency.
Heterogeneous computing results in both challenges and opportunities. This book discusses both. It shows that we need to deal with these challenges at all levels of the computing stack: from algorithms all the way to process technology. We discuss the topic of heterogeneous computing from different angles: hardware challenges, current hardware state-of-the-art, software issues, how to make the best use of the current heterogeneous systems, and what lies ahead.
The aim of this book is to introduce the big picture of heterogeneous computing. Whether you are a hardware designer or a software developer, you need to know how the pieces of the puzzle fit together. The main goal is to bring researchers and engineers to the forefront of the research frontier in the new era that started a few years ago and is expected to continue for decades. We believe that academics, researchers, practitioners, and students will benefit from this book and will be prepared to tackle the big wave of heterogeneous computing that is here to stay.
Mohamed Zahran received his Ph.D. in electrical and computer engineering from the University of Maryland at College Park in 2003. He is currently a faculty member with the Computer Science Department, Courant Institute of Mathematical Sciences at New York University (NYU). His research interest spans several aspects of computer architecture, such as architecture of heterogeneous systems, hardware/software interaction, and Exascale computing. Zahran is a senior member of IEEE, a senior member of ACM, and a member of Sigma Xi Scientific Honor Society. Besides research and teaching, he is also interested in the history and philosophy of science and used to be a good chess player!
Authors Kelsey Hightower, Brendan Burns, and Joe Beda—who’ve worked on Kubernetes at Google and other organizatons—explain how this system fits into the lifecycle of a distributed application. You will learn how to use tools and APIs to automate scalable distributed systems, whether it is for online services, machine-learning applications, or a cluster of Raspberry Pi computers.Explore the distributed system challenges that Kubernetes addressesDive into containerized application development, using containers such as DockerCreate and run containers on Kubernetes, using the docker image format and container runtimeExplore specialized objects essential for running applications in productionReliably roll out new software versions without downtime or errorsGet examples of how to develop and deploy real-world applications in Kubernetes
Gruntwork co-founder Yevgeniy (Jim) Brikman walks you through dozens of code examples that demonstrate how to use Terraform’s simple, declarative programming language to deploy and manage infrastructure with just a few commands. Whether you’re a novice developer, aspiring DevOps engineer, or veteran sysadmin, this book will take you from Terraform basics to running a full tech stack capable of supporting a massive amount of traffic and a large team of developers.Compare Terraform to other IAC tools, such as Chef, Puppet, Ansible, and Salt StackUse Terraform to deploy server clusters, load balancers, and databasesLearn how Terraform manages the state of your infrastructure and how it impacts file layout, isolation, and lockingCreate reusable infrastructure with Terraform modulesTry out advanced Terraform syntax to implement loops, if-statements, and zero-downtime deploymentUse Terraform as a team, including best practices for writing, testing, and versioning Terraform code
Microservice technologies are moving quickly. Author Sam Newman provides you with a firm grounding in the concepts while diving into current solutions for modeling, integrating, testing, deploying, and monitoring your own autonomous services. You’ll follow a fictional company throughout the book to learn how building a microservice architecture affects a single domain.Discover how microservices allow you to align your system design with your organization’s goalsLearn options for integrating a service with the rest of your systemTake an incremental approach when splitting monolithic codebasesDeploy individual microservices through continuous integrationExamine the complexities of testing and monitoring distributed servicesManage security with user-to-service and service-to-service modelsUnderstand the challenges of scaling microservice architectures
This is no ordinary circuit board. Arduino allows anyone, whether you're an artist, designer, programmer or hobbyist, to learn about and play with electronics. Through this book you learn how to build a variety of circuits that can sense or control things in the real world. Maybe you'll prototype your own product or create a piece of interactive artwork? This book equips you with everything you'll need to build your own Arduino project, but what you make is up to you! If you're ready to bring your ideas into the real world or are curious about the possibilities, this book is for you.
? Learn by doing ? start building circuits and programming your Arduino with a few easy to follow examples - right away!
? Easy does it ? work through Arduino sketches line by line in plain English, to learn of how a they work and how to write your own
? Solder on! ? Only ever used a breadboard in the kitchen? Don't know your soldering iron from a curling iron? No problem, you'll be prototyping in no time
? Kitted out ? discover new and interesting hardware to make your Arduino into anything from a mobile phone to a geiger counter!
? Become an Arduino savant ? learn all about functions, arrays, libraries, shields and other tools of the trade to take your Arduino project to the next level.
? Get social ? teach your Arduino to communicate with software running on a computer to link the physical world with the virtual world
It's hardware, it's software, it's fun! Start building the next cool gizmo with Arduino and Arduino For Dummies.