Skip to main content

2016 | OriginalPaper | Buchkapitel

Conc-Trees for Functional and Parallel Programming

verfasst von : Aleksandar Prokopec, Martin Odersky

Erschienen in: Languages and Compilers for Parallel Computing

Verlag: Springer International Publishing

Aktivieren Sie unsere intelligente Suche, um passende Fachinhalte oder Patente zu finden.

search-config
loading …

Abstract

Parallel algorithms can be expressed more concisely in a functional programming style. This task is made easier through the use of proper sequence data structures, which allow splitting the data structure between the processors as easily as concatenating several data structures together. Efficient update, split and concatenation operations are essential for declarative-style parallel programs.
This paper shows a functional data structure that can improve the efficiency of parallel programs. The paper introduces two Conc-Tree variants: the Conc-Tree list, which provides worst-case \(O(\log n)\) time lookup, update, split and concatenation operations, and the Conc-Tree rope, which additionally provides amortized O(1) time append and prepend operations. The paper demonstrates how Conc-Trees implement efficient mutable sequences, evaluates them against similar persistent and mutable data structures, and shows up to \(3 \times \) performance improvements when applying Conc-Trees to data-parallel operations.

Sie haben noch keine Lizenz? Dann Informieren Sie sich jetzt über unsere Produkte:

Springer Professional "Wirtschaft+Technik"

Online-Abonnement

Mit Springer Professional "Wirtschaft+Technik" erhalten Sie Zugriff auf:

  • über 102.000 Bücher
  • über 537 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Maschinenbau + Werkstoffe
  • Versicherung + Risiko

Jetzt Wissensvorsprung sichern!

Springer Professional "Technik"

Online-Abonnement

Mit Springer Professional "Technik" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 390 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Maschinenbau + Werkstoffe




 

Jetzt Wissensvorsprung sichern!

Springer Professional "Wirtschaft"

Online-Abonnement

Mit Springer Professional "Wirtschaft" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 340 Zeitschriften

aus folgenden Fachgebieten:

  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Versicherung + Risiko




Jetzt Wissensvorsprung sichern!

