Skip to content

Research at St Andrews

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

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

Standard

Towards semi-automatic data-type translation for parallelism in Erlang. / Barwell, Adam David; Brown, Christopher Mark; Castro, David; Hammond, Kevin.

Proceedings of the 15th International Workshop on Erlang. New York : ACM, 2016. p. 60-61.

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

Harvard

Barwell, AD, Brown, CM, Castro, D & Hammond, K 2016, Towards semi-automatic data-type translation for parallelism in Erlang. in Proceedings of the 15th International Workshop on Erlang. ACM, New York, pp. 60-61, 15th ACM SIGPLAN Workshop on Erlang, Nara, Japan, 23/09/16. https://doi.org/10.1145/2975969.2975978

APA

Barwell, A. D., Brown, C. M., Castro, D., & Hammond, K. (2016). Towards semi-automatic data-type translation for parallelism in Erlang. In Proceedings of the 15th International Workshop on Erlang (pp. 60-61). New York: ACM. https://doi.org/10.1145/2975969.2975978

Vancouver

Barwell AD, Brown CM, Castro D, Hammond K. Towards semi-automatic data-type translation for parallelism in Erlang. In Proceedings of the 15th International Workshop on Erlang. New York: ACM. 2016. p. 60-61 https://doi.org/10.1145/2975969.2975978

Author

Barwell, Adam David ; Brown, Christopher Mark ; Castro, David ; Hammond, Kevin. / Towards semi-automatic data-type translation for parallelism in Erlang. Proceedings of the 15th International Workshop on Erlang. New York : ACM, 2016. pp. 60-61

Bibtex - Download

@inproceedings{aa70b3189b22465bbcff8f1086e6d8c7,
title = "Towards semi-automatic data-type translation for parallelism in Erlang",
abstract = "As part of our ongoing research programme into programmer-in-the-loop parallelisation, we are studying the problem of introducing alternative data structures to support parallelism. Automated support for data structure transformations makes it easier to produce the best parallelisation for some given program, or even to make parallelisation feasible. We use a refactoring approach to choose and introduce these transformations for specific algorithmic skeletons, structured forms of parallelism that capture common patterns of parallelism. Our approach integrates with the Wrangler refactoring tool for Erlang, and uses the advanced Skel [4] skeleton library for Erlang. This library has previously been shown to give good parallelisations for a number of applications, including a multi-agent system [1] where we have achieved speedups of up to 142.44 on a 61-core machine with 244 threads. We have investigated three widely-used Erlang data structures: lists, binary structures and ETS (Erlang Term Storage) tables. In general, we have found that ETS tables deliver the best parallel performance for the examples that we have considered. However, our results show that simple lists may deliver similar performance to the use of ETS tables, and better performance than using binary structures. This means that we cannot blindly choose to implement a single optimisation as part of the compilation process. Our approach also allows the use of new (possibly user-defined) data structures and other transformations in future, giving a high level of flexibility and generality.",
author = "Barwell, {Adam David} and Brown, {Christopher Mark} and David Castro and Kevin Hammond",
year = "2016",
month = "9",
day = "23",
doi = "10.1145/2975969.2975978",
language = "English",
isbn = "9781450344319",
pages = "60--61",
booktitle = "Proceedings of the 15th International Workshop on Erlang",
publisher = "ACM",
address = "United States",

}

RIS (suitable for import to EndNote) - Download

TY - GEN

T1 - Towards semi-automatic data-type translation for parallelism in Erlang

AU - Barwell, Adam David

AU - Brown, Christopher Mark

AU - Castro, David

AU - Hammond, Kevin

PY - 2016/9/23

Y1 - 2016/9/23

N2 - As part of our ongoing research programme into programmer-in-the-loop parallelisation, we are studying the problem of introducing alternative data structures to support parallelism. Automated support for data structure transformations makes it easier to produce the best parallelisation for some given program, or even to make parallelisation feasible. We use a refactoring approach to choose and introduce these transformations for specific algorithmic skeletons, structured forms of parallelism that capture common patterns of parallelism. Our approach integrates with the Wrangler refactoring tool for Erlang, and uses the advanced Skel [4] skeleton library for Erlang. This library has previously been shown to give good parallelisations for a number of applications, including a multi-agent system [1] where we have achieved speedups of up to 142.44 on a 61-core machine with 244 threads. We have investigated three widely-used Erlang data structures: lists, binary structures and ETS (Erlang Term Storage) tables. In general, we have found that ETS tables deliver the best parallel performance for the examples that we have considered. However, our results show that simple lists may deliver similar performance to the use of ETS tables, and better performance than using binary structures. This means that we cannot blindly choose to implement a single optimisation as part of the compilation process. Our approach also allows the use of new (possibly user-defined) data structures and other transformations in future, giving a high level of flexibility and generality.

AB - As part of our ongoing research programme into programmer-in-the-loop parallelisation, we are studying the problem of introducing alternative data structures to support parallelism. Automated support for data structure transformations makes it easier to produce the best parallelisation for some given program, or even to make parallelisation feasible. We use a refactoring approach to choose and introduce these transformations for specific algorithmic skeletons, structured forms of parallelism that capture common patterns of parallelism. Our approach integrates with the Wrangler refactoring tool for Erlang, and uses the advanced Skel [4] skeleton library for Erlang. This library has previously been shown to give good parallelisations for a number of applications, including a multi-agent system [1] where we have achieved speedups of up to 142.44 on a 61-core machine with 244 threads. We have investigated three widely-used Erlang data structures: lists, binary structures and ETS (Erlang Term Storage) tables. In general, we have found that ETS tables deliver the best parallel performance for the examples that we have considered. However, our results show that simple lists may deliver similar performance to the use of ETS tables, and better performance than using binary structures. This means that we cannot blindly choose to implement a single optimisation as part of the compilation process. Our approach also allows the use of new (possibly user-defined) data structures and other transformations in future, giving a high level of flexibility and generality.

U2 - 10.1145/2975969.2975978

DO - 10.1145/2975969.2975978

M3 - Conference contribution

SN - 9781450344319

SP - 60

EP - 61

BT - Proceedings of the 15th International Workshop on Erlang

PB - ACM

CY - New York

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. Using “program shaping” and algorithmic skeletons to parallelise an evolutionary multi-agent system in Erlang

    Barwell, A. D., Brown, C. M., Hammond, K., Turek, W. & Byrski, A., 2016, In : Computing and Informatics. 35, 4, 37 p.

    Research output: Contribution to journalArticle

ID: 244421324