Both sides previous revision
Previous revision
Next revision
|
Previous revision
Next revision
Both sides next revision
|
start [2015/02/19 12:00] waruna [Introduction] |
start [2016/08/23 07:56] swetha |
====== Introduction ====== | ====== Introduction ====== |
| |
AlphaZ is an open source tool-set for program analysis, transformation and parallelization in the Polyhedral Equational Model. It is being developed by the Mélange group ([[melange:schedule|See schedule]]) at CSU, and uses an equational language called Alpha/Alphabets. | AlphaZ is an open source tool-set for program analysis, transformation and parallelization in the Polyhedral Equational Model. It is being developed by the Mélange group ([[melange:schedule:fall2016|See schedule]]) at CSU, and uses an equational language called Alpha/Alphabets. |
| |
AlphaZ is a general framework for analysis, transformation and code generation in the Polyhedral Equational Model. The input "program" consists of one or more mathematical equations that specify just //**what**// needs to be computed. It can be viewed as a specification. In order to produce a (conventional/imperative) program that //implements// this specification, one needs to specify a schedule (when), a processor allocation (who), and a memory allocation (where to store). Actually, even this is not strictly necessary. We also have a "memoized demand driven" code generator that produces executable code in the absence of any schedule or memory/processor allocation information. | AlphaZ is a general framework for analysis, transformation and code generation in the Polyhedral Equational Model. The input "program" consists of one or more mathematical equations that specify just //**what**// needs to be computed. It can be viewed as a specification. In order to produce a (conventional/imperative) program that //implements// this specification, one needs to specify a schedule (when), a processor allocation (who), and a memory allocation (where to store). Actually, even this is not strictly necessary. We also have a "memoized demand driven" code generator that produces executable code in the absence of any schedule or memory/processor allocation information. |
| |
====== Tutorial / Examples ===== | ====== Tutorial / Examples ===== |
List of Commands http://www.cs.colostate.edu/AlphaZ/AlphaZCommandRefV2.pdf\\ | List of Commands http://www.cs.colostate.edu/AlphaZ/AlphaZCommandRef.pdf\\ |
Tutorial using LU decomposition [[Tutorial LUD]].\\ | Tutorial using LU decomposition [[Tutorial LUD]].\\ |
Tutorial on how to use external functions [[Tutorial External Function]].\\ | Tutorial on how to use external functions [[Tutorial External Function]].\\ |
| |
The //**polyhedral model**// is a framework for analysis and transformations of programs, extensively used for high-level loop optimizations in compilers today. The //polyhedral **equational** model// has the same goals, but focuses on equational/functional programming. The model provides the ability to reason mathematically about programs, their dependences, and semantics. This has lead to a number of very powerful tools for automatic parallelization. By design, the model is applicable to a limited class of programs: dense, regular, computations (the so-called //affine// computations). However, such programs are very widespread, and constitute the compute- and data-intensive kernels in most applications. | The //**polyhedral model**// is a framework for analysis and transformations of programs, extensively used for high-level loop optimizations in compilers today. The //polyhedral **equational** model// has the same goals, but focuses on equational/functional programming. The model provides the ability to reason mathematically about programs, their dependences, and semantics. This has lead to a number of very powerful tools for automatic parallelization. By design, the model is applicable to a limited class of programs: dense, regular, computations (the so-called //affine// computations). However, such programs are very widespread, and constitute the compute- and data-intensive kernels in most applications. |
| |