Resource Proportional Software Design for Emerging Systems
eBook - ePub

Resource Proportional Software Design for Emerging Systems

  1. 386 pages
  2. English
  3. ePUB (mobile friendly)
  4. Available on iOS & Android
eBook - ePub

Resource Proportional Software Design for Emerging Systems

About this book

Efficiency is a crucial concern across computing systems, from the edge to the cloud. Paradoxically, even as the latencies of bottleneck components such as storage and networks have dropped by up to four orders of magnitude, software path lengths have progressively increased due to overhead from the very frameworks that have revolutionized the pace of information technology. Such overhead can be severe enough to overshadow the benefits from switching to new technologies like persistent memory and low latency interconnects.

Resource Proportional Software Design for Emerging Systems introduces resource proportional design (RPD) as a principled approach to software component and system development that counters the overhead of deeply layered code without removing flexibility or ease of development. RPD makes resource consumption proportional to situational utility by adapting to diverse emerging needs and technology systems evolution.

Highlights:

  • Analysis of run-time bloat in deep software stacks, an under-explored source of power-performance wastage in IT systems
  • Qualitative and quantitative treatment of key dimensions of resource proportionality
    • Code features: Unify and broaden supported but optional features without losing efficiency
    • Technology and systems evolution: Design software to adapt with changing trade-offs as technology evolves
    • Data processing: Design systems to predict which subsets of data processed by an (analytics or ML) application are likely to be useful
    • System wide trade-offs: Address interacting local and global considerations throughout software stacks and hardware including cross-layer co-design involving code, data and systems dimensions, and non-functional requirements such as security and fault tolerance

  • Written from a systems perspective to explore RPD principles, best practices, models and tools in the context of emerging technologies and applications

This book is primarily geared towards practitioners with some advanced topics for researchers. The principles shared in the book are expected to be useful for programmers, engineers and researchers interested in ensuring software and systems are optimized for existing and next generation technologies.

The authors are from both industry (Bhattacharya and Voigt) and academic (Gopinath) backgrounds.

Trusted byĀ 375,005 students

Access to over 1 million titles for a fair monthly price.

Study more efficiently using our study tools.

Part I
Software Bloat, Lost Throughput, and Wasted Joules
Chapter 1
Introduction
1.1Green Software for the Expanding Digital Universe: Designing with a Sense of Proportion
1.2The Challenge Posed by Emerging Systems: Why Hardware Advancements Are Not Enough
1.2.1Runtime bloat in framework based software
1.2.2Software interaction with systems
1.2.3Impact of non-volatile memory and low-latency fabrics
1.2.4Large scale connected architectures from edge to cloud
1.2.5Emerging software models and data centricity
1.3The Heart of the Matter: Why a Plea for Lean Software Is Not Enough
1.3.1The flexibility, productivity, and efficiency trade-off
1.3.2Unsustainability of tightly coupled hardware-software abstractions
1.3.3Traditional performance optimization is not enough
1.3.4Difficulty in quantifying the opportunity and impact of software bloat reduction
1.4The Resource Proportional Software Design Principle
1.4.1How to assess the propensity for bloat in a software component?
1.4.2How to broaden supported features without a runtime overhead?
1.4.3Can software be designed to cope with changing trade-offs as technology evolves?
1.4.4Can we anticipate what proportion of data processed by application is truly useful?
1.5Dimensions of Resource Proportional Design
1.5.1Resource proportional code features
1.5.2Resource proportional response to technology and system evolution
1.5.3Resource proportional data processing
1.6Approach in This Book
A smartphone today has a million times the computing power of the systems that NASA used to land on the moon[356] and one hundred thousand times the amount of memory in personal micro-computers we used 30 years ago. Yet, it does not seem enough to satisfy our needs for long. In cloud based environments, there is a remarkable growth in the pace of software delivery using continuous integration models where new software is now released every few minutes instead of years. As new applications and data sources proliferate rapidly, we also find that every software update requires more resources than its previous version. Is this as efficient as we can get without slowing down the rate of application innovation or is the resource usage for computing growing out of proportion over the years?
Radical improvements in the ease of gathering data and the artificial intelligence revolution continue to raise the demand for computing resources. The cost of sequencing a human genome has reduced by a factor of a million in less than decade, out-shadowing Moore’s law[401]. How do we tell if the computing resources we have in any given system are being utilized appropriately for the purpose it serves? If not, then how do we bring in this sense of proportion when designing next generation software and systems solutions?
In this chapter we cover an overview of these questions, why they matter now, our approach to address them, and how the rest of this book will unfold.
1.1 Green Software for the Expanding Digital Universe: Designing with a Sense of Proportion
ā€œAnything that is produced by evolution is bound to be a bit of a messā€
Sydney Brenner, Nobel laureate
In Roger Lewin: Why is Development So Illogical?
Beauty is more important in computing than anywhere else in technology….
Beauty is important in engineering terms because software is so complicated; beauty is the ultimate defense against complexity.
David Gelernter
Machine Beauty: Elegance and the Heart of Technology
Cost, energy efficiency, and performance remain crucial considerations across the entire spectrum of computing systems from the edge to the cloud that collectively serve an ever expanding digital universe. Billions of smartphones, personal devices, and IoT1 have become indispensable at the edge while data centers gravitate to countries with cold climates2 and even dive underwater.3
The digital expansion is not just a matter of quantity. It is representative of a natural desire for progressively richer and more sophisticated capabilities, as we entrust more and more responsibilities of our lives to the power of software genies residing in the devices we wear or hold in our palms, our homes, our vehicles, our hospitals, our schools, our factories, our farms, spanning both remote edges and the mighty clouds. This unprecedented scale of digitization propels a demand for efficient software and computing systems. Fueled by the constant influx of data to learn from, software is now central to innovation. To sustain the progressive expansion of software capabilities, the functionality supported by a software system needs to be designed and reused with a sense of proportion about the appropriateness of its resource usage.
However, the inevitable complexity in software stacks (a reflection of the complexity in real world needs) is a barrier to reasoning about efficiency and assessing ā€œappropriatenessā€ with respect to utility. The mass of detail in any software system makes it hard to understand what happens at runtime and how to reuse it proportionally for a given scenario. Building efficient solutions requires some form of elegant co-design across different layers of a stack that contain multiple levels of information transfer (e.g., hardware-software co-optimization in smartphones).4
Analog vs. Digital Design
Analog computing in the ’50s and ’60’s provided results at the ā€œspeedā€ of light in some cases but accuracy or controllability was poor. Digital representations and computations based on such representations became necessary to provide some functional guarantees of repeatability and accuracy. However, there are situations where computational or energy requirements are still an issue. Moving from analog to digital fully may be a few orders of magnitude costlier in terms of energy and sometimes also orders of magnitude slower. For example, Spice simulation for circuits is orders of magnitude slower than live electronic speeds.
A system designed with a better sense of proportion about appropriate use of resources may therefore be partly ā€œanalogā€ (for example, to conserve energy) and partly digital (for accuracy). Analog here could refer to systems without quantization, whether electronic, optical, chemical (such as DNA-based computing or storage) or, in the even longer timeframe, quantum-based systems. In communication systems,...

