ovni/doc/user/emulation/events.md
Rodrigo Arias Mallo 815633221d Port nOS-V model to task bodies
The nOS-V events are modified in two ways: 1) to create a parallel task
the new VTC event must be used and 2) all task events for both normal
(VTc) and parallel (VTC) tasks require an extra argument in the payload
to indicate the body id. As a consequence, the nOS-V model version is
now increased to 2.0.0.

Additionally, all the channel PRV flags are set to PRV_SKIPDUPNULL, so
duplicates are only emitted if they are not null. It solves the problem
when a task switches to another task with the same body id.

A new Paraver configuration is added for the body id.
2024-03-13 17:07:26 +01:00

30 KiB

Emulator events

This is a exhaustive list of the events recognized by the emulator. Built on Mar 13 2024.

Model nanos6

List of events for the model nanos6 with identifier 6 at version 1.0.0:

6Yc+(u32 typeid, str label)
creates task type %{typeid} with label "%{label}"
6Tc(u32 taskid, u32 typeid)
creates task %{taskid} with type %{typeid}
6Tx(u32 taskid)
executes the task %{taskid}
6Te(u32 taskid)
ends the task %{taskid}
6Tp(u32 taskid)
pauses the task %{taskid}
6Tr(u32 taskid)
resumes the task %{taskid}
6W[
enters worker main loop, looking for tasks
6W]
leaves worker main loop, looking for tasks
6Wt
begins handling a task via handleTask()
6WT
ceases handling a task via handleTask()
6Ww
begins switching to another worker via switchTo()
6WW
ceases switching to another worker via switchTo()
6Wm
begins migrating the current worker to another CPU
6WM
ceases migrating the current worker to another CPU
6Ws
begins suspending the worker via suspend()
6WS
ceases suspending the worker via suspend()
6Wr
begins resuming another worker via resume()
6WR
ceases resuming another worker via resume()
6Wg
enters sponge mode (absorbing system noise)
6WG
leaves sponge mode (absorbing system noise)
6W*
signals another worker to wake up
6Pp
sets progress state to Progressing
6Pr
sets progress state to Resting
6Pa
sets progress state to Absorbing
6C[
begins creating a new task
6C]
ceases creating a new task
6U[
begins submitting a task via submitTask()
6U]
ceases submitting a task via submitTask()
6F[
begins spawning a function via spawnFunction()
6F]
ceases spawning a function via spawnFunction()
6t[
enters the task body
6t]
leaves the task body
6O[
begins running the task body as taskfor collaborator
6O]
ceases running the task body as taskfor collaborator
6Ma
starts allocating memory
6MA
stops allocating memory
6Mf
starts freeing memory
6MF
stops freeing memory
6Dr
begins registration of task dependencies
6DR
ceases registration of task dependencies
6Du
begins unregistration of task dependencies
6DU
ceases unregistration of task dependencies
6S[
begins scheduler serving mode
6S]
ceases scheduler serving mode
6Sa
begins submitting a ready task via addReadyTask()
6SA
ceases submitting a ready task via addReadyTask()
6Sp
begins processing ready tasks via processReadyTasks()
6SP
ceases processing ready tasks via processReadyTasks()
6S@
self assigns itself a task
6Sr
receives a task from another thread
6Ss
sends a task to another thread
6Bb
begins blocking the current task
6BB
ceases blocking the current task
6Bu
begins unblocking a task
6BU
ceases unblocking a task
6Bw
enters a task wait
6BW
leaves a task wait
6Bf
enters a wait for
6BF
leaves a wait for
6He
begins execution as external thread
6HE
ceases execution as external thread
6Hw
begins execution as worker
6HW
ceases execution as worker
6Hl
begins execution as leader
6HL
ceases execution as leader
6Hm
begins execution as main thread
6HM
ceases execution as main thread

Model nodes

List of events for the model nodes with identifier D at version 1.0.0:

DR[
begins registering task accesses
DR]
ceases registering task accesses
DU[
begins unregistering task accesses
DU]
ceases unregistering task accesses
DW[
enters a blocking condition (waiting for an If0 task)
DW]
leaves a blocking condition (waiting for an If0 task)
DI[
begins the inline execution of an If0 task
DI]
ceases the inline execution of an If0 task
DT[
enters a taskwait
DT]
leaves a taskwait
DC[
begins creating a task
DC]
ceases creating a task
DS[
begins submitting a task
DS]
ceases submitting a task
DP[
begins spawning a function
DP]
ceases spawning a function

Model kernel

List of events for the model kernel with identifier K at version 1.0.0:

KO[
out of CPU
KO]
back to CPU

Model mpi

List of events for the model mpi with identifier M at version 1.0.0:

