1. A method of efficiently using computing resources including multiple microprocessors and at least one memory, said method comprising the steps of; a first process requesting a task, a second process determining the resources available for servicing the task, such resources comprising a first microprocessor running said first and second processes and a second microprocessor, said second process determining the capabilities of said second microprocessor, said second process optimizing said task for ultimate computation, said second process determining if said optimized task is within said determined capabilities of said second microprocessor, compiling said task for said second microprocessor if a determination has been made that said second microprocessor has capabilities to run said compiled task.