GAsPar

General-purpose Aspect-Oriented framework for heterogeneous multicore Parallel systems

PTDC/EIA-EIA/108937/2008

Overview

In the next years it is expected to see a sustained increase on the number of cores on every desktop machine and the integration of heterogeneous processing elements (e.g., GPU) into these multicore devices. In contrast with previous processor generations, these kilo-core heterogeneous parallel devices will require a radical change in the way that software is develop and maintained. Thus, to leverage the full power of these devices portable parallel programming must be embraced to specify parallel tasks. Portability should be attained at code and performance level. Currently code is specific for a CPU or for a GPU which increases development time and makes it more difficult to use all available processing elements. Moreover, power-conscious computations will gain stronger importance.

Current mainstream parallel programming languages mix, at source code level, domain-specific issues and issues related to efficient execution on specific platforms (e.g., MPI, OpenMP and CUDA). This leads to: (1) difficulty to adapt the application to different platforms and/or running conditions, (2) low code reuse across platforms, (3) an invasive approach to parallelise code, and (4) no independent development. For instance, it is hard to change the parallelisation strategy independently of the domain-specific code. Generally, to adapt the application to different target platforms and/or running conditions, if not the whole application at least a significant part of it must be redesigned and/or rewritten.

We propose to address these issues by developing methodologies and tools to promote a better separation of concerns (i.e., by separating domain specific from platform specific concerns). The idea is to specify applications in a high-level platform independent manner in order to (dynamically) map them into specific platforms/processing elements and/or running conditions through additional application modules (e.g., parallelisation/platform specific concerns). These additional concerns are provided in latter development stages and can also benefit from programmers knowledge of the application domain required to generate (efficient) platform-specific implementations.

Portability and code reuse across platforms can be achieved by implementing mappings through multiple pluggable features (i.e., fine-grained modules) to include only features required for each target (e.g., CPU, GPU and FPGA). This also allows us to change mappings during execution by supporting pluggable features at runtime. This approach encapsulates variability across platforms/runtime into well defined, (un)pluggable, modules. Each module can be specified by its own set of abstractions (e.g., using a data-flow model for data dependencies). One of these modules could implement a data partition strategy to scatter data across processor memories, making it possible to change and compose data partitions (e.g., to optimise data placement for multiple levels of memory). Other module could specify coordination of multiple control flows (e.g., a barrier). Aspect-oriented programming provides an effective and efficient way to implement these (un)pluggable mechanisms as aspects can be considered program transformations that map programs into new programs.

Project Goals

Key research issues in this project include:

  • Development of a high-level, declarative and platform-independent style of programming, that promotes a better separation of domain-specific issues from those parallelisation/platform specific.
  • Definition of a set of contracts between domain-specific code and parallelisation/platform specific code that improve support for independent development.
  • Development of mappings of high-level programming abstractions for multiple targets (e.g., CPU, GPU, FPGA).
  • Definition of strategies to select the most appropriate target platform/processing elements for a given set of applications characteristics and to dynamically change the target platform (either due to application load changes or power requirements). This includes dynamic changes to the amount of resources allocated to the application and the use of heterogeneous processing elements.
  • Exploitation of aspect-oriented techniques to explicitly parallelise code in order to take advantage of heterogeneous parallel systems.

Overall, the project will deliver a new framework that will make it easier to develop applications for heterogeneous parallel systems. Applications will be specified in a high-level platform independent manner and the framework dynamically maps applications into available resources, according to applications characteristics and load/power requirements.

The framework will be validated through a large-scale application: the Java Evolutionary Computation Library (JECoLi), a computational platform that implements the main algorithms in Evolutionary Computation and related metaheuristics, namely Evolutionary Algorithms, Differential Evolution, Simulated Annealing or Particle Swarms. This application will be updated to efficiently run on heterogeneous parallel systems using the proposed framework.

Funding

This work was funded by ERDF – European Regional Development Fund through the COMPETE Programme (operational programme for competitiveness) and by National Funds through the FCT – Fundação para a Ciência e a Tecnologia (Portuguese Foundation for Science and Technology) within project FCOMP-01-0124-FEDER-010152.

Project funding: COMPETE; QREN; EU-FEDER; FCT

Team

  • João Luís Sobral (CCTC-UM)
  • Rui Mendes (CCTC-UM)
  • Miguel Pessoa Monteiro (CITI-UNL)
  • Miguel Rocha (CCTC-UM)
  • António Joaquim Esteves (CCTC-UM)
  • Diogo Telmo Neves (CCTC-UM)
  • Rui Carlos Gonçalves (CCTC-UM)
  • João Barbosa (CCTC-UM)
  • Bruno Medeiros (CCTC-UM)

