How Parallelism Affects Behavior
A parallel program consists of some number of processes, each involving some number of threads. Processes fall into two categories, depending on when they are created:
• Initial process
A pre-existing process from the normal run-time environment (that is, created outside TotalView), or one that was created as TotalView loaded the program.
• Spawned process
A new process created by a process executing under CLI control.
TotalView assigns an integer value to each individual process and thread under its control. This process/thread identifier can be the system identifier associated with the process or thread. However, it can be an arbitrary value created by the CLI. Process numbers are unique over the lifetime of a debugging session; in contrast, thread numbers are only unique while the process exists.
Process/thread notation lets you identify the component that a command targets. For example, if your program has two processes, and each has two threads, four threads exist:
Thread 1 of process 1
Thread 2 of process 1
Thread 1 of process 2
Thread 2 of process 2
You identify the four threads as follows:
1.1—Thread 1 of process 1
1.2—Thread 2 of process 1
2.1—Thread 1 of process 2
2.2—Thread 2 of process 2