MUf
enters MPI_Finalize()
MUF
leaves MPI_Finalize()
MUi
enters MPI_Init()
MUI
leaves MPI_Init()
MUt
enters MPI_Init_thread()
MUT
leaves MPI_Init_thread()
MW[
enters MPI_Wait()
MW]
leaves MPI_Wait()
MWa
enters MPI_Waitall()
MWA
leaves MPI_Waitall()
MWs
enters MPI_Waitsome()
MWS
leaves MPI_Waitsome()
MWy
enters MPI_Waitany()
MWY
leaves MPI_Waitany()
MT[
enters MPI_Test()
MT]
leaves MPI_Test()
MTa
enters MPI_Testall()
MTA
leaves MPI_Testall()
MTy
enters MPI_Testany()
MTY
leaves MPI_Testany()
MTs
enters MPI_Testsome()
MTS
leaves MPI_Testsome()
MS[
enters MPI_Send()
MS]
leaves MPI_Send()
MSb
enters MPI_Bsend()
MSB
leaves MPI_Bsend()
MSr
enters MPI_Rsend()
MSR
leaves MPI_Rsend()
MSs
enters MPI_Ssend()
MSS
leaves MPI_Ssend()
MR[
enters MPI_Recv()
MR]
leaves MPI_Recv()
MRs
enters MPI_Sendrecv()
MRS
leaves MPI_Sendrecv()
MRo
enters MPI_Sendrecv_replace()
MRO
leaves MPI_Sendrecv_replace()
MAg
enters MPI_Allgather()
MAG
leaves MPI_Allgather()
MAr
enters MPI_Allreduce()
MAR
leaves MPI_Allreduce()
MAa
enters MPI_Alltoall()
MAA
leaves MPI_Alltoall()
MCb
enters MPI_Barrier()
MCB
leaves MPI_Barrier()
MCe
enters MPI_Exscan()
MCE
leaves MPI_Exscan()
MCs
enters MPI_Scan()
MCS
leaves MPI_Scan()
MDb
enters MPI_Bcast()
MDB
leaves MPI_Bcast()
MDg
enters MPI_Gather()
MDG
leaves MPI_Gather()
MDs
enters MPI_Scatter()
MDS
leaves MPI_Scatter()
ME[
enters MPI_Reduce()
ME]
leaves MPI_Reduce()
MEs
enters MPI_Reduce_scatter()
MES
leaves MPI_Reduce_scatter()
MEb
enters MPI_Reduce_scatter_block()
MEB
leaves MPI_Reduce_scatter_block()
Ms[
enters MPI_Isend()
Ms]
leaves MPI_Isend()
Msb
enters MPI_Ibsend()
MsB
leaves MPI_Ibsend()
Msr
enters MPI_Irsend()
MsR
leaves MPI_Irsend()
Mss
enters MPI_Issend()
MsS
leaves MPI_Issend()
Mr[
enters MPI_Irecv()
Mr]
leaves MPI_Irecv()
Mrs
enters MPI_Isendrecv()
MrS
leaves MPI_Isendrecv()
Mro
enters MPI_Isendrecv_replace()
MrO
leaves MPI_Isendrecv_replace()
Mag
enters MPI_Iallgather()
MaG
leaves MPI_Iallgather()
Mar
enters MPI_Iallreduce()
MaR
leaves MPI_Iallreduce()
Maa
enters MPI_Ialltoall()
MaA
leaves MPI_Ialltoall()
Mcb
enters MPI_Ibarrier()
McB
leaves MPI_Ibarrier()
Mce
enters MPI_Iexscan()
McE
leaves MPI_Iexscan()
Mcs
enters MPI_Iscan()
McS
leaves MPI_Iscan()
Mdb
enters MPI_Ibcast()
MdB
leaves MPI_Ibcast()
Mdg
enters MPI_Igather()
MdG
leaves MPI_Igather()
Mds
enters MPI_Iscatter()
MdS
leaves MPI_Iscatter()
Me[
enters MPI_Ireduce()
Me]
leaves MPI_Ireduce()
Mes
enters MPI_Ireduce_scatter()
MeS
leaves MPI_Ireduce_scatter()
Meb
enters MPI_Ireduce_scatter_block()
MeB
leaves MPI_Ireduce_scatter_block()

Model ovni

List of events for the model ovni with identifier O at version 1.0.0:

OAr(i32 cpu, i32 tid)
changes the affinity of thread %{tid} to CPU %{cpu}
OAs(i32 cpu)
switches it's own affinity to the CPU %{cpu}
OB.
emits a burst event to measure latency
OHC(i32 cpu, u64 tag)
creates a new thread on CPU %{cpu} with tag %#llx{tag}
OHc
enters the Cooling state (about to be paused)
OHe
ends the execution
OHp
pauses the execution
OHr
resumes the execution
OHw
enters the Warming state (about to be running)
OHx(i32 cpu, i32 tid, u64 tag)
begins the execution on CPU %{cpu} created from %{tid} with tag %#llx{tag}
OCn(i32 cpu)
informs there are %{cpu} CPUs
OF[
begins flushing events to disk
OF]
ceases flushing events to disk
OU[
enters unordered event region
OU]
leaves unordered event region

Model openmp

List of events for the model openmp with identifier P at version 1.1.0:

