Announcement

Collapse
No announcement yet.

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

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • #11
    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, 07:26 PM.

    Comment


    • #12
      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.

      Comment


      • #13
        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.

        Comment


        • #14
          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.

          Comment


          • #15
            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.

            Comment


            • #16
              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.

              Comment


              • #17
                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).

                Comment


                • #18
                  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.

                  Comment


                  • #19
                    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?

                    Comment


                    • #20
                      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.

                      Comment

                      Working...
                      X