User Tools

Site Tools


start

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
start [2014/07/07 15:20]
yun [Tutorial / Examples]
start [2017/04/19 13:33] (current)
Line 5: Line 5:
 ====== 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 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:​spring2017|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.
Line 64: Line 64:
  
 ====== 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]].\\
Line 77: Line 77:
 Example of how to use [[Schedule Code Generator]].\\ Example of how to use [[Schedule Code Generator]].\\
 List of [[Code Gen Options]].\\ List of [[Code Gen Options]].\\
-Example ​of how to use [[Schedule Code Generator for code with SubSystem]].\\+Examples ​of how to use [[Schedule Code Generator for code with SubSystem]].\\ 
 +Examples of how to use [[Tiled Code Generator (DTiler)]].\\
 Tutorial on transformations of reductions [[Reduction Tutorial]].\\ Tutorial on transformations of reductions [[Reduction Tutorial]].\\
 How to run compiler scripts from terminal. [[Command Line AlphaZ]] How to run compiler scripts from terminal. [[Command Line AlphaZ]]
Line 84: Line 85:
  
 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.
 +
start.1404768050.txt.gz · Last modified: 2014/07/07 15:20 by yun