Harold M. Edwards · Birkhäuser Boston eBooks · 1995
The point of view adopted in this book is that the main subject of linear algebra is linear substitutions, that is, recipes for expressing one set of variables as sums of multiples of another set of variables. In the first five chapters, the multipliers of the linear substitutions will be taken to be integers. The substitutions are called “linear” because an expression which involves a sum of multiples of variables is called a homogeneous linear* polynomial, which is to say, a polynomial in which each term contains exactly one variable and that variable occurs to the first power.
Cited by 3
Brown, Abby · Acervo Digital da Universidade Estadual Paulista (Universidade Estadual Paulista) · 2011
Cited by 0
Ermilova Inna · Zenodo (CERN European Organization for Nuclear Research) · 2026
Cited by 0Open access
Ermilova Inna · Zenodo (CERN European Organization for Nuclear Research) · 2026
Cited by 0Open access
Abdelkader Dendane · Acervo Digital da Universidade Estadual Paulista (Universidade Estadual Paulista) · 2011
This educational object allows to evaluate the product of two matrixes of which the elements are chosen by the user
Cited by 0
J. Douglas Walker, Noah M. McLean · 2024
Cited by 1
Tze-Heng Ma, Jeremy Spinrad · Lecture notes in computer science · 1991
Cited by 11
Khaled Thabet · 2012
Summary Algorithm can be written in various ways, executes sequential or parallel, and gives the same results. One of the main factors of determining the efficient of an algorithm is the execution time factor, how much time the algorithm takes to accomplish its work. Because matrix multiplication widely used in a variety of applications and is often one of the core components of many scientific computations, it will be taken as a problem in this work and different algorithms are given to solve this problem. Then the execution time of all the methods will be calculated to find the best method for matrix multiplication. After testing Twenty three methods, we find that parallel Strassen algorithm is the best method for finding matrix multiplication. Key words: Algorithm, parallel execution, matrix multiplication, Strassen algorithm. 1. Introduction Algorithm is a set of instructions for solving a problem and the efficiency of implementation of the algorithm depends upon speed, size, and resources consumption. Many instructions can give the same result for a particular problem .On the other hand, the execution of these instructions are different. Some of them take less time and space than the others. Some of them become more efficient when it executes parallel. As a result, we try to select the suitable instruction that gives the best execution, less time and space. Small Algorithms need one processor to execute efficiently and give the required result in a record time. But one processor is not enough for executing large and complex problems, so we need more than one processor to enhance the execution time of algorithm and this called parallel computing. In the simplest sense, parallel execution is the simultaneous use of multiple compute resources to solve a computational problem. Parallel execution has the following characteristics, use multiple CPUs, the problem to be solved is broken to sub problems that can be solved concurrently, each sub problem is broken down to a series of instructions and instructions from each sub problem executes simultaneously on different CPUs . The complexity of matrix multiplication has attracted a lot of attention in the last forty years. In this paper we will consider matrix multiplication as the problem, give various methods to solve this problem and find the best one that takes the least time. Matrix multiplication is the kernel of many scientific applications [8, 9]. It is a binary operation that takes a pair of matrices, and produces another matrix. If A is an n-by-m matrix and B is an m-by-p matrix, the result AB of their multiplication is an n-by-p matrix defined only if the number of columns m of the left matrix A is the equal to the number of rows of the right matrix B. The result of matrix multiplication is a matrix whose elements are found by multiplying the elements within a row from the first matrix by the associated elements within a column from the second matrix and summing the products. The procedure for finding an element of the resultant matrix is to multiply the first element of a given row from the first matrix times the first element of a given column from the second matrix, then add to that the product of the second element of the same row from the first matrix and the second element of the same column from the second matrix, then add the product of the third elements and so on, until the last element of that row from the first matrix is multiplied by the last element of that column from the second matrix and added to the sum of the other products. Ex: As we mentioned before there are many methods to calculate the multiplication of matrixes. All of them give the same result but each one consumes different space in memory and takes different processor time. The methods that we will test are: 1. Row by Column method 2. Row by Row method 3. Column by Column method 4. Strassen method We will test each of them with all the possible types of each one, “sequential, blocked and parallel”. The rest of this paper is organized as follows: in section II, we give a brief review of some related works about matrix multiplication, in section III we presents Row by Column method with all its type, section IV displays Row by Row
Cited by 16
Takke, Erik C · TU/e Research Portal (Eindhoven University of Technology) · 2019
Cited by 0
James Canning · 2002
This paper presents matrix multiplication performance results for sequential and parallel implementations written in C using Message Passing Interface (MPI) [12] and the parallel array language ZPL [22]. Although matrix multiplication has been addressed by numerious papers in the past, this treatment is unique in that (1) it presents a detailed and reproducable configuration, (2) it provides
Cited by 0
Rasmus Pagh · 2012
Motivated by the problems of computing sample covariance matrices, and of transforming a collection of vectors to a basis where they are sparse, we present a simple algorithm that computes an approximation of the product of two n-by-n real matrices A and B. Let ||AB||F denote the Frobenius norm of AB, and b be a parameter determining the time/accuracy trade-off. Given 2-wise independent hash functions h1, h2: [n] → [b], and s1, s2: [n] → {-1, +1} the algorithm works by first "compressing" the matrix product into the polynomial
Cited by 23
Vadai, Mihaly · Zenodo (CERN European Organization for Nuclear Research) · 2024
Optical matrix multiplication concept for the CERN Summer Student program. Explains in plain terms and with simple diagrams how a matrix vector and matrix matrix multiplication can be performed with incoherent light.
Cited by 0Open access
Elena Ďuránová · Digital Repository (National Repository of Grey Literature) · 2008
Cited by 0
Berger, Guillaume · Digital Access to Libraries (Université catholique de Louvain (UCL), l'Université de Namur (UNamur) and the Université Saint-Louis (USL-B)) · 2017
In this thesis, we tackle the problem of matrix multiplication complexity. Matrix multiplication, which is a bilinear map, can henceforth be represented by a third-order tensor. Decompositions of the associated tensor as a sum of $F$ rank-$1$ tensors provide algorithms to compute the product of $\\left(n,p\\right)$ by $\\left(p,n\\right)$ matrices with $F$ ``active multiplications''. The minimal number of rank-$1$ terms necessary to decompose a tensor is its rank. Although the problem is quite old (it was initiated in 1969 by V. Strassen), only partial results are known so far. For example, we know that the rank of the tensor associated to the multiplication of $\\left(3,3\\right)$ matrices is between $19$ and $23$ but its exact value is still not determined. However, recent developments in numerical multi-linear algebra open the door for further improvements. The emergence of numerical algorithms for the decomposition of tensors induced a paradigm shift in the estimation of matrix multiplication complexity. In a first time, we are interested in practical algorithms to efficiently compute matrix multiplication, i.e. with less ``active multiplications'' than the ``straightforward'' algorithm. Practical algorithms require that the rank-$1$ terms are sparse and contain only entries in $\\left\\lbrace -1,0,+1 \\right\\rbrace$ or $\\left\\lbrace -1,-1/2,0,+1/2,+1 \\right\\rbrace$ for example. We present a method for decomposing small tensors into the sum of sparse rank-$1$ tensors with entries in $\\left\\lbrace -1,0,+1 \\right\\rbrace$. Applying the method on matrix multiplication tensors, we propose efficient algorithms for computing the product of $\\left(3,2\\right)$ by $\\left(2,3\\right)$ matrices or $\\left(3,3\\right)$ by $\\left(3,3\\right)$ matrices for example and using only scalar additions, subtractions and multiplications. In a second time, we concentrate on the relations between decompositions. Invariant transformations define a class of transformations acting on the decompositions of a matrix multiplication tensor but leaving the result unchanged, i.e. the transformed decomposition is still a decomposition of the same tensor. We introduce the concept of characteristic polynomials of a decomposition. Thanks to that, we provide a necessary condition for a decomposition to be ``discretizable'', i.e. be joinable (via invariant transformations) to a decomposition with rank-$1$ terms containing only $\\pm 1$ or $0$ entries. Finally, we propose an algorithm for deciding whether two decompositions are equivalent through invariant transformations. The algorithm uses linear algebra and a novel strategy to get rid of the ``permutation equivalence'' that might exist between the two decompositions. With it, we analyze the distribution of the equivalence classes of decompositions through invariant transformations: ``is there a unique decomposition up to invariant transformations?'' or ``picking two decompositions of a same matrix multiplication tensor, is there any chance that they are equivalent through invariant transformations?''. For the different cases we discuss, namely multiplication of matrices with sizes between $\\left(1,2\\right)$ by $\\left(2,1\\right)$ and $\\left(3,3\\right)$ by $\\left(3,3\\right)$, it seems that only two different situations occur: either there is one and only one equivalence class of decompositions or the equivalence classes are so numerous that two ``randomly picked'' decompositions are equivalent with probability zero.
Cited by 1Open access
Ca Ti On · 2007
Introduction Given two n \\Theta n matrices, A and B, we wish to examine how fast we can compute the product AB = C. The normal method takes time O(n 3 ) since each entry in C is computed as c i;k = n X j=1 a i;j b j;k ; which means that each of the n 2 entries in C takes time O(n) to compute. The first algorithm to do better than this obvious bound was given by Strassen in 1969 [3]. The idea of this algorithm is to divide each n \\Theta n matrix into four parts of size n=2 \\Theta n=2. If we view the submatrices of size n=2 \\Theta n=2 as single elements, the prob
Cited by 0
Fan, Xiaodi · CUNY Academic Works (City University of New York) · 2022
Matrix multiplication is a fundamental building block in many machine learning models. As the input matrices may be too large to be multiplied on a single server, it is common to split input matrices into multiple sub-matrices and execute the multiplications on different servers. However, in a distributed infrastructure, it is common to observe stragglers whose performance is significantly lower than other servers at some time. Compared to replicating each task on multiple servers, coded matrix multiplication, i.e., a combination of coding theoretic techniques and distributed matrix multiplication, can tolerate the same number of stragglers with much fewer servers. The recent years have witnessed the fast development of research in coded matrix multiplication. Coding schemes have been proposed to achieve the optimal recovery threshold, communication, and computation; leverage resource from stragglers; perform secure and private matrix multiplication. Also, coded matrix multiplication is applied in gradient descent and machine learning models. In this dissertation, we propose a coding scheme for the matrix chain multiplication with a general number of matrices multiplied, which allows completing the chain multiplication in one single round. Then, we present Spinner, a framework for coded distributed matrix multiplication where we exploit the partial results of tasks on stragglers in a heterogeneous cluster. At last, we introduce ε-local coding that can adjust the encoding locality of the parity data sub-tasks, and it can leverage partial results returned by the straggling nodes and has better encoding complexity than existing coding schemes.
Cited by 0
Jiřı́ Matoušek · Student mathematical library · 2010
Cited by 0
Susan Bashford, Carol Brook · 1972
Cited by 0
Muhammad Adnan (678952), Faisal Aslam (4666750), Zubair Nawaz (4666753) et al. · Figshare · 2017
<p><i>n</i> × <i>n</i> matrices with values of <i>n</i> as 32, 64, 128, 256, 512, 1024, and 2048 is used to produce results.</p>
Cited by 0Open access
Симонов Кирилл Алексеевич, Simonov Kirill · Research Repository Saint Petersburg State University (Saint Petersburg State University) · 2017
В рамках теоретико-группового подхода к алгоритмам быстрого матричного умножения мы демонстрируем новый способ получения известной оценки на экспоненту матричного умножения. Также мы явно вычисляем неприводимые представления групп, эффективно реализующих матричное умножение, и с помощью этого уточняем оценки на время работы алгоритмов, основанных на таких группах малого размера.
Cited by 0Open access