what are the top parallel search algorithms used by top engines ,and which one is the best ? And is there a reference implementation of them in any programming language ? I know most of the top engines are open source but they tend to be extremely complex and unsuitable for learning .
Best performing algorithms are YBWC and DTS. Lazy SMP is probably giving best performance/complexity ratio. You can read more about parallel search algorithms here (make sure to check referencies and links. As for reference realization, I haven't seen any, so I just used simpler engines with parallel search, and, mostly, algorithms descriptions.
For most engines, this is proprietary information. However, Stockfish is quite good and is open source; its search algorithm is found here
You can read all about chess programming here.
In general, chess engines start with some form of minimax algorithm with alpha-beta pruning, then add in refinements.