The common availability of multi-core and networked computers means that there is an increasing need for effective software development methods in order to harness this available power. This paper describes the use of component oriented methods both in the design and deployment of numerical software. The use of interfaces enables both isolation of areas of complexity and physical separation between client and server code. Three methods of deployment of distributed software are considered. Techniques developed for mobile agents were used to implement a method whereby hosts reside on various remote computers, and client programs then send assemblies (partially compiled code) to the hosts as required. The methods are applicable for both direct...