Hi,
I am reading "Choosing the Right Runtime" section of the "Real World Haskell" book, and having a question.
There are typically four cases as follows:
 
 
 
 
 
  | case # | code | linking | RTS -N | 
 
  | 1 | sequential | non-threaded | 1 | 
 
  | 2 | concurrent/parallel | non-threaded | 1 | 
 
  | 3 | concurrent/parallel | threaded | 1 | 
 
  | 4 | concurrent/parallel | threaded | > 1 | 
Case #4 may or may not be faster than #3. But #3 is definitely slower than #1 and #2, due to overhead from threaded runtime lib.
Now my question is, how does #2 compare with #1? (#2 must make sense, otherwise it would not be an option, and the book authors would not have specifically talked about it in one section.) Are the authors implying #2 may be potentially much faster than #1? If there were no such potential, one would just write sequential codes without attempting concurrent/parallel style, under the circumstances where his job is limited to one core.
Thanks,