Click to See Complete Forum and Search --> : Core 2 duo problem


Cyanide
January 30th, 2009, 04:58 AM
Hi folks.

We sell a measurement system that use a framegrabber card to collect images, then performs a bunch of calculations.

There has never been any problems whatsoever with this this software we've used it on many different hardware configurations over the years. It is for instance running with very stable FPS of around 330 on a Celeron 2 GHz.

But now we have for the first time installed it on a Core 2 Duo (3GHz) and for some reason there software just goes nuts. FPS jumps 9, 100, 22 and so on. There is no reason we can think of that this computer configuration could cause any problems, other than the dual core processor.

Is there any risk whatsoever that a Core 2 duo could cause problems when running an application not developed for multiple CPU:s?

OS: Win XP SP3

MrViggy
January 30th, 2009, 12:00 PM
I suppose it's possible that when switching from one core to the other, a lot of data needs to be flushed from various caches, and re-loaded.

Try setting the affinity for your program to one "processor", and see if that fixes the issue. In the task manager, find the process under the "Processes" tab; right click; select "Set Affinity" and set it to run on one core.

Viggy

Arjay
February 2nd, 2009, 02:21 PM
Is your application multi-threaded?

Cyanide
February 3rd, 2009, 03:23 AM
Try setting the affinity for your program to one "processor", and see if that fixes the issue. In the task manager, find the process under the "Processes" tab; right click; select "Set Affinity" and set it to run on one core.Will try that, thanks!Is your application multi-threaded?Yes, the app is multi-threaded. But the threads are designed to wait for one another when necessary, so they should not mess things up...?

Arjay
February 3rd, 2009, 11:24 AM
Will try that, thanks!Yes, the app is multi-threaded. But the threads are designed to wait for one another when necessary, so they should not mess things up...?My guess is that the thread synchronization is flawed somehow. Often times thread synchronization issues aren't exposed when only tested on a single proc/single core machine. So if you've only tested on a single proc/single core machine prior to testing on the duo, I would bet that is the issue.

Make sure that any resources that are shared between threads are properly protected using a critical section, mutex or some other synchronization object.