Athlon64 X2

Jay Scherrer jay at scherrer.com
Wed Jul 6 14:17:10 UTC 2005


On Wed, 2005-07-06 at 08:45 +0100, John Haxby wrote:
> Robert L Cochran wrote:
> 
> > Speaking as a beginner in C where can I find good sample code that 
> > does this? How can I programmatically check for multiple CPUs or a 
> > multicore CPU? How can I programmatically send one thread to a 
> > specific CPU or CPU core? Or do I just create multiple threads and let 
> > the OS decide where to send them?
> 
> The very nature of Linux means that the vast majority of programs don't 
> need to know or care about the number of CPUs in a system, whether 
> physically separate, dual core or hyperthreaded.  My relatively idle 
> machine has, at the moment, 127 processors and if it had more than one 
> processor the kernel would be cheerfully scheduling processes to all the 
> processors.   In many cases the only multi-threaded programming you need 
> is a collection of cooperating processes and all multiple CPUs give you 
> is a greater likelihood of race conditions.
> 
> If the programs you're writing would benefit from concurrency or 
> parallelism then you need to be concerned about multiple threads.  If 
> you're wondering what those terms mean then you need a beginning book on 
> threads (there are quite a lot out there for a variety of programming 
> languages, pick one you like the look of).   Once you're over the 
> beginning then you need to be concerned more with the pattens used for 
> multi-threaded programs: my personal recommendation would be for Doug 
> Lea's Java threads book -- I wish I could remember the title, but I 
> don't think he's written many books about thread patterns.   Yes, it's 
> Java, but the concepts are generic.
> 
> The last thing you were asking about is processor affinity.   If you're 
> hacking the kernel, you'll know about this.   Chances are you'll never 
> need it at a user level; although the pthreads interface does allow 
> setting CPU affinity for an individual thread.   There are supposed to 
> be a few pathological cases where assigning a thread to a specific 
> processor (or pool of processors) is the right thing to do.
> 
> jch
> 
Robert,
Try this link to AMD 64 development <http://www.devx.com/amd>.
I found it very interesting and responsive.

Jay Scherrer




More information about the amd64-list mailing list