Question

Can anyone tell me , What is architectural pattern or way the best for using multi threading in High Load System? I have read about Multiplexing approach, Is there something else? Thanks.

Was it helpful?

Solution

I'm not exactly sure what you mean by High Load System, but I'll assume you mean a commercial server environment. The trend for high-end server chips these days is many replicated cores, each of which allows some degree of multi-threading. It's hard to say which multi-threading technique is best, since each offers advantages that may be more appropriate given a certain application workload.

Take the Sun UltraSPARC T1 for example. It has 8 cores, each of which can support up to 4 threads on a single shared pipeline. A core is able to switch between threads with no delay. This approach is called fine-grained temporal multi-threading: fine-grained because threads can switch every cycle, temporal because threads are interleaved across cycles.

Another approach, called Simultaneous Multithreading (SMT) allows instructions from multiple threads to be in the same pipeline stage at the same time. This technique requires that the processor be superscalar, that is, be able to issue multiple instructions to the pipeline in a single cycle. You will tend to not see as much of this in the server market because superscalar processors tend to be bigger and more power-hungry, not in line with the economies of scale that server farms and data centers require.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top