title
Products            Buy            Support Forum            Professional            About            Codec Central
 

Maximum Number of Cores/Threads for Batch Conversion

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • mattchid
    • Oct 2016
    • 3

    Maximum Number of Cores/Threads for Batch Conversion

    I am new to dBpoweramp, I used it for awhile many years ago, but alot has changed. My question applies to batch conversion. I see that a maximum of 16 "cores" can be utilized for 16 different tracks in a batch conversion. I have a Xeon E5 2697v4, which has 18 cores and is hyperthreaded which means there are essentially 36 "cores". First, does the term "cores" for dBpoweramp refer to actual cores (I have 18) or logical cores (I have 36)? Is there any way to increase the number of cores utilized? My fear is that the 16 "cores" is really only 8 cores with hyperthreading... which means my CPU is being severely under utilized.
  • Spoon
    Administrator
    • Apr 2002
    • 44098

    #2
    Re: Maximum Number of Cores/Threads for Batch Conversion

    Real cores are used first, the system decides this, however if you are concerned you can disable hyperthreading in the bios (most likely).
    Spoon
    www.dbpoweramp.com

    Comment

    • mattchid
      • Oct 2016
      • 3

      #3
      Re: Maximum Number of Cores/Threads for Batch Conversion

      Thanks for the response Spoon. I could definitely be wrong (I don't think so though) there is no difference between a "core" and a "thread" for operations like this. The idea is always to be able to assign separate tasks to each thread. Ive never seen an application utilize two threads (one "core"). This idea is important because most applications like encoding are considered "single threaded" meaning clock speed is much more important than the number of cores (or threads) *per task*. A few years ago, when I used dBpoweramp last, my memory (and it could be faulty) was that it only encoded either 4 or 8 tracks at a time max (I really can't remember, maybe it was even less), and that was because the vast majority of machines people where using were dual core or quad core machines, so a limit like that limited very few users. Even today, there are definitely apps that are coded to limit one thread (or core, if not hyperthreaded), which is really inefficient and severely limits processing time. The Dolby Suite is a great example, I have to run multiple instances of the Suite to encode more than one track simultaneously, because it ONLY runs on one core (or thread) at a time.

      This is a long way of re-asking a pretty technical question that I don't have the hardware to test. When I see 16 "cores" I'm afraid that of my 36 logical cores (18 cores hyperthreaded) I am only using 16, which is far less efficient than if I am using 16 of 18 cores (two threads on each track). When I look at my system cpu monitor, it *appears* that it is only using 16 threads, but there is activity on all other threads, just not 100% utilization like on about 16 of them. Hardly dispositive. So really I have my original question, is there any way to force the application to use all available cores / threads or is it coded to only ever use 16. And a second question, what do other people experience?

      People who have quad core and the fewer who have octa core (8) processors can test this pretty easily. If you have a quad core processor, how many tracks encode simultaneously, 4 or 8? If you have an octa core processor, 8 or 16? Even those with 6 core processors can chime in if they notice either 6 or 12 tracks simultaneously.

      I'm sure if any mods notice this thread they'll know the exact answer pretty easily, at least anyone involved in the development of the software...

      Comment

      • Spoon
        Administrator
        • Apr 2002
        • 44098

        #4
        Re: Maximum Number of Cores/Threads for Batch Conversion

        16 cores are the maximum dBpoweramp will process currently, you can use the DSP effect CPU Force and force on cores 1 to 16.
        Spoon
        www.dbpoweramp.com

        Comment

        • mattchid
          • Oct 2016
          • 3

          #5
          Re: Maximum Number of Cores/Threads for Batch Conversion

          I did some (pretty thorough) tests yesterday and thought I would share the results. I would still love to hear from a developer if they notice this thread to confirm my conclusions or add any insights, perhaps you are a dev. Spoon.

          My tests are all on the same machine, and I utilized VM's to try and simulate some different core configurations and I enabled and disabled hyperthreading in the bios for further testing.

          As Spoon said, 16 cores is the maximum, but that's not always telling. With apps like XLD on macOS and Foobar2000 on Windows, the app will use logical cores, not physical cores. So with a system like mine with 18 physical cores and 36 logical cores, its valuable to know what is being seen and used by the app. Long story short, dBpoweramp will encode 16 files similtaneously on 16 cores, but it will also use both logical cores on each core for each conversion (at least thats what my tests indicate). The reason this isnt exact is because it's impossible to see on any resource monitor what exact instruction is assigned to each core let alone each logical core. But based on what I CAN see it looks like 1.5 - 2 cores are engaged for each encoding task. This is great news from the perspective that when I encode I would like to use as much horsepower as my CPU has available and 16 of 18 cores is great! I tested this by encoding tracks with hyperthreading enabled and disabled, meaning the OS sees 18 CPU cores when disabled and 36 when enabled. dBpoweramp encoded both test track groups about the same speed, confirming (kinda) that each track is using more than one logical thread. I confirmed this further by using a VM with 8 and with 16 "cores" which the VM would see as logical cores, and the 16 logical cores took about twice as long. When testing a VM its important to know that a VM doesnt see physical cores, it sees logical cores

          This is all probably boring to most people, sorry, but i'll bet I'm not the only person to use high core count processors, and its useful to know what the real capabilities are. With that in mind, I'll post some test results below. This uses a test track group of 554 FLAC tracks converted to v0 mp3:

          - Native OS, hyperthreaded, 16 core, completed 2:14 @ 649x Encoding Speed
          - Native OS, NOT hyperthreaded, 16 core, completed 2:37 @ 554x Encoding Speed
          - Native OS, 8 core, completed 3:49 @ 381x Encoding Speed
          - VM OS, 16 core NOT hyperthreaded, completed 3:43 @ 391x
          - VM OS, 16 logical core, hyperthreaded, completed 4:33 @ 320x
          - VM OS, 8 logical cores, hyperthreaded, completed 6:03 @ 240x

          Comment

          Working...

          ]]>