mxm_demo

Prob = 

  struct with fields:

         A: [9000x9000 double]
      name: 'ND/nd3k'
     title: 'ND problem set, matrix nd3k'
        id: 936
      date: '2003'
    author: 'author unknown'
        ed: 'T. Davis'
      kind: '2D/3D problem'


Prob2 = 

  struct with fields:

      name: 'Freescale/Freescale2'
     title: 'circuit simulation matrix from Freescale'
         A: [2999349x2999349 double]
     Zeros: [2999349x2999349 double]
        id: 2662
      date: '2015'
    author: 'K. Gullapalli'
        ed: 'T. Davis'
      kind: 'circuit simulation matrix'
     notes: [4x59 char]

hypersparse.cs.tamu.edu
MATLAB version: 9.9 release: (R2020b)
GraphBLAS version: 4.0.1 (Jan 4, 2021)

-------------------------------------------------
Testing single-threaded performance of C=A*B:
-------------------------------------------------

=== MATLAB: double (real) vs GraphBLAS: single
C=A*B: sparse matrix times sparse matrix:
trial 1: MATLAB:     3.7771 GrB:     3.5406 speedup:       1.07 err: 1.63154e-07
trial 2: MATLAB:     3.7923 GrB:     3.5586 speedup:       1.07 err: 1.63154e-07
trial 3: MATLAB:     3.8008 GrB:     3.5582 speedup:       1.07 err: 1.63154e-07
trial 4: MATLAB:     3.7916 GrB:     3.5497 speedup:       1.07 err: 1.63154e-07
average: MATLAB:     3.7904 GrB:     3.5518 speedup:       1.07
C=A*x: sparse matrix times sparse vector:
trial 1: MATLAB:     0.2234 GrB:     0.0773 speedup:       2.89 err: 3.60006e-08
trial 2: MATLAB:     0.2225 GrB:     0.0660 speedup:       3.37 err: 3.60006e-08
trial 3: MATLAB:     0.2102 GrB:     0.0661 speedup:       3.18 err: 3.60006e-08
trial 4: MATLAB:     0.2221 GrB:     0.0662 speedup:       3.36 err: 3.60006e-08
average: MATLAB:     0.2196 GrB:     0.0689 speedup:       3.19
C=A*x: sparse matrix times dense vector:
trial 1: MATLAB:     0.0416 GrB:     0.0611 speedup:       0.68 err: 4.86966e-08
trial 2: MATLAB:     0.0372 GrB:     0.0611 speedup:       0.61 err: 4.86966e-08
trial 3: MATLAB:     0.0375 GrB:     0.0611 speedup:       0.61 err: 4.86966e-08
trial 4: MATLAB:     0.0372 GrB:     0.0611 speedup:       0.61 err: 4.86966e-08
average: MATLAB:     0.0384 GrB:     0.0611 speedup:       0.63

=== MATLAB: double (real) vs GraphBLAS: double
C=A*B: sparse matrix times sparse matrix:
trial 1: MATLAB:     3.7769 GrB:     3.8013 speedup:       0.99 err: 0
trial 2: MATLAB:     3.7918 GrB:     3.8230 speedup:       0.99 err: 0
trial 3: MATLAB:     3.7907 GrB:     3.8220 speedup:       0.99 err: 0
trial 4: MATLAB:     3.7894 GrB:     3.8224 speedup:       0.99 err: 0
average: MATLAB:     3.7872 GrB:     3.8172 speedup:       0.99
C=A*x: sparse matrix times sparse vector:
trial 1: MATLAB:     0.2227 GrB:     0.0814 speedup:       2.74 err: 0
trial 2: MATLAB:     0.2061 GrB:     0.0653 speedup:       3.16 err: 0
trial 3: MATLAB:     0.2054 GrB:     0.0654 speedup:       3.14 err: 0
trial 4: MATLAB:     0.2057 GrB:     0.0653 speedup:       3.15 err: 0
average: MATLAB:     0.2100 GrB:     0.0694 speedup:       3.03
C=A*x: sparse matrix times dense vector:
trial 1: MATLAB:     0.0379 GrB:     0.0653 speedup:       0.58 err: 0
trial 2: MATLAB:     0.0372 GrB:     0.0650 speedup:       0.57 err: 0
trial 3: MATLAB:     0.0377 GrB:     0.0653 speedup:       0.58 err: 0
trial 4: MATLAB:     0.0371 GrB:     0.0649 speedup:       0.57 err: 0
average: MATLAB:     0.0375 GrB:     0.0651 speedup:       0.58

