Known issues for Python profiling
There are a few known issues for Python profiling.
- Arm® MAP requires a significant amount of time to analyze samples when
profiling a Python script that imports modules which use OpenBLAS,
such as NumPy. This is caused by the lack of unwind information in
OpenBLAS. This results in
partial trace
nodes being displayed in Arm® MAP.
- mpi4py uses some MPI functions that were introduced in MPI version 3.
For example
MPI_Mrecv
. Arm® MAP does not collect metrics from these
functions, therefore MPI metrics for mpi4py will be inaccurate. To
workaround this, use a custom Python MPI wrapper that only uses
functions that were available before MPI version 3.
- When using reverse connect (
–connect
) and quick start (–start
) in
conjunction, the full path to the Python application must be provided.
- The Anaconda Python 3.6.x interpreter is aggressively optimized. This
causes multiple startup issues when profiling with Arm® MAP and is not
supported.
- Arm® MAP is known to fail at startup with “python did not start properly” for some versions of Python like Intel Python distributed with the Intel Compiler. This can be worked around by setting the environment variable
ALLINEA_DISABLE_BREAK_BEFORE_MAIN_PROLOGUE=1
.