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
index [2016/11/18 15:20] – ↷ Links adapted because of a move operation sbsindex [2022/02/15 10:08] (current) 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.+==== About 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 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+**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 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 10:
 <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 30: Line 32:
  
  
-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. +==== Getting Started ==== 
 + 
 +For an interactive, no-install experience, you can try out our experimental [[https://jupyter.oi.pe|Jupyter Notebook]] 
 +or you can play around with SaC on [[ https://glot.io/|glot.io]]. 
 + 
 +For installing the SaC eco-system, visit our [[download:main|download]] page and the [[docs:main|docs]] section, 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 by email or via our [[slack|Slack Server]] or our [[mailing_lists|mailing lists]] from ''Community'' section of this web-site. 
 + 
 + 
 +==== SaC User Fora ==== 
 + 
 +We try to bring together SaC users through various platforms. Besides our [[slack|Slack Server]] and our [[mailing_lists|mailing lists]] we now also have a mini-blog [[saczilla|SaCzilla]] in the ''Community'' section of this web-site where users can post their SaC experiences. 
 + 
 + 
 + 
 +==== Collaboration ==== 
 + 
 +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. Just get in touch! 
 + 
  
-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.