Difference between revisions of "SAMPA SRO"
Line 4: | Line 4: | ||
# [https://github.com/JeffersonLab/ersap-java ersap-java] | # [https://github.com/JeffersonLab/ersap-java ersap-java] | ||
# [https://github.com/JeffersonLab/ersap-cpp ersap-cpp] | # [https://github.com/JeffersonLab/ersap-cpp ersap-cpp] | ||
− | # [https://github.com/JeffersonLab/ersap-sampa ersap- | + | # [https://github.com/JeffersonLab/ersap-sampa ersap-actor] |
− | |||
=== Installation === | === Installation === | ||
Line 12: | Line 11: | ||
# [https://jeffersonlab.github.io/ersap-java/ ersap-java instructions] | # [https://jeffersonlab.github.io/ersap-java/ ersap-java instructions] | ||
# [https://jeffersonlab.github.io/ersap-cpp/ ersap-cpp instructions] | # [https://jeffersonlab.github.io/ersap-cpp/ ersap-cpp instructions] | ||
− | # [https://jeffersonlab.github.io/ersap-sampa/ ersap- | + | # [https://jeffersonlab.github.io/ersap-sampa/ ersap-actor instructions] |
− | |||
=== SAMPA SRO diagram === | === SAMPA SRO diagram === | ||
Line 19: | Line 17: | ||
=== Building SAMA DAQ codebase === | === Building SAMA DAQ codebase === | ||
− | '''NB.''' The SAMPA SRO package is kindly provided by the ALICE collaboration and is modified the EPSCI SRO group to make it streaming. | + | '''NB.''' The SAMPA SRO package is kindly provided by the ALICE collaboration and is modified by the EPSCI SRO group to make it streaming. |
The modified package can be found at /home/gurjyan/Devel/stream/exp-sampa | The modified package can be found at /home/gurjyan/Devel/stream/exp-sampa | ||
# login into alkaid.jlab.org | # login into alkaid.jlab.org | ||
− | # copy the ALICE modified package into your | + | # copy the ALICE modified package into your directory |
# follow instructions in README to build the package | # follow instructions in README to build the package | ||
=== Configuration and running === | === Configuration and running === | ||
− | NB: Keeping the order of instructions | + | NB: Keeping the order of instructions is important. |
− | NB: On alkaid.jlab.org source setup_ersap from / | + | NB: On alkaid.jlab.org source setup_ersap.bash/tcsh from /home/gurjyan/Workspace/ersap/sampa. This script sets up necessary environmental variables pointing to a correct JAVA SDK. |
<br> | <br> | ||
− | NB. We recommend defining and creating $ERSAP_USER_DATA directory. No worries about the mentioned directory structure. After the first ERSAP execution the $ERSAP_USER_DATA directory will get proper structure. Use the ''ersap-shell'' (ERSAP CLI) to run the services locally. The CLI provides a high-level interface to configure and start the different ERSAP components required to run an application. | + | NB. We recommend defining and creating a $ERSAP_USER_DATA directory. No worries about the mentioned directory structure. After the first ERSAP execution, the $ERSAP_USER_DATA directory will get proper structure. Use the ''ersap-shell'' (ERSAP CLI) to run the services locally. The CLI provides a high-level interface to configure and start the different ERSAP components required to run an application. |
#Start the ERSAP shell: | #Start the ERSAP shell: | ||
#* $ERSAP_HOME/bin/ersap-shell | #* $ERSAP_HOME/bin/ersap-shell | ||
# Define the application within a ''services.yaml'' file. An example of the file can be found in the ersap-jana installation manual. NB: The default location for the application definition file is in $ERSAP_USER_DATA/config dir | # Define the application within a ''services.yaml'' file. An example of the file can be found in the ersap-jana installation manual. NB: The default location for the application definition file is in $ERSAP_USER_DATA/config dir | ||
− | #Optionally you can change the number of parallel threads used by the services to process requests | + | #Optionally, you can change the number of parallel threads used by the services to process requests |
#* ersap> set threads <NUM_THREADS> | #* ersap> set threads <NUM_THREADS> | ||
− | #Start the data processing. This will start the main Java DPE, a C++ DPE if the C++ service is listed in ''services.yaml'',and it will run the streaming orchestrator to process the data | + | #Start the data processing. This will start the main Java DPE, a C++ DPE if the C++ service is listed in ''services.yaml'', and it will run the streaming orchestrator to process the data stream. |
#* ersap> run local | #* ersap> run local | ||
# Run SAMPA FE (on some other terminal. NB: use bash shell) | # Run SAMPA FE (on some other terminal. NB: use bash shell) | ||
#* >source [modified ALICE code directory]/dist/trorc/trorc-operator/setenv.sh | #* >source [modified ALICE code directory]/dist/trorc/trorc-operator/setenv.sh | ||
− | #* >treadout --data-type 1 --frames | + | #* >treadout --data-type 1 --frames 4000 --mode das --mask 0x7 --port 6000 --host_ip localhost --events 0 |
=== ERSAP application data-stream pipeline === | === ERSAP application data-stream pipeline === | ||
The following is an ERSAP application composition file (services.yaml), describing SAMPA SRO and data-stream processing back-end. | The following is an ERSAP application composition file (services.yaml), describing SAMPA SRO and data-stream processing back-end. | ||
+ | --- | ||
io-services: | io-services: | ||
reader: | reader: | ||
− | class: org.jlab. | + | class: org.jlab.ersap.actor.sampa.engine.SampaDASSourceEngine |
name: SMPSource | name: SMPSource | ||
writer: | writer: | ||
− | class: org.jlab. | + | class: org.jlab.ersap.actor.sampa.engine.SampaFileSinkEngine |
name: SMPWriter | name: SMPWriter | ||
services: | services: | ||
− | - class: org.jlab. | + | - class: org.jlab.ersap.actor.sampa.engine.SampaStatProcEngine |
name: SMPStreamTest | name: SMPStreamTest | ||
− | - class: org.jlab. | + | - class: org.jlab.ersap.actor.sampa.engine.SampaHistogramProcEngine |
name: SMPHistogram | name: SMPHistogram | ||
configuration: | configuration: | ||
io-services: | io-services: | ||
reader: | reader: | ||
− | + | stream_count: 6 | |
− | + | port: 6000 | |
writer: | writer: | ||
file_output: "false" | file_output: "false" | ||
Line 81: | Line 80: | ||
mime-types: | mime-types: | ||
- binary/data-sampa | - binary/data-sampa | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |
Revision as of 16:29, 20 February 2023
Project dependencies
Installation
NB. For installation you should define ERSAP_HOME environmental variable.
SAMPA SRO diagram
Building SAMA DAQ codebase
NB. The SAMPA SRO package is kindly provided by the ALICE collaboration and is modified by the EPSCI SRO group to make it streaming. The modified package can be found at /home/gurjyan/Devel/stream/exp-sampa
- login into alkaid.jlab.org
- copy the ALICE modified package into your directory
- follow instructions in README to build the package
Configuration and running
NB: Keeping the order of instructions is important.
NB: On alkaid.jlab.org source setup_ersap.bash/tcsh from /home/gurjyan/Workspace/ersap/sampa. This script sets up necessary environmental variables pointing to a correct JAVA SDK.
NB. We recommend defining and creating a $ERSAP_USER_DATA directory. No worries about the mentioned directory structure. After the first ERSAP execution, the $ERSAP_USER_DATA directory will get proper structure. Use the ersap-shell (ERSAP CLI) to run the services locally. The CLI provides a high-level interface to configure and start the different ERSAP components required to run an application.
- Start the ERSAP shell:
- $ERSAP_HOME/bin/ersap-shell
- Define the application within a services.yaml file. An example of the file can be found in the ersap-jana installation manual. NB: The default location for the application definition file is in $ERSAP_USER_DATA/config dir
- Optionally, you can change the number of parallel threads used by the services to process requests
- ersap> set threads <NUM_THREADS>
- Start the data processing. This will start the main Java DPE, a C++ DPE if the C++ service is listed in services.yaml, and it will run the streaming orchestrator to process the data stream.
- ersap> run local
- Run SAMPA FE (on some other terminal. NB: use bash shell)
- >source [modified ALICE code directory]/dist/trorc/trorc-operator/setenv.sh
- >treadout --data-type 1 --frames 4000 --mode das --mask 0x7 --port 6000 --host_ip localhost --events 0
ERSAP application data-stream pipeline
The following is an ERSAP application composition file (services.yaml), describing SAMPA SRO and data-stream processing back-end.
--- io-services:
reader: class: org.jlab.ersap.actor.sampa.engine.SampaDASSourceEngine name: SMPSource writer: class: org.jlab.ersap.actor.sampa.engine.SampaFileSinkEngine name: SMPWriter
services:
- class: org.jlab.ersap.actor.sampa.engine.SampaStatProcEngine name: SMPStreamTest - class: org.jlab.ersap.actor.sampa.engine.SampaHistogramProcEngine name: SMPHistogram
configuration:
io-services: reader: stream_count: 6 port: 6000 writer: file_output: "false" services: SMPStreamTest: verbose: "false" SMPHistogram: frame_title: "ERSAP" frame_width: 1400 frame_height: 1200 grid_size: 2 #> hist_titles is a string containing the list of integers=channels separated by , hist_titles: "1, 3, 7, 17" hist_bins: 100 hist_min: 0 hist_max: 500
mime-types:
- binary/data-sampa