Issue No. 09 - September (1993 vol. 4)
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/71.243530
<p>The tension between software development costs and efficiency is especially high when considering parallel programs intended to run on a variety of architectures. In the domain of shared memory architectures and explicitly parallel programs, the authors have addressed this problem by defining a programming structure that eases the development of effectively portable programs. On each target multiprocessor, an effectively portable program runs almost as efficiently as a program fine-tuned for that machine. Additionally, its software development cost is close to that of a single program that is portable across the targets. Using this model, programs are defined in terms of data structure and partitioning-scheduling abstractions. Low software development cost is attained by writing source programs in terms of abstract interfaces and thereby requiring minimal modification to port; high performance is attained by matching (often dynamically) the interfaces to implementations that are most appropriate to the execution environment. The authors include results of a prototype used to evaluate the benefits and costs of this approach.</p>
Index Termsparallel portability; software development; costs; efficiency; shared memory architectures; parallel programs; target multiprocessor; data structure; partitioning-scheduling; parallel languages; run-time systems; parallel programming; portability; parallel programming; shared memory systems; software portability; structured programming
G. Alverson and D. Notkin, "Program Structuring for Effective Parallel Portability," in IEEE Transactions on Parallel & Distributed Systems, vol. 4, no. , pp. 1041-1059, 1993.