Encyclopedia of parallel computing