Skip to content

Research at St Andrews

Using “program shaping” and algorithmic skeletons to parallelise an evolutionary multi-agent system in Erlang

Research output: Contribution to journalArticle

Standard

Using “program shaping” and algorithmic skeletons to parallelise an evolutionary multi-agent system in Erlang. / Barwell, Adam David; Brown, Christopher Mark; Hammond, Kevin; Turek, Wojciech; Byrski, Aleksander.

In: Computing and Informatics, Vol. 35, No. 4, 2016.

Research output: Contribution to journalArticle

Harvard

Barwell, AD, Brown, CM, Hammond, K, Turek, W & Byrski, A 2016, 'Using “program shaping” and algorithmic skeletons to parallelise an evolutionary multi-agent system in Erlang' Computing and Informatics, vol. 35, no. 4.

APA

Barwell, A. D., Brown, C. M., Hammond, K., Turek, W., & Byrski, A. (2016). Using “program shaping” and algorithmic skeletons to parallelise an evolutionary multi-agent system in Erlang. Computing and Informatics, 35(4).

Vancouver

Barwell AD, Brown CM, Hammond K, Turek W, Byrski A. Using “program shaping” and algorithmic skeletons to parallelise an evolutionary multi-agent system in Erlang. Computing and Informatics. 2016;35(4).

Author

Barwell, Adam David ; Brown, Christopher Mark ; Hammond, Kevin ; Turek, Wojciech ; Byrski, Aleksander. / Using “program shaping” and algorithmic skeletons to parallelise an evolutionary multi-agent system in Erlang. In: Computing and Informatics. 2016 ; Vol. 35, No. 4.

Bibtex - Download

@article{6a155b06eeba4e23a46f6c4af999044a,
title = "Using “program shaping” and algorithmic skeletons to parallelise an evolutionary multi-agent system in Erlang",
abstract = "This paper considers how to use program shaping and algorithmic skeletons to parallelise a multi-agent system that is written in Erlang. Program shaping is the process of transforming a program to better enable the introduction of parallelism. Whilst algorithmic skeletons abstract away the low-level aspects of parallel programming that often plague traditional techniques, it is not always easy to introduce them into an arbitrary program, especially one that has not been written with parallelism in mind. Amongst other issues, data may not always be in a compatible format, function calls may need to be replicated to support alternative uses, side- effects may need to be isolated, or there may be dependencies between functions and data that obstruct the introduction of parallelism. Program shaping can be used to transform such code to a form that allows skeletons to be more easily introduced. In this paper, we present a series of generic program shaping rewrite rules, provide their implementation as refactorings, and show how they can used to parallelise an Evolutionary Multi-Agent System (MAS) written in Erlang. We show that we can significantly speed up this application, obtaining super-linear speedups of over 70× the original sequential performance on a 64-core shared-memory machine.",
author = "Barwell, {Adam David} and Brown, {Christopher Mark} and Kevin Hammond and Wojciech Turek and Aleksander Byrski",
year = "2016",
language = "English",
volume = "35",
journal = "Computing and Informatics",
issn = "1335-9150",
publisher = "Slovak Academy of Sciences",
number = "4",

}

RIS (suitable for import to EndNote) - Download

TY - JOUR

T1 - Using “program shaping” and algorithmic skeletons to parallelise an evolutionary multi-agent system in Erlang

AU - Barwell, Adam David

AU - Brown, Christopher Mark

AU - Hammond, Kevin

AU - Turek, Wojciech

AU - Byrski, Aleksander

PY - 2016

Y1 - 2016

N2 - This paper considers how to use program shaping and algorithmic skeletons to parallelise a multi-agent system that is written in Erlang. Program shaping is the process of transforming a program to better enable the introduction of parallelism. Whilst algorithmic skeletons abstract away the low-level aspects of parallel programming that often plague traditional techniques, it is not always easy to introduce them into an arbitrary program, especially one that has not been written with parallelism in mind. Amongst other issues, data may not always be in a compatible format, function calls may need to be replicated to support alternative uses, side- effects may need to be isolated, or there may be dependencies between functions and data that obstruct the introduction of parallelism. Program shaping can be used to transform such code to a form that allows skeletons to be more easily introduced. In this paper, we present a series of generic program shaping rewrite rules, provide their implementation as refactorings, and show how they can used to parallelise an Evolutionary Multi-Agent System (MAS) written in Erlang. We show that we can significantly speed up this application, obtaining super-linear speedups of over 70× the original sequential performance on a 64-core shared-memory machine.

AB - This paper considers how to use program shaping and algorithmic skeletons to parallelise a multi-agent system that is written in Erlang. Program shaping is the process of transforming a program to better enable the introduction of parallelism. Whilst algorithmic skeletons abstract away the low-level aspects of parallel programming that often plague traditional techniques, it is not always easy to introduce them into an arbitrary program, especially one that has not been written with parallelism in mind. Amongst other issues, data may not always be in a compatible format, function calls may need to be replicated to support alternative uses, side- effects may need to be isolated, or there may be dependencies between functions and data that obstruct the introduction of parallelism. Program shaping can be used to transform such code to a form that allows skeletons to be more easily introduced. In this paper, we present a series of generic program shaping rewrite rules, provide their implementation as refactorings, and show how they can used to parallelise an Evolutionary Multi-Agent System (MAS) written in Erlang. We show that we can significantly speed up this application, obtaining super-linear speedups of over 70× the original sequential performance on a 64-core shared-memory machine.

M3 - Article

VL - 35

JO - Computing and Informatics

T2 - Computing and Informatics

JF - Computing and Informatics

SN - 1335-9150

IS - 4

ER -

Related by author

  1. Type-driven verification of extra-functional properties

    Brown, C. M., Barwell, A. D., Marquer, Y., Minh, C. & Zendra, O., 21 Jul 2019, (Accepted/In press) 21st International Symposium on Principles and Practice of Declarative Programming (PPDP 2019). ACM

    Research output: Chapter in Book/Report/Conference proceedingConference contribution

  2. The Missing Link! A new skeleton for evolutionary multi-agent systems in Erlang

    Stypka, J., Turek, W., Byrski, A., Kisiel-Dorohinicki, M., Barwell, A. D., Brown, C. M., Hammond, K. & Janjic, V., Feb 2018, In : International Journal of Parallel Programming. 46, 1, p. 4-22 19 p.

    Research output: Contribution to journalArticle

  3. Towards semi-automatic data-type translation for parallelism in Erlang

    Barwell, A. D., Brown, C. M., Castro, D. & Hammond, K., 23 Sep 2016, Proceedings of the 15th International Workshop on Erlang. New York: ACM, p. 60-61

    Research output: Chapter in Book/Report/Conference proceedingConference contribution

ID: 241609256