• DocumentCode
    3331147
  • Title

    Partial globalization of partitioned address spaces for zero-copy communication with shared memory

  • Author

    Jiao, Fangzhou ; Mahajan, Nilesh ; Willcock, Jeremiah ; Chauhan, Arun ; Lumsdaine, Andrew

  • Author_Institution
    Sch. of Inf. & Comput., Indiana Univ., Bloomington, IN, USA
  • fYear
    2011
  • fDate
    18-21 Dec. 2011
  • Firstpage
    1
  • Lastpage
    10
  • Abstract
    We have developed a high-level language, called Kanor, for declaratively specifying communication in parallel programs. Designed as an extension of C++, it serves to coordinate partitioned address space programs written in the bulk synchronous parallel (BSP) style. Kanor´s declarative semantics enable the programmers to write correct and maintainable parallel applications. The communication abstraction has been carefully designed to be amenable to compiler optimizations. While partitioned address space programming has several advantages, it needs special compiler optimizations to effectively leverage the shared memory hardware when running on multicore machines. In this paper, we introduce such shared-memory optimizations in the context of Kanor. One major way we achieve these optimizations is by selectively moving some of the variables into a globally shared address space - a process that we term partial globalization. We identify scenarios in which such a transformation is beneficial, and present an algorithm to identify and correctly transform Kanor communication steps into zero-copy communication using hardware shared memory, by introducing minimal synchronization. We then present a runtime strategy that complements the compiler algorithm to eliminate most of the runtime synchronization overheads by using a copy-on-conflict technique. Finally, we show that our solution often performs much better than shared-memory optimized MPI, and ne ver performs significantly worse than MPI even in the presence of dependencies introduced due to buffer sharing. The techniques in this paper demonstrate that it is possible to program in a partitioned address space style, without sacrificing the performance advantages of hardware shared memory. To the best of our knowledge no other automatic compiler techniques have been developed so far that achieve zero-copy communication from a partitioned address space program. We expect out results to be applicable beyond Kanor, to other p- rtitioned address space programming environments, such as MPI.
  • Keywords
    C++ language; multiprocessing systems; optimising compilers; parallel programming; programming language semantics; shared memory systems; C++; Kanor declarative semantics; bulk synchronous parallel; compiler optimization; copy-on-conflict technique; high-level language; multicore machines; parallel programs; partial globalization; partitioned address space program; shared memory; shared memory hardware; zero copy communication; Arrays; Program processors; Programming; Receivers; Runtime; Semantics; Synchronization; Parallel programming; compilers; partitioned address space; shared memory;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    High Performance Computing (HiPC), 2011 18th International Conference on
  • Conference_Location
    Bangalore
  • Print_ISBN
    978-1-4577-1951-6
  • Electronic_ISBN
    978-1-4577-1949-3
  • Type

    conf

  • DOI
    10.1109/HiPC.2011.6152733
  • Filename
    6152733