Results 1 -
4 of
4
Abstract No Bit Left Behind: The Limits of Heap Data Compression ∗
"... On one hand, the high cost of memory continues to drive demand for memory efficiency on embedded and general purpose computers. On the other hand, programmers are increasingly turning to managed languages like Java for their functionality, programmability, and reliability. Managed languages, however ..."
Abstract
-
Cited by 3 (2 self)
- Add to MetaCart
On one hand, the high cost of memory continues to drive demand for memory efficiency on embedded and general purpose computers. On the other hand, programmers are increasingly turning to managed languages like Java for their functionality, programmability, and reliability. Managed languages, however, are not known for their memory efficiency, creating a tension between productivity and performance. This paper examines the sources and types of memory inefficiencies in a set of Java benchmarks. Although prior work has proposed specific heap data compression techniques, they are typically restricted to one model of inefficiency. This paper generalizes and quantitatively compares previously proposed memorysaving approaches and idealized heap compaction. It evaluates a variety of models based on strict and deep object equality, field value equality, removing bytes that are zero, and compressing fields and arrays with a limited number and range of values. The results show that substantial memory reductions are possible in the Java heap. For example, removing bytes that are zero from arrays is particularly effective, reducing the application’s memory footprint by 41 % on average. We are the first to combine multiple savings models on the heap, which very effectively reduces the application by up to 86%, on average 58%. These results demonstrate that future work should be able to combine a high productivity programming language with memory efficiency.
Providing OS Support for Wireless Sensor Networks: Challenges and Approaches
- IEEE COMMUNICATIONS SURVEYS AND TUTORIALS
"... Recently, wireless sensor networks (WSNs) attract a great deal of research attention, and are envisioned to support a variety of applications, including military surveillance, habitat monitoring, and infrastructure protection, etc. Operating system (OS) support for WSNs plays a central role in build ..."
Abstract
-
Cited by 2 (2 self)
- Add to MetaCart
Recently, wireless sensor networks (WSNs) attract a great deal of research attention, and are envisioned to support a variety of applications, including military surveillance, habitat monitoring, and infrastructure protection, etc. Operating system (OS) support for WSNs plays a central role in building scalable distributed applications that are efficient and reliable. Over the years, we have seen a variety of OSes emerging in the sensornet community to facilitate developing WSN applications. Aside from the basic system implementations, there is also a large body of work devoted to improving OS capabilities in different dimensions. In this paper, we provide a comprehensive review of existing work in sensornet OS design. We first examine the challenges in the OS design space. We then introduce the major components of a sensornet OS. Next, we provide an overview of existing work, present a taxonomy of state-of-the-art OSes, and discuss various approaches to address the design challenges. Finally we discuss evaluations of a sensornet OS and present some recommendations in the perspectives of OS developers and OS users. We have also identified several open problems that need further investigation to make the OS provide stronger support for WSNs.
From OO to FPGA: Fitting Round Objects into Square Hardware?
"... Consumer electronics today such as cell phones often have one or more low-power FPGAs to assist with energyintensive operations in order to reduce overall energy consumption and increase battery life. However, current techniques for programming FPGAs require people to be specially trained to do so. ..."
Abstract
- Add to MetaCart
Consumer electronics today such as cell phones often have one or more low-power FPGAs to assist with energyintensive operations in order to reduce overall energy consumption and increase battery life. However, current techniques for programming FPGAs require people to be specially trained to do so. Ideally, software engineers can more readily take advantage of the benefits FPGAs offer by being able to program them using their existing skills, a common one being object-oriented programming. However, traditional techniques for compiling object-oriented languages are at odds with today’s FPGA tools, which support neither pointers nor complex data structures. Open until now is the problem of compiling an object-oriented language to an FPGA in a way that harnesses this potential for huge energy savings. In this paper, we present a new compilation technique that feeds into an existing FPGA tool chain and produces FPGAs with up to almost an order of magnitude in energy savings compared to a low-power microprocessor while still retaining comparable performance and area usage.
Dualities in Programming Languages
"... A duality can be thought of as a pair of concepts and a mapping between their terminology, such that substituting the concept-specific terminology turns a statement about one concept into a statement about the other. For example, in 1979, Lauer and Needham pointed out the duality between message pas ..."
Abstract
- Add to MetaCart
A duality can be thought of as a pair of concepts and a mapping between their terminology, such that substituting the concept-specific terminology turns a statement about one concept into a statement about the other. For example, in 1979, Lauer and Needham pointed out the duality between message passing ∼ = shared-memory concurrency [6]. The similarities in a duality enable cross-domain idea reuse. But equally important are the imperfections of dualities, which often trigger original research. We claim that thinking about dualities inspires innovation in programming languages. It is also a convenient excuse to play with fancy L ATEX multicolumn formatting. 1. Row-Based Layout ∼ = Column-Based Layout Being a widely-known, simple instance of a duality in programming languages, the duality between row- and column-based object layouts is a good introductory example. Note how most adjacent sentences below have a one-to-one correspondence. The row-based layout stores the values from The column-based layout stores the values from different fields, but the same object, of a class different objects, but the same field, of a class to-together as a contiguous chunk of memory. gether as a contiguous chunk of memory. This leads to good locality if most accesses are to a This leads to good locality if most accesses are to a

