numericalalgorithmsgroup / pypop

Python Tools for the POP Metrics
https://numericalalgorithmsgroup.github.io/pypop/doc.html
Other
12 stars 5 forks source link

prv.profile_openmp_regions() on chopped traces gives ValueError: array length 21409 does not match index length 21410 #40

Open Jonathan3145 opened 3 years ago

Jonathan3145 commented 3 years ago

When calling prv.profile_openmp_regions() on chopped traces from hybrid (MPI + OpenMP with MPI comms inside the OpenMP parallel regions) and using the develop branch I get the following warning

/fserver/jonathanb/pop/pypop_stuff/pypop/pypop/prv.py:409: UserWarning: Incomplete OpenMP region found. This likely means the trace was cut through a region warn(

and then this error


ValueError Traceback (most recent call last)

in ----> 1 omp_region_stats = prv1.profile_openmp_regions() ~/pop/pypop_stuff/pypop/pypop/prv.py in profile_openmp_regions(self, no_progress, ignore_cache) 503 ) 504 --> 505 rank_stats[irank] = pd.DataFrame( 506 { 507 "Rank": np.full(region_starts.shape, irank), ~/miniconda3/envs/PyPop/lib/python3.9/site-packages/pandas/core/frame.py in __init__(self, data, index, columns, dtype, copy) 466 467 elif isinstance(data, dict): --> 468 mgr = init_dict(data, index, columns, dtype=dtype) 469 elif isinstance(data, ma.MaskedArray): 470 import numpy.ma.mrecords as mrecords ~/miniconda3/envs/PyPop/lib/python3.9/site-packages/pandas/core/internals/construction.py in init_dict(data, index, columns, dtype) 281 arr if not is_datetime64tz_dtype(arr) else arr.copy() for arr in arrays 282 ] --> 283 return arrays_to_mgr(arrays, data_names, index, columns, dtype=dtype) 284 285 ~/miniconda3/envs/PyPop/lib/python3.9/site-packages/pandas/core/internals/construction.py in arrays_to_mgr(arrays, arr_names, index, columns, dtype, verify_integrity) 76 # figure out the index, if necessary 77 if index is None: ---> 78 index = extract_index(arrays) 79 else: 80 index = ensure_index(index) ~/miniconda3/envs/PyPop/lib/python3.9/site-packages/pandas/core/internals/construction.py in extract_index(data) 409 f"length {len(index)}" 410 ) --> 411 raise ValueError(msg) 412 else: 413 index = ibase.default_index(lengths[0]) ValueError: array length 21409 does not match index length 21410