Nothing Special   »   [go: up one dir, main page]

skip to main content
article

The programming model of ASSIST, an environment for parallel and distributed portable applications

Published: 01 December 2002 Publication History

Abstract

A software development system based upon integrated skeleton technology (ASSIST) is a proposal of a new programming environment oriented to the development of parallel and distributed high-performance applications according to a unified approach. The main goals are: high-level programmability and software productivity for complex multidisciplinary applications, including data-intensive and interactive software; performance portability across different platforms, in particular large-scale platforms and grids; effective reuse of parallel software; efficient evolution of applications through versions that scale according to the underlying technologies.The purpose of this paper is to show the principles of the proposed approach in terms of the programming model (successive papers will deal with the environment implementation and with performance evaluation). The features and the characteristics of the ASSIST programming model are described according to an operational semantics style and using examples to drive the presentation, to show the expressive power and to discuss the research issues.According to our previous experience in structured parallel programming, in ASSIST we wish to overcome some limitations of the classical skeletons approach to improve generality and flexibility, expressive power and efficiency for irregular, dynamic and interactive applications, as well as for complex combinations of task and data parallelism. A new paradigm, called "parallel module" (parmod) is defined which, in addition to expressing the semantics of several skeletons as particular cases, is able to express more general parallel and distributed program structures, including both data-flow and nondeterministic reactive computations. ASSIST allows the programmer to design the applications in the form of generic graphs of parallel components. Another distinguishing feature is that ASSIST modules are able to utilize external objects, including shared data structures and abstract objects (e.g. CORBA), with standard interfacing mechanisms. In turn, an ASSIST application can be reused and exported as a component for other applications, possibly expressed in different formalisms.

References

[1]
{1} R.C. Armstrong, A. Chung, POET (parallel object-oriented environment and toolkit) and frameworks for scientific distributed computing, Hawaii Int. Conf. System Sciences, 1997.]]
[2]
{2} H.E. Bal, M. Heines, Approaches for integrating task and data parallelism, IEEE Concurrency, IEEE Computer Society 6 (3) (1998) 74-84.]]
[3]
{3} M. Baker, R. Buyya, D. Laforenza, The Grid: International Efforts in Global Computing, Proc. SSGRR 2000 Computer & eBusiness Conference, L'Aquila, July 31-August 6, 2000.]]
[4]
{4} F. Baiardi, D. Guerri, P. Mori, L. Moroni, L. Ricci, Two Layers Distributed Shared Memory, Proc. HPCN, 2001.]]
[5]
{5} F. Baiardi, M. Vanneschi, F. Angeli, Concurrent Programming Languages. Franco Angeli Publ., CRAI Series, 1980.]]
[6]
{6} G. Carletti, M. Coppola, Structured parallel programming and shared objects:experience in data mining classifiers, Proc. ParCo 2001 Int. Conf.]]
[7]
{7} R. Armstrong, D. Gannon, A. Geist, K. Keahey, S. Kohn, L. McInnes, S. Parker, B. Smolinski, Toward a common component architecture for high performance scientific computing. Proc. 8th High Performance Distributed Computing (HPDC'99), 1999.]]
[8]
{8} M. Cole, Algorithmic Skeletons: Structured Management of Parallel Computation, MIT Press, Cambridge MA, 1989.]]
[9]
{9} M. Coppola, M. Vanneschi, High performance data mining with skeleton-based structured programming, to appear in parallel computing, special issue on Parallel Data Intensive Algorithms, Elsevier Science.]]
[10]
{10} M. Danelutto, On skeletons and design patterns, Proc. ParCo 2001 Int. Conf.]]
[11]
{11} J. Darlington, Y. Guo H.W. To, Y. Jing, Skeletons for Structured parallel composition, in: Proc. of the 15th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, 1995.]]
[12]
{12} I. Foster, C. Kesselman, The Grid: Blueprint for a New Computing Infrastructure, Morgan Kaufmann, 1999.]]
[13]
{13} C. Lee, S. Matsuoka, D. Talia, A. Sussman, N. Karonis, G. Allen, J. Saltz, A Grid Programming Primer, Global Grid Forum 2, Washington D.C., July 2001.]]
[14]
{14} High Performance Fortran Forum, High Performance Fortran Language Specification Version 2.0, 1997.]]
[15]
{15} C.A.R. Hoare, A Model for CSP, Oxford University Report.]]
[16]
{16} K. Keahey, P. Beckman, J. Ahrens, Ligature: component architecture for high performance applications, The International Journal of High Performance Computing Applications, vol. 14, 4, Winter 2000, 347-356.]]
[17]
{17} K. Keahey, D. Gannon, PARDIS. A parallel approach to CORBA, 6th IEEE Int. Symp. High Performance Distributed Computing, 1997, 31-39.]]
[18]
{18} C. Koelbel, D. Lovemann, R. Schreiber, G. Steele, M. Zosel, The High Performance Fortran Handbook, MIT Press, 1994.]]
[19]
{19} S. Newhouse, A. Mayer, J. Darlington, A software architecture for hpc grid applications, in: A. Bode et al. (Eds.), EuroPar 2000, LNCS 1900, 2000, Springer-Verlag, pp. 686-689.]]
[20]
{20} Object Management Group, The common object request broker: architecture and specification, 1995.]]
[21]
{21} B. Bacci. M. Danelutto. S. Pelagatti, M. Vanneschi, SkIE: A heterogeneous environment for HPC applications, Parallel Computing, 25, December 1999, 1827-1852.]]
[22]
{22} D.B. Skillicorn, D. Talia, Models and languages for parallel computation, ACM Computing Surveys 30 (2) (1998) 123-169.]]
[23]
{23} M. Vanneschi, Heterogeneous HPC environments, invited paper, Fourth International Euro-Par Conference, Southampton, in: D. Pritchard, J. Reeve (Eds.), Lecture Notes in Computer Science, vol. 1470, September 1998, pp. 21-34.]]
[24]
{24} M. Vanneschi, PQE2000: HPC tools for industrial applications, IEEE Concurrency, IEEE Computer Society 6 (4) (1998) 68-73.]]
[25]
{25} M. Vanneschi, Parallel Paradigms for Scientific Computing, Lecture Notes in Chemistry, vol. 75, 2000, 170-183]]

