From V4.1.0 you can use Diamond Premium to create processor farms.
A processor farm is built from two tasks that you write: a MASTER task and a WORKER task.
The master task has two threads: one breaks your problem into smaller sub-problems and sends work-packets describing each sub-problem into the farm; the other receives responses from the farm and combines them into the desired solution. For example, an application to perfrom ray tracing could break the scene into a number of lines and send the coordinates of each line into the farm as work packets. The responses would be bit-maps for the rendered lines.
A worker task is an infinite loop that repeatedly reads a work packet, processes it, and then sends a response packet before going round to read another work packet.
All communication in these tasks is performed by two functions: farm_in and farm_out. That is all you need to know about farm communication!
You tell the Diamond configurer about all the processors you want to use in your farm and where to place the master task and copies of the worker. The configurer will automatically construct an application that will load all your tasks along with extra routing tasks that move packets efficiently around your farm. These routing tasks perform simple load balancing to ensure that workers are kept as busy as possible.
Here is an example of a configuration file to construct a simple farm on a twelve-core EVP6472 module. The master task is placed on cpu_0 and a copy of the worker task is placed on every declared processor:
processor cpu_0 EVP6472 root
processor cpu_1 EVP6472
processor cpu_2 EVP6472
processor cpu_3 EVP6472
processor cpu_4 EVP6472
processor cpu_5 EVP6472
processor cpu_6 EVP6472
processor cpu_7 EVP6472
processor cpu_8 EVP6472
processor cpu_9 EVP6472
processor cpu_10 EVP6472
processor cpu_11 EVP6472
task Master data=30K ins=1 outs=1
task Worker data=30K
farm {
MASTER Master cpu_0
WORKER Worker *
}
FAQs
From the list below choose one of our FAQs topics, then select an FAQ to read. If you have a question which is not in this section, please contact us. 



