Pub Date : 2004-04-26DOI: 10.1109/HIPS.2004.1299196
B. Allan, S. Lefantzi, J. Ray
We present a case study of the alternatives and design trade-offs encountered when adapting an established numerical library into a form compatible with modern component-software implementation practices. Our study will help scientific software users, authors, and maintainers develop their own roadmaps for shifting to component-oriented software. The primary library studied, LSODE, and the issues involved in the adaptation are typical of many commonly used numerical libraries. We examine the adaptation of a related library, CVODE, and compare the impact on applications of the two different designs. The LSODE-derived components solve models composed with CCA components developed independently at the Argonne and Oak Ridge National Laboratories. The resulting applications run in the Ccaffeine framework implementation of the common component architecture specification. We provide CCA-style interface specifications appropriate to linear equations, ordinary differential equations (ODE), and differential algebraic equations (DAE) solvers.
{"title":"ODEPACK++: refactoring the LSODE Fortran library for use in the CCA high performance component software architecture","authors":"B. Allan, S. Lefantzi, J. Ray","doi":"10.1109/HIPS.2004.1299196","DOIUrl":"https://doi.org/10.1109/HIPS.2004.1299196","url":null,"abstract":"We present a case study of the alternatives and design trade-offs encountered when adapting an established numerical library into a form compatible with modern component-software implementation practices. Our study will help scientific software users, authors, and maintainers develop their own roadmaps for shifting to component-oriented software. The primary library studied, LSODE, and the issues involved in the adaptation are typical of many commonly used numerical libraries. We examine the adaptation of a related library, CVODE, and compare the impact on applications of the two different designs. The LSODE-derived components solve models composed with CCA components developed independently at the Argonne and Oak Ridge National Laboratories. The resulting applications run in the Ccaffeine framework implementation of the common component architecture specification. We provide CCA-style interface specifications appropriate to linear equations, ordinary differential equations (ODE), and differential algebraic equations (DAE) solvers.","PeriodicalId":448869,"journal":{"name":"Ninth International Workshop on High-Level Parallel Programming Models and Supportive Environments, 2004. Proceedings.","volume":"33 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2004-04-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126138001","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2004-04-26DOI: 10.1109/HIPS.2004.1299193
Felipe Bertrand, R. Bramley
The CCA is a component architecture for high-performance scientific applications. In this architecture components are parallel entities that are connected directly or in a distributed manner. The problem of communication between scientific parallel programs with differing numbers of processes is called the "M/spl times/N problem". This paper discusses problems and solutions regarding the M/spl times/N problem in the context of the CCA. We also present a prototype implementation of a distributed CCA framework with M/spl times/N capabilities. This implementation reuses many MPI concepts and constructions to build the parallel-remote port invocation mechanism. Leveraging MPI helps developers that are familiar with that communication library and benefits from its performance and high degree of scalability.
{"title":"DCA: a distributed CCA framework based on MPI","authors":"Felipe Bertrand, R. Bramley","doi":"10.1109/HIPS.2004.1299193","DOIUrl":"https://doi.org/10.1109/HIPS.2004.1299193","url":null,"abstract":"The CCA is a component architecture for high-performance scientific applications. In this architecture components are parallel entities that are connected directly or in a distributed manner. The problem of communication between scientific parallel programs with differing numbers of processes is called the \"M/spl times/N problem\". This paper discusses problems and solutions regarding the M/spl times/N problem in the context of the CCA. We also present a prototype implementation of a distributed CCA framework with M/spl times/N capabilities. This implementation reuses many MPI concepts and constructions to build the parallel-remote port invocation mechanism. Leveraging MPI helps developers that are familiar with that communication library and benefits from its performance and high degree of scalability.","PeriodicalId":448869,"journal":{"name":"Ninth International Workshop on High-Level Parallel Programming Models and Supportive Environments, 2004. Proceedings.","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2004-04-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128854281","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2004-04-26DOI: 10.1109/HIPS.2004.1299185
Nasser Kalantery
This paper introduces a new high-level parallel programming construct called multiLoop that is designed to extend existing imperative languages such as C and Java. A multiLoop statement translates to SPMD specification of a named group of synchronous-iterative processes. For efficient iterative communication, multiLoop provides a new publish/subscribe model of shared variable access. Under this model the sequential consistency of shared memory is maintained by a new, simple and efficient adaptation of virtual time paradigm. Virtual time is a localised message tagging and queuing procedure that provides a highly efficient alternative to barrier calls. ML-C, a prototype implementation based on C has been developed. We describe the programming model, discuss its implementation and present some empirical data showing good performance obtained for an example of the target class of applications.
{"title":"The MultiLoop programming construct","authors":"Nasser Kalantery","doi":"10.1109/HIPS.2004.1299185","DOIUrl":"https://doi.org/10.1109/HIPS.2004.1299185","url":null,"abstract":"This paper introduces a new high-level parallel programming construct called multiLoop that is designed to extend existing imperative languages such as C and Java. A multiLoop statement translates to SPMD specification of a named group of synchronous-iterative processes. For efficient iterative communication, multiLoop provides a new publish/subscribe model of shared variable access. Under this model the sequential consistency of shared memory is maintained by a new, simple and efficient adaptation of virtual time paradigm. Virtual time is a localised message tagging and queuing procedure that provides a highly efficient alternative to barrier calls. ML-C, a prototype implementation based on C has been developed. We describe the programming model, discuss its implementation and present some empirical data showing good performance obtained for an example of the target class of applications.","PeriodicalId":448869,"journal":{"name":"Ninth International Workshop on High-Level Parallel Programming Models and Supportive Environments, 2004. Proceedings.","volume":"55 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2004-04-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133621846","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
This paper describes an approach for automatically generating optimized parallel code from serial Fortran programs annotated with high level directives. A preprocessor analyzes both the program and the directives and generates efficient parallel Fortran code that runs on a number of parallel architectures, such as clusters or SMPs. The unique aspect of this approach is that the directives and optimizations can be customized and extended by the expert programmers who would be using them in their applications. This approach enables the creation of parallel extensions to Fortran that are specific to individual applications or science domains.
{"title":"Toward efficient compilation of user-defined extensible Fortran directives","authors":"M. Rosing, J. Nieplocha, S. Yabusaki","doi":"10.1109/HIPS.2004.10001","DOIUrl":"https://doi.org/10.1109/HIPS.2004.10001","url":null,"abstract":"This paper describes an approach for automatically generating optimized parallel code from serial Fortran programs annotated with high level directives. A preprocessor analyzes both the program and the directives and generates efficient parallel Fortran code that runs on a number of parallel architectures, such as clusters or SMPs. The unique aspect of this approach is that the directives and optimizations can be customized and extended by the expert programmers who would be using them in their applications. This approach enables the creation of parallel extensions to Fortran that are specific to individual applications or science domains.","PeriodicalId":448869,"journal":{"name":"Ninth International Workshop on High-Level Parallel Programming Models and Supportive Environments, 2004. Proceedings.","volume":"58 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2004-04-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132998771","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2004-04-26DOI: 10.1109/HIPS.2004.1299195
T. Forkert, G. Kloss, Christian Krause, A. Schreiber
This paper presents wrapping techniques that we have developed in order to integrate applications into the scientific workflow management system TENT. These techniques take into account the varying degrees of controllability found for each application and utilize various kinds of communication mechanisms between application and the associated wrapper. We also give an outline of the principles of component technology employed in the CORBA based TENT environment. In addition, the means by which applications can be connected through their associated wrappers and TENT components to form distributed workflows are presented. It is demonstrated how TENT provides the user with a homogeneous perspective on scientific workflows running in a distributed environment and how he is enabled to efficiently configure and control these workflows by means of the TENT component model.
{"title":"Techniques for wrapping scientific applications to CORBA components","authors":"T. Forkert, G. Kloss, Christian Krause, A. Schreiber","doi":"10.1109/HIPS.2004.1299195","DOIUrl":"https://doi.org/10.1109/HIPS.2004.1299195","url":null,"abstract":"This paper presents wrapping techniques that we have developed in order to integrate applications into the scientific workflow management system TENT. These techniques take into account the varying degrees of controllability found for each application and utilize various kinds of communication mechanisms between application and the associated wrapper. We also give an outline of the principles of component technology employed in the CORBA based TENT environment. In addition, the means by which applications can be connected through their associated wrappers and TENT components to form distributed workflows are presented. It is demonstrated how TENT provides the user with a homogeneous perspective on scientific workflows running in a distributed environment and how he is enabled to efficiently configure and control these workflows by means of the TENT component model.","PeriodicalId":448869,"journal":{"name":"Ninth International Workshop on High-Level Parallel Programming Models and Supportive Environments, 2004. Proceedings.","volume":"51 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2004-04-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132074193","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Processor layout and data distribution are important to performance-oriented parallel computation, yet high-level language support that helps programmers address these issues is often inadequate. This paper presents a trio of abstract high-level language constructs - grids, distributions, and regions - that let programmers manipulate processor layout and data distribution. Grids abstract processor sets, regions abstract index sets, and distributions abstract mappings from index sets to processor sets; each of these is a first-class concept, supporting dynamic data reallocation and redistribution as well as dynamic manipulation of the processor set. This paper illustrates uses of these constructs in the solutions to several motivating parallel programming problems.
{"title":"Abstractions for dynamic data distribution","authors":"Steven J. Deitz, B. Chamberlain, L. Snyder","doi":"10.1109/HIPS.2004.10000","DOIUrl":"https://doi.org/10.1109/HIPS.2004.10000","url":null,"abstract":"Processor layout and data distribution are important to performance-oriented parallel computation, yet high-level language support that helps programmers address these issues is often inadequate. This paper presents a trio of abstract high-level language constructs - grids, distributions, and regions - that let programmers manipulate processor layout and data distribution. Grids abstract processor sets, regions abstract index sets, and distributions abstract mappings from index sets to processor sets; each of these is a first-class concept, supporting dynamic data reallocation and redistribution as well as dynamic manipulation of the processor set. This paper illustrates uses of these constructs in the solutions to several motivating parallel programming problems.","PeriodicalId":448869,"journal":{"name":"Ninth International Workshop on High-Level Parallel Programming Models and Supportive Environments, 2004. Proceedings.","volume":"154 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2004-04-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116634220","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2004-04-26DOI: 10.1109/HIPS.2004.1299186
S. MacDonald, D. Szafron, J. Schaeffer
The pipeline is a simple and intuitive structure to speed up many problems. Novice parallel programmers are usually taught this structure early on. However, expert parallel programmers typically eschew using the pipeline in coarse-grained applications because it has three serious problems that make it difficult to implement efficiently. First, processors are idle when the pipeline is not full. Second, load balancing is crucial to obtaining good speedup. Third, it is difficult to incrementally incorporate more processors into an existing pipeline. Instead, experts recast the problem as a master/slave structure which does not suffer from these problems. This paper details a transformation that allows programs written in a pipeline style to execute using the master/slave structure. Parallel programmers can benefit from both the intuitive simplicity of the pipeline and the efficient execution of a master/slave structure. This is demonstrated by performance results from two applications.
{"title":"Rethinking the pipeline as object-oriented states with transformations","authors":"S. MacDonald, D. Szafron, J. Schaeffer","doi":"10.1109/HIPS.2004.1299186","DOIUrl":"https://doi.org/10.1109/HIPS.2004.1299186","url":null,"abstract":"The pipeline is a simple and intuitive structure to speed up many problems. Novice parallel programmers are usually taught this structure early on. However, expert parallel programmers typically eschew using the pipeline in coarse-grained applications because it has three serious problems that make it difficult to implement efficiently. First, processors are idle when the pipeline is not full. Second, load balancing is crucial to obtaining good speedup. Third, it is difficult to incrementally incorporate more processors into an existing pipeline. Instead, experts recast the problem as a master/slave structure which does not suffer from these problems. This paper details a transformation that allows programs written in a pipeline style to execute using the master/slave structure. Parallel programmers can benefit from both the intuitive simplicity of the pipeline and the efficient execution of a master/slave structure. This is demonstrated by performance results from two applications.","PeriodicalId":448869,"journal":{"name":"Ninth International Workshop on High-Level Parallel Programming Models and Supportive Environments, 2004. Proceedings.","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2004-04-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114989165","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2004-04-26DOI: 10.1109/HIPS.2004.1299188
Richard Stahl, R. Pasko, F. Catthoor, R. Lauwereins, D. Verkest
In the era of future embedded systems the designer is confronted with multi-processor systems both for performance and energy reasons. Exploiting (sub)task-level parallelism is becoming crucial because the instruction-level parallelism alone is insufficient. The challenge is to build compiler tools that support the exploration of the task-level parallelism in the programs. To achieve this goal, we have designed an analysis framework to evaluate the potential parallelism from sequential object-oriented programs. Parallel-performance and data-access analysis are the crucial techniques for estimation of the transformation effects. We have implemented support for platform-independent data-access analysis and profiling of Java programs, which is an extension to our earlier parallel-performance analysis framework. The toolkit comprises automated design-time analysis for performance and data-access characterisation, program instrumentation, program-profiling support and post-processing analysis. We demonstrate the usability of our approach on a number of realistic Java applications.
{"title":"High-level data-access analysis for characterisation of (sub)task-level parallelism on Java","authors":"Richard Stahl, R. Pasko, F. Catthoor, R. Lauwereins, D. Verkest","doi":"10.1109/HIPS.2004.1299188","DOIUrl":"https://doi.org/10.1109/HIPS.2004.1299188","url":null,"abstract":"In the era of future embedded systems the designer is confronted with multi-processor systems both for performance and energy reasons. Exploiting (sub)task-level parallelism is becoming crucial because the instruction-level parallelism alone is insufficient. The challenge is to build compiler tools that support the exploration of the task-level parallelism in the programs. To achieve this goal, we have designed an analysis framework to evaluate the potential parallelism from sequential object-oriented programs. Parallel-performance and data-access analysis are the crucial techniques for estimation of the transformation effects. We have implemented support for platform-independent data-access analysis and profiling of Java programs, which is an extension to our earlier parallel-performance analysis framework. The toolkit comprises automated design-time analysis for performance and data-access characterisation, program instrumentation, program-profiling support and post-processing analysis. We demonstrate the usability of our approach on a number of realistic Java applications.","PeriodicalId":448869,"journal":{"name":"Ninth International Workshop on High-Level Parallel Programming Models and Supportive Environments, 2004. Proceedings.","volume":"12 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2004-04-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131410241","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2004-04-26DOI: 10.1109/HIPS.2004.1299194
S. Krishnan, Dennis Gannon
The benefits of component technologies are well known: they enable encapsulation, modular construction of applications and software reuse. The DOE sponsored common component architecture (CCA) as stated in R. Armstrong et al. (1999) project adopts a component-based approach for building large scale scientific applications. On the other hand, the Web services-based open grid service architecture (OGSA) and infrastructure (OGSI) based on I. Foster et al. (2002) come close to defining a component architecture for the Grid. Using an approach where a CCA component is modeled as a set of Grid services, the XCAT3 framework allows for CCA components to be compatible with the OGSI specification. This enables CCA components to be accessible via standard Grid clients, especially the ones that are portal-based. For CCA compatibility, XCAT3 uses interfaces generated by the Babel toolkit based CASC (2003), and for OGSI compatibility, it uses the Extreme GSX toolkit based on Indiana University Extreme Computing Lab. Grid Service Extensions (2003). In this paper, we describe our experience in implementing the XCAT3 system, and how it can be used to compose complex distributed applications on the Grid in a modular fashion.
组件技术的好处是众所周知的:它们支持封装、应用程序的模块化构造和软件重用。如R. Armstrong等人(1999)项目所述,DOE赞助的公共组件体系结构(CCA)采用基于组件的方法来构建大规模的科学应用程序。另一方面,基于Web服务的开放网格服务体系结构(OGSA)和基于I. Foster等人(2002)的基础设施(OGSI)更接近于为网格定义组件体系结构。使用将CCA组件建模为一组网格服务的方法,XCAT3框架允许CCA组件与OGSI规范兼容。这使得可以通过标准网格客户端访问CCA组件,特别是那些基于门户的客户端。为了兼容CCA, XCAT3使用基于CASC(2003)的Babel工具包生成的接口,为了兼容OGSI,它使用基于Indiana University Extreme Computing Lab的Extreme GSX工具包。网格服务扩展(2003)。在本文中,我们描述了实现XCAT3系统的经验,以及如何使用它以模块化的方式在网格上组合复杂的分布式应用程序。
{"title":"XCAT3: a framework for CCA components as OGSA services","authors":"S. Krishnan, Dennis Gannon","doi":"10.1109/HIPS.2004.1299194","DOIUrl":"https://doi.org/10.1109/HIPS.2004.1299194","url":null,"abstract":"The benefits of component technologies are well known: they enable encapsulation, modular construction of applications and software reuse. The DOE sponsored common component architecture (CCA) as stated in R. Armstrong et al. (1999) project adopts a component-based approach for building large scale scientific applications. On the other hand, the Web services-based open grid service architecture (OGSA) and infrastructure (OGSI) based on I. Foster et al. (2002) come close to defining a component architecture for the Grid. Using an approach where a CCA component is modeled as a set of Grid services, the XCAT3 framework allows for CCA components to be compatible with the OGSI specification. This enables CCA components to be accessible via standard Grid clients, especially the ones that are portal-based. For CCA compatibility, XCAT3 uses interfaces generated by the Babel toolkit based CASC (2003), and for OGSI compatibility, it uses the Extreme GSX toolkit based on Indiana University Extreme Computing Lab. Grid Service Extensions (2003). In this paper, we describe our experience in implementing the XCAT3 system, and how it can be used to compose complex distributed applications on the Grid in a modular fashion.","PeriodicalId":448869,"journal":{"name":"Ninth International Workshop on High-Level Parallel Programming Models and Supportive Environments, 2004. Proceedings.","volume":"109 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2004-04-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121385499","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
The strong focus of recent high end computing efforts on performance has resulted in a low-level parallel programming paradigm characterized by explicit control over message-passing in the framework of a fragmented programming model. In such a model, object code performance is achieved at the expense of productivity, conciseness, and clarity. This paper describes the design of Chapel, the cascade high productivity language, which is being developed in the DARPA-funded HPCS project Cascade led by Cray Inc. Chapel pushes the state-of-the-art in languages for HEC system programming by focusing on productivity, in particular by combining the goal of highest possible object code performance with that of programmability offered by a high-level user interface. The design of Chapel is guided by four key areas of language technology: multithreading, locality-awareness, object-orientation, and generic programming. The Cascade architecture, which is being developed in parallel with the language, provides key architectural support for its efficient implementation.
{"title":"The cascade high productivity language","authors":"D. Callahan, B. Chamberlain, H. Zima","doi":"10.1109/HIPS.2004.10002","DOIUrl":"https://doi.org/10.1109/HIPS.2004.10002","url":null,"abstract":"The strong focus of recent high end computing efforts on performance has resulted in a low-level parallel programming paradigm characterized by explicit control over message-passing in the framework of a fragmented programming model. In such a model, object code performance is achieved at the expense of productivity, conciseness, and clarity. This paper describes the design of Chapel, the cascade high productivity language, which is being developed in the DARPA-funded HPCS project Cascade led by Cray Inc. Chapel pushes the state-of-the-art in languages for HEC system programming by focusing on productivity, in particular by combining the goal of highest possible object code performance with that of programmability offered by a high-level user interface. The design of Chapel is guided by four key areas of language technology: multithreading, locality-awareness, object-orientation, and generic programming. The Cascade architecture, which is being developed in parallel with the language, provides key architectural support for its efficient implementation.","PeriodicalId":448869,"journal":{"name":"Ninth International Workshop on High-Level Parallel Programming Models and Supportive Environments, 2004. Proceedings.","volume":"43 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2004-04-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129565452","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}