Создайте автономный исполняемый файл Octave, который может работать на AWS EC2. - PullRequest
0 голосов
/ 27 мая 2020

У нас есть математическая модель, написанная на Octave, которую мы хотели бы запустить в облаке - возможно, AWS экземпляр EC2 или ECS. Причина этого в том, что мы хотим вводить данные из нашей базы данных (ElasticSearch), а не полагаться на компьютер одного человека для выполнения анализа. Мы также стараемся не переписывать файлы m в Python и т.п.

Я просмотрел ответы в этом вопросе и мне трудно поверить, что Нет более простого способа скомпилировать сценарий Octave (с несколькими файлами) в отдельную программу, которую можно запускать в облаке. У кого-нибудь есть опыт этим заниматься?

1 Ответ

0 голосов
/ 04 июня 2020

Для этого нет инструмента Octave. Но я не думаю, что вам это действительно нужно. Как и в случае с другими интерпретируемыми языками, такими как Ruby или Python, типичным способом развертывания приложения на основе Octave является установка среды выполнения Octave (то есть самой Octave) на машине, на которой она будет запущена, а затем развертывание вашу коллекцию M-файлов на машину и пусть она их запускает. Поскольку у вас есть контроль над своими экземплярами EC2, это выполнимо.

(Существуют «замороженные» приложения Python, которые предоставляют полностью упакованные развертываемые приложения со встроенным интерпретатором Python, или компилятор Matlab для Matlab , но нет эквивалента Octave.)

Обратите внимание, что даже для скомпилированных языков может потребоваться установка поддерживающей среды выполнения. Например, для C ++ требуется среда выполнения C ++ (т.е. распространяемый компонент Microsoft Visual C ++ в Windows или библиотеки GNU или CLANG C ++ в Linux), Java требует JRE, а «скомпилированные» приложения Matlab требуют среды выполнения Matlab .

Если вам нужен однофайловый способ переноса приложения на сервер для развертывания, упакуйте приложение в ZIP-файл, скопируйте его на сервер и разархивируйте в месте установки. Или вы можете упаковать его с помощью собственного диспетчера пакетов вашей ОС и объявить зависимость от Octave.

Подход «один большой устанавливаемый пакет» в другом вопросе, на который вы ссылаетесь, предназначен для решения проблемы распространение программ Octave среди нетехнических конечных пользователей на машинах, которые автор программы не контролирует. Предположительно, у вас есть технически подкованные люди в вашем штате, и вы управляете своими облачными виртуальными машинами, на которых собираетесь развертывать, поэтому у вас, вероятно, действительно нет таких же требований.

Вы также можете использовать Docker и соберите ваше приложение + Octave в контейнер Docker для полностью автономного развертывания.

...