=== MATLAB: double complex vs GraphBLAS: single complex
C=A*B: sparse matrix times sparse matrix:
trial 1: MATLAB:     8.5948 GrB:     4.9319 speedup:       1.74 err: 1.70413e-07
trial 2: MATLAB:     8.6180 GrB:     4.9453 speedup:       1.74 err: 1.70413e-07
trial 3: MATLAB:     8.6200 GrB:     4.9454 speedup:       1.74 err: 1.70413e-07
trial 4: MATLAB:     8.6130 GrB:     4.9449 speedup:       1.74 err: 1.70413e-07
average: MATLAB:     8.6115 GrB:     4.9419 speedup:       1.74
C=A*x: sparse matrix times sparse vector:
trial 1: MATLAB:     0.3120 GrB:     0.0911 speedup:       3.43 err: 4.56897e-08
trial 2: MATLAB:     0.2903 GrB:     0.0752 speedup:       3.86 err: 4.56897e-08
trial 3: MATLAB:     0.2899 GrB:     0.0756 speedup:       3.83 err: 4.56897e-08
trial 4: MATLAB:     0.2896 GrB:     0.0752 speedup:       3.85 err: 4.56897e-08
average: MATLAB:     0.2955 GrB:     0.0793 speedup:       3.73
C=A*x: sparse matrix times dense vector:
trial 1: MATLAB:     0.1341 GrB:     0.0786 speedup:       1.71 err: 5.75158e-08
trial 2: MATLAB:     0.1348 GrB:     0.0788 speedup:       1.71 err: 5.75158e-08
trial 3: MATLAB:     0.1344 GrB:     0.0788 speedup:       1.71 err: 5.75158e-08
trial 4: MATLAB:     0.1344 GrB:     0.0787 speedup:       1.71 err: 5.75158e-08
average: MATLAB:     0.1344 GrB:     0.0787 speedup:       1.71

=== MATLAB: double complex vs GraphBLAS: double complex
C=A*B: sparse matrix times sparse matrix:
trial 1: MATLAB:     8.6011 GrB:     5.4293 speedup:       1.58 err: 0
trial 2: MATLAB:     8.6057 GrB:     5.4520 speedup:       1.58 err: 0
trial 3: MATLAB:     8.6198 GrB:     5.4410 speedup:       1.58 err: 0
trial 4: MATLAB:     8.6164 GrB:     5.4510 speedup:       1.58 err: 0
average: MATLAB:     8.6108 GrB:     5.4433 speedup:       1.58
C=A*x: sparse matrix times sparse vector:
trial 1: MATLAB:     0.3115 GrB:     0.1522 speedup:       2.05 err: 0
trial 2: MATLAB:     0.2987 GrB:     0.1311 speedup:       2.28 err: 0
trial 3: MATLAB:     0.2888 GrB:     0.1310 speedup:       2.20 err: 0
trial 4: MATLAB:     0.2886 GrB:     0.1310 speedup:       2.20 err: 0
average: MATLAB:     0.2969 GrB:     0.1363 speedup:       2.18
C=A*x: sparse matrix times dense vector:
trial 1: MATLAB:     0.1372 GrB:     0.1406 speedup:       0.98 err: 0
trial 2: MATLAB:     0.1343 GrB:     0.1411 speedup:       0.95 err: 0
trial 3: MATLAB:     0.1344 GrB:     0.1406 speedup:       0.96 err: 0
trial 4: MATLAB:     0.1343 GrB:     0.1411 speedup:       0.95 err: 0
average: MATLAB:     0.1351 GrB:     0.1409 speedup:       0.96

