\cimgl{figs/distributed_systems.png}{width=\linewidth}{A Distributed High-Performance Computing}{Source: Created by Baptiste Coudray}{fig:dd-sys}
\cimgl{figs/distributed_systems.png}{width=\linewidth}{A Distributed High-Performance Computing System}{Source: Created by Baptiste Coudray}{fig:dd-sys}
As we can see in \ref{fig:dd-sys}, distributed systems are groups of networked computers that share a common goal. They are used to increasing computing power and solve a complex problem faster than a single machine [@noauthor_distributed_2021]. In order to do that the problem's data are divided along each computer which can be done by communicating with each other via message passing. Each computer executes the same program (which is a distributed program) but on a different data. The algorithm is applied using one of this three computing methods:
To compile the Futhark code, we have to specify a backend; this one allows us to compile our code in:
* (+OpenCL) (opencl, pyopencl),
* (+CUDA) (cuda),
* multi-thread (+POSIX) C (multicore),
* sequential C (c),
* Python sequential (python).
Here we compile in (+OpenCL) to run the program on the graphics card, and we run the program with the number 12 as the parameter.
To compile the Futhark code, we have to specify a backend; Here we compile in (+OpenCL) to run the program on the graphics card, and we run the program with the number 12 as the parameter.