PBb
begins plain barrier
PBB
ceases plain barrier
PBj
begins join barrier
PBJ
ceases join barrier
PBf
begins fork barrier
PBF
ceases fork barrier
PBt
begins tasking barrier
PBT
ceases tasking barrier
PBs
begins spin wait
PBS
ceases spin wait
PIa
begins critical acquiring
PIA
ceases critical acquiring
PIr
begins critical releasing
PIR
ceases critical releasing
PI[
begins critical section
PI]
ceases critical section
PWd
begins distribute
PWD
ceases distribute
PWy
begins dynamic for init
PWY
ceases dynamic for init
PWc
begins dynamic for chunk
PWC
ceases dynamic for chunk
PWs
begins static for
PWS
ceases static for
PWe
begins section
PWE
ceases section
PWi
begins single
PWI
ceases single
PTa
begins task allocation
PTA
ceases task allocation
PTc
begins checking task dependencies
PTC
ceases checking task dependencies
PTd
begins duplicating a task
PTD
ceases duplicating a task
PTr
begins releasing task dependencies
PTR
ceases releasing task dependencies
PT[
begins running a task
PT]
ceases running a task
PTi
begins running an if0 task
PTI
ceases running an if0 task
PTs
begins scheduling a task
PTS
ceases scheduling a task
PTg
begins a taskgroup
PTG
ceases a taskgroup
PTt
begins a taskwait
PTT
ceases a taskwait
PTw
begins waiting for taskwait dependencies
PTW
ceases waiting for taskwait dependencies
PTy
begins a taskyield
PTY
ceases a taskyield
PA[
enters the attached state
PA]
leaves the attached state
PMi
begins microtask internal
PMI
ceases microtask internal
PMu
begins microtask user code
PMU
ceases microtask user code
PH[
begins worker loop
PH]
ceases worker loop
PCf
begins fork call
PCF
ceases fork call
PCi
begins initialization
PCI
ceases initialization

Model tampi

List of events for the model tampi with identifier T at version 1.0.0:

TCi
starts issuing a non-blocking communication operation
TCI
stops issuing a non-blocking communication operation
TGc
starts checking pending requests from the global array
TGC
stops checking pending requests from the global array
TLi
enters the library code at an API function
TLI
leaves the library code at an API function
TLp
enters the library code at a polling function
TLP
leaves the library code at a polling function
TQa
starts adding a ticket/requests to a queue
TQA
stops adding a ticket/requests to a queue
TQt
starts transferring tickets/requests from queues to global array
TQT
stops transferring tickets/requests from queues to global array
TRc
starts processsing a completed request
TRC
stops processsing a completed request
TRt
starts testing a single request with MPI_Test
TRT
stops testing a single request with MPI_Test
TRa
starts testing several requests with MPI_Testall
TRA
stops testing several requests with MPI_Testall
TRs
starts testing several requests with MPI_Testsome
TRS
stops testing several requests with MPI_Testsome
TTc
starts creating a ticket linked to a set of requests and a task
TTC
stops creating a ticket linked to a set of requests and a task
TTw
starts waiting for a ticket completion
TTW
stops waiting for a ticket completion

Model nosv

List of events for the model nosv with identifier V at version 2.0.0:

VTc(u32 taskid, u32 typeid)
creates task %{taskid} with type %{typeid}
VTC(u32 taskid, u32 typeid)
creates parallel task %{taskid} with type %{typeid}
VTx(u32 taskid, u32 bodyid)
executes the task %{taskid} with bodyid %{bodyid}
VTe(u32 taskid, u32 bodyid)
ends the task %{taskid} with bodyid %{bodyid}
VTp(u32 taskid, u32 bodyid)
pauses the task %{taskid} with bodyid %{bodyid}
VTr(u32 taskid, u32 bodyid)
resumes the task %{taskid} with bodyid %{bodyid}
VYc+(u32 typeid, str label)
creates task type %{typeid} with label "%{label}"
VSr
receives a task from another thread
VSs
sends a task to another thread
VS@
self assigns itself a task
VSh
enters the hungry state, waiting for work
VSf
is no longer hungry
VS[
enters scheduler server mode
VS]
leaves scheduler server mode
VU[
starts submitting a task
VU]
stops submitting a task
VMa
starts allocating memory
VMA
stops allocating memory
VMf
starts freeing memory
VMF
stops freeing memory
VAr
enters nosv_create()
VAR
leaves nosv_create()
VAd
enters nosv_destroy()
VAD
leaves nosv_destroy()
VAs
enters nosv_submit()
VAS
leaves nosv_submit()
VAp
enters nosv_pause()
VAP
leaves nosv_pause()
VAy
enters nosv_yield()
VAY
leaves nosv_yield()
VAw
enters nosv_waitfor()
VAW
leaves nosv_waitfor()
VAc
enters nosv_schedpoint()
VAC
leaves nosv_schedpoint()
VAa
enters nosv_attach()
VAA
leaves nosv_attach()
VAe
enters nosv_detach()
VAE
leaves nosv_detach()
VHa
enters nosv_attach()
VHA
leaves nosv_dettach()
VHw
begins execution as worker
VHW
ceases execution as worker
VHd
begins execution as delegate
VHD
ceases execution as delegate