Re: Treads in the new 6 core CPU from Intel

Tech-Archive recommends: Speed Up your PC by fixing your registry



You're using an Itanium? I didn't know they served any useful purpose beyond being space
heaters!

The reason they need 24GB of cache is the architecture is so poor its the only thing that
can save a fundamentally bad design.
joe

On Thu, 28 Feb 2008 16:27:36 -0800, "Roger Rabbit" <roger@xxxxxxxxxx> wrote:

Thanks, that is a great reference to many concepts that everyone needs to
pay attention to. My own research has been into locked threads, locked so
that critical segments such as are need here and there do not get thrashed.
The idea of smart pointers I had was to act as a vehicle for CPUs to look at
a common block of memory, such as an index and to be able to use it
simultaneously with row locking as needed so no problems surface. Not
everything is suitable to SQL, so this is why I worked so hard to make the
mutex class work recursively so it could be reentrant to allow my older
smart pointer template to be fixed to be thread safe.

Already I have noticed lags here and there in systems, likely due to mutex
IO locks. Main memory is slow and reading from disk takes forever. I prefer
to run Windows without a swap file, and use 2GB for 32-bit and 8GB++ for
64-bit systems. The overhead of 64-bit pointers needs the extra RAM.

Increasing the cache will help lots, the Itanium CPU has up to 24GB of
cache, so mainstream CPUs will likely see such offerings soon.

With more and more cores, there is a problem, one cache, one RAM controller.
The bottlenecks are going to be nasty.

With dual socket boards its possible and AMD does it with separate on-die
memory controllers, that do relieve the situation a bit. Intel's offerings
have memory run by a single Northbridge controller. Intel is likely to move
to on-die controllers soon, so that memory can be speeded up. Separate cache
memory is likely to help once designs can be developed.

"Doug Harrison [MVP]" <dsh@xxxxxxxx> wrote in message
news:uqmbs3hcvdvv4tbiqqr6n140mkt1ered3j@xxxxxxxxxx
On Tue, 26 Feb 2008 22:00:52 -0800, "Roger Rabbit" <roger@xxxxxxxxxx>
wrote:

The new 6 core CPU from Intel is getting me thinking about my development
of
software and working with hardware too. With 6 cores fighting for
resources,
it seems that there is going to be some serious lag issues working with
shared pointers and threads in large scale programming projects. The
problem
is with 6 threads all wanting access to the same object in memory such as
an
index to a database are going to put a lot of stress on memory. This is
because memory has not kept up with CPU advances.

Worse is going to be for data on a disk, threads are going to use I/O
locks
heavily and this will degrade performance when a transaction oriented
program with a large number of queries are operating. Consider a disk with
6ms access times, that 6 million times slower than a 1GHz processor. Now
with 6 threads all wanting something from the disk, its going to make life
complicated for a database developer.

I can see the possibility of a thread literally being starved to death for
CPU in some situations that could lead to serious synchronization
problems.

You should find this article interesting as a jumping-off point:

http://www.gotw.ca/publications/concurrency-ddj.htm

--
Doug Harrison
Visual C++ MVP
Joseph M. Newcomer [MVP]
email: newcomer@xxxxxxxxxxxx
Web: http://www.flounder.com
MVP Tips: http://www.flounder.com/mvp_tips.htm
.



Relevant Pages

  • Re: FPGA-based hardware accelerator for PC
    ... I know that in most cases the CPU ... that it contsins no cache, as BRAMs are too precious resources to be wasted ... The BRAMs are what define the opportunity, ... many threads with full associativity of memory lines using hashed MMU ...
    (comp.arch.fpga)
  • Re: Adjusting PC Hyperthreading for Spice Simulation
    ... Memory access taking hundreds of cycles? ... ago), 350 CPU cycles for a code cache miss was not atypical, but RAM ...
    (sci.electronics.design)
  • [-mm PATCH 10/10] Memory controller add documentation
    ... Differentiate between RSS and Page Cache - Paul Menage ... The infrastructure allows easy addition of other types of memory to control ... +c. Provides *zero overhead* for non memory controller users ... a container on hitting a limit, ...
    (Linux-Kernel)
  • Re: Cost of calling a standard library function
    ... It accesses/reads memory using esi 4 ... > safly move it within the cache, without having to go via ebx. ... try it the same thing on a different earlier CPU, ... should check it out...for "tight inner loop" stuff, ...
    (alt.lang.asm)
  • Re: Adjusting PC Hyperthreading for Spice Simulation
    ... Memory access taking hundreds of cycles? ... ago), 350 CPU cycles for a code cache miss was not atypical, but RAM ...
    (sci.electronics.design)