)]}'
{
  "commit": "9a28947636e8e10045e5db8ceb313fe832fd29ca",
  "tree": "de0e263a7ffe16c88a35d2f69a2eef795a258a4b",
  "parents": [
    "739f2a25aea83fc3db119b85779b08fae465d0dd"
  ],
  "author": {
    "name": "Sameer Agarwal",
    "email": "sameeragarwal@google.com",
    "time": "Tue Sep 20 09:50:10 2022 -0700"
  },
  "committer": {
    "name": "Sameer Agarwal",
    "email": "sameeragarwal@google.com",
    "time": "Tue Sep 20 13:47:33 2022 -0700"
  },
  "message": "Speed up locking when num_threads \u003d 1.\n\nThis is done by locking a dummy mutex when num_threads \u003d 1.\n\nBefore on Mac M1 Pro\nBM_BlockSparseJacobiPreconditionerBA/1              55724955 ns     55150500 ns           12\nBM_BlockSparseJacobiPreconditionerBA/2              32243968 ns     32119545 ns           22\nBM_BlockSparseJacobiPreconditionerBA/4              21749220 ns     21448485 ns           33\nBM_BlockSparseJacobiPreconditionerBA/8              31190360 ns     27924520 ns           25\nBM_BlockSparseJacobiPreconditionerBA/16             31130365 ns     26186656 ns           32\nBM_BlockCRSJacobiPreconditionerBA/1                 60739399 ns     60737750 ns           12\nBM_BlockCRSJacobiPreconditionerBA/2                 35197331 ns     34524650 ns           20\nBM_BlockCRSJacobiPreconditionerBA/4                 21977577 ns     21241606 ns           33\nBM_BlockCRSJacobiPreconditionerBA/8                 31597485 ns     27892000 ns           25\nBM_BlockCRSJacobiPreconditionerBA/16                31097307 ns     21841367 ns           30\nBM_BlockSparseJacobiPreconditionerUnstructured/1    63510295 ns     63488833 ns           12\nBM_BlockSparseJacobiPreconditionerUnstructured/2    34208964 ns     34063333 ns           21\nBM_BlockSparseJacobiPreconditionerUnstructured/4    22443432 ns     22145455 ns           33\nBM_BlockSparseJacobiPreconditionerUnstructured/8    24571793 ns     22801323 ns           31\nBM_BlockSparseJacobiPreconditionerUnstructured/16   23507892 ns     20859250 ns           36\nBM_BlockCRSJacobiPreconditionerUnstructured/1       63282292 ns     63280273 ns           11\nBM_BlockCRSJacobiPreconditionerUnstructured/2       32994633 ns     32845810 ns           21\nBM_BlockCRSJacobiPreconditionerUnstructured/4       18249372 ns     17526200 ns           40\nBM_BlockCRSJacobiPreconditionerUnstructured/8       16539623 ns     15937341 ns           44\nBM_BlockCRSJacobiPreconditionerUnstructured/16      16549527 ns     12850294 ns           51\n\nAfter\n\n--------------------------------------------------------------------------------------------\nBenchmark                                                  Time             CPU   Iterations\n--------------------------------------------------------------------------------------------\nBM_BlockSparseJacobiPreconditionerBA/1              44348891 ns     44348875 ns           16\nBM_BlockSparseJacobiPreconditionerBA/2              32840149 ns     32706476 ns           21\nBM_BlockSparseJacobiPreconditionerBA/4              22318142 ns     21904419 ns           31\nBM_BlockSparseJacobiPreconditionerBA/8              31322712 ns     27964120 ns           25\nBM_BlockSparseJacobiPreconditionerBA/16             31742625 ns     26624577 ns           26\nBM_BlockCRSJacobiPreconditionerBA/1                 49870369 ns     49869714 ns           14\nBM_BlockCRSJacobiPreconditionerBA/2                 34901023 ns     34234900 ns           20\nBM_BlockCRSJacobiPreconditionerBA/4                 21946689 ns     21215394 ns           33\nBM_BlockCRSJacobiPreconditionerBA/8                 31461558 ns     27728360 ns           25\nBM_BlockCRSJacobiPreconditionerBA/16                30792414 ns     23063968 ns           31\nBM_BlockSparseJacobiPreconditionerUnstructured/1    62120649 ns     61979750 ns           12\nBM_BlockSparseJacobiPreconditionerUnstructured/2    33806314 ns     33729526 ns           19\nBM_BlockSparseJacobiPreconditionerUnstructured/4    22195685 ns     21831500 ns           32\nBM_BlockSparseJacobiPreconditionerUnstructured/8    25003440 ns     22765452 ns           31\nBM_BlockSparseJacobiPreconditionerUnstructured/16   24746505 ns     19425364 ns           33\nBM_BlockCRSJacobiPreconditionerUnstructured/1       57506343 ns     57502077 ns           13\nBM_BlockCRSJacobiPreconditionerUnstructured/2       33691442 ns     33584810 ns           21\nBM_BlockCRSJacobiPreconditionerUnstructured/4       18121943 ns     17579050 ns           40\nBM_BlockCRSJacobiPreconditionerUnstructured/8       17624991 ns     16086568 ns           44\nBM_BlockCRSJacobiPreconditionerUnstructured/16      16493819 ns     13160882 ns           51\n\nChange-Id: Ieac097f5e06a08b48170dcfb06b5145f1ee512e6\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b7ee0020e53a09964825e3c2c3e27d933085e0c5",
      "old_mode": 33188,
      "old_path": "internal/ceres/block_jacobi_preconditioner.cc",
      "new_id": "81eb419a26eb61abc363c634f9d7b1206921ea6a",
      "new_mode": 33188,
      "new_path": "internal/ceres/block_jacobi_preconditioner.cc"
    },
    {
      "type": "modify",
      "old_id": "3c3d8874a10d64087f074c9de5c385ed14417d86",
      "old_mode": 33188,
      "old_path": "internal/ceres/parallel_for.h",
      "new_id": "234c7db1f832f235c57d3024810733c93546b9c0",
      "new_mode": 33188,
      "new_path": "internal/ceres/parallel_for.h"
    },
    {
      "type": "modify",
      "old_id": "62b7487017dc1b7dcf535897c4611c4cd38defee",
      "old_mode": 33188,
      "old_path": "internal/ceres/schur_eliminator_impl.h",
      "new_id": "884c0cf3a3477ca4292bb27199897d5453b617f4",
      "new_mode": 33188,
      "new_path": "internal/ceres/schur_eliminator_impl.h"
    }
  ]
}
