I have compiled a custom IPP 7.0 DLL (written with MSVS 2010 C++) and I have also compiled a C# console application. This C# console application will call the functions in the custom IPP DLL.
The whole processing of the console application is as follow:
- Read data from some files
- Call the functions to operate on those data.
- Repeat step 1 and 2 for N times (the data for each iteration are different).
At the start of the console application, i will specify a processor core (Intel Xeon W3565 6-core) in which the console application will be running in.
The 1st scenario is that I will run 1 instance of the console application, running in one processor core. I will time the execution of the functions and add them up to get the total execution time.
The 2nd scenario is that i will run (n - 1) instances of the console applications, each running in a different processor core. I will also time the execution of the function and add them up to get the total execution time per console application.
I expect the timings for both scenario should be similar, but the 2nd scenario had a much longer execution time.
Could you advise what could be the possible reasons for these timings?