Both sides previous revision Previous revision | Next revisionBoth sides next revision |
index [2016/11/18 15:20] – ↷ Links adapted because of a move operation sbs | index [2016/12/07 22:44] – hnv |
---|
{{ :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 a 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 program, or at least the compute intensive part of a program in a high-level style, quickly 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: |
</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. |