-------------------------------------------------
Testing performance of C=A*B using 20 threads:
-------------------------------------------------

=== MATLAB: double (real) vs GraphBLAS: single
C=A*B: sparse matrix times sparse matrix:
trial 1: MATLAB:     3.7822 GrB:     0.2777 speedup:      13.62 err: 1.66754e-07
trial 2: MATLAB:     3.8007 GrB:     0.2139 speedup:      17.77 err: 1.66754e-07
trial 3: MATLAB:     3.8010 GrB:     0.2176 speedup:      17.47 err: 1.66754e-07
trial 4: MATLAB:     3.8017 GrB:     0.2331 speedup:      16.31 err: 1.66754e-07
average: MATLAB:     3.7964 GrB:     0.2356 speedup:      16.12
C=A*x: sparse matrix times sparse vector:
trial 1: MATLAB:     0.2214 GrB:     0.0194 speedup:      11.41 err: 3.59323e-08
trial 2: MATLAB:     0.2209 GrB:     0.0088 speedup:      25.22 err: 3.59853e-08
trial 3: MATLAB:     0.2086 GrB:     0.0078 speedup:      26.91 err: 3.59694e-08
trial 4: MATLAB:     0.2207 GrB:     0.0082 speedup:      26.99 err: 3.59819e-08
average: MATLAB:     0.2179 GrB:     0.0110 speedup:      19.77
C=A*x: sparse matrix times dense vector:
trial 1: MATLAB:     0.0411 GrB:     0.0143 speedup:       2.87 err: 4.87039e-08
trial 2: MATLAB:     0.0377 GrB:     0.0127 speedup:       2.98 err: 4.86783e-08
trial 3: MATLAB:     0.0373 GrB:     0.0123 speedup:       3.02 err: 4.86985e-08
trial 4: MATLAB:     0.0374 GrB:     0.0140 speedup:       2.68 err: 4.87141e-08
average: MATLAB:     0.0384 GrB:     0.0133 speedup:       2.88

=== MATLAB: double (real) vs GraphBLAS: double
C=A*B: sparse matrix times sparse matrix:
trial 1: MATLAB:     3.7809 GrB:     0.3733 speedup:      10.13 err: 0
trial 2: MATLAB:     3.8024 GrB:     0.3289 speedup:      11.56 err: 0
trial 3: MATLAB:     3.8035 GrB:     0.2579 speedup:      14.75 err: 0
trial 4: MATLAB:     3.8014 GrB:     0.2569 speedup:      14.80 err: 0
average: MATLAB:     3.7971 GrB:     0.3042 speedup:      12.48
C=A*x: sparse matrix times sparse vector:
trial 1: MATLAB:     0.2223 GrB:     0.0272 speedup:       8.18 err: 1.98831e-18
trial 2: MATLAB:     0.2055 GrB:     0.0118 speedup:      17.41 err: 1.62657e-18
trial 3: MATLAB:     0.2060 GrB:     0.0107 speedup:      19.25 err: 2.37914e-18
trial 4: MATLAB:     0.2056 GrB:     0.0108 speedup:      18.99 err: 1.94308e-18
average: MATLAB:     0.2098 GrB:     0.0151 speedup:      13.87
C=A*x: sparse matrix times dense vector:
trial 1: MATLAB:     0.0372 GrB:     0.0214 speedup:       1.74 err: 6.77465e-18
trial 2: MATLAB:     0.0371 GrB:     0.0188 speedup:       1.97 err: 5.30567e-18
trial 3: MATLAB:     0.0378 GrB:     0.0172 speedup:       2.19 err: 5.5798e-18
trial 4: MATLAB:     0.0375 GrB:     0.0159 speedup:       2.36 err: 4.66091e-18
average: MATLAB:     0.0374 GrB:     0.0183 speedup:       2.04

