Results 1 to 9 of 9

Thread: Cost of synchronization on X5355

  1. #1
    Join Date
    Aug 2010
    Posts
    52

    Cost of synchronization on X5355

    I am making a C++ application. I am using Intel dual core T8300 machine is giving 20% to 40% increase in TPS over single threaded version. But when I have test the same application on the 8-core machine there it is not able to scaling. In fact TPS is going down, if the number of threads is extra than I have few questions here in that the first one is X5355 is more than three years old, does the technology has somewhat to do with this actions? Because that core2 duo is newer than Quad core X5355 and the application is scaling there. Will it create a few differences if I examine the application on Intel's newest quad core machines? And the second one is that Does OS has a few impacts on this? The Xeon X5355 machine is a Windows 2003 server and the Laptop is Windows XP professional one. Third one is that text processing Functionality completes within seconds. Is it inherently appropriate for parallel processing? So if you have any idea then please tell me.

  2. #2
    Join Date
    Aug 2009
    Posts
    652

    Re: Cost of synchronization on X5355

    It is answer of your first question in that if I say then perhaps, yes. Actually here the cost of the synchronization on older and the cost for synchronization on the older processor it is most likely higher. On the other hand, the major issue is probable "the size" of the processor. So if you test this on a latest 4 processor x 6 cores machine, and I hope +finally you will get the poor results. There are likely situations. First, you have a difficulty that has a incomplete parallelisation possible Second, you have some difficulty in implementation.

  3. #3
    Join Date
    May 2009
    Posts
    857

    Re: Cost of synchronization on X5355

    I have read you’re all the questions which you have asked I have an answer of your second question. If I say it theoretically then it is yes. Anyhow XP and Server 2003 is roughly the equal generation. There are major changes have done with the multicore since only Windows 7. Good program scales linearly on several OS. Deprived program may in some way get profit from improvements in an OS, other than I would not rely on that.

  4. #4
    Join Date
    Aug 2010
    Posts
    52

    Re: Cost of synchronization on X5355

    I have got the two answers of my questions and they are really helpful for me. And I just want to thanks all of them who are posted their reply regarding this issue. Actually I have one more question regarding this issue. In this I want to know that if the application synchronizes stuck between threads at the start up and towards the end using waits and notifies operations. Is this more luxurious on quad core machine than dual core?

  5. #5
    Join Date
    May 2009
    Posts
    837

    Re: Cost of synchronization on X5355

    Quote Originally Posted by Mycenaen View Post
    I have got the two answers of my questions and they are really helpful for me. And I just want to thanks all of them who are posted their reply regarding this issue. Actually I have one more question regarding this issue. In this I want to know that if the application synchronizes stuck between threads at the start up and towards the end using waits and notifies operations. Is this more luxurious on quad core machine than dual core?
    Most probable, yes. On the other hand I would advocate to implement a program, so that price of synchronization does not have an effect on running time. The explanation you gave it sounds pretty good. If running time is concerning in seconds, the program have to scale linearly on 2/4/8/16 cores.
    I believe you have a number of hidden problems in your code. Moderately it's false sharing. Are your data-structures padded to prevent false-sharing?

  6. #6
    Join Date
    Aug 2009
    Posts
    772

    Re: Cost of synchronization on X5355

    There is a solution of the third question actually I know most of the answer from here but whatever reply you got from others they are also right. Actually second is sufficient for parallelization. It is a problem dependent but in general seconds are able to parallelized to hundreds of cores. Thread startup/shutdown gets roughly ~1ms. As a result if run-time is as a minimum ~10ms, you are able to speedup it by multithreading. And note that you are able to do that threads in a tree manner rather than linearly. This will give you logN starup time.

  7. #7
    Join Date
    Oct 2005
    Posts
    924

    Re: Cost of synchronization on X5355

    Thanks to all who have posted their reply you will think that why I am thanking because I am also facing this issue but after your replies my problem get solve till some extent. Then I have looked my code again. Here I want to clarify few more points. They are that the application uses a thread pool. So there is no price of starting and stopping of threads just wait and report the cost. And after that I have got 800 TPS on my dual core so it takes around 1.25ms. And it is appropriate for two threads. If the program has an intrinsic difficulty why it is scaling on dual core.

  8. #8
    Join Date
    May 2009
    Posts
    760

    Re: Cost of synchronization on X5355

    I think it is not scaling on dual core. Because if it scale you get 100% speedup, But you obtain only 20%-40%. And scalability harms tend to demonstrate more on machines through higher number of cores. 1.25ms per work thing is so sufficient for parallelization. ~5 microseconds is the inferior bound. And yes if runtime start thread for you that it does not mean that it becomes costless. And it really does not matter who start the thread. Ok, I see, you are using Win32 Thread pool API. AFAIK, previous to Win7 Thread pool utilize solitary centralized work flow, which may be the bottleneck. Also Thread pool is a kernel API and it utilizes the kernel non-paged memory, so the cost of enqueue/dequeue process is fairly high, thus work items must be better to be value parallelization. You can consider the switching to user mode lightweight scheduling library similar to TBB.

  9. #9
    Join Date
    Aug 2010
    Posts
    29

    Re: Cost of synchronization on X5355

    Here is little bit different I am not using win32 thread pool API. I am with boost threads. It offers situation like variables. The pools are my own one. One thread is adding up work into the line and sends notification. Another thread waits on that the situation variable get the notification and gets the work to process. Towards the finish, the major thread fetches the local outcome of every thread context. There also the major thread has to stay for*the completion notification from other threads. I have analyzed it through VTune and it says the scalability matter*is for the reason of the recurrent synchronization due to*stay and notify towards the*end. But with no sort of synchronization the total parallel feature goes in vain. Can tell me ny of the alternative to notify and wait?

Similar Threads

  1. Need Suggestion for Repairing cost and Replacement cost for BIOS
    By Kaesini in forum Motherboard Processor & RAM
    Replies: 8
    Last Post: 04-02-2012, 11:41 AM
  2. Visual Report - Budget cost report without baseline cost
    By clauz in forum Microsoft Project
    Replies: 4
    Last Post: 04-02-2012, 01:39 AM
  3. Cash Flow Report Total Cost Does Not Match Gantt Total Cost?
    By kaorisdad in forum Microsoft Project
    Replies: 5
    Last Post: 26-08-2011, 06:20 AM
  4. Replies: 3
    Last Post: 29-06-2011, 09:01 PM
  5. Replies: 3
    Last Post: 07-08-2010, 12:03 PM

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Page generated in 1,638,311,727.45566 seconds with 17 queries