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 revisionBoth sides next revision
index [2016/11/18 15:20] – ↷ Links adapted because of a move operation sbsindex [2018/03/10 09:55] sbs
Line 1: Line 1:
 {{ :wall.png?nolink&600|}} {{ :wall.png?nolink&600|}}
-**S**ingle-**A**ssignment **C** is an array programming language predominantly suited for application areas such as numerically intensive applications and signal processing. Its distinctive feature is that it combines //high-level program specifications// with //runtime efficiency// similar to that of hand-optimized low-level specifications. Key to the optimization process that facilitates these runtimes is the underlying //functional model// which also constitutes the basis for //implicit parallelization//. This makes SAC ideally suited for harnessing the full potential of a wide variety of modern architectures ranging from a few symmetric cores with shared memory to massively parallel systems that host heterogeneous components including GPUs and FPGAs.+**S**ingle-**A**ssignment **C** is an array programming language predominantly suited for application areas such as numerically intensive applications and signal processing. Its distinctive feature is that it combines //high-level program specifications// with //runtime efficiency// similar to that of hand-optimized low-level specifications. Key to the optimization process that facilitates these runtimes is the underlying //functional model// which also constitutes the basis for //implicit parallelisation//. This makes SAC ideally suited for harnessing the full potential of a wide variety of modern architectures ranging from a few symmetric cores with shared memory to massively parallel systems that host heterogeneous components including GPUs and FPGAs.
  
-The overall philosophy of the project is to combine [[hppp|high performance, high productivity and high portability]] under the hood of one compiler: //Being able to write a program or at least the compute intensive part of a program in a high-level style quickly and letting a compiler to figure out the details of the underlying architecture and details of the code transformation that lead to performance competitive with hand-optimised low-level codes.// This vision drives a number of research activities around SAC+The overall philosophy of the project is to combine [[hppp|high performance, high productivity and high portability]] under the hood of one compiler: //Being able to write a programor at least the compute intensive part of a program in a high-level stylequickly and leaving a compiler to figure out the details of the underlying architecture and details of the code transformation, leads to performance competitiveness with hand-optimised low-level codes.// This vision drives a number of research activities around SaC
 \\ \\ \\ \\
 To give you a little taste and feel of SaC, here an example on how the all pair N-body problem can be almost literally transliterated from its mathematical formulation into a valid SaC program: To give you a little taste and feel of SaC, here an example on how the all pair N-body problem can be almost literally transliterated from its mathematical formulation into a valid SaC program:
Line 8: Line 8:
 <col sm="3"> <col sm="3">
 \begin{eqnarray} \begin{eqnarray}
-    \overset{\tiny k+1}{p_i} &=& \overset{k}{p_i} + \overset{k+1}{v_i} dt \\ +    \overset{\tiny k+1}{p_i} &=& \overset{k}{p_i} + \overset{k}{v_i} dt \\ 
-    \overset{k+1}{v_i} &=& \overset{k}{v_i} + \overset{k+1}{a_i} dt \\+    \overset{k+1}{v_i} &=& \overset{k}{v_i} + \overset{k}{a_i} dt \\
     \overset{k+1}{a_i} &=& \sum\limits_{j \neq i}^{n}     \overset{k+1}{a_i} &=& \sum\limits_{j \neq i}^{n}
-                         \dfrac{m_j (\overset{k}{p_j} - \overset{k}{p_i})} +                         \dfrac{m_j (\overset{k+1}{p_j} - \overset{k+1}{p_i})} 
-                               {\left|\overset{k}{p_j} - \overset{k}{p_i} \right|^3}+                               {\left|\overset{k+1}{p_j} - \overset{k+1}{p_i} \right|^3}
 \end{eqnarray} \end{eqnarray}
 </col> </col>
Line 28: Line 28:
 </col> </col>
 </grid> </grid>
- 
  
 We are interested in research as well as in applications that can feed into our vision of [[hppp|high performance, high productivity and high portability]]. We are open for collaboration and contributions on various levels, be it academically or commercially motivated.  We are interested in research as well as in applications that can feed into our vision of [[hppp|high performance, high productivity and high portability]]. We are open for collaboration and contributions on various levels, be it academically or commercially motivated. 
  
 Visit our [[download:main|download]] page and the [[docs:main|docs]] section for getting started, find out about the research we have done and are doing in the ''Research'' section, or get in touch with our [[team| contributors]], either directly or via our [[mailing_lists|mailing lists]] from ''Community'' section of this web-site. Visit our [[download:main|download]] page and the [[docs:main|docs]] section for getting started, find out about the research we have done and are doing in the ''Research'' section, or get in touch with our [[team| contributors]], either directly or via our [[mailing_lists|mailing lists]] from ''Community'' section of this web-site.