5.1 概述 |
HPF程序可能需要调用一个用不同程序模型或不同程序语言实现的过程。一个过程的程序设计模型可能提供:
.唯一的一个的逻辑控制线索,在该线索中理论上执行的是过程的一个拷贝并且在程序正文中有唯一的一个控制点;当基础的目标硬件具有(潜在)多处理器或存储器时,此模型被称为全局的(GLOBAL);若基础的目标硬件是一个单处理器(或多处理器中的一个节点),则称此模型为串行的(SERIAL)。
.多控制线索,每个处理器一个线索,每个线索执行相同的过程;此模型称作局部的(LOCAL)或者更一般地,称作SPMD(单程序多数据),或者
.一些其它的模型,例如一个多控制线索可能允许循环迭代向处理器进行动态赋值或进行显式地动态进程派生,在此线索中,初始时至少要引用一个理论上执行的过程的拷贝,这一过程可能会在程序正文中派生多个控制点,而且随着时间的变化控制点的个数还可能改变。我们在这里不对这种模型进行讨论。
每一个程序设计语言都提供专门的语法(语言特征),语义(含义),和语用(目的)。程序设计语言的例子包括Fortran(ANSI和ISO标准,最近的修订是在1996年认可的),HPF(一种对于Fortran进行扩展和约束的说明),Fortran 77(以前的ANSI和ISO标准),C,C++,Java,Visual Basic,以及COBOL。
当把一个程序单元的语言和模型放到一起时就构成了它的外部类(extrinsic kind)。外部类可通过外部前缀(extrinsic-prefix)显式指定,也可隐式指定,所谓隐式指定是由编译器进行选择并且在引用时使用一组专门的编译选项。这样,我们就可象Fortran中所定义的那样,把编译器看作是提供了一个宿主作用域单元。例如,由HPF编译器所编译的程序单元就是一个外部类HPF。另外它的外部类也可通过诸如EXTRINSIC(HPF)或EXTRINSIC(LANGUAGE=‘HPF’,MODEL=‘GLOBAL’)这样的外部前缀来显式指定。
Copyright: NPACT |