=== MATLAB: double complex vs GraphBLAS: single complex
C=A*B: sparse matrix times sparse matrix:
trial 1: MATLAB:     8.5904 GrB:     0.3827 speedup:      22.45 err: 1.67076e-07
trial 2: MATLAB:     8.6116 GrB:     0.4502 speedup:      19.13 err: 1.67076e-07
trial 3: MATLAB:     8.6200 GrB:     0.2959 speedup:      29.13 err: 1.67076e-07
trial 4: MATLAB:     8.6117 GrB:     0.2875 speedup:      29.95 err: 1.67076e-07
average: MATLAB:     8.6084 GrB:     0.3541 speedup:      24.31
C=A*x: sparse matrix times sparse vector:
trial 1: MATLAB:     0.3085 GrB:     0.0249 speedup:      12.39 err: 4.57594e-08
trial 2: MATLAB:     0.2876 GrB:     0.0102 speedup:      28.11 err: 4.57466e-08
trial 3: MATLAB:     0.2876 GrB:     0.0103 speedup:      27.82 err: 4.57482e-08
trial 4: MATLAB:     0.2873 GrB:     0.0102 speedup:      28.18 err: 4.57895e-08
average: MATLAB:     0.2927 GrB:     0.0139 speedup:      21.04
C=A*x: sparse matrix times dense vector:
trial 1: MATLAB:     0.1337 GrB:     0.0223 speedup:       5.99 err: 5.73863e-08
trial 2: MATLAB:     0.1344 GrB:     0.0202 speedup:       6.66 err: 5.73787e-08
trial 3: MATLAB:     0.1343 GrB:     0.0216 speedup:       6.23 err: 5.74014e-08
trial 4: MATLAB:     0.1344 GrB:     0.0209 speedup:       6.42 err: 5.74188e-08
average: MATLAB:     0.1342 GrB:     0.0212 speedup:       6.32

=== MATLAB: double complex vs GraphBLAS: double complex
C=A*B: sparse matrix times sparse matrix:
trial 1: MATLAB:     8.6014 GrB:     0.3149 speedup:      27.31 err: 0
trial 2: MATLAB:     8.6027 GrB:     0.3432 speedup:      25.07 err: 0
trial 3: MATLAB:     8.6165 GrB:     0.3425 speedup:      25.16 err: 0
trial 4: MATLAB:     8.6144 GrB:     0.3351 speedup:      25.71 err: 0
average: MATLAB:     8.6088 GrB:     0.3339 speedup:      25.78
C=A*x: sparse matrix times sparse vector:
trial 1: MATLAB:     0.3109 GrB:     0.0371 speedup:       8.37 err: 2.50978e-18
trial 2: MATLAB:     0.2982 GrB:     0.0176 speedup:      16.96 err: 2.34916e-18
trial 3: MATLAB:     0.2878 GrB:     0.0170 speedup:      16.97 err: 2.37391e-18
trial 4: MATLAB:     0.2877 GrB:     0.0155 speedup:      18.60 err: 2.56515e-18
average: MATLAB:     0.2961 GrB:     0.0218 speedup:      13.59
C=A*x: sparse matrix times dense vector:
trial 1: MATLAB:     0.1372 GrB:     0.0251 speedup:       5.47 err: 7.24933e-18
trial 2: MATLAB:     0.1343 GrB:     0.0257 speedup:       5.23 err: 6.71833e-18
trial 3: MATLAB:     0.1344 GrB:     0.0246 speedup:       5.47 err: 7.52593e-18
trial 4: MATLAB:     0.1347 GrB:     0.0251 speedup:       5.38 err: 6.99933e-18
average: MATLAB:     0.1352 GrB:     0.0251 speedup:       5.39

