Publication | Closed Access
<i>P</i><sup>3</sup><i>L</i>: A structured high‐level parallel language, and its structured support
160
Citations
8
References
1995
Year
Actual Parallelism DegreeEngineeringP 3Computer ArchitectureSoftware EngineeringParallel AlgorithmsParallel SoftwareStructured SupportComputational LinguisticsLanguage StudiesParallel ComputingCompilersParallel Programming MethodologyProgramming LanguagesHigh-level Programming LanguageParallelizing CompilerComputer EngineeringDistributed SystemsComputer ScienceOperating SystemsProgram AnalysisFormal MethodsParallel ProgrammingParallel Programming ModelLinguistics
Abstract The paper presents a parallel programming methodology that ensures easy programming, efficiency and portability of programs to different machines belonging to the class of the general‐purpose, distributed‐memory, MIMD architectures. The methodology is based on the definition of a new, high‐level, explicitly parallel language, called P 3 L, and of a set of static tools that automatically adapt the program features for each target architecture. P 3 L does not require programmers to specify process activations, the actual parallelism degree, scheduling, or interprocess communications, i.e. all those features that need to be adjusted to harness each specific target machine. Parallelism is, on the other hand, expressed in a structured and qualitative way, by hierarchical composition of a restricted set of language constructs, corresponding to those forms of parallelism that are frequently encountered in parallel applications, and that can be efficiently implemented. The efficient portability of P 3 L applications is guaranteed by the compiler along with the novel structure of the support. The compiler automatically adapts the program features for each specific architecture, using the costs (in terms of performance) of the low‐level mechanisms exported by the architecture itself. In our methodology, these costs, along with other features of the architecture, are viewed through an abstract machine, whose interface is used by the compiler to produce the final object code.
| Year | Citations | |
|---|---|---|
Page 1
Page 1