📜 ⬆️ ⬇️

StreamIt - a new language for parallel programming

Experts from the Massachusetts Institute of Technology have developed a new parallel programming language StreamIt. The language is primarily focused on programming streaming applications, such as streaming video and audio, mobile communication systems, encryption and decryption of information flows in real time. Detailed information is available on the StreamIt project website .

The development of the language has been going on for several years. Currently, a compiler for StreamIt 2.1 can be downloaded from the site. You can also download and install the Exlipse Development Plugin for conducting development in the Eclipse environment.
The ideology of development on StreamIt is approximately as follows. The programmer constructs a flow graph consisting of blocks with one input and output, describes the functions of atomic blocks and the structure of composite blocks. The compiler generates code for each block and optimizes the flow graph for the target computing system architecture.
The algorithm of the compiler is based on the concept of data flow. Data passes through a pipeline consisting of functions. The compiler determines which functions are independent of each other, and places their execution on different processors.
In the current implementation, the compiler generates Java code at the output.
Syntax is similar to C and Java. Here is an example with a snippet of code:

float-> float filter LowPassFilter (int N, float freq) {
float [N] weights;
init {
weights = calcWeights (N, freq);
}
work peek N pop 1 push 1 {
float result = 0;
for (int i = 0; i <weights.length; i ++) {
result + = weights [i] * peek (i);
}
push (result);
pop ();
}
}

')

Source: https://habr.com/ru/post/7629/


All Articles