skip to main content
10.1145/1346281.1346304acmconferencesArticle/Chapter ViewAbstractPublication PagesasplosConference Proceedingsconference-collections
research-article

Tapping into the fountain of CPUs: on operating system support for programmable devices

Published:01 March 2008Publication History

ABSTRACT

The constant race for faster and more powerful CPUs is drawing to a close. No longer is it feasible to significantly increase the speed of the CPU without paying a crushing penalty in power consumption and production costs. Instead of increasing single thread performance, the industry is turning to multiple CPU threads or cores (such as SMT and CMP) and heterogeneous CPU architectures (such as the Cell Broadband Engine). While this is a step in the right direction, in every modern PC there is a wealth of untapped compute resources. The NIC has a CPU; the disk controller is programmable; some high-end graphics adaptersare already more powerful than host CPUs. Some of these CPUs can perform some functions more efficiently than the host CPUs. Our operating systems and programming abstractions should be expanded to let applications tap into these computational resources and make the best use of them.

Therefore, we propose the HYDRA framework, which lets application developers use the combined power of every compute resource in a coherent way. HYDRA is a programming model and a runtime support layer which enables utilization of host processors as well as various programmable peripheral devices' processors. We present the frameworkand its application for a demonstrative use-case, as well as provide a thorough evaluation of its capabilities. Using HYDRA we were able to cut down the development cost of a system that uses multiple heterogenous compute resources significantly.

Skip Supplemental Material Section

Supplemental Material

Video

References

  1. N. L. Binkert, A. G. Saidi, and S. K. Reinhardt. Integrated network interfaces for high-bandwidth TCP/IP. In ASPLOS-XII: Proc. of the 12th intl. conf. on arch. support for programming languages and operating systems, pages 315--324, New York, NY, 2006. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. E. Christensen, F. Curbera, G. Meredith, and S. Weerawarana. Web Service Definition Language (WSDL). http://www.w3.org/TR/wsdl.Google ScholarGoogle Scholar
  3. A. Currid. TCP offload to the rescue. Queue, 2(3):58--65, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. M. E. Fiuczynski, R. P. Martin, T. Owa, and B. N. Bershad. Spine: a safe programmable and integrated network environment. In EW 8, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. A. P. Foong, T. R. Huff, H. H. Hum, J. R. Patwardhan, and G. J. Regnier. TCP performance re-visited. In ISPASS '03: Proc. of the 2003 IEEE intl. symp. on perf. analysis of systems and software, pages 70--79, Washington, DC, 2003. IEEE Computer Society. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. O. Holder, I. Ben-Shaul, and H. Gazit. Dynamic layout of distributed applications in FarGo. In ICSE '99: Proceedings of the 21st international conference on software engineering, pages 163--173, Los Alamitos, CA, 1999. IEEE Computer Society Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. J. C. Mogul. TCP offload is a dumb idea whose time has come. In HOTOS' 03: Proceedings of the 9th conference on Hot Topics in Operating Systems, pages 25--30, Berkeley, CA, 2003. USENIX Association. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. S. J. Muir. Piglet: an operating system for network appliances. PhD thesis, 2001. Supervisor: Jonathan M. Smith. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. G. Regnier, S. Makineni, R. Illikkal, R. Iyer, D. Minturn, R. Huggahalli, D. Newell, L. Cline, and A. Foong. TCP onloading for data center servers. Computer, 37(11):48--58, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. E. Riedel, G. A. Gibson, and C. Faloutsos. Active storage for largescale data mining and multimedia. In Proc. 24th Int. Conf. Very Large Data Bases, VLDB, pages 62--73, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. P. Shivam, P. Wyckoff, and D. Panda. EMP: zero-copy OS-bypass NIC-driven gigabit ethernet message passing. In SC'01, Nov. 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. TiVo Inc homepage. Available at site: http://www.tivo.com.Google ScholarGoogle Scholar
  13. D. Tsafrir, Y. Etsion, D. G. Feitelson, and S. Kirkpatrick. System noise, OS clock ticks, and fine-grained parallel applications. In ICS '05: Proc. of the 19th annual intl. conf. on supercomputing, pages 303--312, New York, NY, 2005. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. T. von Eicken, D. E. Culler, S. C. Goldstein, and K. E. Schauser. Active messages: A mechanism for integrated communication and computation. In 19th International Symposium on Computer Architecture, pages 256--266, Gold Coast, Australia, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. R. O. Weber. Information technology---SCSI object-based storage device commands -2 (OSD-2). Technical Report T10/1731-D, INCITS Technical Committee T10, Oct. 2004.Google ScholarGoogle Scholar
  16. Y. Weinsberg. An Operating System Specification for Dynamic Code Offloading to Programmable Devices. PhD thesis, The Hebrew University Of Jerusalem, October 2007.Google ScholarGoogle Scholar
  17. Y. Weinsberg and I. Ben-Shaul. A programming model and system support for disconnected-aware applications on resource-constrained devices. In ICSE '02: Proc. of the 24th intl. conf. on software engineering, pages 374--384, New York, NY, 2002. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Tapping into the fountain of CPUs: on operating system support for programmable devices

        Recommendations

        Reviews

        Herbert G. Mayer

        Hydra, a new framework for increasing the speed and power of general-purpose computers, without adding hardware or silicon, is described in this paper. Hydra exploits existing but untapped computing potential of devices that harbor capabilities similar to central processing units (CPUs). For example, any network interface controller (NIC) has a CPU, disk controllers are programmable, and high-end graphic units have compute engines often stronger than their host CPU. Hydra taps this computing potential through support in the operating system (OS), so that the relocation (offloading) of some computing steps from the CPU to the programmable device is transparent not only to the user, but also to the software application being accelerated. After the introduction in Section 1, Section 2 presents the Hydra system requirements for offloading and describes technical challenges. Section 3 reviews the programming model, and Section 4 discusses the architecture for offloading. Section 5 shows a mathematical formulation of complex offloading scenarios. Section 6 provides a case study for developing an offload-aware application, and evaluates the resulting performance improvement. Finally, Section 7 compares related work, Section 8 discusses future directions, and Section 9 concludes the discussion. The architecture section is very high level, and would have benefited from thorough coverage of at least one level of detail lower. Anyone using Hydra will have to contact the authors. Moreover, it is not clear when the total investment in additional programming and higher OS complexity is worth the return. A discussion of business models in which Hydra actually returns the investment would help. Aside from these minor issues, the paper is of clear value, as are the Hydra concept and its future derivatives. The fact that Weinsberg et al. actually implemented a Hydra framework and quantified and compared offload improvements across a variety of technical choices is helpful and renders the concept credible. A modicum of playful political correctness through use of the personal pronoun "she," in addition to an impeccable writing style, renders the paper exquisitely readable and the ideas easily comprehensible. Development engineers and researchers wishing to develop methods of increasing a system's computing power, without adding more CPUs or hyperthreads to silicon, must study this paper. Also, owners of very large banks of servers who are thinking about upgrading their tightly packed blades should read this paper before discarding the old banks of computers. Online Computing Reviews Service

        Access critical reviews of Computing literature here

        Become a reviewer for Computing Reviews.

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader
        About Cookies On This Site

        We use cookies to ensure that we give you the best experience on our website.

        Learn more

        Got it!