PPC-VM

Portable Parallel Computing based on Virtual Machines

POSI/CHS/47158/2002

Project Goal

Provide an “intelligent” parallel virtual machine capable of automatically manage a set of computing nodes, effectively distributing tasks among the available nodes.

Description

The initial focus of the parallel programming community was on the development of applications targeted for specific platforms, achieving the shortest execution time possible. Lately, parallel computing platforms evolved to off-the-shelf hardware and applications became more portable due to standard parallel programming environments such as PVM and MPI. The programmer focus shifted to the development of portable applications that can achieve a good performance on a wide range of computing platforms. Recently, parallel computing evolved to globally connected computing resources (such as the grid environment), where the computing resources are heterogeneous, shared by several applications, and their number is almost unlimited and subject to dynamic changes. This type of environment requires methodologies and tools that can adapt applications to take advantage of such a number and variety of computing resources and adapt them to dynamically changing environments.

This proposal aims the research of methodologies and tools to help the development of scalable parallel applications that can take advantage of a large number and variety of shared computer resources. The main focus is on the development of methodologies to support efficient fine-grained parallelism (object oriented, specified by fine-grained active objects), whose grain-size can be dynamically adjusted to efficiently use the available resources, matching the available computing and communication bandwidth. This includes the dynamic determination of the number of computer resources that can be efficiently used by the application on particular running conditions. The research will follow a virtual machine based approach, since it provides application code compatibility, supporting dynamically downloaded code and can transparently provide additional services. Additionally, virtual machines are a strong trend in the programming community.

The key research issues on this project aim to provide:

  • High-level specification of scalable parallel applications, supporting fine-grained tasks based on active objects that can be efficiently executed on a wide range of computing resources, including reconfigurable hardware. This includes the efficient mapping of high level scalable parallel programs to virtual machine level;
  • Parallelism extraction from source or intermediate code, compile time estimation of object granularity information and inclusion of inter-objects dependencies information into object assemblies; the obtained information increases application parallelism and improves the efficiency of the run-time decision making.
  • Load distribution and granularity control as a virtual machine service, providing transparent and efficient use of a wide range of shared and heterogeneous computing resources.

The resulting methodologies are implemented either by extending a virtual machine or by building a new layer on top of an existing virtual machine. This implementation will provide several new services, such as dynamic load distribution and granularity control, and tools that map high-level parallel applications to this environment. A full functional prototype will be tested using applications from computer graphics (from running projects) and will be available to the research community. This prototype will provide a faster development time of parallel applications and a more efficient use of shared computer resources.

Research Areas

The main research objectives fall in three areas:

  • Parallel programming paradigms: development of new paradigms to specify parallel applications; focusing on alternatives to explicit thread/process level parallelism and message passing, namely more object-oriented and aspect-oriented approaches.
  • Parallelism extraction and compile time granularity information: extraction of parallelism and granularity estimation from source and/or intermediate code and its mapping to virtual machine level.
  • Run-time environments: inclusion of load distribution and granularity control as a virtual machine service.

The key innovation of this project is to provide, at virtual machine level, dynamic load distribution and granularity control, using higher-level entities, mapped from explicit parallel applications or by parallelism extraction mechanisms. Compile time estimates of object granularity information are used to minimise the run-time decision-making.

Funding

The PPC-VM (POSI/CHS/47158/2002) project is 3 years project funded by Portuguese FCT (POSI) and by European funds (FEDER).

Team

