Újdonságok a -ben

A Stata gyorsabbá tétele

A Stata a pontosságot és a sebességet értékeli. A kettő között gyakran van egy kompromisszum, de a Stata arra törekszik, hogy a felhasználók mindkét világ legjobbjait kapják. Folyamatosan optimalizáljuk és fejlesztjük rutinjainkat a modern számítási teljesítmény és algoritmusok kihasználása érdekében, hogy a Stata még gyorsabban futhasson.
A Stata 17-ben frissítettük a sort és collapse mögött álló algoritmusokat, hogy ezek a parancsok gyorsabbak legyenek, Sokkal gyorsabbak. Mivel a sort parancsot sok más Stata parancs használja, ezek a parancsok is gyorsabbak. A sort 1,5-6-szor gyorsabb, amint az az alábbi 1. táblázatban látható. Például,10 millió megfigyeléssel és 20 változóval az időzítés 3 másodperc közelébe esett vissza a Stata / SE 17-ben, és közel 20 másodpercre a Stata / SE 16-ban!

Kiemelt

    • a sort sokkal gyorsabb.
    • a collapse sokkal sokkal gyorsabb.
    • Az MKL-alapú Mata funkciók és operációk gyorsabbak.
    • A vegyes modellek gyorsabbak.

az import delimited most párhuzamos a Stata/MP-ben.

Table 1: Stata 17 versus Stata 16 timings in seconds for 20 variables and different observation numbers and edition combinations
  Mean timings in seconds
Observations and edition Stata 17 Stata 16 Speedup
10,000  
SE 0.08 0.35 4.42
MP4 0.07 0.14 2.02
MP8 0.06 0.10 1.79
100,000  
SE 0.14 0.54 3.75
MP4 0.10 0.23 2.36
MP8 0.08 0.16 1.97
1,000,000  
SE 0.25 0.77 3.14
MP4 0.16 0.44 2.83
MP8 0.14 0.32 2.54
10,000,000  
SE 3.34 19.76 5.92
MP4 2.06 6.90 3.35
MP8 1.89 5.50 2.91
Timings run in Windows 10 on a computer with an i9-9900KS processor at 4.00GHz and 64GB RAM

Az collapse parancs létrehoz egy összefoglaló statisztikai adatkészletet, és az egyik leggyakrabban használt adatkezelési parancs. Az adatok méretének növekedésével szükségszerűen növekszik a futásideje is. A Stata 17-ben az adatkészlet méretétől függően az összeomlás 6 és 13-szoros gyorsulást jelent az egyszerű átlag kiszámításához, és 40 és 70-szeresét a statisztikák, például a mediánok és az általános eltérések kiszámításához. A 2. táblázat bemutatja az adatok összecsukásának eredményeit 10 000 000 megfigyeléssel és változó számú összecsukott változóval arra az esetre, amikor kiszámítjuk a mediánokat és az általános eltéréseket.

Table 2: Stata 17 versus Stata 16 timings in seconds for 10,000,000 observations for different variable number and edition combinations
Variables and edition Stata 17 Stata 16 Speedup
10  
SE .3412143 13.96871 40.96581
MP4 .23 16.39493 71.29675
MP8 .2091429 13.41664 64.17162
100  
SE .3068571 13.86514 45.1849d
MP4 .2205714 16.06886 72.86166
MP8 .196 13.41314 68.43816
1,000  
SE .3437143 13.994 40.73298
MP4 .2277143 16.34614 71.79339
MP8 .2117143 13.39286 63.26852
10,000  
SE .3392857 13.92886 41.09007
MP4 .2287143 16.149 70.61243
MP8 .207 13.36543 64.58582
100,000  
SE .3177143 13.97943 44.03442
MP4 .224 16.22057 72.43024
MP8 .1944286 13.38586 68.85059
Timings run in Windows 10 on a computer with an i9-9900KS processor at 4.00GHz and 64GB RAM

A Stata 17 esetében a sebesség javítását is elértük a becsléshez. A Mata számos funkciójának és operációjának alapjául szolgáló lineáris algebrai csomag (LAPACK) működését most az Intel Math Kernel Library (MKL) biztosítja. Mennyivel gyorsabb az új MKL? A Stata / SE 5000 és 5000 közötti valós mátrixának és az azonos dimenziójú valós mátrixnak a szorzata körülbelül 13 másodpercet vesz igénybe a Stata 17 MKL használatával, szemben a Stata 16 70 másodpercével.
Két valós mátrix szorzásának időzítése másodpercben:

Edition Size MKL non-MKL
MP8 5,000 by 5,000 2.55 10.26
MP8 10,000 by 10,000 17.28 85.60
   
MP4 5,000 by 5,000 3.62 15.95
MP4 10,000 by 10,000 28.22 127.24
   
SE 5,000 by 5,000 13.64 70.61
SE 10,000 by 10,000 108.33 566.99
Timings run in Windows 10 on a computer with an i9-9900KS processor at 4.00GHz and 64GB RAM

Timing of cholesky() in seconds:

Edition Size MKL non-MKL
MP8 5,000 by 5,000 0.42 16.69
MP8 10,000 by 10,000 2.91 133.60
   
MP4 5,000 by 5,000 0.69 16.69
MP4 10,000 by 10,000 5.03 133.70
   
SE 5,000 by 5,000 2.41 18.62
SE 10,000 by 10,000 16.66 133.63
Timings run in Windows 10 on a computer with an i9-9900KS processor at 4.00GHz and 64GB RAM

A LAPACK-ot számos becslési parancs használja a számítások során, így automatikusan gyorsabbak is.
A CSV-ből és más elválasztott szövegfájlokból származó adatok importálásához az import delimited parancs össze van hangolva a Stata / MP-ben. A Stata 17-ben akár négyszer gyorsabban importálhat nagy adatállományokat.
Végül, de nem utolsósorban, a többszintű vegyes hatású modellek felszerelésére szolgáló mixed parancs gyorsabb. Időzítésünkben a 10 000 panellel, 10 időperiódussal és 5 véletlenszerű lejtésparaméterrel rendelkező modellek 2-3-szor gyorsabban futnak a Stata 17-ben, mint a Stata 16-ban. Hasonló sebességjavulások történtek a panelek különböző száma, az időszakok és a lejtési együtthatók esetében is.
Folyamatosan keressük a Stata gyorsabbá tételének módjait. Aktívan vizsgáljuk, kódoljuk és teszteljük az algoritmusokat az adatkezelésben és a becslési rutinokban, és folyamatosan tájékoztatjuk Önt a legújabb fejlesztésekről.

Referenciák

Hunter, J. D. 2007. Matplotlib: A 2D Graphics Environment. Computing in Science & Engineering 9: 90–95.
McDowell, A., A. Engel, J. T. Massey, and K. Maurer. 1981. Plan and operation of the Second National Health and Nutrition Examination Survey, 1976–1980. Vital and Health Statistics 1(15): 1–144.
Mckinney, W. 2010. Data Structures for Statistical Computing in Python. Proceedings of the 9th Python in Science Conference, 56–61. (publisher link).
Oliphant, T. E. 2006. A Guide to NumPy, 2nd ed. Austin, TX: Continuum Press.
Péz, F., and B. E. Granger. 2007. IPython: A System for Interactive Scientific Computing, Computing in Science and Engineering 9: 21–29. DOI:10.1109/MCSE.2007.53 (publisher link)