Page 2 of 8 FirstFirst 1234 ... LastLast
Results 11 to 20 of 72

Thread: LLVM's Clang Compiler Is Now C++11 Feature Complete

  1. #11
    Join Date
    Nov 2007
    Posts
    1,353

    Default

    I don't think it matters how much future proofing is done, I don't think we'll ever see desktop applications using hundreds of threads. Hell it is so difficult as to be nearly impossible to code for 8 threads in the vast majority of existing code bases, let alone hundreds.

    Hundreds of threads.... Seems almost like a joke right now.

    EDIT: It is in the nature of c/c++. The way it is made makes it difficult to code massively parallel workloads. If hundreds of threads will ever be possible, I doubt very very much that c/c++ is going to be the language that it is achieved on.
    Last edited by duby229; 04-19-2013 at 07:26 PM.

  2. #12
    Join Date
    Aug 2012
    Location
    Pennsylvania, United States
    Posts
    1,877

    Default

    Quote Originally Posted by duby229 View Post
    I don't think it matters how much future proofing is done, I don't think we'll ever see desktop applications using hundreds of threads. Hell it is so difficult as to be nearly impossible to code for 8 threads in the vast majority of existing code bases, let alone hundreds.

    Hundreds of threads.... Seems almost like a joke right now.
    Its only hard right now because we lack the programming language to make it easy for us. I have no doubt that as time goes on a programming language will come along that will make multi-threading desktop apps very common and easy.

  3. #13
    Join Date
    Nov 2007
    Posts
    1,024

    Default

    Quote Originally Posted by rhdunn View Post
    So GCC reached full C++11 language support in 4.8.1, while Clang will reach it in 3.3. Either way, both open source compilers are leagues ahead of their proprietary counterparts.
    Only if you think proprietary compilers start and end with Microsoft and Intel. There are others, though much less frequently used.

  4. #14
    Join Date
    Jun 2011
    Posts
    17

    Default

    I don't see why you couldn't do something like render a video with hundreds of threads. Each thread would just render different frames. Assuming of course you have hundreds of cores.

  5. #15
    Join Date
    Aug 2012
    Location
    Pennsylvania, United States
    Posts
    1,877

    Default

    Quote Originally Posted by jumico View Post
    I don't see why you couldn't do something like render a video with hundreds of threads. Each thread would just render different frames. Assuming of course you have hundreds of cores.
    Interesting idea for it, though you are right. 10 cores? Awesome! Each core gets 10% of the project to work with. Or every 10th frame to render. Works well since there's no race conditions, no frame is dependent on the previous frame they are all co-mingled.

  6. #16
    Join Date
    Jul 2010
    Posts
    488

    Default

    Quote Originally Posted by Ericg View Post
    Interesting idea for it, though you are right. 10 cores? Awesome! Each core gets 10% of the project to work with. Or every 10th frame to render. Works well since there's no race conditions, no frame is dependent on the previous frame they are all co-mingled.
    If you are using a somewhat decent video codec frames will depend on previous frames (P-frames). Usually you will even have delta frames that depend on previous and following frames (B-frames). This doesn't really scale towards hundreds of threads.

  7. #17
    Join Date
    Sep 2012
    Posts
    665

    Default

    Quote Originally Posted by log0 View Post
    If you are using a somewhat decent video codec frames will depend on previous frames (P-frames). Usually you will even have delta frames that depend on previous and following frames (B-frames). This doesn't really scale towards hundreds of threads.
    On the other hand, video codec divide pixel space in a given frame for that very reason (parallelism).
    Video decode is mostly done on dedicated hardware, but could be done in GPGPU, hence massively parrallelisable .

    Actually, anything that could benefit from GPGPU will use hundreds of threads (mostly, scientific calculations and image/video processing).

  8. #18
    Join Date
    Feb 2012
    Posts
    66

    Default

    Quote Originally Posted by Ericg View Post
    Interesting idea for it, though you are right. 10 cores? Awesome! Each core gets 10% of the project to work with. Or every 10th frame to render. Works well since there's no race conditions, no frame is dependent on the previous frame they are all co-mingled.
    As log0 said, video frames are interdependent (or at least a decent codec makes it so). That aside, I wouldn't call video encoding a typical desktop workload. Try to come up with usage scenarios where the following applications benefit from hundreds of cores: browser, e-mail, office, games, chat, anti virus.

    A browser could of course render on multiple cores and start parallel downloads etc. but the real limit is bandwidth, so hundreds of threads seems quite extreme. I've not really got an idea for e-mail and the only thing that comes to my mind for office suites would be things like spell and grammar checking on large documents. Games can surely benefit from multi-cores to a certain extend, given a decent engine but at some point interdependencies of objects makes further parallelization too costly (due to locking). Chat software, no idea, anti virus could surely analyze hundreds of files at once, but the real limit is the hdd/ssd and you usually don't want software like that to utilize the whole CPU.

  9. #19
    Join Date
    Nov 2012
    Posts
    607

    Default

    Quote Originally Posted by elanthis View Post
    Only if you think proprietary compilers start and end with Microsoft and Intel. There are others, though much less frequently used.
    Czre to name a few, so we could make a comparison? Or perhaps, you meant some scientific ones which are meaningless to us?

  10. #20
    Join Date
    Jun 2009
    Posts
    2,927

    Default

    Quote Originally Posted by log0 View Post
    If you are using a somewhat decent video codec frames will depend on previous frames (P-frames). Usually you will even have delta frames that depend on previous and following frames (B-frames). This doesn't really scale towards hundreds of threads.
    As long as you have hundreds of I-frames in your video, of course it does.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •