I had to switch computers to my plain iMac 2017. the timing here is 41.27 seconds. Looking at my macos system monitor, the R process consumes 100% of the CPU, but only one CPU. the data.table version is 1.10.4, and it does not know any getDTthreads() function. so, I am going to guess this is a single thread.
the input file itself is
"permno","yyyymmdd","prc","vol","ret","shrout","openprc","numtrd","retx","vwretd","ewretd","eom"
10000,19860108,-2.5,12800,-0.02439,3680,NA,NA,-0.02439,-0.020744,-0.005117,0
10000,19860109,-2.5,1400,0,3680,NA,NA,0,-0.011219,-0.011588,0
10000,19860110,-2.5,8500,0,3680,NA,NA,0,0.000083,0.003651,0
10000,19860113,-2.625,5450,0.05,3680,NA,NA,0.05,0.002749,0.002433,0
10000,19860114,-2.75,2075,0.047619,3680,NA,NA,0.047619,0.000366,0.004474,0
10000,19860115,-2.875,22490,0.045455,3680,NA,NA,0.045455,0.008206,0.007693,0
10000,19860116,-3,10900,0.043478,3680,NA,NA,0.043478,0.004702,0.00567,0
10000,19860117,-3,8470,0,3680,NA,NA,0,-0.001741,0.003297,0
10000,19860120,-3,1000,0,3680,NA,NA,0,-0.003735,-0.001355,0
10000,19860121,-3,1000,0,3680,NA,NA,0,-0.006992,-0.003472,0
10000,19860122,-3,2700,0,3680,NA,NA,0,-0.009593,-0.004588,0
10000,19860123,-3.75,24000,0.25,3680,NA,NA,0.25,0.002664,0.001397,0
10000,19860124,-4.1875,11372,0.116667,3680,NA,NA,0.116667,0.009684,0.006771,0
10000,19860127,-4.4375,16570,0.059701,3680,NA,NA,0.059701,0.004343,0.00214,0
10000,19860128,-4.4375,9600,0,3680,NA,NA,0,0.009632,0.003179,0
10000,19860129,-4.3125,24505,-0.028169,3680,NA,NA,-0.028169,0.002445,-0.000248,0
10000,19860130,-4.4375,8600,0.028986,3680,NA,NA,0.028986,-0.003073,0.000895,0
10000,19860131,-4.375,4650,-0.014085,3680,NA,NA,-0.014085,0.009399,0.00539,1
10000,19860203,-4.375,3700,0,3680,NA,NA,0,0.008703,0.002844,0
...
but of course with another 90 million or so lines. Overall statistics are
mean sd tstat NOK NNA
permno 53440.3931 28732.7801 17538.0 88915607 0
yyyymmdd 19888762.6735 197981.5946 947266.0 88915607 0
prc 22.6829 913.5692 234.1 88915607 0
vol 337175.5352 3317740.5384 923.5 82564778 6350829
ret 0.0008 0.0430 175.4 88915607 0
shrout 38923.9254 212222.0158 1729.5 88915607 0
openprc 35.1874 1213.0264 205.7 50296418 38619189
numtrd 1012.6867 5928.4233 906.5 28164270 60751337
retx 0.0007 0.0431 153.2 88915607 0
vwretd 0.0004 0.0104 362.7 88915607 0
ewretd 0.0008 0.0090 838.2 88915607 0
eom 0.0475 0.2127 2105.8 88915607 0
a cat of the file to /dev/null from cache takes under a second. a conversion of 89 million strings to floats takes about 2-4 seconds. so about 25-50 seconds to convert all 12 fields. (a āwcā takes about 15 seconds.)
fread() looks pretty good. alas, I have no idea how difficult it would be to adopt their code into julia. this is beyond me, as the main skillset here is presumably being able to interface their C to julia.
/iaw