Compilers: Difference between revisions
From Modelado Foundation
imported>BenoitMeister No edit summary |
imported>BenoitMeister No edit summary |
||
Line 53: | Line 53: | ||
| | | | ||
Our current target is clusters of x86 multicore nodes. So far we have worked at function-level granularity, but optimizing across multiple functions is possible to some degree. | Our current target is clusters of x86 multicore nodes, but we are considering other targets as well, such as Intel's straw man architecture. So far we have worked at function-level granularity, but optimizing across multiple functions is possible to some degree. | ||
|(X-TUNE) | |(X-TUNE) | ||
Line 81: | Line 81: | ||
|(D-TEC) | |(D-TEC) | ||
| | | | ||
The R-Stream approach to dopmain-specificity is to define a programming style and enable domain-specific annotations. The advantage of this approach is that the user still programs in C, and doesn't need to learn a new | The R-Stream approach to dopmain-specificity is to define a programming style and enable domain-specific annotations. The advantage of this approach is that the user still programs in C, and doesn't need to learn a new syntax. | ||
|(X-TUNE) | |(X-TUNE) | ||
|(GVR) | |(GVR) | ||
Line 93: | Line 93: | ||
|(DEGAS) | |(DEGAS) | ||
|(D-TEC) | |(D-TEC) | ||
| | | | ||
R-Stream supports a wide range of loop and data layout transformations, some of which are specific to stencil operations. | |||
These transformations mainly create data locality and parallelism at various levels of the target architecture. | |||
|(X-TUNE) | |(X-TUNE) | ||
|(GVR) | |(GVR) | ||
Line 117: | Line 119: | ||
|(DEGAS) | |(DEGAS) | ||
|(D-TEC) | |(D-TEC) | ||
|( | | | ||
None, although I'm not sure I fully understand the question (as of 5/5/14). | |||
|(X-TUNE) | |(X-TUNE) | ||
|(GVR) | |(GVR) | ||
Line 129: | Line 132: | ||
|(DEGAS) | |(DEGAS) | ||
|(D-TEC) | |(D-TEC) | ||
|( | | | ||
R-Stream supports Linux. Successful Mac OS installations were also reported (using Darwin), although it is not officially supported. | |||
Obviously, R-Stream can also cross-compile to any platform as long as the native low-level compiler supports this feature. | |||
|(X-TUNE) | |(X-TUNE) | ||
|(GVR) | |(GVR) | ||
Line 141: | Line 146: | ||
|(DEGAS) | |(DEGAS) | ||
|(D-TEC) | |(D-TEC) | ||
|( | | | ||
As explained above, in R-Stream, a domain-specific formulation of the program is performed by combining style rules and annotations (#pragma). Semantics and syntax remain as well-defined as the underlying C language. | |||
|(X-TUNE) | |(X-TUNE) | ||
|(GVR) | |(GVR) | ||
Line 153: | Line 160: | ||
|(DEGAS) | |(DEGAS) | ||
|(D-TEC) | |(D-TEC) | ||
| | | | ||
R-Stream generates codes that includes calls to the target machine's runtimes/libraries for the purpose of parallelization and locality optimization. R-Stream also supports library calls within the code to be parallelized. | |||
|(X-TUNE) | |(X-TUNE) | ||
|(GVR) | |(GVR) |
Revision as of 13:59, May 5, 2014
Sonia requested that Dan Quinlan initiate this page. For comments, please contact Dan Quinlan. This page is still in development.
QUESTIONS | XPRESS | TG X-Stack | DEGAS | D-TEC | DynAX | X-TUNE | GVR | CORVETTE | SLEEC | PIPER |
---|---|---|---|---|---|---|---|---|---|---|
PI | Ron Brightwell | Shekhar Borkar | Katherine Yelick | Daniel Quinlan | Guang Gao | Mary Hall | Andrew Chien | Koushik Sen | Milind Kulkarni | Martin Schulz |
Describe how you expect to require compiler support within your X-Stack project. | (EXPRESS) | (TG) | (DEGAS) | (D-TEC) |
Compilers have two purposes in the DynAX project, which are both about increasing productivity and programmability. 1- The first role is to automatically parallelize domain-specific applications from a sequential specification. This is what R-Stream does, as it takes sequential C and produce parallel, scalable SWARM code. 2- The second role is to expose high-level parallel programming abstractions. This goal is addressed at two levels: The HTA compiler, which relies on an explicitly parallel intermediate representation (PIL), generates SCALE code. The SCALE compiler, in turn, offers object-oriented programming and simplifies programming to SWARM. |
(X-TUNE) | (GVR) | (CORVETTE) | SLEEC | PIPER does not have/need its own compiler, but we need access to compiler generated information that captures high-level semantics of the language implemented (basically a form of DWARF for DSLs). Additionally, advanced instrumentation or instrumentation point/markers could be useful. |
'Program analysis can be both challenging and require specialized expertise. What requirements do you have for program analysis and what level of expertise you expect to require? This problem could be posed in terms of what APIs for program analysis results do you expect? | (EXPRESS) | (TG) | (DEGAS) | (D-TEC) | (DynAX) | (X-TUNE) | (GVR) | (CORVETTE) | N/A | N/A |
What types of hardware do you expect to address/target within optimizations and at what level of granularity of the program (e.g. coarse-grain, over multiple functions, or fine-grain within statements)? | (EXPRESS) | (TG) | (DEGAS) | (D-TEC) |
Our current target is clusters of x86 multicore nodes, but we are considering other targets as well, such as Intel's straw man architecture. So far we have worked at function-level granularity, but optimizing across multiple functions is possible to some degree. |
(X-TUNE) | (GVR) | (CORVETTE) | N/A | all of the above |
What general purpose languages do you expect to use and or extend to support your research work?" | (EXPRESS) | (TG) | (DEGAS) | (D-TEC) |
Both R-Stream and SWARM are based on C as their input language. |
(X-TUNE) | (GVR) | (CORVETTE) | N/A | PIPER components will be written in C/C++ plus scripting languages (mostly python) |
Do you expect to use, require, or develop an Embedded DSL (defined by compiler support that would leverage semantics of abstractions defined completely within a general purpose base language) or an Extended DSL (define by compiler support that would leverage semantics of abstractions defined by new syntax)?" | (EXPRESS) | (TG) | (DEGAS) | (D-TEC) |
The R-Stream approach to dopmain-specificity is to define a programming style and enable domain-specific annotations. The advantage of this approach is that the user still programs in C, and doesn't need to learn a new syntax. |
(X-TUNE) | (GVR) | (CORVETTE) | N/A | N/A |
What generic and customized code transformations do you require to support your project?" | (EXPRESS) | (TG) | (DEGAS) | (D-TEC) |
R-Stream supports a wide range of loop and data layout transformations, some of which are specific to stencil operations. These transformations mainly create data locality and parallelism at various levels of the target architecture. |
(X-TUNE) | (GVR) | (CORVETTE) | N/A | Instrumentation |
Which level of Intermediate Representation do you prefer to work with: source level, normalized middle level, or low level (close to binary code)? " | (EXPRESS) | (TG) | (DEGAS) | (D-TEC) | (DynAX) | (X-TUNE) | (GVR) | (CORVETTE) | N/A | N/A |
Which parallel programming models (MPI, OpenMP, UPC, etc.) do you want to have better compiler support? " | (EXPRESS) | (TG) | (DEGAS) | (D-TEC) |
None, although I'm not sure I fully understand the question (as of 5/5/14). |
(X-TUNE) | (GVR) | (CORVETTE) | N/A | N/A |
What OS configuration and hardware platforms do you want to run the compiler? " | (EXPRESS) | (TG) | (DEGAS) | (D-TEC) |
R-Stream supports Linux. Successful Mac OS installations were also reported (using Darwin), although it is not officially supported. Obviously, R-Stream can also cross-compile to any platform as long as the native low-level compiler supports this feature. |
(X-TUNE) | (GVR) | (CORVETTE) | N/A | N/A |
How do you expect compilers to incorporate domain-specific information, through DSL, separated semantics-specification files, or other methods? " | (EXPRESS) | (TG) | (DEGAS) | (D-TEC) |
As explained above, in R-Stream, a domain-specific formulation of the program is performed by combining style rules and annotations (#pragma). Semantics and syntax remain as well-defined as the underlying C language. |
(X-TUNE) | (GVR) | (CORVETTE) | N/A | N/A |
How do you expect compilers to interact with your libraries or runtime systems, if any ? " | (EXPRESS) | (TG) | (DEGAS) | (D-TEC) |
R-Stream generates codes that includes calls to the target machine's runtimes/libraries for the purpose of parallelization and locality optimization. R-Stream also supports library calls within the code to be parallelized. |
(X-TUNE) | (GVR) | (CORVETTE) | N/A | Yes: by providing additional debug/code to abstraction mapping information |