Skip to content

Instantly share code, notes, and snippets.

@ingenieroariel
Last active August 29, 2015 13:56
Show Gist options
  • Save ingenieroariel/9095001 to your computer and use it in GitHub Desktop.
Save ingenieroariel/9095001 to your computer and use it in GitHub Desktop.
ParallelSparseRegression performance
➜ admm git:(master) ✗ julia test_lasso_single.jl
iter : r eps_pri s eps_dual
1 : 2.12e+01 3.03e-01 1.50e+01 3.20e-03
10 : 1.49e+01 3.24e-01 4.73e-01 1.42e+00
20 : 1.39e+01 3.14e-01 1.26e-01 2.85e+00
30 : 1.31e+01 3.03e-01 1.09e-01 4.20e+00
40 : 1.24e+01 2.93e-01 1.01e-01 5.47e+00
50 : 1.18e+01 2.85e-01 8.77e-02 6.68e+00
60 : 1.12e+01 2.77e-01 7.98e-02 7.82e+00
70 : 1.07e+01 2.71e-01 7.28e-02 8.90e+00
80 : 1.02e+01 2.65e-01 6.74e-02 9.93e+00
90 : 9.77e+00 2.59e-01 6.20e-02 1.09e+01
100 : 9.38e+00 2.54e-01 5.77e-02 1.19e+01
110 : 9.02e+00 2.49e-01 5.38e-02 1.28e+01
120 : 8.69e+00 2.45e-01 5.05e-02 1.36e+01
130 : 8.38e+00 2.41e-01 4.76e-02 1.45e+01
140 : 8.10e+00 2.37e-01 4.46e-02 1.53e+01
150 : 7.84e+00 2.33e-01 4.19e-02 1.60e+01
160 : 7.59e+00 2.30e-01 3.97e-02 1.68e+01
170 : 7.36e+00 2.26e-01 3.78e-02 1.75e+01
180 : 7.15e+00 2.23e-01 3.61e-02 1.82e+01
190 : 6.95e+00 2.20e-01 3.46e-02 1.89e+01
200 : 6.76e+00 2.17e-01 3.29e-02 1.96e+01
210 : 6.59e+00 2.14e-01 3.15e-02 2.02e+01
220 : 6.42e+00 2.11e-01 3.03e-02 2.08e+01
230 : 6.26e+00 2.09e-01 2.92e-02 2.14e+01
240 : 6.11e+00 2.06e-01 2.82e-02 2.20e+01
250 : 5.97e+00 2.03e-01 2.70e-02 2.26e+01
260 : 5.83e+00 2.01e-01 2.60e-02 2.31e+01
270 : 5.70e+00 1.99e-01 2.52e-02 2.37e+01
280 : 5.58e+00 1.96e-01 2.46e-02 2.42e+01
290 : 5.46e+00 1.94e-01 2.36e-02 2.47e+01
300 : 5.35e+00 1.92e-01 2.30e-02 2.53e+01
310 : 5.24e+00 1.90e-01 2.22e-02 2.58e+01
320 : 5.13e+00 1.88e-01 2.17e-02 2.62e+01
330 : 5.04e+00 1.86e-01 2.12e-02 2.67e+01
340 : 4.94e+00 1.84e-01 2.06e-02 2.72e+01
350 : 4.85e+00 1.82e-01 2.01e-02 2.76e+01
360 : 4.76e+00 1.80e-01 1.95e-02 2.81e+01
370 : 4.67e+00 1.78e-01 1.91e-02 2.85e+01
380 : 4.59e+00 1.76e-01 1.83e-02 2.90e+01
390 : 4.51e+00 1.74e-01 1.79e-02 2.94e+01
400 : 4.43e+00 1.73e-01 1.76e-02 2.98e+01
410 : 4.35e+00 1.71e-01 1.72e-02 3.02e+01
420 : 4.28e+00 1.69e-01 1.68e-02 3.06e+01
430 : 4.21e+00 1.68e-01 1.63e-02 3.10e+01
440 : 4.14e+00 1.66e-01 1.59e-02 3.14e+01
450 : 4.08e+00 1.65e-01 1.55e-02 3.18e+01
460 : 4.01e+00 1.63e-01 1.51e-02 3.22e+01
470 : 3.95e+00 1.62e-01 1.48e-02 3.25e+01
480 : 3.89e+00 1.60e-01 1.45e-02 3.29e+01
490 : 3.83e+00 1.59e-01 1.42e-02 3.32e+01
500 : 3.78e+00 1.57e-01 1.39e-02 3.36e+01
510 : 3.72e+00 1.56e-01 1.36e-02 3.39e+01
520 : 3.67e+00 1.55e-01 1.33e-02 3.43e+01
530 : 3.62e+00 1.54e-01 1.31e-02 3.46e+01
540 : 3.57e+00 1.52e-01 1.28e-02 3.50e+01
550 : 3.52e+00 1.51e-01 1.26e-02 3.53e+01
560 : 3.47e+00 1.50e-01 1.22e-02 3.56e+01
570 : 3.42e+00 1.49e-01 1.20e-02 3.59e+01
580 : 3.38e+00 1.47e-01 1.18e-02 3.62e+01
590 : 3.33e+00 1.46e-01 1.16e-02 3.65e+01
600 : 3.29e+00 1.45e-01 1.14e-02 3.68e+01
610 : 3.25e+00 1.44e-01 1.13e-02 3.71e+01
620 : 3.21e+00 1.43e-01 1.10e-02 3.74e+01
630 : 3.17e+00 1.42e-01 1.08e-02 3.77e+01
640 : 3.13e+00 1.41e-01 1.06e-02 3.80e+01
650 : 3.09e+00 1.40e-01 1.04e-02 3.83e+01
660 : 3.05e+00 1.39e-01 1.03e-02 3.86e+01
670 : 3.01e+00 1.38e-01 1.02e-02 3.89e+01
680 : 2.98e+00 1.37e-01 1.00e-02 3.91e+01
690 : 2.94e+00 1.36e-01 9.86e-03 3.94e+01
700 : 2.91e+00 1.35e-01 9.71e-03 3.97e+01
710 : 2.87e+00 1.34e-01 9.43e-03 3.99e+01
720 : 2.84e+00 1.33e-01 9.30e-03 4.02e+01
730 : 2.81e+00 1.32e-01 9.12e-03 4.05e+01
740 : 2.78e+00 1.31e-01 9.00e-03 4.07e+01
750 : 2.75e+00 1.30e-01 8.83e-03 4.10e+01
760 : 2.72e+00 1.29e-01 8.73e-03 4.12e+01
770 : 2.69e+00 1.29e-01 8.57e-03 4.15e+01
780 : 2.66e+00 1.28e-01 8.44e-03 4.17e+01
790 : 2.63e+00 1.27e-01 8.22e-03 4.20e+01
800 : 2.60e+00 1.26e-01 8.05e-03 4.22e+01
810 : 2.57e+00 1.25e-01 7.92e-03 4.24e+01
820 : 2.55e+00 1.25e-01 7.82e-03 4.27e+01
830 : 2.52e+00 1.24e-01 7.71e-03 4.29e+01
840 : 2.50e+00 1.23e-01 7.60e-03 4.31e+01
850 : 2.47e+00 1.22e-01 7.46e-03 4.34e+01
860 : 2.45e+00 1.22e-01 7.39e-03 4.36e+01
870 : 2.42e+00 1.21e-01 7.31e-03 4.38e+01
880 : 2.40e+00 1.20e-01 7.21e-03 4.40e+01
890 : 2.37e+00 1.19e-01 7.15e-03 4.42e+01
900 : 2.35e+00 1.19e-01 7.08e-03 4.45e+01
910 : 2.33e+00 1.18e-01 6.94e-03 4.47e+01
920 : 2.31e+00 1.17e-01 6.83e-03 4.49e+01
930 : 2.29e+00 1.17e-01 6.72e-03 4.51e+01
940 : 2.27e+00 1.16e-01 6.61e-03 4.53e+01
950 : 2.24e+00 1.15e-01 6.47e-03 4.55e+01
960 : 2.22e+00 1.15e-01 6.41e-03 4.57e+01
970 : 2.20e+00 1.14e-01 6.35e-03 4.59e+01
980 : 2.18e+00 1.13e-01 6.21e-03 4.61e+01
990 : 2.17e+00 1.13e-01 6.13e-03 4.63e+01
1000 : 2.15e+00 1.12e-01 6.07e-03 4.65e+01
elapsed time: 90.979009048 seconds (12805856436 bytes allocated)
➜ admm git:(master) ✗ julia test_lasso_single.jl
iter : r eps_pri s eps_dual
1 : 2.11e+01 3.01e-01 1.49e+01 3.20e-03
10 : 1.38e+01 3.34e-01 4.46e-01 1.32e+00
20 : 1.28e+01 3.27e-01 1.24e-01 2.63e+00
30 : 1.20e+01 3.17e-01 1.07e-01 3.87e+00
40 : 1.14e+01 3.09e-01 1.03e-01 5.04e+00
50 : 1.08e+01 3.02e-01 8.26e-02 6.14e+00
60 : 1.02e+01 2.95e-01 7.51e-02 7.18e+00
70 : 9.76e+00 2.90e-01 6.87e-02 8.17e+00
80 : 9.33e+00 2.85e-01 6.27e-02 9.11e+00
90 : 8.95e+00 2.80e-01 5.81e-02 1.00e+01
100 : 8.60e+00 2.76e-01 5.38e-02 1.09e+01
110 : 8.28e+00 2.72e-01 4.99e-02 1.17e+01
120 : 7.98e+00 2.68e-01 4.69e-02 1.25e+01
130 : 7.71e+00 2.65e-01 4.40e-02 1.33e+01
140 : 7.46e+00 2.61e-01 4.17e-02 1.40e+01
150 : 7.22e+00 2.58e-01 3.98e-02 1.47e+01
160 : 7.00e+00 2.55e-01 3.77e-02 1.54e+01
170 : 6.80e+00 2.52e-01 3.59e-02 1.61e+01
180 : 6.60e+00 2.50e-01 3.42e-02 1.67e+01
190 : 6.42e+00 2.47e-01 3.26e-02 1.73e+01
200 : 6.25e+00 2.44e-01 3.15e-02 1.80e+01
210 : 6.08e+00 2.42e-01 3.01e-02 1.85e+01
220 : 5.93e+00 2.39e-01 2.86e-02 1.91e+01
230 : 5.78e+00 2.37e-01 2.75e-02 1.97e+01
240 : 5.64e+00 2.35e-01 2.66e-02 2.02e+01
250 : 5.51e+00 2.32e-01 2.57e-02 2.08e+01
260 : 5.38e+00 2.30e-01 2.49e-02 2.13e+01
270 : 5.26e+00 2.28e-01 2.43e-02 2.18e+01
280 : 5.14e+00 2.26e-01 2.35e-02 2.23e+01
290 : 5.03e+00 2.24e-01 2.28e-02 2.28e+01
300 : 4.92e+00 2.22e-01 2.20e-02 2.32e+01
310 : 4.82e+00 2.20e-01 2.12e-02 2.37e+01
320 : 4.72e+00 2.18e-01 2.06e-02 2.41e+01
330 : 4.62e+00 2.16e-01 1.99e-02 2.46e+01
340 : 4.53e+00 2.14e-01 1.94e-02 2.50e+01
350 : 4.44e+00 2.12e-01 1.89e-02 2.54e+01
360 : 4.36e+00 2.11e-01 1.84e-02 2.58e+01
370 : 4.27e+00 2.09e-01 1.80e-02 2.62e+01
380 : 4.19e+00 2.07e-01 1.75e-02 2.66e+01
390 : 4.12e+00 2.06e-01 1.70e-02 2.70e+01
400 : 4.04e+00 2.04e-01 1.66e-02 2.74e+01
410 : 3.97e+00 2.02e-01 1.62e-02 2.78e+01
420 : 3.90e+00 2.01e-01 1.58e-02 2.82e+01
430 : 3.83e+00 1.99e-01 1.54e-02 2.85e+01
440 : 3.76e+00 1.98e-01 1.51e-02 2.89e+01
450 : 3.70e+00 1.97e-01 1.49e-02 2.92e+01
460 : 3.64e+00 1.95e-01 1.46e-02 2.96e+01
470 : 3.58e+00 1.94e-01 1.43e-02 2.99e+01
480 : 3.52e+00 1.92e-01 1.39e-02 3.02e+01
490 : 3.46e+00 1.91e-01 1.37e-02 3.06e+01
500 : 3.40e+00 1.90e-01 1.34e-02 3.09e+01
510 : 3.35e+00 1.89e-01 1.32e-02 3.12e+01
520 : 3.29e+00 1.87e-01 1.29e-02 3.15e+01
530 : 3.24e+00 1.86e-01 1.27e-02 3.18e+01
540 : 3.19e+00 1.85e-01 1.24e-02 3.21e+01
550 : 3.14e+00 1.84e-01 1.22e-02 3.24e+01
560 : 3.09e+00 1.83e-01 1.19e-02 3.27e+01
570 : 3.05e+00 1.81e-01 1.17e-02 3.30e+01
580 : 3.00e+00 1.80e-01 1.15e-02 3.33e+01
590 : 2.95e+00 1.79e-01 1.13e-02 3.35e+01
600 : 2.91e+00 1.78e-01 1.10e-02 3.38e+01
610 : 2.87e+00 1.77e-01 1.08e-02 3.41e+01
620 : 2.82e+00 1.76e-01 1.06e-02 3.43e+01
630 : 2.78e+00 1.75e-01 1.03e-02 3.46e+01
640 : 2.74e+00 1.74e-01 1.01e-02 3.49e+01
650 : 2.70e+00 1.73e-01 9.89e-03 3.51e+01
660 : 2.66e+00 1.72e-01 9.70e-03 3.54e+01
670 : 2.63e+00 1.71e-01 9.49e-03 3.56e+01
680 : 2.59e+00 1.70e-01 9.31e-03 3.58e+01
690 : 2.56e+00 1.69e-01 9.17e-03 3.61e+01
700 : 2.52e+00 1.69e-01 9.05e-03 3.63e+01
710 : 2.49e+00 1.68e-01 8.91e-03 3.66e+01
720 : 2.45e+00 1.67e-01 8.76e-03 3.68e+01
730 : 2.42e+00 1.66e-01 8.64e-03 3.70e+01
740 : 2.39e+00 1.65e-01 8.49e-03 3.72e+01
750 : 2.36e+00 1.64e-01 8.36e-03 3.75e+01
760 : 2.33e+00 1.63e-01 8.25e-03 3.77e+01
770 : 2.30e+00 1.63e-01 8.08e-03 3.79e+01
780 : 2.27e+00 1.62e-01 7.96e-03 3.81e+01
790 : 2.24e+00 1.61e-01 7.86e-03 3.83e+01
800 : 2.21e+00 1.60e-01 7.74e-03 3.85e+01
810 : 2.19e+00 1.60e-01 7.64e-03 3.87e+01
820 : 2.16e+00 1.59e-01 7.55e-03 3.89e+01
830 : 2.13e+00 1.58e-01 7.43e-03 3.91e+01
840 : 2.11e+00 1.57e-01 7.32e-03 3.93e+01
850 : 2.08e+00 1.57e-01 7.21e-03 3.95e+01
860 : 2.06e+00 1.56e-01 7.12e-03 3.97e+01
870 : 2.03e+00 1.55e-01 7.01e-03 3.99e+01
880 : 2.01e+00 1.55e-01 6.90e-03 4.01e+01
890 : 1.98e+00 1.54e-01 6.81e-03 4.03e+01
900 : 1.96e+00 1.53e-01 6.63e-03 4.04e+01
910 : 1.94e+00 1.53e-01 6.50e-03 4.06e+01
920 : 1.91e+00 1.52e-01 6.40e-03 4.08e+01
930 : 1.89e+00 1.51e-01 6.32e-03 4.10e+01
940 : 1.87e+00 1.51e-01 6.23e-03 4.11e+01
950 : 1.85e+00 1.50e-01 6.13e-03 4.13e+01
960 : 1.83e+00 1.50e-01 6.06e-03 4.15e+01
970 : 1.81e+00 1.49e-01 5.99e-03 4.17e+01
980 : 1.79e+00 1.48e-01 5.88e-03 4.18e+01
990 : 1.77e+00 1.48e-01 5.81e-03 4.20e+01
1000 : 1.75e+00 1.47e-01 5.74e-03 4.21e+01
elapsed time: 228.324713722 seconds (28927210844 bytes allocated)
➜ admm git:(master) ✗ julia test_lasso_single.jl
iter : r eps_pri s eps_dual
1 : 2.03e+01 2.90e-01 1.43e+01 3.20e-03
10 : 1.35e+01 3.18e-01 4.33e-01 1.29e+00
20 : 1.26e+01 3.10e-01 1.14e-01 2.58e+00
30 : 1.18e+01 3.00e-01 1.02e-01 3.80e+00
40 : 1.12e+01 2.91e-01 9.21e-02 4.95e+00
50 : 1.06e+01 2.84e-01 8.15e-02 6.03e+00
60 : 1.00e+01 2.77e-01 7.39e-02 7.06e+00
70 : 9.57e+00 2.71e-01 6.72e-02 8.03e+00
80 : 9.14e+00 2.65e-01 6.21e-02 8.95e+00
90 : 8.75e+00 2.60e-01 5.74e-02 9.84e+00
100 : 8.39e+00 2.56e-01 5.38e-02 1.07e+01
110 : 8.07e+00 2.51e-01 5.02e-02 1.15e+01
120 : 7.77e+00 2.47e-01 4.69e-02 1.23e+01
130 : 7.49e+00 2.44e-01 4.40e-02 1.30e+01
140 : 7.24e+00 2.40e-01 4.14e-02 1.37e+01
150 : 7.00e+00 2.37e-01 3.92e-02 1.44e+01
160 : 6.78e+00 2.33e-01 3.70e-02 1.51e+01
170 : 6.57e+00 2.30e-01 3.53e-02 1.57e+01
180 : 6.38e+00 2.27e-01 3.36e-02 1.64e+01
190 : 6.20e+00 2.25e-01 3.20e-02 1.70e+01
200 : 6.03e+00 2.22e-01 3.07e-02 1.75e+01
210 : 5.87e+00 2.19e-01 2.93e-02 1.81e+01
220 : 5.71e+00 2.17e-01 2.79e-02 1.87e+01
230 : 5.57e+00 2.14e-01 2.66e-02 1.92e+01
240 : 5.43e+00 2.12e-01 2.56e-02 1.97e+01
250 : 5.30e+00 2.09e-01 2.47e-02 2.02e+01
260 : 5.18e+00 2.07e-01 2.40e-02 2.07e+01
270 : 5.06e+00 2.05e-01 2.33e-02 2.12e+01
280 : 4.95e+00 2.03e-01 2.26e-02 2.17e+01
290 : 4.84e+00 2.01e-01 2.19e-02 2.21e+01
300 : 4.74e+00 1.99e-01 2.12e-02 2.26e+01
310 : 4.64e+00 1.97e-01 2.04e-02 2.30e+01
320 : 4.55e+00 1.95e-01 1.98e-02 2.35e+01
330 : 4.46e+00 1.93e-01 1.93e-02 2.39e+01
340 : 4.37e+00 1.91e-01 1.87e-02 2.43e+01
350 : 4.29e+00 1.89e-01 1.83e-02 2.47e+01
360 : 4.21e+00 1.88e-01 1.78e-02 2.51e+01
370 : 4.13e+00 1.86e-01 1.73e-02 2.55e+01
380 : 4.05e+00 1.84e-01 1.70e-02 2.59e+01
390 : 3.98e+00 1.83e-01 1.66e-02 2.62e+01
400 : 3.91e+00 1.81e-01 1.61e-02 2.66e+01
410 : 3.84e+00 1.80e-01 1.58e-02 2.70e+01
420 : 3.77e+00 1.78e-01 1.53e-02 2.73e+01
430 : 3.71e+00 1.77e-01 1.47e-02 2.77e+01
440 : 3.64e+00 1.75e-01 1.43e-02 2.80e+01
450 : 3.58e+00 1.74e-01 1.40e-02 2.83e+01
460 : 3.52e+00 1.73e-01 1.37e-02 2.87e+01
470 : 3.47e+00 1.71e-01 1.34e-02 2.90e+01
480 : 3.41e+00 1.70e-01 1.31e-02 2.93e+01
490 : 3.36e+00 1.69e-01 1.29e-02 2.96e+01
500 : 3.30e+00 1.67e-01 1.27e-02 2.99e+01
510 : 3.25e+00 1.66e-01 1.24e-02 3.02e+01
520 : 3.20e+00 1.65e-01 1.21e-02 3.05e+01
530 : 3.15e+00 1.64e-01 1.19e-02 3.08e+01
540 : 3.11e+00 1.63e-01 1.16e-02 3.11e+01
550 : 3.06e+00 1.62e-01 1.14e-02 3.14e+01
560 : 3.01e+00 1.60e-01 1.12e-02 3.17e+01
570 : 2.97e+00 1.59e-01 1.10e-02 3.20e+01
580 : 2.93e+00 1.58e-01 1.08e-02 3.22e+01
590 : 2.89e+00 1.57e-01 1.06e-02 3.25e+01
600 : 2.84e+00 1.56e-01 1.03e-02 3.28e+01
610 : 2.81e+00 1.55e-01 1.02e-02 3.30e+01
620 : 2.77e+00 1.54e-01 9.98e-03 3.33e+01
630 : 2.73e+00 1.53e-01 9.84e-03 3.35e+01
640 : 2.69e+00 1.52e-01 9.60e-03 3.38e+01
650 : 2.65e+00 1.51e-01 9.45e-03 3.40e+01
660 : 2.62e+00 1.51e-01 9.27e-03 3.43e+01
670 : 2.58e+00 1.50e-01 9.06e-03 3.45e+01
680 : 2.55e+00 1.49e-01 8.87e-03 3.47e+01
690 : 2.52e+00 1.48e-01 8.74e-03 3.50e+01
700 : 2.48e+00 1.47e-01 8.57e-03 3.52e+01
710 : 2.45e+00 1.46e-01 8.44e-03 3.54e+01
720 : 2.42e+00 1.45e-01 8.25e-03 3.57e+01
730 : 2.39e+00 1.45e-01 8.07e-03 3.59e+01
740 : 2.36e+00 1.44e-01 7.96e-03 3.61e+01
750 : 2.33e+00 1.43e-01 7.85e-03 3.63e+01
760 : 2.30e+00 1.42e-01 7.73e-03 3.65e+01
770 : 2.28e+00 1.41e-01 7.64e-03 3.67e+01
780 : 2.25e+00 1.41e-01 7.54e-03 3.69e+01
790 : 2.22e+00 1.40e-01 7.45e-03 3.72e+01
800 : 2.20e+00 1.39e-01 7.34e-03 3.74e+01
810 : 2.17e+00 1.38e-01 7.26e-03 3.76e+01
820 : 2.14e+00 1.38e-01 7.17e-03 3.78e+01
830 : 2.12e+00 1.37e-01 7.05e-03 3.79e+01
840 : 2.09e+00 1.36e-01 6.96e-03 3.81e+01
850 : 2.07e+00 1.36e-01 6.88e-03 3.83e+01
860 : 2.05e+00 1.35e-01 6.76e-03 3.85e+01
870 : 2.02e+00 1.34e-01 6.66e-03 3.87e+01
880 : 2.00e+00 1.34e-01 6.58e-03 3.89e+01
890 : 1.98e+00 1.33e-01 6.50e-03 3.91e+01
900 : 1.96e+00 1.32e-01 6.40e-03 3.93e+01
910 : 1.94e+00 1.32e-01 6.33e-03 3.94e+01
920 : 1.91e+00 1.31e-01 6.25e-03 3.96e+01
930 : 1.89e+00 1.31e-01 6.19e-03 3.98e+01
940 : 1.87e+00 1.30e-01 6.03e-03 4.00e+01
950 : 1.85e+00 1.29e-01 5.96e-03 4.01e+01
960 : 1.83e+00 1.29e-01 5.90e-03 4.03e+01
970 : 1.81e+00 1.28e-01 5.83e-03 4.05e+01
980 : 1.79e+00 1.28e-01 5.75e-03 4.06e+01
990 : 1.77e+00 1.27e-01 5.61e-03 4.08e+01
1000 : 1.76e+00 1.27e-01 5.54e-03 4.09e+01
elapsed time: 24.422318823 seconds (6440755392 bytes allocated)
#addprocs(3)
using ParallelSparseRegression
m,n,p = 2048,1024,.1
A = sprand(m,n,p)
x0 = Base.shmem_randn(n)
b = A*x0
rho = 1
lambda = 1
quiet = false
maxiters = 100
params = Params(rho,quiet,maxiters)
# Lasso
@time z_lasso = lasso(A,b,lambda; params=params)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment