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 11:45]
yun [Tutorial / Examples]
start [2018/10/23 09:27] (current)
sanjay [Installing AlphaZ and Getting Started]
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:​spring2018|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 21: Line 21:
  
 ====== Installing AlphaZ and Getting Started ====== ====== Installing AlphaZ and Getting Started ======
-Instruction ​to setup AlphaZ for CS department accounts, and to install in an external machine ​is available in a separate page.\\ +To use AlphaZ on the CS department machines, follow the [[Eclipse Setup]]. 
-Operating systems other than MacOSX and Linux are not supported at this time.\\ +Instructions ​to set up an AlphaZ ​developer version ​for CS department accounts, and/or on an external machine are also available on the [[Eclipse Setup]] ​page.
-Support for 32bit Linux is limited, since we have very little access to 32bit machines.\\ +
-[[Eclipse Setup]]+
  
-Source for AlphaZ are available in our repository, but our system depends on Eclipse and plug-ins developed for Eclipse Modeling Framework as well. We also use a large number of plug-ins from CAIRN team at IRISA, Rennes. The repository structure of CSU and IRISA is outlined in this page : [[Source Access]]. However, it is not a complete list, and we recommend users to download the bundle and then checkout projects corresponding to where you would like to make changes.+Operating systems other than MacOSX and Linux are not supported at this time.  Support for 32bit Linux is limited, since we have very little access to 32bit machines. 
 + 
 +Source for AlphaZ are available in our repository, but our system depends on Eclipse and plug-ins developed for Eclipse Modeling Framework as well.  We also use a large number of plug-ins from CAIRN team at IRISA, Rennes. The repository structure of CSU and IRISA is outlined in this page : [[Source Access]]. However, it is not a complete list, and we recommend users to download the bundle and then checkout projects corresponding to where you would like to make changes.
 ====== Alphabets and Equational Programming ====== ====== Alphabets and Equational Programming ======
  
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 Check Program [[Check Program]].\\ Tutorial on Check Program [[Check Program]].\\
 +Example of how to use [[Schedule Code Generator]].\\
 +Tutorial on how to use external functions [[Tutorial External Function]].\\
 +Tutorial on how to write program with subsystem [[Tutorial SubSystem]]. \\
 {{^ [[Calculator]].}}\\ {{^ [[Calculator]].}}\\
 Examples of how to use [[Normalize]].\\ Examples of how to use [[Normalize]].\\
Line 74: Line 76:
 Example of how to use [[Schedulers]].\\ Example of how to use [[Schedulers]].\\
 {{^ [[Verifier]].}}\\ {{^ [[Verifier]].}}\\
-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 83: 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.1404755117.txt.gz · Last modified: 2014/07/07 11:45 by yun