Не всякую математику можно обсчитать в "реальном" времени, тем более в условиях ограниченного железа, вы должны это понимать.
Смысла во фразе "Сервер должен быстро работать" чуть менее, чем ноль. У вас каждое вычисление константно в смысле ресурсоемкости? Или сложность линейная? Может, экспоненциальная?
Пока вы это не поймете - смысла говорить о "быстроте" нет никакого.
В любом случае для подобной задачи я бы воспользовался следующей схемой:
1. Клиент отправляет задачу на сервер
2. Сервер регистрирует задачу, отдает клиенту ее номер, саму задачу ставит в очередь
3. Клиент сохраняет данные задачи с полученным от сервера номером с пометкой "выполняется"
4. Воркеры (работающие отдельно от основного процесса веб-сервера) вытаскивают из очереди задания и выполняют непосредственно математические расчеты. Получив результат записывают его в базу, отправляют на устройство, с которого поступила задача, пуш уведомление.
На чем реализовывать - особого значения не имеет, с любым ЯП вам придется потратить примерно одинаковое количество времени.