Skip to content

Conversation

@wiechula
Copy link
Collaborator

No description provided.

@wiechula wiechula force-pushed the RawReaderCRU branch 2 times, most recently from 4253527 to 078851b Compare January 24, 2020 12:45
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
if (dh->dataDescription != o2::header::gDataDescriptionRawData) {
if (dh == nullptr || dh->dataDescription != o2::header::gDataDescriptionRawData) {

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When using custom completion policies, input slots might be invalid, the DataRef object contains nullptr.

I'm going to enhance the API in order to simplify implementations and to make it more intuitive. Actually the API has not been adopted to features which have been added.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

#2843 will silently fix the problem, invalid slots will be filtered out from the iteration

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the quick improvement. Meanwhile I also tested with the nullptr. This works. Thanks for the hint. Next I'll try to use TFID for event detection.

What would even be better is to get all data belonging to one TF in one call, instead of one call per link.

@wiechula wiechula force-pushed the RawReaderCRU branch 2 times, most recently from 783c7db to ed9014c Compare January 30, 2020 08:42
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi Jens, you need to refine the logic for the activeSector variable. This is a bit field which should be calculated once to signal all active sectors to the tracker which will then wait for a complete data set. Right now it looks like you are setting only the bit for the current sector which is propagated anyhow as the sector member of the header. So for one TF entity you need to calculate the active sectors before sending the first digit output, and then the active sector member variable in the header needs to be the same for all output parts of the TF.

I think that's why the tracker does not run when connected directly to the raw workflow. But if you have only one sector it should work. That could be a quick test for this hypothesis.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have checked the logic in the tracker. It is taking the activeSector bitfield face value, meaning that within one computing it will start the processing if it has data for each of the corresponding sectors. In that respect it should work if you always only set one bit for the current sector.

I propose the following logic: the bitfield should always have ones for bits, during sending the active sectors should be accumulated and when the last block is sent, this bitfield must be transmitted. Having all bits set (also those which actually do not correspond to sectors) will make the tracker wait for more data. Only if the transmitted active sector bitfield matches the buffered data, the tracker will start.

@wiechula wiechula force-pushed the RawReaderCRU branch 3 times, most recently from 2aa87d3 to acae234 Compare February 13, 2020 07:57
Comment on lines 149 to 150
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Using QuitRequest::All will terminate all devices and some of them might not have processed the data yet, should be `QuitRequest::Me``

@wiechula wiechula force-pushed the RawReaderCRU branch 4 times, most recently from c140e68 to 972d776 Compare February 28, 2020 11:25
@wiechula wiechula force-pushed the RawReaderCRU branch 3 times, most recently from 75437d9 to 06da42d Compare March 30, 2020 14:35
@wiechula wiechula marked this pull request as ready for review April 1, 2020 12:22
@wiechula
Copy link
Collaborator Author

wiechula commented Apr 1, 2020

@matthiasrichter , @shahor02 ,
I would like to merge this, since the development already contains quite many changes. There will need to be some more adoptions to the new DPL functionality.

wiechula added 12 commits April 1, 2020 14:50
Still many things to be improved...
o Add DPL device which converts raw data to digits
o Adapt Digit dump for in memory processing
* First running version of GBT -> digits -> tracks workflow
* Minor cleanup
* configurable sector input
* Allow for also treating Decoded raw data
* Slightly change data laylout
* Add workflow definiton for link based data decoding and
  convert it to digits
* Modify raw to digits workflow to allow for slecting the
  decoder type
@davidrohr
Copy link
Collaborator

The build for the GPU is failing for the well known CUDA/ROOT/Cmake incompatibility. This will be fixed with alisw/alidist#2157

@wiechula wiechula force-pushed the RawReaderCRU branch 2 times, most recently from c9418d1 to 5794211 Compare April 1, 2020 15:21
@shahor02
Copy link
Collaborator

shahor02 commented Apr 1, 2020

Hi @wiechula
just glancing looks ok but I did not went into details. If it is already tested, shall I simply merge it?

@davidrohr
Copy link
Collaborator

davidrohr commented Apr 1, 2020 via email

@wiechula
Copy link
Collaborator Author

wiechula commented Apr 1, 2020

Lets wait for the fix David mentioned, then it can be merged from my side. There are no changes that impact standard simulation / reconstruction. It is mainly raw data processing preparation for the pre-commissioning analysis and minor fixes.

@davidrohr
Copy link
Collaborator

Dependent PR has been merged, and CI is finally green. Merging since already approved

@davidrohr davidrohr merged commit 2715102 into AliceO2Group:dev Apr 3, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

4 participants