We face two broad challenges as we design the next generation of intelligent and interconnected devices: On one extreme, these systems will collect an enormous amount of data from a multitude of sources and require low-complexity, versatile algorithms that can make sense of all the data. On the other extreme, certain physical or system constraints...