Skip to Main Content
Due to the increased complexity of applications, the distributed hierarchy architecture of clusters and the deficiency of efficient compiling strategies, developing efficient applications for large-scale scientific and engineering computing on clusters is difficult. Our strategy to address this problem is to extend a generic data-parallel programming environment with an extensible component library. A component is a reusable routine that can be called by an alias in applications to perform some specific computation. All algorithmic and programming complexity as well as the specialized knowledge required to implement and optimize the computation are encapsulated in the routine. The alias is provided to the programming model as an extended operator for end users to develop new applications. Programmers use data-parallel construct and high-level operators to specify applications and its parallelism, and rely on sophisticated implementations of these programming systems to ensure that applications achieve high performance.