Code:
Code:
cap mata mata drop test()
mata
mata clear
mata set matastrict on
mata set mataoptimize on
mata set matalnum off
void test() {
real matrix u, X; real scalar i
X = runiform(100,10000)
timer_clear()
rseed(1)
u = runiform(10000, 10000) :>= .5; u = u :- .5
timer_on(1)
for (i=10;i;i--)
(void) X*u
timer_off(1)
rseed(1)
u = (runiform(10000, 10000) :>= .5) :- .5
timer_on(2)
for (i=10;i;i--)
(void) X*u
timer_off(2)
timer()
}
test()
end
Code:
-------------------------------------------------------------------------------------------------------- timer report 1. 77.9 / 1 = 77.948 2. 80.7 / 1 = 80.733 --------------------------------------------------------------------------------------------------------
Code:
-------------------------------------------------------------------------------------------------------- timer report 1. 37.3 / 1 = 37.259 2. 48.4 / 1 = 48.448 --------------------------------------------------------------------------------------------------------
I'm doing this on an Intel i7-8650, which is a new, quad-core chip for laptops. Hyperthreading is enabled. I have 16GB, which is plenty for these operations.

Leave a comment: