Threads and processes
Hi, I come from hardware design so I will put a question that is silly for software developers... I just want to clarify how threads relate to processes.
Just to be clear, since the T1 has four cores capable of running 8 threads each, for a total of 32 threads, if I am on a system that runs several processes a time and they are not multithreaded, will the T1 be able of running 32 processes at the same time or not?
Thanks,
Fabrizio
# 1
> Just to be clear, since the T1 has four cores capable
> of running 8 threads each, for a total of 32 threads
It's the other way 'round -- the T1 has eight physical processor cores capable of running four threads each. That's still a total of 32 threads, but there are twice as many execution resources available than in the configuration you mentioned :-).
> if I am on a system that runs several processes at a time
> and they are not multithreaded, will the T1 be capable
> of running 32 processes at the same time or not?
Yes, it certainly can. An operating system can schedule a different process on each thread; there is no requirement that two threads be from the same process.
...In fact, in the extreme case, I believe that the T1 could even run a different operating system on each thread!
Note that T1 is a throughput processor, so it can run and complete 32 threads of execution faster than any single- or dual-threaded processor out there. However, it probably won't complete an individualsingle-threaded program faster than a processor that is optimized for running single-threaded applications. (Think of the T1 as a 32-lane execution highway, not a single-lane racetrack.)
Java software tends to be thread-rich, so it shouldn't be any surprise that systems based on UltraSPARC T1 (so far, the SunFire T1000 and T2000) are breaking lots of records in Java benchmarks.