Abstract
Array operations are important for large number of scientific and engineering applications. Two-dimensional array operations are prominent in these applications because of their simplicity and good performance. But in practical applications, the number of dimension is large and hence efficient design of multidimensional array operation is an important research issue. In this paper, we propose and evaluate a new data layout to represent a multidimensional array into a two-dimensional array, namely generalized 2-dimensional array (G2A) by dimension transformations. The G2A transforms an n-dimensional array into a two-dimensional array. Hence, it is possible to design less complicated algorithms that improve the data locality. We design efficient algorithms for matrix–matrix addition/subtraction and multiplication using G2A. Both theoretical analysis and experimental results show that the proposed scheme outperforms the traditional multidimensional array-based algorithms. This is because of the efficient index computation and improved data locality of G2A for better cache performance.





Similar content being viewed by others
References
Sarawagi S, Stonebraker M (1994) Efficient organization of large multidimensional arrays. In: Proceedings of the 10th International Conference on Data Engineering (ICDE). Houston, Texas, pp 328–386
Zhao Y, Deshpande P, Naughton JF (1997) An array-based algorithm for simultaneous multidimensional aggregates. In: Proceedings of the SIGMOD Conference, pp 159–170
Lin C-Y, Liu J-S, Chung Y-C (2002) Efficient representation scheme for multidimensional array operations. IEEE Trans Comput 51(3):327–345
Stonebraker M, Brown P, Poliakov A, Raman S (2011) The architecture of SciDB. In: Proceedings of the 23rd International Conference on Scientific and Statistical Database Management, pp 1–16
de Carvalho Junior FH, Rezende CA, de Carvalho Silva J, Mahalhães FJL, Juaçaba-Neto RC (2013) On the performance of multidimensional array representations in programming languages based on virtual execution machines. In: Proceedings of the Brazilian symposium on programming languages, pp 31–45
Otoo EJ, Wang H, Nimako G (2014) New approaches to storing and manipulating multi-dimensional sparse arrays. In: Proceedings of the SSDBM’14
Carr S, McKinley KS, Tseng C-W (1994) Compiler optimizations for improving data locality. In: Proceedings of the Sixth International Conference on Architectural Support for Programming Languages and Operating Systems, pp 252–262
McKinley KS, Carr S, Tseng C-W (1996) Improving data locality with loop transformations. ACM Trans Program Lang Syst TOPLAS 18(4):424–453
Masudul Ahsan SM, Azharul Hasan KM (2011) An implementation scheme for multidimensional extendable array operations and its evaluation. In: Proceedings of the ICIEIS, part III, CCIS 253, pp 136–150
Steinbach M, Ertoz L, Kumar V (2004) The challenges of clustering high dimensional data, new directions in statistical physics. Springer, Berlin
Acar E, Yener B (2009) Unsupervised multiway data analysis: a literature survey. IEEE Trans Knowl Data Eng 21(1):6–20
Bader BW, Kolda TG (2007) Efficient MATLAB computations with sparse and factored tensors. SIAM J Sci Comput 30(1):205–231
Kolda TG, Bader BW (2009) Tensor decompositions and applications. SIAM Rev 51(3):455–500
Sedaghati N, Mu T, Pouchet L-N, Parthasarathy S, Sadayappan P (2015) Automatic selection of sparse matrix representation on GPUs. In: Proceedings of the ICS’15, pp 99–108
Shoshani A (1997) OLAP and statistical databases. In: Proceedings of the 16th ACM SIGACT-SIGMOD-SIGART symposium on principles of databases systems, pp 185–196
Azharul Hasan KM, Shaikh MAH (2015) Representing higher dimensional arrays into a generalized two dimensional array. In: Proceedings of the 16th International Conference on Parallel and Distributed Computing, Applications and Technologies (PDCAT 15). Springer, pp 39–46
Bastien F, Bergeron A, Klöcknerb A, Vincent P, Bengio Y (2011) A common GPU n-dimensional array for Python and C. In: Proceedings of big learning workshop, NIPS
Sung I-J, Liu GD, Hwu WMW (2012) DL: a data layout transformation system for heterogeneous computing. In: Innovative parallel computing (InPar)
Koza Z, Matyka M, Szkoda S, Mirosław Ł (2014) Compressed multi-row storage format for sparse matrices on graphics processing units. SIAM J Sci Comput 36(2):219–239
Kennedy K, McKinley KS (2014) Optimizing for parallelism and data locality. In: Proceeding of ACM International Conference on Supercomputing 25th Anniversary Volume, pp 151–162
Hall M, Chame J, Chen C, Shin J, Rudy G, Khan MM (2009) Loop transformation recipes for code generation and auto-tuning. In: 22nd international workshop, LCPC 2009. LNCS 5898, pp 50–64
Cong J, Zhang P , Zou Y (2012) Optimizing memory hierarchy allocation with loop transformations for high-level synthesis. In: Proceedings of the 49th Annual Design Automation Conference, pp 1233–1238
Beylkin G, Mohlenkamp MJ (2005) Algorithms for numerical analysis in high dimensions. SIAM J Sci Comput 26:2133–2159
Kolda TG, Bader BW, Kenny JP (2005) Higher-order web link analysis using multilinear algebra. In: Proceedings of the 5th IEEE International Conference on Data Mining, IEEE Computer Society Press, pp 242–249
Azharul Hasan KM, Tsuji T, Higuchi K (2011) An efficient MOLAP basic data structure and its evaluation. In: Proceedings of the DASFAA, LNCS 4443. Springer, pp 288–299
Azharul Hasan KM, Kuroda M, Azuma N, Tsuji T, Higuchi K (2005) An extendible array based implementation of relational tables for multi dimensional data bases. In: Proceedings of the 7th International Conference on Data Warehousing and Knowledge Discovery (DaWak’05), Copenhagen, Denmark, LNCS 3580. Springer, pp 233–242
Zhang Y, Zhou X, Zhang Y, Zhang Y, Su M, Wang S (2016) Virtual denormalization via array index reference for main memory OLAP. IEEE Trans Knowl Data Eng 28(4):1061–1074
Yan J, Liu N, Yan S, Yang Q, Fan W, Wei W, Chen Z (2011) Trace-oriented feature analysis for large-scale text data dimension reduction. IEEE Trans Knowl Data Eng 23(7):1103–1117
Sun J, Tao D, Papadimitriou S, Yu PS, Faloutsos C (2008) Incremental tensor analysis: theory and applications. ACM Trans Knowl Discov Data 2(3):1–37
Soroush E, Balazinska M (2011) ArrayStore: a storage manager for complex parallel array processing. In: Proceedings of the ACM SIGMOD International Conference on Management of Data, pp 253–264
Shaikh MAH, Azharul Hasan KM (2015) Efficient storage scheme for n-dimensional sparse array: GCRS/GCCS. In: Proceedings of the International Conference on High Performance Computing and Simulation, pp 137–142
Kroonenberg PM (2008) Applied multiway data analysis. Wiley, New York
Solo A (2010) Multidimensional matrix mathematics: multidimensional matrix equality, addition, subtraction, and multiplication, part 2 of 6. In: Proceedings of the world congress on engineering 2010 vol III WCE 2010, London, UK
Intel\(\textregistered \) 64 and IA-32 architectures optimization reference manual. http://www.intel.com/content/dam/doc/manual/64-ia-32-architectures-optimization-manual.pdf
Mano MM (2005) Digital logic and computer design. Prentice Hall, Upper Saddle River
Jang B, Mistry P, Schaa D, Dominguez R, Kaeli D (2010) Data transformations enabling loop vectorization on multithreaded data parallel architectures. In: Proceedings of the 15th ACM SIGPLAN symposium on principles and practice of parallel programming, pp 353–354
Zhong Y, Dropsho SG, Shen X, Studer A, Ding C (2007) Miss rate prediction across program inputs and cache configurations. IEEE Trans Comput 56(3):328–343
Deshpande P, Ramasamy K, Shukla A, Naughton JF (1998) Caching multidimensional queries using chunks. In: Proceedings of the ACM SIGMOD Conference on Management of Data, pp 259–270
Otoo EJ, Rotem D, Seshadri S (2007) Optimal chunking of large multidimensional arrays for data warehousing. In: Proceedings of the DOLAP, pp 25–32
Joyner M, Budimlic Z, Sarkar V, Zhang R (2008) Array optimizations for parallel implementations of high productivity languages. In: Proceedings of the PPOPP, pp 1–8
Shaikh MAH, Azharul Hasan KM, Nawaz Ali GGM, Chafii M, Chong PHJ (2016) Efficient matricization of n-D array with CUDA and its evaluation. In: Proceedings of the 19th IEEE International Conference on Computational Science and Engineering (CSE’2016), August 24–26, Paris, France
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Azharul Hasan, K.M., Shaikh, M.A.H. Efficient representation of higher-dimensional arrays by dimension transformations. J Supercomput 73, 2801–2822 (2017). https://doi.org/10.1007/s11227-016-1954-x
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11227-016-1954-x