×

Of concurrent data structures and iterations. (English) Zbl 1331.68065

Zaroliagis, Christos (ed.) et al., Algorithms, probability, networks, and games. Scientific papers and essays dedicated to Paul G. Spirakis on the occasion of his 60th birthday. Cham: Springer (ISBN 978-3-319-24023-7/pbk; 978-3-319-24024-4/ebook). Lecture Notes in Computer Science 9295, 358-369 (2015).
Summary: Bulk operations on data structures are widely used both on user-level but also on programming language level. Iterations are a good example of such bulk operations. In the sequential setting iterations are easy to design on top of an algorithmic construction of a data structure and is not considered as a challenge. In a concurrent environment, such as a multicore system, the situation is completely different and the issue of extending concurrent data structure designs to support iteration operations opens new research challenges in concurrent algorithmic data structure implementations, with respect to consistency and efficiency. In this paper we take a journey through this young and evolving research topic. More precisely we describe recent advances in the area together with an overview of iteration implementations that have appeared in the research literature as well as in widely-used programming environments and we outline a range of application targets and challenging future directions.
For the entire collection see [Zbl 1326.68032].

MSC:

68P05 Data structures

Software:

Intel TBB; Python; Noble
PDFBibTeX XMLCite
Full Text: DOI

References:

[1] Intel threading building blocks documentation. http://software.intel.com/sites/products/documentation/doclib/tbb_sa/help/index.htm
. Accessed on 27 November 2012
[2] Java platform standard edition 7 documentation. http://docs.oracle.com/javase/7/docs/index.html
. Accessed on 06 December 2012
[3] .NET framework class library documentation. http://msdn.microsoft.com/en-us/library/gg145045.aspx
. Accessed on 10 May 2013
[4] Python v2.7.5 documentation. http://docs.python.org/2/library/itertools.html
. Accessed on 10 September 2013
[5] Anderson, J.H.: Multi-writer composite registers. Distrib. Comput. 7(4), 175–195 (1994) · doi:10.1007/BF02280833
[6] Avni, H., Shavit, N., Suissa, A.: Leaplist: lessons learned in designing TM-supported range queries. In: Proceedings of the 2013 ACM Symposium on Principles of Distributed Computing, PODC 2013, pp. 299–308. ACM, New York, NY, USA (2013) · Zbl 1323.68237 · doi:10.1145/2484239.2484254
[7] Brown, T., Avni, H.: Range queries in non-blocking k-ary search trees. In: Baldoni, R., Flocchini, P., Binoy, R. (eds.) OPODIS 2012. LNCS, vol. 7702, pp. 31–45. Springer, Heidelberg (2012) · Zbl 06470191 · doi:10.1007/978-3-642-35476-2_3
[8] Cederman, D., Chatterjee, B., Nguyen, N., Nikolakopoulos, Y., Papatriantafilou, M., Tsigas, P.: A study of the behavior of synchronization methods in commonly used languages and systems. In: 2013 IEEE 27th International Symposium on Parallel & Distributed Processing (IPDPS), pp. 1309–1320, May 2013 · doi:10.1109/IPDPS.2013.91
[9] Cederman, D., Gidenstam, A., Ha, P., Sundell, H., Papatriantafilou, M., Tsigas, P.: Lock-free concurrent data structures. arXiv:1302.2757
[cs], February 2013
[10] Cederman, D., Gulisano, V., Nikolakopoulos, Y., Papatriantafilou, M., Tsigas, P.: Brief announcement: concurrent data structures for efficient streaming aggregation. In Proceedings of the 26th ACM Symposium on Parallelism in Algorithms and Architectures, SPAA 2014, pp. 76–78 (2014) · doi:10.1145/2612669.2612701
[11] Dehne, F., Kong, Q., Rau-Chaplin, A., Zaboli, H., Zhou, R.: A distributed tree data structure for real-time OLAP on cloud architectures. In: 2013 IEEE International Conference on Big Data, pp. 499–505, October 2013 · doi:10.1109/BigData.2013.6691613
[12] Dehne, F., Zaboli, H.: Parallel real-time OLAP on multi-core processors. In: Proceedings of the 2012 12th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing (ccgrid 2012), pp. 588–594 (2012) · doi:10.1109/CCGrid.2012.19
[13] Dwork, C., Herlihy, M., Plotkin, S., Waarts, O.: Time-lapse snapshots. SIAM J. Comput. 28(5), 1848–1874 (1999) · Zbl 0928.68135 · doi:10.1137/S0097539793243685
[14] Fatourou, P., Fich, F.E., Ruppert, E.: Time-space tradeoffs for implementations of snapshots. In: Proceedings of the Thirty-eighth Annual ACM Symposium on Theory of Computing, STOC 2006, pp. 169–178, ACM, New York, NY, USA (2006) · Zbl 1301.68187 · doi:10.1145/1132516.1132542
[15] Fatourou, P., Kallimanis, N.D.: Revisiting the combining synchronization technique. SIGPLAN Not. 47(8), 257–266 (2012) · doi:10.1145/2370036.2145849
[16] Fich, F.E.: How hard is it to take a snapshot? In: Vojtáš, P., Bieliková, M., Charron-Bost, B., Sýkora, O. (eds.) SOFSEM 2005. LNCS, vol. 3381, pp. 28–37. Springer, Heidelberg (2005) · doi:10.1007/978-3-540-30577-4_3
[17] Gidenstam, A., Koldehofe, B., Papatriantafilou, M., Tsigas, P.: Scalable group communication supporting configurable levels of consistency. Concurrency Comput: Pract. Experience 25(5), 649–671 (2013) · doi:10.1002/cpe.1801
[18] Gidenstam, A., Papatriantafilou, M., Tsigas, P.: NBmalloc: allocating memory in a lock-free manner. Algorithmica 58(2), 304–338 (2010) · Zbl 1204.68044 · doi:10.1007/s00453-008-9268-x
[19] Gulisano, V., Nikolakopoulos, Y., Papatriantafilou, M., Tsigas, P.: ScaleJoin: a deterministic, disjoint-parallel and skew-resilient stream join enabled by concurrent data structures. Technical Report, Chalmers University of Technology (2014)
[20] Harris, T.L., Fraser, K., Pratt, I.A.: A practical multi-word compare-and-swap operation. In: Malkhi, D. (ed.) DISC 2002. LNCS, vol. 2508, pp. 265–279. Springer, Heidelberg (2002) · Zbl 1029.68525 · doi:10.1007/3-540-36108-1_18
[21] Hendler, D., Incze, I., Shavit, N., Tzafrir, M.: Flat combining and the synchronization-parallelism tradeoff. In: Proceedings of the Twenty-second Annual ACM Symposium on Parallelism in Algorithms and Architectures, SPAA 2010, pp. 355–364. ACM, New York, NY, USA (2010) · doi:10.1145/1810479.1810540
[22] Herlihy, M.: Wait-free synchronization. ACM Trans. Prog. Lang. Syst. 13(1), 124–149 (1991) · doi:10.1145/114005.102808
[23] Herlihy, M., Luchangco, V., Moir, M.: Obstruction-free synchronization: double-ended queues as an example. In: ICDCS 2003, IEEE Computer Society (2003) · doi:10.1109/ICDCS.2003.1203503
[24] Herlihy, M., Shavit, N.: The Art of Multiprocessor Programming. Morgan Kaufmann, Burlington (2008)
[25] Herlihy, M.P., Wing, J.M.: Linearizability: a correctness condition for concurrent objects. ACM Trans. Prog. Lang. Syst. 12(3), 463–492 (1990) · doi:10.1145/78969.78972
[26] Jayanti, P.: An optimal multi-writer snapshot algorithm. In: Proceedings of the Thirty-seventh Annual ACM Symposium on Theory of Computing, STOC 2005, pp. 723–732. ACM, New York, NY, USA (2005) · Zbl 1192.68449 · doi:10.1145/1060590.1060697
[27] Kirousis, L., Spirakis, P., Tsigas, P.: Reading many variables in one atomic operation: solutions with linear or sublinear complexity. IEEE Trans. Parallel Distrib. Syst. 5(7), 688–696 (1994) · Zbl 05107408 · doi:10.1109/71.296315
[28] Lamport, L.: How to make a multiprocessor computer that correctly executes multiprocess programs. IEEE Transactions on Computers C–28(9), 690–691 (1979) · Zbl 0419.68045 · doi:10.1109/TC.1979.1675439
[29] Lamport, L.: On interprocess communication. Distrib. Comput. 1(2), 86–101 (1986) · Zbl 0598.68023 · doi:10.1007/BF01786228
[30] Lev-Ari, K., Chockler, G., Keidar, I.: On correctness of data structures under reads-write concurrency. In: Kuhn, F. (ed.) DISC 2014. LNCS, vol. 8784, pp. 273–287. Springer, Heidelberg (2014) · Zbl 06399939 · doi:10.1007/978-3-662-45174-8_19
[31] Michael, M.M.: High performance dynamic lock-free hash tables and list-based sets. In: Proceedings of the Fourteenth Annual ACM Symposium on Parallel Algorithms and Architectures, SPAA 2002, ACM (2002) · doi:10.1145/564870.564881
[32] Michael, M.M.: The balancing act of choosing nonblocking features. Commun. ACM 56(9), 46–53 (2013) · doi:10.1145/2500468.2500476
[33] Michael, M.M., Scott, M.L.: Simple, fast, and practical non-blocking and blocking concurrent queue algorithms. In: Proceedings of the Fifteenth Annual ACM Symposium on Principles of Distributed Computing, PODC 1996, pp. 267–275. ACM, New York, NY, USA (1996) · Zbl 06481019 · doi:10.1145/248052.248106
[34] Nikolakopoulos, Y., Gidenstam, A., Papatriantafilou, M., Tsigas, P.: Enhancing concurrent data structures with concurrent iteration operations: consistency and algorithms. Technical report, Chalmers University of Technology (2013) · Zbl 1331.68065
[35] Nikolakopoulos, Y., Gidenstam, A., Papatriantafilou, M., Tsigas, P.: A consistency framework for iteration operations in concurrent data structures. In: 2015 IEEE 29th International Symposium on Parallel & Distributed Processing (IPDPS) (2015) · Zbl 1331.68065 · doi:10.1109/IPDPS.2015.84
[36] Okasaki, C.: Purely Functional Data Structures. Cambridge University Press, New York (1999) · Zbl 0941.68032
[37] Petrank, E., Timnat, S.: Lock-free data-structure iterators. In: Afek, Y. (ed.) DISC 2013. LNCS, vol. 8205, pp. 224–238. Springer, Heidelberg (2013) · Zbl 06349296 · doi:10.1007/978-3-642-41527-2_16
[38] 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) · Zbl 05942744 · doi:10.1007/978-3-642-23397-5_14
[39] Prokopec, A., Bronson, N.G., Bagwell, P., Odersky, M.: Concurrent tries with efficient non-blocking snapshots. In: PPoPP 2012, pp. 151–160. ACM (2012) · doi:10.1145/2145816.2145836
[40] Sundell, H., Tsigas, P.: NOBLE: a non-blocking inter-process communication library. In: Proceedings of the 6th Workshop on Languages, Compilers and Run-time Systems for Scalable Computers, Lecture Notes in Computer Science. Springer Verlag (2002)
[41] Watt, S.M.: A technique for generic iteration and its optimization. In: Proceedings of the 2006 ACM SIGPLAN Workshop on Generic programming, WGP 2006, pp. 76–86. ACM (2006) · doi:10.1145/1159861.1159872
[42] Willard, D.E.: New data structures for orthogonal range queries. SIAM J. Comput. 14(1), 232–253 (1985) · Zbl 0564.68071 · doi:10.1137/0214019
[43] Wirth, N.: Algorithms + Data Structures = Programs. Prentice Hall PTR, Upper Saddle River (1978) · Zbl 0375.68005
This reference list is based on information provided by the publisher or from digital mathematics libraries. Its items are heuristically matched to zbMATH identifiers and may contain data conversion errors. In some cases that data have been complemented/enhanced by data from zbMATH Open. This attempts to reflect the references listed in the original paper as accurately as possible without claiming completeness or a perfect matching.