Mapping fundamental algorithms onto multiprocessor architectures