From d6973dfc580a9b088cddfa0b6545aff878449e38 Mon Sep 17 00:00:00 2001 From: Dmitry Ozerov Date: Wed, 3 Jun 2020 11:20:51 +0200 Subject: [PATCH 1/3] modified retrieve script to sf_writer --- scripts/retrieve_detector_data.sh | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/scripts/retrieve_detector_data.sh b/scripts/retrieve_detector_data.sh index d4512d3..5f2dfe4 100755 --- a/scripts/retrieve_detector_data.sh +++ b/scripts/retrieve_detector_data.sh @@ -16,8 +16,6 @@ echo "Request to retrieve : $@ " echo "Started : "`date` date1=$(date +%s) -PROCESS_PID=$$ - if [ $# == 4 ] then OUTFILE=$4 @@ -34,7 +32,8 @@ coreAssociated_replay=(7 7 7 7 8 8 8 8 9 9 9 9 10 10 10 10 11 11 11 11 12 12 12 #1 replay workers per core #coreAssociated_replay=(4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35) -coreAssociated_writer="2,3,4,5,6" +#coreAssociated="7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,12,12,12,12,13,13,13,13,14,14,14,14" +coreAssociated="7,8,9,10,11,12,13,14" touch /tmp/detector_retrieve.log /tmp/detector_retrieve_replay.log @@ -45,8 +44,8 @@ while [ ${PREVIOUS_STILL_RUN} = 1 ] do sleep 15 # we need to sleep at least to make sure that we don't read from CURRENT file PREVIOUS_STILL_RUN=0 - ps -fe | grep "/usr/bin/sf_replay " | grep -v grep | grep sf_ > /dev/null - PREVIOUS_STILL_RUN1=$? +# ps -fe | grep "/usr/bin/sf_replay " | grep -v grep | grep sf_ > /dev/null + PREVIOUS_STILL_RUN1=1 ps -fe | grep "/usr/bin/sf_writer " | grep -v grep | grep sf_ > /dev/null PREVIOUS_STILL_RUN2=$? if [ ${PREVIOUS_STILL_RUN1} != 1 -o ${PREVIOUS_STILL_RUN2} != 1 ] @@ -62,17 +61,15 @@ echo -n "Waited Time : " echo $((date2-date1)) | awk '{print int($1/60)":"int($1%60)}' echo "Started actual retrieve : "`date` -for M in {00..31} -do - taskset -c ${coreAssociated_replay[10#${M}]} /usr/bin/sf_replay ${PROCESS_PID} ${DETECTOR} M${M} ${M} ${START_PULSE_ID} ${STOP_PULSE_ID} >> /tmp/detector_retrieve_replay.log & -done +#for M in {00..31} +#do +# taskset -c ${coreAssociated_replay[10#${M}]} /usr/bin/sf_replay ${PROCESS_PID} ${DETECTOR} M${M} ${M} ${START_PULSE_ID} ${STOP_PULSE_ID} >> /tmp/detector_retrieve_replay.log & +#done -taskset -c ${coreAssociated_writer} /usr/bin/sf_writer ${PROCESS_PID} ${OUTFILE} ${START_PULSE_ID} ${STOP_PULSE_ID} >> /tmp/detector_retrieve.log & +taskset -c ${coreAssociated} /usr/bin/sf_writer ${OUTFILE} /gpfs/photonics/swissfel/buffer/${DETECTOR} ${START_PULSE_ID} ${STOP_PULSE_ID} >> /tmp/detector_retrieve.log & wait -rm -rf /tmp/sf-replay-${PROCESS_PID}-* - date3=$(date +%s) echo "Finished : "`date` echo -n "Retrieve Time : " From 7be41c8ed44bc35bb0f27fc60cbf871870db7fcc Mon Sep 17 00:00:00 2001 From: Dmitry Ozerov Date: Wed, 3 Jun 2020 12:58:27 +0200 Subject: [PATCH 2/3] additional parameter for sf_writer - total number of modules to retrieve from buffer, to be able to test with smaller detectors --- scripts/retrieve_detector_data.sh | 16 +++++++++++++++- sf-writer/src/main.cpp | 11 +++++++---- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/scripts/retrieve_detector_data.sh b/scripts/retrieve_detector_data.sh index 5f2dfe4..d1b38c0 100755 --- a/scripts/retrieve_detector_data.sh +++ b/scripts/retrieve_detector_data.sh @@ -23,6 +23,20 @@ else OUTFILE=/gpfs/photonics/swissfel/buffer/test.${START_PULSE_ID}-${STOP_PULSE_ID}.h5 fi +case ${DETECTOR} in +'JF01T03V01') + NM=3 + ;; +'JF07T32V01') + NM=32 + ;; +'JF13T01V01') + NM=1 + ;; +*) + NM=1 +esac + #8 replay workers per core #coreAssociated_replay=(20 20 20 20 20 20 20 20 21 21 21 21 21 21 21 21 22 22 22 22 22 22 22 22 23 23 23 23 23 23 23 23) #4 replay workers per core @@ -66,7 +80,7 @@ echo "Started actual retrieve : "`date` # taskset -c ${coreAssociated_replay[10#${M}]} /usr/bin/sf_replay ${PROCESS_PID} ${DETECTOR} M${M} ${M} ${START_PULSE_ID} ${STOP_PULSE_ID} >> /tmp/detector_retrieve_replay.log & #done -taskset -c ${coreAssociated} /usr/bin/sf_writer ${OUTFILE} /gpfs/photonics/swissfel/buffer/${DETECTOR} ${START_PULSE_ID} ${STOP_PULSE_ID} >> /tmp/detector_retrieve.log & +taskset -c ${coreAssociated} /usr/bin/sf_writer ${OUTFILE} /gpfs/photonics/swissfel/buffer/${DETECTOR} ${NM} ${START_PULSE_ID} ${STOP_PULSE_ID} >> /tmp/detector_retrieve.log & wait diff --git a/sf-writer/src/main.cpp b/sf-writer/src/main.cpp index 76f4f79..1c8c233 100644 --- a/sf-writer/src/main.cpp +++ b/sf-writer/src/main.cpp @@ -60,13 +60,15 @@ void read_buffer( int main (int argc, char *argv[]) { - if (argc != 5) { + if (argc != 6) { cout << endl; cout << "Usage: sf_writer [output_file] [device]"; + cout << " [n_modules]"; cout << " [start_pulse_id] [stop_pulse_id]"; cout << endl; cout << "\toutput_file: Complete path to the output file." << endl; cout << "\tdevice: Name of detector." << endl; + cout << "\tn_modules: number of modules" << endl; cout << "\tstart_pulse_id: Start pulse_id of retrieval." << endl; cout << "\tstop_pulse_id: Stop pulse_id of retrieval." << endl; cout << endl; @@ -76,9 +78,10 @@ int main (int argc, char *argv[]) string output_file = string(argv[1]); const string device = string(argv[2]); - uint64_t start_pulse_id = (uint64_t) atoll(argv[3]); - uint64_t stop_pulse_id = (uint64_t) atoll(argv[4]); - size_t n_modules = 32; + size_t n_modules = atoi(argv[3]); + //size_t n_modules = 32; + uint64_t start_pulse_id = (uint64_t) atoll(argv[4]); + uint64_t stop_pulse_id = (uint64_t) atoll(argv[5]); uint64_t start_block = start_pulse_id / BUFFER_BLOCK_SIZE; uint64_t stop_block = stop_pulse_id / BUFFER_BLOCK_SIZE; From 76c09806c6947b0ed85bf114b4191e22943cf5ce Mon Sep 17 00:00:00 2001 From: Dmitry Ozerov Date: Wed, 3 Jun 2020 13:11:42 +0200 Subject: [PATCH 3/3] remove first files, then directories in cleanup --- scripts/delete_old_files_in_buffer.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/delete_old_files_in_buffer.sh b/scripts/delete_old_files_in_buffer.sh index 1d0db5a..ddcfed1 100755 --- a/scripts/delete_old_files_in_buffer.sh +++ b/scripts/delete_old_files_in_buffer.sh @@ -26,5 +26,5 @@ then exit fi -#find /gpfs/photonics/swissfel/buffer/JF* -type f -mmin +$((${hours}*60)) -delete +find /gpfs/photonics/swissfel/buffer/JF* -type f -mmin +$((${hours}*60)) -delete find /gpfs/photonics/swissfel/buffer/JF*/M* -type d -mmin +$((${hours}*60)) -delete