User Tools

Site Tools


start

Differences

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

Link to this comparison view

Next revision
Previous revision
start [2014/05/30 11:49]
127.0.0.1 external edit
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]].\\
 +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 82: 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.1401472193.txt.gz · Last modified: 2014/07/07 11:45 (external edit)