Resource Proportional Software Design for Emerging Systems: 1st Edition (Hardback) book cover

Resource Proportional Software Design for Emerging Systems

1st Edition

By Suparna Bhattacharya, K. Gopinath, Douglas L. Voigt

Chapman and Hall/CRC

405 pages | 77 B/W Illus.

Purchasing Options:$ = USD
Hardback: 9781138053540
pub: 2020-03-31
SAVE ~$34.00
Available for pre-order. Item will ship after 31st March 2020

FREE Standard Shipping!


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.


  • 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.

Table of Contents

Introduction. The Problem of Software Bloat. Does Lean Imply Green? How Bloat in Software Impacts System Power Performance. Resource Proportional Software Design Principles to Reduce Propensity for Bloat. Resource Proportional Design Strategies I. Resource Proportional Design Strategies: II. Resource Proportional Design Strategies III. Resource Proportional Programming for Persistent Memory Applications. Resource Proportionality in Memory Speed Fabrics. Applying Resource Proportional Design Principles to a Deeply Layered Stack. Data Centric Resource Proportional Systems Design. Adapting the Systems Software Stack to a Changing Paradigm of Uniform Logical Access to a Radically Non-Uniform System. Bridging the Gap. Conclusions and Call to Action.

About the Authors

Suparna Bhattacharya is a Distinguished Technologist in the Storage Chief Technologist’s office of Hewlett Packard Enterprise, where she focuses on the implications of non-volatile memory technologies and analytics-awareness in future systems. She holds a PhD in Computer Science and Automation from the Indian Institute of Science and a B.Tech in Electronics and Electrical communication from IIT Kharagpur. In her previous job, Suparna worked at IBM from 1993-2014, delving into systems software development and research on various platforms, including several enjoyable years as a well-recognized open source contributor to the Linux kernel, followed by a late-in-life part-time PhD and a stint in research on topics that lie at the intersection of systems and software. Some of the material in this book is based on her dissertation research on a systems perspective of software runtime bloat and its power-performance implications which was awarded the best PhD thesis in the department of computer science and automation at the Indian Institute of Science in 2013.

K. Gopinath is a Professor at the Department of Computer Science & Automation, Indian Institute of Science since 1990. He received a BTech from Indian Institute of Technology (Madras) 1977, M.S. in Computer Science from University of Wisconsin, Madison 1980 and PhD degree from Stanford University 1988. He has also worked at AMD (Sunnyvale), and as a PostDoc at Stanford and also briefly at Sun Microsystems Labs. His research interest areas include Operating Systems, Storage Systems, Systems Security and Systems Verification. He is an Editor ("associate editor") of ACM Transactions on Storage and has been on the program committees of some well-regarded conferences such as USENIX ATC’16 and workshops such as HotStorage’13/11.

Doug Voigt is a Distinguished Technologist in the Storage Chief Technologist’s office of Hewlett Packard Enterprise. He has 35 years of experience in disk drives, disk arrays, storage management, and non-volatile memory. He has led HP Storage virtual array advanced development projects and strategy since 1990. His current focus is on non-volatile memory systems. He is co-chair of the SNIA NVM Programming Model Technical Working Group and a member of the SNIA.

Subject Categories

BISAC Subject Codes/Headings:
COMPUTERS / Programming / Games
COMPUTERS / Software Development & Engineering / General
COMPUTERS / Computer Engineering