Cited By

View all
  • (2020)Programming languages for data-Intensive HPC applicationsParallel Computing10.1016/j.parco.2019.10258491:COnline publication date: 1-Mar-2020
  • (2017)Bringing Parallel Patterns Out of the CornerACM Transactions on Architecture and Code Optimization10.1145/313271014:4(1-26)Online publication date: 24-Oct-2017
  • (2016)Exploring the role of sequential computation in distributed systems: motivating a programming paradigm shiftProceedings of the 2016 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software10.1145/2986012.2986015(145-164)Online publication date: 20-Oct-2016
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image Parallel Computing
Parallel Computing  Volume 28, Issue 12
Special issue: Advanced environments for parallel and distributed computing
December 2002
195 pages

Publisher

Elsevier Science Publishers B. V.

Netherlands

Publication History

Published: 01 December 2002

Author Tags

  1. large-scale platforms
  2. parallel and distributed programming environments
  3. shared objects
  4. skeletons model
  5. software component technology
  6. structured parallel programming

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 26 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2020)Programming languages for data-Intensive HPC applicationsParallel Computing10.1016/j.parco.2019.10258491:COnline publication date: 1-Mar-2020
  • (2017)Bringing Parallel Patterns Out of the CornerACM Transactions on Architecture and Code Optimization10.1145/313271014:4(1-26)Online publication date: 24-Oct-2017
  • (2016)Exploring the role of sequential computation in distributed systems: motivating a programming paradigm shiftProceedings of the 2016 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software10.1145/2986012.2986015(145-164)Online publication date: 20-Oct-2016
  • (2016)Adaptive model predictive control of autonomic distributed parallel computations with variable horizons and switching costsConcurrency and Computation: Practice & Experience10.1002/cpe.349528:7(2187-2212)Online publication date: 1-May-2016
  • (2014)Towards a systematic approach to the dynamic adaptation of structured parallel computations using model predictive controlCluster Computing10.1007/s10586-014-0346-317:4(1443-1463)Online publication date: 1-Dec-2014
  • (2012)Process-driven biometric identification by means of autonomic grid componentsInternational Journal of Autonomous and Adaptive Communications Systems10.1504/IJAACS.2012.0476595:3(274-291)Online publication date: 1-Jul-2012
  • (2012)Combined scheduling and mapping for scalable computing with parallel tasksScientific Programming10.1155/2012/51494020:1(45-67)Online publication date: 1-Jan-2012
  • (2012)Methodology and framework for the development of scientific applications with high-performance computing through web servicesProceedings of the 6th Euro American Conference on Telematics and Information Systems10.1145/2261605.2261631(173-180)Online publication date: 23-May-2012
  • (2012)Function flowProceedings of the 2012 International Workshop on Programming Models and Applications for Multicores and Manycores10.1145/2141702.2141711(74-82)Online publication date: 26-Feb-2012
  • (2011)Component-based programming techniques for coarse-grained parallelismProceedings of the 19th High Performance Computing Symposia10.5555/2048577.2048578(4-11)Online publication date: 3-Apr-2011
  • Show More Cited By

View Options

View options

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media