## Spark

### FLAME code-skeleton generator

The menu to your left will help you generate code for algorithms that resulted from the FLAME approach to deriving linear algebra algorithms.

The first section allows you to

1. Indicate the name of the function to be generated.
Ofcourse it is useful to pick a name that is related to the operation. For example, consider the operation
B := L-1 B
which is often referred to as a Triangular Solve with Multiple Right-hand sides (Trsm). Here B is an m × n matrix and L is lower triangular. We would suggest a name like
` Trsm_llnn `
where the ` llnn ` indicates that the matrix L is

• on the left of matrix B ,
• lower triangular,
• not transposed, and has a
• nonunit diagonal.

The above makes more sense to those who are familiar with the level-3 Basic Linear Algebra Subprograms (BLAS).

2. Whether the algorithm is unblocked, blocked, or recursive.

3. An integer that indicates the algorithmic variant for the given operation the code that is being coded.

In the second section, you need to indicate the number of operands for the function and some attributes of those operands:

 Tag: The letter to be used for the variables. Type: The type of the operand: matrix, vector, or scalar. Direction: The direction in which the computation sweeps through the operand. Input/Output: Whether an operand represents input, output, or both. Note: For now, it is wise not to indicate that an operand is only an output variable.

The convention is that
• upper-case letters denote matrices,
• lower-case letters denote vectors, and a "t" at the end of the name indicates a row-vector, and
• lower-case Greek letters denote scalars.

Next, you pick the output language to be generated:

 FLAME@lab Mscript for Matlab or Octave FLAMEC Code for the C programming language using the FLAME infrastructure. PLAPACK Code for the C programming language targeting distributed memory architectures using the Parallel Linear Algebra PACKage (PLAPACK) instructure. FLaTeX: Source for generating an algorithm using LaTeX.

Finally, you can indicate your name and e-mail so that the header identifies you as the person who coded the algorithm.

This generator has been brought to you by

 Tze Meng Low ltm@cs.utexas.edu Robert A. van de Geijn rvdg@cs.utexas.edu Jonathan S. Monette jon_monette@mail.utexas.edu