Run the divided list in parallel. Speedup of ~1.32, details below.
Run the divided list in parallel. Speedup of ~1.32, details below.

13.793s before this par:
$ ./f3.sh artamene.txt
Calculate frequency of elements in a list.
After freq return. Time: 0.00s

Frequency count for 500000 random numbers:
3:	100368
5:	100336
4:	99930
2:	99896
1:	99470

Total: 500000
After num frequency print. Time: 0.56s

Top 10 words in artamene.txt:
"de":	87178
"que":	67057
"et":	47254
":":	44569
"la":	42343
"\224":	34063
"ne":	32839
"vous":	29862
"le":	29532
"je":	29121

Total: 443818
After word frequency print. Time: 7.08s

Top 10 characters in artamene.txt:
' ':	1988692
'e':	1446254
's':	731644
'i':	623145
'u':	603616
't':	599321
'a':	584293
'n':	568182
'r':	559543
'o':	533967

Total: 8238657
After char frequency print. Time: 13.70s
   9,094,911,752 bytes allocated in the heap
   4,787,211,896 bytes copied during GC
     493,920,232 bytes maximum residency (20 sample(s))
      17,842,480 bytes maximum slop
            1242 MB total memory in use (0 MB lost due to fragmentation)

                                     Tot time (elapsed)  Avg pause  Max pause
  Gen  0     17337 colls, 17337 par    7.713s   4.985s     0.0003s    0.0047s
  Gen  1        20 colls,    19 par    4.131s   2.658s     0.1329s    0.7650s

  Parallel GC work balance: 8.51% (serial 0%, perfect 100%)

  TASKS: 6 (1 bound, 5 peak workers (5 total), using -N2)

  SPARKS: 0 (0 converted, 0 overflowed, 0 dud, 0 GC'd, 0 fizzled)

  INIT    time    0.000s  (  0.010s elapsed)
  MUT     time    6.042s  (  6.060s elapsed)
  GC      time   11.843s  (  7.644s elapsed)
  EXIT    time    0.005s  (  0.079s elapsed)
  Total   time   17.892s  ( 13.793s elapsed)

  Alloc rate    1,505,262,221 bytes per MUT second

  Productivity  33.8% of total user, 43.8% of total elapsed

gc_alloc_block_sync: 106081
whitehole_spin: 0
gen[0].sync: 0
gen[1].sync: 0

10.435s after this par:
$ ./f3.sh artamene.txt
Calculate frequency of elements in a list.
After freq return. Time: 0.00s

Frequency count for 500000 random numbers:
4:	100166
5:	99993
1:	99987
2:	99982
3:	99872

Total: 500000
After num frequency print. Time: 0.42s

Top 10 words in artamene.txt:
"de":	87178
"que":	67057
"et":	47254
":":	44569
"la":	42343
"\224":	34063
"ne":	32839
"vous":	29862
"le":	29532
"je":	29121

Total: 443818
After word frequency print. Time: 5.57s

Top 10 characters in artamene.txt:
' ':	1988692
'e':	1446254
's':	731644
'i':	623145
'u':	603616
't':	599321
'a':	584293
'n':	568182
'r':	559543
'o':	533967

Total: 8238657
After char frequency print. Time: 10.32s
   9,980,892,752 bytes allocated in the heap
   4,676,227,984 bytes copied during GC
     542,698,488 bytes maximum residency (20 sample(s))
      17,157,344 bytes maximum slop
            1518 MB total memory in use (0 MB lost due to fragmentation)

                                     Tot time (elapsed)  Avg pause  Max pause
  Gen  0     13578 colls, 13578 par    7.646s   3.968s     0.0003s    0.0028s
  Gen  1        20 colls,    19 par    3.683s   2.433s     0.1216s    0.6415s

  Parallel GC work balance: 26.65% (serial 0%, perfect 100%)

  TASKS: 6 (1 bound, 5 peak workers (5 total), using -N2)

  SPARKS: 6 (3 converted, 0 overflowed, 0 dud, 0 GC'd, 3 fizzled)

  INIT    time    0.000s  (  0.009s elapsed)
  MUT     time    5.047s  (  3.929s elapsed)
  GC      time   11.329s  (  6.401s elapsed)
  EXIT    time    0.007s  (  0.096s elapsed)
  Total   time   16.384s  ( 10.435s elapsed)

  Alloc rate    1,977,651,907 bytes per MUT second

  Productivity  30.9% of total user, 48.4% of total elapsed

gc_alloc_block_sync: 698017
whitehole_spin: 0
gen[0].sync: 383
gen[1].sync: 47954

apauley/parallel-frequency