Previous | Next --- Slide 49 of 88
Back to Lecture Thumbnails
trip

I understand that hardware multithreading is different than the multithreading we might have done in CS110 or CS140, but do processors have similar scheduling techniques for picking the next thread to run as they would in an OS? In 140 we spent time discussing the pros and cons of a few techniques like round robin and MLFQ's, but do processors schedule hardware threads in a similar way? In the examples from class, it seemed like a parallelizable problems could have their data ranges split amongst hardware threads for easy interleaving, and although throughput was maximized, no single job got done quickly. I imagine this isn't always the case, so if hardware multithreading is used on a task that isn't so parallelizable (second time I've used that word!), is round-robin still the best way to get things done? Is there a standard scheduling algorithm for hardware threads?

Please log in to leave a comment.