Table of contents

  1. Cover
  2. Half Title
  3. Title Page
  4. Copyright Page
  5. Contents
  6. Authors
  7. Preface
  8. Acknowledgments
  9. Part I: Software Bloat, Lost Throughput, and Wasted Joules
  10. Part II: The Antidote: Resource Proportional Software Design
  11. Part III: Responding to Emerging Technologies: Designing Resource Proportional Systems
  12. Part IV: The Road Ahead
  13. Glossary
  14. Bibliography
  15. Index

Frequently asked questions

Yes, you can cancel anytime from the Subscription tab in your account settings on the Perlego website. Your subscription will stay active until the end of your current billing period. Learn how to cancel your subscription
No, books cannot be downloaded as external files, such as PDFs, for use outside of Perlego. However, you can download books within the Perlego app for offline reading on mobile or tablet. Learn how to download books offline
Perlego offers two plans: Essential and Complete
  • Essential is ideal for learners and professionals who enjoy exploring a wide range of subjects. Access the Essential Library with 800,000+ trusted titles and best-sellers across business, personal growth, and the humanities. Includes unlimited reading time and Standard Read Aloud voice.
  • Complete: Perfect for advanced learners and researchers needing full, unrestricted access. Unlock 1.4M+ books across hundreds of subjects, including academic and specialized titles. The Complete Plan also includes advanced features like Premium Read Aloud and Research Assistant.
Both plans are available with monthly, semester, or annual billing cycles.
We are an online textbook subscription service, where you can get access to an entire online library for less than the price of a single book per month. With over 1 million books across 990+ topics, we’ve got you covered! Learn about our mission
Look out for the read-aloud symbol on your next book to see if you can listen to it. The read-aloud tool reads text aloud for you, highlighting the text as it is being read. You can pause it, speed it up and slow it down. Learn more about Read Aloud
Yes! You can use the Perlego app on both iOS and Android devices to read anytime, anywhere — even offline. Perfect for commutes or when you’re on the go.
Please note we cannot support devices running on iOS 13 and Android 7 or earlier. Learn more about using the app
Yes, you can access Resource Proportional Software Design for Emerging Systems by Suparna Bhattacharya,Kanchi Gopinath,Doug Voigt in PDF and/or ePUB format, as well as other popular books in Computer Science & Computer Engineering. We have over one million books available in our catalogue for you to explore.