Atom Atom feed

Question: Concurrent Programming On Dual-Core Machines

I just have a simple question for all you dual-core machine owners: Has owning and developing on a dual-core machine helped with your concurrent programming?

Let me be specific: What would you miss the most, as a programmer who has to deal with concurrent programming issues, if, through some magic, I took away one of your cores and double the speed of your remaining core?

I know the theoretical answer to the question. But since I don't have a dual-core machine yet, I don't know how everything translates in practice.



Re: Question: Concurrent Programming On Dual-Core Machines

Remember back when we worked on the financial application together. We tested on both dual-core and multi-processor machines. We saw a number of issues on the multi-processor machines that we never saw on the dual-core machines. So in terms of testing concurrent programs, it is important to have a multi-processor machine (not just a dual-core machine).

Re: Question: Concurrent Programming On Dual-Core Machines

Testing to reveal bugs that will never manifest on a single core is the one thing that I thought of.

Anything else? Anything that people do actively during development?

Re: Question: Concurrent Programming On Dual-Core Machines

Under heavy load, check that all your processors and cores are used at the max. Otherwise, it may mean you've got some big synchronization or lock issues which makes your threads wait for something. Careful synchronization and lock handling is required and under utilization of the CPU(s)/core(s) may show up on those kind of machines.

Re: Question: Concurrent Programming On Dual-Core Machines

I know I'm repeating what Kevin said, but when we were having our Java Concurrency lunches at OCI, we did write some example Java code that worked perfectly on my old single core CPU, but failed consistently on a dual-core processor.

Re: Question: Concurrent Programming On Dual-Core Machines

We develop a suite of applications which are highly concurrent. We develop on a mixture of Windows and Solaris, both single-processor, multiprocessor and dual-core.

On many occasions we have experienced test failures which are bound to number of processing cores, often related to timing between threads. On machines with several cores or processors the execution order indeterminism surprise us regularly.

Re: Question: Concurrent Programming On Dual-Core Machines

My experience with an 8-core box is that it becomes much more difficult (i.e., so far not possible) to saturate the CPU with a single operating system process than with two or four cores. Multicore computing will asymptotically approach distributed computing as the number of cores increases.

Add a comment Send a TrackBack