Я бы посоветовал не использовать Matlab для чего-либо, кроме прототипирования.
Когда проект станет более сложным и обширным, доля вашего собственного кода будет расти по сравнению с функциональностью, предоставляемой Matlab и наборами инструментов. Чем более развитым становится проект, тем меньше вы получаете выгоду от Matlab и тем больше вам нужны функции, библиотеки и, что более важно, методы, процессы и инструменты языков общего назначения.
Масштабирование решения Matlab достигается за счет взаимодействия с нематлабным кодом, и я видел, как проект Matlab превращается в ничто иное, как связующий модуль вызова, написанный на многоцелевых языках. Причинение ежедневных болей всем участникам.
Если вы знакомы с Java, я бы порекомендовал использовать его вместе с хорошей математикой (по крайней мере, вы всегда можете взаимодействовать с MKL). Даже с недавней оптимизацией Matlab, MKL + JVM намного быстрее - масштабирование и ремонтопригодность не поддаются сравнению.
C ++ с присущей процессору характеристикой может обеспечить лучшую производительность, но за счет затрат времени на разработку и ремонтопригодности. Добавление CUDA еще больше повышает производительность, но объем работы и специальных знаний вряд ли стоит того. Конечно, нет, если у вас нет опыта вычислений на GPU. Как только вы выйдете за пределы одного процессора, гораздо эффективнее добавить в систему еще один или два процессора, чем бороться с вычислениями на GPU.