Uploaded image for project: 'The Virtual Brain'
  1. The Virtual Brain
  2. TVB-2918

Benchmark HT pinning for simulation

    XMLWordPrintable

    Details

    • Type: Task
    • Status: Open
    • Priority: Minor
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: simulator
    • Labels:
      None

      Description

      Recent profiling in simulations point to random number generation (RNG) taking up to half the execution time. The instructions issued to CPU are quite different from those for the rest of the simulation (int64 ops) and writes to cache. It would be worth checking if the RNG can be parallelized on sibling hyperthreads. Some useful info found on SO of course:

      https://stackoverflow.com/a/7275270
      https://stackoverflow.com/a/28788061
      https://pypi.org/project/python3-hwloc/

      This task should use recent Montbrio kernels and issue RNG calls on a parallel thread to the main simulation. The hwloc library should pin the sim thread and the rng thread on sibling logical processors of the same physical core. This scenario can be compared to the sequential case on a single core. Lastly, scaling this benchmark up and down, in terms of the size of the connectivity, would help assess how useful if at all.

        Gliffy Diagrams

          Attachments

            Activity

              People

              Assignee:
              marmaduke.woodman Marmaduke Woodman
              Reporter:
              marmaduke.woodman Marmaduke Woodman
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Dates

                Created:
                Updated:

                  Time Tracking

                  Estimated:
                  Original Estimate - 4 hours
                  4h
                  Remaining:
                  Remaining Estimate - 4 hours
                  4h
                  Logged:
                  Time Spent - Not Specified
                  Not Specified