Skip to content

Commit 296739e

Browse files
committed
Add README for flp2epn-distributed
1 parent 8478891 commit 296739e

6 files changed

Lines changed: 73 additions & 85 deletions

File tree

README.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,4 +49,11 @@ Alice O2 project software. Simulation and reconstraction software for the ALICE
4949

5050
If the flage -DBUILD_DOXYGEN=ON is set when calling cmake, the doxygen documentation will be generated when calling make. The generated html files can then be found in "build_o2/doxygen/doc/html"
5151

52-
Doxygen documantation is also available online [here](http://aliceo2group.github.io/AliceO2/)
52+
Doxygen documantation is also available online [here](http://aliceo2group.github.io/AliceO2/)
53+
54+
### Compiling with custom DDS location
55+
56+
To include custom DDS location in the compilation, provide DDS_PATH flag when calling cmake. For example:
57+
```bash
58+
cmake -DDDS_PATH="/home/username/DDS/0.11.27.g79f48d4/" ..
59+
```

devices/flp2epn-distributed/FrameBuilder.cxx

Lines changed: 0 additions & 54 deletions
This file was deleted.

devices/flp2epn-distributed/FrameBuilder.h

Lines changed: 0 additions & 29 deletions
This file was deleted.
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
#### Prototype Devices for the transport between FLPs and EPNs
2+
--------------------------------------------------------------
3+
4+
#### General
5+
6+
The devices implement following topology:
7+
8+
![FLP2EPN topology](../../docs/images/flp2epn-distr-rtt.png?raw=true "FLP2EPN topology")
9+
10+
- **flpSyncSampler** publishes timeframe IDs at configurable rate (only for the *test mode*).
11+
- **flpSenders** generate dummy data of configurable size and distribute it to the available epnReceivers.
12+
- **epnReceivers** collect all sub-timeframes (according to number of FLPs), merge them and send further.
13+
- flpSenders choose which epnReceiver to send a given sub-timeframe to based on its ID (`timeframeId % NumEPNs`), ensuring that sub-timeframes with the same ID arrive at the same epnReceiver (without need for additional synchronization).
14+
- Upon collecting sub-timeframes from all flpSenders, epnReceivers send confirmation to the sampler with the timeframe ID to measure roundtrip time.
15+
- epnReceivers can also measure intervals between receiving from the same FLP (used to see the effect of traffic shaping).
16+
- The devices can run in *test mode* (as described above) and *default mode* where flpSenders receive data instead of generating it (as used by the Alice HLT devices).
17+
- Optional deployment and execution via DDS.
18+
19+
#### Device configuration
20+
21+
The devices are configured via command line options. Most of the command line options have default values. These default values are for running in the *default mode*. Running in *test mode* requires a few modifications.
22+
23+
These are the required device options:
24+
25+
**flpSyncSampler** (only for the *test mode*)
26+
27+
- `--id arg` Device ID
28+
- `--data-out-address arg` Data output address, e.g.: "tcp://localhost:5555"
29+
- `--ack-in-address arg` Acknowledgement Input address, e.g.: "tcp://localhost:5556"
30+
31+
**flpSender**
32+
33+
- `--id arg` Device ID
34+
- `--num-epns arg` Number of EPNs
35+
- `--data-in-address arg` Data input address, e.g.: "tcp://localhost:5555"
36+
- `--data-out-address arg` Data output address, e.g.: "tcp://localhost:5555"
37+
- `--hb-in-address arg` Heartbeat input address, e.g.: "tcp://localhost:5555"
38+
39+
Default overrides for *test mode*:
40+
41+
- `--test-mode arg (=0)` "1" to run in test mode
42+
- `--data-in-socket-type arg (=pull)` "sub" for test mode
43+
- `--data-in-method arg (=bind)` "connect" for test mode
44+
- `--data-in-address arg` In test mode, the signal from flpSyncSampler sends to this address (data is generated).
45+
46+
**epnReceiver**
47+
48+
- `--id arg` Device ID
49+
- `--num-flps arg` Number of FLPs
50+
- `--data-in-address arg` Data input address, e.g.: "tcp://localhost:5555"
51+
- `--data-out-address arg` Output address, e.g.: "tcp://localhost:5555"
52+
- `--hb-out-address arg` Heartbeat output address, e.g.: "tcp://localhost:5555"
53+
54+
Default overrides for *test mode*:
55+
56+
- `--data-out-socket-type arg (=push)` "pub" for test mode (pub will just discard the data because no receiver in test mode).
57+
- `--ack-out-address arg` For test mode provide address of the flpSyncSampler.
58+
59+
To list *all* available device options, run the executable with `--help`.
60+
61+
When running with DDS, configuration of addresses is also not required, because these are configured dynamically.
62+
63+
Example for the *test mode* can be found in `run/startFLP2EPN-distributed.sh.in` for manual run, or `runO2Prototype/flp_epn_topology.xml` for DDS run. For *default mode* there is an example DDS topology in `../topologies/o2prototype_topology.xml`.
64+

docs/images/flp2epn-distr-rtt.png

29.8 KB
Loading

topologies/o2prototype_topology.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ The following parameters need adjustment when extending the FLP-EPN configuratio
5959
</decltask>
6060

6161
<decltask id="flpSender">
62-
<exe reachable="true">$ALICEO2_INSTALL_DIR/bin/flpSender_dds --id 0 --num-epns 1</exe>
62+
<exe reachable="true">$ALICEO2_INSTALL_DIR/bin/flpSender_dds --id FLP0 --num-epns 1</exe>
6363
<properties>
6464
<id access="write">FLPSenderInputAddress</id>
6565
<id access="write">FLPSenderHeartbeatInputAddress</id>

0 commit comments

Comments
 (0)