-------------------------------------------------
Testing performance of C=A*B using 40 threads:
-------------------------------------------------

=== MATLAB: double (real) vs GraphBLAS: single
C=A*B: sparse matrix times sparse matrix:
trial 1: MATLAB:     3.7816 GrB:     0.1910 speedup:      19.80 err: 1.66299e-07
trial 2: MATLAB:     3.8018 GrB:     0.2026 speedup:      18.77 err: 1.66299e-07
trial 3: MATLAB:     3.8025 GrB:     0.2173 speedup:      17.50 err: 1.66299e-07
trial 4: MATLAB:     3.8030 GrB:     0.2190 speedup:      17.37 err: 1.66299e-07
average: MATLAB:     3.7972 GrB:     0.2075 speedup:      18.30
C=A*x: sparse matrix times sparse vector:
trial 1: MATLAB:     0.2252 GrB:     0.0176 speedup:      12.81 err: 3.58846e-08
trial 2: MATLAB:     0.2232 GrB:     0.0074 speedup:      29.98 err: 3.5885e-08
trial 3: MATLAB:     0.2109 GrB:     0.0073 speedup:      28.85 err: 3.58637e-08
trial 4: MATLAB:     0.2233 GrB:     0.0059 speedup:      37.74 err: 3.59073e-08
average: MATLAB:     0.2206 GrB:     0.0096 speedup:      23.07
C=A*x: sparse matrix times dense vector:
trial 1: MATLAB:     0.0411 GrB:     0.0127 speedup:       3.25 err: 4.84918e-08
trial 2: MATLAB:     0.0374 GrB:     0.0117 speedup:       3.19 err: 4.8497e-08
trial 3: MATLAB:     0.0373 GrB:     0.0104 speedup:       3.57 err: 4.84767e-08
trial 4: MATLAB:     0.0425 GrB:     0.0104 speedup:       4.07 err: 4.84922e-08
average: MATLAB:     0.0396 GrB:     0.0113 speedup:       3.50

=== MATLAB: double (real) vs GraphBLAS: double
C=A*B: sparse matrix times sparse matrix:
trial 1: MATLAB:     3.8404 GrB:     0.2141 speedup:      17.94 err: 0
trial 2: MATLAB:     3.7882 GrB:     0.2379 speedup:      15.92 err: 0
trial 3: MATLAB:     3.7892 GrB:     0.2248 speedup:      16.85 err: 0
trial 4: MATLAB:     3.7888 GrB:     0.2227 speedup:      17.01 err: 0
average: MATLAB:     3.8017 GrB:     0.2249 speedup:      16.90
C=A*x: sparse matrix times sparse vector:
trial 1: MATLAB:     0.2198 GrB:     0.0228 speedup:       9.62 err: 2.75062e-18
trial 2: MATLAB:     0.2039 GrB:     0.0083 speedup:      24.68 err: 3.26793e-18
trial 3: MATLAB:     0.2043 GrB:     0.0078 speedup:      26.23 err: 2.58955e-18
trial 4: MATLAB:     0.2039 GrB:     0.0076 speedup:      27.00 err: 2.94408e-18
average: MATLAB:     0.2080 GrB:     0.0116 speedup:      17.91
C=A*x: sparse matrix times dense vector:
trial 1: MATLAB:     0.0426 GrB:     0.0139 speedup:       3.07 err: 7.66364e-18
trial 2: MATLAB:     0.0410 GrB:     0.0109 speedup:       3.74 err: 8.1437e-18
trial 3: MATLAB:     0.0410 GrB:     0.0126 speedup:       3.25 err: 7.96734e-18
trial 4: MATLAB:     0.0410 GrB:     0.0127 speedup:       3.23 err: 8.23416e-18
average: MATLAB:     0.0414 GrB:     0.0125 speedup:       3.30

