orcc/orcc — pull request #130 by alejoar (2014-10-06 19:11:01+00:00)
Title: PAPI (Performance API) integration in ORCC

Dear Devs,

I made a first version of what the integration would be.

How it works:
1- Above every actor that needs profiling an annotation is used like so:
@papify(SOME_EVENT, ANOTHER_EVENT)
actor someActor()

For example:
@papify(PAPI_TOT_INS, PAPI_L1_DCM, PAPI_TOT_CYC)
actor InterPrediction()

2- Above every action that needs profiling inside said actor the annotation @papify needs to be present. For example:
@papify
getFileSize: action ==>

3- In the "Run Configurations" menu, "Compilation Settings" tab, check the option "Include PAPI"

That's about it. It will generate csv files just like the current Papify tool does. I will look into generating an exdf output as Simone previously suggested in the next days.

Observations:
- I might have gone too far with the modification of the code. I didn't create any new class, everything is inside the original xtend file.
- Some coding might not follow the standards, this was my first time using xtend template expressions.

There are some things I didn't know how to do, for example:
- I modified the CMakelists.txt file in the orcc-native directory manually adding the PAPI library, this should be conditional when the PAPI option is set.
- The same for the new files "eventLib.c" and "eventLib.h". These two were just added to the corresponding directories without condition

I will open a pull request so that you can review the code and express your opinions.

Antoine: Thank you for the explanations.

Regards,
Alejo

PS: I'm not sure why my own tool "papiplot" is not working right now with the output generated, I will look into it.