Previous | Next --- Slide 54 of 66
Back to Lecture Thumbnails
Nicki_Minaj

One thing I've been thinking about is what happens when the processor suddenly loses power. How does multi-threading handle fault-tolerance?

In single thread sequential execution we could employ some sort of logging system that stores intermediate information in a memory location that gets used by each thread. If we kept this system for multi-threading, we would need to simultaneously log the progress of each running thread which may or may not involve a significant amount of memory.

rohit

@Nicki_Minaj If the processor lost power would the memory system still have power? I think logging of any kind at the processor level would be really bad for performance.

TDollasAKATMoneys

I agree with rohit. The idea of logging itself seems reasonable if bad things happen, but I think the performance decrease from logging, especially with multiple threads, would not make it worth it.

arjunh

Just as a side-note, this class doesn't really focus too much on error-logging and recovery; that's more of a computer architecture consideration. We generally assume that the components holding our system together (the various memory bus lines, the caches, the prefetchers, the GPU's, etc) all work as expected.

rhnil

I think it would be difficult (or nearly impossible) for the processor to provide error recovery capabilities, especially in very bad cases such as power failure. Logging and error recovery can be handled from a higher level, such as in the OS, file systems or database systems, which rely on the abstraction rather than the detailed implementation of processors. So multi-threading does not add fundamental difficulties since it provides much the same abstraction as single-core processors.