Add missing doc subsystem items for Nanos6
This commit is contained in:
parent
04edd9be2e
commit
7962b835f4
@ -57,6 +57,22 @@ As the zero value in Paraver gets hidden, we use the rank+1 value
|
|||||||
instead. Therefore the rank numeric value go from 1 to the number of
|
instead. Therefore the rank numeric value go from 1 to the number of
|
||||||
ranks (inclusive).
|
ranks (inclusive).
|
||||||
|
|
||||||
|
## Thread type view
|
||||||
|
|
||||||
|
This view shows the type of each thread:
|
||||||
|
|
||||||
|
- Main: the first thread executed before the main() function even
|
||||||
|
begins.
|
||||||
|
|
||||||
|
- Leader: helps with the execution of the main().
|
||||||
|
|
||||||
|
- Worker: the most common threads, these are in charge of queueing
|
||||||
|
and running tasks.
|
||||||
|
|
||||||
|
- External: used for external threads that attach to Nanos6 (currently
|
||||||
|
there are not in use).
|
||||||
|
|
||||||
|
|
||||||
## Subsystem view
|
## Subsystem view
|
||||||
|
|
||||||
The subsystem view attempts to provide a general overview of what Nanos6
|
The subsystem view attempts to provide a general overview of what Nanos6
|
||||||
@ -76,7 +92,7 @@ other code not belonging to the runtime belongs to the $`U`$ section.
|
|||||||
|
|
||||||
!!! remark
|
!!! remark
|
||||||
|
|
||||||
Every instruction of the runtime belongs to *exactly one section*.
|
Every instruction of the runtime belongs to *exactly one section*.
|
||||||
|
|
||||||
To determine the state of a thread, we look into the stack to see what
|
To determine the state of a thread, we look into the stack to see what
|
||||||
is the top-most instrumented section.
|
is the top-most instrumented section.
|
||||||
@ -107,12 +123,14 @@ The complete list of subsystems and sections is shown below.
|
|||||||
|
|
||||||
- **Scheduler subsystem**: Queueing and dequeueing ready tasks.
|
- **Scheduler subsystem**: Queueing and dequeueing ready tasks.
|
||||||
|
|
||||||
- **Serving tasks**: Inside the scheduler lock, serving tasks
|
- **Serving tasks**: Inside the scheduler lock, serving tasks to
|
||||||
to other threads
|
other workers.
|
||||||
|
|
||||||
- **Adding ready tasks**: Adding tasks to the scheduler queues,
|
|
||||||
but outside of the scheduler lock.
|
|
||||||
|
|
||||||
|
- **Adding ready tasks**: Adding tasks to the scheduler queues, but
|
||||||
|
outside of the scheduler lock.
|
||||||
|
|
||||||
|
- **Processing ready tasks**: Moving tasks from the lock-free add
|
||||||
|
queues to the scheduler queues.
|
||||||
|
|
||||||
- **Worker subsystem**: Actions that relate to worker threads, which
|
- **Worker subsystem**: Actions that relate to worker threads, which
|
||||||
continuously try to execute new tasks.
|
continuously try to execute new tasks.
|
||||||
@ -122,6 +140,24 @@ The complete list of subsystems and sections is shown below.
|
|||||||
|
|
||||||
- **Handling task**: Processing a recently assigned task.
|
- **Handling task**: Processing a recently assigned task.
|
||||||
|
|
||||||
|
- **Switching to another thread**: Switching to another thread via
|
||||||
|
switchTo().
|
||||||
|
|
||||||
|
- **Migrating CPU**: Changing the CPU of the current worker.
|
||||||
|
|
||||||
|
- **Suspending thread**: The current thread is in the suspend()
|
||||||
|
function.
|
||||||
|
|
||||||
|
- **Resuming another thread**: Inside the resume() function,
|
||||||
|
wakening another thread.
|
||||||
|
|
||||||
|
- **Memory**: Manages the allocation and deallocation of memory.
|
||||||
|
|
||||||
|
- **Allocating**: Allocating new memory. This can take very long
|
||||||
|
with jemalloc in the first calls from each thread.
|
||||||
|
|
||||||
|
- **Freeing**: Deallocating memory.
|
||||||
|
|
||||||
- **Dependency subsystem**: Manages the registration of task
|
- **Dependency subsystem**: Manages the registration of task
|
||||||
dependencies.
|
dependencies.
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user