Dear Hen,
If I understand correctly, you would like to merge parts of your results before merging them info a final file containing all the runs.
For the moment, let’s forget about parallelization, I will come back to it later.
If you have several .bnn files containing the same detectors, but obtained with different simulations, you can merge these using the meshtk tool included in Flair.
Now, if you go to your Flair installation folder you will find the meshtk program (possibly it is a soft link to geoviewer/meshtk, depends on the version). When you type ./meshtk -h you will be able to see the manual on how to use the software. Among the displayed information you will find the following example:
./meshtk 7E12 run1.bnn:1-3 + 1e10 run2.bnn:2-4 -o sum.bnn
create a new 'sum.bnn' mesh data file where each bin will contain
the '7e12*run1[i,j,k] + 1e10*run2[i,j,k]' for detectors 1,2,3 and 2,3,4.
corresponding detectors should have the same dimensions
which works as explained. Be careful with the normalization! Since your results in the USRBIN scorings are usually per primary, you might want to keep this convention. In such case you would have to keep the multiplication factors normalized to 1. For example, if run1.bnn was obtained with 1e6 primaries and run2.bnn was obtained with 2e6 primaries, you would have to merge them like this
./meshtk 1e6/3e6 run1.bnn:1-3 + 2e6/3e6 run2.bnn:2-4 -o sum.bnn
so that your final results are still expressed per primary.
Now coming back to the parallelization.
Surely on a cluster you can submit a job which will run for example usbuw program on a subset of your results. Possibly you can even add it at the end of your fluka job submission script inside flair to be run only on the files from a given spawn (you would have to make sure that the files are then correctly moved from the cluster to your working directory).
You can also have a merging script in flair, in that case you would just ignore the fluka command that is normally passed to the script by flair as a command line argument. Please have a look at the Flair manual:
In a custom flair run script, the fluka command is passed with $* to the batch job script that is being created. This fluka command is created by flair based on the parameters chosen in the Run tab in flair, for example number of cycles, executable path etc.
In priciple, you could fish from this command the information about the subset of your runs and in your job script just run usbuw instead of fluka.
About the multi-threaded processing, I am not sure if it makes sense to be honest.
I hope this helps at least to an extend,
Let me know if you have any further questions
Cheers,
Jerzy