X10(ID:8172/)

IBM high productivity HPC language 


IBM high productivity HPC language

One of the DARPA hpcs languages


References:
  • Ebcioglu, Kemal; Saraswat, Vijay and Sarkar, Vivek; "X10: Programming for Hierarchical Parallelism and Non-Uniform Data Access" "Impact of Next Generation Processor Architectures On Virtual Machine Technologies", colocated with the ACM OOPSLA 2004 conference, Vancouver, October 2004 preprint view details Abstract: The challenges faced by current and future-generation largescale
    systems include: 1) Frequency wall: inability to follow
    past frequency scaling trends, 2) Memory wall: inability
    to support a coherent uniform-memory access model with
    reasonable performance, and 3) Scalability wall: inability
    to utilize all levels of available parallelism in the system.
    These challenges manifest themselves as both performance
    and productivity issues in the use of large-scale systems.
    X10 is an experimental modern object-oriented programming
    language being developed to help address the second
    and third of these three challenges. It is intended for highperformance,
    high-productivity programming of large-scale
    computer systems with non-uniformities in data access and
    coherence, as well as multiple heterogeneous levels of parallelism.
    This paper provides a summary of the X10 language
    and programming model, and discusses its applicability to
    future processor architectures and runtime systems.
  • Sarkar, Vivek; Ebcioglu, Kemal and Saraswat, Vijay "X10: A Programming Model for Hierarchical Heterogeneous Parallelism" view details Abstract: X10 is a new programming model extending state-of-the-art object-programming languages to support high-end, high-performance, high-productivity computing. This paper provides a summary of the X10 language, it's programming model, and discuss its applicability to next generation processor architectures. X10 supports its design goals by introducing a few core constructs organized around the central notion of a place. A place is an abstraction of a data-coherent multi-processor. A computation, consisting of millions of activities may run over hundreds of thousands of places. Large arrays may be distributed across multiple places. X10 allows an activity to dynamically create activities at multiple places, and allows an activity to return a future to the invoking activity. An activity may update local data-objects using atomic sections. Multiple activities at multiple places may be phased through the use of clocks, which allow the repeated detection of stable properties of networks of activities. External link: Online copy pdf
          in LaR 2004 Language Runtimes '04 "Impact of Next Generation Processor Architectures On Virtual Machines" (part of OOPSLA 2004) view details