Re: Treads in the new 6 core CPU from Intel
- From: Joseph M. Newcomer <newcomer@xxxxxxxxxxxx>
- Date: Sat, 01 Mar 2008 21:51:51 -0500
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 toJoseph M. Newcomer [MVP]
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
email: newcomer@xxxxxxxxxxxx
Web: http://www.flounder.com
MVP Tips: http://www.flounder.com/mvp_tips.htm
.
- Prev by Date: Re: File Explorer control
- Next by Date: Re: messabebox(...) v afxmessanebox
- Previous by thread: Re: Treads in the new 6 core CPU from Intel
- Next by thread: Re: Deselecting all ListBox-Items
- Index(es):
Relevant Pages
|