Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. I Can Not Manage This Task

I Can Not Manage This Task

Scheduled Pinned Locked Moved The Lounge
testingbeta-testingperformancequestionlounge
43 Posts 15 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • H honey the codewitch

    In large part, because your computer has multiple cores. You cannot just break a task down to use all cores. Add 2 + 2 using two threads to divide the task between two cores. You can't. So if you add 2+2 your CPU will not spike to 100. If it had two cores, the best you'd get is 50%, 4 cores - 25%, etc.

    Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix

    J Offline
    J Offline
    jochance
    wrote on last edited by
    #29

    There's another weird bit where some chips can't run all cores at full speed. I think the point is to have some low-power efficiency cores to dedicate to certain kinds of tasks. Not real sure how common that is and it's a newer deal.

    H 1 Reply Last reply
    0
    • J jochance

      There's another weird bit where some chips can't run all cores at full speed. I think the point is to have some low-power efficiency cores to dedicate to certain kinds of tasks. Not real sure how common that is and it's a newer deal.

      H Offline
      H Offline
      honey the codewitch
      wrote on last edited by
      #30

      Actually it's getting more common. Both Intel and ARM chips use multiple different class of core in their CPU. Intel uses two, and calls them "p-cores" (performance cores) and "e-cores" (efficient? core) The reason is heat, size and power consumption vs usage habits. The idea is that people don't use each core the same way. This way you have more powerful cores that kick in while needed, but you can run things off the e-core(s) most of the time ARM pioneered it** because phone advancements made it almost necessary. Intel caught on to what ARM was doing and was like "Excellent! I'll take four!" ** they may not technically be the first - i don't know, but they're the first major modern CPU vendor I've seen that does it.

      Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix

      J 1 Reply Last reply
      0
      • H honey the codewitch

        Actually it's getting more common. Both Intel and ARM chips use multiple different class of core in their CPU. Intel uses two, and calls them "p-cores" (performance cores) and "e-cores" (efficient? core) The reason is heat, size and power consumption vs usage habits. The idea is that people don't use each core the same way. This way you have more powerful cores that kick in while needed, but you can run things off the e-core(s) most of the time ARM pioneered it** because phone advancements made it almost necessary. Intel caught on to what ARM was doing and was like "Excellent! I'll take four!" ** they may not technically be the first - i don't know, but they're the first major modern CPU vendor I've seen that does it.

        Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix

        J Offline
        J Offline
        jochance
        wrote on last edited by
        #31

        That all seems to mesh very well with my reality and understandings. :) I've just not had the expendable moola to grab new silicon in a bit and keeping Intel offerings straight in one's head is an exercise in futility. Nothing against AMD (though ARM, because of its sordid history with Windows can kick rocks). I just like Intel because it's literally all I've ever had and there's just a degree of comfort/security (likely a false sense). I have built machines for others with AMD Ryzen though and they seem to have worked out just fine. All this does seem to make the bit of calculating total processor usage a bit more of a complex algorithm though, if not a near-useless metric in context?

        H 1 Reply Last reply
        0
        • J jochance

          That all seems to mesh very well with my reality and understandings. :) I've just not had the expendable moola to grab new silicon in a bit and keeping Intel offerings straight in one's head is an exercise in futility. Nothing against AMD (though ARM, because of its sordid history with Windows can kick rocks). I just like Intel because it's literally all I've ever had and there's just a degree of comfort/security (likely a false sense). I have built machines for others with AMD Ryzen though and they seem to have worked out just fine. All this does seem to make the bit of calculating total processor usage a bit more of a complex algorithm though, if not a near-useless metric in context?

          H Offline
          H Offline
          honey the codewitch
          wrote on last edited by
          #32

          Most of those metrics are useless by themselves. As hardware gets more complicated, so do the numbers, and the circumstances we find those numbers presenting themselves in. I've found if I want to bench a system, I find what other people are using to bench, and then I bench my own using a baseline. The ones I use right now are: Running Cyberpunk Bench (DLSS and Raytracing benchmark) Running TimeSpy (General DirectX 12 and CPU gaming perf bench) And Cinebench R23 - for CPU performance That won't tell you everything, and the first two of those benches are very gaming oriented, and focus on GPU performance. What running them tells me is that my desktop and laptop are pretty comparable at the resolutions I play at on each, but my lappy slightly beats my desktop in multicore performance What I'd like is for other people to compile the same large C++ codebase i am on other machines, which would give me a nice real world metric for the purpose i built this machine for (C++ compile times) As it is, I would buy an AMD laptop (power efficiency), but intel is my go to for desktops at this point, primarily due to general purpose single core performance. My laptop is also an intel, but if i bought again, I'd have waited for the AMD version of it and got better battery life.

          Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix

          J 1 Reply Last reply
          0
          • H honey the codewitch

            Most of those metrics are useless by themselves. As hardware gets more complicated, so do the numbers, and the circumstances we find those numbers presenting themselves in. I've found if I want to bench a system, I find what other people are using to bench, and then I bench my own using a baseline. The ones I use right now are: Running Cyberpunk Bench (DLSS and Raytracing benchmark) Running TimeSpy (General DirectX 12 and CPU gaming perf bench) And Cinebench R23 - for CPU performance That won't tell you everything, and the first two of those benches are very gaming oriented, and focus on GPU performance. What running them tells me is that my desktop and laptop are pretty comparable at the resolutions I play at on each, but my lappy slightly beats my desktop in multicore performance What I'd like is for other people to compile the same large C++ codebase i am on other machines, which would give me a nice real world metric for the purpose i built this machine for (C++ compile times) As it is, I would buy an AMD laptop (power efficiency), but intel is my go to for desktops at this point, primarily due to general purpose single core performance. My laptop is also an intel, but if i bought again, I'd have waited for the AMD version of it and got better battery life.

            Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix

            J Offline
            J Offline
            jochance
            wrote on last edited by
            #33

            I can tell you that if you aren't already, making sure all the related bits ride on SSD would be one of the most huge things I think might speed up linkage.

            H 1 Reply Last reply
            0
            • J jochance

              I can tell you that if you aren't already, making sure all the related bits ride on SSD would be one of the most huge things I think might speed up linkage.

              H Offline
              H Offline
              honey the codewitch
              wrote on last edited by
              #34

              That's why I run two Samsung 990 Pro NVMe drives - fastest on the market. I also run my ram at 6000MHz/CL32 - stock spec for intel on DDR5 is like 4800 or something. My CPU on this machine is an i5-13600K. I would have gone with the i9-13900K but I built this to be an air cooled system, and 250W was too rich for my blood - at least with this cooler - and this i5 is a sleeper with single core performance comparable to the i9. I have the i9-13900HX in my laptop - which is basically the same as the desktop version but retargeted to 180W instead of 250W.

              Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix

              J 1 Reply Last reply
              0
              • H honey the codewitch

                That's why I run two Samsung 990 Pro NVMe drives - fastest on the market. I also run my ram at 6000MHz/CL32 - stock spec for intel on DDR5 is like 4800 or something. My CPU on this machine is an i5-13600K. I would have gone with the i9-13900K but I built this to be an air cooled system, and 250W was too rich for my blood - at least with this cooler - and this i5 is a sleeper with single core performance comparable to the i9. I have the i9-13900HX in my laptop - which is basically the same as the desktop version but retargeted to 180W instead of 250W.

                Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix

                J Offline
                J Offline
                jochance
                wrote on last edited by
                #35

                What you may want to try regarding the RAM... It's a real PITA, because you'll lock/bluescreen your machine, but rather than aiming for just the highest clock-rate possible, try to tighten the latency timings or look for some sticks with the most excellent latency timings. These things tend to be somewhat inversely related (clock speed : CASL/others). I won't be so upset I just got a corptop with an i5 then (coming from an i7).

                H 1 Reply Last reply
                0
                • J jochance

                  What you may want to try regarding the RAM... It's a real PITA, because you'll lock/bluescreen your machine, but rather than aiming for just the highest clock-rate possible, try to tighten the latency timings or look for some sticks with the most excellent latency timings. These things tend to be somewhat inversely related (clock speed : CASL/others). I won't be so upset I just got a corptop with an i5 then (coming from an i7).

                  H Offline
                  H Offline
                  honey the codewitch
                  wrote on last edited by
                  #36

                  I don't play the silicon lottery, because I've lost too much time to intermittent RAM failures. I use an XMP profile because the stick was tested at those timings. and CL32 is pretty tight.

                  Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix

                  J 1 Reply Last reply
                  0
                  • H honey the codewitch

                    I don't play the silicon lottery, because I've lost too much time to intermittent RAM failures. I use an XMP profile because the stick was tested at those timings. and CL32 is pretty tight.

                    Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix

                    J Offline
                    J Offline
                    jochance
                    wrote on last edited by
                    #37

                    Even just different sticks might have better latency timings... and lowering, even underclocking RAM to get tight latencies can see noticeable framerate improvement for at least some games (kinda depends what they have goin on). For some of the same reasons that's the case, I suspect it'd be the case for linking too.

                    H 1 Reply Last reply
                    0
                    • D dandy72

                      BernardIE5317 wrote:

                      Yes I am thinking in terms of "if 23% is good 99.999% is better."

                      That's describing a 4-core system where one process running at 100%, and whoever wrote that program didn't bother to try to write it as multi-threaded. It may or may not be possible to do that. Or maybe it was decided it was just not worth it, given the overall time expected for the task to complete, vs the complexity involved in writing a well-behaved multi-threaded application.

                      S Offline
                      S Offline
                      stheller2
                      wrote on last edited by
                      #38

                      Software is hard. Good software is harder. Good parallel software is harder than that. If you want high CPU loads that mostly represent useful work, you have to do a lot of work to figure out how to avoid system calls, memory allocation, and even random accesses into gigantic memory maps, as well as efficient communication among the threads. Any inefficiency in any of these factors can slow down processing to the extent that the multiple threads don't proceed much faster than a single thread would.

                      D 1 Reply Last reply
                      0
                      • J jochance

                        Even just different sticks might have better latency timings... and lowering, even underclocking RAM to get tight latencies can see noticeable framerate improvement for at least some games (kinda depends what they have goin on). For some of the same reasons that's the case, I suspect it'd be the case for linking too.

                        H Offline
                        H Offline
                        honey the codewitch
                        wrote on last edited by
                        #39

                        Like I said, I don't play the silicon lottery, as losing it is a giant time sink. I run my ram at what it was tested for at factory. XMP profile has it at 6000/CL32, it's rock solid. And also I know that since it wasn't the fastest ram on the market from that vendor when I bought it that it failed faster tests. So I'm not messing with the timings. Frankly, my time is too valuable to waste running down system errors due to memory corruption.

                        Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix

                        J 1 Reply Last reply
                        0
                        • H honey the codewitch

                          Like I said, I don't play the silicon lottery, as losing it is a giant time sink. I run my ram at what it was tested for at factory. XMP profile has it at 6000/CL32, it's rock solid. And also I know that since it wasn't the fastest ram on the market from that vendor when I bought it that it failed faster tests. So I'm not messing with the timings. Frankly, my time is too valuable to waste running down system errors due to memory corruption.

                          Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix

                          J Offline
                          J Offline
                          jochance
                          wrote on last edited by
                          #40

                          I never played that either. But I have played at trying to extract what I can from whatever I get. Maybe we have different definitions of silicon lottery - I call it buying/returning chips till you get a good bin#. > Frankly, my time is too valuable to waste Gotta be your judgement call on that one... I looked for ya, and it doesn't seem like you'll find much better with stock XMP profile.

                          H 1 Reply Last reply
                          0
                          • J jochance

                            I never played that either. But I have played at trying to extract what I can from whatever I get. Maybe we have different definitions of silicon lottery - I call it buying/returning chips till you get a good bin#. > Frankly, my time is too valuable to waste Gotta be your judgement call on that one... I looked for ya, and it doesn't seem like you'll find much better with stock XMP profile.

                            H Offline
                            H Offline
                            honey the codewitch
                            wrote on last edited by
                            #41

                            Yeah. I've been burned before with bad memory so I guess I'm extra cautious these days. That was a week of hairpulling (it was a bad stick, it wasn't due to clocking, but same issue)

                            Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix

                            J 1 Reply Last reply
                            0
                            • S stheller2

                              Software is hard. Good software is harder. Good parallel software is harder than that. If you want high CPU loads that mostly represent useful work, you have to do a lot of work to figure out how to avoid system calls, memory allocation, and even random accesses into gigantic memory maps, as well as efficient communication among the threads. Any inefficiency in any of these factors can slow down processing to the extent that the multiple threads don't proceed much faster than a single thread would.

                              D Offline
                              D Offline
                              dandy72
                              wrote on last edited by
                              #42

                              Indeed. That's why I've been saying all along that making some software multi-threaded isn't something you get for free, and many developers will forego the benefits, unless there's significant, measurable gains to be had. In other words...stop worrying about processes not pinning your CPU at 100%. In fact, that is when you should start worrying about what's going on...

                              1 Reply Last reply
                              0
                              • H honey the codewitch

                                Yeah. I've been burned before with bad memory so I guess I'm extra cautious these days. That was a week of hairpulling (it was a bad stick, it wasn't due to clocking, but same issue)

                                Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix

                                J Offline
                                J Offline
                                jochance
                                wrote on last edited by
                                #43

                                There have been some bad bugs with XMP/bios relationships where using XMP would force a lower voltage than what the RAM wanted. I wonder if you ran into that.

                                1 Reply Last reply
                                0
                                Reply
                                • Reply as topic
                                Log in to reply
                                • Oldest to Newest
                                • Newest to Oldest
                                • Most Votes


                                • Login

                                • Don't have an account? Register

                                • Login or register to search.
                                • First post
                                  Last post
                                0
                                • Categories
                                • Recent
                                • Tags
                                • Popular
                                • World
                                • Users
                                • Groups