Examples include many algorithms to solve Rubik's Cubes and find values which result in a given hash.
These are, for instance, practically important problems of searching a target element in data structures, evaluation of an algebraic expression, etc.
[4] Parallel algorithms on individual devices have become more common since the early 2000s because of substantial improvements in multiprocessing systems and the rise of multi-core processors.
Since 2004 however, frequency scaling hit a wall, and thus multicore systems have become more widespread, making parallel algorithms of more general use.
The cost or complexity of serial algorithms is estimated in terms of the space (memory) and time (processor cycles) that they take.