Literatur
1.
Zurück zum Zitat Adelson-Velsky, G.M., Landis, E.M.: An algorithm for the organization of information. Dokl. Akad. Nauk SSSR 146, 263–266 (1962)MathSciNet Adelson-Velsky, G.M., Landis, E.M.: An algorithm for the organization of information. Dokl. Akad. Nauk SSSR 146, 263–266 (1962)MathSciNet
2.
Zurück zum Zitat Allen, E., Chase, D., Hallett, J., Luchangco, V., Maessen, J.W., Ryu, S., Steele, G., Tobin-Hochstadt, S.: The Fortress Language Specification. Technical report, Sun Microsystems Inc., (2007) Allen, E., Chase, D., Hallett, J., Luchangco, V., Maessen, J.W., Ryu, S., Steele, G., Tobin-Hochstadt, S.: The Fortress Language Specification. Technical report, Sun Microsystems Inc., (2007)
3.
Zurück zum Zitat Bagwell, P.: Fast Functional Lists. Deques, and Variable Length Arrays. Technical report, Hash-Lists (2002) Bagwell, P.: Fast Functional Lists. Deques, and Variable Length Arrays. Technical report, Hash-Lists (2002)
4.
Zurück zum Zitat Bagwell, P., Rompf, T.: RRB-Trees: Efficient Immutable Vectors. Technical report (2011) Bagwell, P., Rompf, T.: RRB-Trees: Efficient Immutable Vectors. Technical report (2011)
5.
Zurück zum Zitat Boehm, H.J., Atkinson, R., Plass, M.: Ropes: An alternative to strings. Softw. Pract. Exper. 25(12), 1315–1330 (1995)CrossRef Boehm, H.J., Atkinson, R., Plass, M.: Ropes: An alternative to strings. Softw. Pract. Exper. 25(12), 1315–1330 (1995)CrossRef
6.
7.
Zurück zum Zitat Kaplan, H., Tarjan, R.E.: Persistent lists with catenation via recursive slow-down. In: STOC 1995, pp. 93–102. ACM, New York, NY, USA (1995) Kaplan, H., Tarjan, R.E.: Persistent lists with catenation via recursive slow-down. In: STOC 1995, pp. 93–102. ACM, New York, NY, USA (1995)
8.
Zurück zum Zitat Kaplan, H., Tarjan, R.E.: Purely functional representations of catenable sorted lists. In: Proceedings of the Twenty-Eighth Annual ACM Symposium on Theory of Computing, STOC 1996, pp. 202–211. ACM, New York, NY, USA (1996) Kaplan, H., Tarjan, R.E.: Purely functional representations of catenable sorted lists. In: Proceedings of the Twenty-Eighth Annual ACM Symposium on Theory of Computing, STOC 1996, pp. 202–211. ACM, New York, NY, USA (1996)
9.
Zurück zum Zitat Okasaki, C.: Purely Functional Data Structures. Ph.D. thesis, Pittsburgh, PA, USA, AAI9813847 (1996) Okasaki, C.: Purely Functional Data Structures. Ph.D. thesis, Pittsburgh, PA, USA, AAI9813847 (1996)
10.
Zurück zum Zitat Okasaki, C.: Catenable double-ended queues. In: Proceedings of the Second ACM SIGPLAN International Conference on Functional Programming, pp. 66–74. ACM Press (1997) Okasaki, C.: Catenable double-ended queues. In: Proceedings of the Second ACM SIGPLAN International Conference on Functional Programming, pp. 66–74. ACM Press (1997)
11.
Zurück zum Zitat Okasaki, C.: Purely Functional Data Structures. Cambridge University Press, Cambridge (1998)CrossRef Okasaki, C.: Purely Functional Data Structures. Cambridge University Press, Cambridge (1998)CrossRef
12.
Zurück zum Zitat Prokopec, A.: Data Structures and Algorithms for Data-Parallel Computing in a Managed Runtime. Ph.D. thesis, EPFL (2014) Prokopec, A.: Data Structures and Algorithms for Data-Parallel Computing in a Managed Runtime. Ph.D. thesis, EPFL (2014)
13.
Zurück zum Zitat Prokopec, A., Bagwell, P., Rompf, T., Odersky, M.: A generic parallel collection framework. In: Jeannot, E., Namyst, R., Roman, J. (eds.) Euro-Par 2011, Part II. LNCS, vol. 6853, pp. 136–147. Springer, Heidelberg (2011)CrossRef Prokopec, A., Bagwell, P., Rompf, T., Odersky, M.: A generic parallel collection framework. In: Jeannot, E., Namyst, R., Roman, J. (eds.) Euro-Par 2011, Part II. LNCS, vol. 6853, pp. 136–147. Springer, Heidelberg (2011)CrossRef
14.
Zurück zum Zitat Prokopec, A., Bronson, N.G., Bagwell, P., Odersky, M.: Concurrent tries with efficient non-blocking snapshots. In: PPopp 2012, pp. 151–160. ACM, New York, NY, USA (2012) Prokopec, A., Bronson, N.G., Bagwell, P., Odersky, M.: Concurrent tries with efficient non-blocking snapshots. In: PPopp 2012, pp. 151–160. ACM, New York, NY, USA (2012)
15.
Zurück zum Zitat Prokopec, A., Petrashko, D., Odersky, M.: On Lock-Free Work-stealing Iterators for Parallel Data Structures. Technical report (2014) Prokopec, A., Petrashko, D., Odersky, M.: On Lock-Free Work-stealing Iterators for Parallel Data Structures. Technical report (2014)
16.
Zurück zum Zitat Steele, G.: Organizing functional code for parallel execution; or, foldl and foldr considered slightly harmful. In: International Conference on Functional Programming (ICFP) (2009) Steele, G.: Organizing functional code for parallel execution; or, foldl and foldr considered slightly harmful. In: International Conference on Functional Programming (ICFP) (2009)
Metadaten
Titel
Conc-Trees for Functional and Parallel Programming
verfasst von
Aleksandar Prokopec
Martin Odersky
Copyright-Jahr
2016
DOI
https://doi.org/10.1007/978-3-319-29778-1_16

Premium Partner