Publications

  • J. L. Sobral and A. J. Proença, “Enabling JaSkel Skeletons for Clusters and Computational Grids,” in CLUSTER ’07: Proceedings of the 2007 IEEE International Conference on Cluster Computing, 2007, p. 365–371. doi:10.1109/CLUSTR.2007.4629251
    [BibTeX]
    @inproceedings{Sobral:2007,
    author = {Sobral, João L. and Proença, Alberto J.},
    title = {Enabling {JaSkel} Skeletons for Clusters and Computational Grids},
    booktitle = {{CLUSTER} '07: Proceedings of the 2007 {IEEE} International Conference on Cluster Computing},
    year = {2007},
    pages = {365--371},
    doi = {10.1109/CLUSTR.2007.4629251},
    }

  • C. A. Cunha and J. L. Sobral, “An Annotation-Based Framework for Parallel Computing,” in PDP ’07: Proceedings of the 15th Euromicro International Conference on Parallel, Distributed and Network-Based Processing, 2007, p. 113–120. doi:10.1109/PDP.2007.20
    [BibTeX]
    @inproceedings{Cunha:2007,
    author = {Cunha, C. A. and Sobral, João L.},
    title = {An Annotation-Based Framework for Parallel Computing},
    booktitle = {{PDP} '07: Proceedings of the 15th Euromicro International Conference on Parallel, Distributed and Network-Based Processing},
    year = {2007},
    pages = {113--120},
    doi = {10.1109/PDP.2007.20},
    }

  • J. L. Sobral, “Pluggable Grid Services,” in GRID ’07: Proceedings of the 8th IEEE/ACM International Conference on Grid Computing, 2007, p. 113–120. doi:10.1109/GRID.2007.4354123
    [BibTeX]
    @inproceedings{Sobral:2007a,
    author = {Sobral, João L.},
    title = {Pluggable Grid Services},
    booktitle = {{GRID} '07: Proceedings of the 8th {IEEE}/{ACM} International Conference on Grid Computing},
    year = {2007},
    pages = {113--120},
    doi = {10.1109/GRID.2007.4354123},
    }

  • J. L. Sobral, C. A. Cunha, and M. P. Monteiro, “Aspect Oriented Pluggable Support for Parallel Computing,” in High Performance Computing for Computational Science – VECPAR 2006, , 2007, vol. 4395, p. 93–106. doi:10.1007/978-3-540-71351-7_8
    [BibTeX]
    @incollection{Sobral:2007b,
    author={Sobral, João L. and Cunha, Carlos A. and Monteiro, Miguel P.},
    title={Aspect Oriented Pluggable Support for Parallel Computing},
    booktitle={High Performance Computing for Computational Science -- {VECPAR} 2006},
    series={Lecture Notes in Computer Science},
    volume={4395},
    year={2007},
    pages={93--106},
    doi={10.1007/978-3-540-71351-7_8},
    }

  • J. L. Sobral, “Incrementally Developing Parallel Applications with AspectJ,” in IPDPS ’06: Proceedings of the 20th International Parallel and Distributed Processing Symposium, 2006, p. 95–104. doi:10.1109/IPDPS.2006.1639352
    [BibTeX]
    @inproceedings{Sobral:2006,
    author = {Sobral, João L.},
    title = {Incrementally Developing Parallel Applications with {AspectJ}},
    booktitle = {{IPDPS} '06: Proceedings of the 20th International Parallel and Distributed Processing Symposium},
    year = {2006},
    pages = {95--104},
    doi = {10.1109/IPDPS.2006.1639352},
    }

  • J. L. Sobral, M. P. Monteiro, and C. A. Cunha, “Aspect-Oriented Support for Modular Parallel Computing,” in ACP4IS ’06: Proceedings of the 5th AOSD Workshop on Aspects, Components, and Patterns for Infrastructure Software, 2006.
    [BibTeX] [Download PDF]
    @inproceedings{Sobral:2006a,
    author = {Sobral, João L. and Monteiro, Miguel P. and Cunha, Carlos A.},
    title = {Aspect-Oriented Support for Modular Parallel Computing},
    booktitle = {{ACP4IS} '06: Proceedings of the 5th AOSD Workshop on Aspects, Components, and Patterns for Infrastructure Software},
    year = {2006},
    url = {https://alba.di.uminho.pt/research/wp-content/uploads/Sobral-2006a.pdf},
    }

  • J. F. Ferreira, J. L. Sobral, and A. J. Proença, “JaSkel: A Java Skeleton-Based Framework for Structured Cluster and Grid Computing,” in CCGRID ’06: Proceedings of the 6th IEEE International Symposium on Cluster Computing and the Grid, 2006, p. 301–304. doi:10.1109/CCGRID.2006.65
    [BibTeX]
    @inproceedings{Ferreira:2006,
    author = {Ferreira, João F. and Sobral, João L. and Proença, Alberto J.},
    title = {{JaSkel}: A {Java} Skeleton-Based Framework for Structured Cluster and Grid Computing},
    booktitle = {{CCGRID} '06: Proceedings of the 6th {IEEE} International Symposium on Cluster Computing and the Grid},
    year = {2006},
    pages = {301--304},
    doi = {10.1109/CCGRID.2006.65},
    }

  • C. A. Cunha, J. L. Sobral, and M. P. Monteiro, “Reusable Aspect-Oriented Implementations of Concurrency Patterns and Mechanisms,” in AOSD ’06: Proceedings of the 5th international conference on Aspect-oriented software development, 2006, p. 134–145. doi:10.1145/1119655.1119674
    [BibTeX]
    @inproceedings{Cunha:2006,
    author = {Cunha, Carlos A. and Sobral, João L. and Monteiro, Miguel P.},
    title = {Reusable Aspect-Oriented Implementations of Concurrency Patterns and Mechanisms},
    booktitle = {{AOSD} '06: Proceedings of the 5th international conference on Aspect-oriented software development},
    year = {2006},
    pages = {134--145},
    doi = {10.1145/1119655.1119674},
    }

  • M. P. Monteiro and J. M. Fernandes, “Towards a Catalog of Aspect-Oriented Refactorings,” in AOSD ’05: Proceedings of the 4th ACM International Conference on Aspect-Oriented Software Development, 2005, p. 111–122. doi:10.1145/1052898.1052908
    [BibTeX]
    @inproceedings{Monteiro:2005,
    author = {Monteiro, Miguel P. and Fernandes, João M.},
    title = {Towards a Catalog of Aspect-Oriented Refactorings},
    booktitle = {{AOSD} '05: Proceedings of the 4th ACM International Conference on Aspect-Oriented Software Development},
    year = {2005},
    pages = {111--122},
    doi = {10.1145/1052898.1052908},
    }

  • J. F. Ferreira and J. L. Sobral, “ParC#: Parallel Computing with C# in .Net,” in PaCT ’05: Proceedings of the 8th International Conference on Parallel Computing Technologies, 2005, p. 239–248. doi:10.1007/11535294_21
    [BibTeX]
    @inproceedings{Ferreira:2005,
    author = {Ferreira, João F. and Sobral, João L.},
    title = {{ParC#}: Parallel Computing with {C#} in {.Net}},
    booktitle = {{PaCT} '05: Proceedings of the 8th International Conference on Parallel Computing Technologies},
    year = {2005},
    pages = {239--248},
    doi = {10.1007/11535294_21},
    }

  • J. F. Ferreira, “A contribution towards a Distributed Java Virtual Machine,” Universidade do Minho, Departamento de Informática 2005.
    [BibTeX] [Download PDF]
    @techreport{Ferreira:2005a,
    author = {Ferreira, João F.},
    institution = {Universidade do Minho, Departamento de Informática},
    title = {A contribution towards a Distributed Java Virtual Machine},
    year = {2005},
    url = {https://alba.di.uminho.pt/research/wp-content/uploads/Ferreira-2005a.pdf},
    }

Tools