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
Next revision Both sides next revision
start [2014/07/07 15:20]
yun [Tutorial / Examples]
start [2018/10/23 09:23]
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.\\+Instruction to setup AlphaZ for CS department accounts, and to on an external machine are available in a separate page. 
 Operating systems other than MacOSX and Linux are not supported at this time.\\ 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.\\ +Support for 32bit Linux is limited, since we have very little access to 32bit machines. 
-[[Eclipse Setup]]+ 
 +To use AlphaZ on the CS department machines, follow the [[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. 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.
Line 64: Line 66:
  
 ====== 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 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 use external functions [[Tutorial External Function]].\\
 Tutorial on how to write program with subsystem [[Tutorial SubSystem]]. \\ Tutorial on how to write program with subsystem [[Tutorial SubSystem]]. \\
-Tutorial on Check Program [[Check Program]].\\ 
 {{^ [[Calculator]].}}\\ {{^ [[Calculator]].}}\\
 Examples of how to use [[Normalize]].\\ Examples of how to use [[Normalize]].\\
Line 75: Line 78:
 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 for 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 87:
  
 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.txt · Last modified: 2018/10/23 09:27 by sanjay