APL-style programs use high level primitives on arrays instead of DO-loops whenever possible. For such programs, the average size of a basic blocks is much large than those in their FORTRAN counterparts. Hence, it is sufficiently profitable and relative easy to concentrate on basic blocks when parallelizing APL-style programs. But such an approach must depend on an APL compiler. The APL/370 compiler we have been developing aims at implementing automatic parallelization of APL programs at basic block level.
rnThe compiler exploits functional parallelism on data independent sub-expressions and data parallelism of array primitives on array elements. The compiler front end does a local data dependency analysis and emits synchronization flags at function nodes. The back end does partitioning of (assembly code) array loop. A set of low-level synchronization primitives on MVS has also been developed. This will enable us to run compiled applications in parallel mode on IBM 3090 multi-processors toaccess the effectiveness of various scheduling methods on a shared memory model.
APL风格的程序尽可能在数组上使用高级基元,而不是DO循环。对于此类程序,基本块的平均大小比其FORTRAN对应块的平均大小大得多。因此,在并行化APL风格的程序时,既有足够的利润,又相对容易地专注于基本块。但是,这种方法必须取决于APL编译器。我们一直在开发的APL / 370编译器旨在在基本块级别实现APL程序的自动并行化。 P> rn
该编译器利用了数据无关子表达式的函数并行性和数组元素在数组元素上的数据并行性。 。编译器前端进行本地数据依赖关系分析,并在功能节点上发出同步标志。后端对(汇编代码)数组循环进行分区。还开发了一套有关MVS的低级同步原语。这将使我们能够在IBM 3090多处理器上以并行模式运行已编译的应用程序,以访问共享内存模型上各种调度方法的有效性。 P>
Thomas J. Watson Research Center, P.O. Box 704, Yorkrown Heighls, NY;
机译:自动并行化:在基于任务的并行运行时执行顺序程序
机译:逻辑程序的自动编译时并行化,用于受限,目标级别,独立和并行
机译:通过OpenMP卸载自动翻译异构并行性的数据并行程序
机译:自动调整并行程序和并行程序
机译:Java程序自动并行化的运行时支持。
机译:体外极化Caco-2肠上皮细胞的全球转录程序与正常结肠癌和结肠癌中的基因表达程序之间的平行性
机译:C语言程序自动并行翻译器基于Parse树的将并行信息集成到中间数据结构中的改进