Fast Communication and User Level Parallelism. Howard Marron. Introduction. We have studied systems that have attempted to build transparent layers below the application that created properties like replication and group communication.
We have studied systems that have attempted to build transparent layers below the application that created properties like replication and group communication.
We will look at some areas where more control has been given to the user on parallelism
Do we want threads and if so where should we implement them?
Latency in μsec on a Firefly system
Thread switching does not involve the kernel:
Scheduling can be application specific: choose the best algorithm.
ULTs can run on any OS. Only needs a thread library
Most system calls are blocking and the kernel blocks processes. So all threads within the process will be blocked
The kernel can only assign processes to processors. Two threads within the same process cannot run simultaneously on two processorsAdvantages and problems of ULT
The kernel knows what the processing environment is and will assign threads accordingly.
Blocking is done on a thread level
Kernel routines can be multithreaded
Thread switching within the same process involves the kernel. We have 2 mode switches per thread switch.
This results in a significant slow down in thread switches within same processAdvantages and inconveniences of KLT
Kernel runs an instance of the
scheduler on each processor.
Wake up thread
There is no need to schedule
Threads here, the scheduler
Can be told to just switch
The two threads
Copy to Stack
Copy to Stack