Какой примерно объем входных данных и какой - вычислений? Тип вход 10'000 чисел, объем вычислений примерно 50M операций. Или как? Лучший метод минимизировать время одного запроса при большом количестве вычислительных операций в нём - принять его, превратить в бинарник (скажем C++), скомпилировать, вернуть. Парсеры и компоновщики XML лучше держать готовыми в памяти, чтобы их каждый раз не компилировать и не подгружать, работать с ними через всякие TCP/IP прямо на этой же машине.
Вообще как вариант - держать в памяти мега-оптимизированные балансирующиеся вычислительные модули. Но вот с реализацией этих балансирующихся модулей большие вопросы.
И вообще - накидайте 3-5 примеров использования - программы и данные, тогда будет ясно о чем речь и что вам посоветовать.