This research will focus on the design of parallel algorithms, languages and simulation tools that promote effective utilization of parallel architectures by simplifying the task of programming them efficiently. Also, research in evolutionary software design methodologies based on the use of hybrid models that include simulated and implemented system components for the design of performance-critical distributed systems will be performed.