No announcement yet.

Threaded Memory Test

  • Filter
  • Time
  • Show
Clear All
new posts

  • Threaded Memory Test


    I am trying to understand the Theaded Memory test and what is actually being preformed in this test. I understand that a number of threads are being created and that they each allocate 256MB/# of treads of memory, but what do each of the treads actually test? Is it read bandwidth / write bandwidth? Is the reported number the total bandwidth adding all threads together or the bandwidth of each divided by the number of threads?

    Thank you,

  • #2
    Multiple test threads are launched, the number of threads is equal to the value in the Edit / Preferences window and should match the number of CPU cores available. There is a maximum of 64 threads.

    Each thread allocates a memory buffer and waits for all the threads to be created before starting. The size of the memory buffer is 256MB *in total* across all the threads. So the size per thread is 256MB / Number_of_threads.

    Once the threads have been allocated then the benchmark test starts, which is nearly identical to the "Read cached" test (measures the time taken to read a small block of memory) so it is measuring the total read speed when accessing the memory with concurrent threads.


    • #3

      Thank you for the explanation. As a follow-up question what is the behavior on a multi socket machine and how is this taken into account? Are the threads allocated across both sockets or only the first socket? Is there a means to test the memory performance on each socket independently? If so how is this performed?


      • #4
        Threads are allocated across all cores in all CPUs in all sockets (by default).
        NUMA isn't used at the moment. So you can't isolate a socket.

        Have a look at the Advanced memory test however as that does have NUMA support.


        • #5
          I wonder what is the significance of this test. How it adds a value as a benchmarking test?


          • #6
            Originally posted by Dhanush View Post
            I wonder what is the significance of this test. How it adds a value as a benchmarking test?
            In various types of multi-threaded applications, e.g. CPU-based rendering, database server, etc, you'll be interested in how the system behaves/performs. It can make a huge difference, as I just found out, when I upgraded from a 2x16GB to a 4x32GB configuration (all other system parts the same): while the performance difference for all other RAM-related tests is in the range of 8%, the multi-threaded performance shows as much as 2x increase in read speed with the new DIMMs.


            • #7
              Yes, it isn't unusual to have a situation where 1 CPU core can't max out the bandwidth of the memory module.
              So to measure the full bandwidth available multiple thread / cores are needed.