New Mathematics for Computer Performance: Array Algebra and Cost Functions
Abstract
1. Introduction
2. Problem Statement and Related Work
- BSP computing assumes that execution is a sequence of asynchronous parallel sets of traces, interleaved with global exchange and sychronization phases. It benchmarks the target architecture for speed, bandwidth, and global synchronization delay, and combines this information with the algorithm’s computation digraph to produce a reliable and extensible cost, i.e., computation time estimate. The flat parallel structure of BSP (parallel structures are not nested) made it unsuitable for mapping to hierarchical systems, such that it could only represent one-level multicore/multinode or a single GPU’s elements. But that restriction has been lifted with several multi-level versions of BSP [15,16,17]. The work of Loulergue, Matsuzaki et al. [18] has derived a class of BSP algorithms mathematically, but BSP’s main drawback remains that it assumes a flat parallel form of computation, which does not fit all architectures.
- The roofline model [13,19] is a performance analysis technique for parallel executions. It relates global memory-access intensity with computation Flops per second rate. It supports performance tuning by giving hints at what part of the source code is responsible for not reaching maximal Flop/s rate. But that is precisely its main defect: it is blind to any algorithm (as opposed to code-) optimization, such as blocking or Strassen-like matrix multiplication, that would reduce the total number of operations. Like BSP, the roofline model has been given a multi-level extension [20]. In summary, the roofline model is relevant and useful but without a concept of source program so it is useless for parallel software engineering.
- Another approach to parallel programming is polyhedral compilation [21] with its well-studied theory and practice tiling and mapping source code to virtual processors. Its properties are similar to those of the BSP model. The source code is modeled as a set of loop nests, so the model has an obvious link to software engineering, but the mapping to virtual processors is done without any cost model.
“While functional portability across a diverse set of platforms is an important feature of portable frameworks, achieving performance portability often requires vendor and platform-specific optimizations. Achieving performance portability, therefore, comes at the expense of productivity.”
Advice to the Reader: Notations
- 1.
- Section 3 uses MoA notation as it appears in many earlier papers. It can be used to model a great variety of array/tensor structures, operations on them (algorithms in declarative form), and directly or indirectly their mapping to machine structures that are themselves arrays. This style is that of usual applied mathematics, and operator semantics are implicit.
- 2.
- Section 4 refers to a formal denotational semantics defined in an earlier paper and uses no special syntax, yet refers to the concepts of complete partial orders that justify the core intuition of MoA: a single type for all shapes and all dimensions of arrays.
- 3.
- Section 5 defines and heavily uses operators on lists and pairs in a self-contained way. The expressions that relate to lists and pairs of lists give the operational semantics of MoA expressions. The MoA expressions that have those meanings are enclosed in double square brackets. For example, in , is a variable that refers to an MoA array expression or constant, is a variable whose value is some list of content values, and is a shape list that indicates the geometric shape of the array elements that lists in lexicographic order. The reader not interested in symbolic computation, language semantics and programming language implementation may skip Section 5 but can refer to its explanation paragraphs after each definition to get a complete understanding of each MoA operator.
- 4.
- Finally, Section 6 ignores operational semantics notation but uses two new notations: (a) program loop nests that are equivalent to normalized MoA expressions—reductions with indexings in flat arrays that implement the MoA reduction along certain dimensions; (b) costs associated to the loop nests, actually to the control-flow directed-acyclic graphs of those loop nests. As is classic in operations research, the costs have value in a semi-ring (e.g., max+ algebra). These notations have been chosen to justify such mathematical costs as an abstraction of measured execution time and/or memory consumption and/or energy consumption on real computers. Section 6 introduces the formal cost concept and justifies it as a (very incomplete but) formal exploration of a concept that is either implicit or absent from compilers and parallel programming libraries.
3. Mathematics of Arrays (MoA)
3.1. Principles of MoA
3.2. MoA: The Basics
Scalar operations are at the heart of computation, , and, in general for n-d arrays, , where f is an arbitrary scalar function. (When f is commutative, . In addition, if g is a scalar operation, and associative.)
For a scalar, there is only one valid index, is , the empty vector.That is, indexing distributes over scalar operations, or in compiler optimization terms, loop fusion.
This means, with an array’s shape, , generate an array of indices, . Then, using that array as an argument to Psi, the original array ξ, is returned.
3.3. Dense Array Processing
3.4. MoA Matrix Multiplication
- 1.
- Parallel row operations;
- 2.
- Each n parallel row operation is performing m parallel scalar–vector multiplications;
- 3.
- All n operations can be summed in steps (ideally);
- 4.
- Everything is accessed contiguously.
3.4.1. Example: Consider Performing a 3 by 4 with a 4 by 3, 2-D Matrix Multiplication
- Reshape:
3.4.2. Example
4. Denotational Semantics
- The shape of an array is part of its value and, for a given base-type A, there is an array type (domain) that contains arrays of all shapes with elements from A.
- Arrays have box shapes and not random patterns of index positions. Given a random subset of index positions where a base-type value is defined, the smallest array defined by those values has the shape that is the least enclosing box.
- Shapes containing the value 1 are allowed, e.g., shape is a plane in dimensions x, z and shape is a plane in dimensions x, y. Therefore, as in Pytorch [9], a dimension of length 1 allows the alignment of a tensor of fewer dimensions with another one of more dimensions before combining them.
- Shapes containing 0 values are allowed; they generate the empty ideal as input set for the content map, i.e., an empty array. The shape is part of the array value (not its type), so empty is not the same shape as empty : the first one is an empty plane in dimensions x, y while the other is an empty line in dimension x. In other words, one cannot concatenate with but can concatenate with .
5. Operational Semantics
- If , then and there exists no index of ξ. In this case, is not defined.
- Another example is and .
The Array Algebra
- For example, if is the left argument of take and ξ is the right argument of an array , then the definition’s parameters are , , is verified, , . Therefore, the result has shape =, and its content is = —the content of the first two “virtual sub-arrays” of shape .
- If the left scalar argument had been , the shape of the result would be the same, and the content would have been , i.e., the last two “virtual sub-arrays” of shape .
- If the left scalar argument had been , the result’s shape would be and the content would be , which defines .
- The rule for scalar arguments applies to . The semantics of σ are , so , which is the vector in MoA notation. In summary, , , , etc.
- If the argument vector contains a 0, then the second rule applies, , and is then the empty vector .
- If the argument is a vector, the third rule applies. Let us apply ι to the empty vector , whose meaning is . In the left part of the inference rule’s denominator, , so and . The right part is then The denominator then yields , which is again the empty vector. So .
- As an example of the most general case (without zeros), assume and let us compute . The numerator of the second rule produces , and , where every block of length 2 is a possible index for an array of shape .The meaning of is thus . Intuitively, this corresponds to a 3 array of indices of length 2.
- General array indexing is built from the following auxiliary function.
- Scalar array arguments are not allowed; they are excluded by the hypothesis in the rule. Indeed, for a scalar , and so is undefined. As a result, the variable n is also undefined, etc.
- If the array is 1-dimensional, i.e., a vector, then, by hypothesis , it is a non-empty vector . Then, so , so the possible indices are . Also, , and the denominator of the inference rule yields an array of empty shape and content . As such, in this case, is the scalar .
- Assume , and let us compute for . In the numerator of the inference rule, we have so , and is verified. Also, . The denominator of the rule yields, for a value of , the shape and content , which is the first (0th) sub-array of shape in ξ.
- With the same array ξ, if the integer-indexing was , the numerator would give , and still verified. would not change, and the denominator would yield the same shape of but content , i.e., the second (rank 1) sub-array of shape in ξ.
- An empty array argument to Ψ requires a special rule because one-integer indexing is not defined. Operation is the identity in this case.
- Suppose the indexing vector is of length 1, as in . Then, , , , and the inference rule gives , which equals by the first inference rule. Thus, is the one-integer indexing .
- The general case for is when . The second inference rule is then .
- For example, let ξ be a 3-dimensional array of shape , content , and let us compute . The above rephrasing of rule 2 produces , which by the first rule is equal to . Two applications of Definition 16 then give a result of shape and content,i.e., the first sub-array of shape in the second sub-array of shape of the initial array.
- If is an empty array, then by definition of empty array , , and the flattened array has meaning . Therefore, the empty vector.
- If ξ is a scalar , then is the empty list whose product is 1, so the flattened array has meaning , i.e., the singleton vector .
- If , then , so , and the content is empty, so .
- If , then , so , and the content is unchanged, so . In all cases, for a vector , .
- If ξ is a multi-dimensional array of shape , then is the vector of shape and with the same content as ξ. In other words, its content is in lexicographic order.
- For example, is computed by the second rule: , , , so, which by the first rule gives .
- In the general case, is computed with the second rule as recursive application and the first one as base case:.
- As a 3-dimensional example, let us compute.This last form of the expression highlights the general property that is the flat rank of index in the content of an array of shape , namely, element 3 of the sub-array 2 of shape in sub-array 1 of shape .
- Base case. Suppose now that is a scalar , i.e., has empty shape and singleton content . Then, the only possible index for is the empty vector and the sum in the right-hand side of Definition 2’s equation is empty, so it equals 0. is then the list at position 0, i.e., the base-type element s, that is, the right-hand side of Proposition 2’s equation. Let us compute the left-hand side now. Here, it is by the definition of . , so ; in other words, is the one-element vector . Therefore, which confirms the identity.
- Induction hypothesis. Assume that Proposition 2 holds for arrays of dimensionality d.
- Suppose ’s shape is of length , and and where and are both of length d with and .
- Induction step. The contents of and are the same, so we only need to verify that both flat indexings are the same. The equations’ right flat indexing is , and this is equal to by the definition of flat indexing.
- Meanwhile, the left (rav) indexing is . By the definition of , this is equal to By the induction hypothesis, we can assume that indexing is the same as indexing by , which is . By the definition of flat indexing, this is also . As a result, the left indexing equals
- . □
- the first (only) row, i.e., the vector
- the empty array of shape , so
- , so finally
- More interestingly, let be , of shape , filled with values 1; then,
- is the first row i.e., the vector
- , so the reduction is
- 1.
- Applications of arrays to numerical algebra where the base set A is a semi-ring (or often a field) impose binary operations that are both associative.
- 2.
- Parallel algorithms are all based on reduction, scan or both operations. Even so-called “embarassingly parallel” applications require reductions for their final statistics.
6. Cost Models, Mapping Arrays to Processors
6.1. MoA Expressions as High-Level Programs
- 1.
- Represent the specification of an algorithm as an MoA expression;
- 2.
- Reduce it to normal form and derive a corresponding concrete algorithm from it (i.e., an execution schedule);
- 3.
- Compute a cost for that concrete algorithm that is an abstraction of execution time (or space, or energy);
- 4.
- Then if needed algebraically transform the normal form to seek a lesser cost.
- Example 2.
- void mm (float C[m∗p], float A[m∗n], float B[n∗p]) {
- int i, j, k;
- { for (i=0;i<m;i++) {
- { for (k=0; k<n; k++)
- { for (j=0;j<p;j++)
- { C[(i∗p)+j]=C[(i∗p)+j]+A[(i∗n)+k]∗B[(k∗p)+j]; }
- }}}}}
6.2. Performance Diagnostics: Experimental Tools
- a
- Techniques such as the roofline model are necessary for a realistic diagnostic of execution time, space or energy.
- b
- However, they only refer to measurements, not to source code like our MoA ONF or fragment-C.
- c
- They depend on the architecture’s parameters: transfer speeds relative to arithmetic operation speeds, number of computation units, hierarchies such as in caches, etc.
- d
- Thus, they can require a great variety of execution time formulas, yet those formulas follow a certain structure. For example, the refinement cited above generalizes clock frequency to be variable and not constant. In this formula, execution time may be an integral or weighted sum rather than a simple count of the arithmetic operations and transfer times.
6.3. The Cost of an MoA Program: Theory to Explain the Experiments
- Example 3.
- { seq (j=0;j<4;j++)
- { C[(4∗i)+j]+=A[(i∗n)+k]∗B[(4∗k)+j]; }
- }
- Example 4.
- { par (j=0;j<4;j++)
- { C[(4∗i)+j]+=A[(i∗n)+k]∗B[(4∗k)+j]; } }
- Example 5.
- { par (proc=0;j<2;j++)
- { seq (jseq=0;jseq<2;j++)
- { C[(4∗i)+(2∗proc)+jseq]+=A[(i∗n)+k]∗B[(4∗k)+(2∗proc)+jseq]; } }}
- 1.
- Producing explicit seq–par loops from MoA expressions. This is called dimension lifting because it increases the number of dimensions in one of the arrays [14], and corresponds to the transformation from a par to a par–seq loop, as seen above. Dimension lifting is a purely algebraic transformation applied to the DNF, using the reshape operator, and its effect on the ONF or fragment-C code is to produce blocks that are executed in parallel. The space of possible dimension liftings is essentially that of possible reshaping operations on the given algorithm. The laws of linear algebra ensure that all such transformations preserve the algorithm’s result.
- 2.
- Estimating the cost, i.e., estimated execution time of each algorithm variant. This builds on algorithmic theories like BSP [10] and its hierarchical variant, the scatter–gather language SGL [15]: the cost of an execution graph combines instruction counts and transfer (effects of bandwith, or synchronization, i.e., latency) times. In practice, the cost can be either normalized in units of arithmetic operations (assuming that their rate per second is mostly stable) or purely in (fractions of) seconds. The appropriate theory for defining costs comes from operations research, namely, weights from a semi-ring that label the edges/nodes of a directed graph [39].
- Semi-rings are the two-operation algebras (abstract addition, abstract multiplication) that may not have inverses: generalized rings where subtraction and division are not generally defined (e.g., max+ algebras, where the abstract addition is maximum and the abstract multiplication is the addition of costs). Gondran & Minoux [39] among others have shown how the max+ algebra is the correct mathematics to compute longest paths in graphs, once edges are given costs from that algebra. The abstract definitions are useful to show many other costs than max+ (i.e., maximal execution time over possible computation paths).
- [seq] When executing the seq algorithm variant, only one processing unit is active and it may “prefetch” the A element A[(i∗n)+k], i.e., load it only once because it is independent of loop index j. Each one of the four sequential steps requires a read from B and write to C. Thus, the overall arithmetic cost is that of read(A), followed by four time (read(B);write(C)), i.e., . The arithmetic cost is the sum of the cost of one step .
- [par] When executing the par algorithm variant, we exceed the capacity for parallel execution by creating four parallel processes or threads. As a result, the two processing units will interleave the four steps. The degree of parallelism implies that the arithmetic cost is the sum of the costs of two sequential steps. In other words, the arithmetic cost of one thread is . For transfer costs, our model is as follows: each thread may load(A) a single time, but there is no guarantee that the hardware can process this concurrent read in one step. Our modeling is such that it could cost if that operation is serialized. Each thread reads from B twice, and that is fully independent between the threads because the array elements are distinct. Each thread also writes to C twice, also a fully parallel operation. As a result, the transfer cost is .
- [parseq] When executing the parseq algorithm, the loops create exactly two threads of two sequential steps each, which matches hardware size. The arithmetic cost is the same as the (two-thread) execution of par: . However, each thread is able to amortize the loading of A[(i∗n)+k] because the sequence of two operations is known at compile time, and not the effect of dynamic thread scheduling. Accordingly, each processing unit reads from A only once, then reads twice from B and writes twice to C. The transfer cost is then . The costs are summarized in Table 1.
- 1.
- Sequential execution is slowest. This holds when , and this is true except in very unusual contexts.
- 2.
- Block-conscious parallel algorithm variant is fastest because it maximizes the use of static information about data and architecture shapes. In our tiny example, this led to the economy of one load operation while retaining gain.
6.4. General Costs
- The values are obviously too simplistic. If costs are measured in seconds, then fractions will appear so the base type can be that of rationals.
- If the architecture is hierarchical, then so should the computation dags be. In that case, the semi-ring elements could be vectors of costs, combined with pointwise addition and vector-to-rational maximum.
- For abstract reasoning, it may be possible to define the graphs from regular expressions, in which case the semi-ring elements become languages (sets) of abstract costs, + is replaced by concatenation, and max is replaced by union.
- In modern processors, it often happens that the clock rate changes over time, so the constant arithmetic rate hypothesis becomes unrealistic. Cost then become time series; + can be replaced by concatenation and max by the maximum of some integral or statistics on the time series.
- 1.
- An infinite family of finite directed acyclic graphs whose nodes x are called instructions and whose edges are called (data) transfers, such that every has a single source and single sink.
- 2.
- An (additively) idempotent semi-ring with total order < for which both operations are increasing: , and .
- 3.
- A cost function that associates an element of C to every node and edge of any graph .
- 4.
- An -coloring α of the nodes of every graph g (except the sink) such that, if , then x is called a sequential node and has exactly one outgoing edge, or, if , then y is called a parallel node and has more than one outgoing edge.
- If z is the graph sink, then .
- If is the unique outgoing edge from a sequential node x, then .
- If are the outgoing edges from a parallel node y, then .
- □
7. Discussion
7.1. Transpose and Reshape
7.2. Mapping Loops to Processing Elements
7.3. Parallel Architecture as an Array
- 1.
- The assumption that the target architecture is a symmetric tree of compute elements and sub-elements is equivalent to requiring that it is homogeneous. In the above example of a cluster of eight, 132 SM-GPUs, our theory does not cover the case of a computation that would also run on the CPUs of the eight nodes. It does apply to a cluster of CPUs of course, but not to a mixture of CPUs and GPUs at the same level of the architecture tree.
- 2.
- For an instance such as the above Example 3, when compiled to different architectures, a given source code will have different branch prediction behavior. Our cost theory does not cover such variations because the target machine instructions are not described in it. This raises two open questions for future work: (a) Can our experiments suggest a simple mathematical description of the effect of branch prediction on performance? (b) If not, can our theoretical cost prediction be improved to produce variation statistics coherent with experiments?
- 3.
- Processor frequency variations are also not covered by our theory for the following reason: our execution time estimates are based on a notion of instruction counts, similar but more concrete than complexity theory. Transforming the instruction count to an execution delay in seconds is not stable if the instruction rate per second is variable. Energy prediction may also vary in the presence of clock frequency variations.
8. Conclusions and Future Work
Author Contributions
Funding
Data Availability Statement
Acknowledgments
Conflicts of Interest
Abbreviations
| Mathematical sets | |
| The totally ordered set of non-negative integers | |
| The totally ordered set of all integers | |
| The set of possibly empty lists of elements of S | |
| The set of finite, possibly empty arrays of elements of A | |
| Abbreviated names | |
| HPC | High-Performance Computing |
| MoA | A Mathematics of Arrays |
| BSP | Bulk-Synchronous Parallel (computing) |
| GEMM | General Matrix Multiply |
| MM | Matrix Multiply |
| HP | Hadamard Product |
| KP | Kronecker Product |
| DNF | Denotational Normal Form |
| ONF | Operational Normal Form |
| Auxiliary operations for the semantics of MoA | |
| The concatenation operation on lists | |
| Shape list of array | |
| Content list of array | |
| Overloaded: flat indexing or one-integer indexing | |
| MoA operators | |
| The shape operator | |
| The dimensionality operator | |
| The total size operator | |
| Overloaded: list-take or array-take operator | |
| Overloaded: list-drop or array-drop operator | |
| Overloaded: the index generator on non-negative integers or on arrays | |
| The (generalized) indexing operator | |
| Ravel, the flattening operator | |
| The index conversion operator | |
| The reshape operator | |
| The reduce operator for binary operation ⊕ |
References
- Jenkins, M.A.; Mullin, L.R. A Comparison of Array Theory and a Mathematics of Arrays. In Arrays, Functional Languages, and Parallel Systems; Mullin, L.M.R., Jenkins, M., Hains, G., Bernecky, R., Gao, G., Eds.; Springer: Boston, MA, USA, 1991; pp. 237–267. [Google Scholar] [CrossRef]
- Markus, A.; Mullin, L. Array Access and Performance Regarding Numerical Algorithms. Trans. Eng. Comput. Sci. 2026, 14, 1–14. [Google Scholar] [CrossRef]
- Kennedy, K.; Koelbel, C.; Zima, H. The rise and fall of High Performance Fortran: An historical object lesson. In Proceedings of the Third ACM SIGPLAN Conference on History of Programming Languages; Association for Computing Machinery: New York, NY, USA, 2007; pp. 7-1–7-22. [Google Scholar]
- Ritchie, D.M.; Johnson, S.C.; Lesk, M.E.; Kernighan, B.W. The C programming language. Bell Sys. Technol. J. 1978, 57, 1991–2019. [Google Scholar] [CrossRef]
- Clarke, L.; Glendinning, I.; Hempel, R. The MPI message passing interface standard. In Proceedings of the Programming Environments for Massively Parallel Distributed Systems: Working Conference of the IFIP WG 10.3, 25–29 April 1994; Springer: Berlin/Heidelberg, Germany, 1994; pp. 213–218. [Google Scholar]
- Dagum, L.; Menon, R. OpenMP: An industry standard API for shared-memory programming. IEEE Comput. Sci. Eng. 1998, 5, 46–55. [Google Scholar] [CrossRef]
- Farber, R. CUDA Application Design and Development; Elsevier: Amsterdam, The Netherlands, 2011. [Google Scholar]
- Farber, R. Parallel Programming with OpenACC; Newnes: Oxford, UK, 2016. [Google Scholar]
- Pytorch Foundation. Pytorch Documentation. Available online: https://docs.pytorch.org/docs/stable/index.html (accessed on 1 April 2026).
- Valiant, L.G. Why BSP computers? (bulk-synchronous parallel computers). In Proceedings of the [1993] Proceedings Seventh International Parallel Processing Symposium; IEEE: New York, NY, USA, 1993; pp. 2–5. [Google Scholar]
- McColl, W.F. Scalability, portability and predictability: The BSP approach to parallel programming. Future Gener. Comput. Syst. 1996, 12, 265–272. [Google Scholar] [CrossRef]
- McColl, W.F.; Tiskin, A. Memory-efficient matrix multiplication in the BSP model. Algorithmica 1999, 24, 287–297. [Google Scholar] [CrossRef]
- Williams, S.; Waterman, A.; Patterson, D. Roofline: An insightful visual performance model for multicore architectures. Commun. ACM 2009, 52, 65–76. [Google Scholar] [CrossRef]
- Mullin, L.; Hains, G. Towards Automatic, Predictable and High-Performance Parallel Code Generation. In Proceedings of the Parallel and Distributed Processing Techniques (CSCE/PDPTA2024); Arabnia, H.R., Takata, M., Deligiannidis, L., Rivas, P., Ohue, M., Yasuo, N., Eds.; Springer: Cham, Switzerland, 2025; pp. 109–119. [Google Scholar]
- Li, C.; Hains, G. SGL: Towards a bridging model for heterogeneous hierarchical platforms. Int. J. High Perform. Comput. Netw. 2012, 7, 139–151. [Google Scholar] [CrossRef]
- Gerbessiotis, A.V. Extending the BSP model for multi-core and out-of-core computing: MBSP. Parallel Comput. 2015, 41, 90–102. [Google Scholar] [CrossRef]
- Allombert, V.; Gava, F.; Tesson, J. Multi-ML: Programming multi-BSP algorithms in ML. Int. J. Parallel Program. 2017, 45, 340–361. [Google Scholar] [CrossRef]
- Legaux, J.; Hu, Z.; Loulergue, F.; Matsuzaki, K.; Tesson, J. Programming with BSP homomorphisms. In Proceedings of the European Conference on Parallel Processing; Springer: Berlin/Heidelberg, Germany, 2013; pp. 446–457. [Google Scholar]
- Ofenbeck, G.; Steinmann, R.; Caparros, V.; Spampinato, D.G.; Püschel, M. Applying the roofline model. In Proceedings of the 2014 IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS); IEEE: New York, NY, USA, 2014; pp. 76–85. [Google Scholar] [CrossRef]
- Treibig, J.; Hager, G. Introducing a performance model for bandwidth-limited loop kernels. In Proceedings of the International Conference on Parallel Processing and Applied Mathematics; Springer: Berlin/Heidelberg, Germany, 2009; pp. 615–624. [Google Scholar]
- Rajopadhye, S.V. Dependence analysis and parallelizing transformations. In The Compiler Design Handbook; Srikant, Y.N., Shankar, P., Eds.; CRC Press: Boca Raton, FL, USA, 2003. [Google Scholar]
- Berkling, K. Arrays and the Lambda Calculus; Technical Report; Syracuse University: Syracuse, NY, USA, 1990. [Google Scholar]
- Hains, G.; Mullin, L.M.R. Parallel functional programming with arrays. Comput. J. 1993, 36, 238–245. [Google Scholar] [CrossRef]
- Hunt, H.; Mullin, L.; Rosenkrantz, D.; Raynolds, J. A Transformation–Based Approach for the Design of Parallel/Distributed Scientific Software: The FFT. arXiv 2008, arXiv:0811.2535. [Google Scholar] [CrossRef]
- Mullin, L.R.; Raynolds, J.E. Conformal Computing: Algebraically connecting the hardware/software boundary using a uniform approach to high-performance computation for software and hardware applications. arXiv 2008, arXiv:0803.2386. [Google Scholar] [CrossRef]
- Grout, I.; Mullin, L. Realizing Mathematics of Arrays Operations as Custom Architecture Hardware-Software Co-Design Solutions. Information 2022, 13, 528. [Google Scholar] [CrossRef]
- Grout, I.; Mullin, L. Realization of the Kronecker Product in VHDL using Multi-Dimensional Arrays. In Proceedings of the 2019 7th International Electrical Engineering Congress (iEECON); IEEE: New York, NY, USA, 2019. [Google Scholar] [CrossRef]
- Mullin, L.M. A Mathematics of Arrays. Ph.D. Thesis, Syracuse University, Syracuse, NY, USA, 1988. Available online: https://www.researchgate.net/profile/Lenore-Mullin/publication/308893116_A_\Mathematics_of_Arrays/links/57fe4f8408aeaf819a5c29ee/A-Mathematics-of-Arrays.pdf (accessed on 1 January 2026).
- Gondhalekar, A.; Feng, W.C. On the Three P’s of Parallel Programming for Heterogeneous Computing: Performance, Productivity, and Portability. In Proceedings of the 2023 IEEE High Performance Extreme Computing Conference (HPEC); IEEE: New York, NY, USA, 2023; pp. 1–7. [Google Scholar] [CrossRef]
- Petit, Q.; Li, C.; Emad, N.; Dongarra, J. Efficient embedding initialization via dominant eigenvector projections. In Proceedings of the SC’25 Workshops of the International Conference for High Performance Computing, Networking, Storage and Analysis, St. Louis, MO, USA, 16–21 November 2025; pp. 1790–1799. [Google Scholar]
- Chen, J.; Li, K.; Tang, Z.; Bilal, K.; Yu, S.; Weng, C.; Li, K. A parallel random forest algorithm for big data in a spark cloud computing environment. IEEE Trans. Parallel Distrib. Syst. 2016, 28, 919–933. [Google Scholar] [CrossRef]
- Grout, I.; Mullin, L. Hardware Considerations for Tensor Implementation and Analysis Using the Field Programmable Gate Array. Electronics 2018, 7, 320. [Google Scholar] [CrossRef]
- Thomas, S.; Mullin, L.; Swirydowicz, K.; Khan, R. Threaded Multi-Core GEMM with MoA and Cache-Blocking. In Proceedings of the 2021 World Congress in Computer Science, Computer Engineering, & Applied Computing (CSCE’21), Las Vegas, NV, USA, 26–29 July 2021. [Google Scholar]
- Mullin, L.R. A uniform way of reasoning about array-based computation in radar: Algebraically connecting the hardware/software boundary. Digit. Signal Process. 2005, 15, 466–520. [Google Scholar] [CrossRef]
- Ostrouchov, C.; Mullin, L. PythonMoA (GitHub Repository). 2022. Available online: https://github.com/Quansight-Labs/python-moa (accessed on 1 April 2026).
- Thomas, S.; Mullin, L.; Świrydowicz, K. Improving the Performance of DGEMM with MoA and Cache Blocking. In Proceedings of the ACM Arrays’21, 20–26 June 2021; National Renewable Energy Laboratory: Golden, CO, USA, 2021. [Google Scholar]
- Hains, G.; Mullins, J.; Mullin, L. Language Foundations for HPC Array Structures. In Proceedings of the 21st International Conference on Foundations of Computer Science (CSCE/FCS’25); Springer: Cham, Switzerland, 2025. [Google Scholar]
- Hager, G.; Treibig, J.; Habich, J.; Wellein, G. Exploring performance and power properties of modern multi-core chips via simple machine models. Concurr. Comput. Pract. Exp. 2016, 28, 189–210. [Google Scholar] [CrossRef]
- Gondran, M.; Minoux, M. Graphs, Dioids and Semirings: New Models and Algorithms; Springer: Berlin/Heidelberg, Germany, 2008. [Google Scholar]
- Mullin, L.; Phan, W. A Transformational Approach to Scientific Software: The Mathematics of Arrays (MoA) FFT with OpenACC. In Proceedings of the OpenACC Annual Summit, Digital Event, 14 September 2021; Available online: https://www.openacc.org/events/openacc-summit-2021 (accessed on 1 April 2026).
- Staccone, S.; Filippone, S.; Sciarria, L.P. Efficient Binary SpMV on GPUs via Binary Word Compression. In Proceedings of the 34th Euromicro International Conference on Parallel, Distributed, and Network-Based Processing (PDP2026), Cluj-Napoca, Romania, 25–27 March 2026. [Google Scholar]
- Vitányi, P.M. Locality, communication, and interconnect length in multicomputers. SIAM J. Comput. 1988, 17, 659–672. [Google Scholar] [CrossRef]






| Algorithm Variant | Arithmetic | Transfer | Cost |
|---|---|---|---|
| seq(4) | |||
| par(4) | |||
| parseq(2,2) |
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content. |
© 2026 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license.
Share and Cite
Hains, G.; Mullin, L. New Mathematics for Computer Performance: Array Algebra and Cost Functions. Mathematics 2026, 14, 1479. https://doi.org/10.3390/math14091479
Hains G, Mullin L. New Mathematics for Computer Performance: Array Algebra and Cost Functions. Mathematics. 2026; 14(9):1479. https://doi.org/10.3390/math14091479
Chicago/Turabian StyleHains, Gaétan, and Lenore Mullin. 2026. "New Mathematics for Computer Performance: Array Algebra and Cost Functions" Mathematics 14, no. 9: 1479. https://doi.org/10.3390/math14091479
APA StyleHains, G., & Mullin, L. (2026). New Mathematics for Computer Performance: Array Algebra and Cost Functions. Mathematics, 14(9), 1479. https://doi.org/10.3390/math14091479

