• DocumentCode
    2906868
  • Title

    Automatic Handling of Global Variables for Multi-threaded MPI Programs

  • Author

    Zheng, Gengbin ; Negara, Stas ; Mendes, Celso L. ; Kalé, Laxmikant V. ; Rodrigues, Eduardo R.

  • Author_Institution
    Dept. of Comput. Sci., Univ. of Illinois at Urbana-Champaign, Urbana, IL, USA
  • fYear
    2011
  • fDate
    7-9 Dec. 2011
  • Firstpage
    220
  • Lastpage
    227
  • Abstract
    Conventional implementations of the MPI standard tend to associate one MPI process per processor, which limits their support for modern multi-core platforms. An increasingly popular approach is to combine MPI with threads where MPI "processes" are light-weight threads. Global variables in legacy MPI applications, however, present a challenge because they may be accessed by multiple MPI threads simultaneously. Thus, transforming legacy MPI applications to become thread-safe in such MPI execution environments requires proper handling of global variables. In this paper, we present three approaches to automatically eliminate global variables to ensure thread-safety for an MPI program. These approaches include: (a) a compiler-based refactoring technique, using a Photran-based tool as an example, which automates the source-to-source transformation for programs written in Fortran, (b) a technique based on a global offset table (GOT); and (c) a technique based on thread local storage (TLS). The second and third methods automatically detect global variables and privatize them for each thread at runtime. We discuss the advantages and disadvantages of these approaches and compare their performance using both synthetic benchmarks, such as the NAS Benchmarks, and a real scientific application, the FLASH code.
  • Keywords
    FORTRAN; message passing; multi-threading; software maintenance; FLASH code; Fortran; NAS Benchmarks; Photran based tool; automatic global variable handling; global offset table; legacy MPI applications; multithreaded MPI programs; scientific application; source-to-source transformation; thread local storage; thread safety; Context; Instruction sets; Libraries; Message systems; Privatization; Reactive power; Runtime; adaptive MPI; global variables; multi-threaded MPI; privatization;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Parallel and Distributed Systems (ICPADS), 2011 IEEE 17th International Conference on
  • Conference_Location
    Tainan
  • ISSN
    1521-9097
  • Print_ISBN
    978-1-4577-1875-5
  • Type

    conf

  • DOI
    10.1109/ICPADS.2011.33
  • Filename
    6121281