If a process fails in the background, bash ignores it even when running
with set -e. To address it, we store a token in a file per each rank,
which only gets written when each process finishes properly. Then we
make sure that each rank has completed successfully, otherwise we fail
the test.
Executing the taskyield in a loop causes the runtime to maximize the
probablily that we end up running the task again before we have the
chance to emit the PPe event, so making the emulator panic as this
breaks the current OpenMP task model.
OpenMPI doesn't work on jungle machines unless it is properly
configured. We should eventually move to the same configuration that we
use for packages in jungle.
Ensure that we can successfully process a trace that has nOS-V threads
without the can_breakdown flag set to true. We simply don't enable the
nOS-V breakdown, but other models can enable it.
As we now have OpenMP and nOS-V models for breakdown, we may have the
situation in which nOS-V traces don't have enough events to enable the
breakdown model, but we do on OpenMP. Rather than stopping, disable the
nOS-V model with a warning and continue.
Ensure we can call nosv_yield in a loop without generating a lot of
events when using the level 3 instrumentation level. Noisy events are
now moved to level 4, so they shouldn't appear on the trace.
Additionally, make sure that the noisy events appear on level 4.
The events are emitted when we enter the scheduler with the non-blocking
flag, which is usually the case when using the nosv_yield and
nosv_schedpoint API functions.
See: https://gitlab.bsc.es/nos-v/nos-v/-/merge_requests/155
A pointer may not fit in a off_t type, so we first cast it to intptr_t
which must be able to hold it, then compute the diff which should fit in
a off_t and perform the cast.
Reported-by: Miquel Vidal Piñol <miquel.vidal@bsc.es>
With large values of clocks, awk starts to lose precision due handling
the time as floating point values, which causes the test to fail. By
always setting the clock of the events to a known value we can just
compare the outcome as-is, without performing any arithmetic operation.
Fixes: https://pm.bsc.es/gitlab/rarias/ovni/-/issues/205