Improving the Reliability and Programmbility of Future Multiprocessor Systems