摘要
为了支持并行程序设计,几乎所有的程序设计语言均通过提供并行与同步通信机制来支持某一高级并行计算模型,如Ada语言的任务与会合机制以及Java语言的线程和同步方法.显然,这样的程序设计语言仅能支持一种高级并行计算模型.尽管单模型的途径对某些应用来说简单而有效,但由于现实世界中的问题往往较为繁杂而难以完全用单一模型来解决.文章采用面向对象的语言机制和框架技术来解决此问题.通过分析现有各种语言中高级并行计算模型的共性,提出了若干新的面向对象语言机制.以此为基础,提出了并行面向对象框架的概念,并讨论用其表达和使用高级并行计算模型的方法.结果是,可在某种意义下将高级并行计算模型从语言中分离出来,而单一语言可由多个并行框架加以支撑,从而使得在单一面向对象语言中支持多种高级并行计算模型成为可能.
In order to support parallel programming, almost all of the programming languages incorporate a highlevel parallel computing model into the language by providing parallelism and synchronization mechanisms, such as Ada's task with rendezvous and Java's thread with synchronized method. Obviously, such a programming language can only support one highlevel parallel computing model. Although the approach of one model is simple and fairly effective to some applications, unfortunately the problems in the real world are always too diverse to be solved by using a single parallel computing model. In this paper, a new objectoriented approach to this problem is proposed. After analyzing the highlevel parallel models of the various languages, some novel objectoriented language mechanisms are presented. Based on them, the concept of objectoriented parallel framework is proposed and the method for expressing and using the highlevel parallel computing models by parallel frameworks is discussed. As a result, the highlevel computing models are separated from languages in some sense and more than one framework could be given within a single language. Therefore, using a single language to support the various parallel models turns to be feasible.
出处
《软件学报》
EI
CSCD
北大核心
1999年第3期270-276,共7页
Journal of Software
基金
国家攀登计划项目基金
国家杰出青年科学基金
美国Motorola合作项目基金
关键词
并行计算模型
面向对象
并行框架
并行程序设计
Parallel model, parallel framework, nested class, abstract function class, implicit code, auto mechanism.