=== MATLAB: double complex vs GraphBLAS: single complex
C=A*B: sparse matrix times sparse matrix:
trial 1: MATLAB:     8.6778 GrB:     0.2846 speedup:      30.49 err: 1.71854e-07
trial 2: MATLAB:     8.6130 GrB:     0.3069 speedup:      28.06 err: 1.71854e-07
trial 3: MATLAB:     8.6291 GrB:     0.3064 speedup:      28.16 err: 1.71854e-07
trial 4: MATLAB:     8.6014 GrB:     0.2850 speedup:      30.18 err: 1.71854e-07
average: MATLAB:     8.6303 GrB:     0.2957 speedup:      29.18
C=A*x: sparse matrix times sparse vector:
trial 1: MATLAB:     0.3070 GrB:     0.0258 speedup:      11.88 err: 4.58149e-08
trial 2: MATLAB:     0.2858 GrB:     0.0098 speedup:      29.15 err: 4.57967e-08
trial 3: MATLAB:     0.2862 GrB:     0.0091 speedup:      31.51 err: 4.5832e-08
trial 4: MATLAB:     0.2859 GrB:     0.0105 speedup:      27.14 err: 4.57913e-08
average: MATLAB:     0.2912 GrB:     0.0138 speedup:      21.08
C=A*x: sparse matrix times dense vector:
trial 1: MATLAB:     0.1325 GrB:     0.0199 speedup:       6.65 err: 5.74647e-08
trial 2: MATLAB:     0.1332 GrB:     0.0197 speedup:       6.77 err: 5.74833e-08
trial 3: MATLAB:     0.1334 GrB:     0.0185 speedup:       7.21 err: 5.74665e-08
trial 4: MATLAB:     0.1333 GrB:     0.0211 speedup:       6.32 err: 5.74735e-08
average: MATLAB:     0.1331 GrB:     0.0198 speedup:       6.72

=== MATLAB: double complex vs GraphBLAS: double complex
C=A*B: sparse matrix times sparse matrix:
trial 1: MATLAB:     8.6641 GrB:     0.2967 speedup:      29.20 err: 0
trial 2: MATLAB:     8.6113 GrB:     0.3463 speedup:      24.87 err: 0
trial 3: MATLAB:     8.6190 GrB:     0.3444 speedup:      25.02 err: 0
trial 4: MATLAB:     8.6290 GrB:     0.3700 speedup:      23.32 err: 0
average: MATLAB:     8.6308 GrB:     0.3394 speedup:      25.43
C=A*x: sparse matrix times sparse vector:
trial 1: MATLAB:     0.3201 GrB:     0.0364 speedup:       8.79 err: 2.91584e-18
trial 2: MATLAB:     0.2986 GrB:     0.0143 speedup:      20.93 err: 3.0252e-18
trial 3: MATLAB:     0.2883 GrB:     0.0142 speedup:      20.27 err: 3.11557e-18
trial 4: MATLAB:     0.2885 GrB:     0.0148 speedup:      19.44 err: 2.88111e-18
average: MATLAB:     0.2989 GrB:     0.0199 speedup:      14.99
C=A*x: sparse matrix times dense vector:
trial 1: MATLAB:     0.1377 GrB:     0.0233 speedup:       5.91 err: 9.77031e-18
trial 2: MATLAB:     0.1348 GrB:     0.0221 speedup:       6.10 err: 9.39256e-18
trial 3: MATLAB:     0.1353 GrB:     0.0230 speedup:       5.87 err: 8.59556e-18
trial 4: MATLAB:     0.1349 GrB:     0.0232 speedup:       5.81 err: 8.17499e-18
average: MATLAB:     0.1357 GrB:     0.0229 speedup:       5.92

feature ('numcores')
MATLAB detected: 20 physical cores.
MATLAB detected: 40 logical cores.
MATLAB was assigned: 40 logical cores by the OS.
MATLAB is using: 20 logical cores.
MATLAB is not using all logical cores because hyper-threading is enabled.

ans =

    20

diary off
