Sections#
A section is a consecutive group of pipeline methods that operate on the same data pattern or slicing orientation. HTTomo creates sections automatically to organise data processing and movement efficiently.
Fig. 5 Methods are grouped by data pattern. A pattern change, data saving or side-output dependency introduces a new section.#
Processing sections#
HTTomo processes one section at a time. It calculates a Blocks size that satisfies the memory requirements of every method in the section, using GPU memory estimation, then passes each block through those methods in sequence.
A new section begins when:
the data pattern changes between projections and sinograms;
a method depends on a side output produced by an earlier method;
a method’s output needs to be saved to disk; or
another method requiring padded data is encountered.
When the data pattern changes, HTTomo also re-slices the data before processing the next section.
Example#
In Fig. 5, Methods 1 and 2 operate on projections and form the first section. Method 3 requires sinograms, so HTTomo re-slices the data and starts a second section. Method 4 depends on a side output from Method 3, creating a third section that also contains Method 5.
Performance considerations#
Section boundaries may require process synchronisation, data redistribution or temporary storage. Pipelines with fewer sections are therefore generally more efficient, although some boundaries are required by the selected methods.