Add an "external tool" or "profiling tool" option to upcxx-run

Issue #162 resolved
Mathias Jacquelin created an issue

Upcxx-run currently checks if the program being run is a upcxx program or not. The issue is that it makes it impossible to easily run profiling tools. I think it would be a valuable addition to have an option to let the user provide a non-upcxx tool (and its arguments) to a "profiler" option:

upcxx -np 2 -N 2 -profiler "amplxe-cl -collect hotspots -- " ./my_upcxx_program my_arguments

Comments (6)

  1. Paul Hargrove

    GASNet's spawners (most or all?) iterate over the arguments looking for one that is a GASNet executable, rather than requiring that it be the first non-option argument. So, the following should just work already at the GASNet level without any special arguments:

    gasnetrun-ibv -np 2 -N 2 amplxe-cl -collect hotspots -- ./my_upcxx_program my_arguments

  2. Mathias Jacquelin reporter

    Thank you Paul, I did not know that. However, upcxx-run SHOULD have the exact same behavior. Upcxx users don't necessarily desire to know anything other than upcxx-run If gasnet is already doing it, perhaps it is not a very hard fix. I can give it a try if it's "basic" python

  3. Paul Hargrove

    Mathias,

    I agree this is a valid feature request.
    I just wanted to clarify that GASNet was already prepared to do its part.

  4. Dan Bonachea

    I second this request that upcxx-run follow the same approach taken by gasnetrun and upcrun. The Python code should iterate through the command line arguments left-to-right until it finds one that resolves to a UPC++ executable, instead of requiring it to be the first non-option argument.

    Mathias - do you have the time and Python expertise to look into making this change? Our feature freeze is tomorrow..

  5. Mathias Jacquelin reporter

    I have written something to that effect but haven't tested it yet. I'll make a pull request ASAP.

  6. Log in to comment