| 本文已被:浏览 4229次 下载 5871次 |
 码上扫一扫! |
|
|
| 支持多种并行计算模型的面向对象框架研究 |
|
吕建1,2, 陆陪1,2, 于大川1,2, David L.Shang3
|
|
1.南京大学计算机软件新技术国家重点实验室,南京,210093;2.南京大学计算机软件研究所,南京,210093;3.Motorola公司软件系统研究实验室,美国
|
|
| 摘要: |
| 为了支持并行程序设计,几乎所有的程序设计语言均通过提供并行与同步通信机制来支持某一高级并行计算模型,如Ada语言的任务与会合机制以及Java语言的线程和同步方法.显然,这样的程序设计语言仅能支持一种高级并行计算模型.尽管单模型的途径对某些应用来说简单而有效,但由于现实世界中的问题往往较为繁杂而难以完全用单一模型来解决.文章采用面向对象的语言机制和框架技术来解决此问题.通过分析现有各种语言中高级并行计算模型的共性,提出了若干新的面向对象语言机制.以此为基础,提出了并行面向对象框架的概念,并讨论用其表达和使用 |
| 关键词: 并行模型,并行框架,嵌套类,抽象函数类,隐式代码,auto机制. |
| DOI: |
| 分类号: |
| 基金项目:本文研究得到国家攀登计划项目基金、国家杰出青年科学基金和与美国Motorola合作项目基金资助. |
|
| Researches on Object-oriented Frameworks Supporting Multiple Parallel Computing Models |
|
L Jian,LU Pei,YU Da-chuan,David L. Shang
|
| Abstract: |
| In order to support parallel programming, almost all of the programming languages incorporate a high-level 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 high-level 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 object-oriented approach to this problem is proposed. After analyzing the high-level parallel models of the various languages, some novel object-oriented language mechanisms are presented. Based on them, the concept of object-oriented parallel framework is proposed and the method for expressing and using the high-level parallel computing models by parallel frameworks is discussed. As a result, the high-level 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. |
| Key words: Parallel model, parallel framework, nested class, abstract function class, implicit code, auto mechanism. |