sequential code linked against nonthreaded lib vs. concurrent/parallel code linked against threaded runtime lib, both on one core

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, Hong
participants (1)
-
Hong Yang