Publications

  • D. Batory, R. C. Gonçalves, B. Marker, and J. Siegmund, “Dark knowledge and graph grammars in automated software design,” in SLE ’13: proceedings of the 6th international conference on software language engineering, 2013, pp. 1-18. doi:10.1007/978-3-319-02654-1_1
    [BibTeX]
    @inproceedings{Batory:2013,
    author = {Batory, Don and Gonçalves, Rui C. and Marker, Bryan and Siegmund, Janet},
    booktitle = {{SLE} '13: Proceedings of the 6th International Conference on Software Language Engineering},
    title = {Dark Knowledge and Graph Grammars in Automated Software Design},
    year = {2013},
    pages = {1--18},
    doi = {10.1007/978-3-319-02654-1_1}
    }

  • N. Faria, R. Silva, and J. L. Sobral, “Impact of data structure layout on performance,” in PDP ’13: proceedings of the 21st euromicro international conference on parallel, distributed, and network-based processing, 2013, pp. 116-120. doi:10.1109/PDP.2013.24
    [BibTeX]
    @inproceedings{Faria:2013,
    author = {Faria, Nuno and Silva, Rui and Sobral, João L.},
    title = {Impact of Data Structure Layout on Performance},
    booktitle = {{PDP} '13: Proceedings of the 21st Euromicro International Conference on Parallel, Distributed, and Network-Based Processing},
    year = {2013},
    pages = {116--120},
    doi = {10.1109/PDP.2013.24},
    keywords = {locality, collections, multicore, java},
    }

  • R. C. Gonçalves and J. L. Sobral, “Modular and non-invasive distributed memory parallelization,” in MISS ’12: proceedings of the 2012 workshop on modularity in systems software, 2012, pp. 33-38. doi:10.1145/2162024.2162034
    [BibTeX]
    @inproceedings{Goncalves:2012,
    author = {Gonçalves, Rui C. and Sobral, João L.},
    title = {Modular and Non-invasive Distributed Memory Parallelization},
    booktitle = {{MISS} '12: Proceedings of the 2012 Workshop on Modularity in Systems Software},
    year = {2012},
    pages = {33--38},
    doi = {10.1145/2162024.2162034},
    keywords = {aop, distributed memory, incremental development, parallel programming, software reuse},
    }

  • R. C. Gonçalves, J. L. Sobral, D. Batory, and T. L. Riché, “Reengineering product lines of dataflow programs,” The University of Texas at Austin, Department of Computer Science, TR-14-01, 2014.
    [BibTeX] [Download PDF]
    @techreport{Goncalves:2014b,
    author = {Gonçalves, Rui C. and Sobral, Jo{\~a}o L. and Batory, Don and Riché, Taylor L.},
    institution = {The University of Texas at Austin, Department of Computer Science},
    number = {TR-14-01},
    title = {Reengineering Product Lines of Dataflow Programs},
    year = {2014},
    url = {http://apps.cs.utexas.edu/tech_reports/reports/tr/TR-2163.pdf}
    }

  • R. C. Gonçalves, “Parallel programming by transformation,” PhD Thesis, 2015.
    [BibTeX] [Download PDF]
    @phdthesis{Goncalves:2015,
    author = {Gonçalves, Rui C.},
    school = {Universidades do Minho, Aveiro e Porto},
    title = {Parallel Programming by Transformation},
    year = {2015},
    url = {http://hdl.handle.net/1822/38014},
    }

  • B. Medeiros and J. L. Sobral, “Checkpoint and run-time adaptation with pluggable parallelisation,” in ICPP ’11: proceedings of the 2011 international conference on parallel processing, 2011, pp. 434-443. doi:10.1109/ICPP.2011.83
    [BibTeX]
    @inproceedings{Medeiros:2011,
    author = {Medeiros, Bruno and Sobral, João L.},
    title = {Checkpoint and Run-Time Adaptation with Pluggable Parallelisation},
    booktitle = {{ICPP} '11: Proceedings of the 2011 International Conference on Parallel Processing},
    year = {2011},
    pages = {434--443},
    doi = {10.1109/ICPP.2011.83},
    keywords = {application-level checkpointing, run-time adaptation, pluggable parallelisation, aspect oriented programming},
    }

  • B. Medeiros and J. L. Sobral, “An aspect-oriented approach to fault-tolerance in grid platforms,” in Ibergrid ’11: proceedings of the 5th iberian grid infrastrucutre conference, 2011, pp. 267-276. doi:10.4272/978-84-9745-884-9.ch1
    [BibTeX] [Download PDF]
    @inproceedings{Medeiros:2011a,
    author = {Medeiros, Bruno and Sobral, João L.},
    title = {An aspect-oriented approach to fault-tolerance in grid platforms},
    booktitle = {Ibergrid '11: Proceedings of the 5th Iberian Grid Infrastrucutre Conference},
    year = {2011},
    pages = {267--276},
    doi = {10.4272/978-84-9745-884-9.ch1},
    url = {http://alba.di.uminho.pt/research/wp-content/uploads/Medeiros-2011.pdf},
    }

  • B. Medeiros and J. L. Sobral, “AspectGrid: aspect-oriented fault-tolerance in grid platforms,” Computing and informatics, vol. 31, iss. 1, pp. 89-101, 2012.
    [BibTeX] [Download PDF]
    @article{Medeiros:2012,
    author = {Bruno Medeiros and João L. Sobral},
    title = {{AspectGrid}: Aspect-Oriented Fault-Tolerance in Grid Platforms},
    journal = {Computing and Informatics},
    year = {2012},
    volume = {31},
    number = {1},
    pages = {89--101},
    url = {http://www.cai.sk/ojs/index.php/cai/article/viewFile/889/421},
    }

  • B. Medeiros and J. L. Sobral, “Implementing an OpenMP-like standard with AspectJ,” in MISS ’13: proceedings of the 3rd workshop on modularity in systems software, 2013, pp. 1-6. doi:10.1145/2451613.2451615
    [BibTeX]
    @inproceedings{Medeiros:2013,
    author = {Medeiros, Bruno and Sobral, João L.},
    title = {Implementing an {OpenMP}-like Standard with {AspectJ}},
    booktitle = {{MISS} '13: Proceedings of the 3rd Workshop on Modularity in Systems Software},
    year = {2013},
    pages = {1--6},
    doi = {10.1145/2451613.2451615},
    }

  • B. Medeiros and J. L. Sobral, “AOmpLib: an aspect library for large-scale multi-core parallel programming,” in ICPP ’13: proceedings of the 42nd international conference on parallel processing, 2013, pp. 270-279. doi:10.1109/ICPP.2013.36
    [BibTeX]
    @inproceedings{Medeiros:2013b,
    author = {Medeiros, Bruno and Sobral, João L.},
    title = {{AOmpLib}: An Aspect Library for Large-Scale Multi-core Parallel Programming},
    booktitle = {{ICPP} '13: Proceedings of the 42nd International Conference on Parallel Processing},
    year = {2013},
    pages = {270--279},
    doi = {10.1109/ICPP.2013.36},
    }

  • B. Medeiros, R. Silva, and J. L. Sobral, “Gaspar: a compositional aspect-oriented approach for cluster applications,” Concurrency and computation: practice and experience, vol. 28, iss. 8, pp. 2353-2373, 2016. doi:10.1002/cpe.3666
    [BibTeX]
    @article{Medeiros:2015a,
    author = {Medeiros, Bruno and Silva, Rui and Sobral, João L.},
    title = {Gaspar: a compositional aspect-oriented approach for cluster applications},
    journal = {Concurrency and Computation: Practice and Experience},
    year = {2016},
    volume = {28},
    number = {8},
    pages = {2353--2373},
    doi = {10.1002/cpe.3666},
    }

  • J. Pinho, M. Rocha, and J. L. Sobral, “Pluggable parallelization of evolutionary algorithms applied to the optimization of biological processes,” in PDP ’10: proceedings of the 18th euromicro conference on parallel, distributed and network-based processing, 2010, pp. 395-402. doi:10.1109/PDP.2010.89
    [BibTeX]
    @inproceedings{Pinho:2010,
    author = {Pinho, Jorge and Rocha, Miguel and Sobral, João L.},
    title = {Pluggable Parallelization of Evolutionary Algorithms Applied to the Optimization of Biological Processes},
    booktitle = {{PDP} '10: Proceedings of the 18th Euromicro Conference on Parallel, Distributed and Network-based Processing},
    year = {2010},
    pages = {395--402},
    doi = {10.1109/PDP.2010.89},
    keywords = {aspectj, aspect oriented programming, evolutionary algorithms, multicore, optimization of biological systems},
    }

  • J. Pinho, J. L. Sobral, and M. Rocha, “Parallel evolutionary computation in bioinformatics applications,” Computer methods and programs in biomedicine, vol. 110, iss. 2, pp. 183-191, 2013. doi:10.1016/j.cmpb.2012.10.001
    [BibTeX]
    @article{Pinho:2013,
    author = {Pinho, Jorge and Sobral, João L. and Rocha, Miguel},
    title = {Parallel Evolutionary Computation in Bioinformatics Applications},
    journal = {Computer Methods and Programs in Biomedicine},
    year = {2013},
    volume = {110},
    number = {2},
    pages = {183--191},
    doi = {10.1016/j.cmpb.2012.10.001},
    }

  • R. C. Silva and J. L. Sobral, “Optimizing molecular dynamics simulations with product lines,” in VaMoS ’11: proceedings of the 5th workshop on variability modeling of software-intensive systems, 2011, pp. 151-157. doi:10.1145/1944892.1944911
    [BibTeX]
    @inproceedings{Silva:2011,
    author = {Silva, Rui C. and Sobral, João L.},
    title = {Optimizing Molecular Dynamics Simulations with Product Lines},
    booktitle = {{VaMoS} '11: Proceedings of the 5th Workshop on Variability Modeling of Software-Intensive Systems},
    year = {2011},
    pages = {151--157},
    doi = {10.1145/1944892.1944911},
    keywords = {feature oriented programming, molecular dynamics simulations, parallel programming, productline},
    }

Tools