The Multithread Action has 3 operating modes:
1. : This defines the border between 2 simple Multithread Sections. Simple Multithread Sections do not alter the order (i.e. the sorting) of the rows. It means that you can safely put these a little bit everywhere in the data transformation graph.
2. : This defines a N-Way Multithread Section (that is located just BEFORE the Multithread Action and NOT AFTER). The rows that exit a N-Way Multithread Section are not sorted anymore (i.e. N-Way Multithread Sections are removing all “sorting attributes” in the flow). You can use a partitioning variable to better control which rows are sent to which branch/CPU. Inside a N-Way Multithread Section you cannot have any HD cache.
3. : This is the multithreaded equivalent of the GlobalRunFlag Action. All the actions connected to the input pins of the Action are starting & running simultaneously.
Always design your data-transformation-graph without any multithreading. Once everything has been tested and is working properly, you can start adding Multithread Actions to improve processing speed.
You should try to use the minimum amount of Multithread Actions because the management of the FIFO-row-buffer (that is included inside the Multithread Actions) consumes precious CPU time (The Multithread Actions are a special case because they do not have any internal FIFO-row-buffer, because they output nothing, so you can have plenty of them). In the same spirit, always try to make the longest Sections as possible. A Section should include as many Actions as possible.
Combining together an Input-Action with a Multithread Action is usually a good idea (but not for the GelReader Action, the ColumnarGelFileReader Action, the readStat Action and the TcpIPReceiveTable Action).
Use the MSWindows “Task Manager” to:
a)Optimize your multithread parameters (i.e. the position and the content of the different Sections and the number of CPU assigned to each Section): Do not try to use more than 100% of CPU consumption: it will directly translate to a large efficiency penalty.
b)Optimize the memory consumption of your graph.
I.When using Anatella 64-bit, do not use more RAM memory than the physical memory available inside your computer.
II.When using Anatella 32-bit, do not use more than 2GB RAM memory.