Software Architecture
InputProc
The InputProc package manages the data flow from the packets that are received from the antenna fields, to the input buffers of GPUProc.
The data flow between systems is as follows:
![digraph data_flow {
rankdir=LR;
node [shape=box, fontcolor=white, style=filled, fillcolor="#f0f0f0", fontsize=12, fillcolor="#438dd5"];
"Station" -> "IONode" [label="UDP", labeldistance=2.5, labelangle=45];
"IONode" -> "GPUNode" [label="MPI", labeldistance=2.5, labelangle=45];
}](../_images/graphviz-5c6e6748622952f3e5ff73010a93909ab21386dc.png)
The extended data flow between classes is as follows:
![digraph data_flow {
rankdir=TB;
// Global Styles for Primary and Intermediate Nodes
node [shape=box, style=filled, fillcolor="#438dd5", fontcolor=white, fontsize=12];
subgraph primary {
node [fillcolor="#438dd5"]; // Primary Nodes (Main steps)
"Station/Generator" [label="Station/Generator\nGenerator: Emulates RSP boards"];
"Station/PacketReader" [label="Station/PacketReader\nPacketReader: Reads RSP packets"];
"Station/PacketWriter" [label="Station/PacketWriter\nPacketWriter: Writes RSP packets"];
"Buffer/BlockReader" [label="Buffer/BlockReader\nBlockReader: Reads buffer blocks"];
"Transpose/MPISendStation" [label="MPISendStation\nDistributes subbands"];
"Transpose/MPIReceiveStations" [label="MPIReceiveStations\nCollects subbands"];
}
subgraph intermediate {
node [fillcolor="#5a9bd4", shape=ellipse, fontsize=10]; // Intermediate Nodes
"UDP_RSP" [label="UDP [Station/RSP]"];
"L1_RSP" [label="L1 cache [Station/RSP]"];
"SHM_SampleBuffer" [label="SHM [Buffer/SampleBuffer]"];
"Pointers" [label="(pointers)"];
"MPI_Step" [label="MPI"];
}
// Connections
"Station/Generator" -> "UDP_RSP" -> "Station/PacketReader";
"Station/PacketReader" -> "L1_RSP" -> "Station/PacketWriter";
"Station/PacketWriter" -> "SHM_SampleBuffer" -> "Buffer/BlockReader";
"Buffer/BlockReader" -> "Pointers" -> "Transpose/MPISendStation";
"Transpose/MPISendStation" -> "MPI_Step" -> "Transpose/MPIReceiveStations";
}](../_images/graphviz-89239537e73c1100df1b494526c47bad2ef29abf.png)